Patent ID: 8004976

Claim:
A method for monitoring congestion at a plurality of processors, comprising: receiving a plurality of packets at a plurality of queues configured to input the packets to the plurality of processors, each queue associated with a processor external to the each queue and distinct from the processor of each other queue, the plurality of queues receiving the packets from the same port; and performing the following for each queue of the plurality of queues: establishing whether a time-averaged occupancy of the each queue exceeds a time-averaged occupancy threshold by: determining a first time interval and a second time interval, the first time interval and the second time interval set to avoid hardware head-of-line blocking; detecting the start of the first time interval; performing the following for each counter timer indicator of a plurality of counter timer indicators, the counter timer indicator indicating that the second time interval has elapsed: establishing whether there is an excess packets event in response to the each counter timer indicator, an excess packets event occurring when a number of packets at the each queue exceeds a number of packets threshold; and incrementing an excess packets event counter if there is an excess packets event; determining a frequency of excess packet events; detecting an end of the first time interval; and establishing whether the frequency of excess packet events during the time interval exceeds a frequency threshold; and providing a notification if the time-averaged occupancy of the each queue exceeds the time-averaged occupancy threshold, the notification provided by a congestion monitor associated with the each queue in order to inform a sender processor to prioritize the packets to reduce head-of-line blocking.