Patent ID: 8094560

Claim:
A method comprising: receiving a plurality of network packets at a network element; categorizing the network packets into a plurality of work units by a packet order work (POW) unit in the network element, each work unit representing a packet of different transport control protocol (TCP) flows to be processed in multiple processing stages in the network element, wherein each of the plurality of work units is identified by an identifier that uniquely identifies a flow in which the associated packet belongs and a processing stage that the associated packet is to be processed; determining a group value for each of the plurality of work units, wherein the group value identifies one of a plurality of core logic in the network element for a specific processing event corresponding to a particular one of the multiple processing stages and allows the POW unit or a multi-core scheduling (MCS) unit in the network element to schedule processing of each of the work units to one of the plurality of core logic based on the specific processing event identified by the group value; scheduling processing at the MCS unit of each of the plurality of work units based on a stage scheduling model and a flow scheduling model, wherein the stage scheduling model divides the work units into different processing stages and wherein the flow scheduling model divides the work units into different TCP flows; and dispatching each of the work units to the one of the plurality of core logic of the network element for processing, such that work units of the network packets of different TCP flows are processed concurrently by multiple core logic and work units of the network packets of identical TCP flows in different processing stages are processed concurrently by multiple core logic, in order to determine whether the packets should be transmitted to one or more application servers of a datacenter.