Configurable frame processing pipeline in a packet switch
AssigneeIntel Corporation
InventorsMichael Davies, Robert Southworth
Life of this patent
Estimating the term…
Abstract
Highly configurable frame processing pipelines are enabled in packet switches in an efficient manner which satisfies stringent area and power requirements. Frame processing pipelines are described that enable dynamic processing of different types of frames on a per frame basis.
Claims12
A packet switch, comprising:
- a multi-ported switch datapath;
- a plurality of ingress ports for receiving incoming data frames;
- ingress interconnection circuitry configured to selectively connect each of the ingress ports to the switch datapath;
- a plurality of egress ports for transmitting outgoing data frames;
- egress interconnection circuitry configured to selectively connect each of the egress ports to the switch datapath;
- control circuitry configured to control operation of the ingress and egress interconnection circuitry and the switch datapath to facilitate writing the incoming data frames to the switch datapath and reading the outgoing data frames from the switch datapath;
- and
- frame processing pipeline circuitry configured to determine forwarding behavior for and modifications to apply to each of the incoming frames with reference to incoming header data associated with the incoming data frames, and to generate outgoing header data for association with the outgoing data frames, the frame processing pipeline circuitry comprising:
- parsing circuitry configured to vector portions of the incoming header data into data fields in a data fields channel;
- and
- a plurality of programmable structures in sequence with one another along the data fields channel, wherein, for each programmable structure of the plurality of programmable structures:
- the programmable structure to receive a respective set of frame header fields of the data fields channel, the programmable structure including:
- key selection logic to dynamically select a key from the respective set of frame header fields;
- a ternary content addressable memory (TCAM), wherein the programmable structure to perform an associative lookup of the TCAM based on the key to determine an index;
- an action table comprising a plurality of configurable profiles each including an input field, a mask field, an operation field, and an output field, wherein the programmable structure to select, based on the index, a first profile of the plurality of configurable profiles;
- the programmable structure to generate a first operand in response to selection of the first profile, including:
- the programmable structure to dynamically select, based on the input field of the first profile, input data from the respective set of frame header fields;
- and
- the programmable structure to mask a portion of the input data based on the mask field of the first profile;
- the programmable structure to perform with the first operand a first operation according to the operation field of the first profile, and the programmable structure to transform data in the data fields channel based on a result of the operation and according to the output field of the first profile.
A network processing device for use in a multi-chip switch system that includes a central switch fabric, the network processing device being configured for deployment between the central switch fabric and an external device configured to transmit and receive frames of data to and from the central switch fabric via the network processing device, the network processing device comprising:
- a pipelined circuit configured to operate on data fields in a data fields channel to determine forwarding behavior for and modifications to apply to the frames of data corresponding to the data fields in the data fields channel, the pipelined circuit comprising:
- parsing circuitry configured to vector portions of incoming header data into data fields in a data fields channel;
- and
- a plurality of programmable structures in sequence with one another along the data fields channel, wherein, for each programmable structure of the plurality of programmable structures:
- the programmable structure to receive a respective set of frame header fields of the data fields channel, the programmable structure including:
- key selection logic to dynamically select a key from the respective set of frame header fields;
- a ternary content addressable memory (TCAM), wherein the programmable structure to perform an associative lookup of the TCAM based on the key to determine an index;
- an action table comprising a plurality of configurable profiles each including an input field, a mask field, an operation field, and an output field, wherein the programmable structure to select, based on the index, a first profile of the plurality of configurable profiles;
- the programmable structure to generate a first operand in response to selection of the first profile, including:
- the programmable structure to dynamically select, based on the input field of the first profile, input data from the respective set of frame header fields;
- and
- the programmable structure to mask a portion of the input data based on the mask field of the first profile;
- the programmable structure to perform with the first operand a first operation according to the operation field of the first profile, and the programmable structure to transform data in the data fields channel based on a result of the operation and according to the output field of the first profile.
A switch fabric configured to interconnect a plurality of computing devices, the switch fabric comprising a plurality of interconnected packet switches, one or more of the packet switches comprising:
- a switch datapath;
- a plurality of ingress ports for receiving incoming data frames;
- ingress interconnection circuitry configured to selectively connect each of the ingress ports to the switch datapath;
- a plurality of egress ports for transmitting outgoing data frames;
- egress interconnection circuitry configured to selectively connect each of the egress ports to the switch datapath;
- control circuitry configured to control operation of the ingress and egress interconnection circuitry and the switch datapath to facilitate writing the incoming data frames to the switch datapath and reading the outgoing data frames from the switch datapath;
- and
- frame processing pipeline circuitry configured to determine forwarding behavior for and modifications to apply to each of the incoming frames with reference to incoming header data associated with the incoming data frames, and to generate outgoing header data for association with the outgoing data frames, the frame processing pipeline circuitry comprising:
- parsing circuitry configured to vector portions of the incoming header data into data fields in a data fields channel;
- and
- a plurality of programmable structures in sequence with one another along the data fields channel, wherein, for each programmable structure of the plurality of programmable structures:
- the programmable structure to receive a respective set of frame header fields of the data fields channel, the programmable structure including:
- key selection logic to dynamically select a key from the respective set of frame header fields;
- a ternary content addressable memory (TCAM), wherein the programmable structure to perform an associative lookup of the TCAM based on the key to determine an index;
- an action table comprising a plurality of configurable profiles each including an input field, a mask field, an operation field, and an output field, wherein the programmable structure to select, based on the index, a first profile of the plurality of configurable profiles;
- the programmable structure to generate a first operand in response to selection of the first profile, including:
- the programmable structure to dynamically select, based on the input field of the first profile, input data from the respective set of frame header fields;
- and
- the programmable structure to mask a portion of the input data based on the mask field of the first profile;
- the programmable structure to perform with the first operand a first operation according to the operation field of the first profile, and the programmable structure to transform data in the data fields channel based on a result of the operation and according to the output field of the first profile.
Dependencies are inferred from the claim text.