IP Library Granted Patent US 9,692,655
Granted Patent B2
US 9,692,655 · App. 13/225,553 · Granted Jun 27, 2017

Packet processing in a network with hierarchical managed switching elements

Inventors: Teemu Koponen (San Francisco, CA); Keith E. Amidon (Los Altos, CA); Paul S. Ingram (Menlo Park, CA); Martin Casado (Portola Valley, CA)
Assignee: NICIRA, INC.
H04L41/0893G06F15/17312H04L12/4633H04L12/5689H04L12/5696H04L41/0816H04L41/0853H04L41/0896H04L45/586H04L47/783H04L49/1546H04L49/3063H04L49/70H04L61/2007H04L61/6022G06F11/07
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 9,692,655
App. No.
13/225,553
Granted
Jun 27, 2017
Kind
B2
Abstract

Some embodiments provide a managed network for implementing a logical switching element. The managed network includes several managed edge switching elements that are each for (1) receiving packets for forwarding through the logical switching element and (2) forwarding packets that are known to the managed edge switching element to other managed edge switching elements in the several managed edge switching elements. The managed network includes a set of managed non-edge switching elements for (1) receiving packets from the several managed edge switching elements that are unknown to a particular managed edge switching element in the several managed edge switching elements and (2) forwarding packets to the several managed edge switching elements that are unknown to the several managed edge switching elements.

Claims (39)

1. For a managed non-edge switching element (MNESE), a method of processing packets sent by a plurality of managed edge switching elements (MESEs) that implement a plurality of logical networks, each logical network for connecting a set of devices, the MNESEs and MESEs managed by a set of network controllers, the method comprising:

at the MNESE, receiving a multi-recipient packet from a source MESE in the plurality of MESEs;

performing a logical context lookup on a lookup table based on information contained in a set of header fields of the received multi-recipient packet to identify a particular logical network to which the multi-recipient packet belongs;

identifying a plurality of devices of the particular logical network as recipient devices for the multi-recipient packet based on the particular logical network;

at the MNESE, identifying a set of MESEs, from the plurality of MESEs, that are directly coupled to one or more identified recipient devices; and

forwarding at least one copy of the multi-recipient packet to each MESE in the identified set of MESEs, wherein each MESE in the identified set of MESEs provides the multi-recipient packet to the recipient devices that are directly coupled to the MESE.

2. The method of claim 1 , wherein forwarding at least one copy of the multi-recipient packet to each MESE in the identified set of MESEs comprises,

for each MESE that directly couples to a plurality of identified recipient devices:

generating a packet from the multi-recipient packet for each recipient device directly coupled to the MESE; and

to the MESE, forwarding each packet generated for the MESE, wherein the MESE provides each generated packet that the MESE receives to the recipient device directly coupled to the MESE for which the packet was generated.

3. The method of claim 1 ,

wherein forwarding at least one copy of the multi-recipient packet to each MESE in the identified set of MESEs comprises generating a set of copies of the multi-recipient packet and forwarding a generated copy of the multi-recipient packet to each MESE in the identified set of MESEs,

wherein each MESE in the identified set of MESEs that directly couples to more than one identified recipient device replicates the forwarded copy of the multi-recipient packet and provides a replicated copy of the multi-recipient packet to each recipient device that is directly coupled to the MESE.

4. The method of claim 1 , wherein the identified set of MESEs does not include the source MESE.

5. The method of claim 1 , wherein the received multi-recipient packet is a multicast packet that is to be forwarded by the MNESE and the identified set of MESEs to the plurality of recipient devices coupled to the particular logical network.

6. The method of claim 1 , wherein the received multi-recipient packet is a broadcast packet that is to be forwarded by the MNESE and the identified set of MESEs to the recipient devices coupled to the particular logical network.

7. The method of claim 1 , wherein the MNESE does not directly couple to the recipient devices that are directly coupled to the identified set of MESEs.

8. The method of claim 1 , wherein information contained in the set of header fields specifies that the multi-recipient packet is a broadcast packet.

9. The method of claim 1 , wherein information contained in the set of header fields specifies that the multi-recipient packet is a multicast packet.

10. A non-transitory machine readable medium storing a program for a managed non-edge switching element (MNESE) which when executed by a set of processing units processes packets sent by a plurality of managed edge switching elements (MESEs) that implement a plurality of logical networks, each logical network for connecting a set of devices, the MNESEs and MESEs managed by a set of network controllers, the program comprising sets of instructions for:

receiving a multi-recipient packet from a source MESE in the plurality of MESEs;

performing a logical context lookup on a lookup table based on information contained in a set of header fields of the received multi-recipient packet to identify a particular logical network to which the multi-recipient packet belongs;

identifying a plurality of devices of the particular logical network as recipient devices for the multi-recipient packet based on the particular logical network;

identifying a set of MESEs, from the plurality of MESEs, that are directly coupled to one or more identified recipient devices; and

forwarding at least one copy of the multi-recipient packet to each MESE in the identified set of MESEs, wherein each MESE in the identified set of MESEs provides the multi-recipient packet to the recipient devices that are directly coupled to the MESE.

11. The non-transitory machine readable medium of claim 10 , wherein the set of instructions for forwarding at least one copy of the multi-recipient packet to each MESE in the identified set of MESEs comprises sets of instructions for:

for each MESE that directly couples to a plurality of identified recipient devices:

generating a packet from the multi-recipient packet for each recipient device directly coupled to the MESE; and

to the MESE, forwarding each packet generated for the MESE, wherein the MESE provides each generated packet that the MESE receives to the recipient device directly coupled to the MESE for which the packet was generated.

12. The non-transitory machine readable medium of claim 10 ,

wherein the set of instructions for forwarding at least one copy of the multi-recipient packet to each MESE in the identified set of MESEs comprises a set of instructions for generating a set of copies of the multi-recipient packet and forwarding a generated copy of the multi-recipient packet to each MESE in the identified set of MESEs,

wherein each MESE in the identified set of MESEs that directly couples to more than one identified recipient device replicates the forwarded copy of the multi-recipient packet and provides a replicated copy of the multi-recipient packet to each recipient device that is directly coupled to the MESE.

13. The non-transitory machine readable medium of claim 10 , wherein the identified set of MESEs does not include the source MESE.

14. The non-transitory machine readable medium of claim 10 , wherein the received multi-recipient packet is a multicast packet that is to be forwarded by the MNESE and the identified set of MESEs to the plurality of recipient devices coupled to the particular logical network.

15. The non-transitory machine readable medium of claim 10 , wherein the received multi-recipient packet is a broadcast packet that is to be forwarded by the MNESE and the identified set of MESEs to the recipient devices coupled to the particular logical network.

16. The non-transitory machine readable medium of claim 10 , wherein the MNESE does not directly couple to the recipient devices that are directly coupled to the identified set of MESEs.

17. The non-transitory machine readable medium of claim 10 , wherein information contained in the set of header fields specifies that the multi-recipient packet is a broadcast packet.

18. The non-transitory machine readable medium of claim 10 , wherein information contained in the set of header fields specifies that the multi-recipient packet is a multicast packet.

19. The non-transitory machine readable medium of claim 10 , wherein the recipient devices directly coupled to the identified set of MESEs comprise virtual machines (VMs).

Assignments (3)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
CHANGE OF NAME Recorded Jun 15, 2012
From: NICIRA NETWORKS, INC.
To: NICIRA, INC.
Reel/Frame 028381/0048 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2012
From: KOPONEN, TEEMU; AMIDON, KEITH E.; INGRAM, PAUL S.; CASADO, MARTIN
To: NICIRA NETWORKS, INC.
Reel/Frame 027999/0449 →
Continuity (17)
Continuation 13177535 · Jul 6, 2011
Continuation In Part 13177536 · Jul 6, 2011
Continuation In Part 13177538 · Jul 6, 2011
Provisional Application 61361912 · Jul 6, 2010
Provisional Application 61361913 · Jul 6, 2010
Provisional Application 61429753 · Jan 4, 2011
Provisional Application 61429754 · Jan 4, 2011
Provisional Application 61466453 · Mar 22, 2011
Provisional Application 61482205 · May 3, 2011
Provisional Application 61482615 · May 4, 2011
Provisional Application 61482616 · May 4, 2011
Provisional Application 61501743 · Jun 27, 2011
Provisional Application 61501785 · Jun 28, 2011
Provisional Application 61505100 · Jul 6, 2011
Provisional Application 61505102 · Jul 6, 2011
Provisional Application 61505103 · Jul 6, 2011
Related Publication 20130058334A1 · Mar 7, 2013