Patent ID: 7389360

Claim:
A method for routing packets received at a network device, the method comprising: converting the packets into a plurality of data structures; forwarding, using forwarding logic of the network device, the data structures to a plurality of processing engines of the network device; processing, by one of the processing engines, a first data structure relating to one of the packets; halting the processing of the first data structure when first processing information is needed to continue the processing of the first data structure and initiating processing of a second data structure; halting the processing of the second data structure when either second processing information is needed to continue the processing of the second data structure or the first processing information is obtained by the one processing engine; monitoring, by a monitor of the network device, a processing state of the one processing engine to identify partial processing results based on the halted processing of the first data structure in advance of the identified need for the first processing information; performing, at the one processing engine, a route lookup for the first data structure using the partial processing results; modifying, at the one processing engine, the first data structure based on the route lookup; routing, using a switch fabric of the network device, the one packet based on the modified data structure; and wherein said performing the route lookup includes: performing, at each processing engine, concurrent route lookups for up to four different data structures.