Patent ID: 8571031

Claim:
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.