Patent ID: 7916743

Claim:
A device, comprising: an input buffer configured to store a set of input entries for multicast packets to be transmitted via ones of a plurality of output ports of the device; a congestion buffer configured to store a set of congestion entries for multicast packets to be transmitted by the device via congestion affected ones of the plurality of output ports; and a plurality of output buffers including first, second, and third output buffers, wherein the first, second, and third output buffers are respectively configured to store a set of output entries for packets to be transmitted via first, second, and third ones of the plurality of output ports; wherein the input buffer is configured to store an input entry for a first multicast packet to be transmitted via at least the first, second, and third output ports; wherein the device is configured, in response to the first output port not being congestion affected but the second and third output ports being congestion affected, to cause: removal of the input entry for the first multicast packet from the input buffer; storage of an output entry for the first multicast packet in the first output buffer; and storage of a congestion entry for the first multicast packet in the congestion buffer, wherein the congestion entry includes a pointer to data of the first multicast packet, and wherein the congestion entry further includes destination information indicating that the first multicast packet is yet to be transmitted via the second and third output ports; and wherein the device is configured to modify the destination information in the congestion entry based, at least in part, on a subsequent indication that at least one of the second and third output ports is not currently congestion affected.