US2020136974A1PendingUtilityA1

Forwarding element with a data plane load balancer

Assignee: BAREFOOT NETWORKS INCPriority: May 1, 2017Filed: Dec 30, 2019Published: Apr 30, 2020
Est. expiryMay 1, 2037(~10.7 yrs left)· nominal 20-yr term from priority
H04L 47/125H04L 65/1069H04L 67/1002H04L 67/1001
60
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Some embodiments of the invention provide a forwarding element that has a data-plane circuit (data plane) that can be configured to implement one or more load balancers. 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. However, in some embodiments, the configurable data processing circuits of the data plane can also be configured to implement a load balancer in the data plane that forwards message flows to different nodes of a node group. This load balancer includes a set of one or more storages to store several address mapping sets with each address mapping set corresponding to a different set of nodes in the node group. It also includes a destination selector that receives a set identifier for each message flow, and selects a node for the message flow from the mapping set identified by the set identifier received for the message flow.

Claims

exact text as granted — not AI-modified
1 . A network element comprising:
 interface circuitry to a control-plane circuit and   a data-plane circuit comprising configurable data processing circuits configured to process data tuples associated with data messages and configured to implement one or more load balancers in the data plane.   
     
     
         2 . The network element of  claim 1 , comprising:
 a control-plane circuit coupled to the interface circuitry, the control-plane circuit to configure the configurable data processing circuits.   
     
     
         3 . The network element of  claim 1 , wherein a remote controller is to configure the data processing circuits. 
     
     
         4 . The network element of  claim 1 , wherein the data-plane circuit comprises:
 at least one storage to store a plurality of different address mapping sets with each address mapping set corresponding to a different set of nodes in a node group and   a destination selector to receive a set identifier for a message flow and to select a node for the message flow from the mapping set identified by the set identifier received for the message flow.   
     
     
         5 . The network element of  claim 4 , wherein the data-plane circuit comprises:
 a set ID allocator to assign (1) a first set identifier for a message flow processed during a first sub-interval of an update interval when the node group is being modified, and (2) first and second set identifiers for a message flow processed during a second sub-interval of the update interval when the node group is being modified and   a cache stage that during the first sub-interval is to store values that identify the message flows processed during the first sub-interval, and during the second sub-interval assign the first set identifier to each message flow when the cache stage stores a value that identifies the message flow as being processed during the first sub-interval, and assign the second set identifier to each message flow when the cache stages does not store such a value for the message flow.   
     
     
         6 . The network element of  claim 1 , wherein the data-plane circuit comprises:
 a plurality of data processing circuits configured to process data tuples associated with data messages received by the forwarding element in order to forward the data messages within a network, and   a plurality of data processing circuits configured to implement the destination selector and set ID allocator of the load balancer.   
     
     
         7 . The network element of  claim 5 , wherein the second sub-interval is an integer multiple of the first sub-interval. 
     
     
         8 . The network element of  claim 5 , wherein
 the second sub-interval is larger than an expected duration for the control-plane circuit to store in a connection storage the set identifiers that are stored in preceding first sub-interval in a cache storage.   
     
     
         9 . The network element of  claim 1 , wherein the configurable data processing circuits are configured to provide:
 a connection storage to store for each of a plurality previously processed message flows, a message flow identifier and a set identifier and   a plurality of configurable data processing circuits in a plurality of data processing stages.   
     
     
         10 . The network element of  claim 1 , wherein the configurable data processing circuits are configured to provide:
 a connection storage stage to store for each of a plurality previously processed message flows, a message flow identifier and a set identifier,   wherein for a received message, the connection storage stage is to (1) determine whether it stores a set identifier for the received message's flow identifier, (2) if so, output the stored set identifier for a destination selector to use, and (3) if not, direct a set ID allocator to output a set identifier for the destination selector to use.   
     
     
         11 . The network element of  claim 1 , wherein the configurable data processing circuits comprise stateful arithmetic logic units at least one of which is configured to implement a cache stage. 
     
     
         12 . The network element of  claim 1 , comprising a forwarding element coupled to a network. 
     
     
         13 . A method comprising:
 configuring data processing circuits to process data tuples associated with data messages and configured to implement one or more load balancers in a data plane.   
     
     
         14 . The method of  claim 11 , comprising:
 configuring the configurable data processing circuits using a control-plane circuit.   
     
     
         15 . The method of  claim 11 , comprising:
 configuring the configurable data processing circuits using a remote controller.

Join the waitlist — get patent alerts

Track US2020136974A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.