IP Library Granted Patent US 11,102,090
Granted Patent B2
US 11,102,090 · App. 16/870,785 · Granted Aug 24, 2021

Forwarding element data plane with flow size detector

Inventors: Georgios Nikolaidis (Mountain View, CA); Jeongkeun Lee (Mountain View, CA); Masoud Moshref Javadi (Sunnyvale, CA)
Assignee: Barefoot Networks, Inc.
H04L43/026H04L41/142H04L43/16H04L45/16H04L45/38H04L45/64H04L45/7453H04L47/11H04L47/12H04L47/2441H04L47/2483H04L47/32H04L49/3009H04L49/90
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,102,090
App. No.
16/870,785
Granted
Aug 24, 2021
Kind
B2
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.

Claims (37)

1. An apparatus comprising:

a plurality of programmable stages, wherein at least one programmable stage comprises circuitry and wherein the at least one programmable stage is to (a) perform message forwarding operations for received messages in order to forward received messages and (b) generate a first flow-size data that expresses numbers of flows in different flow-size sub-ranges during a first time period and generate a second flow-size data that expresses numbers of flows in different flow-size sub-ranges during a second time period.

2. The apparatus of claim 1 , comprising:

a data-plane circuit, wherein the data-plane circuit comprises the plurality of programmable stages.

3. The apparatus of claim 1 , wherein the plurality of programmable stages comprise:

a first set of one or more programmable stages programmed to perform the message forwarding operations on the received messages, and

a second set of one or more programmable stages programmed to generate the first and second flow-size data.

4. The apparatus of claim 1 , wherein the first flow-size data is defined over a programmable period of time and the second flow-size data is defined over a programmable period of time.

5. The apparatus of claim 1 , comprising circuitry to send the first and second flow-size data to another machine.

6. The apparatus of claim 1 , comprising:

a data-plane circuit, wherein the data-plane circuit comprises the plurality of programmable stages and

a control plane circuit to program the plurality of programmable stages, wherein the data-plane circuit is to send the first and second flow-size data to the control plane circuit.

7. The apparatus of claim 6 , wherein

the data-plane circuit further comprises a control plane interface through which the control plane circuit is to retrieve the first and second flow-size data.

8. The apparatus of claim 1 , wherein the at least one programmable stage is to perform packet processing.

9. The apparatus of claim 1 , wherein the first flow-size data comprises numbers of messages in multiple flows during the first time period and wherein the second flow-size data comprises numbers of messages in multiple flows during the second time period.

10. A method comprising:

at a network forwarding element:

performing message forwarding operations for received messages in order to forward the messages;

generating a first flow-size data that expresses numbers of flows in different flow-size sub-ranges during a first time period; and

generating a second flow-size data that expresses numbers of flows in different flow-size sub-ranges during a second time period.

11. The method of claim 10 , wherein performing, generating the first flow-size data, and generating the second flow-size data occur within a data-plane circuit of the network forwarding element.

12. The method of claim 10 , wherein the network forwarding element comprises:

a first set of one or more programmable packet processing stages programmed to perform the message forwarding operations on the received messages, and

a second set of one or more programmable packet processing stages programmed to generate the first and second flow-size data.

13. The method of claim 10 , wherein the first flow-size data is defined over a programmable period of time and the second flow-size data is defined over a programmable period of time.

14. The method of claim 10 , comprising sending the first and second flow-size data to another machine.

15. The method of claim 10 , comprising sending the first and second flow-size data to a control plane circuit.

16. At least one non-transitory computer-readable medium comprising instructions stored thereon, that if executed by one or more data processing stages of a network device, cause the one or more data processing stages to:

perform message forwarding operations for received messages in order to forward the received messages;

generate a first flow-size data that expresses numbers of flows in different flow-size sub-ranges; and

generate a second flow-size data that expresses numbers of flows in different flow-size sub-ranges during a second time period.

17. The at least one non-transitory computer-readable medium of claim 16 , wherein the first flow-size data is defined over a programmable period of time and the second flow-size data is defined over a programmable period of time.

18. The at least one non-transitory computer-readable medium of claim 16 , comprising instructions stored thereon, that if executed by one or more data processing stages of a network device, cause the one or more data processing stages to:

send the first and second flow-size data to another machine.

19. The at least one non-transitory computer-readable medium of claim 16 , comprising instructions stored thereon, that if executed by one or more processors of the network device, cause the one or more data processing stages to:

send the first and second flow-size data to a control plane circuit.

Continuity (4)
Continuation 16051399 · Jul 31, 2018
Provisional Application 62690954 · Jun 28, 2018
Provisional Application 62674596 · May 21, 2018
Related Publication 20200344138A1 · Oct 29, 2020