IP Library Granted Patent US 11,362,967
Granted Patent B2
US 11,362,967 · App. 16/789,339 · Granted Jun 14, 2022

Expansion of packet data within processing pipeline

Inventors: Patrick Bosshart (Plano, TX); Jay Evan Scott Peterson (San Francisco, CA); Michael Gregory Ferrara (Palo Alto, CA); Michael E. Attig (Sunnyvale, CA)
Assignee: Barefoot Networks, Inc.
H04L49/3063H04L45/745H04L45/7453H04L47/2441H04L49/109H04L69/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 11,362,967
App. No.
16/789,339
Granted
Jun 14, 2022
Kind
B2
Abstract

Some embodiments provide a network forwarding IC with packet processing pipelines, at least one of which includes a parser, a set of match-action stages, and a deparser. The parser is configured to receive a packet and generate a PHV including a first number of data containers storing data for the packet. A first match-action stage is configured to receive the PHV from the parser and expand the PHV to a second, larger number of data containers storing data for the packet. Each of a set of intermediate match-action stage is configured to receive the expanded PHV from a previous stage and provide the expanded PHV to a subsequent stage. A final match-action stage is configured to receive the expanded PHV and reduce the PHV to the first number of data containers. The deparser is configured to receive the reduced PHV from the final match-action stage and reconstruct the packet.

Claims (34)

1. A network forwarding element comprising:

a set of packet processing pipelines, wherein at least one of the packet processing pipelines comprises a set of processors and wherein a first packet processing pipeline is to:

generate a first type of data container and a second type of data container based on a received packet and

process content of the first type of data container and to process content of the second type of data container, wherein the first and second types of data containers are two different sizes.

2. The network forwarding element of claim 1 , wherein a particular type of data container is to convey a particular type of content and the content comprises one or more of: packet data or destination IP address.

3. The network forwarding element of claim 1 , wherein:

the first packet processing pipeline is to output at least one data container and

the at least one data container comprises a third type of data container or the first or second types of data containers.

4. The network forwarding element of claim 3 , wherein a particular type of data container is to convey a particular type of content and wherein the first type and second types of data containers are to convey content that is to be processed by a next match action unit (MAU) stage and the third type of data container is to convey content that is not to be processed by the next MAU stage.

5. The network forwarding element of claim 4 , wherein the content comprises one or more of: packet data, destination IP address, memory addresses, instructions, list of protocols that make up a packet header, next hop information, multicast group identifier, or an egress queue identifier.

6. The network forwarding element of claim 1 , wherein the first packet processing pipeline comprises a parser, at least one match-action unit, and a deparser.

7. The network forwarding element of claim 6 , wherein a match-action unit is to copy data values received from the first type of data container and output the data in another type of data container.

8. The network forwarding element of claim 6 , wherein to process the first and second types of data containers, a match-action unit is to generate hashes for matching against match table entries and attempt to match against match table entries.

9. The network forwarding element of claim 6 , wherein a match-action unit comprises at least one data-plane stateful processing unit (DSPU) and stateful table.

10. The network forwarding element of claim 6 , wherein the deparser is to reconstruct the received packet based on contents of a data container provided by a match-action unit and wherein the network forwarding element is to transmit the reconstructed packet.

11. The network forwarding element of claim 1 , wherein operations of the at least one of the packet processing pipelines are programmed by a control plane.

12. A method of processing received packets, the method comprising:

in a packet processing pipeline, wherein the packet processing pipeline comprises a set of processors:

generating a first type of data container and a second type of data container based on a received packet and

processing the first type of data container and processing the second type of data container, wherein the first and second types of data containers are two different sizes.

13. The method of claim 12 , wherein a particular type of data container is to convey a particular type of content and the content comprises one or more of: packet data or destination IP address.

14. The method of claim 12 , comprising:

generating a third type of data container based on the received packet, wherein the first type and second type of data containers are to convey content that is to be processed by a next match action unit (MAU) stage and the third type of data container is to convey content that is not to be processed by the next MAU stage.

15. The method of claim 14 , wherein the content comprises one or more of: packet data, destination IP address, memory addresses, instructions, list of protocols that make up a packet header, next hop information, multicast group identifier, or an egress queue identifier.

16. The method of claim 12 , wherein the packet processing pipeline comprises a parser, at least one match-action unit, and a deparser.

17. The method of claim 16 , wherein a match-action unit comprises at least one data-plane stateful processing unit (DSPU) and stateful table.

18. The method of claim 12 , comprising:

in the packet processing pipeline, copying data values received from the first type of data container and outputting the data in another type of data container.

19. The method of claim 12 , wherein processing the first and second types of data containers comprises generating hashes for matching against match table entries and attempting to match against match table entries.

20. The method of claim 12 , comprising:

receiving programming of the packet processing pipeline from a control plane.

21. The method of claim 12 , comprising:

reconstructing the received packet based on contents of a data container provided by a match-action unit and

transmitting the reconstructed packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2025
From: BAREFOOT NETWORKS, INC.
To: INTEL CORPORATION
Reel/Frame 070745/0436 →
Continuity (3)
Continuation 15835233 · Dec 7, 2017
Provisional Application 62564659 · Sep 28, 2017
Related Publication 20200259765A1 · Aug 13, 2020