Hybrid data plane for a containerized router
US-11991097-B2 · May 21, 2024 · US
US2016285753A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016285753-A1 |
| Application number | US-201514671751-A |
| Country | US |
| Kind code | A1 |
| Filing date | Mar 27, 2015 |
| Priority date | Mar 27, 2015 |
| Publication date | Sep 29, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method in a network device of flow learning in a network device are provided. The method comprises determining whether the flow of a packet is being learnt by the network device; in response to determining that the flow is already being learnt, forwarding the packet without sending a request to insert a new entry in one of the set of one or more forwarding tables; and in response to determining that the flow is not yet being learnt, performing: 1) updating a retrieved flow learning element to include a second portion of a flow identification, 2) sending a request to store the updated flow learning element into a flow learning table, and 3) in response to determining that the updated flow learning element is stored, sending a request to insert a new entry associated with the flow of the packet in a forwarding table.
Opening claim text (preview).
What is claimed is: 1 . A method of flow learning in a network device, the method comprising: receiving ( 210 ), by the network device, a packet of a flow of packets; determining ( 240 ), based on an identification of the flow of the packet, whether the packet has a corresponding forwarding table entry within a set of one or more forwarding tables of the network device; responsive to determining that the packet does not have any corresponding forwarding table entry, retrieving ( 250 ) a flow learning element from a flow learning table using a first portion of the flow identification; determining whether the flow of the packet is being learnt by the network device, based at least on a second portion of the flow identification for the received packet matching a sub-element of the retrieved flow learning element; responsive to determining that the flow is being learnt, forwarding ( 270 ) the packet without sending a request to insert a new entry in one of the set of one or more forwarding tables; and responsive to determining that the flow is not yet being learnt, performing the following: updating ( 310 ) the retrieved flow learning element to include the second portion of the flow identification, sending ( 320 ) a request to store the updated flow learning element into the flow learning table, and responsive to determining that the updated flow learning element is stored in the flow learning table, sending ( 340 ) a request to insert a new entry associated with the flow of the packet in a forwarding table from the set of one or more forwarding tables. 2 . The method of claim 1 , further comprising responsive to determining that the updated flow learning element is not stored in the flow learning table, forwarding the packet without sending a request to insert a new entry associated with the flow of the packet in one of the set of one or more forwarding tables. 3 . The method of claim 1 , further comprising mapping ( 220 ) the packet to a packet processing thread. 4 . The method of claim 1 , wherein the method further comprises generating ( 230 ) the flow identification for the received packet based on a key associated with the flow of packets. 5 . The method of claim 4 , wherein generating the flow identification includes generating a hash value using a hashing function. 6 . The method of claim 5 , wherein the first portion of the flow identification is a first portion of the hash value, and the second portion of the flow identification is a second portion of the hash value that is disjoint from the first portion. 7 . The method of claim 1 , wherein the sub-element of the flow learning element is a first sub-element and wherein the updating the retrieved flow learning element further comprises: updating ( 410 ) the first sub-element of the flow learning element with the second portion of the hash value; and updating ( 420 ) a second sub-element of the flow learning element to indicate that the flow associated with the packet is being learnt. 8 . The method of claim 1 , wherein determining that the updated flow learning element is stored in the flow learning table comprises determining that the element has not been updated and stored for another packet of the same flow after being retrieved from the flow learning table for the packet. 9 . The method of claim 1 , wherein forwarding the packet includes one of dropping the packet, and flooding the packet. 10 . The method of claim 1 , wherein sending a request to store the updated flow learning element is performed with an atomic compare and swap instruction. 11 . A non-transitory machine-readable storage medium ( 618 , 648 ) that provides instructions, which when executed by a processor ( 612 , 642 ) of a network device, cause said processor to perform operations comprising: receiving ( 210 ), by the network device, a packet of a flow of packets; determining ( 240 ), based on an identification of the flow, whether the packet has a corresponding forwarding table entry within a set of one or more forwarding tables of the network device; responsive to determining that the packet does not have any corresponding forwarding table entry, retrieving ( 250 ) a flow learning element from a flow learning table using a first portion of the flow identification; determining whether the flow of the packet is being learnt by the network device, based at least on a second portion of the flow identification for the received packet matching a sub-element of the retrieved flow learning element; responsive to determining that the flow is being learnt, forwarding ( 270 ) the packet without sending a request to insert a new entry in one of the set of one or more forwarding tables; and responsive to determining that the flow is not yet being learnt performing the following: updating ( 310 ) the retrieved flow learning element to include the second portion of the flow identification, sending ( 320 ) a request to store the updated flow learning element into the flow learning table, and responsive to determining that the updated flow learning element is stored in the flow learning table, sending ( 340 ) a request to insert a new entry associated with the flow of the packet in a forwarding table from the set of one or more forwarding tables. 12 . The non-transitory machine-readable storage medium ( 618 , 648 ) of claim 11 , wherein the operations further comprise responsive to determining that the updated flow learning element is not stored in the flow learning table, forwarding the packet without sending a request to insert a new entry associated with the flow of the packet in one of the set of one or more forwarding tables. 13 . The non-transitory machine-readable storage medium ( 618 , 648 ) of claim 11 , wherein the operations further comprise mapping ( 220 ) the packet to a packet processing thread. 14 . The non-transitory machine-readable storage medium ( 618 , 648 ) of claim 11 , wherein the operations further comprise generating ( 230 ) the flow identification for the received packet based on a key associated with the flow of packets. 15 . The non-transitory machine-readable storage medium ( 618 , 648 ) of claim 14 , wherein generating the flow identification includes generating a hash value using a hashing function. 16 . The non-transitory machine-readable storage medium ( 618 , 648 ) of claim 15 , wherein the first portion of the flow identification is a first portion of the hash value, and the second portion of the flow identification is a second portion of the hash value that is disjoint from the first portion. 17 . The non-transitory machine-readable storage medium ( 618 , 648 ) of claim 11 , wherein the sub-element of the flow learning element is a first sub-element and wherein the updating the retrieved flow learning element further comprises: updating ( 410 ) the first sub-element of the flow learning element with the second portion of the hash value; and updating ( 420 ) a second sub-element of the flow learning element to indicate that the flow associated with the packet is being learnt. 18 . The non-transitory machine-readable storage medium ( 618 , 648 ) of claim 11 , wherein determining that the updated flow learning element is stored in the flow learning table comprises determining that the element has not been updated and stored for another packet of the same flow after being retrieved from the flow learning table for the packet. 19 . The non-transitory machine-readable storage medium ( 618 , 648 ) of claim 11 , wherein forwar
Flow based routing · CPC title
using hashing · CPC title
using an overlay routing layer · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.