Patent ID: 7899050

Claim:
A system for receiving a packet over a computer network-comprising a plurality of nodes, each node comprising one or more queue-pairs of a plurality of queue pairs, each node further comprising one or more network adapters for connecting the computer network with the node, the system comprising: a network adapter of a first node of the plurality of nodes configured to access a plurality of local queue-pairs of the plurality of queue pairs, the network adapter capable of having a multi-cast lookup table comprising a plurality of entries, each entry comprising an LID and a plurality of queue identifiers for identifying said one or more local predetermined receive queues of said plurality of local queue-pairs; wherein the system is capable of performing a method comprising: decoding an identifier (ID) field of said packet, to determine if the packet is a multi-cast packet, wherein a multi-cast packet is a packet destined for receive queues of a plurality of predetermined queue-pairs of the plurality of queue pairs, the plurality of predetermined queue-pairs comprising one or more local predetermined queue-pairs of the plurality of local queue-pairs, the packet comprising a payload; based on the decoding step, in response to the packet being a multi-cast packet, obtaining a Local ID (LID) field of the packet; based on the obtained Local ID field and said multi-cast lookup table, identifying one or more local predetermined receive queues of said plurality of local queue-pairs, said identifying comprising: finding a Local ID entry in said multi-cast lookup table corresponding to the obtained Local ID field, the Local ID entry comprising said local ID field, an overflow indicator, and a plurality of bits, each bit of the plurality of bits representing a unique one of said plurality of local queues; when the overflow indicator indicates an overflow condition, accessing an overflow table comprising overflow entries; based on the accessed overflow entry, determining additional local predetermined receive queues for storing said payload; and selecting said identified one or more local predetermined receive queues based the values of said plurality of bits; and storing the payload of the packet in said identified one or more local predetermined receive queues.