IP Library Granted Patent US 10,826,840
Granted Patent B1
US 10,826,840 · App. 15/835,242 · Granted Nov 3, 2020

Multiple copies of stateful tables

Inventors: Jay Evan Scott Peterson (San Francisco, CA); Michael Gregory Ferrara (Palo Alto, CA); Anurag Agrawal (Santa Clara, CA); Patrick Bosshart (Plano, TX); Jeongkeun Lee (Mountain View, CA)
Assignee: Barefoot Networks, Inc.
H04L47/6255H04L45/745H04L49/3063
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 10,826,840
App. No.
15/835,242
Granted
Nov 3, 2020
Kind
B1
Abstract

Some embodiments provide a method for a packet processing pipeline of a network forwarding integrated circuit. The method stores two copies of a stateful table used by the packet processing pipeline. The stateful table is modified according to data processed by the packet processing pipeline. Upon receiving data to write to the stateful table, the method generates (i) a first copy of the received data along with an indicator for a first one of the copies of the stateful table and (ii) a second copy of the received data along with an indicator for a second one of the copies of the stateful table. The method sends the first copy of the received data into the packet processing pipeline before sending the second copy of the received data into the packet processing pipeline.

Claims (29)

1. For a packet processing pipeline of a network forwarding integrated circuit, a method comprising:

storing two copies of a stateful table used by the packet processing pipeline, wherein the stateful table is modified according to data processed by the packet processing pipeline;

upon receiving data to write to the stateful table, generating (i) a first copy of the received data along with an indicator for a first one of the copies of the stateful table and (ii) a second copy of the received data along with an indicator for a second one of the copies of the stateful table; and

sending the first copy of the received data into the packet processing pipeline before sending the second copy of the received data into the packet processing pipeline.

2. The method of claim 1 , wherein the indicator comprises a bit that equals 0 for the first copy of the stateful table and 1 for the second copy of the stateful table or the indicator comprises a bit that equals 1 for the first copy of the stateful table and 0 for the second copy of the stateful table.

3. The method of claim 1 , wherein the stateful table is used by a stage of the packet processing pipeline to make a decision regarding a packet.

4. The method of claim 1 , wherein the stateful table is used to store data in subsequent packets in order for the data to be transmitted with the packet.

5. The method of claim 1 further comprising writing the first copy of the received data to the first copy of the stateful table while reading from the second copy of the stateful table.

6. The method of claim 5 , wherein the writing to the first copy of the stateful table and the reading from the second copy of the stateful table occur in a same clock cycle.

7. The method of claim 6 , wherein a same stage of the packet processing pipeline performs the read and write.

8. The method of claim 5 , wherein the write is based on a first thread of the packet processing pipeline for processing the received data while the read is based on a second thread of the packet processing pipeline for processing packet data.

9. The method of claim 5 further comprising writing the second copy of the received data to the second copy of the stateful table while reading from the first copy of the stateful table.

10. The method of claim 9 , wherein the writing to the first copy of the stateful table and the reading from the second copy of the stateful table occur at least one clock cycle prior to the writing to the second copy of the stateful table and the reading from the first copy of the stateful table.

11. The method of claim 1 , wherein the first copy of the received data is sent into the packet processing pipeline along with data for a first packet and the second copy of the received data is sent into the packet processing pipeline along with data for a second packet.

12. The method of claim 1 , wherein the first copy of the received data is sent into the packet processing pipeline along with data for a packet and the second copy of the received data is sent into the packet processing pipeline separate from any packet data.

13. The method of claim 1 , wherein the received data is generated at the network forwarding integrated circuit.

14. The method of claim 13 , wherein the received data comprises queue state data from a queue manager of the network forwarding integrated circuit.

15. The method of claim 14 , wherein the queue state data is used by the packet processing pipeline to select queues for subsequent packets.

16. A network forwarding integrated circuit (IC) comprising a set of packet processing pipelines, at least one of the packet processing pipelines comprising:

a parser; and

a set of match-action stages, wherein a particular match-action stage is to store two copies of a stateful table, wherein the stateful table is modified according to data processed by the packet processing pipeline,

wherein the parser is configured to:

upon receipt of data to write to the stateful table, generate (i) a first copy of the received data

along with an indicator for a first one of the copies of the stateful table and (ii) a second copy of the received data along with an indicator for a second one of the copies of the stateful table; and

send the first copy of the received data to the set of match-action stages before sending the second copy of the received data to the set of match-action stages.

17. The network forwarding IC of claim 16 , wherein the indicator comprises a bit that equals 0 for the first copy of the stateful table and 1 for the second copy of the stateful table or the indicator comprises a bit that equals 1 for the first copy of the stateful table and 0 for the second copy of the stateful table.

18. The network forwarding IC of claim 16 , wherein the particular match-action stage is configured to write the first copy of the received data to the first copy of the stateful table and read from the second copy of the stateful table in a same clock cycle.

19. The network forwarding IC of claim 18 , wherein the write is based on a first thread to process the received data while the read is based on a second thread to process packet data.

20. The network forwarding IC of claim 18 , wherein the clock cycle is a first clock cycle, wherein the particular match-action stage is further configured to write the second copy of the received data to the second copy of the stateful table and read from the first copy of the stateful table in a second clock cycle that occurs after the first clock cycle.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Sep 20, 2019
From: SILICON VALLEY BANK
To: BAREFOOT NETWORKS, INC.
Reel/Frame 050455/0455 →
RELEASE OF SECURITY INTEREST Recorded Sep 20, 2019
From: SILICON VALLEY BANK
To: BAREFOOT NETWORKS, INC.
Reel/Frame 050455/0497 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 25, 2019
From: BAREFOOT NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 049588/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 25, 2019
From: BAREFOOT NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 049588/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2018
From: PETERSON, JAY EVAN SCOTT; FERRARA, MICHAEL GREGORY; AGRAWAL, ANURAG; BOSSHART, PATRICK; LEE, JEONGKEUN
To: BAREFOOT NETWORKS, INC.
Reel/Frame 046554/0645 →