Barefoot Networks, Inc.

United States of America

Back to Profile

1-100 of 151 for Barefoot Networks, Inc. Sort by
Query
Aggregations
IP Type
        Patent 136
        Trademark 15
Jurisdiction
        United States 139
        World 7
        Europe 3
        Canada 2
Date
2025 March 2
2025 (YTD) 3
2024 5
2023 8
2022 13
See more
IPC Class
H04L 12/741 - Header address processing for routing, e.g. table lookup 39
H04L 12/935 - Switch interfaces, e.g. port details 37
H04L 29/06 - Communication control; Communication processing characterised by a protocol 32
H04L 45/745 - Address table lookupAddress filtering 28
H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing 25
See more
NICE Class
09 - Scientific and electric apparatus and instruments 9
41 - Education, entertainment, sporting and cultural services 4
42 - Scientific, technological and industrial services, research and design 4
Status
Pending 9
Registered / In Force 142
  1     2        Next Page

1.

ALGORITHMIC TCAM BASED TERNARY LOOKUP

      
Application Number 18966033
Status Pending
Filing Date 2024-12-02
First Publication Date 2025-03-20
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bosshart, Patrick
  • Ferrara, Michael G.
  • Peterson, Jay E.S.

Abstract

An algorithmic TCAM based ternary lookup method is provided. The method stores entries for ternary lookup into several sub-tables. All entries in each sub-table have a sub-table key that includes the same common portion of the entry. No two sub-tables are associated with the same sub-table key. The method stores the keys in a sub-table keys table in TCAM. Each key has a different priority. The method stores the entries for each sub-table in random access memory. Each entry in a sub-table has a different priority. The method receives a search request to perform a ternary lookup for an input data item. A ternary lookup into the ternary sub-table key table stored in TCAM is performed to retrieve a sub-table index. The method performs a ternary lookup across the entries of the sub-table associated with the retrieved index to identify the highest priority matched entry for the input data item.

IPC Classes  ?

  • G06F 16/903 - Querying
  • G06F 16/901 - IndexingData structures thereforStorage structures
  • G11C 7/10 - Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
  • G11C 11/406 - Management or control of the refreshing or charge-regeneration cycles
  • G11C 15/04 - Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
  • H04L 45/74 - Address processing for routing
  • H04L 45/745 - Address table lookupAddress filtering

2.

CONFIGURING A SWITCH FOR EXTRACTING PACKET HEADER FIELDS

      
Application Number 18967234
Status Pending
Filing Date 2024-12-03
First Publication Date 2025-03-20
Owner Barefoot Networks, Inc. (USA)
Inventor Bosshart, Patrick

Abstract

A method for generating configuration data for configuring a hardware switch is described. The method receives a description of functionality for the hardware switch. Based on the description, the method generates sets of match and action entries to configure the hardware switch to process packets. The method then determines, for each packet header field in a parse graph that specifies instructions for a parser of the switch to extract packet header fields from packets, whether the packet header field is used or modified by at least one match or action entry. The method generates for the parser of the hardware switch configuration data that instructs the parser to extract (i) packet header fields used or modified by at least one match or action entry to a first set of registers and (ii) packet header fields not used by any match or action entries to a second set of registers.

IPC Classes  ?

3.

PACKET HEADER FIELD EXTRACTION

      
Application Number 18734862
Status Pending
Filing Date 2024-06-05
First Publication Date 2025-02-06
Owner Barefoot Networks, Inc. (USA)
Inventor Bosshart, Patrick

Abstract

Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.

IPC Classes  ?

  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/42 - Centralised routing
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 45/74 - Address processing for routing
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 49/1546 - Non-blocking multistage, e.g. Clos using pipelined operation
  • H04L 69/22 - Parsing or analysis of headers

4.

DYNAMICALLY RECONFIGURING DATA PLANE OF FORWARDING ELEMENT TO ACCOUNT FOR POWER CONSUMPTION

      
Application Number 18752509
Status Pending
Filing Date 2024-06-24
First Publication Date 2024-12-19
Owner Barefoot Networks, Inc. (USA)
Inventor Chang, Remy

Abstract

Some embodiments of the invention provide a network forwarding element that can be dynamically reconfigured to adjust its data message processing to stay within a desired operating temperature or power consumption range. In some embodiments, the network forwarding element includes (1) a data-plane forwarding circuit (“data plane”) to process data tuples associated with data messages received by the IC, and (2) a control-plane circuit (“control plane”) for configuring the data plane forwarding circuit. The data plane includes several data processing stages to process the data tuples.

IPC Classes  ?

  • H04L 41/0833 - Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network energy consumption
  • G06F 1/04 - Generating or distributing clock signals or signals derived directly therefrom
  • G06F 1/20 - Cooling means
  • G06F 1/32 - Means for saving power
  • G06F 1/3234 - Power saving characterised by the action undertaken
  • G06F 3/06 - Digital input from, or digital output to, record carriers
  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 47/30 - Flow controlCongestion control in combination with information about buffer occupancy at either end or at transit nodes
  • H04L 49/00 - Packet switching elements
  • H04L 49/25 - Routing or path finding in a switch fabric
  • H04L 49/40 - Constructional details, e.g. power supply, mechanical construction or backplane
  • H04L 49/50 - Overload detection or protection within a single switching element
  • H04L 49/505 - Corrective measures
  • H04L 69/22 - Parsing or analysis of headers

5.

USING STATEFUL TRAFFIC MANAGEMENT DATA TO PERFORM PACKET PROCESSING

      
Application Number 18788960
Status Pending
Filing Date 2024-07-30
First Publication Date 2024-11-21
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Yi
  • Feng, Michael
  • Agrawal, Anurag
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Chang, Remy

Abstract

Some embodiments provide a method for an ingress packet processing pipeline of a network forwarding integrated circuit (IC). The ingress packet processing pipeline is for receiving packets from a port of the network forwarding IC and processing the packets to assign different packets to different queues of a traffic management unit of the network forwarding IC. The method receives state data from the traffic management unit. The method stores the state data in a stateful table. The method assigns a particular packet to a particular queue based on the state data received from the traffic management unit and stored in the stateful table.

IPC Classes  ?

  • H04L 47/625 - Queue scheduling characterised by scheduling criteria for service slots or service orders
  • H04L 12/18 - Arrangements for providing special services to substations for broadcast or conference
  • H04L 41/142 - Network analysis or design using statistical or mathematical methods
  • H04L 43/0882 - Utilisation of link capacity
  • H04L 43/16 - Threshold monitoring
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/24 - Multipath
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 47/32 - Flow controlCongestion control by discarding or delaying data units, e.g. packets or frames
  • H04L 47/62 - Queue scheduling characterised by scheduling criteria
  • H04L 47/628 - Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first
  • H04L 49/00 - Packet switching elements
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 49/109 - Integrated on microchip, e.g. switch-on-chip
  • H04L 49/90 - Buffering arrangements
  • H04L 69/22 - Parsing or analysis of headers

6.

Network forwarding element with key-value processing in the data plane

      
Application Number 18435517
Grant Number 12206599
Status In Force
Filing Date 2024-02-07
First Publication Date 2024-08-08
Grant Date 2025-01-21
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Xiaozhou
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Foster, John Nathan

Abstract

Some embodiments of the invention provide a forwarding element (e.g., a switch, a router, etc.) that has one or more data plane, message-processing pipelines with key-value processing circuits. The forwarding element's data plane key-value circuits allow the forwarding element to perform key-value services that would otherwise have to be performed by data compute nodes connected by the network fabric that includes the forwarding element. In some embodiments, the key-value (KV) services of the forwarding element and other similar forwarding elements supplement the key-value services of a distributed set of key-value servers by caching a subset of the most commonly used key-value pairs in the forwarding elements that connect the set of key-value servers with their client applications. In some embodiments, the key-value circuits of the forwarding element perform the key-value service operations at message-processing line rates at which the forwarding element forwards messages to the data compute nodes and/or to other network forwarding elements in the network fabric.

IPC Classes  ?

  • H04L 49/00 - Packet switching elements
  • G06F 3/06 - Digital input from, or digital output to, record carriers
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/74 - Address processing for routing
  • H04L 45/745 - Address table lookupAddress filtering

7.

Link aggregation group failover for multicast

      
Application Number 18229094
Grant Number 12244519
Status In Force
Filing Date 2023-08-01
First Publication Date 2024-02-29
Grant Date 2025-03-04
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

A method of multicasting packets by a forwarding element that includes several packet replicators and several egress pipelines. Each packet replicator receives a data structure associated with a multicast packet that identifies a multicast group. Each packet replicator identifies a first physical egress port of a first egress pipeline for sending the multicast packet to a member of the multicast group. The first physical egress port is a member of LAG. Each packet replicator determines that the first physical egress port is not operational and identifies a second physical port in the LAG for sending the multicast packet to the member of the multicast group. When a packet replicator is connected to the same egress pipeline as the second physical egress, the packet replicator provides the identification of the second physical egress port to the egress pipeline to send the packet to the multicast member. Otherwise the packet replicator drops the packet.

IPC Classes  ?

  • H04W 56/00 - Synchronisation arrangements
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/24 - Multipath
  • H04L 45/48 - Routing tree calculation
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 49/201 - Multicast operationBroadcast operation
  • H04L 49/55 - Prevention, detection or correction of errors
  • H04L 49/901 - Buffering arrangements using storage descriptor, e.g. read or write pointers

8.

IDENTIFYING AND MARKING FAILED EGRESS LINKS IN DATA PLANE

      
Application Number 18495590
Status Pending
Filing Date 2023-10-26
First Publication Date 2024-02-15
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kodeboyina, Chaitanya
  • Cruz, John
  • Licking, Steven
  • Attig, Michael E.

Abstract

A method of identifying a failed egress path of a hardware forwarding element. The method detects an egress link failure in a data plane of the forwarding element. The method generates a link failure signal in the data plane identifying the failed egress link. The method generates a packet that includes the identification of the egress link based on the link failure signal. The method sets the status of the egress link to failed in the data plane based on the identification of the egress link in the generated packet.

IPC Classes  ?

  • H04L 41/0654 - Management of faults, events, alarms or notifications using network fault recovery
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 41/0677 - Localisation of faults
  • H04L 49/00 - Packet switching elements
  • H04L 45/42 - Centralised routing
  • H04L 49/55 - Prevention, detection or correction of errors
  • H04L 45/28 - Routing or path finding of packets in data switching networks using route fault recovery
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer

9.

Using stateful traffic management data to perform packet processing

      
Application Number 18214665
Grant Number 12088504
Status In Force
Filing Date 2023-06-27
First Publication Date 2023-12-21
Grant Date 2024-09-10
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Yi
  • Feng, Michael
  • Agrawal, Anurag
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Chang, Remy

Abstract

Some embodiments provide a method for an ingress packet processing pipeline of a network forwarding integrated circuit (IC). The ingress packet processing pipeline is for receiving packets from a port of the network forwarding IC and processing the packets to assign different packets to different queues of a traffic management unit of the network forwarding IC. The method receives state data from the traffic management unit. The method stores the state data in a stateful table. The method assigns a particular packet to a particular queue based on the state data received from the traffic management unit and stored in the stateful table.

IPC Classes  ?

  • H04L 47/625 - Queue scheduling characterised by scheduling criteria for service slots or service orders
  • H04L 12/18 - Arrangements for providing special services to substations for broadcast or conference
  • H04L 41/142 - Network analysis or design using statistical or mathematical methods
  • H04L 43/0882 - Utilisation of link capacity
  • H04L 43/16 - Threshold monitoring
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/24 - Multipath
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 47/32 - Flow controlCongestion control by discarding or delaying data units, e.g. packets or frames
  • H04L 47/62 - Queue scheduling characterised by scheduling criteria
  • H04L 47/628 - Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first
  • H04L 49/00 - Packet switching elements
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 49/109 - Integrated on microchip, e.g. switch-on-chip
  • H04L 49/90 - Buffering arrangements
  • H04L 69/22 - Parsing or analysis of headers

10.

Dynamically reconfiguring data plane of forwarding element to account for power consumption

      
Application Number 18195678
Grant Number 12052138
Status In Force
Filing Date 2023-05-10
First Publication Date 2023-11-30
Grant Date 2024-07-30
Owner Barefoot Networks, Inc. (USA)
Inventor Chang, Remy

Abstract

Some embodiments of the invention provide a network forwarding element that can be dynamically reconfigured to adjust its data message processing to stay within a desired operating temperature or power consumption range. In some embodiments, the network forwarding element includes (1) a data-plane forwarding circuit (“data plane”) to process data tuples associated with data messages received by the IC, and (2) a control-plane circuit (“control plane”) for configuring the data plane forwarding circuit. The data plane includes several data processing stages to process the data tuples. The data plane also includes an idle-signal injecting circuit that receives from the control plane configuration data that the control plane generates based on the IC's temperature. Based on the received configuration data, the idle-signal injecting circuit generates idle control signals for the data processing stages. Each stage that receives an idle control signal enters an idle state during which the majority of the components of that stage do not perform any operations, which reduces the power consumed and temperature generated by that stage during its idle state.

IPC Classes  ?

  • H04L 41/08 - Configuration management of networks or network elements
  • G06F 1/04 - Generating or distributing clock signals or signals derived directly therefrom
  • G06F 1/20 - Cooling means
  • G06F 1/32 - Means for saving power
  • G06F 1/3234 - Power saving characterised by the action undertaken
  • G06F 3/06 - Digital input from, or digital output to, record carriers
  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus
  • H04L 41/0833 - Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network energy consumption
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 49/00 - Packet switching elements
  • H04L 49/25 - Routing or path finding in a switch fabric
  • H04L 49/40 - Constructional details, e.g. power supply, mechanical construction or backplane
  • H04L 49/50 - Overload detection or protection within a single switching element
  • H04L 49/505 - Corrective measures
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 47/30 - Flow controlCongestion control in combination with information about buffer occupancy at either end or at transit nodes
  • H04L 69/22 - Parsing or analysis of headers

11.

CONFIGURING A SWITCH FOR EXTRACTING PACKET HEADER FIELDS

      
Application Number 18212546
Status Pending
Filing Date 2023-06-21
First Publication Date 2023-10-26
Owner Barefoot Networks, Inc. (USA)
Inventor Bosshart, Patrick

Abstract

A method for generating configuration data for configuring a hardware switch is described. The method receives a description of functionality for the hardware switch. Based on the description, the method generates sets of match and action entries to configure the hardware switch to process packets. The method then determines, for each packet header field in a parse graph that specifies instructions for a parser of the switch to extract packet header fields from packets, whether the packet header field is used or modified by at least one match or action entry. The method generates for the parser of the hardware switch configuration data that instructs the parser to extract (i) packet header fields used or modified by at least one match or action entry to a first set of registers and (ii) packet header fields not used by any match or action entries to a second set of registers.

IPC Classes  ?

12.

Forwarding element with a data plane DDoS attack detector

      
Application Number 15897361
Grant Number 11750622
Status In Force
Filing Date 2018-02-15
First Publication Date 2023-09-05
Grant Date 2023-09-05
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kim, Changhoon
  • Lee, Jeongkeun
  • Javadi, Masoud Moshref

Abstract

Some embodiments of the invention provide a forwarding element that has a data-plane circuit (data plane) that can be configured to implement a DDoS (distributed denial of service) attack detector. The data plane has several stages of configurable data processing circuits, which are typically configured to process data tuples associated with data messages received by the forwarding element in order to forward the data messages within a network. In some embodiments, the configurable data processing circuits of the data plane can also be configured to implement a DDoS attack detector (DDoS detector) in the data plane. In some embodiments, the forwarding element has a control-plane circuit (control plane) that configures the configurable data processing circuits of the data plane, while in other embodiments, a remote controller configures these data processing circuits.

IPC Classes  ?

  • H04L 9/40 - Network security protocols
  • G06F 17/18 - Complex mathematical operations for evaluating statistical data
  • H04L 43/0876 - Network utilisation, e.g. volume of load or congestion level
  • H04L 41/0816 - Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events

13.

Link aggregation group failover for multicast

      
Application Number 17346035
Grant Number 11716291
Status In Force
Filing Date 2021-06-11
First Publication Date 2023-08-01
Grant Date 2023-08-01
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

A method of multicasting packets by a forwarding element that includes several packet replicators and several egress pipelines. Each packet replicator receives a data structure associated with a multicast packet that identifies a multicast group. Each packet replicator identifies a first physical egress port of a first egress pipeline for sending the multicast packet to a member of the multicast group. The first physical egress port is a member of LAG. Each packet replicator determines that the first physical egress port is not operational and identifies a second physical port in the LAG for sending the multicast packet to the member of the multicast group. When a packet replicator is connected to the same egress pipeline as the second physical egress, the packet replicator provides the identification of the second physical egress port to the egress pipeline to send the packet to the multicast member. Otherwise the packet replicator drops the packet.

IPC Classes  ?

  • H04W 56/00 - Synchronisation arrangements
  • H04L 49/201 - Multicast operationBroadcast operation
  • H04L 49/55 - Prevention, detection or correction of errors
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 45/48 - Routing tree calculation
  • H04L 49/901 - Buffering arrangements using storage descriptor, e.g. read or write pointers
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/24 - Multipath

14.

Algorithmic TCAM based ternary lookup

      
Application Number 18088182
Grant Number 12197509
Status In Force
Filing Date 2022-12-23
First Publication Date 2023-04-27
Grant Date 2025-01-14
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bosshart, Patrick
  • Ferrara, Michael G.
  • Peterson, Jay E. S.

Abstract

An algorithmic TCAM based ternary lookup method is provided. The method stores entries for ternary lookup into several sub-tables. All entries in each sub-table have a sub-table key that includes the same common portion of the entry. No two sub-tables are associated with the same sub-table key. The method stores the keys in a sub-table keys table in TCAM. Each key has a different priority. The method stores the entries for each sub-table in random access memory. Each entry in a sub-table has a different priority. The method receives a search request to perform a ternary lookup for an input data item. A ternary lookup into the ternary sub-table key table stored in TCAM is performed to retrieve a sub-table index. The method performs a ternary lookup across the entries of the sub-table associated with the retrieved index to identify the highest priority matched entry for the input data item.

IPC Classes  ?

  • G06F 16/903 - Querying
  • G06F 16/901 - IndexingData structures thereforStorage structures
  • G11C 7/10 - Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
  • G11C 11/406 - Management or control of the refreshing or charge-regeneration cycles
  • H04L 45/74 - Address processing for routing
  • H04L 45/745 - Address table lookupAddress filtering
  • G11C 15/04 - Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

15.

Messaging between remote controller and forwarding element

      
Application Number 18077543
Grant Number 12255835
Status In Force
Filing Date 2022-12-08
First Publication Date 2023-04-06
Grant Date 2025-03-18
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kim, Changhoon
  • Li, Xiaozhou
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

Some embodiments of the invention provide a forwarding element that can be configured through in-band data-plane messages from a remote controller that is a physically separate machine from the forwarding element. The forwarding element of some embodiments has data plane circuits that include several configurable message-processing stages, several storage queues, and a data-plane configurator. A set of one or more message-processing stages of the data plane are configured (1) to process configuration messages received by the data plane from the remote controller and (2) to store the configuration messages in a set of one or more storage queues. The data-plane configurator receives the configuration messages stored in the set of storage queues and configures one or more of the configurable message-processing stages based on configuration data in the configuration messages.

IPC Classes  ?

  • H04L 49/90 - Buffering arrangements
  • H03M 13/09 - Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
  • H04L 9/10 - Arrangements for secret or secure communicationsNetwork security protocols with particular housing, physical features or manual controls
  • H04L 41/06 - Management of faults, events, alarms or notifications
  • H04L 41/08 - Configuration management of networks or network elements
  • H04L 41/0803 - Configuration setting
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 49/00 - Packet switching elements
  • H04L 49/10 - Packet switching elements characterised by the switching fabric construction
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 49/20 - Support for services
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 9/40 - Network security protocols

16.

Network forwarding element with key-value processing in the data plane

      
Application Number 17877512
Grant Number 11929944
Status In Force
Filing Date 2022-07-29
First Publication Date 2023-01-26
Grant Date 2024-03-12
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Xiaozhou
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Foster, John Nathan

Abstract

Some embodiments of the invention provide a forwarding element (e.g., a switch, a router, etc.) that has one or more data plane, message-processing pipelines with key-value processing circuits. The forwarding element's data plane key-value circuits allow the forwarding element to perform key-value services that would otherwise have to be performed by data compute nodes connected by the network fabric that includes the forwarding element. In some embodiments, the key-value (KV) services of the forwarding element and other similar forwarding elements supplement the key-value services of a distributed set of key-value servers by caching a subset of the most commonly used key-value pairs in the forwarding elements that connect the set of key-value servers with their client applications. In some embodiments, the key-value circuits of the forwarding element perform the key-value service operations at message-processing line rates at which the forwarding element forwards messages to the data compute nodes and/or to other network forwarding elements in the network fabric.

IPC Classes  ?

  • H04L 49/00 - Packet switching elements
  • G06F 3/06 - Digital input from, or digital output to, record carriers
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/74 - Address processing for routing
  • H04L 45/745 - Address table lookupAddress filtering

17.

Stateful processing unit with min/max capability

      
Application Number 15835247
Grant Number 11503141
Status In Force
Filing Date 2017-12-07
First Publication Date 2022-11-15
Grant Date 2022-11-15
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Peterson, Jay Evan Scott
  • Ferrara, Michael Gregory
  • Bosshart, Patrick
  • Kim, Changhoon
  • Chang, Remy

Abstract

Some embodiments provide a network forwarding integrated circuit (IC) that includes at least one packet processing pipeline. The packet processing pipeline includes multiple match-action stages, at least one of which includes a stateful processing unit that operates at a line rate of the network forwarding IC. The stateful processing unit is configured to receive data stored in a memory location associated with a stateful table of the match-action stage. The data includes a set of values. The stateful processing unit is further configured to identify one of a maximum value and a minimum value from the set of values, and to output the identified value for use by a next match-action stage.

IPC Classes  ?

  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 49/90 - Buffering arrangements
  • H04L 47/62 - Queue scheduling characterised by scheduling criteria
  • H04L 45/745 - Address table lookupAddress filtering

18.

Messaging between remote controller and forwarding element

      
Application Number 17867508
Grant Number 11606318
Status In Force
Filing Date 2022-07-18
First Publication Date 2022-11-03
Grant Date 2023-03-14
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kim, Changhoon
  • Li, Xiaozhou
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

Some embodiments of the invention provide a forwarding element that can be configured through in-band data-plane messages from a remote controller that is a physically separate machine from the forwarding element. The forwarding element of some embodiments has data plane circuits that include several configurable message-processing stages, several storage queues, and a data-plane configurator. A set of one or more message-processing stages of the data plane are configured (1) to process configuration messages received by the data plane from the remote controller and (2) to store the configuration messages in a set of one or more storage queues. The data-plane configurator receives the configuration messages stored in the set of storage queues and configures one or more of the configurable message-processing stages based on configuration data in the configuration messages.

IPC Classes  ?

  • H04L 49/90 - Buffering arrangements
  • H03M 13/09 - Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 41/08 - Configuration management of networks or network elements
  • H04L 41/0803 - Configuration setting
  • H04L 49/00 - Packet switching elements
  • H04L 49/10 - Packet switching elements characterised by the switching fabric construction
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 41/06 - Management of faults, events, alarms or notifications
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 49/20 - Support for services
  • H04L 9/40 - Network security protocols

19.

GENERATION OF DESCRIPTIVE DATA FOR PACKET FIELDS

      
Application Number 17860879
Status Pending
Filing Date 2022-07-08
First Publication Date 2022-10-27
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Watson, Gregory C.
  • Dhruvanarayan, Srivathsa
  • Gibb, Glen Raymond
  • Calamvokis, Constantine
  • Edwards, Aled Justin

Abstract

Some embodiments provide a method for a parser of a processing pipeline. The method receives a packet for processing by a set of match-action stages of the processing pipeline. The method stores packet header field (PHF) values from a first set of PHFs of the packet in a set of data containers. The first set of PHFs are for use by the match-action stages. For a second set of PHFs not used by the match-action stages, the method generates descriptive data that identifies locations of the PHFs of the second set within the packet. The method sends (i) the set of data containers to the match-action stages and (ii) the packet data and the generated descriptive data outside of the match-action stages to a deparser that uses the packet data, generated descriptive data, and the set of data containers as modified by the match-action stages to reconstruct a modified packet.

IPC Classes  ?

  • H04L 49/9057 - Arrangements for supporting packet reassembly or resequencing
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 69/18 - Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
  • H04L 69/16 - Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
  • H04L 49/90 - Buffering arrangements
  • H04L 49/901 - Buffering arrangements using storage descriptor, e.g. read or write pointers
  • H04L 49/00 - Packet switching elements
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 47/2441 - Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
  • H04L 67/63 - Routing a service request depending on the request content or context

20.

Packet header field extraction

      
Application Number 17859722
Grant Number 12040976
Status In Force
Filing Date 2022-07-07
First Publication Date 2022-10-27
Grant Date 2024-07-16
Owner BAREFOOT NETWORKS, INC (USA)
Inventor Bosshart, Patrick

Abstract

Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.

IPC Classes  ?

  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 49/1546 - Non-blocking multistage, e.g. Clos using pipelined operation
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 45/42 - Centralised routing
  • H04L 45/74 - Address processing for routing

21.

IDENTIFYING AND MARKING FAILED EGRESS LINKS IN DATA PLANE

      
Application Number 17723243
Status Pending
Filing Date 2022-04-18
First Publication Date 2022-10-06
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kodeboyina, Chaitanya
  • Cruz, John
  • Licking, Steven
  • Attig, Michael E.

Abstract

A method of identifying a failed egress path of a hardware forwarding element. The method detects an egress link failure in a data plane of the forwarding element. The method generates a link failure signal in the data plane identifying the failed egress link. The method generates a packet that includes the identification of the egress link based on the link failure signal. The method sets the status of the egress link to failed in the data plane based on the identification of the egress link in the generated packet.

IPC Classes  ?

  • H04L 41/0654 - Management of faults, events, alarms or notifications using network fault recovery
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 41/0677 - Localisation of faults
  • H04L 49/00 - Packet switching elements
  • H04L 45/42 - Centralised routing
  • H04L 49/55 - Prevention, detection or correction of errors
  • H04L 45/28 - Routing or path finding of packets in data switching networks using route fault recovery
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer

22.

Augmenting data plane functionality with field programmable integrated circuits

      
Application Number 16540741
Grant Number 11456970
Status In Force
Filing Date 2019-08-14
First Publication Date 2022-09-27
Grant Date 2022-09-27
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bas, Antonin Mathieu
  • Agrawal, Anurag
  • Kim, Changhoon

Abstract

Some embodiments provide novel circuits for augmenting the functionality of a data plane circuit of a forwarding element with one or more field programmable circuits and external memory circuits. The external memories in some embodiments serve as deep buffers that receive through one or more FPGAs a set of data messages from the data plane (DP) circuit to store temporarily. In some of these embodiments, one or more of the FPGAs implement schedulers that specify when data messages should be retrieved from the external memories and provided back to the data plane circuit for forwarding through the network. For instance, in some embodiments, a particular FPGA can perform a scheduling operation for a first set of data messages stored in its associated external memory, and can direct another FPGA to perform the scheduling operation for a second set of data messages stored in the particular FPGA's associated external memory. Specifically, in these embodiments, the particular FPGA determines when the first subset of data messages stored in its associated external memory should be forwarded back to the data plane circuit to forward to data messages in the network, while directing another FPGA to determine when a second subset of data messages stored in the particular FPGA's external memory should be forwarded back to the data plane circuit.

IPC Classes  ?

  • H04L 49/90 - Buffering arrangements
  • H04L 47/50 - Queue scheduling
  • H04L 49/40 - Constructional details, e.g. power supply, mechanical construction or backplane
  • H04L 49/104 - Asynchronous transfer mode [ATM] switching fabrics
  • H04L 43/50 - Testing arrangements

23.

Recording in an external memory data messages processed by a data plane circuit

      
Application Number 16540773
Grant Number 11349781
Status In Force
Filing Date 2019-08-14
First Publication Date 2022-05-31
Grant Date 2022-05-31
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bas, Antonin Mathieu
  • Agrawal, Anurag
  • Kim, Changhoon

Abstract

Some embodiments provide novel circuits for recording data messages received by a data plane circuit of a forwarding element in an external memory outside of the data plane circuit. The external memory in some embodiments is outside of the forwarding element. In some embodiments, the data plane circuit encapsulates the received data messages that should be recorded with encapsulation headers, inserts into these headers addresses that identify locations for storing these data messages in a memory external to the data plane circuit, and forwards these encapsulated data messages so that these messages can be stored in the external memory by another circuit. Instead of encapsulating received data messages for storage, the data plane circuit in some embodiments encapsulates copies of the received data messages for storage. Accordingly, in these embodiments, the data plane circuit makes copies of the data messages that it needs to record.

IPC Classes  ?

  • H04L 12/28 - Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
  • H04L 49/00 - Packet switching elements
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 49/9057 - Arrangements for supporting packet reassembly or resequencing
  • H04L 45/00 - Routing or path finding of packets in data switching networks

24.

Data plane with connection validation circuits

      
Application Number 17463346
Grant Number 11838318
Status In Force
Filing Date 2021-08-31
First Publication Date 2022-03-24
Grant Date 2023-12-05
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Krishnan, Shruthi
  • Lee, Junggun
  • Kim, Changhoon

Abstract

Some embodiments of the invention provide a data-plane forwarding circuit (data plane) that can be configured to provide protection from a SYN-flood denial of service attack by validating a source of a SYN data messages before allowing future messages to be forwarded to a protected server. To perform its forwarding operations, the data plane includes several data message processing stages that are configured to process the data tuples associated with the data messages received by the data plane. In some embodiments, parts of the data plane message-processing stages are also configured to operate as a connection-validation circuit that includes (1) a SYN-processing circuit to process SYN data messages received by the data plane, and (2) an ACK-processing circuit to process ACK data messages received by the data plane.

IPC Classes  ?

  • G06F 21/00 - Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
  • H04L 9/40 - Network security protocols
  • H04L 1/1607 - Details of the supervisory signal
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 12/54 - Store-and-forward switching systems

25.

Data plane program verification

      
Application Number 17537301
Grant Number 11720373
Status In Force
Filing Date 2021-11-29
First Publication Date 2022-03-17
Grant Date 2023-08-08
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Lee, Jeongkeun
  • Schlesinger, Cole Nathan
  • Foster, John Nathan
  • Wang, Han
  • Soule, Robert
  • Hallahan, William
  • Smolka, Steffen Julif
  • Liu, Mon Jed

Abstract

A method for verifying data plane programs is provided in some embodiments. Because the behavior of a data plane program (e.g., a program written in the P4 language) is determined in part by the control plane populating match-action tables with specific forwarding rules, in some embodiments, programmers are provided with a way to document assumptions about the control plane using annotations (e.g., in the form of “assertions” or “assumptions” about the state based on the unknown control plane contribution). In some embodiments, annotations are added automatically to verify common properties, including checking that every header read or written is valid, that every expression has a well-defined value, and that all standard metadata is manipulated correctly. The method in some embodiments translates programs from a first language (e.g., P4) to a second language (e.g., Guarded Command Language (GCL)) for verification by a satisfiability modulo theory (SMT) solver.

IPC Classes  ?

  • G06F 9/445 - Program loading or initiating
  • G06F 11/36 - Prevention of errors by analysis, debugging or testing of software
  • G06F 8/51 - Source to source
  • H04L 45/745 - Address table lookupAddress filtering

26.

Link aggregation group failover for multicast

      
Application Number 16548833
Grant Number 11271869
Status In Force
Filing Date 2019-08-22
First Publication Date 2022-03-08
Grant Date 2022-03-08
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

A method of multicasting packets by a forwarding element that includes several packet replicators and several egress pipelines. Each packet replicator receives a data structure associated with a multicast packet that identifies a multicast group. Each packet replicator identifies a first physical egress port of a first egress pipeline for sending the multicast packet to a member of the multicast group. The first physical egress port is a member of LAG. Each packet replicator determines that the first physical egress port is not operational and identifies a second physical port in the LAG for sending the multicast packet to the member of the multicast group. When a packet replicator is connected to the same egress pipeline as the second physical egress, the packet replicator provides the identification of the second physical egress port to the egress pipeline to send the packet to the multicast member. Otherwise the packet replicator drops the packet.

IPC Classes  ?

  • H04L 12/931 - Switch fabric architecture
  • H04L 49/201 - Multicast operationBroadcast operation
  • H04L 45/24 - Multipath
  • H04L 49/55 - Prevention, detection or correction of errors
  • H04L 49/901 - Buffering arrangements using storage descriptor, e.g. read or write pointers
  • H04L 45/48 - Routing tree calculation
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 45/00 - Routing or path finding of packets in data switching networks

27.

Data plane for learning flows, collecting metadata regarding learned flows and exporting metadata regarding learned flows

      
Application Number 15927859
Grant Number 11258703
Status In Force
Filing Date 2018-03-21
First Publication Date 2022-02-22
Grant Date 2022-02-22
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Licking, Steven
  • Lee, Jeongkeun
  • Bosshart, Patrick
  • Agrawal, Anurag
  • Ferrara, Michael Gregory
  • Peterson, Jay Evan Scott

Abstract

Some embodiments provide a data-plane forwarding circuit that can be configured to learn about a new message flow and to maintain metadata about the new message flow without first having a control plane first configure the data plane to maintain metadata about the flow. To perform its forwarding operations, the data plane includes several data message processing stages that are configured to process the data tuples associated with the data messages received by the data plane. In some embodiments, parts of the data plane message-processing stages are also configured to operate as a flow-tracking circuit that includes (1) a flow-identifying circuit to identify message flows received by the data plane, and (2) a first set of storages to store metadata about the identified flows.

IPC Classes  ?

  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 12/801 - Flow control or congestion control
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/751 - Topology update or discovery
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 47/11 - Identifying congestion
  • H04L 47/2483 - Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
  • H04L 41/22 - Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]

28.

Messaging between remote controller and forwarding element

      
Application Number 15784192
Grant Number 11245572
Status In Force
Filing Date 2017-10-16
First Publication Date 2022-02-08
Grant Date 2022-02-08
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kim, Changhoon
  • Li, Xiaozhou
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

Some embodiments of the invention provide a forwarding element that can be configured through in-band data-plane messages from a remote controller that is a physically separate machine from the forwarding element. The forwarding element of some embodiments has data plane circuits that include several configurable message-processing stages, several storage queues, and a data-plane configurator. A set of one or more message-processing stages of the data plane are configured (1) to process configuration messages received by the data plane from the remote controller and (2) to store the configuration messages in a set of one or more storage queues. The data-plane configurator receives the configuration messages stored in the set of storage queues and configures one or more of the configurable message-processing stages based on configuration data in the configuration messages.

IPC Classes  ?

  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/931 - Switch fabric architecture
  • H04L 12/933 - Switch core, e.g. crossbar, shared memory or shared medium

29.

Configuring a switch for extracting packet header fields

      
Application Number 16288074
Grant Number 11245778
Status In Force
Filing Date 2019-02-27
First Publication Date 2022-02-08
Grant Date 2022-02-08
Owner Barefoot Networks, Inc. (USA)
Inventor Bosshart, Patrick

Abstract

A method for generating configuration data for configuring a hardware switch is described. The method receives a description of functionality for the hardware switch. Based on the description, the method generates sets of match and action entries to configure the hardware switch to process packets. The method then determines, for each packet header field in a parse graph that specifies instructions for a parser of the switch to extract packet header fields from packets, whether the packet header field is used or modified by at least one match or action entry. The method generates for the parser of the hardware switch configuration data that instructs the parser to extract (i) packet header fields used or modified by at least one match or action entry to a first set of registers and (ii) packet header fields not used by any match or action entries to a second set of registers.

IPC Classes  ?

  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/741 - Header address processing for routing, e.g. table lookup

30.

Forwarding element data plane performing floating point computations

      
Application Number 17221538
Grant Number 11658923
Status In Force
Filing Date 2021-04-02
First Publication Date 2021-12-23
Grant Date 2023-05-23
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Javadi, Masoud Moshref
  • Kim, Changhoon
  • Bosshart, Patrick W.
  • Agrawal, Anurag

Abstract

Some embodiments provide a network forwarding element with a data-plane forwarding circuit that has a parameter collecting circuit to store and distribute parameter values computed by several machines in a network. In some embodiments, the machines perform distributed computing operations, and the parameter values that compute are parameter values associated with the distributed computing operations. The parameter collecting circuit of the data-plane forwarding circuit (data plane) in some embodiments (1) stores a set of parameter values computed and sent by a first set of machines, and (2) distributes the collected parameter values to a second set of machines once it has collected the set of parameter values from all the machines in the first set. The first and second sets of machines are the same set of machines in some embodiments, while they are different sets of machines (e.g., one set has at least one machine that is not in the other set) in other embodiments. In some embodiments, the parameter collecting circuit performs computations on the parameter values that it collects and distributes the result of the computations once it has processed all the parameter values distributed by the first set of machines. The computations are aggregating operations (e.g., adding, averaging, etc.) that combine corresponding subset of parameter values distributed by the first set of machines.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 49/00 - Packet switching elements
  • G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
  • G06N 3/08 - Learning methods

31.

Augmenting data plane functionality with field programmable integrated circuits

      
Application Number 16540766
Grant Number 11151073
Status In Force
Filing Date 2019-08-14
First Publication Date 2021-10-19
Grant Date 2021-10-19
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bas, Antonin Mathieu
  • Agrawal, Anurag
  • Kim, Changhoon

Abstract

Some embodiments use one or more FPGAs and external memories associated with the FPGAs to implement large, hash-addressable tables for a data plane circuit. These embodiments configure at least one message processing stage of the DP circuit to store (1) a first plurality of records for matching with a set of data messages received by the DP circuit, and (2) a redirection record redirecting data messages that do not match the first plurality of records to a DP egress port associated with the memory circuit. These embodiments configure an external memory circuit to store a larger, second set of records for matching with redirected data messages received through the DP egress port associated with the memory circuit. This external memory circuit is a hash-addressable memory in some embodiments. To determine whether a redirected data message matches a record in the second set of record, the method of some embodiments configures an FPGA associated with the hash-addressable external memory to use a collision free hash process to generate a collision-free, hash address value from a set of attributes of the data message. This hash address value specifies an address in the external memory for the record in the second set of records to compare with the redirected data message.

IPC Classes  ?

  • G06F 13/42 - Bus transfer protocol, e.g. handshakeSynchronisation
  • H03K 19/173 - Logic circuits, i.e. having at least two inputs acting on one outputInverting circuits using specified components using elementary logic circuits as components
  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus

32.

Augmenting data plane functionality with field programmable integrated circuits

      
Application Number 16540750
Grant Number 11134032
Status In Force
Filing Date 2019-08-14
First Publication Date 2021-09-28
Grant Date 2021-09-28
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bas, Antonin Mathieu
  • Agrawal, Anurag
  • Kim, Changhoon

Abstract

Some embodiments use one or more FPGAs and external memories associated with the FPGAs to implement large, hash-addressable tables for a data plane circuit. These embodiments configure at least one message processing stage of the DP circuit to store (1) a first plurality of records for matching with a set of data messages received by the DP circuit, and (2) a redirection record redirecting data messages that do not match the first plurality of records to a DP egress port associated with the memory circuit. These embodiments configure an external memory circuit to store a larger, second set of records for matching with redirected data messages received through the DP egress port associated with the memory circuit. This external memory circuit is a hash-addressable memory in some embodiments. To determine whether a redirected data message matches a record in the second set of record, the method of some embodiments configures an FPGA associated with the hash-addressable external memory to use a collision free hash process to generate a collision-free, hash address value from a set of attributes of the data message. This hash address value specifies an address in the external memory for the record in the second set of records to compare with the redirected data message.

IPC Classes  ?

  • H04L 12/879 - Single buffer operations, e.g. buffer pointers or buffer descriptors

33.

Data plane with connection validation circuits

      
Application Number 15986048
Grant Number 11108812
Status In Force
Filing Date 2018-05-22
First Publication Date 2021-08-31
Grant Date 2021-08-31
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Krishnan, Shruthi
  • Lee, Jeongkeun
  • Kim, Changhoon

Abstract

Some embodiments of the invention provide a data-plane forwarding circuit (data plane) that can be configured to provide protection from a SYN-flood denial of service attack by validating a source of a SYN data messages before allowing future messages to be forwarded to a protected server. To perform its forwarding operations, the data plane includes several data message processing stages that are configured to process the data tuples associated with the data messages received by the data plane. In some embodiments, parts of the data plane message-processing stages are also configured to operate as a connection-validation circuit that includes (1) a SYN-processing circuit to process SYN data messages received by the data plane, and (2) an ACK-processing circuit to process ACK data messages received by the data plane.

IPC Classes  ?

  • G06F 21/00 - Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 1/16 - Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
  • H04L 12/715 - Hierarchical routing, e.g. clustered networks or inter-domain routing
  • H04L 12/54 - Store-and-forward switching systems

34.

Messaging between remote controller and forwarding element

      
Application Number 17318890
Grant Number 11463385
Status In Force
Filing Date 2021-05-12
First Publication Date 2021-08-26
Grant Date 2022-10-04
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kim, Changhoon
  • Li, Xiaozhou
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

Some embodiments of the invention provide a forwarding element that can be configured through in-band data-plane messages from a remote controller that is a physically separate machine from the forwarding element. The forwarding element of some embodiments has data plane circuits that include several configurable message-processing stages, several storage queues, and a data-plane configurator. A set of one or more message-processing stages of the data plane are configured (1) to process configuration messages received by the data plane from the remote controller and (2) to store the configuration messages in a set of one or more storage queues. The data-plane configurator receives the configuration messages stored in the set of storage queues and configures one or more of the configurable message-processing stages based on configuration data in the configuration messages.

IPC Classes  ?

  • H04L 49/90 - Buffering arrangements
  • H03M 13/09 - Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 41/08 - Configuration management of networks or network elements
  • H04L 41/0803 - Configuration setting
  • H04L 49/00 - Packet switching elements
  • H04L 49/10 - Packet switching elements characterised by the switching fabric construction
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 41/06 - Management of faults, events, alarms or notifications
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 49/20 - Support for services
  • H04L 9/40 - Network security protocols

35.

Dynamically reconfiguring data plane of forwarding element to account for power consumption

      
Application Number 16372214
Grant Number 11102070
Status In Force
Filing Date 2019-04-01
First Publication Date 2021-08-24
Grant Date 2021-08-24
Owner Barefoot Networks, Inc. (USA)
Inventor Chang, Remy

Abstract

Some embodiments of the invention provide a network forwarding element that can be dynamically reconfigured to adjust its data message processing to stay within a desired operating temperature or power consumption range. In some embodiments, the network forwarding element includes (1) a data-plane forwarding circuit (“data plane”) to process data tuples associated with data messages received by the IC, and (2) a control-plane circuit (“control plane”) for configuring the data plane forwarding circuit. The data plane includes several data processing stages to process the data tuples. The data plane also includes an idle-signal injecting circuit that receives from the control plane configuration data that the control plane generates based on the IC's temperature. Based on the received configuration data, the idle-signal injecting circuit generates idle control signals for the data processing stages. Each stage that receives an idle control signal enters an idle state during which the majority of the components of that stage do not perform any operations, which reduces the power consumed and temperature generated by that stage during its idle state.

IPC Classes  ?

  • H04L 12/863 - Queue scheduling, e.g. Round Robin
  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • G06F 1/3234 - Power saving characterised by the action undertaken
  • G06F 1/04 - Generating or distributing clock signals or signals derived directly therefrom
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 12/947 - Address processing within a device, e.g. using internal ID or tags for routing within a switch

36.

Proxy hash table

      
Application Number 16271669
Grant Number 11080252
Status In Force
Filing Date 2019-02-08
First Publication Date 2021-08-03
Grant Date 2021-08-03
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bosshart, Patrick
  • Kim, Changhoon

Abstract

Some embodiments of the invention provide novel methods for storing data in a hash-addressed memory and retrieving stored data from the hash-addressed memory. In some embodiments, the method receives a search key and a data tuple. The method then uses a first hash function to generate a first hash value from the search key, and then uses this first hash value to identify an address in the hash-addressed memory. The method also uses a second hash function to generate a second hash value, and then stores this second hash value along with the data tuple in the memory at the address specified by the first hash value. To retrieve data from the hash-addressed memory, the method of some embodiments receives a search key. The method then uses the first hash function to generate a first hash value from the search key, and then uses this first hash value to identify an address in the hash-addressed memory. At the identified address, the hash-addressed memory stores a second hash value and a data tuple. The method retrieves a second hash value from the memory at the identified address, and compares this second hash value with a third hash value that the method generates from the search key by using the second hash function. When the second and third hash values match, the method retrieves the data tuple that the memory stores at the identified address.

IPC Classes  ?

  • G06F 12/00 - Accessing, addressing or allocating within memory systems or architectures
  • G06F 16/22 - IndexingData structures thereforStorage structures
  • G06F 3/06 - Digital input from, or digital output to, record carriers

37.

Resilient hashing for forwarding packets

      
Application Number 17152658
Grant Number 11811902
Status In Force
Filing Date 2021-01-19
First Publication Date 2021-06-24
Grant Date 2023-11-07
Owner Barefoot Networks, Inc. (USA)
Inventor Bosshart, Patrick

Abstract

A method of identifying a path for forwarding a packet by a packet forwarding element. The method receives a packet that includes a plurality of fields that identify a particular packet flow. The method computes a plurality of hash values from the plurality of fields that identify the particular packet flow. Each hash value computed using a different hash algorithm. Based on the plurality of hash values, the method identifies a plurality of paths configured to forward the packets of the particular flow. The method identifies the status of each of the plurality of paths. Each path status identifies whether or not the corresponding path is operational. The method selects an operational path in the plurality of paths to forward the packet based on a priority scheme using said plurality of identified status bits.

IPC Classes  ?

  • H04L 69/325 - Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
  • H04L 45/44 - Distributed routing
  • H04L 45/00 - Routing or path finding of packets in data switching networks

38.

Forwarding element data plane with computing parameter distributor

      
Application Number 17255984
Grant Number 11444889
Status In Force
Filing Date 2019-03-08
First Publication Date 2021-06-10
Grant Date 2022-09-13
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Javadi, Masoud Moshref
  • Kim, Changhoon
  • Bosshart, Patrick W.
  • Agrawal, Anurag

Abstract

Some embodiments provide a network forwarding element with a data-plane forwarding circuit that has a parameter collecting circuit to store and distribute parameter values computed by several machines in a network. In some embodiments, the machines perform distributed computing operations, and the parameter values that compute are parameter values associated with the distributed computing operations. The parameter collecting circuit of the data-plane forwarding circuit (data plane) in some embodiments (1) stores a set of parameter values computed and sent by a first set of machines, and (2) distributes the collected parameter values to a second set of machines once it has collected the set of parameter values from all the machines in the first set. The first and second sets of machines are the same set of machines in some embodiments, while they are different sets of machines (e.g., one set has at least one machine that is not in the other set) in other embodiments. In some embodiments, the parameter collecting circuit performs computations on the parameter values that it collects and distributes the result of the computations once it has processed all the parameter values distributed by the first set of machines. The computations are aggregating operations (e.g., adding, averaging, etc.) that combine corresponding subset of parameter values distributed by the first set of machines.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 49/00 - Packet switching elements
  • G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
  • G06N 3/08 - Learning methods

39.

Using stateful traffic management data to perform packet processing

      
Application Number 17134110
Grant Number 11750526
Status In Force
Filing Date 2020-12-24
First Publication Date 2021-04-22
Grant Date 2023-09-05
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Yi
  • Feng, Michael
  • Agrawal, Anurag
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Chang, Remy

Abstract

Some embodiments provide a method for an ingress packet processing pipeline of a network forwarding integrated circuit (IC). The ingress packet processing pipeline is for receiving packets from a port of the network forwarding IC and processing the packets to assign different packets to different queues of a traffic management unit of the network forwarding IC. The method receives state data from the traffic management unit. The method stores the state data in a stateful table. The method assigns a particular packet to a particular queue based on the state data received from the traffic management unit and stored in the stateful table.

IPC Classes  ?

  • H04L 47/625 - Queue scheduling characterised by scheduling criteria for service slots or service orders
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 41/142 - Network analysis or design using statistical or mathematical methods
  • H04L 49/00 - Packet switching elements
  • H04L 43/0882 - Utilisation of link capacity
  • H04L 43/16 - Threshold monitoring
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 45/24 - Multipath
  • H04L 47/32 - Flow controlCongestion control by discarding or delaying data units, e.g. packets or frames
  • H04L 47/628 - Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first
  • H04L 49/109 - Integrated on microchip, e.g. switch-on-chip
  • H04L 47/62 - Queue scheduling characterised by scheduling criteria
  • H04L 49/90 - Buffering arrangements
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 12/18 - Arrangements for providing special services to substations for broadcast or conference

40.

Network forwarding element with key-value processing in the data plane

      
Application Number 17092136
Grant Number 11463381
Status In Force
Filing Date 2020-11-06
First Publication Date 2021-04-08
Grant Date 2022-10-04
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Xiaozhou
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Foster, John Nathan

Abstract

Some embodiments of the invention provide a forwarding element (e.g., a switch, a router, etc.) that has one or more data plane, message-processing pipelines with key-value processing circuits. The forwarding element's data plane key-value circuits allow the forwarding element to perform key-value services that would otherwise have to be performed by data compute nodes connected by the network fabric that includes the forwarding element. In some embodiments, the key-value (KV) services of the forwarding element and other similar forwarding elements supplement the key-value services of a distributed set of key-value servers by caching a subset of the most commonly used key-value pairs in the forwarding elements that connect the set of key-value servers with their client applications. In some embodiments, the key-value circuits of the forwarding element perform the key-value service operations at message-processing line rates at which the forwarding element forwards messages to the data compute nodes and/or to other network forwarding elements in the network fabric.

IPC Classes  ?

  • H04L 49/00 - Packet switching elements
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/74 - Address processing for routing
  • G06F 3/06 - Digital input from, or digital output to, record carriers
  • H04L 45/745 - Address table lookupAddress filtering

41.

Data plane with heavy hitter detector

      
Application Number 17042058
Grant Number 11469973
Status In Force
Filing Date 2019-03-08
First Publication Date 2021-04-01
Grant Date 2022-10-11
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Nikolaidis, Georgios
  • Lee, Jeongkeun
  • Kim, Changhoon

Abstract

Some embodiments of the invention provide a data-plane forwarding circuit (data plane) that can be configured to identify large data message flows that it processes for forwarding in a network. In this document, large data message flows are referred to as heavy hitter flows. To perform its forwarding operations, the data plane includes several data message processing stages that are configured to process the data tuples associated with the data messages received by the data plane. In some embodiments, parts of the data plane message-processing stages are also configured to implement a heavy hitter detection (HHD) circuit. The operations of the data plane's message processing stages are configured by a control plane of the data plane's forwarding element in some embodiments.

IPC Classes  ?

  • H04L 43/026 - Capturing of monitoring data using flow identification
  • H04L 47/32 - Flow controlCongestion control by discarding or delaying data units, e.g. packets or frames
  • H04L 41/142 - Network analysis or design using statistical or mathematical methods
  • H04L 45/16 - Multipoint routing
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 45/7453 - Address table lookupAddress filtering using hashing
  • H04L 47/11 - Identifying congestion
  • H04L 47/12 - Avoiding congestionRecovering from congestion
  • H04L 47/2441 - Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
  • H04L 47/2483 - Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
  • H04L 49/00 - Packet switching elements
  • H04L 49/90 - Buffering arrangements
  • H04L 43/16 - Threshold monitoring

42.

Copying packet data to mirror buffer

      
Application Number 15836528
Grant Number 10949199
Status In Force
Filing Date 2017-12-08
First Publication Date 2021-03-16
Grant Date 2021-03-16
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Xiaozhou
  • Lee, Jeongkeun
  • Dhruvanarayan, Srivathsa
  • Agrawal, Anurag
  • Kim, Changhoon
  • Loge, Alain

Abstract

Some embodiments provide a method for a network forwarding integrated circuit (IC). The method receives packet data with an instruction to copy a portion of the packet data to a temporary storage of the network forwarding IC. The portion is larger than a maximum entry size of the temporary storage. The method generates a header for each of multiple packet data sections for storage in entries of the temporary storage, with each packet data section including a sub-portion of the packet data portion. The method sends the packet data sections with the generated headers to the temporary storage for storage in multiple separate temporary storage entries.

IPC Classes  ?

  • H04L 12/66 - Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode
  • G06F 9/38 - Concurrent instruction execution, e.g. pipeline or look ahead
  • G06F 9/28 - Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
  • H04W 8/30 - Network data restoration
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques

43.

Configuring a network forwarding element with data plane packet snapshotting capabilities

      
Application Number 15980543
Grant Number 10924400
Status In Force
Filing Date 2018-05-15
First Publication Date 2021-02-16
Grant Date 2021-02-16
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bosshart, Patrick
  • Ferrara, Michael Gregory
  • Peterson, Jay Evan Scott

Abstract

A forwarding element includes data plane forwarding circuitry for forwarding data messages received by the forwarding element to other network elements in a network. The data-plane forwarding circuitry includes several snapshot-match circuitry units. Each snapshot-match circuitry unit compares a set of header fields of incoming data messages with a corresponding matching data. The data-plane forwarding circuitry also includes several snapshot-capture circuitry units. Each snapshot-capture circuitry units stores a set of header fields of data messages that matches a corresponding matching data.

IPC Classes  ?

  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol

44.

Using stateful traffic management data to perform packet processing

      
Application Number 15835238
Grant Number 10911377
Status In Force
Filing Date 2017-12-07
First Publication Date 2021-02-02
Grant Date 2021-02-02
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Yi
  • Feng, Michael
  • Agrawal, Anurag
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Chang, Remy

Abstract

Some embodiments provide a method for an ingress packet processing pipeline of a network forwarding integrated circuit (IC). The ingress packet processing pipeline is for receiving packets from a port of the network forwarding IC and processing the packets to assign different packets to different queues of a traffic management unit of the network forwarding IC. The method receives state data from the traffic management unit. The method stores the state data in a stateful table. The method assigns a particular packet to a particular queue based on the state data received from the traffic management unit and stored in the stateful table.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/863 - Queue scheduling, e.g. Round Robin
  • H04L 12/823 - Packet dropping
  • H04L 12/933 - Switch core, e.g. crossbar, shared memory or shared medium
  • H04L 12/709 - Route fault prevention or recovery, e.g. rerouting, route redundancy, virtual router redundancy protocol [VRRP] or hot standby router protocol [HSRP] using path redundancy using M+N parallel active paths

45.

Forwarding element data plane with computing parameter distributor

      
Application Number 16945012
Grant Number 11546273
Status In Force
Filing Date 2020-07-31
First Publication Date 2021-01-21
Grant Date 2023-01-03
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Javadi, Masoud Moshref
  • Kim, Changhoon
  • Bosshart, Patrick W.
  • Agrawal, Anurag

Abstract

Some embodiments provide a network forwarding element with a data-plane forwarding circuit that has a parameter collecting circuit to store and distribute parameter values computed by several machines in a network. In some embodiments, the machines perform distributed computing operations, and the parameter values that compute are parameter values associated with the distributed computing operations. The parameter collecting circuit of the data-plane forwarding circuit (data plane) in some embodiments (1) stores a set of parameter values computed and sent by a first set of machines, and (2) distributes the collected parameter values to a second set of machines once it has collected the set of parameter values from all the machines in the first set. The first and second sets of machines are the same set of machines in some embodiments, while they are different sets of machines (e.g., one set has at least one machine that is not in the other set) in other embodiments. In some embodiments, the parameter collecting circuit performs computations on the parameter values that it collects and distributes the result of the computations once it has processed all the parameter values distributed by the first set of machines. The computations are aggregating operations (e.g., adding, averaging, etc.) that combine corresponding subset of parameter values distributed by the first set of machines.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 49/00 - Packet switching elements
  • G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
  • G06N 3/08 - Learning methods

46.

Storing packet data in mirror buffer

      
Application Number 16994353
Grant Number 11019172
Status In Force
Filing Date 2020-08-14
First Publication Date 2021-01-07
Grant Date 2021-05-25
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bhide, Parag D.
  • Loge, Alain
  • Kodeboyina, Chaitanya
  • Agrawal, Anurag

Abstract

Some embodiments provide a method for a hardware forwarding element. Based on a set of characteristics of a packet, the method determines to copy a packet to a particular temporary storage of a set of temporary storages of the hardware forwarding element. Based on a property of the particular temporary storage, the method stores only a particular portion of the packet in the particular temporary storage. A same size portion of each packet copied to the particular temporary storage is stored in the particular temporary storage.

IPC Classes  ?

  • H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol

47.

Dynamically reconfiguring data plane of forwarding element to adjust data plane throughput based on detected conditions

      
Application Number 15683742
Grant Number 10877670
Status In Force
Filing Date 2017-08-22
First Publication Date 2020-12-29
Grant Date 2020-12-29
Owner Barefoot Networks, Inc. (USA)
Inventor Chang, Remy

Abstract

Some embodiments of the invention provide a network forwarding element that can be dynamically reconfigured to adjust its data message processing to stay within a desired operating temperature or power consumption range. In some embodiments, the network forwarding element includes (1) a data-plane forwarding circuit (“data plane”) to process data tuples associated with data messages received by the IC, and (2) a control-plane circuit (“control plane”) for configuring the data plane forwarding circuit. The data plane includes several data processing stages to process the data tuples. The data plane also includes an idle-signal injecting circuit that receives from the control plane configuration data that the control plane generates based on the IC's temperature. Based on the received configuration data, the idle-signal injecting circuit generates idle control signals for the data processing stages. Each stage that receives an idle control signal enters an idle state during which the majority of the components of that stage do not perform any operations, which reduces the power consumed and temperature generated by that stage during its idle state.

IPC Classes  ?

  • H04L 12/24 - Arrangements for maintenance or administration
  • G06F 3/06 - Digital input from, or digital output to, record carriers
  • H04L 12/931 - Switch fabric architecture
  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus

48.

Data plane error detection for ternary content-addressable memory (TCAM) of a forwarding element

      
Application Number 16380978
Grant Number 10877838
Status In Force
Filing Date 2019-04-10
First Publication Date 2020-12-29
Grant Date 2020-12-29
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Peterson, Jay E. S.
  • Bosshart, Patrick
  • Ferrara, Michael G.

Abstract

A method of detecting error in a data plane of a packet forwarding element that includes a plurality of physical ternary content-addressable memories (TCAMs) is provided. The method configures a first set of physical TCAMs into a first logical TCAM. The method configures a second set of physical TCAMs into a second logical TCAM. The second logical TCAM includes the same number of physical TCAMs as the first logical TCAM. The method programs the first and second logical TCAMs to store a same set of data. The method requests a search for a particular content from the first and second logical TCAMs. The method generates an error signal when the first and second logical TCAMs do not produce a same search results.

IPC Classes  ?

  • G11C 29/00 - Checking stores for correct operationTesting stores during standby or offline operation
  • G06F 11/10 - Adding special bits or symbols to the coded information, e.g. parity check, casting out nines or elevens
  • G06F 9/30 - Arrangements for executing machine instructions, e.g. instruction decode

49.

Data plane with flow learning circuit

      
Application Number 15927723
Grant Number 10873534
Status In Force
Filing Date 2018-03-21
First Publication Date 2020-12-22
Grant Date 2020-12-22
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Ferrara, Michael Gregory
  • Peterson, Jay Evan Scott
  • Licking, Steven
  • Lee, Jeongkeun
  • Bosshart, Patrick
  • Agrawal, Anurag

Abstract

Some embodiments provide a data-plane forwarding circuit that can be configured to learn about a new message flow and to maintain metadata about the new message flow without first having a control plane first configure the data plane to maintain metadata about the flow. To perform its forwarding operations, the data plane includes several data message processing stages that are configured to process the data tuples associated with the data messages received by the data plane. In some embodiments, parts of the data plane message-processing stages are also configured to operate as a flow-tracking circuit that includes (1) a flow-identifying circuit to identify message flows received by the data plane, and (2) a first set of storages to store metadata about the identified flows.

IPC Classes  ?

  • H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/747 - Address caching
  • H04L 12/751 - Topology update or discovery
  • H04L 12/801 - Flow control or congestion control

50.

Network forwarding element with key-value processing in the data plane

      
Application Number 16372370
Grant Number 10862827
Status In Force
Filing Date 2019-04-01
First Publication Date 2020-12-08
Grant Date 2020-12-08
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Xiaozhou
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Foster, John Nathan

Abstract

Some embodiments of the invention provide a forwarding element that has one or more data plane, message-processing pipelines with key-value processing circuits. The forwarding element's data plane key-value circuits allow the forwarding element to perform key-value services that would otherwise have to be performed by data compute nodes connected by the network fabric that includes the forwarding element. In some embodiments, the key-value (KV) services of the forwarding element and other similar forwarding elements supplement the key-value services of a distributed set of key-value servers by caching a subset of the most commonly used key-value pairs in the forwarding elements that connect the set of key-value servers with their client applications. In some embodiments, the key-value circuits of the forwarding element perform the key-value service operations at message-processing line rates at which the forwarding element forwards messages to the data compute nodes and/or to other network forwarding elements.

IPC Classes  ?

51.

Queue scheduler control via packet data

      
Application Number 15682481
Grant Number 10848429
Status In Force
Filing Date 2017-08-21
First Publication Date 2020-11-24
Grant Date 2020-11-24
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Lee, Jeongkeun
  • Li, Yi
  • Feng, Michael
  • Dhruvanarayan, Srivathsa
  • Agrawal, Anurag

Abstract

Some embodiments provide a method for a hardware forwarding element that includes multiple queues. The method receives a packet at a multi-stage processing pipeline of the hardware forwarding element. The method determines, at one of the stages of the processing pipeline, to modify a setting of a particular one of the queues. The method stores an identifier for the particular queue and instructions to modify the queue setting with data passed through the processing pipeline for the packet. The stored information is subsequently used by the hardware forwarding element to modify the queue setting.

IPC Classes  ?

  • H04L 12/801 - Flow control or congestion control
  • H04L 12/863 - Queue scheduling, e.g. Round Robin
  • H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol

52.

Allocation of virtual queues of a network forwarding element

      
Application Number 16410805
Grant Number 10931591
Status In Force
Filing Date 2019-05-13
First Publication Date 2020-11-19
Grant Date 2021-02-23
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Agrawal, Anurag
  • Feng, Michael
  • Li, Robert
  • Wang, Yan

Abstract

In a method for allocating physical queues of a network forwarding element, a request is received at the network forwarding element, the network forwarding element including a plurality of physical queues, where each physical queue of the plurality of physical queues has a fixed bandwidth, the request identifying an allocation of a plurality of virtual queues at the network forwarding element. Based at least in part on the request, a configuration of the plurality of physical queues to the plurality of virtual queues is determined. The plurality of physical queues is configured according to the configuration, wherein the configuring includes allocating at least two physical queues to a virtual queue.

IPC Classes  ?

53.

Multiple copies of stateful tables

      
Application Number 15835242
Grant Number 10826840
Status In Force
Filing Date 2017-12-07
First Publication Date 2020-11-03
Grant Date 2020-11-03
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Peterson, Jay Evan Scott
  • Ferrara, Michael Gregory
  • Agrawal, Anurag
  • Bosshart, Patrick
  • Lee, Jeongkeun

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.

IPC Classes  ?

  • H04L 12/863 - Queue scheduling, e.g. Round Robin
  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/935 - Switch interfaces, e.g. port details

54.

Dynamically reconfiguring data plane of forwarding element to account for operating temperature

      
Application Number 16870680
Grant Number 11424983
Status In Force
Filing Date 2020-05-08
First Publication Date 2020-10-29
Grant Date 2022-08-23
Owner Barefoot Networks, Inc. (USA)
Inventor Chang, Remy

Abstract

Some embodiments of the invention provide a network forwarding element that can be dynamically reconfigured to adjust its data message processing to stay within a desired operating temperature or power consumption range. In some embodiments, the network forwarding element includes (1) a data-plane forwarding circuit (“data plane”) to process data tuples associated with data messages received by the IC, and (2) a control-plane circuit (“control plane”) for configuring the data plane forwarding circuit. The data plane includes several data processing stages to process the data tuples. The data plane also includes an idle-signal injecting circuit that receives from the control plane configuration data that the control plane generates based on the IC's temperature. Based on the received configuration data, the idle-signal injecting circuit generates idle control signals for the data processing stages. Each stage that receives an idle control signal enters an idle state during which the majority of the components of that stage do not perform any operations, which reduces the power consumed and temperature generated by that stage during its idle state.

IPC Classes  ?

  • H04L 41/0833 - Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network energy consumption
  • G06F 1/3234 - Power saving characterised by the action undertaken
  • G06F 1/04 - Generating or distributing clock signals or signals derived directly therefrom
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 49/25 - Routing or path finding in a switch fabric
  • H04L 49/00 - Packet switching elements
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • G06F 1/20 - Cooling means
  • G06F 1/32 - Means for saving power
  • G06F 3/06 - Digital input from, or digital output to, record carriers
  • G06F 13/16 - Handling requests for interconnection or transfer for access to memory bus
  • H04L 49/40 - Constructional details, e.g. power supply, mechanical construction or backplane
  • H04L 49/50 - Overload detection or protection within a single switching element
  • H04L 49/505 - Corrective measures
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 47/30 - Flow controlCongestion control in combination with information about buffer occupancy at either end or at transit nodes
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer

55.

Forwarding element data plane with flow size detector

      
Application Number 16870785
Grant Number 11102090
Status In Force
Filing Date 2020-05-08
First Publication Date 2020-10-29
Grant Date 2021-08-24
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Nikolaidis, Georgios
  • Lee, Jeongkeun
  • Javadi, Masoud Moshref

Abstract

Some embodiments of the invention provide a data-plane forwarding circuit (data plane) that has a flow-size detection circuit that generates flow-size density distribution for all or some of the data message flows that it processes for forwarding in a network. The flow-size (FS) detection circuit in some embodiments generates statistical values regarding the processed data message flows, and based on these statistical values, it generates a FS density distribution that expresses a number of flows in different flow-size sub-ranges in a range of flow sizes. In some embodiments, the density distribution is a probabilistic density distribution that is based on probabilistic statistical values that the flow-size detection circuit generates for the data message flows that are processed for forwarding within the network. The FS detection circuit in some embodiments generates probabilistic statistical values for the data message flows by generating hash values from header values of the data message flows and accumulating flow-size values at memory locations identified by the generated hash values. In some embodiments, the generated hashes for different data message flows can collide, which results in the accumulated flow-size values being probabilistic values that might have a certain level of inaccuracy.

IPC Classes  ?

  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/823 - Packet dropping
  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 12/761 - Broadcast or multicast routing
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 12/715 - Hierarchical routing, e.g. clustered networks or inter-domain routing
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/801 - Flow control or congestion control
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling

56.

Generation of descriptive data for packet fields

      
Application Number 16879704
Grant Number 11425058
Status In Force
Filing Date 2020-05-20
First Publication Date 2020-10-01
Grant Date 2022-08-23
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Watson, Gregory C.
  • Dhruvanarayan, Srivathsa
  • Gibb, Glen Raymond
  • Calamvokis, Constantine
  • Edwards, Aled Justin

Abstract

Some embodiments provide a method for a parser of a processing pipeline. The method receives a packet for processing by a set of match-action stages of the processing pipeline. The method stores packet header field (PHF) values from a first set of PHFs of the packet in a set of data containers. The first set of PHFs are for use by the match-action stages. For a second set of PHFs not used by the match-action stages, the method generates descriptive data that identifies locations of the PHFs of the second set within the packet. The method sends (i) the set of data containers to the match-action stages and (ii) the packet data and the generated descriptive data outside of the match-action stages to a deparser that uses the packet data, generated descriptive data, and the set of data containers as modified by the match-action stages to reconstruct a modified packet.

IPC Classes  ?

  • H04L 49/9057 - Arrangements for supporting packet reassembly or resequencing
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 69/18 - Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
  • H04L 69/16 - Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
  • H04L 49/90 - Buffering arrangements
  • H04L 49/901 - Buffering arrangements using storage descriptor, e.g. read or write pointers
  • H04L 49/00 - Packet switching elements
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 47/2441 - Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
  • H04L 67/63 - Routing a service request depending on the request content or context
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer

57.

Identifying and marking failed egress links in data plane

      
Application Number 16903305
Grant Number 11310099
Status In Force
Filing Date 2020-06-16
First Publication Date 2020-10-01
Grant Date 2022-04-19
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kodeboyina, Chaitanya
  • Cruz, John
  • Licking, Steven
  • Attig, Michael E.

Abstract

A method of identifying a failed egress path of a hardware forwarding element. The method detects an egress link failure in a data plane of the forwarding element. The method generates a link failure signal in the data plane identifying the failed egress link. The method generates a packet that includes the identification of the egress link based on the link failure signal. The method sets the status of the egress link to failed in the data plane based on the identification of the egress link in the generated packet.

IPC Classes  ?

  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/717 - Centralised routing
  • H04L 12/715 - Hierarchical routing, e.g. clustered networks or inter-domain routing
  • H04L 41/0654 - Management of faults, events, alarms or notifications using network fault recovery
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 41/0677 - Localisation of faults
  • H04L 49/00 - Packet switching elements
  • H04L 45/42 - Centralised routing
  • H04L 49/55 - Prevention, detection or correction of errors
  • H04L 45/28 - Routing or path finding of packets in data switching networks using route fault recovery
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer

58.

Network testing using a programmable packet engine

      
Application Number 16833227
Grant Number 11595289
Status In Force
Filing Date 2020-03-27
First Publication Date 2020-10-01
Grant Date 2023-02-28
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Lee, Jeongkeun
  • Nikolaidis, Georgios
  • Lam, Andre
  • Chang, Remy
  • Kang, Joon-Myung
  • Nikravesh, Ashkan
  • Krishnamoorthy, Ramkumar
  • Loge, Alain

Abstract

Embodiments described herein describe a network tester that is configured to perform packet modification at an egress pipeline of a programmable packet engine. A packet stream is received at an egress pipeline of an output port of the programmable packet engine, wherein the output port includes a packet modifier. Packets of the packet stream are modified at the packet modifier. The packet stream including modified packets is transmitted through an egress pipeline of the output port.

IPC Classes  ?

  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 43/106 - Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
  • H04L 43/50 - Testing arrangements
  • H04L 69/22 - Parsing or analysis of headers

59.

Storing packet data in mirror buffer

      
Application Number 16289001
Grant Number 10785342
Status In Force
Filing Date 2019-02-28
First Publication Date 2020-09-22
Grant Date 2020-09-22
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bhide, Parag D.
  • Loge, Alain
  • Kodeboyina, Chaitanya
  • Agrawal, Anurag

Abstract

Some embodiments provide a method for a hardware forwarding element. Based on a set of characteristics of a packet, the method determines to copy a packet to a particular temporary storage of a set of temporary storages of the hardware forwarding element. Based on a property of the particular temporary storage, the method stores only a particular portion of the packet in the particular temporary storage. A same size portion of each packet copied to the particular temporary storage is stored in the particular temporary storage.

IPC Classes  ?

  • H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol

60.

Multiple packet data container types for a processing pipeline

      
Application Number 15835235
Grant Number 10771387
Status In Force
Filing Date 2017-12-07
First Publication Date 2020-09-08
Grant Date 2020-09-08
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bosshart, Patrick
  • Peterson, Jay Evan Scott
  • Ferrara, Michael Gregory
  • Attig, Michael E.

Abstract

Some embodiments provide a method for a match-action stage of a packet processing pipeline. The method receives a set of data containers storing input packet data values for a particular packet. The set of data containers includes multiple subsets of data containers. The method performs a set of match operations using a first subset of the set of data containers. The method uses a set of arithmetic logic units (ALUs) to generate output packet data values to store in a second subset of the set of data containers. Output packet data values for a third subset of the data containers are generated without the set of ALUs.

IPC Classes  ?

  • H04W 72/04 - Wireless resource allocation
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/935 - Switch interfaces, e.g. port details

61.

Compiler and hardware interactions to reuse register fields in the data plane of a network forwarding element

      
Application Number 15682363
Grant Number 10764176
Status In Force
Filing Date 2017-08-21
First Publication Date 2020-09-01
Grant Date 2020-09-01
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Attig, Michael E.
  • Bosshart, Patrick
  • Peterson, Jay Evan Scott
  • Ferrara, Michael Gregory

Abstract

A method of configuring a forwarding element that includes several message processing stages. The method identifies a first processing stage that starts processing a first header field of a message and a second processing stage that is the last message processing stage that processes the first header field. The method configures a field of a packet header container to store the first header field from the beginning of the first message processing stage. The method identifies a second header field used in a third processing stage after the second processing stage. The method configures a set of circuitries in the data plane to initialize the container field after the end of the second processing stage. The method configures the field of the container to store the second header field of the message after the end of the second processing stage and before the start of the third processing stage.

IPC Classes  ?

  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • G06F 7/57 - Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups or for performing logical operations

62.

Footsie Logo

      
Application Number 204862500
Status Registered
Filing Date 2020-08-28
Registration Date 2023-10-18
Owner Barefoot Networks, Inc. (USA)
NICE Classes  ? 09 - Scientific and electric apparatus and instruments

Goods & Services

(1) Integrated circuits; computer hardware and software for operating computer networks; ethernet switches

63.

Miscellaneous Design

      
Application Number 018298023
Status Registered
Filing Date 2020-08-28
Registration Date 2021-01-09
Owner Barefoot Networks, Inc. (USA)
NICE Classes  ? 09 - Scientific and electric apparatus and instruments

Goods & Services

Integrated circuits; computer hardware and software for operating computer networks; ethernet switches.

64.

BAREFOOT

      
Application Number 204827500
Status Registered
Filing Date 2020-08-27
Registration Date 2023-10-18
Owner Barefoot Networks, Inc. (USA)
NICE Classes  ? 09 - Scientific and electric apparatus and instruments

Goods & Services

(1) Integrated circuits; computer hardware for operating computer networks

65.

Identifying congestion in a network

      
Application Number 16810727
Grant Number 11381504
Status In Force
Filing Date 2020-03-05
First Publication Date 2020-08-27
Grant Date 2022-07-05
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kim, Changhoon
  • Lee, Jeongkeun
  • Li, Xiaozhou
  • Javadi, Masoud Moshref
  • Nikolaidis, Georgios
  • Spiegel, Ethan M.

Abstract

Some embodiments of the invention provide a method for reporting congestion in a network that includes several forwarding elements. In a data plane circuit of one of the forwarding elements, the method detects that a queue in the switching circuit of the data plane circuit is congested, while a particular data message is stored in the queue as it is being processed through the data plane circuit. In the data plane circuit, the method then generates a report regarding the detected queue congestion, and sends this report to a data collector external to the forwarding element. To send the report, the data plane circuit in some embodiments duplicates the particular data message, stores it in the duplicate data message information regarding the detected queue congestion, and sends the duplicate data message to the external data collector.

IPC Classes  ?

  • H04J 3/16 - Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
  • H04L 12/28 - Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
  • H04L 47/11 - Identifying congestion
  • H04L 47/33 - Flow controlCongestion control using forward notification
  • H04L 49/1546 - Non-blocking multistage, e.g. Clos using pipelined operation
  • H04L 43/062 - Generation of reports related to network traffic
  • H04L 47/50 - Queue scheduling

66.

Configurable forwarding element deparser

      
Application Number 15678549
Grant Number 10757028
Status In Force
Filing Date 2017-08-16
First Publication Date 2020-08-25
Grant Date 2020-08-25
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Watson, Gregory C.
  • Dhruvanarayan, Srivathsa
  • Gibb, Glen Raymond
  • Calamvokis, Constantine
  • Edwards, Aled Justin

Abstract

Some embodiments provide a method for a hardware forwarding element deparser. The method receives, from a match-action pipeline, (i) packet header field values stored in a set of data containers and (ii) a set of data indicating which packet header fields, of multiple possible packet header fields, to include in a packet constructed from the packet header field values. The method uses the received set of data and a list of data container identifiers for multiple possible packet header fields to generate an ordered list of references to data containers of the set of data containers. Based on the ordered list, the method constructs the packet using the packet header field values stored in the referenced data containers.

IPC Classes  ?

  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 29/08 - Transmission control procedure, e.g. data link level control procedure
  • H04L 12/715 - Hierarchical routing, e.g. clustered networks or inter-domain routing
  • H04L 12/741 - Header address processing for routing, e.g. table lookup

67.

Buffer space availability for different packet classes

      
Application Number 15374828
Grant Number 10735331
Status In Force
Filing Date 2016-12-09
First Publication Date 2020-08-04
Grant Date 2020-08-04
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Yi
  • Agrawal, Anurag
  • Feng, Michael

Abstract

Some embodiments provide a method for a hardware forwarding element. The method receives a packet to add to a buffer. The packet is assigned a packet class. The method determines an amount of buffer space available for the assigned packet class. Different packet classes have different amounts of buffer space available in the buffer. When the available buffer space for the assigned packet class is large enough for the received packet, the method adds the packet to the buffer.

IPC Classes  ?

  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/835 - Bitrate adaptation in active flows using buffer capacity information at the endpoints or transit nodes
  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/833 - Marking packets or altering packet priority upon congestion or for congestion prevention
  • H04L 12/18 - Arrangements for providing special services to substations for broadcast or conference

68.

Equal cost multiple path group failover for multicast

      
Application Number 16271624
Grant Number 10728173
Status In Force
Filing Date 2019-02-08
First Publication Date 2020-07-28
Grant Date 2020-07-28
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

A method of forwarding a multicast packet by a physical forwarding element is provided. The method receives a multicast packet that identifies a multicast group. The method scans a multicast tree associated with the multicast group to identify an ECMP group for forwarding the multicast packet to a member of the multicast group. The method calculates a group of hash values on several fields of the packet and uses a first hash value in the group of hash values to identify a first path in the ECMP. The method determines that the identified path has failed. The method uses a second hash value to identify a second path in the ECMP. The method forwards the multicast packet to the multicast member through the second path.

IPC Classes  ?

  • H04L 12/931 - Switch fabric architecture
  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/18 - Arrangements for providing special services to substations for broadcast or conference
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 12/707 - Route fault prevention or recovery, e.g. rerouting, route redundancy, virtual router redundancy protocol [VRRP] or hot standby router protocol [HSRP] using path redundancy
  • H04L 12/703 - Route fault prevention or recovery, e.g. rerouting, route redundancy, virtual router redundancy protocol [VRRP] or hot standby router protocol [HSRP]
  • H04L 12/751 - Topology update or discovery
  • H04L 12/709 - Route fault prevention or recovery, e.g. rerouting, route redundancy, virtual router redundancy protocol [VRRP] or hot standby router protocol [HSRP] using path redundancy using M+N parallel active paths
  • H04L 12/753 - Routing tree discovery, e.g. converting from mesh topology to tree topology

69.

Runtime sharing of unit memories between match tables in a network forwarding element

      
Application Number 15986795
Grant Number 10721167
Status In Force
Filing Date 2018-05-22
First Publication Date 2020-07-21
Grant Date 2020-07-21
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bosshart, Patrick W.
  • Attig, Michael E.
  • Sunkad, Ravindra
  • Peterson, Jay Evan Scott

Abstract

A method of sharing unit memories between two match tables in a data plane packet processing pipeline of a physical forwarding element is provided. The method, from a plurality of available unit memories of the packet processing pipeline, allocates a first set of unit memories to the first match table and a second set of unit memories to the second match table. The method determines that the first set of unit memories is filled to a threshold capacity after storing a plurality of entries in the first set of unit memories. The method de-allocates a first unit memory from the second match table by moving contents of the first unit memory to a second unit memory in the second set of unit memories. The method allocates the first unit memory to the first match table.

IPC Classes  ?

  • H04L 12/745 - Header address processing for routing, e.g. table lookup using longest matching prefix
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 12/911 - Network admission control and resource allocation, e.g. bandwidth allocation or in-call renegotiation
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol

70.

Priority-based flow control

      
Application Number 15374820
Grant Number 10708189
Status In Force
Filing Date 2016-12-09
First Publication Date 2020-07-07
Grant Date 2020-07-07
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Agrawal, Anurag
  • Li, Yi

Abstract

Some embodiments provide a method for a hardware forwarding element. The method adds a received packet to a buffer. The method determines whether adding the packet to the buffer causes the buffer to pass one of multiple flow control thresholds, each of which corresponds to a different packet priority. When adding the packet to the buffer causes the buffer to pass a particular flow control threshold corresponding to a particular priority, the method generates a flow control message for the particular priority.

IPC Classes  ?

  • H04L 12/825 - Adaptive control, at the source or intermediate nodes, upon congestion feedback, e.g. X-on X-off
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/801 - Flow control or congestion control
  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling
  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/823 - Packet dropping
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/835 - Bitrate adaptation in active flows using buffer capacity information at the endpoints or transit nodes
  • H04L 12/863 - Queue scheduling, e.g. Round Robin
  • H04L 12/931 - Switch fabric architecture

71.

Dynamically reconfiguring data plane of forwarding element to account for operating temperature

      
Application Number 15683745
Grant Number 10693725
Status In Force
Filing Date 2017-08-22
First Publication Date 2020-06-23
Grant Date 2020-06-23
Owner Barefoot Networks, Inc. (USA)
Inventor Chang, Remy

Abstract

Some embodiments of the invention provide a network forwarding element that can be dynamically reconfigured to adjust its data message processing to stay within a desired operating temperature or power consumption range. In some embodiments, the network forwarding element includes (1) a data-plane forwarding circuit (“data plane”) to process data tuples associated with data messages received by the IC, and (2) a control-plane circuit (“control plane”) for configuring the data plane forwarding circuit. The data plane includes several data processing stages to process the data tuples. The data plane also includes an idle-signal injecting circuit that receives from the control plane configuration data that the control plane generates based on the IC's temperature. Based on the received configuration data, the idle-signal injecting circuit generates idle control signals for the data processing stages. Each stage that receives an idle control signal enters an idle state during which the majority of the components of that stage do not perform any operations, which reduces the power consumed and temperature generated by that stage during its idle state.

IPC Classes  ?

  • H04L 12/24 - Arrangements for maintenance or administration
  • G06F 1/32 - Means for saving power
  • G06F 1/04 - Generating or distributing clock signals or signals derived directly therefrom
  • G06F 1/20 - Cooling means
  • H04L 12/947 - Address processing within a device, e.g. using internal ID or tags for routing within a switch
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol

72.

Generation of descriptive data for packet fields

      
Application Number 15678565
Grant Number 10694006
Status In Force
Filing Date 2017-08-16
First Publication Date 2020-06-23
Grant Date 2020-06-23
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Watson, Gregory C.
  • Dhruvanarayan, Srivathsa
  • Gibb, Glen Raymond
  • Calamvokis, Constantine
  • Edwards, Aled Justin

Abstract

Some embodiments provide a method for a parser of a processing pipeline. The method receives a packet for processing by a set of match-action stages of the processing pipeline. The method stores packet header field (PHF) values from a first set of PHFs of the packet in a set of data containers. The first set of PHFs are for use by the match-action stages. For a second set of PHFs not used by the match-action stages, the method generates descriptive data that identifies locations of the PHFs of the second set within the packet. The method sends (i) the set of data containers to the match-action stages and (ii) the packet data and the generated descriptive data outside of the match-action stages to a deparser that uses the packet data, generated descriptive data, and the set of data containers as modified by the match-action stages to reconstruct a modified packet.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling
  • H04L 12/741 - Header address processing for routing, e.g. table lookup

73.

Packet reconstruction at deparser

      
Application Number 15678556
Grant Number 10686735
Status In Force
Filing Date 2017-08-16
First Publication Date 2020-06-16
Grant Date 2020-06-16
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Watson, Gregory C.
  • Dhruvanarayan, Srivathsa
  • Gibb, Glen Raymond
  • Calamvokis, Constantine
  • Edwards, Aled Justin

Abstract

Some embodiments provide a method for a deparser of a processing pipeline. The method receives, from a set of match-action stages of the pipeline, packet header field (PHF) values for a first set of PHFs of a packet processed by the match-action stages. The method also receives, directly from a parser of the pipeline, (i) packet data for the packet prior to any modification by the match-action stages and (ii) descriptive data that specifies locations within the packet data for a second set of PHFs of the packet that are not included in the first set of PHFs. The method constructs a packet from (i) the PHF values received for the first set of PHFs and (ii) the packet data received for the second set of PHFs. The descriptive data is used to extract packet header field values for the second set of PHFs from the packet data.

IPC Classes  ?

  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling
  • H04L 12/879 - Single buffer operations, e.g. buffer pointers or buffer descriptors
  • H04L 12/935 - Switch interfaces, e.g. port details

74.

Network forwarding element with data plane packet snapshotting capabilities

      
Application Number 16687278
Grant Number 11283709
Status In Force
Filing Date 2019-11-18
First Publication Date 2020-05-21
Grant Date 2022-03-22
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bosshart, Patrick
  • Ferrara, Michael G.
  • Peterson, Jay E. S.

Abstract

A forwarding element includes data plane forwarding circuitry for forwarding data messages received by the forwarding element to other network elements in a network. The data-plane forwarding circuitry includes several snapshot-match circuitry units. Each snapshot-match circuitry unit compares a set of header fields of incoming data messages with a corresponding matching data. The data-plane forwarding circuitry also includes several snapshot-capture circuitry units. Each snapshot-capture circuitry units stores a set of header fields of data messages that matches a corresponding matching data.

IPC Classes  ?

  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 47/2441 - Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
  • H04L 49/00 - Packet switching elements
  • H04L 43/04 - Processing captured monitoring data, e.g. for logfile generation
  • G06F 9/448 - Execution paradigms, e.g. implementations of programming paradigms
  • H04L 45/74 - Address processing for routing

75.

CONFIGURING AND PERFORMING CHARACTER PATTERN RECOGNITION IN A DATA PLANE CIRCUIT

      
Application Number US2019057715
Publication Number 2020/092099
Status In Force
Filing Date 2019-10-23
Publication Date 2020-05-07
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor
  • Javadi, Masoud Moshref
  • Soule, Robert
  • Kim, Changhoon
  • Lee, Jeongkeun
  • Foster, John Nathan
  • Alvarez, Daniel A.
  • Jepsen, Theodore

Abstract

Some embodiments provide a data plane circuit for a network forwarding element that searches for one or more patterns of characters stored in data messages received by the data plane circuit. In some embodiments, the data plane circuit analyzes the data messages as it processes the data messages to forward the data messages to their destinations in a network. Because the data messages are already flowing through the network, it is optimal to search the data messages for the character patterns as the data messages pass through the network, instead of performing these operations on a separate set of servers that typically perform these searches at slower rates.

IPC Classes  ?

  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/933 - Switch core, e.g. crossbar, shared memory or shared medium
  • H04L 12/935 - Switch interfaces, e.g. port details

76.

Forwarding element with flow learning circuit in its data plane

      
Application Number 15927868
Grant Number 10616101
Status In Force
Filing Date 2018-03-21
First Publication Date 2020-04-07
Grant Date 2020-04-07
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Peterson, Jay Evan Scott
  • Licking, Steven
  • Lee, Jeongkeun
  • Bosshart, Patrick
  • Agrawal, Anurag
  • Ferrara, Michael Gregory

Abstract

Some embodiments provide a data-plane forwarding circuit that can be configured to learn about a new message flow and to maintain metadata about the new message flow without first having a control plane first configure the data plane to maintain metadata about the flow. To perform its forwarding operations, the data plane includes several data message processing stages that are configured to process the data tuples associated with the data messages received by the data plane. In some embodiments, parts of the data plane message-processing stages are also configured to operate as a flow-tracking circuit that includes (1) a flow-identifying circuit to identify message flows received by the data plane, and (2) a first set of storages to store metadata about the identified flows.

IPC Classes  ?

  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 12/801 - Flow control or congestion control
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/751 - Topology update or discovery

77.

Identifying congestion in a network

      
Application Number 15895908
Grant Number 10608939
Status In Force
Filing Date 2018-02-13
First Publication Date 2020-03-31
Grant Date 2020-03-31
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kim, Changhoon
  • Lee, Jeongkeun
  • Li, Xiaozhou
  • Javadi, Masoud Moshref
  • Nikolaidis, Georgios
  • Spiegel, Ethan M.

Abstract

Some embodiments of the invention provide a method for reporting congestion in a network that includes several forwarding elements. In a data plane circuit of one of the forwarding elements, the method detects that a queue in the switching circuit of the data plane circuit is congested, while a particular data message is stored in the queue as it is being processed through the data plane circuit. In the data plane circuit, the method then generates a report regarding the detected queue congestion, and sends this report to a data collector external to the forwarding element. To send the report, the data plane circuit in some embodiments duplicates the particular data message, stores it in the duplicate data message information regarding the detected queue congestion, and sends the duplicate data message to the external data collector.

IPC Classes  ?

  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/801 - Flow control or congestion control
  • H04L 12/933 - Switch core, e.g. crossbar, shared memory or shared medium
  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/863 - Queue scheduling, e.g. Round Robin

78.

Packet header field extraction

      
Application Number 16695044
Grant Number 11425038
Status In Force
Filing Date 2019-11-25
First Publication Date 2020-03-26
Grant Date 2022-08-23
Owner Barefoot Networks, Inc. (USA)
Inventor Bosshart, Patrick

Abstract

Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.

IPC Classes  ?

  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/933 - Switch core, e.g. crossbar, shared memory or shared medium
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 49/1546 - Non-blocking multistage, e.g. Clos using pipelined operation
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 45/74 - Address processing for routing
  • H04L 45/42 - Centralised routing

79.

Packet header field extraction

      
Application Number 16695049
Grant Number 11425039
Status In Force
Filing Date 2019-11-25
First Publication Date 2020-03-26
Grant Date 2022-08-23
Owner Barefoot Networks, Inc. (USA)
Inventor Bosshart, Patrick

Abstract

Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.

IPC Classes  ?

  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/931 - Switch fabric architecture
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 49/1546 - Non-blocking multistage, e.g. Clos using pipelined operation
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 45/74 - Address processing for routing
  • H04L 45/42 - Centralised routing

80.

Flexible packet replication and filtering for multicast/broadcast

      
Application Number 16024985
Grant Number 10601702
Status In Force
Filing Date 2018-07-02
First Publication Date 2020-03-24
Grant Date 2020-03-24
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Cruz, John
  • Kodeboyina, Chaitanya

Abstract

A novel method for replicating and filtering multicast packet in a physical network is provided. Upon receiving a packet, the method generates a set of metadata as ingress replication context for the received packet based on the content of the receive packet. The generated ingress replication context includes a multicast group identifier, a replication identifier, a first layer exclusion identifier, and a second layer exclusion identifier. The method performs multicast replication of the packet by identifying logical ports and/or logical domains that are to be excluded from the multicast replication based on the content of the generated ingress replication context.

IPC Classes  ?

  • H04L 12/28 - Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
  • H04L 12/761 - Broadcast or multicast routing
  • H04L 12/709 - Route fault prevention or recovery, e.g. rerouting, route redundancy, virtual router redundancy protocol [VRRP] or hot standby router protocol [HSRP] using path redundancy using M+N parallel active paths
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques

81.

Configurable packet processing pipeline for handling non-packet data

      
Application Number 15835239
Grant Number 10601732
Status In Force
Filing Date 2017-12-07
First Publication Date 2020-03-24
Grant Date 2020-03-24
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Peterson, Jay Evan Scott
  • Ferrara, Michael Gregory
  • Agrawal, Anurag
  • Bosshart, Patrick
  • Lee, Jeongkeun

Abstract

Some embodiments provide a method for a packet processing pipeline of a network forwarding integrated circuit (IC). The packet processing pipeline includes multiple match-action stages for processing packets received by the network forwarding IC. Each packet is transmitted through the pipeline using a set of data containers. The method receives data, generated by the network forwarding IC, that is separate from the packets processed by the pipeline. The method transmits through the packet processing pipeline (i) a packet using a first set of data containers and (ii) the received data using a second set of data containers. The first and second sets of data containers are transmitted together through the packet processing pipeline. For at least one of the match-action stages, the method processes the packet data in the first set of data containers and the received data in the second set of data containers in a same clock cycle.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing

82.

Packet header field extraction

      
Application Number 16573847
Grant Number 11411870
Status In Force
Filing Date 2019-09-17
First Publication Date 2020-03-05
Grant Date 2022-08-09
Owner Barefoot Networks, Inc. (USA)
Inventor Bosshart, Patrick

Abstract

Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.

IPC Classes  ?

  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/933 - Switch core, e.g. crossbar, shared memory or shared medium
  • H04L 45/745 - Address table lookupAddress filtering
  • H04L 45/00 - Routing or path finding of packets in data switching networks
  • H04L 49/101 - Packet switching elements characterised by the switching fabric construction using crossbar or matrix
  • H04L 45/64 - Routing or path finding of packets in data switching networks using an overlay routing layer
  • H04L 49/1546 - Non-blocking multistage, e.g. Clos using pipelined operation
  • H04L 69/22 - Parsing or analysis of headers
  • H04L 45/74 - Address processing for routing
  • H04L 45/42 - Centralised routing

83.

Latency tracking

      
Application Number 15726347
Grant Number 10574576
Status In Force
Filing Date 2017-10-05
First Publication Date 2020-02-25
Grant Date 2020-02-25
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Kim, Changhoon
  • Lee, Jeongkeun
  • Bhide, Parag
  • Thomas, Jithin
  • Li, Xiaozhou
  • Nikolaidis, Georgios

Abstract

Some embodiments of the invention provide a path-and-latency tracking (PLT) method. At a forwarding element, this method in some embodiments detects the path traversed by a data message through a set of forwarding elements, and the latency that the data message experiences at each of the forwarding elements in the path. In some embodiments, the method has a forwarding element in the path insert its forwarding element identifier and path latency in a header of the data message that it forwards. The method of some embodiments also uses fast PLT operators in the data plane of the forwarding elements to detect new data message flows, to gather PLT data from these data message flows, and to detect path or latency changes for previously detected data message flows. In some embodiments, the method then uses control plane processes (e.g., of the forwarding elements or other devices) to collect and analyze the PLT data gathered in the data plane from new or existing flows.

IPC Classes  ?

  • H04L 12/801 - Flow control or congestion control
  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 29/12 - Arrangements, apparatus, circuits or systems, not covered by a single one of groups characterised by the data terminal

84.

FORWARDING ELEMENT DATA PLANE WITH COMPUTING PARAMETER DISTRIBUTOR

      
Application Number US2019021429
Publication Number 2020/036633
Status In Force
Filing Date 2019-03-08
Publication Date 2020-02-20
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor
  • Javadi, Masoud, Moshref
  • Kim, Changhoon
  • Bosshart, Patrick, W.
  • Agrawal, Anurag

Abstract

Some embodiments provide a network forwarding element with a data-plane forwarding circuit that has a parameter collecting circuit to store and distribute parameter values computed by several machines in a network. In some embodiments, the machines perform distributed computing operations, and the parameter values that compute are parameter values associated with the distributed computing operations. The parameter collecting circuit of the data-plane forwarding circuit (data plane) in some embodiments (1) stores a set of parameter values computed and sent by a first set of machines, and (2) distributes the collected parameter values to a second set of machines once it has collected the set of parameter values from all the machines in the first set. The first and second sets of machines are the same set of machines in some embodiments, while they are different sets of machines (e.g., one set has at least one machine that is not in the other set) in other embodiments. In some embodiments, the parameter collecting circuit performs computations on the parameter values that it collects and distributes the result of the computations once it has processed all the parameter values distributed by the first set of machines. The computations are aggregating operations (e.g., adding, averaging, etc.) that combine corresponding subset of parameter values distributed by the first set of machines.

IPC Classes  ?

  • G06F 15/16 - Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
  • H04L 12/28 - Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
  • H04L 29/08 - Transmission control procedure, e.g. data link level control procedure

85.

Forwarding element data plane with computing parameter distributor

      
Application Number 16147750
Grant Number 10721188
Status In Force
Filing Date 2018-09-30
First Publication Date 2020-02-13
Grant Date 2020-07-21
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Javadi, Masoud Moshref
  • Kim, Changhoon
  • Bosshart, Patrick W.
  • Agrawal, Anurag

Abstract

Some embodiments provide a network forwarding element with a data-plane forwarding circuit that has a parameter collecting circuit to store and distribute parameter values computed by several machines in a network. In some embodiments, the machines perform distributed computing operations, and the parameter values that compute are parameter values associated with the distributed computing operations. The parameter collecting circuit of the data-plane forwarding circuit (data plane) in some embodiments (1) stores a set of parameter values computed and sent by a first set of machines, and (2) distributes the collected parameter values to a second set of machines once it has collected the set of parameter values from all the machines in the first set. The first and second sets of machines are the same set of machines in some embodiments, while they are different sets of machines (e.g., one set has at least one machine that is not in the other set) in other embodiments. In some embodiments, the parameter collecting circuit performs computations on the parameter values that it collects and distributes the result of the computations once it has processed all the parameter values distributed by the first set of machines. The computations are aggregating operations (e.g., adding, averaging, etc.) that combine corresponding subset of parameter values distributed by the first set of machines.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
  • G06N 3/08 - Learning methods

86.

Forwarding element data plane with computing parameter distributor

      
Application Number 16147754
Grant Number 10771401
Status In Force
Filing Date 2018-09-30
First Publication Date 2020-02-13
Grant Date 2020-09-08
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Javadi, Masoud Moshref
  • Kim, Changhoon
  • Bosshart, Patrick W.
  • Agrawal, Anurag

Abstract

Some embodiments provide a network forwarding element with a data-plane forwarding circuit that has a parameter collecting circuit to store and distribute parameter values computed by several machines in a network. In some embodiments, the machines perform distributed computing operations, and the parameter values that compute are parameter values associated with the distributed computing operations. The parameter collecting circuit of the data-plane forwarding circuit (data plane) in some embodiments (1) stores a set of parameter values computed and sent by a first set of machines, and (2) distributes the collected parameter values to a second set of machines once it has collected the set of parameter values from all the machines in the first set. The first and second sets of machines are the same set of machines in some embodiments, while they are different sets of machines (e.g., one set has at least one machine that is not in the other set) in other embodiments. In some embodiments, the parameter collecting circuit performs computations on the parameter values that it collects and distributes the result of the computations once it has processed all the parameter values distributed by the first set of machines. The computations are aggregating operations (e.g., adding, averaging, etc.) that combine corresponding subset of parameter values distributed by the first set of machines.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
  • G06N 3/08 - Learning methods

87.

Forwarding element data plane performing floating point computations

      
Application Number 16147755
Grant Number 10986042
Status In Force
Filing Date 2018-09-30
First Publication Date 2020-02-13
Grant Date 2021-04-20
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Javadi, Masoud Moshref
  • Kim, Changhoon
  • Bosshart, Patrick W.
  • Agrawal, Anurag

Abstract

Some embodiments provide a network forwarding element with a data-plane forwarding circuit that has a parameter collecting circuit to store and distribute parameter values computed by several machines in a network. In some embodiments, the machines perform distributed computing operations, and the parameter values that compute are parameter values associated with the distributed computing operations. The parameter collecting circuit of the data-plane forwarding circuit (data plane) in some embodiments (1) stores a set of parameter values computed and sent by a first set of machines, and (2) distributes the collected parameter values to a second set of machines once it has collected the set of parameter values from all the machines in the first set. The first and second sets of machines are the same set of machines in some embodiments, while they are different sets of machines (e.g., one set has at least one machine that is not in the other set) in other embodiments. In some embodiments, the parameter collecting circuit performs computations on the parameter values that it collects and distributes the result of the computations once it has processed all the parameter values distributed by the first set of machines. The computations are aggregating operations (e.g., adding, averaging, etc.) that combine corresponding subset of parameter values distributed by the first set of machines.

IPC Classes  ?

  • H04L 12/935 - Switch interfaces, e.g. port details
  • G06F 9/455 - EmulationInterpretationSoftware simulation, e.g. virtualisation or emulation of application or operating system execution engines
  • G06N 3/08 - Learning methods

88.

Flow control visibility

      
Application Number 16108661
Grant Number 10873532
Status In Force
Filing Date 2018-08-22
First Publication Date 2020-02-06
Grant Date 2020-12-22
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Chang, Remy
  • Agrawal, Anurag
  • Li, Yi
  • Feng, Michael
  • Wang, Yan

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.

IPC Classes  ?

  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/841 - Flow control actions using time consideration, e.g. round trip time [RTT]
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling
  • H04L 12/741 - Header address processing for routing, e.g. table lookup

89.

FLOW CONTROL VISIBILITY

      
Application Number US2019021459
Publication Number 2020/027878
Status In Force
Filing Date 2019-03-08
Publication Date 2020-02-06
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor
  • Chang, Remy
  • Agrawal, Anurag
  • Li, Yi
  • Feng, Michael
  • Wang, Yan

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.

IPC Classes  ?

  • H04L 12/40 - Bus networks
  • H04L 12/54 - Store-and-forward switching systems
  • H04L 12/28 - Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

90.

Transmission of traffic management data to processing pipeline

      
Application Number 15835249
Grant Number 10523578
Status In Force
Filing Date 2017-12-07
First Publication Date 2019-12-31
Grant Date 2019-12-31
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Yi
  • Feng, Michael
  • Agrawal, Anurag
  • Lee, Jeongkeun
  • Kim, Changhoon
  • Chang, Remy

Abstract

Some embodiments provide a method for a traffic management unit of a network forwarding integrated circuit (IC). The traffic management unit includes multiple queues for storing packets. Each stored packet is (i) received by the traffic management unit from one of multiple ingress packet processing pipelines and (ii) for processing by an egress packet processing pipeline after being released from the queue storing the packet. The method determines that a particular one of the queues has crossed a threshold amount of stored packet data. The method provides queue state data including an identifier of the particular queue and a current amount of data stored in the particular queue to at least a subset of the multiple ingress pipelines. The ingress pipelines use the provided data to process subsequent packets.

IPC Classes  ?

  • H04L 12/863 - Queue scheduling, e.g. Round Robin
  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/933 - Switch core, e.g. crossbar, shared memory or shared medium

91.

Network forwarding element with data plane packet snapshotting capabilities

      
Application Number 15682332
Grant Number 10511523
Status In Force
Filing Date 2017-08-21
First Publication Date 2019-12-17
Grant Date 2019-12-17
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Bosshart, Patrick
  • Ferrara, Michael G.
  • Peterson, Jay E. S.

Abstract

A forwarding element includes data plane forwarding circuitry for forwarding data messages received by the forwarding element to other network elements in a network. The data-plane forwarding circuitry includes several snapshot-match circuitry units. Each snapshot-match circuitry unit compares a set of header fields of incoming data messages with a corresponding matching data. The data-plane forwarding circuitry also includes several snapshot-capture circuitry units. Each snapshot-capture circuitry units stores a set of header fields of data messages that matches a corresponding matching data.

IPC Classes  ?

  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/935 - Switch interfaces, e.g. port details
  • G06F 9/448 - Execution paradigms, e.g. implementations of programming paradigms

92.

Bus for providing traffic management statistics to processing pipeline

      
Application Number 15835250
Grant Number 10505861
Status In Force
Filing Date 2017-12-07
First Publication Date 2019-12-10
Grant Date 2019-12-10
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Li, Yi
  • Feng, Michael
  • Agrawal, Anurag
  • Kim, Changhoon
  • Chang, Remy

Abstract

Some embodiments provide a network forwarding integrated circuit (IC) including multiple configurable ingress pipelines, multiple configurable egress pipelines, a traffic management unit, and a statistics bus. The configurable ingress pipelines are for processing packets received from ports of the network forwarding IC. The configurable egress pipelines are for processing packets to be transmitted out the ports of the network forwarding IC. The traffic management unit includes multiple queues, each of which corresponds to one of the egress pipelines, and is for receiving a packet from an ingress pipeline and enqueuing the packet into one of the queues. The statistics bus connects the traffic management unit to at least a subset of the ingress pipelines, and is for providing the ingress pipelines with state information regarding the queues.

IPC Classes  ?

  • H04L 12/863 - Queue scheduling, e.g. Round Robin
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 12/18 - Arrangements for providing special services to substations for broadcast or conference
  • H04L 12/933 - Switch core, e.g. crossbar, shared memory or shared medium

93.

DATA PLANE WITH HEAVY HITTER DETECTOR

      
Application Number US2019021456
Publication Number 2019/226215
Status In Force
Filing Date 2019-03-08
Publication Date 2019-11-28
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor
  • Nikolaidis, Georgios
  • Lee, Jeongkeun
  • Kim, Changhoon

Abstract

Some embodiments of the invention provide a data-plane forwarding circuit (data plane) that can be configured to identify large data message flows that it processes for forwarding in a network. In this document, large data message flows are referred to as heavy hitter flows. To perform its forwarding operations, the data plane includes several data message processing stages that are configured to process the data tuples associated with the data messages received by the data plane. In some embodiments, parts of the data plane message-processing stages are also configured to implement a heavy hitter detection (HHD) circuit. The operations of the data plane's message processing stages are configured by a control plane of the data plane's forwarding element in some embodiments.

IPC Classes  ?

  • H04L 29/06 - Communication control; Communication processing characterised by a protocol
  • H04L 12/02 - Data switching networks Details

94.

FORWARDING ELEMENT DATA PLANE WITH FLOW SIZE DETECTOR

      
Application Number US2019021467
Publication Number 2019/226216
Status In Force
Filing Date 2019-03-08
Publication Date 2019-11-28
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor
  • Nikolaidis, Georgios
  • Lee, Jeongkeun
  • Javadi, Masoud, Moshref

Abstract

Some embodiments of the invention provide a data-plane forwarding circuit (data plane) that has a flow-size detection circuit that generates flow-size density distribution for all or some of the data message flows that it processes for forwarding in a network. The flow-size (FS) detection circuit in some embodiments generates statistical values regarding the processed data message flows, and based on these statistical values, it generates a FS density distribution that expresses a number of flows in different flow-size sub-ranges in a range of flow sizes. In some embodiments, the density distribution is a probabilistic density distribution that is based on probabilistic statistical values that the flow-size detection circuit generates for the data message flows that are processed for forwarding within the network. The FS detection circuit in some embodiments generates probabilistic statistical values for the data message flows by generating hash values from header values of the data message flows and accumulating flow-size values at memory locations identified by the generated hash values. In some embodiments, the generated hashes for different data message flows can collide, which results in the accumulated flow-size values being probabilistic values that might have a certain level of inaccuracy.

IPC Classes  ?

  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/801 - Flow control or congestion control
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/947 - Address processing within a device, e.g. using internal ID or tags for routing within a switch
  • H04L 29/08 - Transmission control procedure, e.g. data link level control procedure

95.

Data plane with heavy hitter detector

      
Application Number 16051405
Grant Number 10931547
Status In Force
Filing Date 2018-07-31
First Publication Date 2019-11-21
Grant Date 2021-02-23
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Nikolaidis, Georgios
  • Lee, Jeongkeun
  • Kim, Changhoon

Abstract

Some embodiments of the invention provide a data-plane forwarding circuit (data plane) that can be configured to identify large data message flows that it processes for forwarding in a network. In this document, large data message flows are referred to as heavy hitter flows. To perform its forwarding operations, the data plane includes several data message processing stages that are configured to process the data tuples associated with the data messages received by the data plane. In some embodiments, parts of the data plane message-processing stages are also configured to implement a heavy hitter detection (HHD) circuit. The operations of the data plane's message processing stages are configured by a control plane of the data plane's forwarding element in some embodiments.

IPC Classes  ?

  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/823 - Packet dropping
  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 12/761 - Broadcast or multicast routing
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 12/715 - Hierarchical routing, e.g. clustered networks or inter-domain routing
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/801 - Flow control or congestion control
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling

96.

Forwarding element data plane with flow size detector

      
Application Number 16051399
Grant Number 10686679
Status In Force
Filing Date 2018-07-31
First Publication Date 2019-11-21
Grant Date 2020-06-16
Owner Barefoot Networks, Inc. (USA)
Inventor
  • Nikolaidis, Georgios
  • Lee, Jeongkeun
  • Javadi, Masoud Moshref

Abstract

Some embodiments of the invention provide a data-plane forwarding circuit (data plane) that has a flow-size detection circuit that generates flow-size density distribution for all or some of the data message flows that it processes for forwarding in a network. The flow-size (FS) detection circuit in some embodiments generates statistical values regarding the processed data message flows, and based on these statistical values, it generates a FS density distribution that expresses a number of flows in different flow-size sub-ranges in a range of flow sizes. In some embodiments, the density distribution is a probabilistic density distribution that is based on probabilistic statistical values that the flow-size detection circuit generates for the data message flows that are processed for forwarding within the network. The FS detection circuit in some embodiments generates probabilistic statistical values for the data message flows by generating hash values from header values of the data message flows and accumulating flow-size values at memory locations identified by the generated hash values. In some embodiments, the generated hashes for different data message flows can collide, which results in the accumulated flow-size values being probabilistic values that might have a certain level of inaccuracy.

IPC Classes  ?

  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 12/823 - Packet dropping
  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 12/761 - Broadcast or multicast routing
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing
  • H04L 12/715 - Hierarchical routing, e.g. clustered networks or inter-domain routing
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/801 - Flow control or congestion control
  • H04L 12/851 - Traffic type related actions, e.g. QoS or priority
  • H04L 12/935 - Switch interfaces, e.g. port details
  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling

97.

Pipeline chaining

      
Application Number 15838697
Grant Number 10454833
Status In Force
Filing Date 2017-12-12
First Publication Date 2019-10-22
Grant Date 2019-10-22
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor
  • Bosshart, Patrick
  • Peterson, Jay Evan Scott
  • Ferrara, Michael Gregory
  • Chang, Remy

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.

IPC Classes  ?

  • H04L 12/801 - Flow control or congestion control
  • G06Q 40/04 - Trading Exchange, e.g. stocks, commodities, derivatives or currency exchange
  • H04L 12/761 - Broadcast or multicast routing

98.

Path and latency tracking

      
Application Number 15600751
Grant Number 10447597
Status In Force
Filing Date 2017-05-21
First Publication Date 2019-10-15
Grant Date 2019-10-15
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor
  • Kim, Changhoon
  • Lee, Jeongkeun
  • Bhide, Parag
  • Thomas, Jithin
  • Li, Xiaozhou
  • Nikolaidis, Georgios

Abstract

Some embodiments of the invention provide a path-and-latency tracking (PLT) method. At a forwarding element, this method in some embodiments detects the path traversed by a data message through a set of forwarding elements, and the latency that the data message experiences at each of the forwarding elements in the path. In some embodiments, the method has a forwarding element in the path insert its forwarding element identifier and path latency in a header of the data message that it forwards. The method of some embodiments also uses fast PLT operators in the data plane of the forwarding elements to detect new data message flows, to gather PLT data from these data message flows, and to detect path or latency changes for previously detected data message flows. In some embodiments, the method then uses control plane processes (e.g., of the forwarding elements or other devices) to collect and analyze the PLT data gathered in the data plane from new or existing flows.

IPC Classes  ?

  • H04L 12/801 - Flow control or congestion control
  • H04L 12/24 - Arrangements for maintenance or administration
  • H04L 12/26 - Monitoring arrangements; Testing arrangements
  • H04L 29/12 - Arrangements, apparatus, circuits or systems, not covered by a single one of groups characterised by the data terminal

99.

Packet header field extraction

      
Application Number 15729555
Grant Number 10432527
Status In Force
Filing Date 2017-10-10
First Publication Date 2019-10-01
Grant Date 2019-10-01
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor Bosshart, Patrick

Abstract

Some embodiments provide a method for processing a packet for a pipeline of a hardware switch. The pipeline, in some embodiments, includes several different stages that match against packet header fields and modify packet header fields. The method receives a packet that includes a set of packet headers. The method then populates, for each packet header in the set of packet headers, (i) a first set of registers with packet header field values of the packet header that are used in the pipeline, and (ii) a second set of registers with packet header field values of the packet header that are not used in the pipeline.

IPC Classes  ?

  • H04L 12/741 - Header address processing for routing, e.g. table lookup
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/721 - Routing procedures, e.g. shortest path routing, source routing, link state routing or distance vector routing

100.

Mechanism for communicating to remote control plane from forwarding element

      
Application Number 15784190
Grant Number 10419366
Status In Force
Filing Date 2017-10-16
First Publication Date 2019-09-17
Grant Date 2019-09-17
Owner BAREFOOT NETWORKS, INC. (USA)
Inventor
  • Kim, Changhoon
  • Li, Xiaozhou
  • Agrawal, Anurag
  • Zhu, Julianne

Abstract

Some embodiments of the invention provide a forwarding element that can be configured through in-band data-plane messages from a remote controller that is a physically separate machine from the forwarding element. The forwarding element of some embodiments has data plane circuits that include several configurable message-processing stages, several storage queues, and a data-plane configurator. A set of one or more message-processing stages of the data plane are configured (1) to process configuration messages received by the data plane from the remote controller and (2) to store the configuration messages in a set of one or more storage queues. The data-plane configurator receives the configuration messages stored in the set of storage queues and configures one or more of the configurable message-processing stages based on configuration data in the configuration messages.

IPC Classes  ?

  • H04L 12/861 - Packet buffering or queuing arrangements; Queue scheduling
  • H03M 13/09 - Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
  • H04L 12/743 - Header address processing for routing, e.g. table lookup using hashing techniques
  • H04L 12/24 - Arrangements for maintenance or administration
  1     2        Next Page