Systems and methods for stateful packet processing
US-11025549-B2 · Jun 1, 2021 · US
US11916795B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11916795-B2 |
| Application number | US-202117318076-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 12, 2021 |
| Priority date | Jan 30, 2018 |
| Publication date | Feb 27, 2024 |
| Grant date | Feb 27, 2024 |
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.
Methods and systems are provided for processing a received packet based on associated state information. A packet processor of a network device receives a packet from a network. The received packet is classified as belonging to at least one respective identified flow from among a plurality of identified flows. For a respective received packet that belongs to an identified flow a current state value for the identified flow is ascertained based on a state table. The current state value is assigned to the respective received packet based on the current state value using the state table for the identified flow. A packet processing operation is subsequently performed on the respective received packet based in part on the state value of the identified flow to which the respective packet belongs.
Opening claim text (preview).
What is claimed is: 1. A method for processing a received packet based on associated state information, the method comprising: receiving, at a packet processor of a network device, packets from a network; classifying a received packet as belonging to at least one respective identified flow from among a plurality of identified flows; for a respective received packet that belongs to an identified flow: updating a current state value for the identified flow based on receipt of the respective received packet; recording a value based on the updated current state value with the respective received packet, wherein the updated current state value is indicative of a sequential location of the respective received packet in a stream of previously received packets belonging to the identified flow; performing a first packet processing operation on the respective received packet based in part on the recorded updated current state value being equal to a first state value; and performing a second packet processing operation on the respective received packet based in part on the recorded updated current state value being equal to a second state value, wherein the second packet processing operation is different from the first packet processing operation and the second state value is different from the first state value. 2. The method of claim 1 , further comprising one of: incrementing the current state value in response to classifying the received packet as belonging to at least one respective identified flow; or decrementing the current state value in response to classifying the received packet as belonging to at least one respective identified flow. 3. The method of claim 1 , wherein recording the current state value with the respective received packet comprises: updating a header of the received packet to indicate the recorded updated current state value. 4. The method of claim 3 , further comprising: performing the first processing operation on the respective received packet based on the updated header of the received packet. 5. The method of claim 3 , further comprising: performing the second packet processing operation on the respective received packet based on the updated header of the received packet. 6. The method according to claim 1 , further comprising: recording a first value based on the current state value with the respective received packet when the current state value is equal to a target value; and recording a second value based on the current state value with the respective received packet when the current state value is not equal to the target value, wherein the second value is different from the first value. 7. The method according to claim 6 , further comprising: adding telemetry information to the respective received packet when the value recorded with the respective received packet is the first value. 8. The method according to claim 1 , further comprising: recording a first value with the respective received packet when the current state value is equal to a zero-value; and recording a second value with the respective received packet when the current state value is equal to a non-zero value, wherein the second value is different from the first value. 9. The method according to claim 7 , further comprising: mirroring the respective received packet to a central processing unit (CPU) when the value recorded with the respective received packet is the second value. 10. The method according to claim 1 , wherein classifying the received packets as belonging to at least one respective identified flow from among the plurality of identified flows comprises: identifying the flow from the plurality of identified flows based on a packet header and attributes of the respective received packet; and accessing a state table corresponding to the identified flow, the state table being indicative of a number of received packets assigned to the respective flow. 11. A network device for processing a received packet based on associated state information, the network device comprising: a packet processor configured to receive packets from a network; and control circuitry configured to: classify a received packet as belonging to at least one respective identified flow from among a plurality of identified flows; for a respective received packet that belongs to an identified flow: update a current state value for the identified flow based on receipt of the respective received packet; record the updated current state value with the respective received packet, wherein the updated current state value is indicative of a sequential location of the respective received packet in a stream of previously received packets belonging to the identified flow; perform a first packet processing operation on the respective received packet based in part on the recorded updated current state value being equal to a first value; and perform a second packet processing operation on the respective received packet based in part on the recorded updated current state value being equal to a second state value, wherein the second packet processing operation is different from the first packet processing operation and the second state value is different from the first state value. 12. The network device of claim 11 , wherein the control circuitry is further configured to one of: increment the current state value in response to classifying the received packet as belonging to at least one respective identified flow; or decrement the current state value in response to classifying the received packet as belonging to at least one respective identified flow. 13. The network device of claim 11 , wherein the control circuitry, when recording the current state value with the respective received packet, is configured to: update a header of the received packet to indicate the recorded updated current state value. 14. The network device of claim 13 , wherein the control circuitry is further configured to: perform the first processing operation on the respective received packet based on the updated header of the received packet. 15. The network device of claim 13 , wherein the control circuitry is further configured to: perform the second packet processing operation on the respective received packet based on the updated header of the received packet. 16. The network device according to claim 11 , wherein the control circuitry is further configured to: record a first value based on the current state value with the respective received packet when the current state value is equal to a target value; and record a second value based on the current state value with the respective received packet when the current state value is not equal to the target value, wherein the second value is different from the first value. 17. The network device according to claim 16 , wherein the control circuitry is further configured to: add telemetry information to the respective received packet when the value recorded with the respective received packet is the first value. 18. The network device according to claim 11 , wherein the control circuitry is further configured to: record a first value with the respective received packet when the current state value is equal to a zero-value; and record a second value with the respective received packet when the current state value is equal to a non-zero value, wherein the second value is different from the first value. 19. The network device according to claim 17 , wherein the control circuitry is further configured to:
relying on flow classification, e.g. using integrated services [IntServ] · CPC title
Address processing for routing · CPC title
Parsing or analysis of headers · CPC title
Address table lookup; Address filtering · CPC title
using content-addressable memories [CAM] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.