IP Library Granted Patent US 12,401,719
Granted Patent B2
US 12,401,719 · App. 18/236,311 · Granted Aug 26, 2025

Live workload migration for hardware offload capable NICs using RDMA

Inventors: Wenyi Jiang (Fremont, CA); Jingchun Jason Jiang (Beijing, CN); Ankur Kumar Sharma (Mountain View, CA)
Assignee: VMware LLC
H04L67/1097G06F9/45558G06F2009/4557
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 12,401,719
App. No.
18/236,311
Granted
Aug 26, 2025
Kind
B2
Abstract

Some embodiments of the invention provide a method of migrating a virtual machine (VM) from a first host computer to a second host computer, the first host computer having a first PNIC, the second host computer having a second PNIC, the first and second PNICs for performing at least one of network forwarding operations and middlebox service operations for the VM. At an RDMA client executing on a set of one or more processors of the second PNIC, the method receives a notification from the second host computer indicating a data migration that is performed to migrate the particular VM from the first host computer to the second host computer has started. Based on the notification, at the RDMA client, the method directs an RDMA server executing on the first PNIC to provide networking state data associated with at least one of network forwarding operations and middlebox service operations that the first PNIC performs for the VM. The provided networking state data resides in a memory of the first PNIC that is accessible to the RDMA server.

Claims (37)

1. A method of migrating a particular virtual machine (VM) from a first host computer to a second host computer, the first host computer having a first physical network interface card (PNIC) that performs at least one of network forwarding operations and middlebox service operations for the particular VM, the second host computer having a second PNIC for performing at least one of networking forwarding operations and middlebox service operations for the particular VM, the method comprising:

at an RDMVA (Remote Direct Memory Access) client executing on a set of one or more processors of the second PNIC of the second host computer:

receiving a notification from the second host computer indicating a data migration that is performed to migrate the particular VM from the first host computer to the second host computer has started;

based on the notification, directing an RDMA server executing on the first PNIC to provide networking state data associated with at least one of network forwarding operations and middlebox service operations that the first PNIC performs for the particular VM, wherein said provided networking state data resides in a memory of the first PNIC that is accessible to the RDMVA server;

after a migration, deleting the networking state data from the RDMA server;

configuring the second PNIC by writing the networking state data to a memory of the second PNIC and enabling, based on the networking state data, a forwarding element and a middlebox element of the second PNIC to perform the network forwarding operations and the middlebox service operations for the particular VM;

the first PNIC is associated with a set of physical ports that connect the first PNIC to a physical network;

each port in the set of physical ports is associated with (i) a particular identifier and (ii) a particular IP (Internet Protocol) address assigned to the first PNIC;

before receiving the notification, a compatibility test is performed to ensure the particular identifiers and particular IP addresses assigned to the first PNIC are available at the second host computer; and

wherein when the particular IP addresses are not available at the second host computer, a third host computer at which the particular IP addresses are available is identified for the data migration to migrate the particular VM from the first host computer to the third host computer.

2. The method of claim 1 , wherein said directing comprises: establishing communication with the RDMA server on the first PNIC of the first host computer; and using the established communication to perform an RDMA operation to obtain the networking state data from the RDMA server on the first PNIC.

3. The method of claim 2 , wherein establishing communication with the RDMA server comprises establishing an event channel with the RDMA server.

4. The method of claim 3 , wherein the at least one of network forwarding operations and middlebox service operations are performed by at least one forwarding element of the first PNIC and at least one middlebox element of the first PNIC, wherein the PNIC forwarding element and middlebox element store their state data in the RDMA accessible memory.

5. The method of claim 3 , wherein after the RDMA client on the second PNIC obtains the networking state data from the RDMA server on the first PNIC, the method further comprises terminating the event channel.

6. The method of claim 1 , wherein the data migration is performed by a first VM migration module executing on the first host computer that transfers data associated with the particular VM to a second VM migration module executing on the second host computer.

7. The method of claim 6 , wherein the data associated with the particular VM comprises configuration state data associated with a configuration of the particular VM.

8. The method of claim 1 further comprising using the obtained networking state data to configure the at least one of networking forwarding operations and middlebox service operations on the second PNIC.

9. The method of claim 1 , wherein the second PNIC includes a virtual switch, the method further comprising adding to the virtual switch a set of identifiers associated with a set of physical ports of the first PNIC that are associated with a particular VNIC (virtual network interface card) of the particular VM, wherein the virtual switch (i) assigns the set of identifiers to a set of interfaces of the virtual switch and (ii) associates the set of interfaces with the particular VNIC of the particular VM.

10. The method of claim 1 , wherein the network forwarding operations comprise at least one of layer 2 (L2) forwarding operations and layer 3 (L3) forwarding operations.

11. The method of claim 1 , wherein the middlebox service operations comprise at least one of distribute firewall operations, load balancing operations, and network address translation (NAT) operations.

12. The method of claim 1 , wherein the first PNIC is a first smartNIC and the second PNIC is a second smartNIC.

13. A non-transitory machine readable medium storing program for execution by a set of one or more processing units, the program for migrating a particular virtual machine (VM) from a first host computer to a second host computer, the first host computer having a first physical network interface card (PNIC) that performs at least one of network forwarding operations and middlebox service operations for the particular VM, the second host computer having a second PNIC for performing at least one of networking forwarding operations and middlebox service operations for the particular VM, the program comprising sets of instructions for:

at an RDMA (Remote Direct Memory Access) client executing on a set of one or more processors of the second PNIC of the second host computer:

receiving a notification from the second host computer indicating a data migration that is performed to migrate the particular VM from the first host computer to the second host computer has started;

based on the notification, directing an RDMA server executing on the first PNIC to provide networking state data associated with at least one of network forwarding operations and middlebox service operations that the first PNIC performs for the particular VM, wherein said provided networking state data resides in a memory of the first PNIC that is accessible to the RDMA server;

after a migration, deleting the networking state data from the RDMA server;

configuring the second PNIC by writing the networking state data to a memory of the second PNIC and enabling, based on the networking state data, a forwarding element and a middlebox element of the second PNIC to perform the network forwarding operations and the middlebox service operations for the particular VM;

the first PNIC is associated with a set of physical ports that connect the first PNIC to a physical network;

each port in the set of physical ports is associated with (i) a particular identifier and (ii) a particular IP (Internet Protocol) address assigned to the first PNIC;

before receiving the notification, a compatibility test is performed to ensure the particular identifiers and particular IP addresses assigned to the first PNIC are available at the second host computer; and

wherein when the particular IP addresses are not available at the second host computer, a third host computer at which the particular IP addresses are available is identified for the data migration to migrate the particular VM from the first host computer to the third host computer.

14. The non-transitory machine readable medium of claim 13 , wherein the set of instructions for said directing comprises sets of instructions for:

establishing communication with the RDMA server on the first PNIC of the first host computer; and

using the established communication to perform an RDMA operation to obtain the networking state data from the RDMA server on the first PNIC.

15. The non-transitory machine readable medium of claim 14 , wherein the set of instructions for establishing communication with the RDMA server comprises a set of instructions for establishing an event channel with the RDMA server.

16. The non-transitory machine readable medium of claim 15 , wherein the at least one of network forwarding operations and middlebox service operations are performed by at least one forwarding element of the first PNIC and at least one middlebox element of the first PNIC, wherein the PNIC forwarding element and middlebox element store their state data in the RDMA accessible memory.

17. The non-transitory machine readable medium of claim 15 , wherein after the RDMA client on the second PNIC obtains the networking state data from the RDMA server on the first PNIC, the program further comprises a set of instructions for terminating the event channel.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2024
From: JIANG, WENYI; JIANG, JINGCHUN JASON; SHARMA, ANKUR KUMAR
To: VMWARE, INC.
Reel/Frame 069178/0619 →
CHANGE OF NAME Recorded Nov 7, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 069313/0408 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →