Patent ID: 7006495

Claim:
A method comprising: receiving a plurality of multicast packets; storing the plurality of multicast packets and packet descriptors corresponding to each of the multicast packets in a memory, wherein the packet descriptors are stored in a multicast group queue portion of the memory and include a multicast group identifier, a source identifier, and a transmit count identifying a number of times the multicast packet must be transmitted so that each of a plurality of destinations associated with the multicast group identifier receives the multicast packet; polling the multicast group queue portion of the memory to determine whether there are any available packet descriptors; determining the plurality of destinations associated with an available packet descriptor by comparing the source identifier of the available packet descriptor to a destination index; transmitting each of the multicast packets to the determined plurality of destinations; decrementing the transmit count in the available packet descriptor each time a corresponding multicast packet is transmitted; and allowing a portion of the memory associated with the available packet descriptor and a corresponding multicast packet to be overwritten when the transmit count in the available packet descriptor reaches a predetermined value.