IP Library Granted Patent US 9,747,249
Granted Patent B2
US 9,747,249 · App. 14/656,368 · Granted Aug 29, 2017

Methods and systems to achieve multi-tenancy in RDMA over converged Ethernet

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 9,747,249
App. No.
14/656,368
Granted
Aug 29, 2017
Kind
B2
Abstract

A method for providing multi-tenancy support for RDMA in a system that includes a plurality of physical hosts. Each physical host hosts a set of data compute nodes (DCNs). The method, at an RDMA protocol stack of the first host, receives a packet that includes a request from a first DCN hosted on a first host for RDMA data transfer from a second DCN hosted on a second host. The method sends a set of parameters of an overlay network that are associated with the first DCN to an RDMA physical network interface controller of the first host. The set of parameters are used by the RDMA physical NIC to encapsulate the packet with an RDMA data transfer header and an overlay network header by using the set of parameters of the overlay network to transfer the encapsulated packet to the second physical host using the overlay network.

Claims (55)

1. A method for providing multi-tenancy support for remote direct memory access (RDMA) in a system comprising a plurality of physical hosts, each physical host hosting a set of data compute nodes (DCNs), the method comprising:

at an RDMA protocol stack of a first physical host, receiving a packet comprising a request from a first DCN hosted on the first host for RDMA data transfer from a second DCN hosted on a second physical host;

sending a set of parameters of an overlay network associated with the first DCN to a physical RDMA network interface controller (NIC) of the first host;

receiving RDMA data from the second DCN at the physical RDMA NIC; and

inserting the RDMA data from the physical RDMA NIC into a memory buffer of the first DCN to bypass an operating system of the first host and a virtualization software of the first host,

wherein the set of parameters are for the physical RDMA NIC to encapsulate the packet with (i) an RDMA data transfer header and (ii) an overlay network header using the set of parameters of the overlay network for transferring the encapsulated packet to the second physical host using the overlay network.

2. The method of claim 1 , wherein the first DCN and the second DCN are associated with different Internet Protocol (IP) addresses.

3. The method of claim 2 further comprising encapsulating the packet with a user datagram protocol (UDP) header and an IP header comprising an IP address of the first DCN and an IP address of the second DCN.

4. The method of claim 1 further comprising:

prior to requesting the RDMA data transfer, creating a unique connection identifier for an RDMA connection between the first and second DCNs; and

establishing the RDMA connection between the first and second DCNs.

5. The method of claim 4 further comprising:

creating a first queue pair by the RDMA protocol stack of the first host and a second queue pair by an RDMA protocol stack of the second host, each queue pair comprising a send queue and a receive queue; and

associating the set of parameters of the overlay network with the first and second queue pairs.

6. The method of claim 1 , wherein a DCN is a virtual machine (VM), wherein the PFE is a virtual switch.

7. The method of claim 1 , wherein the overlay network is a virtual extensible local area network (VXLAN).

8. The method of claim 1 , wherein a protocol used for the RDMA data transfer is one of RDMA over Converged Ethernet (RoCE) and Internet Wide Area RDMA Protocol (iWARP).

9. A method for providing multi-tenancy support for remote direct memory access (RDMA) in a system comprising a plurality of physical hosts, each physical host hosting a set of data compute nodes (DCNs), wherein a first physical host comprises a physical forwarding element (PFE) implementing a logical forwarding element (LFE), wherein a first DCN hosted on the first host is connected to a port of the LFE through a virtual network interface controller (NIC), the method comprising:

at an RDMA protocol stack of the first host, receiving a packet comprising a request from the first DCN for RDMA data transfer from a second DCN hosted on a physical second host;

from a set of parameters of a first tunnel endpoint of an overlay network associated with the first DCN and a set of parameters of a second tunnel end point associated with the second DCN, determining a first set of parameters of the overlay network;

sending the first set of parameters of the overlay network associated with the first DCN to a physical RDMA NIC of the first host; and

determining said port of the LFE is associated with the first tunnel endpoint of the overlay network,

wherein the set of parameters are for the physical RDMA NIC to encapsulate the packet with (i) an RDMA data transfer header and (ii) an overlay network header using the set of parameters of the overlay network for transferring the encapsulated packet to the second physical host using the overlay network.

10. A first physical host for hosting a set of data compute nodes (DCNs) and providing multi-tenancy support for remote direct memory access (RDMA) for the DCNs, the physical host comprising:

a physical RDMA network interface controller (NIC);

at least one processing unit; and

a non-transitory machine readable medium storing an RDMA protocol stack for execution by the processing unit to:

receive a packet comprising a request from a first DCN hosted on the first host for RDMA data transfer from a second DCN hosted on a second host; and

send a set of parameters of an overlay network associated with the first DCN to the RDMA physical NIC;

the RDMA physical NIC configured to:

use the set of parameters to encapsulate the packet with (i) an RDMA data transfer header and (ii) an overlay network header using the set of parameters of the overlay network; and

send the encapsulated packet to the second physical host using the overlay network;

receive RDMA data from the second DCN at the RDMA NIC; and

insert the RDMA data from the RDMA NIC into a memory buffer of the DCN to bypass an operating system of the first host and a virtualization software of the first host.

11. The physical host of claim 10 , wherein the first DCN and the second DCN are associated with different Internet Protocol (IP) addresses.

12. The physical host of claim 11 , the physical RDMA NIC further configured to encapsulate the packet with a user datagram protocol (UDP) header and an IP header comprising an IP address of the first DCN and an IP address of the second DCN.

13. The physical host of claim 10 , the RDMA protocol stack further configured to:

create, prior to requesting the RDMA data transfer, a unique connection identifier for an RDMA connection between the first and second DCNs; and

establish the RDMA connection between the first and second DCNs.

14. The physical host of claim 13 , the RDMA protocol stack further configured to:

create a first queue pair by the RDMA protocol stack of the first host and a second queue pair by an RDMA protocol stack of the second host, each queue pair comprising a send queue and a receive queue; and

associate the set of parameters of the overlay network with the first and second queue pairs.

15. The physical host of claim 10 , wherein a DCN is a virtual machine (VM), wherein the PFE is a virtual switch.

16. The physical host of claim 10 , wherein the overlay network is a virtual extensible local area network (VXLAN).

17. The physical host of claim 10 , wherein a protocol used for the RDMA data transfer is one of RDMA over Converged Ethernet (RoCE) and Internet Wide Area RDMA Protocol (iWARP).

18. A first physical host for hosting a set of data compute nodes (DCNs) and providing multi-tenancy support for remote direct memory access (RDMA) for the DCNs, the physical host comprising:

a physical RDMA network interface controller (NIC);

at least one processing unit; and

a non-transitory machine readable medium storing an RDMA protocol stack for execution by the processing unit to:

receive a packet comprising a request from a first DCN hosted on the first host for RDMA data transfer from a second DCN hosted on a second host, wherein the first DCN is connected to a port of a logical forwarding element (LFE) through a virtual NIC, the LFE implemented by a physical forwarding element (PFE) of the first host;

determine said port of the LFE is associated with a first tunnel endpoint of the overlay network; and

send a set of parameters of an overlay network associated with the first DCN to the physical RDMA NIC, said set of parameters of the overlay network determined from a set of parameters of the first tunnel endpoint and a set of parameters of a second tunnel end point associated with the second DCN;

the physical RDMA NIC configured to:

use the set of parameters to encapsulate the packet with (i) an RDMA data transfer header and (ii) an overlay network header using the set of parameters of the overlay network; and

send the encapsulated packet to the second physical host using the overlay network.

Assignments (3)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2016
From: VMWARE, INC.
To: NICIRA, INC.
Reel/Frame 038683/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2015
From: CHERIAN, SHOBY; INGALE, TANUJA; NARAHARI VENKATA, RAGHAVENDRA SUBBARAO
To: VMWARE, INC.
Reel/Frame 035155/0439 →