IP Library Granted Patent US 12,639,105
Granted Patent B2
US 12,639,105 · App. 18/122,804 · Granted May 26, 2026

Virtual machine (VM) migration with smart network interface cards (NICs)

Inventors: Ankur Kumar Sharma (Mountain View, CA); Madan Mohan Mulpuri (Sunnyvale, CA); Bharath Griddaluru (San Jose, CA); Neeraj Tandon (Santa Clara, CA)
Assignee: VMware LLC
G06F9/4856G06F9/45558H04L41/0897G06F2009/4557G06F2009/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 12,639,105
App. No.
18/122,804
Granted
May 26, 2026
Kind
B2
Abstract

Some embodiments provide a novel method of migrating a particular virtual machine (VM) from a first host computer to a second host computer. The first host computer of some embodiments has a physical network interface card (PNIC) that performs at least one of network forwarding operations and middlebox service operations for the particular VM. The first host computer sends, to the PNIC of the first host computer, a request for state information relating to at least one of network forwarding operations and middlebox service operations that the PNIC performs for the particular VM. The first host computer receives the state information from the PNIC. The first host computer provides the state information received from the PNIC to the second host computer as part of a data migration that is performed to migrate the particular VM from the first host computer to the second host computer.

Claims (38)

1 . A method of migrating a first 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 includes (i) one or more software components configured to perform network forwarding operations and middlebox service operations for the first VM by executing on a processor of the first PNIC and (ii) one or more hardware accelerator devices separate from the processor of the first PNIC that are also configured to perform the network forwarding operations and the middlebox service operations for the first VM, the method comprising:

at the first host computer:

sending, to the first PNIC of the first host computer, one or more requests for (i) state information relating to the network forwarding operations that the one or more software components perform for the first VM and (ii) state information relating to the middlebox service operations that the one or more software components perform for the first VM;

receiving the network forwarding and middlebox service state information from the first PNIC; and

sending the network forwarding and middlebox service state information received from the first PNIC to the second host computer as part of a data migration that is performed to migrate the first VM from the first host computer to the second host computer.

2 . The method of claim 1 , wherein sending the one or more requests comprises sending a first request for the network forwarding state information and sending a second request for the middlebox service state information.

3 . The method of claim 2 , wherein:

the first request is sent by a VM migration module of the first host computer to a host forwarding module of the first host computer which forwards the first request to the first PNIC, the host forwarding module including a virtual switch of the first VM, and

the second request is sent by the VM migration module to a host service module of the first host computer which provides the second request to the first PNIC, the host service module being configured to intercept data messages of the first VM.

4 . The method of claim 1 , further comprising:

before sending the one or more requests, directing the first PNIC to disable service hardware offload to cause the one or more software components to begin performing the middlebox service operations for the first VM instead of the one or more hardware accelerator devices.

5 . The method of claim 1 , wherein the middlebox service state information comprises at least one of distributed firewall state information, load balancing state information, and network address translation (NAT) state information.

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

7 . The method of claim 1 , further comprising:

populating, on the first host computer, configuration state information relating to a configuration of the first VM; and

sending, to the second host computer, the configuration state information along with the network forwarding and middlebox service state information received from the first PNIC.

8 . The method of claim 1 , wherein the network forwarding and middlebox service state information received from the first PNIC is sent to a VM migration module executing on the second host computer, the VM migration module executing on the second host computer being configured to migrate the first VM from the first host computer to the second host computer.

9 . The method of claim 8 , wherein the network forwarding and middlebox service state information is sent to the VM migration module executing on the second host computer by a VM migration module executing on the first host computer, the VM migration modules executing on the first and second host computers being configured to migrate the first VM from the first host computer to the second host computer.

10 . The method of claim 1 , wherein the second host computer has a second PNIC configured to perform network forwarding operations and middlebox service operations for a set of VMs operating on the second host computer.

11 . The method of claim 10 , wherein after the first VM is migrated to the second host computer, the second PNIC performs the network forwarding operations and the middlebox service operations for the first VM.

12 . The method of claim 11 , wherein after the first VM is migrated to the second host computer, the first PNIC deletes the network forwarding and middlebox service state information for the first VM.

13 . The method of claim 1 , further comprising:

receiving, by the first host computer from a third host computer, state information for a second VM that has been requested to be migrated from the third host computer to the first host computer; and

providing, by the first host computer, the received state information for the second VM to the first PNIC, wherein the first PNIC then performs network forwarding operations and middlebox service operations for the second VM.

14 . The method of claim 13 , wherein the third host computer includes a second PNIC, and the third host computer received the state information for the second VM from the second PNIC.

15 . A non-transitory machine readable medium storing a program that, when executed by at least one processing unit of a first host computer, causes the first host computer to perform a method of migrating a first virtual machine (VM) from the first host computer to a second host computer, the first host computer having a first physical network interface card (PNIC) that includes (i) one or more software components configured to perform network forwarding operations and middlebox service operations for the first VM by executing on a processor of the first PNIC and (ii) one or more hardware accelerator devices separate from the processor of the first PNIC that are also configured to perform the network forwarding operations and the middlebox service operations for the first VM, the program comprising sets of instructions for:

at the first host computer:

sending, to the first PNIC of the first host computer, one or more requests for (i) state information relating to the network forwarding operations that the one or more software components perform for the first VM and (ii) state information relating to the middlebox service operations that the one or more software components perform for the first VM;

receiving the network forwarding and middlebox service state information from the first PNIC; and

sending the network forwarding and middlebox service state information received from the first PNIC to the second host computer as part of a data migration that is performed to migrate the first VM from the first host computer to the second host computer.

16 . The non-transitory machine readable medium of claim 15 , wherein sending the one or more requests comprises sending a first request for the network forwarding state information and sending a second request for the middlebox service state information.

17 . The non-transitory machine readable medium of claim 16 , wherein:

the first request is sent by a VM migration module of the first host computer to a host forwarding module of the first host computer which provides the first request to the first PNIC, the host forwarding module including a virtual switch of the first VM, and

the second request is sent by the VM migration module to a host service module of the first host computer which provides the second request to the first PNIC, the host service module being configured to intercept data messages of the first VM.

18 . The non-transitory machine readable medium of claim 15 , wherein the method further comprises:

before sending the one or more requests, directing the first PNIC to disable service hardware offload to cause the one or more software components to begin performing the middlebox service operations for the first VM instead of the one or more hardware accelerator devices.

19 . The non-transitory machine readable medium of claim 15 , wherein the middlebox service state information comprises at least one of distributed firewall state information, load balancing state information, and network address translation (NAT) state information.

20 . The non-transitory machine readable medium of claim 15 , wherein the network forwarding operations for the first VM comprise at least one of layer 2 (L2) forwarding operations and layer 3 (L3) forwarding operations.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2023
From: SHARMA, ANKUR KUMAR; MULPURI, MADAN MOHAN; GRIDDALURU, BHARATH; TANDON, NEERAJ
To: VMWARE, INC.
Reel/Frame 064954/0218 →
Continuity (1)
Related Publication 20240311168A1 · Sep 19, 2024
References Cited (204)
US 6219699B1 · McCloghrie et al. · 2001 [cited by applicant]
US 7079544B2 · Wakayama et al. · 2006 [cited by applicant]
US 7260716B1 · Srivastava · 2007 [cited by applicant]
US 7502884B1 · Shah et al. · 2009 [cited by applicant]
US 7802000B1 · Huang et al. · 2010 [cited by applicant]
US 8054832B1 · Shukla et al. · 2011 [cited by applicant]
US 8149734B2 · Lu · 2012 [cited by applicant]
US 8479275B1 · Naseh · 2013 [cited by applicant]
US 8611351B2 · Gooch et al. · 2013 [cited by applicant]
US 8625616B2 · Vobbilisetty et al. · 2014 [cited by applicant]
US 8660129B1 · Brendel et al. · 2014 [cited by applicant]
US 8707417B1 · Liang et al. · 2014 [cited by applicant]
US 8799900B1 · Kodorkin et al. · 2014 [cited by applicant]
US 9195491B2 · Zhang et al. · 2015 [cited by applicant]
US 9215210B2 · Raman et al. · 2015 [cited by applicant]
US 9311122B2 · Guay et al. · 2016 [cited by applicant]
US 9330161B2 · D'Amato et al. · 2016 [cited by applicant]
US 9432215B2 · Stabile et al. · 2016 [cited by applicant]
US 9602312B2 · Koponen et al. · 2017 [cited by applicant]
US 9672054B1 · Gupta et al. · 2017 [cited by applicant]
US 9672060B2 · Behere et al. · 2017 [cited by applicant]
US 9772866B1 · Aron et al. · 2017 [cited by applicant]
US 9825851B2 · Agarwal et al. · 2017 [cited by applicant]
US 9923811B2 · Agarwal et al. · 2018 [cited by applicant]
US 9977688B2 · Nipane et al. · 2018 [cited by applicant]
US 10091028B2 · Koponen et al. · 2018 [cited by applicant]
US 10243848B2 · Agarwal et al. · 2019 [cited by applicant]
US 10257049B2 · Fried et al. · 2019 [cited by applicant]
US 10339123B2 · Venkatesh et al. · 2019 [cited by applicant]
US 10673752B2 · Agarwal et al. · 2020 [cited by applicant]
US 10880158B2 · Lambeth et al. · 2020 [cited by applicant]
US 11153170B1 · Chandrashekhar et al. · 2021 [cited by applicant]
US 20020029270A1 · Szczepanek · 2002 [cited by applicant]
US 20020093952A1 · Gonda · 2002 [cited by applicant]
US 20020131414A1 · Hadzic · 2002 [cited by applicant]
US 20030167333A1 · Kumar et al. · 2003 [cited by applicant]
US 20030185151A1 · Kurosawa et al. · 2003 [cited by applicant]
US 20030185152A1 · Nederveen et al. · 2003 [cited by applicant]
US 20030188114A1 · Lubbers et al. · 2003 [cited by applicant]
US 20030188218A1 · Lubbers et al. · 2003 [cited by applicant]
US 20040042454A1 · Zabihi et al. · 2004 [cited by applicant]
US 20040052257A1 · Abdo et al. · 2004 [cited by applicant]
US 20050081212A1 · Goud et al. · 2005 [cited by applicant]
US 20050083953A1 · May · 2005 [cited by applicant]
US 20050182853A1 · Lewites et al. · 2005 [cited by applicant]
US 20050288040A1 · Charpentier et al. · 2005 [cited by applicant]
US 20060002370A1 · Rabie et al. · 2006 [cited by applicant]
US 20060069594A1 · Yamasaki · 2006 [cited by applicant]
US 20060092976A1 · Lakshman et al. · 2006 [cited by applicant]
US 20060179243A1 · Fields et al. · 2006 [cited by applicant]
US 20060179245A1 · Fields et al. · 2006 [cited by applicant]
US 20060193300A1 · Rawat et al. · 2006 [cited by applicant]
US 20060221720A1 · Reuter · 2006 [cited by applicant]
US 20060251120A1 · Arimilli et al. · 2006 [cited by applicant]
US 20060291447A1 · Siliquini et al. · 2006 [cited by applicant]
US 20070061492A1 · Riel · 2007 [cited by applicant]
US 20070217419A1 · Vasseur · 2007 [cited by applicant]
US 20070239987A1 · Hoole et al. · 2007 [cited by applicant]
US 20080013474A1 · Nagarajan et al. · 2008 [cited by applicant]
US 20080049646A1 · Lu · 2008 [cited by applicant]
US 20080104302A1 · Carpio · 2008 [cited by applicant]
US 20080133729A1 · Fridman et al. · 2008 [cited by applicant]
US 20080151863A1 · Lawrence et al. · 2008 [cited by applicant]
US 20080163207A1 · Reumann et al. · 2008 [cited by applicant]
US 20080225853A1 · Melman et al. · 2008 [cited by applicant]
US 20080268847A1 · Mukherjee et al. · 2008 [cited by applicant]
US 20080298274A1 · Takashige et al. · 2008 [cited by applicant]
US 20080301379A1 · Pong · 2008 [cited by applicant]
US 20090070337A1 · Romem et al. · 2009 [cited by applicant]
US 20090150521A1 · Tripathi · 2009 [cited by applicant]
US 20090150527A1 · Tripathi et al. · 2009 [cited by applicant]
US 20090193297A1 · Williams et al. · 2009 [cited by applicant]
US 20090241192A1 · Thomas · 2009 [cited by applicant]
US 20090279536A1 · Unbehagen et al. · 2009 [cited by applicant]
US 20090279545A1 · Moonen · 2009 [cited by applicant]
US 20090292858A1 · Lambeth et al. · 2009 [cited by applicant]
US 20090296726A1 · Snively et al. · 2009 [cited by applicant]
US 20090303880A1 · Maltz et al. · 2009 [cited by applicant]
US 20100115080A1 · Kageyama · 2010 [cited by applicant]
US 20100153514A1 · Dabagh · 2010 [cited by examiner]
US 20100153701A1 · Shenoy et al. · 2010 [cited by applicant]
US 20100165876A1 · Shukla et al. · 2010 [cited by applicant]
US 20100165877A1 · Shukla et al. · 2010 [cited by applicant]
US 20100232435A1 · Jabr et al. · 2010 [cited by applicant]
US 20100250744A1 · Hadad et al. · 2010 [cited by applicant]
US 20100250784A1 · Henry et al. · 2010 [cited by applicant]
US 20100257263A1 · Casado et al. · 2010 [cited by applicant]
US 20100275199A1 · Smith et al. · 2010 [cited by applicant]
US 20100284402A1 · Narayanan · 2010 [cited by applicant]
US 20100287548A1 · Zhou et al. · 2010 [cited by applicant]
US 20100322255A1 · Hao et al. · 2010 [cited by applicant]
US 20110032898A1 · Kazmi et al. · 2011 [cited by applicant]
US 20110047218A1 · Nojima et al. · 2011 [cited by applicant]
US 20110051714A1 · Somes · 2011 [cited by applicant]
US 20110085559A1 · Chung et al. · 2011 [cited by applicant]
US 20110085569A1 · Gnanasekaran et al. · 2011 [cited by applicant]
US 20110090905A1 · Mueller et al. · 2011 [cited by applicant]
US 20110103260A1 · Jeyatharan et al. · 2011 [cited by applicant]
US 20110119748A1 · Edwards et al. · 2011 [cited by applicant]
US 20110188509A1 · Kern et al. · 2011 [cited by applicant]
US 20110231602A1 · Woods et al. · 2011 [cited by applicant]
US 20110299413A1 · Chatwani et al. · 2011 [cited by applicant]
US 20120014386A1 · Xiong et al. · 2012 [cited by applicant]
US 20120093035A1 · Kidambi et al. · 2012 [cited by applicant]
US 20120120964A1 · Koponen et al. · 2012 [cited by applicant]
US 20120147898A1 · Koponen et al. · 2012 [cited by applicant]
US 20120163388A1 · Goel et al. · 2012 [cited by applicant]
US 20120226799A1 · Kapur et al. · 2012 [cited by applicant]
US 20120236734A1 · Sampath et al. · 2012 [cited by applicant]
US 20120257634A1 · Martillo et al. · 2012 [cited by applicant]
US 20120275328A1 · Iwata et al. · 2012 [cited by applicant]
US 20130019277A1 · Chang et al. · 2013 [cited by applicant]
US 20130024579A1 · Zhang et al. · 2013 [cited by applicant]
US 20130028142A1 · Beheshti-Zavareh et al. · 2013 [cited by applicant]
US 20130042242A1 · Kagan · 2013 [cited by applicant]
US 20130044636A1 · Koponen et al. · 2013 [cited by applicant]
US 20130044641A1 · Koponen et al. · 2013 [cited by applicant]
US 20130044752A1 · Koponen et al. · 2013 [cited by applicant]
US 20130044761A1 · Koponen et al. · 2013 [cited by applicant]
US 20130058250A1 · Casado et al. · 2013 [cited by applicant]
US 20130058335A1 · Koponen et al. · 2013 [cited by applicant]
US 20130058350A1 · Fulton · 2013 [cited by applicant]
US 20130058354A1 · Casado et al. · 2013 [cited by applicant]
US 20130058358A1 · Fulton et al. · 2013 [cited by applicant]
US 20130060819A1 · Lambeth et al. · 2013 [cited by applicant]
US 20130074065A1 · McNeeney et al. · 2013 [cited by applicant]
US 20130103817A1 · Koponen et al. · 2013 [cited by applicant]
US 20130144992A1 · Barabash et al. · 2013 [cited by applicant]
US 20130159637A1 · Forgette et al. · 2013 [cited by applicant]
US 20130212212A1 · Addepalli et al. · 2013 [cited by applicant]
US 20130215769A1 · Beheshti-Zavareh et al. · 2013 [cited by applicant]
US 20130227550A1 · Weinstein et al. · 2013 [cited by applicant]
US 20130254328A1 · Inoue et al. · 2013 [cited by applicant]
US 20130268799A1 · Mestery et al. · 2013 [cited by applicant]
US 20130287026A1 · Davie · 2013 [cited by applicant]
US 20130301425A1 · Udutha et al. · 2013 [cited by applicant]
US 20130301501A1 · Olvera-Hernandez et al. · 2013 [cited by applicant]
US 20130308641A1 · Ackley · 2013 [cited by applicant]
US 20130347131A1 · Mooring et al. · 2013 [cited by applicant]
US 20140064104A1 · Nataraja et al. · 2014 [cited by applicant]
US 20140136908A1 · Maggiari et al. · 2014 [cited by applicant]
US 20140146817A1 · Zhang · 2014 [cited by applicant]
US 20140211661A1 · Gorkemli et al. · 2014 [cited by applicant]
US 20140241356A1 · Zhang et al. · 2014 [cited by applicant]
US 20140250220A1 · Kapadia et al. · 2014 [cited by applicant]
US 20140301391A1 · Krishnan et al. · 2014 [cited by applicant]
US 20140310796A1 · Lee et al. · 2014 [cited by applicant]
US 20140325037A1 · Elisha · 2014 [cited by applicant]
US 20150016276A1 · Decusatis et al. · 2015 [cited by applicant]
US 20150082417A1 · Bhagwat et al. · 2015 [cited by applicant]
US 20150100704A1 · Davie et al. · 2015 [cited by applicant]
US 20150103842A1 · Chandrashekhar et al. · 2015 [cited by applicant]
US 20150103843A1 · Chandrashekhar et al. · 2015 [cited by applicant]
US 20150106804A1 · Chandrashekhar et al. · 2015 [cited by applicant]
US 20150106913A1 · Wang et al. · 2015 [cited by applicant]
US 20150229641A1 · Sun et al. · 2015 [cited by applicant]
US 20150281180A1 · Raman et al. · 2015 [cited by applicant]
US 20160057014A1 · Thakkar et al. · 2016 [cited by applicant]
US 20160134528A1 · Lin et al. · 2016 [cited by applicant]
US 20160380815A1 · Agarwal et al. · 2016 [cited by applicant]
US 20160380891A1 · Agarwal et al. · 2016 [cited by applicant]
US 20160380925A1 · Agarwal et al. · 2016 [cited by applicant]
US 20170116023A1 · Zhang · 2017 [cited by examiner]
US 20170324645A1 · Johnsen et al. · 2017 [cited by applicant]
US 20180062881A1 · Chandrashekhar et al. · 2018 [cited by applicant]
US 20180157537A1 · Chen et al. · 2018 [cited by applicant]
US 20190207847A1 · Agarwal et al. · 2019 [cited by applicant]
US 20190303326A1 · Desai et al. · 2019 [cited by applicant]
US 20190379731A1 · Johnsen et al. · 2019 [cited by applicant]
US 20210200573A1 · Cao · 2021 [cited by examiner]
US 20210314228A1 · Chandrashekhar et al. · 2021 [cited by applicant]
US 20220121503A1 · Bhide et al. · 2022 [cited by applicant]
US 20230024408A1 · Singh · 2023 [cited by examiner]
CN 102124456A · 2011 [cited by applicant]
CN 103650433A · 2014 [cited by applicant]
CN 103890751A · 2014 [cited by applicant]
EP 1154601A1 · 2001 [cited by applicant]
EP 1635506A1 · 2006 [cited by applicant]
EP 1868318A1 · 2007 [cited by applicant]
EP 3016331A1 · 2016 [cited by applicant]
EP 3314831A1 · 2018 [cited by applicant]
WO 2007115425A1 · 2007 [cited by applicant]
WO 2010028364A1 · 2010 [cited by applicant]
WO 2012113444A1 · 2012 [cited by applicant]
WO 2013002766A1 · 2013 [cited by applicant]
WO 2013152716A1 · 2013 [cited by applicant]
WO 2015054671A2 · 2015 [cited by applicant]
WO 2017003881A1 · 2017 [cited by applicant]
Daniel Firestone, et al., 2018. Azure accelerated networking: SmartNICs in the public cloud. In USENIX Symposium on Networked Systems Design and Implementation (NSDI'18), 51-66 (Year: 2018). [cited by examiner]
Le et al. (Yanfang Le, Hyunseok Chang, Sarit Mukherjee, Limin Wang, Aditya Akella, Michael M Swift, and TV Lakshman. 2017. UNO:Unifying Host and Smart NIC Offload for Flexible Packet Processing. In Proceedings of the 20… [cited by examiner]
European Patent Office, Extended Search Report, Application No. 24162146.5, Jul. 15, 2024, 11 pages. [cited by applicant]
Author Unknown, “Apache Cassandra™ 1.2 Documentation,” Jan. 13, 2013, 201 pages, DataStax. [cited by applicant]
Author Unknown, “OpenFlow Switch Specification, Version 1.1.0 Implemented (Wire Protocol 0x02),” Feb. 28, 2011, 56 pages, Open Networking Foundation. [cited by applicant]
Berde, Pankaj, et al., “ONOS Open Network Operating System An Open-Source Distributed SDN OS,” Dec. 19, 2013, 34 pages. [cited by applicant]
Das, Saurav, et al., “Simple Unified Control for Packet and Circuit Networks,” Month Unknown 2009, 2 pages, IEEE. [cited by applicant]
Das, Saurav, et al., “Unifying Packet and Circuit Switched Networks with OpenFlow,” Dec. 7, 2009, 10 pages, available at http://OpenFlowSwitch.org/downloads/technicalreports/openflow-tr-2009-4-unification.pdf. [cited by applicant]
Hanna, Jeremy, “How ZooKeeper Handles Failure Scenarios,” http://.apache.org/hadoop/Zookeeper/FailureScenarios. Dec. 9, 2010, 1 page. [cited by applicant]
Heller, Brandon, et al., “The Controller Placement Problem,” Hot Topics in Software Defined Networks, Aug. 13, 2012, 6 pages, Helsinki, Finland. [cited by applicant]
Ioannidis, Sotiris, et al., “Implementing a Distributed Firewall,” CCS '00, Month Unknown 2000, 10 pages, ACM, Athens, Greece. [cited by applicant]
Krishnaswamy, Umesh, et al., “ONOS Open Network Operating System—An Experimental Open-Source Distributed SDN OS,” Apr. 16, 2013, 24 pages. [cited by applicant]
Lebresne, Sylvain, “[Release] Apache Cassandra 1.2 released,” Jan. 2, 2013, 1 page. [cited by applicant]
Mahalingham, Mallik, et al., “VXLAN: A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks,” draft-mahalingham-dutt-dcops-vxlan-02.txt Internet Draft, Aug. 22, 2012, 20 pages, Internet Engineerin… [cited by applicant]
Mahalingham, Mallik, et al., “VXLAN: A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks,” draft-mahalingham-dutt-dcops-vxlan-00.txt Internet Draft, Aug. 26, 2011, 20 pages, Internet Engineerin… [cited by applicant]
Sherwood, Rob, et al., “FlowVisor: A Network Virtualization Layer,” Oct. 14, 2009, 15 pages, Openflow—TR-2009-1. [cited by applicant]