Data plane with flow learning circuit

US10873534B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10873534-B1
Application numberUS-201815927723-A
CountryUS
Kind codeB1
Filing dateMar 21, 2018
Priority dateMar 21, 2017
Publication dateDec 22, 2020
Grant dateDec 22, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

The invention claimed is: 1. A network forwarding element comprising a data-plane forwarding circuit comprising: a plurality of programmable message processing stages, wherein at least one of the programmable message processing stages is to implement a flow-learning circuit and at least one of the programmable message processing stages is programmed to perform data message forwarding operations in order to forward data messages and wherein to implement the flow-learning circuit, the at least one of the programmable message processing stages is to collect metadata regarding a received flow before a control-plane has requested collection of metadata for the received flow and prior to passing attributes about the received flow to the control-plane in order to cause the control-plane to configure the flow-learning circuit to store or not store metadata about the flow. 2. The network forwarding element of claim 1 , wherein the control-plane is to operate on a remote server. 3. The network forwarding element of claim 1 , comprising the control-plane coupled to the data-plane forwarding circuit. 4. The network forwarding element of claim 1 , wherein the flow-learning circuit is to learn about message flows without previously having been configured with identifiers of the message flows. 5. The network forwarding element of claim 1 , wherein the metadata comprises one or more of: message header values, media access control (MAC), five tuple identifiers, message payload values, counters, flags, average delay experienced by the messages, average queue depth experienced by the messages, byte count of the message payloads, or average byte count of the message payloads. 6. The network forwarding element of claim 1 , wherein the metadata includes values extracted from data message header values, the header values including at least one of layer 2 header values, layer 3 header values, and layer 4 header values. 7. The data-plane forwarding circuit of claim 1 , wherein the metadata includes statistics regarding the message flows processed by the data-plane forwarding circuit. 8. The network forwarding element of claim 1 , wherein the data-plane forwarding circuit is to receive a configuration from the control-plane to not store metadata about the flow that comprises an indication to filter the flow from metadata storage. 9. The network forwarding element of claim 1 , wherein the flow comprises one or more of: a flow associated with a tenant in a multi-tenant datacenter, a flow with a virtual network identifier in its headers, a flow from a source machine, a flows to a destination machine, a flow that uses a particular layer port, or a flow using particular protocols. 10. The network forwarding element of claim 1 , wherein the network forwarding element comprises a network interface card, switch, or a router. 11. The network forwarding element of claim 1 , comprising a storage to store a flow identifier for a flow, wherein: when the storage stores the flow identifier of a received message, the storage is to output a map-storage identifier to identify a location in a mapping storage that stores a metadata storage identifier for the message's flow and the metadata storage identifier is retrieved from the mapping storage in order to store metadata; and when the storage does not store the flow identifier of the received message, the flow identifier is stored in the storage, a map-storage identifier is output from the storage, a metadata-storage identifier for the message's flow is generated, the metadata storage identifier is stored in the mapping storage at a location specified by the map-storage identifier. 12. The network forwarding element of claim 11 , wherein the data-plane forwarding circuit comprises a plurality of stateful processing units, the stateful processing units comprise a plurality of stateful storages, and the mapping storage and the storage are implemented by a plurality of stateful processing units and their associated stateful storages. 13. A computer-implemented method comprising: using a set of programmable message processing stages to implement flow-learning circuit to learn about received messages in a flow by: collecting metadata regarding a flow and storing metadata regarding the flow prior to configuration by a control-plane to store metadata associated with the flow and not storing metadata regarding the flow based on the control-plane indicating to not store metadata for the flow; and using a set of programmable message processing stages to perform data message forwarding operations to forward received messages. 14. The method of claim 13 , wherein the flow-learning circuit learns about message flows without previously having been configured with identifiers of the message flows. 15. The method of claim 13 , wherein the metadata comprises one or more of: message header values, media access control (MAC), five tuple identifiers, message payload values, counters, flags, average delay experienced by the messages, average queue depth experienced by the messages, byte count of the message payloads, or average byte count of the message payloads. 16. The method of claim 13 , wherein the metadata comprises one or more of: includes extracted from data message header values, the header values including at least one of layer 2 header values, layer 3 header values, and layer 4 header values. 17. The method of claim 13 , wherein the metadata includes statistics regarding the message flows processed by a data-plane forwarding circuit. 18. The method of claim 13 , comprising receiving a configuration from the control-plane to not store metadata about the flow that comprises an indication to filter the flow from metadata storage. 19. The method of claim 13 , wherein the flow comprises one or more of: a flow associated with a tenant in a multi-tenant datacenter, a flow with a virtual network identifier in its headers, a flow from a source machine, a flows to a destination machine, a flow that uses a particular layer port, or a flow using particular protocols. 20. The method of claim 13 , comprising: based on storage of a flow identifier of the received message, outputting a map-storage identifier that identifies a location in the mapping storage that stores a metadata storage identifier for the message's flow and using the metadata storage identifier in order to store metadata and based on non-storage of the flow identifier of the received message, storing the flow identifier, outputting a map-storage identifier, generating a metadata-storage identifier for the message's flow, and storing the metadata storage identifier at a location specified by the map-storage identifier. 21. A non-transitory computer-readable medium comprising instructions stored thereon, that if executed by one or more processors, cause the one or more processors to: use a set of message processing stages perform a flow-learning that is to: collect metadata regarding a received flow before a control-plane has requested collection of metadata for the received flow and prior to passing attributes about the received flow to the control-plane in order to cause the control-plane to control whether to store or not store metadata about the flow. 22. The computer-readable medium of claim 21 , comprising instructions stored thereon, that if executed by one or more processors, cause the one or more processors to: learn about message flows without previously having been configured with identifiers of the m

Assignees

Inventors

Classifications

  • Storing data temporarily at an intermediate stage, e.g. caching · CPC title

  • comprising specially adapted graphical user interfaces [GUI] · CPC title

  • Learning-based routing, e.g. using neural networks or artificial intelligence · CPC title

  • involving identification of individual flows · CPC title

  • H04L45/38Primary

    Flow based routing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10873534B1 cover?
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 pr…
Who is the assignee on this patent?
Barefoot Networks Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/2483. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 22 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).