IP Library Granted Patent US 12,073,241
Granted Patent B2
US 12,073,241 · App. 17/902,881 · Granted Aug 27, 2024

Learning of tunnel endpoint selections

Inventors: Jianjun Shen (Redwood City, CA); Alexander Tessmer (Mountain View, CA); Mukesh Hira (Palo Alto, CA); Pankaj Thakkar (Cupertino, CA); Hua Wang (Beijing, CN)
Assignee: Nicira, Inc.
G06F9/45558H04L12/4633H04L45/72H04L45/74H04L47/825H04L49/70G06F2009/45595H04L2101/00H04L2101/622H04L2101/677
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,073,241
App. No.
17/902,881
Granted
Aug 27, 2024
Kind
B2
Abstract

Some embodiments provide a method for a managed forwarding element (MFE). At the MFE, the method receives a first packet from a particular tunnel endpoint. The first packet originates from a particular data compute node associated with multiple tunnel endpoints including the particular tunnel endpoint. Based on the first packet, the method stores an association of the particular tunnel endpoint with the particular data compute node. The method uses the stored association to encapsulate subsequent packets received at the MFE and having the particular data compute node as a destination address with the particular tunnel endpoint as a destination tunnel endpoint.

Claims (56)

1. For a managed forwarding element (MFE), a method comprising:

receiving a packet from a data compute node for which the MFE performs first-hop processing, wherein the data compute node is associated with a plurality of tunnel endpoints of the MFE;

determining a destination tunnel endpoint for the packet;

using a load balancing algorithm to select one of the plurality of tunnel endpoints of the MFE as a source tunnel endpoint for the packet by (i) calculating a hash of a set of packet header values of the packet comprising source and destination network layer addresses, source and destination transport layer port number, and a transport layer protocol and (ii) assigning, based on the hash, the set of packet header values of the packet to a particular one of the plurality of tunnel endpoints; and

encapsulating the packet in a tunnel using the source and destination tunnel endpoints;

wherein using the load balancing algorithm to select one of the plurality of tunnel endpoints of the MFE further comprises:

assessing a current load on each tunnel endpoint of the plurality of tunnel endpoints based on fullness of queues corresponding to the tunnel endpoints; and

assigning the packet to a particular one of the plurality of tunnel endpoints based on the load assessment.

2. The method of claim 1 , wherein determining the destination tunnel endpoint for the packet comprises mapping a destination address of the packet to a particular tunnel endpoint stored by the MFE based on a source tunnel endpoint for a prior packet received from the particular tunnel endpoint.

3. The method of claim 1 , wherein determining the destination tunnel endpoint for the packet comprises:

mapping a destination address of the packet to a group of tunnel endpoints associated with a different MFE; and

selecting one of the tunnel endpoints in the group of tunnel endpoints as the destination tunnel endpoint for the packet.

4. The method of claim 3 further comprising storing a mapping of a source address of the packet to the selected source tunnel endpoint, wherein the MFE does not store a mapping of the destination address to the selected destination tunnel endpoint.

5. The method of claim 3 further comprising storing a mapping of a connection 5-tuple of the packet to the selected source tunnel endpoint, wherein the MFE does not store a mapping of the connection 5-tuple to the selected destination tunnel endpoint.

6. The method of claim 1 further comprising outputting the packet onto a physical network between the tunnel endpoints.

7. The method of claim 1 further comprising storing a mapping of a set of packet characteristics to the selected source tunnel endpoint.

8. The method of claim 7 further comprising:

receiving a subsequent packet from the data compute node having a same set of packet characteristics; and

using the stored mapping to select the same source tunnel endpoint for the subsequent packet.

9. For a managed forwarding element (MFE), a method comprising:

receiving a packet from a data compute node for which the MFE performs first-hop processing, wherein the data compute node is associated with a plurality of tunnel endpoints of the MFE;

determining a destination tunnel endpoint for the packet;

using a load balancing algorithm to select one of the plurality of tunnel endpoints of the MFE as a source tunnel endpoint for the packet, wherein using the load balancing algorithm comprises:

assessing a current load on each tunnel endpoint of the plurality of tunnel endpoints based on fullness of queues corresponding to the tunnel endpoints; and

assigning the packet to a particular one of the plurality of tunnel endpoints based on the load assessment; and

encapsulating the packet in a tunnel using the source and destination tunnel endpoints.

10. The method of claim 9 , wherein using the load balancing algorithm to select one of the plurality of tunnel endpoints of the MFE comprises:

calculating a hash of a set of packet header values of the packet; and

based on the hash, assigning the set of packet header values of the packet to a particular one of the plurality of tunnel endpoints.

11. The method of claim 10 , wherein the set of packet header values comprises source and destination network layer addresses, source and destination transport layer port number, and a transport layer protocol.

12. The method of claim 10 , wherein the set of packet header values comprises a source MAC address.

13. A non-transitory machine readable medium storing a managed forwarding element (MFE) for execution by at least one processing unit, the MFE comprising sets of instructions for:

receiving a packet from a data compute node for which the MFE performs first-hop processing, wherein the data compute node is associated with a plurality of tunnel endpoints of the MFE;

determining a destination tunnel endpoint for the packet;

using a load balancing algorithm to select one of the plurality of tunnel endpoints of the MFE as a source tunnel endpoint for the packet by (i) calculating a hash of a set of packet header values of the packet that includes source and destination network layer addresses, source and destination transport layer port number, and a transport layer protocol and (ii) assigning, based on the hash, the set of packet header values of the packet to a particular one of the plurality of tunnel endpoints; and

encapsulating the packet in a tunnel using the source and destination tunnel endpoints;

wherein using the load balancing algorithm to select one of the plurality of tunnel endpoints of the MFE further comprises:

assessing a current load on each tunnel endpoint of the plurality of tunnel endpoints based on fullness of queues corresponding to the tunnel endpoints; and

assigning the packet to a particular one of the plurality of tunnel endpoints based on the load assessment.

14. The non-transitory machine readable medium of claim 13 , wherein the set of instructions for determining the destination tunnel endpoint for the packet comprises a set of instructions for mapping a destination address of the packet to a particular tunnel endpoint stored by the MFE based on a source tunnel endpoint for a prior packet received from the particular tunnel endpoint.

15. The non-transitory machine readable medium of claim 13 , wherein the set of instructions for determining the destination tunnel endpoint for the packet comprises sets of instructions for:

mapping a destination address of the packet to a group of tunnel endpoints associated with a different MFE; and

selecting one of the tunnel endpoints in the group of tunnel endpoints as a destination tunnel endpoint for the packet.

16. The non-transitory machine readable medium of claim 13 , wherein the MFE further comprises a set of instructions for outputting the packet onto a physical network between the tunnel endpoints.

17. A non-transitory machine readable medium storing a managed forwarding element (MFE) for execution by at least one processing unit, the MFE comprising sets of instructions for:

receiving a packet from a data compute node for which the MFE performs first-hop processing, wherein the data compute node is associated with a plurality of tunnel endpoints of the MFE;

determining a destination tunnel endpoint for the packet;

using a load balancing algorithm to select one of the plurality of tunnel endpoints of the MFE as a source tunnel endpoint for the packet, wherein the set of instructions for using the load balancing algorithm comprises sets of instructions for:

assessing a current load on each tunnel endpoint of the plurality of tunnel endpoints based on fullness of queues corresponding to the tunnel endpoints; and

assigning the packet to a particular one of the plurality of tunnel endpoints based on the load assessment; and

encapsulating the packet in a tunnel using the source and destination tunnel endpoints.

18. The non-transitory machine readable medium of claim 17 , wherein the set of instructions for using the load balancing algorithm to select one of the plurality of tunnel endpoints of the MFE comprises sets of instructions for:

calculating a hash of a set of packet header values of the packet; and

based on the hash, assigning the set of packet header values of the packet to a particular one of the plurality of tunnel endpoints.

19. The non-transitory machine readable medium of claim 18 , wherein the set of packet header values comprises source and destination network layer addresses, source and destination transport layer port number, and a transport layer protocol.

20. The non-transitory machine readable medium of claim 18 , wherein the set of packet header values comprises a source MAC address.

Assignments (1)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →