# US 10,873,532 B2 · Flow control visibility

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

- Number: US 10,873,532 B2
- Document ID: US10873532B2
- Status: Granted
- Kind: B2
- Application number: 16/108,661
- Filed: 2018-08-22
- Published: 2020-02-06
- Granted: 2020-12-22
- Earliest claimed: 2018-07-31
- Assignees: Barefoot Networks, Inc.
- Applicants: Barefoot Networks, Inc.
- Inventors: Remy Chang; Anurag Agrawal; Yi Li; Michael Feng; Yan Wang
- Web page: https://patentgrep.com/patent/US10873532B2

## CPC

- H04L 47/2441: relying on flow classification, e.g. using integrated services [IntServ]
- H04L 45/74: Address processing for routing
- H04L 47/2433: {Allocation of priorities to traffic types}
- H04L 47/2483: involving identification of individual flows
- H04L 47/28: in relation to timing considerations
- H04L 49/3018: {Input queuing}
- H04L 49/3027: {Output queuing}
- H04L 49/3063: {Pipelined operation}
- H04L 49/30: {Peripheral units, e.g. input or output ports}
- H04L 49/90: Buffering arrangements
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Some embodiments provide a method for a traffic management circuit of a data plane forwarding circuit. The traffic management circuit receives data messages from a set of ingress pipelines and provides the data messages to a set of egress pipelines. The method identifies a flow control event. The method provides metadata regarding the flow control event to a message generation circuit of the data plane forwarding circuit via a bus between the traffic management circuit and the message generation circuit.

## Claims

### Claim 1

A method comprising:
at a traffic management circuit of a network forwarding integrated circuit (IC), identifying a flow control event, wherein the traffic management circuit receives data messages from a set of ingress pipelines and provides the data messages to a set of egress pipelines;
providing metadata regarding the flow control event to a message generation circuit of the network forwarding IC via a connection between the traffic management circuit and the message generation circuit, wherein the metadata comprises (i) indication whether the flow control event corresponds to receipt of a flow control message at the network forwarding IC or generation of a flow control message at the network forwarding IC and (ii) a port identifier that specifies the port at which a flow control message was received or through which a flow control message was sent;
the message generation circuit generating a data message, the data message including (i) a data message header and (ii) metadata for at least one flow control event; and
transmitting the generated data message to a remote server for analysis.

### Claim 2 (depends on 1)

The method of claim 1, wherein the message generation circuit stores the metadata in a buffer with metadata for a plurality of flow control events.

### Claim 3 (depends on 2)

The method of claim 2, wherein the message generation circuit provides the generated data message to one of the ingress pipelines.

### Claim 4 (depends on 3)

The method of claim 3, comprising: including an address of the remote server in the generated data message.

### Claim 5 (depends on 1)

The method of claim 1, wherein the flow control event comprises receipt of a flow control message from a separate forwarding element instructing the network forwarding IC to either stop or resume sending data messages having a particular set of characteristics to the separate forwarding element.

### Claim 6 (depends on 5)

The method of claim 5, wherein the flow control message is received at a particular port of the network forwarding IC and the particular set of characteristics comprises a priority value.

### Claim 7 (depends on 1)

The method of claim 1, wherein the flow control event comprises generation of a flow control message by the traffic management circuit to instruct a separate forwarding element to either stop or resume sending data messages having a particular set of characteristics to the network forwarding IC.

### Claim 8 (depends on 7)

The method of claim 7, wherein the particular set of characteristics comprises a priority value.

### Claim 9 (depends on 1)

The method of claim 1, wherein the traffic management circuit transmits metadata for one flow control event per clock cycle of the network forwarding IC.

### Claim 10 (depends on 1)

The method of claim 1, wherein the traffic management circuit comprises a queue for storing metadata regarding flow control events prior to transmitting the metadata to a packet generation circuit.

### Claim 11

A data plane circuit of a network forwarding element for forwarding data messages within a network, the data plane circuit comprising:
a set of ingress pipelines;
a set of egress pipelines;
a message generation circuit; and
a traffic management circuit to receive data messages from the set of ingress pipelines and to provide the data messages to the set of egress pipelines, wherein the traffic management circuit (i) is to identify a flow control event and (ii) is to provide metadata regarding the flow control event to the message generation circuit via a connection, wherein the metadata comprises: (a) indication whether the flow control event corresponds to receipt of a flow control message at the network forwarding element or generation of a flow control message at the network forwarding element and (b) a port identifier that specifies the port at which a flow control message was received or through which a flow control message was sent;
the message generation circuit to generate a data message for transmission to a remote monitoring system, the data message including (i) a data message header and (n) metadata for at east one flow control event; and
an egress pipeline of the set of egress pipelines to cause transmission of the data message to the remote monitoring system.

### Claim 12 (depends on 11)

The data plane circuit of claim 11, wherein the message generation circuit is to store the metadata in a buffer with metadata for a plurality of flow control events.

### Claim 13 (depends on 12)

The data plane circuit of claim 12, wherein the message generation circuit is to provide the generated data message to one of the set of ingress pipelines.

### Claim 14 (depends on 13)

The data plane circuit of claim 13, wherein the message generation circuit is to include an address of the remote monitoring system in the generated data message.

### Claim 15 (depends on 11)

The data plane circuit of claim 11, wherein the flow control event comprises receipt of a flow control message from a separate forwarding element instructing the data plane circuit to either stop or resume sending data messages having a particular set of characteristics to the separate forwarding element.

### Claim 16 (depends on 15)

The data plane circuit of claim 15, wherein the flow control message is received at a particular port and the particular set of characteristics comprises a priority value.

### Claim 17 (depends on 11)

The data plane circuit of claim 11, wherein the flow control event comprises generation of a flow control message by the traffic management circuit to instruct a separate forwarding element to either stop or resume sending data messages having a particular set of characteristics to the data plane circuit.

### Claim 18 (depends on 11)

The data plane circuit of claim 11, wherein the traffic management circuit is to transmit metadata for one flow control event per clock cycle.

### Claim 19 (depends on 11)

The data plane circuit of claim 11, wherein the traffic management circuit comprises a queue to store metadata regarding flow control events prior to transmission of the metadata to a packet generation circuit.
