Patent
System and method for socket backed host controller interface emulation for virtual bluetooth adapter
العنوان: | System and method for socket backed host controller interface emulation for virtual bluetooth adapter |
---|---|
Patent Number: | 8,798,541 |
تاريخ النشر: | August 05, 2014 |
Appl. No: | 13/084327 |
Application Filed: | April 11, 2011 |
مستخلص: | A Bluetooth adapter is shared among guest operating systems of different virtual machines running on a common host computer system using a Bluetooth virtualization stack. The Bluetooth virtualization stack is exposed as a Bluetooth adapter to a guest operating system and as a Bluetooth application to a host operating system. The Bluetooth virtualization stack parses individual socket streams associated with an asynchronous connectionless link (ACL) originating from the guest operating system and couples the socket streams to an application interface associated within the host operating system. Plural instances of the guest operating system and corresponding Bluetooth virtualization stack collectively present a set of socket connections to the host operating system. A Bluetooth driver within the host operating system multiplexes the set of socket streams, advantageously sharing the Bluetooth adapter among different instances of the guest operating system. |
Inventors: | Scott, Micah Elizabeth (Mountain View, CA, US) |
Assignees: | VMware, Inc. (Palo Alto, CA, US) |
Claim: | 1. A system comprising: a plurality of guest virtual machines (VMs) executing on a physical computer system having a wireless communication adapter configured therein, each VM implementing a first wireless driver configured to transmit and receive data packets encapsulated in a first format to and from a corresponding wireless virtualization stack; virtualization software running on the physical computer system that includes the wireless virtualization stacks, each of which corresponds to one of the VMs; and a second wireless device driver running within a host operating system executing on the physical computer system that is interfaced between each of the wireless virtualization stacks and the wireless communication adapter and is configured to transmit and receive data packets encapsulated in a second format to and from the wireless communication stacks. |
Claim: | 2. The system of claim 1 , wherein the first wireless driver of each VM implements a wireless protocol stack configured to establish an asynchronous connectionless link for transmitting and receiving data packets encapsulated in the fisrt format to and from the corresponding wireless virtualization stack. |
Claim: | 3. The system of claim 2 , wherein the wireless protocol stack implemented in each VM is a Bluetooth protocol stack. |
Claim: | 4. The system of claim 1 , wherein, the second wireless device driver interfaced between each of the wireless virtualization stacks and the wireless communication adapter is configured to establish a data link between one of the wireless virtualization stacks and a wireless device using the wireless communication adapter. |
Claim: | 5. The system of claim 4 , wherein each wireless virtualization stack is configured to receive a data packet from the corresponding VM, extract a payload data from the data packet, and transmit the payload data to the second wireless device driver. |
Claim: | 6. The system of claim 4 , wherein each wireless virtualization stack is configured to receive payload data from the second wireless device driver, bundle the payload data to generate a data packet, and transmit the data packet to the corresponding virtual machine. |
Claim: | 7. The system of claim 1 , wherein the second wireless communication adapter is configured to transmit and receive data packets encapsulated in the first format with the wireless communication adapter. |
Claim: | 8. A method for sharing a wireless communication adapter between virtual machines running on a common host platform, each of the virtual machines implementing a wireless protocol stack configured to establish data links, the method comprising: in a first virtual machine, encapsulating a first wireless communication packet into a first data packet as payload data of the first data packet, wherein the first wireless communication packet is in a first format and the first data packet is in a second format; in a second virtual machine, encapsulating a second wireless communication packet into a second data packet as payload data of the second data packet, wherein the second wireless communication packet is in the first format and the second data packet is in the second format; receiving the first data packet from the first virtual machine and unbundling the payload data from the received first data packet; receiving the second data packet from the second virtual machine and unbundling the payload data from the received second data packet; and transmitting the payload data unbundled from the received first and second data packets to the wireless communication adapter. |
Claim: | 9. The method of claim 8 , further comprising: receiving unbundled payload data from the wireless communication adapter; bundling a first portion of the unbundled payload data to generate data packets and transmitting the data packets to a first virtual machine; and bundling a second portion of the unbundled payload data to generate data packets and transmitting the data packets to a second virtual machine. |
Claim: | 10. The method of claim 8 , wherein the payload data unbundled from the received first and second data packets is transmitted to the wireless communication adapter via a driver executing within an operating system of the common host platform. |
Claim: | 11. The method of claim 8 , wherein the received first and second data packets comprise universal serial bus (USB) data packets. |
Claim: | 12. The method of claim 11 , wherein the payload data unbundled from the received first and second data packets comprises asynchronous connectionless link (ACL) data packets. |
Claim: | 13. The method of claim 8 , further comprising: receiving a request to authenticate a connection with a wireless device; determining that the wireless device has not been previously authenticated; and authenticating the connection with the wireless device via an operating system of the common host platform. |
Claim: | 14. The method of claim 13 , further comprising: authenticating a connection with a virtual wireless device with a proxy link key. |
Claim: | 15. The method of claim 11 , wherein the payload data unbundled from the received first and second data packets comprises Bluetooth data packets. |
Claim: | 16. A non-transitory computer readable storage medium comprising instructions for causing a computer system to carry out a method for sharing a wireless communication adapter between virtual machines running on a common host platform, the method comprising: in a first virtual machine, encapsulating a first wireless communication packet into a first data packet as payload data of the first data packet, wherein the first wireless communication packet is in a first format and the first data packet is in a second format; in a second virtual machine, encapsulating a second wireless communication packet into a second data packet as payload data of the second data packet, wherein the second wireless communication packet is in the first format and the second data packet is in the second format; receiving the first data packet from the first virtual machine and unbundling the payload data from the received first data packet; receiving the second data packet from the second virtual machine and unbundling the payload data from the received second data packet; and transmitting the payload data unbundled from the received first and second data packets to the wireless communication adapter. |
Claim: | 17. The non-transitory computer readable storage medium of claim 16 , wherein the received first and second data packets comprise universal serial bus (USB) data packets and the payload data unbundled from the received first and second data packets comprises asynchronous connectionless link (ACL) data packets. |
Claim: | 18. The non-transitory computer readable storage medium of claim 16 , wherein the method further comprises: receiving unbundled payload data from the wireless communication adapter; bundling a first portion of the unbundled payload data to generate data packets and transmitting the data packets to a first virtual machine; and bundling a second portion of the unbundled payload data to generate data packets and transmitting the data packets to a second virtual machine. |
Claim: | 19. The non-transitory computer readable storage medium of claim 16 , wherein the method further comprises: receiving a request to authenticate a connection with a wireless device; determining that the wireless device has not been previously authenticated; and authenticating the connection with the wireless device via an operating system of the common host platform. |
Claim: | 20. The non-transitory computer readable storage medium of claim 19 , wherein the method further comprises: authenticating a connection with a virtual wireless device with a proxy link key. |
Current U.S. Class: | 455/412 |
Patent References Cited: | 8327353 December 2012 Traut 8433801 April 2013 Yemini et al. 2002/0012329 January 2002 Atkinson et al. 2009/0144510 June 2009 Wibling et al. 2009/0204964 August 2009 Foley et al. 2010/0197326 August 2010 Ngo 2010/0284380 November 2010 Banerjee et al. 2010/0325644 December 2010 van der Linden et al. 2011/0093902 April 2011 De Los Reyes et al. 2011/0145418 June 2011 Pratt et al. 2011/0286380 November 2011 Zhu 2012/0203877 August 2012 Bartholomay et al. |
Primary Examiner: | Wendell, Andrew |
رقم الانضمام: | edspgr.08798541 |
قاعدة البيانات: | USPTO Patent Grants |
الوصف غير متاح. |