IP Library Granted Patent US 10,657,095
Granted Patent B2
US 10,657,095 · App. 15/704,278 · Granted May 19, 2020

Virtualizing connection management for virtual remote direct memory access (RDMA) devices

Inventors: Abhishek Srivastava (Sunnyvale, CA); Bryan Tan (Mountain View, CA); Aditya Sarwade (Santa Clara, CA)
Assignee: VMWARE, INC.
G06F15/17331G06F9/45558G06F9/547G06F15/167G06F2009/45583G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,657,095
App. No.
15/704,278
Granted
May 19, 2020
Kind
B2
Abstract

Described herein are systems, methods, and software to enhance virtualization connection management for virtual remote direct memory access (RDMA) devices. In one implementation, virtual machines may register with a hypervisor for the virtual machines, wherein the registration for each virtual machine includes at least one address for the virtual machine. Once registered, the hypervisor may identify a packet placed in a queue pair from a physical RDMA interface and determine whether a destination address in the packet corresponds to a virtual machine. If the destination address corresponds to a virtual machine, then the hypervisor may provide a callback to the virtual machine, wherein the callback provides access to the packet in the virtual machine as if the packet received at a virtual RDMA interface of the virtual machine.

Claims (47)

1. A method of managing packets identified in a queue pair for a physical remote direct memory access (RDMA) interface of a host computing system, the method comprising:

obtaining, in a hypervisor of the host computing system, one or more RDMA registrations each corresponding to a virtual machine running on the hypervisor of the host computing system, wherein each of the one or more RDMA registrations indicates at least one network address for the corresponding virtual machine;

identifying a packet in a receive queue of the queue pair received at the physical RDMA interface;

identifying that a destination network address for the packet corresponds to a virtual machine on the host computing system based on the one or more RDMA registrations; and

in response to identifying that the destination network address corresponds to a virtual machine on the host computing system, providing a callback for the packet to the virtual machine, wherein the callback provides access to the packet in the virtual machine as if the packet were received at a virtual RDMA interface for the virtual machine.

2. The method of claim 1 , wherein the queue pair comprises a General Services Interface (GSI) queue pair.

3. The method of claim 1 , wherein the at least one network address comprises a media access control (MAC) address.

4. The method of claim 1 , wherein the packet comprises a management datagram (MAD).

5. The method of claim 1 further comprising:

identifying a second packet to be transmitted via the physical RDMA interface from a virtual machine of the host computing system to a second physical computing system; and

posting the second packet in the queue pair.

6. The method of claim 5 further comprising:

determining whether a transfer of the second packet from the physical RDMA interface was successful; and

providing an indication to the virtual machine indicative of whether the transfer of the second packet from the physical RDMA interface was successful.

7. A host computing system comprising:

one or more non-transitory computer readable storage media;

a processing system operatively coupled to the one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media to manage packets identified in a queue pair for a physical remote direct memory access (RDMA) interface of the host computing system that, when read and executed by the processing system, direct the processing system to at least:

obtain one or more RDMA registrations each corresponding to a virtual machine running on the host computing system, wherein each of the one or more RDMA registrations indicates at least one network address for the corresponding virtual machine;

identify a packet in a receive queue of the queue pair received at the physical RDMA interface;

identify that a destination network address for the packet corresponds to a virtual machine on the host computing system based on the one or more RDMA registrations; and

in response to identifying that the destination network address corresponds to a virtual machine on the host computing system, provide a call back for the packet to the virtual machine, wherein the callback provides access to the packet in the virtual machine as if the packet were received at a virtual RDMA interface for the virtual machine.

8. The host computing system of claim 7 , wherein the queue pair comprises a General Service Interface (GSI) queue pair.

9. The apparatus of claim 8 , wherein the packet comprises a management datagram (MAD).

10. The apparatus of claim 8 , wherein the program instructions further direct the processing system to:

identify a second packet to be transmitted via the physical RDMA interface from a virtual machine of the host computing system to a second physical computing system;

post the second packet in the queue pair;

determine whether a transfer of the second packet from the physical RDMA interface was successful; and

provide an indication to the virtual machine indicative of whether the transfer of the second packet from the physical RDMA interface was successful.

11. The host computing system of claim 8 , wherein the at least one network address comprises a media access control (MAC) address.

12. The host computing system of claim 7 , wherein the packet comprises a management datagram (MAD).

13. The host computing system of claim 7 , wherein the program instructions further direct the processing system to:

identify a second packet to be transmitted via the physical RDMA interface from a virtual machine of the host computing system to a second physical computing system; and

post the second packet in the queue pair.

14. The host computing system of claim 13 , wherein the program instructions further direct the processing system to:

determine whether a transfer of the second packet from the physical RDMA interface was successful; and

provide an indication to the virtual machine indicative of whether the transfer of the second packet from the physical RDMA interface was successful.

15. The host computing system of claim 7 , wherein identifying the packet in the queue pair received at the physical RDMA interface comprises identifying the packet in the queue pair received at the physical RDMA interface from a second host computing system executing one or more virtual machines.

16. An apparatus comprising:

one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media to manage packets identified in a queue pair for a physical remote direct memory access (RDMA) interface of a host computing system that, when read and executed by a processing system, direct the processing system to at least:

obtain one or more RDMA registrations each corresponding to a virtual machine running on the host computing system, wherein each of the one or more RDMA registrations indicates at least one network address for the corresponding virtual machine;

identify a packet in a receive queue of the queue pair received at the physical RDMA interface;

identify that a destination network address for the packet corresponds to a virtual machine on the host computing system based on the one or more RDMA registrations; and

in response to identifying that the destination network address corresponds to a virtual machine on the host computing system, provide a call back for the packet to the virtual machine, wherein the callback provides access to the packet in the virtual machine as if the packet were received at a virtual RDMA interface for the virtual machine.

17. The apparatus of claim 16 , wherein the queue pair comprises a General Service Interface (GSI) queue pair.

18. The apparatus of claim 16 , wherein the at least one network address comprises a media access control (MAC) address.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2017
From: SRIVASTAVA, ABHISHEK; TAN, BRYAN; SARWADE, ADITYA
To: VMWARE, INC.
Reel/Frame 043587/0558 →
Continuity (1)
Related Publication 20190079896A1 · Mar 14, 2019
Cited By (1)
US 12,360,798