Configuring a switch for extracting packet header fields

US9826071B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9826071-B2
Application numberUS-201514836855-A
CountryUS
Kind codeB2
Filing dateAug 26, 2015
Priority dateAug 26, 2015
Publication dateNov 21, 2017
Grant dateNov 21, 2017

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.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for generating configuration data for configuring a hardware switch, the method comprising: receiving a description of functionality for the hardware switch; based on the description, generating sets of match and action entries for use in configuring the hardware switch to process packets through a plurality of stages that match against packet header fields and modify packet header fields; determining, 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 by at least one match entry or modified by at least one action entry; and generating configuration data for the parser of the hardware switch, wherein the configuration data instructs the parser (i) to extract packet header fields used by at least one match entry or modified by at least one action entry to a first set of registers and (ii) to extract packet header fields not used by any match or action entries to a second set of registers. 2. The method of claim 1 , wherein the description of functionality for the hardware switch comprises program code describing the switch functionality. 3. The method of claim 2 , wherein the program code is written in P4 switch description language. 4. The method of claim 1 , wherein generating sets of match and action entries comprises generating a table flow graph that specifies the match and action entries of match and action tables to be implemented by the switch. 5. The method of claim 1 , wherein the parse graph comprises a plurality of nodes each of which represents a packet header and a plurality of directed edges connecting the nodes. 6. The method of claim 5 , wherein an edge from a first node to a second node specifies that a particular header field value of the packet header represented by the first node identifies a next packet header represented by the second node. 7. The method of claim 5 , wherein each node in the parse graph specifies a format of the packet header fields of the packet header represented by the node. 8. The method of claim 5 , wherein each edge of the parse graph is represented in the configuration data by a match entry. 9. The method of claim 8 , wherein each match entry is implemented in a TCAM in the parser of the hardware switch. 10. The method of claim 1 , wherein the first set of registers is sent to a match-action unit (MAU) of the hardware switch that implements the plurality of stages, while the second set of registers is sent directly to a deparser of the hardware switch without being processed by the MAU of the hardware switch. 11. The method of claim 10 further comprising generating configuration data for the MAU of the hardware switch. 12. The method of claim 10 , wherein each stage of the MAU comprises a set of match tables against which values of at least a subset of the packet header fields stored in the first set of registers are matched. 13. The method of claim 12 , wherein each of the MAU stages further comprises a set of action entries and an action engine for performing a set of actions specified by an action entry that corresponds to a match entry of the set of match tables of the stage that is matched by the subset of packet header field values. 14. A non-transitory machine readable medium storing a program executable by one or more processing units, the program for generating configuration data that configures a hardware switch, the program comprising sets of instructions for: receiving a description of functionality for the hardware switch; based on the description, generating sets of match and action entries for use in configuring the hardware switch to process packets through a plurality of stages that match against packet header fields and modify packet header fields; determining, 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 by at least one match entry or modified by at least one action entry; and generating configuration data for the parser of the hardware switch, wherein the configuration data instructs the parser (i) to extract packet header fields used by at least one match entry or modified by at least one action entry to a first set of registers and (ii) to extract packet header fields not used or modified by any match or action entries to a second set of registers. 15. The machine readable medium of claim 14 , wherein the description of functionality for the hardware switch comprises program codes that describe the switch functionality. 16. The machine readable medium of claim 15 , wherein the program codes are written in P4 switch description language. 17. The machine readable medium of claim 14 , wherein the set of instructions for generating sets of match and action entries comprises a set of instructions for generating a table flow graph that specifies the match and action entries of match and action tables to be implemented by the switch. 18. The machine readable medium of claim 14 , wherein the parse graph comprises a plurality of nodes each of which represents a packet header and a plurality of directed edges connecting the nodes. 19. The machine readable medium of claim 18 , wherein an edge from a first node to a second node specifies that a particular header field value of the packet header represented by the first node identifies a next packet header represented by the second node. 20. The machine readable medium of claim 19 , wherein each node in the parse graph specifies a format of the packet header fields of the packet header represented by the node and each edge of the parse graph is represented in the configuration data by a match entry.

Assignees

Inventors

Classifications

  • H04L69/22Primary

    Parsing or analysis of headers · CPC title

  • Header conversion, routing tables or routing tags · CPC title

  • Address table lookup; Address filtering · 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 US9826071B2 cover?
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 instruct…
Who is the assignee on this patent?
Barefoot Networks Inc
What technology area does this patent fall under?
Primary CPC classification H04L69/22. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 21 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).