IP Library Granted Patent US 9,300,603
Granted Patent B2
US 9,300,603 · App. 13/218,467 · Granted Mar 29, 2016

Use of rich context tags in logical data processing

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,300,603
App. No.
13/218,467
Granted
Mar 29, 2016
Kind
B2
Abstract

For a logical switching element implemented across several managed switching elements, some embodiments provide a method that receives a packet for processing through a logical processing pipeline of the logical switching element. The method processes the packet through a first set of stages of the logical processing pipeline of the logical switching element. The method generates a set of context tag values for indicating that the packet has been processed through the first set of stages of the logical processing pipeline. The method forwards the packet to a managed switching elements of the several managed switching elements for the managed switching element to further process the packet based on the context tag of the packet.

Claims (38)

1. For a first managed switching element that implements a logical switching element along with a plurality of additional managed switching elements, a method comprising:

receiving, from a source machine at an ingress port of the first managed switching element, a packet for processing through a processing pipeline comprising a physical to logical mapping, logical processing for processing the packet through the logical switching element to a destination machine, a logical to physical mapping, and physical processing;

performing the logical processing of the processing pipeline on the packet;

storing, in the packet, a set of context tag values for results of the logical processing performed on the packet, the set of context tag values comprising at least a logical output port of the logical switching element for the packet; and

forwarding the packet to a second managed switching element of the plurality of additional managed switching elements for the second managed switching element to provide the packet to the destination machine based on the logical output port in the set of context tag values stored in the packet.

2. The method of claim 1 , wherein the set of context tag values are stored in a header of the packet.

3. The method of claim 1 , wherein the set of context tag values are stored in a 64-bit field in a header of the packet.

4. The method of claim 1 , wherein the set of context tag values further comprises the logical switching element for the packet stored in a virtual routing and forwarding (VRF) field.

5. The method of claim 4 , wherein the VRF field is a 32-bit field in a header of the packet.

6. The method of claim 1 , wherein the set of context tag values further comprises an ingress port of the logical switching element at which the packet originated stored in an inport field.

7. The method of claim 6 , wherein the inport field is a 16-bit field in a header of the packet.

8. The method of claim 1 , wherein the logical output port is stored in a 16-bit field in a header of the packet.

9. The method of claim 1 , wherein performing the logical processing comprises performing a lookup on a header of the packet to identify the logical switching element.

10. The method of claim 9 , wherein performing the lookup on the header of the packet comprises performing a lookup on a source media access control (MAC) address field that is included in the header of the packet.

11. The method of claim 9 , wherein performing the lookup on the header of the packet comprises performing a lookup on a virtual local area network (VLAN) field that is included in the header of the packet.

12. The method of claim 1 , wherein the set of context tag values stored in the packet further comprises an identifier for the logical switching element and a logical input port on the logical switching element.

13. The method of claim 12 , wherein performing the logical processing comprises making a logical access control list (ACL) decision based on the logical input port and the identifier for the logical switching element.

14. The method of claim 12 , wherein the performing the logical processing comprises performing a logical forwarding operation that uses the logical switching element identifier and a destination media access control (MAC) address stored in the packet in order to identify the logical output port for the packet.

15. The method of claim 1 , wherein the second managed switching element does not perform any logical processing on the packet.

16. A non-transitory machine readable medium storing a program, which when executed by at least one processing unit manages a first managed switching element that implements a logical switching element along with a plurality of additional managed switching elements, the program further comprising sets of instructions for:

receiving, from a source machine at an ingress port of the first managed switching element, a packet for processing through a processing pipeline comprising a physical to logical mapping, logical processing for processing the packet through the logical switching element to a destination machine, a logical to physical mapping, and physical processing;

performing the logical processing of the processing pipeline on the packet;

storing, in the packet, a set of context tag values for results of the logical processing performed on the packet, the set of context tag values comprising at least a logical output port of the logical switching element for the packet; and

forwarding the packet to a second managed switching element of the plurality of additional managed switching elements for the second managed switching element to provide the packet to the destination machine based on the logical output port in the set of context tag values stored in the packet.

17. The non-transitory machine readable medium of claim 16 , wherein the set of context tag values are stored in a header of the packet.

18. The non-transitory machine readable medium of claim 16 , wherein the set of context tag values are stored in a 64-bit field in a header of the packet.

19. The non-transitory machine readable medium of claim 16 , wherein the set of context tag values further comprises the logical switching element for the packet stored in a virtual routing and forwarding (VRF) field.

20. The non-transitory machine readable medium of claim 19 , wherein the VRF field is a 32-bit field in a header of the packet.

21. The non-transitory machine readable medium of claim 16 , wherein the set of context tag values further comprises an ingress port of the logical switching element at which the packet originated stored in an inport field.

22. The non-transitory machine readable medium of claim 21 , wherein the inport field is a 16-bit field in a header of the packet.

23. The non-transitory machine readable medium of claim 16 , wherein the logical output port is stored in a 16-bit field in a header of the packet.

24. The non-transitory machine readable medium of claim 16 , wherein the set of instructions for performing the logical processing comprises a set of instructions for performing a lookup on a header of the packet to identify the logical switching element.

25. The non-transitory machine readable medium of claim 24 , wherein the set of instructions for performing the lookup on the header of the packet comprises a set of instructions for performing a lookup on a source media access control (MAC) address field that is included in the header of the packet.

26. The non-transitory machine readable medium of claim 24 , wherein the set of instructions for performing the lookup on the header of the packet comprises a set of instructions for performing a lookup on a virtual local area network (VLAN) field that is included in the header of the packet.

27. The non-transitory machine readable medium of claim 16 , wherein the set of context tag values stored in the packet further comprises an identifier for the logical switching element and a logical input port on the logical switching element.

28. The non-transitory machine readable medium of claim 27 , wherein the set of instructions for performing the logical processing comprises a set of instructions for making a logical access control list (ACL) decision based on the logical input port and the identifier for the logical switching element.

29. The non-transitory machine readable medium of claim 27 , wherein the set of instructions for performing the logical processing comprises a set of instructions for performing a logical forwarding operation that uses the logical switching element identifier and a destination media access control (MAC) address stored in the packet in order to identify the logical output port for the packet.

30. The non-transitory machine readable medium of claim 16 , wherein the second managed switching element does not perform any logical processing on the packet.

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: CASADO, MARTIN; KOPONEN, TEEMU; THAKKAR, PANKAJ
To: NICIRA NETWORKS, INC.
Reel/Frame 027999/0485 →