A subsystem comprising a switching element and a forwarding database memory, wherein the switching element comprises a switch fabric and a plurality of input ports (205, 215, 225), wherein the switch fabric comprises: a search engine coupled to the forwarding database memory and a plurality of input ports, the search engine configured to schedule and perform accesses to the forwarding database memory and to transfer forwarding decisions to the plurality of input ports; and a header processing unit coupled to the search engine and having an arbitrated interface coupled to the plurality of input ports, wherein the header processing unit is configured to receive a packet header of a packet from an input port of the plurality of input ports and to extract information from the packet header based upon predetermined portions of the packet header, the search engine being coupled to the header processing logic and using the extracted information for constructing first and second search keys to access the forwarding database memory, the predetermined portions of the packet header being selected based upon a class of a plurality of classes with which the packet header is associated, wherein the first search key is a Layer 2, "L2", search key for retrieving an L2 entry from the forwarding database memory and the second search key is a Layer 3, "L3", search key for retrieving an L3 entry from the forwarding database memory, and wherein the header processing unit is implemented as a pipeline comprising multiple stages, whereby multiple packet headers are processed simultaneously by the header processing unit, each stage in the pipeline being configured to operate on a corresponding portion of the packet header to extract information from the packet header; and wherein the forwarding database memory includes one or more associative content addressable memories, "CAMs", (610, 620) coupled to a random access memory, "RAM", the one or more CAMs having stored therein associative data with which the first and second search keys are matched and the RAM having stored therein associated data corresponding to the associative data that indicates output port(s) to which packets are to be forwarded. a search engine coupled to the forwarding database memory and a plurality of input ports, the search engine configured to schedule and perform accesses to the forwarding database memory and to transfer forwarding decisions to the plurality of input ports; and a header processing unit coupled to the search engine and having an arbitrated interface coupled to the plurality of input ports, wherein the header processing unit is configured to receive a packet header of a packet from an input port of the plurality of input ports and to extract information from the packet header based upon predetermined portions of the packet header, the search engine being coupled to the header processing logic and using the extracted information for constructing first and second search keys to access the forwarding database memory, the predetermined portions of the packet header being selected based upon a class of a plurality of classes with which the packet header is associated, wherein the first search key is a Layer 2, "L2", search key for retrieving an L2 entry from the forwarding database memory and the second search key is a Layer 3, "L3", search key for retrieving an L3 entry from the forwarding database memory, and wherein the header processing unit is implemented as a pipeline comprising multiple stages, whereby multiple packet headers are processed simultaneously by the header processing unit, each stage in the pipeline being configured to operate on a corresponding portion of the packet header to extract information from the packet header; and wherein the header processing unit is configured to receive a packet header of a packet from an input port of the plurality of input ports and to extract information from the packet header based upon predetermined portions of the packet header, the search engine being coupled to the header processing logic and using the extracted information for constructing first and second search keys to access the forwarding database memory, the predetermined portions of the packet header being selected based upon a class of a plurality of classes with which the packet header is associated, wherein the first search key is a Layer 2, "L2", search key for retrieving an L2 entry from the forwarding database memory and the second search key is a Layer 3, "L3", search key for retrieving an L3 entry from the forwarding database memory, and wherein the header processing unit is implemented as a pipeline comprising multiple stages, whereby multiple packet headers are processed simultaneously by the header processing unit, each stage in the pipeline being configured to operate on a corresponding portion of the packet header to extract information from the packet header; and