A communications switch or router employs a replication server to perform
batch processing of multicast connections. The replication server
performs three distinct forms of processing using staging queues: packet
arrival processing, packet replication processing, and per-interface
transmission processing. Packet arrival processing queues arriving
packets in session queues, adds new multicast sessions to a replication
set, and assigns a counter equivalent to the fan-out of the multicast
session. Packet replication processing assigns a descriptor to packets of
each session in the replication set, and copies the descriptor to each
per-interface queue. Per-interface transmission processing examines each
descriptor in the per-interface queue, copies the corresponding packets
for transmission by the interface, adjusts the counter as each packet is
copied, and clears the packet in the switch based on the adjusted
counter.