Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method for processing a packet for a pipeline of a hardware switch, the pipeline comprising a plurality of stages that match against packet header fields and modify packet header fields, the method comprising: receiving a packet comprising a set of packet headers; for each packet header in the set of packet headers: populating a first set of registers with packet header field values of the packet header that are used in the pipeline; and populating a second set of registers with packet header field values of the packet header that are not used in the pipeline.
A method for processing network packets in a hardware switch pipeline that contains multiple stages for matching and modifying packet headers. The method involves receiving a packet with a set of headers. For each header, the method populates two sets of registers: one set with the header field values that are used in the switch pipeline stages, and another set with header field values that are not used by the pipeline. This allows efficient access to relevant header data during packet processing.
2. The method of claim 1 , wherein the pipeline comprises one of an ingress pipeline and an egress pipeline of the hardware switch.
The packet processing method described above, where the hardware switch pipeline is specifically either the ingress pipeline (handling incoming packets) or the egress pipeline (handling outgoing packets) of the switch.
3. The method of claim 1 , wherein the pipeline comprises a parser, a match-action unit (MAU), and a deparser, wherein the first set of registers is delivered to the MAU for further processing and the second set of registers is delivered directly to the deparser without being processed by the MAU.
The packet processing method described above involves a pipeline consisting of a parser, a match-action unit (MAU), and a deparser. The first set of registers (containing header fields used in the pipeline) is sent to the MAU for further processing (matching and actions). The second set of registers (containing unused header fields) is sent directly to the deparser, bypassing the MAU. This optimizes processing by only subjecting relevant header fields to match-action operations.
4. The method of claim 3 , wherein the MAU comprises a set of match-action stages, each of which comprises a set of match tables against which at least a subset of the packet header field values stored in the first set of registers is matched.
In the packet processing method using a parser, MAU, and deparser, as described above, the MAU comprises a series of match-action stages. Each stage contains match tables against which at least a portion of the header field values stored in the first set of registers (used fields) are compared. This enables the switch to make forwarding and modification decisions based on these header field values.
5. The method of claim 4 , wherein each of the match-action stages of the MAU 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 match-action stage.
In the packet processing method using a MAU with match-action stages, as described above, each match-action stage also includes action entries and an action engine. When a match occurs against a match table entry, the corresponding action entry specifies a set of actions that the action engine performs on the packet.
6. The method of claim 5 , wherein the set of actions comprises modifying one or more of the header field values stored in the first set of registers.
In the packet processing method using a MAU with match-action stages, as described above, the set of actions performed by the action engine includes modifying one or more of the header field values stored in the first set of registers (the header fields used by the pipeline). This allows the switch to alter packet headers based on match results.
7. The method of claim 1 , wherein for a particular packet, only a first subset of the packet header field values stored in the first set of registers are used in the pipeline.
In the packet processing method described above, for any given packet, only a subset of the header field values stored in the first register set (the "used" fields) are actually used by the switch pipeline. Some of the fields in the "used" set may not be relevant for every packet.
8. The method of claim 7 , wherein a second subset of the packet header field values stored in the first set of registers are not used for the particular packet, but used for other packets.
In the packet processing method where only a subset of "used" header fields are used, as described above, some header field values stored in the first set of registers (marked as "used") that are not used for a specific packet are used for processing other packets. This means the register set is populated with potentially relevant fields, even if not all are always relevant.
9. The method of claim 7 , wherein a particular packet header field value is used in the pipeline when either (i) a match entry matches against the packet header field value or (ii) an action entry modifies the packet header field value.
In the packet processing method where only a subset of "used" header fields are used, as described above, a particular header field value is considered "used" in the pipeline if it is either used for matching against a match table entry, or if an action entry modifies the value of that header field. These two criteria determine whether a field is placed in the "used" register set.
10. The method of claim 1 , wherein the first set of registers are populated with values of different packet header fields for a first packet than for a second packet based on the values of a particular packet header field in the packet headers of the first and second packets.
In the packet processing method described above, the first set of registers ("used" fields) is populated with different header field values for different packets. The selection of which header fields to include in the first set varies based on the value of a specific header field present in the packet headers. This allows for dynamic selection of relevant header fields.
11. The method of claim 10 , wherein the particular packet header field is the EtherType field of Ethernet headers.
In the packet processing method where the selection of "used" header fields varies, as described above, the specific header field used to determine which other header fields to include in the first set of registers is the EtherType field of Ethernet headers. The EtherType value indicates the type of payload and thus determines which subsequent headers are present and relevant.
12. The method of claim 1 further comprising, for each of at least a subset of the packet headers, determining a format of a next packet header by matching a value of a particular packet header field of the packet header against a set of TCAM entries.
The packet processing method described above further comprises determining the format of the next packet header for at least some of the packet headers by matching a specific header field value of the current packet header against a set of TCAM (ternary content-addressable memory) entries. This allows the system to dynamically parse variable-length or stacked headers.
13. A non-transitory machine readable medium storing a program which when executed by at least one processing unit processes a packet for a pipeline of a hardware switch, the pipeline comprising a plurality of stages that match against packet header fields and modify packet header fields, the program comprising sets of instructions for: receiving a packet comprising a set of packet headers; for each packet header in the set of packet headers: populating a first set of registers with packet header field values of the packet header that are used in the pipeline; and populating a second set of registers with packet header field values of the packet header that are not used in the pipeline.
A non-transitory machine-readable medium stores a program for processing network packets in a hardware switch pipeline. The pipeline contains multiple stages for matching and modifying packet headers. The program, when executed, receives a packet with headers. For each header, it populates two sets of registers: one set with the header field values that are used in the switch pipeline stages, and another set with header field values that are not used by the pipeline. This enables efficient access to relevant header data.
14. The machine readable medium of claim 13 , wherein the pipeline comprises one of an ingress pipeline and an egress pipeline of the hardware switch.
The machine-readable medium described above, where the hardware switch pipeline is specifically either the ingress pipeline (handling incoming packets) or the egress pipeline (handling outgoing packets) of the switch.
15. The machine readable medium of claim 13 , wherein the pipeline comprises a parser, a match-action unit (MAU), and a deparser, wherein the program further comprises sets of instructions for: delivering the first set of registers to the MAU for further processing; and delivering the second set of registers directly to the deparser without having the MAU process the second set.
The machine-readable medium described above involves a pipeline consisting of a parser, a match-action unit (MAU), and a deparser. The program delivers the first set of registers (containing header fields used in the pipeline) to the MAU for further processing. The second set of registers (containing unused header fields) is sent directly to the deparser, bypassing the MAU. This optimizes processing by only subjecting relevant header fields to match-action operations.
16. The machine readable medium of claim 15 , wherein the MAU comprises a set of match-action stages, each of which comprises a set of match tables against which at least a subset of the packet header field values stored in the first set of registers is matched.
In the machine-readable medium using a parser, MAU, and deparser, as described above, the MAU comprises a series of match-action stages. Each stage contains match tables against which at least a portion of the header field values stored in the first set of registers (used fields) are compared.
17. The machine readable medium of claim 16 , wherein each of the match-action stages of the MAU 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 match-action stage.
In the machine-readable medium using a MAU with match-action stages, as described above, each match-action stage also includes action entries and an action engine. When a match occurs against a match table entry, the corresponding action entry specifies a set of actions that the action engine performs on the packet.
18. The machine readable medium of claim 17 , wherein the set of actions comprises modifying one or more of the header field values stored in the first set of registers.
In the machine-readable medium using a MAU with match-action stages, as described above, the set of actions performed by the action engine includes modifying one or more of the header field values stored in the first set of registers (the header fields used by the pipeline).
19. The machine readable medium of claim 13 , wherein for a particular packet, only a first subset of the packet header field values stored in the first set of registers are used in the pipeline.
In the machine-readable medium described above, for any given packet, only a subset of the header field values stored in the first register set (the "used" fields) are actually used by the switch pipeline.
20. The machine readable medium of claim 13 , wherein the program further comprises, for each of at least a subset of the packet headers, determining a format of a next packet header by matching a value of a particular packet header field of the packet header against a set of TCAM entries.
The machine-readable medium described above further comprises determining the format of the next packet header for at least some of the packet headers by matching a specific header field value of the current packet header against a set of TCAM entries.
Unknown
November 21, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.