In general, methods and apparatus for providing a virtualization system for multiple media access control (MAC) connections of a wireless communication platform are described herein. The methods and apparatus described herein are not limited in this regard.
Referring to
The wireless communication system 100 may also include one or more subscriber stations, generally shown as 140, 142, 144, 146, and 148. For example, the subscriber stations 140, 142, 144, 146, and 148 may include wireless electronic devices such as a desktop computer, a laptop computer, a handheld computer, a tablet computer, a cellular telephone, a pager, an audio and/or video player (e.g., an MP3 player or a DVD player), a gaming device, a video camera, a digital camera, a navigation device (e.g., a GPS device), a wireless peripheral (e.g., a printer, a scanner, a headset, a keyboard, a mouse, etc.), a medical device (e.g., a heart rate monitor, a blood pressure monitor, etc.), and/or other suitable fixed, portable, or mobile electronic devices. Although
The subscriber stations 140, 142, 144, 146, and 148 may use a variety of modulation techniques such as spread spectrum modulation (e.g., direct sequence code division multiple access (DS-CDMA) and/or frequency hopping code division multiple access (FH-CDMA)), time-division multiplexing (TDM) modulation, frequency-division multiplexing (FDM) modulation, orthogonal frequency-division multiplexing (OFDM) modulation (e.g., orthogonal frequency-division multiple access (OFDMA)), multi-carrier modulation (MDM), and/or other suitable modulation techniques to communicate via wireless links. In one example, the laptop computer 140 may operate in accordance with suitable wireless communication protocols that require very low power such as Bluetooth®, ultra-wide band (UWB), and/or radio frequency identification (RFID) to implement the WPAN 110. In particular, the laptop computer 140 may communicate with devices associated with the WPAN 110 such as the video camera 142 and/or the printer 144 via wireless links.
In another example, the laptop computer 140 may use direct sequence spread spectrum (DSSS) modulation and/or frequency hopping spread spectrum (FHSS) modulation to implement the WLAN 120 (e.g., the 802.11 family of standards developed by the Institute of Electrical and Electronic Engineers (WEEE) and/or variations and evolutions of these standards). For example, the laptop computer 140 may communicate with devices associated with the WLAN 120 such as the printer 144, the handheld computer 146 and/or the smart phone 148 via wireless links. The laptop computer 140 may also communicate with an access point (AP) 150 via a wireless link. The AP 150 may be operatively coupled to a router 152 as described in further detail below. Alternatively, the AP 150 and the router 152 may be integrated into a single device (e.g., a wireless router).
The laptop computer 140 may use OFDM modulation to transmit large amounts of digital data by splitting a radio frequency signal into multiple small sub-signals, which in turn, are transmitted simultaneously at different frequencies. In particular, the laptop computer 140 may use OFDM modulation to implement the WMAN 130. For example, the laptop computer 140 may operate in accordance with the 802.16 family of standards developed by IEEE to provide for fixed, portable, and/or mobile broadband wireless access (BWA) networks (e.g., the IEEE std. 802.16-2004 (published Sep. 18, 2004), the IEEE std. 802.16e (published Feb. 28, 2006), the IEEE std. 802.16f (published Dec. 1, 2005), etc.) to communicate with base stations, generally shown as 160, 162, and 164, via wireless link(s).
Although some of the above examples are described above with respect to standards developed by IEEE, the methods and apparatus disclosed herein are readily applicable to many specifications and/or standards developed by other special interest groups and/or standard development organizations (e.g., Wireless Fidelity (Wi-Fi) Alliance, Worldwide Interoperability for Microwave Access (WiMAX) Forum, Infrared Data Association (IrDA), Third Generation Partnership Project (3GPP), etc.). The methods and apparatus described herein are not limited in this regard.
The WLAN 120 and WMAN 130 may be operatively coupled to a common public or private network 170 such as the Internet, a telephone network (e.g., public switched telephone network (PSTN)), a local area network (LAN), a cable network, and/or another wireless network via connection to an Ethernet, a digital subscriber line (DSL), a telephone line, a coaxial cable, and/or any wireless connection, etc. In one example, the WLAN 120 may be operatively coupled to the common public or private network 170 via the AP 150 and/or the router 152. In another example, the WMAN 130 may be operatively coupled to the common public or private network 170 via the base station(s) 160, 162, and/or 164.
The wireless communication system 100 may include other suitable wireless communication networks. For example, the wireless communication system 100 may include a wireless wide area network (WWAN) (not shown). The laptop computer 140 may operate in accordance with other wireless communication protocols to support a WWAN. In particular, these wireless communication protocols may be based on analog, digital, and/or dual-mode communication system technologies such as Global System for Mobile Communications (GSM) technology, Wideband Code Division Multiple Access (WCDMA) technology, General Packet Radio Services (GPRS) technology, Enhanced Data GSM Environment (EDGE) technology, Universal Mobile Telecommunications System (UMTS) technology, 3GPP technology, standards based on these technologies, variations and evolutions of these standards, and/or other suitable wireless communication standards. Although
The wireless communication system 100 may include other WPAN, WLAN, WMAN, and/or WWAN devices (not shown) such as network interface devices and peripherals (e.g., network interface cards (NICs)), access points (APs), redistribution points, end points, gateways, bridges, hubs, etc. to implement a cellular telephone system, a satellite system, a personal communication system (PCS), a two-way radio system, a one-way pager system, a two-way pager system, a personal computer (PC) system, a personal data assistant (PDA) system, a personal computing accessory (PCA) system, and/or any other suitable communication system. Although certain examples have been described above, the scope of coverage of this disclosure is not limited thereto.
In the example of
In general, the subscriber station 210 may be one of the wireless electronic devices mentioned above in connection with
The NID 240 may include a receiver 242, a transmitter 244, and an antenna 246. For example, the NID 240 may be a network interface card. The subscriber station 210 may receive and/or transmit data via the receiver 242 and the transmitter 244, respectively. The antenna 246 may include one or more directional or omni-directional antennas such as dipole antennas, monopole antennas, patch antennas, loop antennas, microstrip antennas, and/or other types of antennas suitable for transmission of radio frequency (RF) signals. Although
Although the components shown in
The access points 220 and 230 may be associated with the same wireless communication network or different wireless communication networks. As described in detail below, the subscriber station 210 may be connected to two or more wireless communication networks simultaneously or concurrently. Although
To connect multiple virtual machines on the same platform to wired communication networks, a network junction device (e.g., a bridge, a hub, a switch, and/or a gateway) may be used. As a result, each virtual machine may be connected to a wired communication network through emulation of a network junction device such as a virtual bridge.
However, a virtual bridge may not be suitable to connect multiple virtual machines on the same platform to wireless communication networks. In one example, access points operating in accordance with the IEEE 802.11 family of standards may not expect more than one subscriber station on the other end of a wireless connection or more than one MAC address to redirect to the subscriber station. In another example, a virtual bridge may require isolation of the operating system from the wireless connection, which may prevent selection of connection profile and/or access point, overview of wireless signal strength, adjustment of security settings for the wireless connection, etc. Further, a virtual bridge may not allow each virtual machine to communicate with network infrastructure on the MAC layer to enforce security and/or traffic priority policies for different virtual machines as needed in, for example, a corporate environment. Accordingly, the methods and apparatus described herein may provide a virtualization system for multiple MAC connections of a wireless communication platform. The methods and apparatus described herein are not limited in this regard.
In the example of
Each of the VMs 310 and 320 may include a profile, generally shown as 314 and 324, respectively. In general, the profiles 314 and 324 may indicate settings for the wireless communication platform 300 to connect with different wireless communication networks. In one example, the profile 314 may provide settings for the wireless communication platform 300 to connect to a first wireless communication network (e.g., a personal network) whereas the profile 324 may provide settings for the wireless communication platform to connection to a second wireless communication network (e.g., an office network). In another example, the profile 314 may provide settings for the wireless communication platform 300 to connect to a WLAN for full-time employees where as the profile 324 may provide settings for the wireless communication platform 300 to connect to a WLAN for guests.
Each of the VMs 310 and 320 may also include a supplicant, generally shown as 316 and 326, respectively. In general, the supplicants 316 and 326 may communicate with an authenticator to establish authentication and authorization for a connection. Referring back to
Turning back to
The virtual drivers 318 and 328 may be operatively coupled to a network virtualization partition 330, which may include the network physical driver 332. For example, the network virtualization partition 330 may be a virtual machine or a virtual machine monitor. In general, the network virtualization partition 330 may transfer API calls between the network virtual drivers 318 and 328 and the network physical driver 332. The network physical driver 332 may serve as an interface between hardware (e.g., a network interface card) and the VMs 310 and 320, respectively.
To enforce security and/or traffic priority for the VMs 310 and 320 via the MAC layer (i.e., Layer-2 or data link layer), the network physical driver 332 may establish a MAC connection, generally shown as 340 and 350, for each VMs 310 and 320, respectively. In particular, the MAC connection 340 may serve as an interface between the VM 310 and the NID 370, and the MAC connection 350 may serve as an interface between the VM 320 and the NID 370. The MAC connections 340 and 350 may be associated with the same wireless network or different wireless networks. In one example, the MAC connection 340 may be associated with a home network whereas the MAC connection 350 may be associated with an office network. In another example, both of the MAC connections 340 and 350 may be associated with the office network but the MAC connection 340 may be associated with a full-time employee profile whereas the MAC connection 350 may be associated with a guest profile. Also, the MAC connections 340 and 350 may be use the same wireless communication channel or different wireless communication channels.
The network physical driver 332 may be operatively coupled to a MAC coordination device 360. In general, the MAC coordination device 360 may coordinate sharing of one or more resources of the wireless communication platform 300 by the VMs 310 and 320 (e.g., common hardware and/or radio resources) so that the VMs 310 and 320 may operate simultaneously and/or concurrently via the MAC connections 340 and 350, respectively.
The MAC coordination device 360 may be operatively coupled to a network interface device (NID) 370. The wireless communication platform 300 may use the NID 370 to communicate with one or more wireless communication networks. For example, the NID 370 may be a network interface card. As a result, the network physical driver 332 and the MAC coordination device 360 may emulate the NID 370 for each of the VMs 310 and 320 to provide an independent and transparent connection to a wireless communication network (e.g., the WLAN 200 of
Further, although a particular order of actions is illustrated in each of
In the example of
The VMs 310 and 320 may initialize the corresponding network virtual drivers 318 and 328, respectively (block 440). The network virtual drivers 318 and 328 may emulate the network physical driver 332 for the OS 312 and 322, respectively. Each of the network virtual drivers 318 and 328 may request for a MAC connection (block 450). Accordingly, the network physical driver 332 may initialize one or more MAC connections (block 460). In one example, the network physical driver 332 may initialize the MAC connection 340 for the network virtual driver 318, and the MAC connection 350 for the network virtual driver 328. The network physical driver 332 may inform the MAC coordination device 360 of the initialized MAC connections 340 and 350 (block 470). As described in detail below, the MAC coordination device 360 may coordinate the sharing of resources between the MAC connections 340 and 350. The methods and apparatus described herein are not limited in this regard.
The network physical driver 332 may communicate information between a network virtual driver and a corresponding MAC connection of the wireless communication platform 300. In one example, the network physical driver 332 may communicate information between the network virtual driver 318 and the MAC connection 340. In a similar manner, the network physical driver 332 may communicate information between the network virtual driver 328 and the MAC connection 350. Turning to
The network physical driver 332 may also receive data and/or notification information from one or more of the MAC connections 340 and/or 350 (block 530). Accordingly, the network physical driver 332 may transfer the data and/or notification information to the corresponding network virtual drivers 318 and/or 328 (block 540). In one example, the network physical driver 332 may transfer data and/or notification information from the MAC connection 340 to the network virtual driver 318. In another example, the network physical driver 332 may transfer data and/or notification information from the MAC connection 350 to the network virtual driver 328. The methods and apparatus described herein are not limited in this regard.
In the example of
Accordingly, the MAC coordination device 360 may define transmission priority between the MAC connections 340 and 350 (block 620). The MAC coordination device 360 may support multiple MAC connections simultaneously or concurrently by coordinating resources of the wireless communication platform 300 such as the NID 370 between the MAC connections 340 and 350. As a result, each operating system of the VMs 310 and 320 may operate the corresponding MAC connection independently. The methods and apparatus described herein are not limited in this regard.
Although the above examples are described with respect to WLANs, the methods and apparatus described herein may be implemented in other suitable types of wireless communication networks such as WMANs and/or WWANs.
The processor system 2000 illustrated in
The memory controller 2012 may perform functions that enable the processor 2020 to access and communicate with a main memory 2030 including a volatile memory 2032 and a non-volatile memory 2034 via a bus 2040. The volatile memory 2032 may be implemented by synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), RAMBUS dynamic random access memory (RDRAM), static random access memory (SRAM) and/or any other type of random access memory device. The non-volatile memory 2034 may be implemented by flash memory, read only memory (ROM), electrically erasable programmable read only memory (EEPROM), and/or any other desired type of memory device.
The processor system 2000 may also include an interface circuit 2050 that is coupled to the bus 2040. The interface circuit 2050 may be implemented using any type of interface standard such as an Ethernet interface, a universal serial bus (USB), a third generation input/output (3GIO) interface, and/or any other suitable type of interface.
One or more input devices 2060 may be connected to the interface circuit 2050. The input device(s) 2060 permit an individual to enter data and commands into the processor 2020. For example, the input device(s) 2060 may be implemented by a keyboard, a mouse, a touch-sensitive display, a track pad, a track ball, an isopoint, and/or a voice recognition system.
One or more output devices 2070 may also be connected to the interface circuit 2050. For example, the output device(s) 2070 may be implemented by display devices (e.g., a light emitting display (LED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, a printer and/or speakers). The interface circuit 2050 may include, among other things, a graphics driver card.
The processor system 2000 may also include one or more mass storage devices 2080 to store software and data. Examples of such mass storage device(s) 2080 include floppy disks and drives, hard disk drives, compact disks and drives, and digital versatile disks (DVD) and drives.
The interface circuit 2050 may also include a communication device such as a modem or a network interface card to facilitate exchange of data with external computers via a network. The communication link between the processor system 2000 and the network may be any type of network connection such as an Ethernet connection, a digital subscriber line (DSL), a telephone line, a cellular telephone system, a coaxial cable, etc.
Access to the input device(s) 2060, the output device(s) 2070, the mass storage device(s) 2080 and/or the network may be controlled by the I/O controller 2014. In particular, the 1,0 controller 2014 may perform functions that enable the processor 2020 to communicate with the input device(s) 2060, the output device(s) 2070, the mass storage device(s) 2080 and/or the network via the bus 2040 and the interface circuit 2050.
While the components shown in
Although certain example methods, apparatus, and articles of manufacture have been described herein, the scope of coverage of this disclosure is not limited thereto. On the contrary, this disclosure covers all methods, apparatus, and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents. For example, although the above discloses example systems including, among other components, software or firmware executed on hardware, it should be noted that such systems are merely illustrative and should not be considered as limiting. In particular, it is contemplated that any or all of the disclosed hardware, software, and/or firmware components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware or in some combination of hardware, software, and/or firmware.