# US 10,454,833 B1 · Pipeline chaining

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,454,833 B1
- Document ID: US10454833B1
- Status: Granted
- Kind: B1
- Application number: 15/838,697
- Filed: 2017-12-12
- Granted: 2019-10-22
- Earliest claimed: 2017-06-30
- Assignees: Barefoot Networks, Inc.
- Applicants: Barefoot Networks, Inc.
- Inventors: Patrick Bosshart; Jay Evan Scott Peterson; Michael Gregory Ferrara; Remy Chang
- Web page: https://patentgrep.com/patent/US10454833B1

## CPC

- H04L 47/15: {in relation to multipoint traffic (arrangements for broadcast or multicast in data networks H04L12/18)}
- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- H04L 45/16: Multipoint routing
- H04L 49/3063: {Pipelined operation}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Some embodiments provide a network forwarding integrated circuit (IC) for processing network packets. The network forwarding IC includes multiple packet processing pipelines and a traffic management unit. Each pipeline is configured to operate as an ingress pipeline and an egress pipeline. The traffic management unit is configured to receive a packet processed by an ingress pipeline and to enqueue the packet for output to a particular egress pipeline. A set of packets received by the network forwarding IC are processed by a first pipeline as an ingress pipeline and a second pipeline as an egress pipeline, then subsequently processed by the second pipeline as an ingress pipeline and a third pipeline as an egress pipeline.

## Claims

### Claim 1

A network forwarding integrated circuit (IC) for processing network packets, the network forwarding IC comprising:
a plurality of packet processing pipelines for receiving and processing packets, wherein each pipeline is configured to operate as an ingress pipeline and an egress pipeline, wherein each packet processing pipeline comprises:
a parser configured to parse packets into packet header fields;
a match-action unit configured to receive sets of the packet header fields from the parser and process the packet header fields through a series of match-action stages; and
a deparser configured to receive modified sets of packet header fields from the match-action unit and reconstruct the packets after the match-action unit processing; and
a traffic management circuit configured to receive packets processed by ingress pipelines and to enqueue the packets for output to egress pipelines based on the ingress pipeline processing,
wherein a set of packets received by the network forwarding IC are processed by a first pipeline as an ingress pipeline and a second pipeline as an egress pipeline, then subsequently processed by the second pipeline as an ingress pipeline and a third pipeline as an egress pipeline.

### Claim 2 (depends on 1)

The network forwarding IC of claim 1, wherein the first pipeline and the third pipeline are the same pipeline.

### Claim 3 (depends on 1)

The network forwarding IC of claim 1, wherein the set of packets is a first set of packets, wherein a second set of packets are processed by the first pipeline as an ingress pipeline and the second pipeline as an egress pipeline and are subsequently transmitted to a network via a port associated with the second pipeline.

### Claim 4 (depends on 1)

The network forwarding IC of claim 1, wherein the set of packets are sent to the second processing pipeline as an ingress pipeline via a loopback mechanism.

### Claim 5 (depends on 1)

The network forwarding IC of claim 1, wherein layer 2 and layer 3 processing is performed by the match-action unit of the first ingress pipeline and thus not required to be performed by the match-action unit of the second ingress pipeline.

### Claim 6 (depends on 1)

The network forwarding IC of claim 1, wherein the set of packets comprises stock market data packets, wherein for a particular packet, the first pipeline as an ingress pipeline identifies the packet as a stock market data packet and passes the identification to the traffic management circuit.

### Claim 7 (depends on 6)

The network forwarding IC of claim 6, wherein the traffic management circuit replicates the packet to each of a plurality of ports associated with the second pipeline as an egress pipeline.

### Claim 8 (depends on 7)

The network forwarding IC of claim 7, wherein the second pipeline as an egress pipeline operates in bypass mode, such that each replicated copy of the packet is looped back into the second pipeline as an ingress pipeline without processing by the second pipeline as an egress pipeline.

### Claim 9 (depends on 8)

The network forwarding IC of claim 8, wherein the second pipeline as an ingress pipeline comprises a parser for each port, wherein each parser is configured to identify a different payload section of the packet and provide the identified payload section to a corresponding match-action unit of the second pipeline as an ingress pipeline.

### Claim 10 (depends on 9)

The network forwarding IC of claim 9, wherein each match-action unit of the second pipeline as an ingress pipeline receives a particular payload section, identifies a different set of destinations for the replicated copy of the packet based on the particular payload section of the packet, and provides the identified set of destinations to the traffic management circuit with the replicated copy of the packet.

### Claim 11 (depends on 10)

The network forwarding IC of claim 10, wherein the third pipeline as an egress pipeline receives each replicated copy of the packet and the set of destinations for the replicated copy and constructs a new packet having (i) a set of headers of the received market data packet and (ii) the particular payload section from which the set of destinations was identified.

### Claim 12 (depends on 11)

The network forwarding IC of claim 11, wherein each new packet has only the particular payload section and not any of the other payload sections.

### Claim 13 (depends on 1)

The method of claim 1, wherein the packet is a stock market data packet, wherein processing the packet using the first pipeline as an ingress pipeline comprises identifying the packet as a stock market data packet and passing the identification with the packet to the traffic management circuit.

### Claim 14 (depends on 13)

The method of claim 13 further comprising replicating the packet to each of a plurality of ports associated with the second pipeline as an egress pipeline.

### Claim 15

For a network forwarding IC comprising (i) a plurality of packet processing pipelines for receiving and processing packets that are each configured to operate as an ingress pipeline and as an egress pipeline and (ii) a traffic management circuit configured to receive packets processed by ingress pipelines and to enqueue the packets for output to a egress pipelines based on the ingress pipeline processing, a method comprising:
receiving a packet;
processing the packet using a first pipeline as an ingress pipeline and a second pipeline as an egress pipeline, wherein each packet processing pipeline comprises (i) a parser configured to parse packets into packet header fields, (ii) a match-action unit configured to receive sets of the packet header fields from the parser and process the packet header fields through a series of match-action stages, and (iii) a deparser configured to receive modified sets of packet header fields from the match-action unit and reconstruct the packets after the match-action unit processing; and
subsequently processing the packet using the second pipeline as an ingress pipeline and a third pipeline as an egress pipeline.

### Claim 16 (depends on 15)

The method of claim 15, wherein the first pipeline and the third pipeline are the same pipeline.

### Claim 17 (depends on 15)

The method of claim 15 further comprising sending the packet to the second processing pipeline as an ingress pipeline via a loopback mechanism.

### Claim 18 (depends on 15)

The method of claim 15, wherein layer 2 and layer 3 processing is performed by the match-action unit of the first ingress pipeline and thus not required to be performed by the match-action unit of the second ingress pipeline.

### Claim 19 (depends on 15)

The method of claim 15, wherein the packet is a first packet, the method further comprising:
receiving a second packet;
processing the second packet using the first pipeline as an ingress pipeline and the second pipeline as an egress pipeline; and
transmitting the second packet to a network via a port associated with the second pipeline.
