Patent ID: 8031706

Claim:
A network processor for determining one or more network operations to be perfoimed on a packet of data in a network, the packet of data containing information populating a plurality of protocol header fields, and the network processor comprising: processing circuitry; and protocol indicator circuitry, the protocol indicator circuitry comprising a plurality of memory elements, the plurality of protocol header fields corresponding to respective ones of the plurality of memory elements, a given one of the plurality of memory elements having a fixed correspondence to a given one of the plurality of protocol header fields regardless of a programmed state of the given memory element; wherein the processing circuitry determines the one or more network operations to be performed on the packet of data at least in part by addressing one or more lookup tables with the contents of a subset of the plurality of protocol header fields, the subset determined by reference to the plurality of memory elements, the plurality of memory elements being distinct from the one or more lookup tables; wherein the given memory element is programmed to indicate whether the corresponding protocol header field is to be utilized by the processing circuitry in addressing the one or more lookup tables; and wherein determining the one or more network operations to be performed on the packet comprises: (i) prior to addressing the one or more lookup tables with a given protocol header field, determining by reference to the corresponding memory element whether the given protocol header field is within the subset of the protocol header fields to be utilized in addressing the one or more lookup tables; (ii) if the given protocol header field is determined to be within the subset, addressing the one or more lookup tables with the contents of the given protocol header field to obtain a result corresponding to the given protocol header field; and (iii) iteratively repeating (i) and (ii) for each of the plurality of protocol header fields, thereby obtaining a separate result for each of the subset of protocol header fields.