1. A method for enabling a processor processing a network packet in a pipeline stage of a plurality of ordered pipeline stages to determine when to enter an idle state, the method comprising: receiving a network packet of a plurality of network packets at a particular pipeline stage, at least one of the plurality of network packets having a corresponding identifier that indicates its ordering within the plurality of network packets; determining a global identifier that corresponds to a last network packet received by an upstream pipeline stage in the plurality of ordered pipeline stages; comparing, for the network packet being processed at the particular pipeline stage, the ordering indicated by an identifier of the network packet with the ordering of the global identifier; causing a processor for the particular pipeline stage to delay entering an idle state for a determined duration of time after processing the network packet when the comparison indicates that another network packet was received after the network packet in the upstream pipeline stage; and enabling the processor for the particular pipeline stage to enter an idle state when the comparison indicates that the network packet was the last network packet received by the upstream pipeline stage, wherein the global identifier for the upstream pipeline stage is updated every time another network packet is received by the upstream pipeline stage in the plurality of pipeline stages, wherein at least one of a plurality of global identifiers corresponds to one of a plurality of virtual machines to associate the processor processing the network packet with an identity of the virtual machine sending the network packet.