Patent ID: 8085789

Claim:
A method of selecting requests to be acknowledged in a shared-memory switch core comprising: providing, in the shared-memory switch core, a collapsed virtual output queuing array (cVOQ) comprising counters arranged in predefined rows and columns, wherein the shared-memory switch core is adapted to switch packets from a plurality of ingress port adapters to a plurality of egress port adapters, and wherein the shared-memory switch core is configured to receive a packet in a period of time that an output through which the packet is to exit is unavailable; determining a number of queues assignable to each egress port adapter; determining a number of queues received from each ingress port adapter; determining a degree of freedom for each row and each column of said array of individual counters in response to the determined number of queues assignable to each said egress port adapter and the determined number of queues received from each said ingress port adapter, the degree of freedom indicating the number of choices to assign a queue to one of said egress port adapters; determining a maximum number of requests to be acknowledged; excluding from selection those of said rows and columns with zero degree of freedom; selecting a subset of rows and columns with a same lesser degree of freedom, said selection further comprising: picking, if possible, a combination of one row and one column for which an acknowledgment will be returned to corresponding virtual output queue; excluding from selection all row or column selections tried by said picking; assigning a queue received from an ingress port adapter corresponding to the picked row to an egress port adapter corresponding to the picked column; and repeating at selecting if said maximum number is not reached and subset of rows or columns is not empty.