[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

US7768959B1 - All-in-one wireless network device - Google Patents

All-in-one wireless network device Download PDF

Info

Publication number
US7768959B1
US7768959B1 US10/829,131 US82913104A US7768959B1 US 7768959 B1 US7768959 B1 US 7768959B1 US 82913104 A US82913104 A US 82913104A US 7768959 B1 US7768959 B1 US 7768959B1
Authority
US
United States
Prior art keywords
wireless network
virtual
virtual machines
virtual machine
communicate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US10/829,131
Inventor
James Chieh-Tsung Chen
Chuong Vu
Chor-Teck Law
Binh Quoc Tran
Jiaqi Shen
Brian Bosso
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cavium International
Marvell Asia Pte Ltd
Marvell Semiconductor Inc
Original Assignee
Marvell International Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Assigned to MARVELL INTERNATIONAL LTD. reassignment MARVELL INTERNATIONAL LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARVELL SEMICONDUCTOR, INC.
Assigned to MARVELL SEMICONDUCTOR, INC. reassignment MARVELL SEMICONDUCTOR, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BOSSO, BRIAN, CHEN, JAMES CHIEH-TSUNG, LAW, CHOR-TECK, SHEN, JIAQI, TRAN, BINH QUOC, VU, CHUONG
Priority to US10/829,131 priority Critical patent/US7768959B1/en
Application filed by Marvell International Ltd filed Critical Marvell International Ltd
Priority to US12/845,315 priority patent/US8018892B1/en
Publication of US7768959B1 publication Critical patent/US7768959B1/en
Application granted granted Critical
Priority to US13/230,595 priority patent/US8582507B1/en
Priority to US14/076,732 priority patent/US9195485B1/en
Assigned to CAVIUM INTERNATIONAL reassignment CAVIUM INTERNATIONAL ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARVELL INTERNATIONAL LTD.
Assigned to MARVELL ASIA PTE, LTD. reassignment MARVELL ASIA PTE, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CAVIUM INTERNATIONAL
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices
    • H04W88/10Access point devices adapted for operation in multiple networks, e.g. multi-mode access points

Definitions

  • the present invention relates generally to wireless data communications. More particularly, the present invention relates to all-in-one wireless network devices.
  • FIG. 1 shows a conventional combination wireless network device 100 .
  • Wireless network device 100 comprises a processor 102 , a wireless port 104 , a memory controller 110 , a non-volatile memory 112 , a volatile memory 114 , and an antenna 116 .
  • FIG. 2 shows a conventional architecture 200 for a conventional combination wireless network device 100 that can act as either a wireless access point or a wireless client.
  • Architecture 200 comprises a plurality of software images comprising a software image 202 A for the wireless access point and a software image 202 B for the wireless client, and wireless port 104 of FIG. 1 .
  • Image 202 A comprises a conventional operating system 204 A, a wireless access point application 206 A, and a media access controller (MAC) device driver 210 A.
  • Image 202 B comprises a conventional operating system 204 B, a wireless client application 206 B, and a MAC device driver 210 B.
  • Wireless port 104 comprises a MAC 212 and a wireless physical-layer device (PHY) 214 .
  • PHY wireless physical-layer device
  • Conventional architecture 200 is limited in that only one wireless application can execute at a time. That is, according to architecture 200 , combination wireless network device 100 can act either as a wireless access point or as a wireless client, but cannot act as both concurrently.
  • processor 102 in order to switch from wireless access point mode to wireless client mode, processor 102 must reboot and load wireless client image 202 B into volatile memory 114 before entering wireless client mode.
  • architecture 200 is inefficient because operating system 204 is replicated in each image 202 , and can account for up to 2 ⁇ 3 of the storage space required by each image 202 .
  • This inefficiency increases the storage requirements for both non-volatile memory 112 and volatile memory 114 , as well as the time required to transfer each image 202 from non-volatile memory 112 to volatile memory 114 .
  • These storage requirements mandate a larger, less portable, and more expensive package for conventional combination wireless network device 100 .
  • the invention features a method, apparatus, and computer-readable media for a wireless network device for communicating with a network comprising.
  • the apparatus comprises a memory to store an image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the virtual machines comprises a wireless network application to execute on the multi-tasking operating system; a processor to execute the virtual machines; and a port comprising a physical-layer device to communicate with the network, and a media access controller to communicate with the physical-layer device and the processor.
  • Particular implementations can include one or more of the following features.
  • a wireless network device is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
  • the memory comprises a non-volatile memory, and the apparatus further comprises a volatile memory; and a memory controller to create a copy of the image from the non-volatile memory to the volatile memory; wherein the processor executes the virtual machines from the volatile memory.
  • the memory comprises a virtual machine queue for each virtual machine and a processor queue for the processor; the processor stores data to be processed for the virtual machine being executed by the processor in the processor queue; each virtual machine creates a copy in the respective virtual machine queue of the data in the processor queue when the processor is executing the respective virtual machine; and when the processor resumes executing one of the virtual machines after executing another of the virtual machines, the one of the virtual machines copies the data from the respective virtual machine queue to the processor queue.
  • the wireless network applications are selected from the group consisting of a wireless network access point; a wireless network client; a wireless network point-to-point bridge; a wireless network multi-point bridge; and a wireless network repeater.
  • the image further comprises a plurality of virtual machine device drivers to communicate with the virtual machines; and a media access controller device driver to communicate with the virtual machine device drivers and the media access controller.
  • the apparatus further comprises an input device to select one or more of the virtual machines; wherein the processor executes the virtual machines selected by the input device.
  • the processor executes a plurality of the virtual machines concurrently.
  • the virtual machines comprise a wireless network access point virtual machine and a wireless network client virtual machine; wherein the processor executes the wireless network access point virtual machine and the wireless network client virtual machine concurrently; wherein the wireless network client virtual machine comprises a first virtual wireless port to communicate with the port, and a first virtual bridge to communicate with the first virtual wireless port; and wherein the wireless network access point virtual machine comprises a second virtual wireless port to communicate with the port, a virtual distribution service port to communicate with the first virtual bridge, and a second virtual bridge to communicate with the second virtual wireless port and the virtual distribution service port.
  • the invention features a method, apparatus, and computer-readable media for a wireless network device for communicating with a network.
  • the apparatus comprises a memory to store an image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the virtual machines comprises a wireless network application to execute on the multi-tasking operating system; a processor to execute the virtual machines; and a bus to communicate with the processor and the network.
  • the wireless network device is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
  • the memory comprises a non-volatile memory, and the apparatus further comprises a volatile memory; and a memory controller to create a copy of the image from the non-volatile memory to the volatile memory; wherein the processor executes the virtual machines from the volatile memory.
  • the memory comprises a virtual machine queue for each virtual machine and a processor queue for the processor; wherein the processor stores data to be processed for the virtual machine being executed by the processor in the processor queue; wherein each virtual machine creates a copy in the respective virtual machine queue of the data in the processor queue when the processor is executing the respective virtual machine; and wherein when the processor resumes executing one of the virtual machines after executing another of the virtual machines, the one of the virtual machines copies the data from the respective virtual machine queue to the processor queue.
  • the image further comprises a plurality of virtual machine device drivers to communicate with the virtual machines; and a bus interface driver to communicate with the virtual machine device drivers and the bus.
  • the apparatus further comprises a physical-layer device to communicate with the network; and a media access controller to communicate with the physical-layer device and the bus.
  • the image further comprises a plurality of virtual machine device drivers to communicate with the virtual machines; a first bus interface driver to communicate with the virtual machine device drivers and the bus; a second bus interface driver to communicate with the bus; and a media access controller device driver to communicate with the second bus interface driver and the media access controller.
  • the wireless network applications are selected from the group consisting of a wireless network access point; a wireless network client; a wireless network point-to-point bridge; a wireless network multi-point bridge; and a wireless network repeater.
  • the apparatus further comprises an input device to select one or more of the virtual machines; wherein the processor executes the virtual machines selected by the input device.
  • the processor executes a plurality of the virtual machines concurrently.
  • the virtual machines comprise a wireless network access point virtual machine and a wireless network client virtual machine; wherein the processor executes the wireless network access point virtual machine and the wireless network client virtual machine concurrently; wherein the wireless network client virtual machine comprises a first virtual wireless port to communicate with the port, and a first virtual bridge to communicate with the first virtual wireless port; and wherein the wireless network access point virtual machine comprises a second virtual wireless port to communicate with the port, a virtual distribution service port to communicate with the first virtual bridge, and a second virtual bridge to communicate with the second virtual wireless port and the virtual distribution service port.
  • FIG. 1 shows a conventional combination wireless network device.
  • FIG. 2 shows a conventional architecture for a conventional combination wireless network device that can act as either a wireless access point or a wireless client.
  • FIG. 3 shows an all-in-one wireless network device according to a preferred embodiment.
  • FIG. 4 shows an architecture for the all-in-one wireless network device of FIG. 3 according to a preferred embodiment employing an embedded processor.
  • FIG. 5 shows a process for the all-in-one wireless network device of FIG. 3 and the architecture of FIG. 4 according to a preferred embodiment.
  • FIG. 6 shows an architecture for the all-in-one wireless network device of FIG. 3 according to a preferred embodiment employing a host processor such as the central processing unit (CPU) of a laptop computer.
  • a host processor such as the central processing unit (CPU) of a laptop computer.
  • FIG. 7 shows an architecture enhancement that prevents any data loss.
  • FIG. 8 shows a wireless network comprising a universal repeater according to a preferred embodiment of the present invention.
  • FIG. 9 shows an architecture for the universal repeater of FIG. 8 according to a preferred embodiment employing an embedded processor.
  • Embodiments of the present invention comprise various all-in-one wireless network devices.
  • FIG. 3 shows an all-in-one wireless network device 300 according to a preferred embodiment.
  • All-in-one wireless network device 300 comprises a processor 302 , a wireless port 304 , an optional wired port 306 , an optional input device 308 , a memory controller 310 , a non-volatile memory 312 , a volatile memory 314 , and an antenna 316 .
  • Optional wired port 306 can be used to connect all-in-one wireless network device 300 to wired networks such as Ethernet networks available at work, at home, at hotels, and so on.
  • Such embodiments are compliant, for example, with IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
  • FIG. 4 shows an architecture 400 for all-in-one wireless network device 300 according to a preferred embodiment employing an embedded processor.
  • Architecture 400 comprises a software image 402 and wireless port 304 of FIG. 3 .
  • Image 402 comprises a multi-tasking operating system 404 , a plurality of virtual machines 406 A through 406 N each having one of a plurality of virtual machine (VM) device drivers 408 A through 408 N, and a media access controller (MAC) device driver 410 .
  • Wireless port 304 comprises a MAC 412 and a wireless physical-layer device (PHY) 414 .
  • PHY wireless physical-layer device
  • a virtual machine is a software architectural block that allows multiple applications to share one hardware element, such as a wireless port.
  • Each virtual machine 406 comprises a wireless network application to execute on multi-tasking operating system 404 .
  • the wireless network applications can include wireless network access points, wireless network clients, wireless network point-to-point bridges, wireless network multi-point bridges, wireless network repeaters, and the like.
  • Multi-tasking operating system 404 can be implemented as any multi-tasking operating system such as eCos, which is described at http://sources.redhat.com/ecos/about.html, the contents of which are incorporated herein by reference.
  • FIG. 5 shows a process 500 for all-in-one wireless network device 300 and architecture 400 according to a preferred embodiment.
  • Image 202 is stored in non-volatile memory 312 .
  • memory controller 310 creates a copy of image 202 in volatile memory 314 (step 504 ).
  • Processor 302 executes virtual machines 406 from volatile memory 314 (step 506 ).
  • two or more predetermined virtual machines execute concurrently whenever all-in-one wireless network device 300 powers up, so no user selection of modes is required.
  • an access point virtual machine and a client virtual machine execute concurrently.
  • processor 302 executes the corresponding virtual machines 406 according to the user's mode selection.
  • Input device 308 can be a simple slide switch, a touch screen, or other graphical user interface.
  • FIG. 6 shows an architecture 600 for all-in-one wireless network device 300 according to a preferred embodiment employing a host processor such as the central processing unit (CPU) of a laptop computer.
  • Architecture 600 comprises a software image 602 and a wireless port 304 such as wireless port 304 of FIG. 3 .
  • Image 602 comprises a multi-tasking operating system 604 , a plurality of virtual machines 606 A through 606 N each having one of a plurality of virtual machine (VM) device drivers 608 A through 608 N, and a MAC device driver.
  • Wireless port 304 comprises MAC 412 and wireless PHY 414 .
  • Architecture 600 further comprises a host bus 616 that is used for communication between wireless port 304 and virtual machines 606 .
  • a host interface bus driver 618 allows communications between virtual machine device drivers 608 and host bus 616 .
  • a host interface bus driver 618 allows communications between virtual machine device drivers 608 and host bus 616 .
  • a port interface bus driver 620 allows communications between wireless port 304 and host bus 616 .
  • Architecture 600 operates in a manner similar to that described for architecture 400 as process 500 of FIG. 5 .
  • FIG. 7 shows an architecture enhancement 700 that prevents any such data loss.
  • the processor has a processor queue 702
  • each virtual machine 706 A through 706 N has a respective virtual machine queue 704 A through 704 N.
  • the processor stores data to be processed for the virtual machine 706 being executed by the processor in the processor queue 702 according to well-known methods. But according to embodiments of the present invention, each virtual machine 706 maintains a copy in its virtual machine queue 704 of the data in the processor queue 702 when the processor is executing that virtual machine 706 . For example, when the processor is executing virtual machine 706 A, virtual machine 706 A maintains a copy in its virtual machine queue 704 A of the data in the processor queue 702 .
  • the resuming virtual machine 706 copies the data from the virtual machine queue 704 of the resuming virtual machine 706 to the processor queue 702 .
  • the processor resumes executing virtual machine 706 A after executing virtual machine 706 N copies the data from virtual machine queue 704 A to the processor queue 702 .
  • Embodiments of the present invention include a universal wireless repeater to extend the range of wireless connections.
  • Conventional wireless repeaters employ proprietary wireless protocols, forcing a user to purchase all of his wireless equipment from the same manufacturer.
  • the universal repeaters of the present invention employ only standard wireless protocols, freeing the user to purchase whatever wireless equipment he desires.
  • FIG. 8 shows a wireless network 800 comprising a wireless universal repeater 802 according to a preferred embodiment of the present invention.
  • Wireless network 800 also comprises a conventional wireless access point 804 that communicates with wireless universal repeater 802 and a conventional wired network 806 such as the Internet.
  • Wireless network 800 further comprises a conventional wireless client 810 that communicates with wireless universal repeater 802 and a conventional host 808 such as a personal computer.
  • Wireless access point 804 comprises a wired wide-area network port 824 to communicate with wired network 806 , for example over a cable, a wireless local-area network (WLAN) port 828 , and a wireless access point application 826 to exchange data traffic between ports 824 and 828 , as is well-known in the relevant arts.
  • WLAN wireless local-area network
  • Wireless client 810 comprises a WLAN port 830 and a wireless client application 832 to exchange data traffic between port 830 and host 808 , as is also well-known in the relevant arts. However, due to factors such as distance and blockage, wireless client 810 is unable to communicate directly with wireless access point 804 .
  • Wireless universal repeater 802 provides the connectivity between wireless client 810 and wireless access point 804 .
  • Wireless universal repeater 802 comprises a wireless WLAN port 816 to communicate with wireless access point 804 over wireless link 812 and a WLAN port 822 to communicate with wireless client 810 over wireless link 814 .
  • Wireless links 812 and 814 can use the same band or different bands.
  • Wireless universal repeater 802 executes two virtual machines concurrently, according to the techniques described above: wireless client virtual machine 818 and wireless access point virtual machine 820 .
  • Wireless virtual machines 818 and 820 together exchange data between wireless ports 816 and 822 , thereby providing connectivity for wireless network 800 using standard wireless protocols such as IEEE 802.11 for wireless links 812 and 814 .
  • wireless access point virtual machine 820 and wireless client virtual machine 818 share a single hardware WLAN port that communicates with both wireless access point 804 and wireless client 810 .
  • FIG. 9 shows an architecture 900 for an embodiment employing an embedded processor. A similar architecture employing a host processor will be apparent to one skilled in the relevant arts after reading this description. Such embodiments represent a significant cost reduction over repeaters using two hardware ports.
  • Image 902 comprises a multi-tasking operating system 904 , a client virtual machine 906 A having a virtual machine (VM) device driver 908 A, an access point virtual machine 906 B having a VM device driver 908 B, and a media access controller (MAC) device driver 910 .
  • Wireless port 304 comprises a MAC 412 and a wireless physical-layer device (PHY) 414 .
  • Client virtual machine 906 A comprises a virtual bridge 916 A and a virtual wireless port 912 A.
  • Access point virtual machine 906 B comprises a virtual bridge 916 B, a virtual wireless port 912 B, and a virtual distribution service (DS) port 914 .
  • Virtual bridges and virtual ports are software realizations of their hardware equivalents, as is well-known in the relevant arts.
  • Virtual wireless port 912 A exchanges data between client virtual machine 906 A and access point 804 of FIG. 8 using wireless port 304 .
  • virtual wireless port 912 B exchanges data between access point virtual machine 906 B and client 810 of FIG. 8 , also using wireless port 304 .
  • Virtual DS port 914 exchanges data between client virtual machine 906 A and access point virtual machine 906 B.
  • Bridge module 916 B of access point virtual machine 906 B maintains a bridge table or the like to distinguish local WLAN traffic (that is, traffic between client 810 and other such clients) from external traffic (that is, traffic between client 810 and network 804 ).
  • bridge module 916 B employs a learning process to populate a bridge table for this purpose.
  • Virtual bridge 910 B directs traffic directed to the local WLAN to virtual wireless port 912 B so it can reach the proper destination client in the local WLAN, and directs traffic not directed to the local WLAN to virtual DS port 914 so it can reach the proper destination in network 806 through access point 804 .
  • Embodiments of the present invention are able to execute multiple wireless applications concurrently, for example in the universal repeater embodiment described above. Furthermore, switching between modes is fast and transparent to the user. In contrast to conventional combination wireless network devices, no rebooting is necessary. Finally, because the architectures of the preferred embodiments are efficient, all-in-one network devices according to preferred embodiments of the present invention can be light, inexpensive, and small enough to fit in a shirt pocket.
  • Embodiments of the present invention are ideal for new wireless users. New purchasers of wireless-enabled laptop computers often return home, power up their new laptops, and are disappointed to learn that no wireless connectivity awaits them.
  • An embodiment of the invention featuring a wireless access point could be bundled with wireless laptops for sale. On returning home with the new laptop, a user could simply plug the all-in-one wireless network device into a phone jack or the like, power up the laptop, and enjoy instant wireless networking.
  • the invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
  • Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output.
  • the invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
  • Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language.
  • Suitable processors include, by way of example, both general and special purpose microprocessors.
  • a processor will receive instructions and data from a read-only memory and/or a random access memory.
  • a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks.
  • Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
  • semiconductor memory devices such as EPROM, EEPROM, and flash memory devices
  • magnetic disks such as internal hard disks and removable disks
  • magneto-optical disks magneto-optical disks
  • CD-ROM disks CD-ROM disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A method, apparatus, and computer-readable media for a wireless network device for communicating with a network comprises a memory to store an image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the virtual machines comprises a wireless network application to execute on the multi-tasking operating system; a processor to execute the virtual machines; and a port comprising a physical-layer device to communicate with the network, and a media access controller to communicate with the physical-layer device and the processor.

Description

BACKGROUND
The present invention relates generally to wireless data communications. More particularly, the present invention relates to all-in-one wireless network devices.
Many wireless network devices are available to facilitate data communications and network access at home and in the workplace, including wireless access points, wireless clients, wireless bridges, wireless repeaters, and even wireless-enabled laptop computers and personal digital assistants. FIG. 1 shows a conventional combination wireless network device 100. Wireless network device 100 comprises a processor 102, a wireless port 104, a memory controller 110, a non-volatile memory 112, a volatile memory 114, and an antenna 116.
FIG. 2 shows a conventional architecture 200 for a conventional combination wireless network device 100 that can act as either a wireless access point or a wireless client. Architecture 200 comprises a plurality of software images comprising a software image 202A for the wireless access point and a software image 202B for the wireless client, and wireless port 104 of FIG. 1. Image 202A comprises a conventional operating system 204A, a wireless access point application 206A, and a media access controller (MAC) device driver 210A. Image 202B comprises a conventional operating system 204B, a wireless client application 206B, and a MAC device driver 210B. Wireless port 104 comprises a MAC 212 and a wireless physical-layer device (PHY) 214.
Conventional architecture 200 is limited in that only one wireless application can execute at a time. That is, according to architecture 200, combination wireless network device 100 can act either as a wireless access point or as a wireless client, but cannot act as both concurrently.
Furthermore, switching between modes is slow. For example, in order to switch from wireless access point mode to wireless client mode, processor 102 must reboot and load wireless client image 202B into volatile memory 114 before entering wireless client mode.
Finally, architecture 200 is inefficient because operating system 204 is replicated in each image 202, and can account for up to ⅔ of the storage space required by each image 202. This inefficiency increases the storage requirements for both non-volatile memory 112 and volatile memory 114, as well as the time required to transfer each image 202 from non-volatile memory 112 to volatile memory 114. These storage requirements mandate a larger, less portable, and more expensive package for conventional combination wireless network device 100.
SUMMARY
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for a wireless network device for communicating with a network comprising. The apparatus comprises a memory to store an image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the virtual machines comprises a wireless network application to execute on the multi-tasking operating system; a processor to execute the virtual machines; and a port comprising a physical-layer device to communicate with the network, and a media access controller to communicate with the physical-layer device and the processor.
Particular implementations can include one or more of the following features.
A wireless network device is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n. The memory comprises a non-volatile memory, and the apparatus further comprises a volatile memory; and a memory controller to create a copy of the image from the non-volatile memory to the volatile memory; wherein the processor executes the virtual machines from the volatile memory. The memory comprises a virtual machine queue for each virtual machine and a processor queue for the processor; the processor stores data to be processed for the virtual machine being executed by the processor in the processor queue; each virtual machine creates a copy in the respective virtual machine queue of the data in the processor queue when the processor is executing the respective virtual machine; and when the processor resumes executing one of the virtual machines after executing another of the virtual machines, the one of the virtual machines copies the data from the respective virtual machine queue to the processor queue. The wireless network applications are selected from the group consisting of a wireless network access point; a wireless network client; a wireless network point-to-point bridge; a wireless network multi-point bridge; and a wireless network repeater. The image further comprises a plurality of virtual machine device drivers to communicate with the virtual machines; and a media access controller device driver to communicate with the virtual machine device drivers and the media access controller. The apparatus further comprises an input device to select one or more of the virtual machines; wherein the processor executes the virtual machines selected by the input device. The processor executes a plurality of the virtual machines concurrently. The virtual machines comprise a wireless network access point virtual machine and a wireless network client virtual machine; wherein the processor executes the wireless network access point virtual machine and the wireless network client virtual machine concurrently; wherein the wireless network client virtual machine comprises a first virtual wireless port to communicate with the port, and a first virtual bridge to communicate with the first virtual wireless port; and wherein the wireless network access point virtual machine comprises a second virtual wireless port to communicate with the port, a virtual distribution service port to communicate with the first virtual bridge, and a second virtual bridge to communicate with the second virtual wireless port and the virtual distribution service port.
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for a wireless network device for communicating with a network. The apparatus comprises a memory to store an image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the virtual machines comprises a wireless network application to execute on the multi-tasking operating system; a processor to execute the virtual machines; and a bus to communicate with the processor and the network. The wireless network device is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n. The memory comprises a non-volatile memory, and the apparatus further comprises a volatile memory; and a memory controller to create a copy of the image from the non-volatile memory to the volatile memory; wherein the processor executes the virtual machines from the volatile memory. The memory comprises a virtual machine queue for each virtual machine and a processor queue for the processor; wherein the processor stores data to be processed for the virtual machine being executed by the processor in the processor queue; wherein each virtual machine creates a copy in the respective virtual machine queue of the data in the processor queue when the processor is executing the respective virtual machine; and wherein when the processor resumes executing one of the virtual machines after executing another of the virtual machines, the one of the virtual machines copies the data from the respective virtual machine queue to the processor queue. The image further comprises a plurality of virtual machine device drivers to communicate with the virtual machines; and a bus interface driver to communicate with the virtual machine device drivers and the bus. The apparatus further comprises a physical-layer device to communicate with the network; and a media access controller to communicate with the physical-layer device and the bus. The image further comprises a plurality of virtual machine device drivers to communicate with the virtual machines; a first bus interface driver to communicate with the virtual machine device drivers and the bus; a second bus interface driver to communicate with the bus; and a media access controller device driver to communicate with the second bus interface driver and the media access controller. The wireless network applications are selected from the group consisting of a wireless network access point; a wireless network client; a wireless network point-to-point bridge; a wireless network multi-point bridge; and a wireless network repeater. The apparatus further comprises an input device to select one or more of the virtual machines; wherein the processor executes the virtual machines selected by the input device. The processor executes a plurality of the virtual machines concurrently. The virtual machines comprise a wireless network access point virtual machine and a wireless network client virtual machine; wherein the processor executes the wireless network access point virtual machine and the wireless network client virtual machine concurrently; wherein the wireless network client virtual machine comprises a first virtual wireless port to communicate with the port, and a first virtual bridge to communicate with the first virtual wireless port; and wherein the wireless network access point virtual machine comprises a second virtual wireless port to communicate with the port, a virtual distribution service port to communicate with the first virtual bridge, and a second virtual bridge to communicate with the second virtual wireless port and the virtual distribution service port.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
DESCRIPTION OF DRAWINGS
FIG. 1 shows a conventional combination wireless network device.
FIG. 2 shows a conventional architecture for a conventional combination wireless network device that can act as either a wireless access point or a wireless client.
FIG. 3 shows an all-in-one wireless network device according to a preferred embodiment.
FIG. 4 shows an architecture for the all-in-one wireless network device of FIG. 3 according to a preferred embodiment employing an embedded processor.
FIG. 5 shows a process for the all-in-one wireless network device of FIG. 3 and the architecture of FIG. 4 according to a preferred embodiment.
FIG. 6 shows an architecture for the all-in-one wireless network device of FIG. 3 according to a preferred embodiment employing a host processor such as the central processing unit (CPU) of a laptop computer.
FIG. 7 shows an architecture enhancement that prevents any data loss.
FIG. 8 shows a wireless network comprising a universal repeater according to a preferred embodiment of the present invention.
FIG. 9 shows an architecture for the universal repeater of FIG. 8 according to a preferred embodiment employing an embedded processor.
The leading digit(s) of each reference numeral used in this specification indicates the number of the drawing in which the reference numeral first appears.
DETAILED DESCRIPTION
Embodiments of the present invention comprise various all-in-one wireless network devices. FIG. 3 shows an all-in-one wireless network device 300 according to a preferred embodiment. All-in-one wireless network device 300 comprises a processor 302, a wireless port 304, an optional wired port 306, an optional input device 308, a memory controller 310, a non-volatile memory 312, a volatile memory 314, and an antenna 316. Optional wired port 306 can be used to connect all-in-one wireless network device 300 to wired networks such as Ethernet networks available at work, at home, at hotels, and so on. Such embodiments are compliant, for example, with IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
FIG. 4 shows an architecture 400 for all-in-one wireless network device 300 according to a preferred embodiment employing an embedded processor. Architecture 400 comprises a software image 402 and wireless port 304 of FIG. 3. Image 402 comprises a multi-tasking operating system 404, a plurality of virtual machines 406A through 406N each having one of a plurality of virtual machine (VM) device drivers 408A through 408N, and a media access controller (MAC) device driver 410. Wireless port 304 comprises a MAC 412 and a wireless physical-layer device (PHY) 414.
A virtual machine is a software architectural block that allows multiple applications to share one hardware element, such as a wireless port. Each virtual machine 406 comprises a wireless network application to execute on multi-tasking operating system 404. The wireless network applications can include wireless network access points, wireless network clients, wireless network point-to-point bridges, wireless network multi-point bridges, wireless network repeaters, and the like. Multi-tasking operating system 404 can be implemented as any multi-tasking operating system such as eCos, which is described at http://sources.redhat.com/ecos/about.html, the contents of which are incorporated herein by reference.
FIG. 5 shows a process 500 for all-in-one wireless network device 300 and architecture 400 according to a preferred embodiment. Image 202 is stored in non-volatile memory 312. When all-in-one wireless network device 300 powers up (step 502), memory controller 310 creates a copy of image 202 in volatile memory 314 (step 504). Processor 302 executes virtual machines 406 from volatile memory 314 (step 506).
In some embodiments, two or more predetermined virtual machines execute concurrently whenever all-in-one wireless network device 300 powers up, so no user selection of modes is required. For example, in a universal repeater embodiment, described in detail below, an access point virtual machine and a client virtual machine execute concurrently. However, in other embodiments, a user can manipulate input device 308 to select one or more modes of operation, and processor 302 executes the corresponding virtual machines 406 according to the user's mode selection. Input device 308 can be a simple slide switch, a touch screen, or other graphical user interface.
FIG. 6 shows an architecture 600 for all-in-one wireless network device 300 according to a preferred embodiment employing a host processor such as the central processing unit (CPU) of a laptop computer. Architecture 600 comprises a software image 602 and a wireless port 304 such as wireless port 304 of FIG. 3. Image 602 comprises a multi-tasking operating system 604, a plurality of virtual machines 606A through 606N each having one of a plurality of virtual machine (VM) device drivers 608A through 608N, and a MAC device driver. Wireless port 304 comprises MAC 412 and wireless PHY 414.
Architecture 600 further comprises a host bus 616 that is used for communication between wireless port 304 and virtual machines 606. A host interface bus driver 618 allows communications between virtual machine device drivers 608 and host bus 616. A host interface bus driver 618 allows communications between virtual machine device drivers 608 and host bus 616. A port interface bus driver 620 allows communications between wireless port 304 and host bus 616. Architecture 600 operates in a manner similar to that described for architecture 400 as process 500 of FIG. 5.
In architectures 400 and 600 the virtual machines execute concurrently by each using the processor in turn. However, the potential exists for data such as network packets to be lost when the processor turns from one virtual machine to another. FIG. 7 shows an architecture enhancement 700 that prevents any such data loss. In architecture 700, the processor has a processor queue 702, and each virtual machine 706A through 706N has a respective virtual machine queue 704A through 704N.
The processor stores data to be processed for the virtual machine 706 being executed by the processor in the processor queue 702 according to well-known methods. But according to embodiments of the present invention, each virtual machine 706 maintains a copy in its virtual machine queue 704 of the data in the processor queue 702 when the processor is executing that virtual machine 706. For example, when the processor is executing virtual machine 706A, virtual machine 706A maintains a copy in its virtual machine queue 704A of the data in the processor queue 702.
When the processor is executing another virtual machine 706, the copy is kept intact. Returning to the example, when the processor is executing virtual machine 706N, virtual machine 706A keeps in virtual machine queue 704A an intact copy of the processor queue 702 as of the time when the processor stopped executing virtual machine 706A.
When the processor resumes executing a virtual machine 706 after executing another virtual machine 706, the resuming virtual machine 706 copies the data from the virtual machine queue 704 of the resuming virtual machine 706 to the processor queue 702. Returning to the example, when the processor resumes executing virtual machine 706A after executing virtual machine 706N, virtual machine 706A copies the data from virtual machine queue 704A to the processor queue 702. The processor them resumes execution of virtual machine 706A using the data in processor queue 702. In this way, the processor does not lose data when switching between virtual machines.
Embodiments of the present invention include a universal wireless repeater to extend the range of wireless connections. Conventional wireless repeaters employ proprietary wireless protocols, forcing a user to purchase all of his wireless equipment from the same manufacturer. The universal repeaters of the present invention employ only standard wireless protocols, freeing the user to purchase whatever wireless equipment he desires.
FIG. 8 shows a wireless network 800 comprising a wireless universal repeater 802 according to a preferred embodiment of the present invention. Wireless network 800 also comprises a conventional wireless access point 804 that communicates with wireless universal repeater 802 and a conventional wired network 806 such as the Internet. Wireless network 800 further comprises a conventional wireless client 810 that communicates with wireless universal repeater 802 and a conventional host 808 such as a personal computer.
Wireless access point 804 comprises a wired wide-area network port 824 to communicate with wired network 806, for example over a cable, a wireless local-area network (WLAN) port 828, and a wireless access point application 826 to exchange data traffic between ports 824 and 828, as is well-known in the relevant arts.
Wireless client 810 comprises a WLAN port 830 and a wireless client application 832 to exchange data traffic between port 830 and host 808, as is also well-known in the relevant arts. However, due to factors such as distance and blockage, wireless client 810 is unable to communicate directly with wireless access point 804.
Wireless universal repeater 802 provides the connectivity between wireless client 810 and wireless access point 804. Wireless universal repeater 802 comprises a wireless WLAN port 816 to communicate with wireless access point 804 over wireless link 812 and a WLAN port 822 to communicate with wireless client 810 over wireless link 814. Wireless links 812 and 814 can use the same band or different bands. Wireless universal repeater 802 executes two virtual machines concurrently, according to the techniques described above: wireless client virtual machine 818 and wireless access point virtual machine 820. Wireless virtual machines 818 and 820 together exchange data between wireless ports 816 and 822, thereby providing connectivity for wireless network 800 using standard wireless protocols such as IEEE 802.11 for wireless links 812 and 814.
In some embodiments of wireless universal repeater 802, wireless access point virtual machine 820 and wireless client virtual machine 818 share a single hardware WLAN port that communicates with both wireless access point 804 and wireless client 810. FIG. 9 shows an architecture 900 for an embodiment employing an embedded processor. A similar architecture employing a host processor will be apparent to one skilled in the relevant arts after reading this description. Such embodiments represent a significant cost reduction over repeaters using two hardware ports.
Architecture 900 comprises a software image 902 and wireless port 304 of FIG. 3. Image 902 comprises a multi-tasking operating system 904, a client virtual machine 906A having a virtual machine (VM) device driver 908A, an access point virtual machine 906B having a VM device driver 908B, and a media access controller (MAC) device driver 910. Wireless port 304 comprises a MAC 412 and a wireless physical-layer device (PHY) 414.
Client virtual machine 906A comprises a virtual bridge 916A and a virtual wireless port 912A. Access point virtual machine 906B comprises a virtual bridge 916B, a virtual wireless port 912B, and a virtual distribution service (DS) port 914. Virtual bridges and virtual ports are software realizations of their hardware equivalents, as is well-known in the relevant arts.
Virtual wireless port 912A exchanges data between client virtual machine 906A and access point 804 of FIG. 8 using wireless port 304. Similarly, virtual wireless port 912B exchanges data between access point virtual machine 906B and client 810 of FIG. 8, also using wireless port 304. Virtual DS port 914 exchanges data between client virtual machine 906A and access point virtual machine 906B.
Bridge module 916B of access point virtual machine 906B maintains a bridge table or the like to distinguish local WLAN traffic (that is, traffic between client 810 and other such clients) from external traffic (that is, traffic between client 810 and network 804). In some embodiments, bridge module 916B employs a learning process to populate a bridge table for this purpose. Virtual bridge 910B directs traffic directed to the local WLAN to virtual wireless port 912B so it can reach the proper destination client in the local WLAN, and directs traffic not directed to the local WLAN to virtual DS port 914 so it can reach the proper destination in network 806 through access point 804.
Embodiments of the present invention are able to execute multiple wireless applications concurrently, for example in the universal repeater embodiment described above. Furthermore, switching between modes is fast and transparent to the user. In contrast to conventional combination wireless network devices, no rebooting is necessary. Finally, because the architectures of the preferred embodiments are efficient, all-in-one network devices according to preferred embodiments of the present invention can be light, inexpensive, and small enough to fit in a shirt pocket.
Embodiments of the present invention are ideal for new wireless users. New purchasers of wireless-enabled laptop computers often return home, power up their new laptops, and are disappointed to learn that no wireless connectivity awaits them. An embodiment of the invention featuring a wireless access point could be bundled with wireless laptops for sale. On returning home with the new laptop, a user could simply plug the all-in-one wireless network device into a phone jack or the like, power up the laptop, and enjoy instant wireless networking.
The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
A number of implementations of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other implementations are within the scope of the following claims.

Claims (48)

1. A wireless network device for communicating with a network, the wireless network device comprising:
a memory to store an image, the image comprising a plurality of virtual machines and only one multi-tasking operating system,
wherein each of the plurality of virtual machines comprises one of a plurality of wireless network applications to execute on the multi-tasking operating system;
a processor to execute the plurality of virtual machines; and
a port comprising
a physical-layer device to communicate with the network, and
a media access controller to communicate with the physical-layer device and the processor,
wherein the memory comprises one of a plurality of virtual machine queues for each of the plurality of virtual machines and a processor queue for the processor that is separate from the plurality of virtual machine queues,
wherein the processor stores data to be processed in the processor queue for members of the plurality of virtual machines being executed by the processor,
wherein each respective one of the plurality of virtual machines creates a copy in a respective one of the plurality of virtual machine queues of the data in the processor queue when the processor is executing the respective one of the plurality of virtual machines, and
wherein when the processor resumes executing a first of the plurality of virtual machines after executing a second of the plurality of virtual machines, the first of the plurality of virtual machines copies the data from the respective one of the plurality of virtual machine queues for the first of the plurality of virtual machines to the processor queue.
2. The wireless network device of claim 1, wherein each of the plurality of virtual machines is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
3. The wireless network device of claim 1, wherein the memory comprises a non-volatile memory, and the wireless network device further comprises:
a volatile memory; and
a memory controller to create a copy of the image from the non-volatile memory to the volatile memory;
wherein the processor executes the plurality of virtual machines from the volatile memory.
4. The wireless network device of claim 1, wherein at least one of the plurality of wireless network applications is selected from the group consisting of:
a wireless network access point;
a wireless network client;
a wireless network point-to-point bridge;
a wireless network multi-point bridge; and
a wireless network repeater.
5. The wireless network device of claim 1, wherein the image further comprises:
a plurality of virtual machine device drivers to communicate with the plurality of virtual machines; and
a media access controller device driver to communicate with the plurality of virtual machine device drivers and the media access controller.
6. The wireless network device of claim 1, further comprising:
an input device to select one or more of the plurality of virtual machines;
wherein the processor executes the one or more of the plurality of virtual machines selected by the input device.
7. The wireless network device of claim 1, wherein the processor executes the plurality of virtual machines concurrently.
8. The wireless network device of claim 1:
wherein the plurality of virtual machines comprise a wireless network access point virtual machine and a wireless network client virtual machine;
wherein the processor executes the wireless network access point virtual machine and the wireless network client virtual machine concurrently;
wherein the wireless network client virtual machine comprises
a first virtual wireless port to communicate with the port, and
a first virtual bridge to communicate with the first virtual wireless port; and
wherein the wireless network access point virtual machine comprises
a second virtual wireless port to communicate with the port,
a virtual distribution service port to communicate with the first virtual bridge, and
a second virtual bridge to communicate with the second virtual wireless port and the virtual distribution service port.
9. A method for a wireless network device to communicate with a network, the method comprising;
storing an image in the wireless networking device, the image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the plurality of virtual machines comprises one of a plurality of wireless network applications to execute on the multi-tasking operating system;
executing the plurality of virtual machines;
creating one of a plurality of virtual machine queues for each of the plurality of virtual machines and a processor queue for a processor that is separate from the plurality of virtual machine queues;
storing, in the processor queue, data to be processed for one of the plurality of virtual machines that is being executed; and
creating a copy in one of the plurality of virtual machine queues of the data in the processor queue when the one of the plurality of virtual machines is executing,
wherein when the one of the plurality of virtual machines resumes executing after another of the plurality of virtual machines was executing, copying the data from the one of the plurality of virtual machine queues to the processor queue.
10. The method of claim 9, wherein the wireless network device is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
11. The method of claim 9, wherein the image is stored in a non-volatile memory of the wireless network device, and the method further comprises:
copying the image from the non-volatile memory to a volatile memory; and
wherein the plurality of virtual machines are executed from the volatile memory.
12. The method of claim 9, wherein at least one of the plurality of wireless network applications is selected from the group consisting of:
a wireless network access point;
a wireless network client;
a wireless network point-to-point bridge;
a wireless network multi-point bridge; and
a wireless network repeater.
13. The method of claim 9, further comprising:
executing selected ones of the plurality of virtual machines in accordance with an input.
14. The method of claim 9, further comprising:
executing the plurality of virtual machines concurrently.
15. A wireless network device for communicating with a network, the wireless network device comprising:
a memory to store an image, the image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the plurality of virtual machines comprises one of a plurality of wireless network applications to execute on the multi-tasking operating system;
a plurality of virtual machine device drivers, wherein each one of the plurality of virtual machines directly communicates with a respective one of the plurality of virtual machine device drivers;
a processor to execute the plurality of virtual machines; and
a bus to communicate with the processor and the network,
wherein the memory comprises one of a plurality of virtual machine queues for each of the plurality of virtual machines and a processor queue for the processor that is separate from the plurality of virtual machine queues,
wherein the processor stores data to be processed in the processor queue for members of the plurality of virtual machines being executed by the processor,
wherein each respective one of the plurality of virtual machines creates a copy in a respective one of the plurality of virtual machine queues of the data in the processor queue when the processor is executing the respective one of the plurality of virtual machines, and
wherein when the processor resumes executing a first of the plurality of virtual machines after executing a second of the plurality of virtual machines, the first of the plurality of virtual machines copies the data from the respective one of the plurality of virtual machine queues for the first of the plurality of virtual machines to the processor queue.
16. The wireless network device of claim 15, wherein each of the plurality of virtual machines is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
17. The wireless network device of claim 15, wherein the memory comprises a non-volatile memory, and the wireless network device further comprises:
a volatile memory; and
a memory controller to create a copy of the image from the non-volatile memory to the volatile memory,
wherein the processor executes the plurality of virtual machines from the volatile memory.
18. The wireless network device of claim 15, wherein the image further comprises:
a bus interface driver to communicate with the plurality of virtual machine device drivers and the bus.
19. The wireless network device of claim 15, further comprising:
a physical-layer device to communicate with the network; and
a media access controller to communicate with the physical-layer device and the bus.
20. The wireless network device of claim 19, wherein the image further comprises:
a first bus interface driver to communicate with the plurality of virtual machine device drivers and the bus;
a second bus interface driver to communicate with the bus; and
a media access controller device driver to communicate with the second bus interface driver and the media access controller.
21. The wireless network device of claim 15, wherein at least one of the plurality of wireless network applications is selected from the group consisting of:
a wireless network access point;
a wireless network client;
a wireless network point-to-point bridge;
a wireless network multi-point bridge; and
a wireless network repeater.
22. The wireless network device of claim 15, further comprising:
an input device to select one or more of the plurality of virtual machines;
wherein the processor executes the one or more of the plurality of virtual machines selected by the input device.
23. The wireless network device of claim 15, wherein the processor executes the plurality of virtual machines concurrently.
24. The wireless network device of claim 15:
wherein the plurality of virtual machines comprise a wireless network access point virtual machine and a wireless network client virtual machine;
wherein the processor executes the wireless network access point virtual machine and the wireless network client virtual machine concurrently;
wherein the wireless network client virtual machine comprises
a first virtual wireless port to communicate with the bus, and
a first virtual bridge to communicate with the first virtual wireless port; and
wherein the wireless network access point virtual machine comprises
a second virtual wireless port to communicate with bus,
a virtual distribution service port to communicate with the first virtual bridge, and
a second virtual bridge to communicate with the second virtual wireless port and the virtual distribution service port.
25. A wireless network device for communicating with a network, the wireless network device comprising:
memory means for storing an image, the image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the plurality of virtual machines comprises one of a plurality of wireless network applications to execute on the multi-tasking operating system;
processing means for executing the plurality of virtual machines; and
port means comprising
physical-layer means for communicating with the network, and
media access control means for communicate with the physical-layer means and the processing means,
wherein the memory means comprises one of a plurality of virtual machine queues for each of the plurality of virtual machines and a processor queue for the processing means that is separate from the plurality of virtual machine queues,
wherein the processing means stores data to be processed in the processor queue for members of the plurality of virtual machines being executed by the processing means,
wherein each respective one of the plurality of virtual machines creates a copy in a respective one of the plurality of virtual machine queues of the data in the processor queue when the processing means is executing the respective one of the plurality of virtual machines, and
wherein when the processing means resumes executing a first of the plurality of virtual machines after executing a second of the plurality of virtual machines, the first of the plurality of virtual machines copies the data from the respective one of the plurality of virtual machine queues for the first of the plurality of virtual machines to the processor queue.
26. The wireless network device of claim 25, wherein each of the plurality of virtual machines is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
27. The wireless network device of claim 25, wherein the memory means comprises non-volatile memory means, and the wireless network device further comprises:
volatile memory means; and
memory controller means for creating a copy of the image from the non-volatile memory means to the volatile memory means;
wherein the processing means executes the plurality of virtual machines from the volatile memory means.
28. The wireless network device of claim 25, wherein at least one of the plurality of wireless network applications is selected from the group consisting of:
a wireless network access point;
a wireless network client;
a wireless network point-to-point bridge;
a wireless network multi-point bridge; and
a wireless network repeater.
29. The wireless network device of claim 25, wherein the image further comprises:
a plurality of virtual machine device drivers to communicate with the plurality of virtual machines; and
a media access controller device driver to communicate with the plurality of virtual machine device drivers and the media access control means.
30. The wireless network device of claim 25, further comprising:
input means for selecting one or more of the plurality of virtual machines;
wherein the processing means executes the one or more of the plurality of virtual machines selected by the input means.
31. The wireless network device of claim 25, wherein the processing means executes the plurality of virtual machines concurrently.
32. The wireless network device of claim 25:
wherein the plurality of virtual machines comprise a wireless network access point virtual machine and a wireless network client virtual machine;
wherein the processing means executes the wireless network access point virtual machine and the wireless network client virtual machine concurrently;
wherein the wireless network client virtual machine comprises
a first virtual wireless port to communicate with the port means, and
a first virtual bridge to communicate with the first virtual wireless port; and
wherein the wireless network access point virtual machine comprises
a second virtual wireless port to communicate with the port means,
a virtual distribution service port to communicate with the first virtual bridge, and
a second virtual bridge to communicate with the second virtual wireless port and the virtual distribution service port.
33. A computer program embodying instructions recorded on a computer readable medium executable by a computer for a wireless network device to communicate with a network, the computer program comprising instructions for:
storing an image in the wireless network device, the image comprising a plurality of virtual machines and only one multi-tasking operating system, wherein each of the plurality of virtual machines comprises one of a plurality of wireless network applications to execute on the multi-tasking operating system;
executing the plurality of virtual machines;
creating one of a plurality of virtual machine queues for each virtual machine and a processor queue for a processor that is separate from the plurality of virtual machine queues;
storing, in the processor queue, data to be processed for one of the plurality of virtual machines that is being executed; and
creating a copy in one of the plurality of virtual machine queues of the data in the processor queue when the one of the plurality of virtual machines is executing,
wherein when the one of the plurality of virtual machines resumes executing after another of the plurality of virtual machines was executing, copying the data from the one of the plurality of virtual machine queues to the processor queue.
34. The computer program of claim 33, wherein the wireless network device is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
35. The computer program of claim 33, wherein:
the image is stored in a non-volatile memory, and
the computer program further comprises instructions for:
copying the image from the non-volatile memory to a volatile memory,
wherein the plurality of virtual machines are executed from the volatile memory.
36. The computer program of claim 33, wherein at least one of the plurality of wireless network applications is selected from the group consisting of:
a wireless network access point;
a wireless network client;
a wireless network point-to-point bridge;
a wireless network multi-point bridge; and
a wireless network repeater.
37. The computer program of claim 33, further comprising instructions for:
executing selected ones of the plurality of virtual machines in accordance with an input.
38. The computer program of claim 33, further comprising instructions for:
executing a plurality of the plurality of virtual machines concurrently.
39. A wireless network device for communicating with a network, the wireless network device comprising:
memory means for storing an image, the image comprising a plurality of virtual machines and only one-multi-tasking operating system, wherein each of the plurality of virtual machines comprises one of a plurality of wireless network applications to execute on the multi-tasking operating system;
processing means for executing the plurality of virtual machines;
a plurality of virtual machine device drivers, wherein each of the plurality of virtual machines directly communicates with a respective one of the plurality of virtual machine device drivers; and
bus means for communicating with the processing means and the network,
wherein the memory means comprises one of a plurality of virtual machine queues for each of the plurality of virtual machines and a processor queue for the processing means that is separate from the plurality of virtual machine queues,
wherein the processing means stores data to be processed in the processor queue for members of the plurality of virtual machines being executed by the processing means,
wherein each respective one of the plurality of virtual machines creates a copy in a respective one of the plurality of virtual machine queues of the data in the processor queue when the processing means is executing the respective one of the plurality of virtual machines, and
wherein when the processing means resumes executing a first of the plurality of virtual machines after executing a second of the plurality of virtual machines, the first of the plurality of virtual machines copies the data from the respective one of the plurality of virtual machine queues to the processor queue.
40. The wireless network device of claim 39, wherein each of the plurality of virtual machines is compliant with a standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g and 802.11n.
41. The wireless network device of claim 39, wherein the memory means comprises non-volatile memory means, and the wireless network device further comprises:
volatile memory means; and
memory controller means for creating a copy of the image from the non-volatile memory means to the volatile memory means;
wherein the processing means executes the plurality of virtual machines from the volatile memory means.
42. The wireless network device of claim 39, wherein the image further comprises:
a bus interface driver to communicate with the plurality of virtual machine device drivers and the bus means.
43. The wireless network device of claim 39, further comprising:
a physical-layer device means for communicating with the network; and
media access control means for communicating with the physical-layer device means and the bus means.
44. The wireless network device of claim 43, wherein the image further comprises:
a plurality of virtual machine device drivers to communicate with the plurality of virtual machines;
a first bus interface driver to communicate with the plurality of virtual machine device drivers and the bus means;
a second bus interface driver to communicate with the bus means; and
a media access controller device driver to communicate with the second bus interface driver and the media access control means.
45. The wireless network device of claim 39, wherein at least one of the plurality of wireless network applications is selected from the group consisting of:
a wireless network access point;
a wireless network client;
a wireless network point-to-point bridge;
a wireless network multi-point bridge; and
a wireless network repeater.
46. The wireless network device of claim 39, further comprising:
input means for selecting one or more of the plurality of virtual machines,
wherein the processing means executes the one or more of the plurality of virtual machines selected by the input means.
47. The wireless network device of claim 39, wherein the processing means executes a plurality of the plurality of virtual machines concurrently.
48. The wireless network device of claim 39:
wherein the plurality of virtual machines comprise a wireless network access point virtual machine and a wireless network client virtual machine;
wherein the processing means executes the wireless network access point virtual machine and the wireless network client virtual machine concurrently;
wherein the wireless network client virtual machine comprises
a first virtual wireless port to communicate with the bus means, and
a first virtual bridge to communicate with the first virtual wireless port; and
wherein the wireless network access point virtual machine comprises
a second virtual wireless port to communicate with the bus means,
a virtual distribution service port to communicate with the first virtual bridge, and
a second virtual bridge to communicate with the second virtual wireless port and the virtual distribution service port.
US10/829,131 2004-04-21 2004-04-21 All-in-one wireless network device Expired - Fee Related US7768959B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/829,131 US7768959B1 (en) 2004-04-21 2004-04-21 All-in-one wireless network device
US12/845,315 US8018892B1 (en) 2004-04-21 2010-07-28 All-in-one wireless network device
US13/230,595 US8582507B1 (en) 2004-04-21 2011-09-12 All-in-one wireless network device
US14/076,732 US9195485B1 (en) 2004-04-21 2013-11-11 Method and apparatus for concurrently maintaining queues for multiple virtual machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/829,131 US7768959B1 (en) 2004-04-21 2004-04-21 All-in-one wireless network device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/845,315 Continuation US8018892B1 (en) 2004-04-21 2010-07-28 All-in-one wireless network device

Publications (1)

Publication Number Publication Date
US7768959B1 true US7768959B1 (en) 2010-08-03

Family

ID=42358851

Family Applications (4)

Application Number Title Priority Date Filing Date
US10/829,131 Expired - Fee Related US7768959B1 (en) 2004-04-21 2004-04-21 All-in-one wireless network device
US12/845,315 Expired - Lifetime US8018892B1 (en) 2004-04-21 2010-07-28 All-in-one wireless network device
US13/230,595 Active 2024-12-24 US8582507B1 (en) 2004-04-21 2011-09-12 All-in-one wireless network device
US14/076,732 Expired - Fee Related US9195485B1 (en) 2004-04-21 2013-11-11 Method and apparatus for concurrently maintaining queues for multiple virtual machines

Family Applications After (3)

Application Number Title Priority Date Filing Date
US12/845,315 Expired - Lifetime US8018892B1 (en) 2004-04-21 2010-07-28 All-in-one wireless network device
US13/230,595 Active 2024-12-24 US8582507B1 (en) 2004-04-21 2011-09-12 All-in-one wireless network device
US14/076,732 Expired - Fee Related US9195485B1 (en) 2004-04-21 2013-11-11 Method and apparatus for concurrently maintaining queues for multiple virtual machines

Country Status (1)

Country Link
US (4) US7768959B1 (en)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080123676A1 (en) * 2006-08-28 2008-05-29 Cummings Gregory D Shared input-output device
US20130024920A1 (en) * 2011-07-21 2013-01-24 International Business Machines Corporation Virtual computer and service
US20130279472A1 (en) * 2012-04-06 2013-10-24 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US20130322335A1 (en) * 2012-06-05 2013-12-05 VIMware, Inc. Controlling a paravirtualized wireless interface from a guest virtual machine
EP2725812A1 (en) * 2012-10-23 2014-04-30 Kabushiki Kaisha Toshiba Medium, electronic device, connection system, and connection control method
US20150113594A1 (en) * 2013-10-18 2015-04-23 Vixs Systems, Inc. Processing system with virtual clients and methods for use therewith
US20160062922A1 (en) * 2014-09-02 2016-03-03 Kabushiki Kaisha Toshiba Memory system capable of wireless communication and method of controlling memory system
US9307568B2 (en) 2012-04-06 2016-04-05 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US9320074B2 (en) 2012-04-06 2016-04-19 Suitable Technologies, Inc. Method for wireless connectivity continuity and quality
US9320076B2 (en) 2012-04-06 2016-04-19 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US9380562B1 (en) 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for providing notifications from a virtual device to a disconnected physical device
US9380523B1 (en) 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for connecting roaming mobile devices to a virtual device platform
US9380456B1 (en) * 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for dynamically switching operating systems in a virtual mobile device platform
US20160241702A1 (en) * 2014-05-29 2016-08-18 Fortinet, Inc. Management of wireless access points via virtualization
US9619673B1 (en) 2013-01-22 2017-04-11 Hypori, Inc. System, method and computer program product for capturing touch events for a virtual mobile device platform
US9667703B1 (en) 2013-01-22 2017-05-30 Hypori, Inc. System, method and computer program product for generating remote views in a virtual mobile device platform
US9697629B1 (en) 2013-01-22 2017-07-04 Hypori, Inc. System, method and computer product for user performance and device resolution settings
US9819593B1 (en) 2013-01-22 2017-11-14 Hypori, Inc. System, method and computer program product providing bypass mechanisms for a virtual mobile device platform
US9853874B2 (en) 2015-03-23 2017-12-26 Brocade Communications Systems, Inc. Flow-specific failure detection in SDN networks
US9992273B2 (en) 2015-07-10 2018-06-05 Brocade Communications Systems LLC Intelligent load balancer selection in a multi-load balancer environment
US10820259B2 (en) 2012-04-06 2020-10-27 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US10939493B2 (en) 2012-04-06 2021-03-02 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10945182B2 (en) 2012-04-06 2021-03-09 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US10952262B2 (en) 2012-04-06 2021-03-16 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10952261B2 (en) 2012-04-06 2021-03-16 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US10966103B2 (en) 2012-04-06 2021-03-30 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10966136B2 (en) 2012-04-06 2021-03-30 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10979956B2 (en) 2012-04-06 2021-04-13 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US11659041B2 (en) 2012-09-24 2023-05-23 Blue Ocean Robotics Aps Systems and methods for remote presence

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2877920A4 (en) 2012-07-25 2016-03-23 Hewlett Packard Development Co Computer device and method for converting gesture
US9811531B2 (en) 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US11016820B2 (en) * 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US11076301B1 (en) * 2014-02-13 2021-07-27 Marvell Asia Pte, Ltd. Multi-mode network access device

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572528A (en) * 1995-03-20 1996-11-05 Novell, Inc. Mobile networking method and apparatus
US5644576A (en) * 1994-10-26 1997-07-01 International Business Machines Corporation Medium access control scheme for wireless LAN using a variable length interleaved time division frame
US20020089875A1 (en) * 2001-01-11 2002-07-11 Mitsubishi Denki Kabushiki Kaisha Microcomputer
US20030212761A1 (en) * 2002-05-10 2003-11-13 Microsoft Corporation Process kernel
US20040010788A1 (en) * 2002-07-12 2004-01-15 Cota-Robles Erik C. System and method for binding virtual machines to hardware contexts
US20040081119A1 (en) * 2002-10-28 2004-04-29 Zhun Zhong Reducing packet drop in IEEE 802.11 handoff by packet forwarding using driver image queue
US20050078624A1 (en) * 2003-07-22 2005-04-14 Zhengjin Shu Method and apparatus for automatic configuration of wireless networks
US20050102671A1 (en) * 2003-11-06 2005-05-12 Intel Corporation Efficient virtual machine communication via virtual machine queues
US20050138197A1 (en) * 2003-12-19 2005-06-23 Venables Bradley D. Queue state mirroring
US20050174962A1 (en) * 2004-02-05 2005-08-11 David Gurevich Generic client for communication devices
US20060123416A1 (en) * 2004-12-03 2006-06-08 Ivan Cibrario Bertolotti Process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
US7290178B2 (en) * 2004-04-02 2007-10-30 Intel Corporation Methods and apparatus to enable code-based bus performance analysis
US7464138B2 (en) * 2002-03-29 2008-12-09 International Business Machines Corporation Mirror queue in a shared queue environment

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644576A (en) * 1994-10-26 1997-07-01 International Business Machines Corporation Medium access control scheme for wireless LAN using a variable length interleaved time division frame
US5572528A (en) * 1995-03-20 1996-11-05 Novell, Inc. Mobile networking method and apparatus
US20020089875A1 (en) * 2001-01-11 2002-07-11 Mitsubishi Denki Kabushiki Kaisha Microcomputer
US7464138B2 (en) * 2002-03-29 2008-12-09 International Business Machines Corporation Mirror queue in a shared queue environment
US20030212761A1 (en) * 2002-05-10 2003-11-13 Microsoft Corporation Process kernel
US20040010788A1 (en) * 2002-07-12 2004-01-15 Cota-Robles Erik C. System and method for binding virtual machines to hardware contexts
US20040081119A1 (en) * 2002-10-28 2004-04-29 Zhun Zhong Reducing packet drop in IEEE 802.11 handoff by packet forwarding using driver image queue
US20050078624A1 (en) * 2003-07-22 2005-04-14 Zhengjin Shu Method and apparatus for automatic configuration of wireless networks
US20050102671A1 (en) * 2003-11-06 2005-05-12 Intel Corporation Efficient virtual machine communication via virtual machine queues
US20050138197A1 (en) * 2003-12-19 2005-06-23 Venables Bradley D. Queue state mirroring
US20050174962A1 (en) * 2004-02-05 2005-08-11 David Gurevich Generic client for communication devices
US7290178B2 (en) * 2004-04-02 2007-10-30 Intel Corporation Methods and apparatus to enable code-based bus performance analysis
US20060123416A1 (en) * 2004-12-03 2006-06-08 Ivan Cibrario Bertolotti Process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
"About eCOS," http://sources.redhat.com/ecos/about.html, as appeared on website Apr. 21, 2004, 3 pages, Red Hat Inc., US.
802.11n; IEEE P802.11-04/0889r6; Wireless LANs, TGn Sync Proposal Technical Specification; May 2005; 131 pages.
ANSI/IEEE Std 802.11, 1999 Edition; Information technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications; LAN/MAN Standards Committee of the IEEE Computer Society; 528 pages.
ANSI/IEEE Std 802.11, 1999 Edition; Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications; LAN/MAN Standards Committee of the IEEE Computer Society; 528 pages.
IEEE P802.11g/D8.2, Apr 2003 (Supplement to ANSI/IEEE Std 802.11-1999(Reaff 2003)); Draft Supplement to Standard [for] Information Technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Further Higher Data Rate Extension in the 2.4 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; 69 pages.
IEEE P802.11g/D8.2, Apr 2003 (Supplement to ANSI/IEEE Std 802.11-1999(Reaff 2003)); Draft Supplement to Standard [for] Information Technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Further Higher Data Rate Extension in the 2.4 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; 69 pages.
IEEE Std 802.11a-1999 (Supplement to IEEE Std 802.11-1999) [Adopted by ISO/IEC and redesignated as ISO/IEC 8802-11: 1999/Amd 1:2000(E)]; Supplement to IEEE Standard for Information technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications High-speed Physical Layer in the 5 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; 91 pages.
IEEE Std 802.11a-1999 (Supplement to IEEE Std 802.11-1999) [Adopted by ISO/IEC and redesignated as ISO/IEC 8802-11: 1999/Amd 1:2000(E)]; Supplement to IEEE Standard for Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications High-speed Physical Layer in the 5 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; 91 pages.
IEEE Std 802.11b-1999 (Supplement to IEEE Std 802.11-1999 Edition); Supplement to IEEE Standard for Information technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirement -Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; Sep. 16, 1999 IEEE-SA Standards Board; 96 pages.
IEEE Std 802.11b-1999 (Supplement to IEEE Std 802.11-1999 Edition); Supplement to IEEE Standard for Information technology—Telecommunications and information exchange between systems—Local and metropolitan area networks—Specific requirement —Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band; LAN/MAN Standards Committee of the IEEE Computer Society; Sep. 16, 1999 IEEE-SA Standards Board; 96 pages.

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8014413B2 (en) * 2006-08-28 2011-09-06 Intel Corporation Shared input-output device
US20080123676A1 (en) * 2006-08-28 2008-05-29 Cummings Gregory D Shared input-output device
US8943564B2 (en) * 2011-07-21 2015-01-27 International Business Machines Corporation Virtual computer and service
US20130024920A1 (en) * 2011-07-21 2013-01-24 International Business Machines Corporation Virtual computer and service
US9003503B2 (en) 2011-07-21 2015-04-07 International Business Machines Corporation Virtual computer and service
US10939493B2 (en) 2012-04-06 2021-03-02 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10979956B2 (en) 2012-04-06 2021-04-13 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10470237B2 (en) 2012-04-06 2019-11-05 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US10470235B2 (en) 2012-04-06 2019-11-05 Suitable Technologies, Inc. Method for wireless connectivity continuity and quality
US11659464B2 (en) 2012-04-06 2023-05-23 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10687272B2 (en) * 2012-04-06 2020-06-16 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US11134434B2 (en) 2012-04-06 2021-09-28 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US9307568B2 (en) 2012-04-06 2016-04-05 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US9320074B2 (en) 2012-04-06 2016-04-19 Suitable Technologies, Inc. Method for wireless connectivity continuity and quality
US9320076B2 (en) 2012-04-06 2016-04-19 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US11039362B2 (en) 2012-04-06 2021-06-15 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US10820259B2 (en) 2012-04-06 2020-10-27 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US11032865B2 (en) 2012-04-06 2021-06-08 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US20190150070A1 (en) * 2012-04-06 2019-05-16 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US10966136B2 (en) 2012-04-06 2021-03-30 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10966103B2 (en) 2012-04-06 2021-03-30 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US10952261B2 (en) 2012-04-06 2021-03-16 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US10952262B2 (en) 2012-04-06 2021-03-16 Blue Ocean Robotics Aps Method for wireless connectivity continuity and quality
US20130279472A1 (en) * 2012-04-06 2013-10-24 Suitable Technologies, Inc. System for wireless connectivity continuity and quality
US10945182B2 (en) 2012-04-06 2021-03-09 Blue Ocean Robotics Aps System for wireless connectivity continuity and quality
US9680971B2 (en) * 2012-06-05 2017-06-13 Vmware, Inc. Controlling a paravirtualized wireless interface from a guest virtual machine
US9042304B2 (en) * 2012-06-05 2015-05-26 Vmware, Inc. Controlling a paravirtualized wireless interface from a guest virtual machine
US20130322335A1 (en) * 2012-06-05 2013-12-05 VIMware, Inc. Controlling a paravirtualized wireless interface from a guest virtual machine
US11659041B2 (en) 2012-09-24 2023-05-23 Blue Ocean Robotics Aps Systems and methods for remote presence
EP2725812A1 (en) * 2012-10-23 2014-04-30 Kabushiki Kaisha Toshiba Medium, electronic device, connection system, and connection control method
US9380523B1 (en) 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for connecting roaming mobile devices to a virtual device platform
US9622068B2 (en) 2013-01-22 2017-04-11 Hypori, Inc. System, method and computer program product for connecting roaming mobile devices to a virtual device platform
US9819593B1 (en) 2013-01-22 2017-11-14 Hypori, Inc. System, method and computer program product providing bypass mechanisms for a virtual mobile device platform
US9619673B1 (en) 2013-01-22 2017-04-11 Hypori, Inc. System, method and computer program product for capturing touch events for a virtual mobile device platform
US9380456B1 (en) * 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for dynamically switching operating systems in a virtual mobile device platform
US10459772B2 (en) 2013-01-22 2019-10-29 Intelligent Waves Llc System, method and computer program product for capturing touch events for a virtual mobile device platform
US9380562B1 (en) 2013-01-22 2016-06-28 Hypori, Inc. System, method and computer program product for providing notifications from a virtual device to a disconnected physical device
US9697629B1 (en) 2013-01-22 2017-07-04 Hypori, Inc. System, method and computer product for user performance and device resolution settings
US9674171B2 (en) 2013-01-22 2017-06-06 Hypori, Inc. System, method and computer program product for providing notifications from a virtual device to a disconnected physical device
US9667703B1 (en) 2013-01-22 2017-05-30 Hypori, Inc. System, method and computer program product for generating remote views in a virtual mobile device platform
US10958756B2 (en) 2013-01-22 2021-03-23 Hypori, LLC System, method and computer program product for capturing touch events for a virtual mobile device platform
US20150113594A1 (en) * 2013-10-18 2015-04-23 Vixs Systems, Inc. Processing system with virtual clients and methods for use therewith
CN104573546A (en) * 2013-10-18 2015-04-29 Vixs系统公司 Processing system with virtual clients and methods for use therewith
US20160241702A1 (en) * 2014-05-29 2016-08-18 Fortinet, Inc. Management of wireless access points via virtualization
US9936059B2 (en) * 2014-05-29 2018-04-03 Fortinet, Inc. Management of wireless access points via virtualization
US10095638B2 (en) * 2014-09-02 2018-10-09 Toshiba Memory Corporation Memory system capable of wireless communication and method of controlling memory system
US20160062922A1 (en) * 2014-09-02 2016-03-03 Kabushiki Kaisha Toshiba Memory system capable of wireless communication and method of controlling memory system
US9853874B2 (en) 2015-03-23 2017-12-26 Brocade Communications Systems, Inc. Flow-specific failure detection in SDN networks
US9992273B2 (en) 2015-07-10 2018-06-05 Brocade Communications Systems LLC Intelligent load balancer selection in a multi-load balancer environment

Also Published As

Publication number Publication date
US8018892B1 (en) 2011-09-13
US9195485B1 (en) 2015-11-24
US8582507B1 (en) 2013-11-12

Similar Documents

Publication Publication Date Title
US7768959B1 (en) All-in-one wireless network device
CN100448208C (en) System and method for concurring WLAN and WPAN wireless modes from a single device
US7458075B2 (en) Virtual USB port system and method
US8407367B2 (en) Unified connector architecture
US8838865B2 (en) Hot plug ad hoc computer resource allocation
US20050223119A1 (en) Operating a remote USB host controller
WO2018077198A1 (en) Method, apparatus, and system for deploying virtual network
US6675237B1 (en) System and intelligent dock using a symmetric extended bus bridge and method therefor
US20140059257A1 (en) Keyboard-video-mouse system and method of providing and using the same
JP5624997B2 (en) Communication protocol for sharing memory resources among multiple components of a device
CN115943456A (en) LED display screen controller and display control system
CN204117142U (en) Electronic device for providing instant switching and sharing of universal serial bus electronic equipment by host
CN104221343B (en) For the technology in input-output apparatus using the switch identification assigned
US6370591B2 (en) Method and apparatus for running simultaneous applications through the same port using supplementary drivers through a main driver
JP2008500656A (en) Method and system for processing jobs with two dual-role devices
US20080270512A1 (en) Virtual network projection system supporting multiple projection sources and method thereof
CN105491419A (en) Combined TV and data sharing method
CN101882110A (en) Method for downloading data and terminal equipment
CN107861803A (en) Cpci bus RS422 communications driving method under a kind of XP systems based on interruption
US10075398B2 (en) Systems and methods for enabling a host system to use a network interface of a management controller
JPWO2004068356A1 (en) Data communication system, data communication method, and data communication program
CN108235822A (en) The implementation method and device of virtual SIM card, storage medium, electronic equipment
JP4294055B2 (en) Method and apparatus for sharing one GPRS module between two computing devices
EP3583821B1 (en) Operating mode configuration
JP3103427U (en) Matching type tracker

Legal Events

Date Code Title Description
AS Assignment

Owner name: MARVELL INTERNATIONAL LTD., BERMUDA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARVELL SEMICONDUCTOR, INC.;REEL/FRAME:015253/0143

Effective date: 20040421

Owner name: MARVELL SEMICONDUCTOR, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, JAMES CHIEH-TSUNG;VU, CHUONG;LAW, CHOR-TECK;AND OTHERS;REEL/FRAME:015253/0168

Effective date: 20040421

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

AS Assignment

Owner name: CAVIUM INTERNATIONAL, CAYMAN ISLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARVELL INTERNATIONAL LTD.;REEL/FRAME:052918/0001

Effective date: 20191231

AS Assignment

Owner name: MARVELL ASIA PTE, LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM INTERNATIONAL;REEL/FRAME:053475/0001

Effective date: 20191231

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20220803