IP Library Patent Application 17871991
Patent Application
App. No. 17/871,991

LOAD BALANCING OVER TUNNEL ENDPOINT GROUPS

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 None
App. No.
17/871,991
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 (47)

1 . A method of forwarding data messages between source and destination host computers that execute source and destination machines, the method comprising:

at a source computer on which a source machine for a data message flow executes:

identifying a source tunnel endpoint group (TEPG) associated with the source machine, the source TEPG comprising a plurality of tunnel endpoints (TEPs);

selecting, for the flow, one TEP as the source TEP from the TEPG;

using the source TEP to forward the flow to the destination computer on which the destination machine executes.

2 . The method of claim 1 , wherein the source host computer has a plurality of physical network interface controllers (PNICs) associated with the plurality of TEPs, and using the source TEP comprises:

encapsulating the data messages of the flow with an encapsulating header;

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

3 . The method of claim 2 further comprising storing a first TEP identifier identifying the source TEP in the encapsulating header.

4 . The method of claim 3 further comprising storing a second TEP identifier identifying the destination TEP in the encapsulating header.

5 . The method of claim 4 , wherein the first and second TEP identifiers are network addresses associated with the selected source and destination TEPs.

6 . The method of claim 4 , wherein the first and second TEP identifiers are not L2, L3 and L4 addresses associated with the selected source and destination TEPs.

7 . The method of claim 2 further comprising storing a first TEPG identifier identifying the source TEPG in the encapsulating header.

8 . The method of claim 7 further comprising

at the source computer:

identifying a destination TEPG associated with the destination machine, the destination TEPG comprising a plurality of tunnel endpoints (TEPs);

selecting, for the flow, one TEP as the destination TEP from the destination TEPG; and

storing a second TEPG identifier identifying the destination TEPG in the encapsulating header.

9 . The method of claim 1 further comprising

at the source computer:

identifying a destination TEPG associated with the destination machine, the destination TEPG comprising a plurality of tunnel endpoints (TEPs);

selecting, for the flow, one TEP as the destination TEP from the destination TEPG; and

encapsulating the data messages of the flow with an encapsulating header;

forwarding the encapsulated data messages to the selected destination TEP.

10 . The method of claim 1 , wherein the TEPs of a host computer are uplink ports of a software switch executing on the host computer.

11 . A non-transitory machine readable medium storing a program for forwarding data messages between source and destination host computers that execute source and destination machines, the program for execution by at least one processing unit of the source host computer, the program comprising sets of instructions for:

identifying a source tunnel endpoint group (TEPG) associated with a source machine that is a source of a data message flow and that executes on the source host computer, the source TEPG comprising a plurality of tunnel endpoints (TEPs);

selecting, for the flow, one TEP as the source TEP from the TEPG;

using the source TEP to forward the flow to the destination computer on which the destination machine executes.

12 . The non-transitory machine readable medium of claim 11 , wherein the source host computer has a plurality of physical network interface controllers (PNICs) associated with the plurality of TEPs, and the set of instructions for using the source TEP comprises sets of instructions for:

encapsulating the data messages of the flow with an encapsulating header;

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

13 . The non-transitory machine readable medium of claim 12 , wherein the program further comprises a set of instructions for storing a first TEP identifier identifying the source TEP in the encapsulating header.

14 . The non-transitory machine readable medium of claim 13 , wherein the program further comprises a set of instructions for storing a second TEP identifier identifying the destination TEP in the encapsulating header.

15 . The non-transitory machine readable medium of claim 14 , wherein the first and second TEP identifiers are network addresses associated with the selected source and destination TEPs.

16 . The non-transitory machine readable medium of claim 14 , wherein the first and second TEP identifiers are not L2, L3 and L4 addresses associated with the selected source and destination TEPs.

17 . The non-transitory machine readable medium of claim 12 , wherein the program further comprises a set of instructions for storing a first TEPG identifier identifying the source TEPG in the encapsulating header.

18 . The non-transitory machine readable medium of claim 17 , wherein the program further comprises sets of instructions for

identifying a destination TEPG associated with the destination machine, the destination TEPG comprising a plurality of tunnel endpoints (TEPs);

selecting, for the flow, one TEP as the destination TEP from the destination TEPG; and

storing a second TEPG identifier identifying the destination TEPG in the encapsulating header.

19 . The non-transitory machine readable medium of claim 11 , wherein the program further comprises sets of instructions for

identifying a destination TEPG associated with the destination machine, the destination TEPG comprising a plurality of tunnel endpoints (TEPs);

selecting, for the flow, one TEP as the destination TEP from the destination TEPG; and

encapsulating the data messages of the flow with an encapsulating header;

forwarding the encapsulated data messages to the selected destination TEP.

20 . The non-transitory machine readable medium of claim 11 , wherein the TEPs of a host computer are labels that are associated with uplink ports of a software switch executing on the host computer.

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 062903/0721 →