IP Library Granted Patent US 9,954,779
Granted Patent B2
US 9,954,779 · App. 15/147,215 · Granted Apr 24, 2018

Method, apparatus, and system for supporting flexible lookup keys in software-defined networks

Inventors: Sridhar Pitchai (San Jose, CA); Mark Hlady (San Jose, CA)
Assignee: Telefonaktiebolaget LM Ericsson (publ)
H04L45/7453H04L45/38H04L45/42H04L45/64H04L45/745H04L69/22
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,954,779
App. No.
15/147,215
Granted
Apr 24, 2018
Kind
B2
Abstract

A method is described in a network element for supporting flexible lookup keys in a software-defined network. The method includes receiving a packet to be forwarded and determining a next hop for the packet, which includes parsing the packet to identify a superkey comprising a plurality of header field values of the packet; identifying a superkey mask value and a superkey offset value for a first lookup table of a set of one or more lookup tables; generating a table key for the first lookup table based upon the superkey mask value, the superkey offset value, and the superkey; and performing a lookup in the first lookup table using the table key. The lookup identifies an entry of the first lookup table indicating the next hop for the packet. The packet may then be forwarded to the next hop.

Claims (74)

1. A method in a forwarding element implemented by a network device in a software-defined network for supporting flexible lookup table keys, the method comprising:

receiving, at the forwarding element, a packet to be forwarded;

generating, by the forwarding element, a table key for a first lookup table based upon a superkey mask value, a superkey offset value, and a superkey, wherein the superkey comprises a plurality of header field values of the packet, and wherein the superkey mask value and the superkey offset value are associated with the first lookup table;

performing, by the forwarding element, a lookup in the first lookup table using the table key, wherein the lookup identifies an entry of the first lookup table indicating a next hop for the packet; and

transmitting, by the forwarding element, the packet to the next hop.

2. The method of claim 1 , further comprising:

identifying a table entry of a plurality of entries of a structure definition table (SDT) that corresponds to the first lookup table, wherein the SDT table entry comprises the superkey offset value and the superkey mask value.

3. The method of claim 1 , wherein said generating the table key comprises:

applying the superkey mask value to a subset of bytes of the superkey identified based upon the superkey offset value.

4. The method of claim 3 , wherein said applying comprises:

performing an AND operation with the subset of bytes of the superkey and the superkey mask value.

5. The method of claim 3 , wherein said generating the table key for the first lookup table further comprises applying a second superkey mask value to another subset of bytes of the superkey identified based upon a second superkey offset value.

6. The method of claim 1 , wherein said first lookup table comprises a hash table, and wherein said performing the lookup in the first lookup table using the table key comprises applying a hash function to the table key to generate an index value to be used to search the hash table.

7. The method of claim 1 , further comprising:

receiving, at the forwarding element, a second packet;

generating, by the forwarding element, a second table key for the first lookup table based upon the superkey mask value, the superkey offset value, and a second superkey generated based upon the second packet;

performing, by the forwarding element, a second lookup in the first lookup table using the second table key to determine to perform another lookup in a second lookup table;

generating, by the forwarding element, a third table key for the second lookup table based upon a second superkey mask value, a second superkey offset value, and the second superkey, and

performing, by the forwarding element, a third lookup in the second lookup table using the third table key to identify an entry of the second lookup table indicating a second next hop; and

transmitting, by the forwarding element, the second packet to the second next hop.

8. The method of claim 1 , further comprising:

receiving, at the forwarding element, a command from a controller in the software-defined network, wherein the command indicates that the forwarding element is to configure the first lookup table;

configuring the first lookup table according to the command; and

configuring a table entry of a structure definition table (SDT) that is to correspond to the first lookup table to include the superkey offset value and the superkey mask value.

9. A device to implement a forwarding element to operate in a software-defined network and support flexible lookup table keys, the device comprising:

one or more line cards, wherein each of the one or more line cards comprises circuitry adapted to:

receive a packet to be forwarded;

generate a table key for a first lookup table based upon a superkey mask value, a superkey offset value, and a superkey, wherein the superkey comprises a plurality of header field values of the packet, and wherein the superkey mask value and the superkey offset value are associated with the first lookup table;

perform a lookup in the first lookup table using the table key, wherein the lookup identifies an entry of the first lookup table indicating a next hop for the packet; and

transmit the packet to the next hop.

10. The device of claim 9 , wherein the circuitry is further adapted to:

identify a table entry of a plurality of entries of a structure definition table (SDT) that corresponds to the first lookup table, wherein the SDT table entry comprises the superkey offset value and the superkey mask value.

11. The device of claim 9 , wherein, to generate the table key, the circuitry is adapted to:

apply the superkey mask value to a subset of bytes of the superkey identified based upon the superkey offset value.

12. The device of claim 11 , wherein, to apply the superkey mask value, the circuitry is adapted to:

perform an AND operation with the subset of bytes of the superkey and the superkey mask value.

13. The device of claim 11 , wherein, to generate the table key for the first lookup table, the circuitry is further adapted to apply a second superkey mask value to another subset of bytes of the superkey identified based upon a second superkey offset value.

14. The device of claim 9 , wherein said first lookup table comprises a hash table, and wherein, to perform the lookup in the first lookup table using the table key, the circuitry is adapted to apply a hash function to the table key to generate an index value to be used to search the hash table.

15. The device of claim 9 , wherein the circuitry is further adapted to:

receive a second packet;

generate a second table key for the first lookup table based upon the superkey mask value, the superkey offset value, and a second superkey generated based upon the second packet;

perform a second lookup in the first lookup table using the second table key to determine to perform another lookup in a second lookup table;

generate a third table key for the second lookup table based upon a second superkey mask value, a second superkey offset value, and the second superkey;

perform a third lookup in the second lookup table using the third table key to identify an entry of the second lookup table indicating a second next hop; and

transmit the second packet to the second next hop.

16. The device of claim 9 , wherein the circuitry is further adapted to:

receive a command from a controller in the software-defined network, wherein the command indicates that the forwarding element is to configure the first lookup table;

configure the first lookup table according to the command; and

configure a table entry of a structure definition table (SDT) that is to correspond to the first lookup table to include the superkey offset value and the superkey mask value.

17. A non-transitory computer readable storage medium having instructions which, when executed by one or more processors of a device, cause the device to implement a forwarding element to act in a software-defined network and support flexible lookup table keys by performing operations comprising:

receiving a packet to be forwarded;

generating a table key for a first lookup table based upon a superkey mask value, a superkey offset value, and a superkey, wherein the superkey comprises a plurality of header field values of the packet, and wherein the superkey mask value and the superkey offset value are associated with the first lookup table;

performing a lookup in the first lookup table using the table key, wherein the lookup identifies an entry of the first lookup table indicating a next hop for the packet; and

transmitting the packet to the next hop.

18. The non-transitory computer readable storage medium of claim 17 , wherein the operations further comprise:

identifying a table entry of a plurality of entries of a structure definition table (SDT) that corresponds to the first lookup table, wherein the SDT table entry comprises the superkey offset value and the superkey mask value.

19. The non-transitory computer readable storage medium of claim 17 , wherein said generating the table key comprises:

applying the superkey mask value to a subset of bytes of the superkey identified based upon the superkey offset value.

20. The non-transitory computer readable storage medium of claim 19 , wherein said applying comprises:

performing an AND operation with the subset of bytes of the superkey and the superkey mask value.

21. The non-transitory computer readable storage medium of claim 19 , wherein said generating the table key for the first lookup table further comprises applying a second superkey mask value to another subset of bytes of the superkey identified based upon a second superkey offset value.

22. The non-transitory computer readable storage medium of claim 17 , wherein said first lookup table comprises a hash table, and wherein said performing the lookup in the first lookup table using the table key comprises applying a hash function to the table key to generate an index value to be used to search the hash table.

23. The non-transitory computer readable storage medium of claim 17 , wherein the operations further comprise:

receiving a second packet;

generating a second table key for the first lookup table based upon the superkey mask value, the superkey offset value, and a second superkey generated based upon the second packet;

performing a second lookup in the first lookup table using the second table key to determine to perform another lookup in a second lookup table;

generating a third table key for the second lookup table based upon a second superkey mask value, a second superkey offset value, and the second superkey, and

performing a third lookup in the second lookup table using the third table key to identify an entry of the second lookup table indicating a second next hop; and

transmitting the second packet to the second next hop.

24. The non-transitory computer readable storage medium of claim 17 , wherein

the operations further comprise:

receiving a command from a controller in the software-defined network, wherein the command indicates that the forwarding element is to configure the first lookup table;

configuring the first lookup table according to the command; and

configuring a table entry of a structure definition table (SDT) that is to correspond to the first lookup table to include the superkey offset value and the superkey mask value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2016
From: PITCHAI, SRIDHAR; HLADY, MARK
To: TELEFONAKTIEBOLAGET L M ERICSSON (PUBL)
Reel/Frame 038479/0246 →
Continuity (3)
Continuation 14168827 · Jan 30, 2014
Provisional Application 61917914 · Dec 18, 2013
Related Publication 20160255002A1 · Sep 1, 2016