IP Library Granted Patent US 12,639,092
Granted Patent B2
US 12,639,092 · App. 17/871,992 · Granted May 26, 2026

Load balancing over tunnel endpoint groups

Inventors: Subin Cyriac Mathew (San Jose, CA); Prerit Rodney (Union City, CA); Chidambareswaran Raman (Sunnyvale, CA)
Assignee: VMware LLC
G06F9/45558H04L47/10H04L47/125H04L69/22G06F2009/45595H04L45/02
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,092
App. No.
17/871,992
Granted
May 26, 2026
Kind
B2
Abstract

Some embodiments provide a method of forwarding data messages between source and destination host computers that execute source and destination machines. At a source computer on which a source machine for a data message flow executes, the method in some embodiments identifies a source tunnel endpoint group (TEPG) associated with the source machine. For the flow, the method selects one TEP of the TEPG as the source TEP. The method then uses the selected source TEP to forward the flow to the destination computer on which the destination machine executes.

Claims (36)

1 . A method of forwarding data messages between a source computer and a destination computer, the source computer executing a source machine, the destination computer executing a destination machine, the method comprising:

at the source computer:

identifying, by a first virtual switch of a hypervisor executing in the source computer, a destination tunnel endpoint group (TEPG) associated with the destination machine, the destination TEPG comprising a plurality of tunnel endpoints (TEPs);

identifying, by the first virtual switch, a teaming policy for the destination TEPG, the teaming policy specifying at least one of a source Internet Protocol (IP) address, a destination IP address, a source port, a destination port, or a protocol;

identifying, by the first virtual switch for a flow of the data messages having a source being the source machine and a destination being the destination machine, one tunnel endpoint (TEP) of the plurality of TEPs as a destination TEP from the destination TEPG based on a hash of parameters in the flow as specified by the teaming policy;

forwarding, by the first virtual switch, the flow from an uplink port of the virtual switch;

encapsulating, by a callback to the hypervisor from the uplink port of the first virtual switch, the data messages of the flow with encapsulating headers that store a first identifier identifying the destination TEP and a second identifier for the destination TEPG;

forwarding the data messages as encapsulated to the destination TEP; and

at the destination computer:

receiving the data messages at a selected uplink port of a second virtual switch executing in the destination computer that is selected based on the destination TEP and the destination TEPG as identified in the encapsulating headers.

2 . The method of claim 1 , wherein the flow is a first flow, and identifying the destination TEPG and the destination TEP comprises retrieving identifiers for the destination TEPG and destination TEP from a connection tracking record created by the source computer for a second flow sent from the destination machine to the source machine, the first flow being responsive to the second flow.

3 . The method of claim 1 further comprising

identifying a source TEPG associated with the source machine; and

identifying, for the flow, a TEP of the source TEPG as the source TEP;

wherein the encapsulating headers include additional identifiers for the source TEPG and the source TEP.

4 . The method of claim 3 , wherein the source and destination TEPGs and TEPs are for the destination computer to use to identify the source and destination TEPGs and TEPs of the data messages of the flow.

5 . The method of claim 3 , wherein the identifiers include network addresses associated with the source and destination TEPs.

6 . The method of claim 3 , wherein the identifiers are not L2, L3 and L4 addresses associated with the source and destination TEPs.

7 . The method of claim 1 , wherein the source computer has a plurality of physical network interface controllers (PNICs) associated with a plurality of TEPs of a source TEPG of the source computer, the method further comprising:

identifying the source TEPG that is associated with the source machine and the source computer;

identifying, for the flow, a TEP of the source TEPG as the source TEP,

wherein forwarding the encapsulated data messages comprises forwarding the encapsulated data messages through a PNIC associated with the selected source TEP.

8 . A method of forwarding data messages between source and destination devices, the method comprising:

at the source device:

identifying, by a first virtual switch of a hypervisor executing in the source device, a source tunnel endpoint group (TEPG) and a destination TEPG associated with the flow, each of the source TEPG and the destination TEPG comprising a plurality of tunnel endpoints (TEPs);

identifying, by the first virtual switch, a first teaming policy for the destination TEPG, the first teaming policy specifying at least one of a source Internet Protocol (IP) address, a destination IP address, a source port, a destination port, or a protocol;

selecting, by the first virtual switch for a flow of the data messages having a source being the source device and a destination being the destination device, a tunnel endpoint (TEP) from the source TEPG as a source TEP;

selecting, by the first virtual switch for the flow, a TEP from the destination TEPG as a destination TEP based on a hash of parameters in the flow as specified by the first teaming policy;

forwarding, by the first virtual switch, the flow from an uplink port of the virtual switch;

encapsulating, by a callback to the hypervisor from the uplink port of the first virtual switch, the data messages of the flow with encapsulating headers that store first and second identifiers identifying source and destination TEPs;

forwarding the data messages as encapsulated to the destination TEP; and

at the destination device:

receiving the data messages at a selected uplink port of a second virtual switch executing in the destination device that is selected based on the destination TEP.

9 . The method of claim 8 , wherein the source device has a plurality of physical network interface controllers (PNICs) associated with the plurality of TEPs of the source TEPG, and wherein forwarding the data messages comprises forwarding the data messages through a PNIC of the plurality of PNICs associated with the source TEP.

10 . The method of claim 8 , wherein the identifiers include network addresses associated with the source and destination TEPs.

11 . The method of claim 8 , wherein the identifiers are not L2, L3 and L4 addresses associated with the source and destination TEPs.

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 Mar 7, 2023
From: MATHEW, SUBIN CYRIAC; RODNEY, PRERIT; RAMAN, CHIDAMBARESWARAN
To: VMWARE, INC.
Reel/Frame 062904/0034 →
Continuity (1)
Related Publication 20240028367A1 · Jan 25, 2024
References Cited (96)
US 6888797B1 · Cao et al. · 2005 [cited by applicant]
US 7599373B1 · Kalmanek et al. · 2009 [cited by applicant]
US 8958293B1 · Anderson · 2015 [cited by examiner]
US 9282019B2 · Ganichev et al. · 2016 [cited by applicant]
US 9331946B2 · Okita · 2016 [cited by applicant]
US 9407519B2 · Cui · 2016 [cited by examiner]
US 9912616B2 · Shen et al. · 2018 [cited by applicant]
US 10069646B2 · Shen et al. · 2018 [cited by applicant]
US 10164885B2 · Shen et al. · 2018 [cited by applicant]
US 10719341B2 · Shen et al. · 2020 [cited by applicant]
US 11436037B2 · Shen et al. · 2022 [cited by applicant]
US 20020097724A1 · Halme et al. · 2002 [cited by applicant]
US 20050207411A1 · Ota et al. · 2005 [cited by applicant]
US 20060206655A1 · Chappell et al. · 2006 [cited by applicant]
US 20080049752A1 · Grant · 2008 [cited by applicant]
US 20080069114A1 · Shimada · 2008 [cited by applicant]
US 20090303880A1 · Maltz et al. · 2009 [cited by applicant]
US 20090307334A1 · Maltz et al. · 2009 [cited by applicant]
US 20100322148A1 · Liu et al. · 2010 [cited by applicant]
US 20110087799A1 · Padhye et al. · 2011 [cited by applicant]
US 20110216769A1 · Lakshmanan et al. · 2011 [cited by applicant]
US 20110225303A1 · Engebretson · 2011 [cited by applicant]
US 20110299534A1 · Koganti et al. · 2011 [cited by applicant]
US 20120044837A1 · Fernández et al. · 2012 [cited by applicant]
US 20120134266A1 · Roitshtein et al. · 2012 [cited by applicant]
US 20120236761A1 · Yang et al. · 2012 [cited by applicant]
US 20130058350A1 · Fulton · 2013 [cited by applicant]
US 20130125124A1 · Kempf et al. · 2013 [cited by applicant]
US 20130148543A1 · Koponen et al. · 2013 [cited by applicant]
US 20130318219A1 · Kancherla · 2013 [cited by applicant]
US 20130322457A1 · Budhia et al. · 2013 [cited by applicant]
US 20130332602A1 · Nakil et al. · 2013 [cited by applicant]
US 20140059111A1 · Veeraiyan · 2014 [cited by applicant]
US 20140086253A1 · Yong · 2014 [cited by applicant]
US 20140192804A1 · Ghanwani et al. · 2014 [cited by applicant]
US 20140247753A1 · Koponen et al. · 2014 [cited by applicant]
US 20140269321A1 · Kamble et al. · 2014 [cited by applicant]
US 20140269702A1 · Moreno et al. · 2014 [cited by applicant]
US 20150009995A1 · Gross, IV et al. · 2015 [cited by applicant]
US 20150010001A1 · Duda et al. · 2015 [cited by applicant]
US 20150063364A1 · Thakkar et al. · 2015 [cited by applicant]
US 20150098465A1 · Pete et al. · 2015 [cited by applicant]
US 20150103673A1 · Shimada et al. · 2015 [cited by applicant]
US 20150103679A1 · Tessmer et al. · 2015 [cited by applicant]
US 20150109923A1 · Hwang · 2015 [cited by applicant]
US 20150117454A1 · Koponen et al. · 2015 [cited by applicant]
US 20150124821A1 · Chu et al. · 2015 [cited by applicant]
US 20150124822A1 · Chu et al. · 2015 [cited by applicant]
US 20150124823A1 · Pani et al. · 2015 [cited by applicant]
US 20150124828A1 · CJ et al. · 2015 [cited by applicant]
US 20150131618A1 · Chen · 2015 [cited by applicant]
US 20150180769A1 · Wang et al. · 2015 [cited by applicant]
US 20150253829A1 · Palmer et al. · 2015 [cited by applicant]
US 20150312144A1 · Gobriel et al. · 2015 [cited by applicant]
US 20150381484A1 · Hira et al. · 2015 [cited by applicant]
US 20160011925A1 · Kulkarni et al. · 2016 [cited by applicant]
US 20160065385A1 · Hwang et al. · 2016 [cited by applicant]
US 20160134531A1 · Assarpour et al. · 2016 [cited by applicant]
US 20160218975A1 · Hyoudou et al. · 2016 [cited by applicant]
US 20160226755A1 · Hammam et al. · 2016 [cited by applicant]
US 20160234091A1 · Emmadi et al. · 2016 [cited by applicant]
US 20160241474A1 · Wang et al. · 2016 [cited by applicant]
US 20160248601A1 · Nomi · 2016 [cited by applicant]
US 20160278140A1 · Sung et al. · 2016 [cited by applicant]
US 20160308727A1 · Rojas Sánchez et al. · 2016 [cited by applicant]
US 20170086191A1 · Sipra et al. · 2017 [cited by applicant]
US 20170093618A1 · Chanda et al. · 2017 [cited by applicant]
US 20170163442A1 · Shen et al. · 2017 [cited by applicant]
US 20170163536A1 · Shen · 2017 [cited by examiner]
US 20170163598A1 · Shen et al. · 2017 [cited by applicant]
US 20170163599A1 · Shen et al. · 2017 [cited by applicant]
US 20190068496A1 · Tessmer · 2019 [cited by examiner]
US 20200067842A1 · Jiang · 2020 [cited by examiner]
US 20200073692A1 · Rao · 2020 [cited by examiner]
US 20200334069A1 · Shen et al. · 2020 [cited by applicant]
US 20210136049A1 · Wang · 2021 [cited by examiner]
US 20210144083A1 · Dubey · 2021 [cited by examiner]
US 20210144084A1 · Dubey · 2021 [cited by examiner]
US 20210400029A1 · Wang · 2021 [cited by examiner]
US 20220413893A1 · Shen et al. · 2022 [cited by applicant]
US 20230297404A1 · Shen · 2023 [cited by examiner]
CN 1787490A · 2006 [cited by applicant]
CN 103457818A · 2013 [cited by applicant]
CN 103890751A · 2014 [cited by applicant]
CN 104272668A · 2015 [cited by applicant]
CN 104995880A · 2015 [cited by applicant]
EP 2849395A1 · 2015 [cited by applicant]
WO 2013026049A1 · 2013 [cited by applicant]
WO 2015132624A1 · 2015 [cited by applicant]
WO 2017095564A1 · 2017 [cited by applicant]
Haim, Roie Ben, “Route to Cloud—NSX and Teaming Policy,” May 19, 2014, 19 pages, Retrieved from http://www.routetocloud.com/2014/05/nsx-and-teaming-policy/. [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]
Non-Published Commonly Owned Related U.S. Appl. No. 17/871,991 with similar specification, filed Jul. 25, 2022, 47 pages, VMware, Inc. [cited by applicant]
Non-Published Commonly Owned Related U.S. Appl. No. 17/871,994 with similar specification, filed Jul. 25, 2022, 46 pages, VMware, Inc. [cited by applicant]
Non-Published Commonly Owned Related U.S. Appl. No. 17/871,996 with similar specification, filed Jul. 25, 2022, 46 pages, VMware, Inc. [cited by applicant]
Non-Published Commonly Owned U.S. Appl. No. 17/902,881, filed Sep. 4, 2022, 72 pages, Nicira, Inc. [cited by applicant]