Claims
        
                - 1. A method of routing packets of one or more multicast sessions between ingress ports and egress ports of a switch, the method comprising the steps of: 
(a) queuing i) each arriving packet in a corresponding session queue, and ii) an identifer for each new multicast session to a list-of-sessions queue; (b) queuing a descriptor associated with one or more packets of each multicast session in the list-of-sessions queue to one or more interface descriptor queues associated with one or more egress ports of the switch; (c) selecting, for each non-empty interface descriptor queue, one descriptor of the non-empty interface descriptor queue; and (d) transmitting, for each non-empty interface descriptor queue, one or more packets associated with the selected descriptor in the non-empty interface queue to the corresponding egress port.
 
                - 2. The invention of claim 1, further comprising the steps of: 
(e) assigning a reference count equivalent to the fan-out of the corresponding multicast session to each arriving packet; and (f) adjusting the reference count as the corresponding packet is transmitted to the corresponding egress port.
 
                - 3. The invention of claim 2, further comprising the steps of: 
(g) repeating steps (c), (d), and (f); and (f) clearing the packet in the switch based on the adjusted reference count.
 
                - 4. The invention of claim 3, wherein step (f) clears the packet when the adjusted reference count is zero
 
                - 5. The invention of claim 1, further comprising the step of repeating steps (a) through (d) as packets arrive at the switch.
 
                - 6. The invention of claim 1, wherein, for step (b), each descriptor for each session is queued in one or more interface descriptor queues in accordance with a round-robin or weighted round-robin scheduling method.
 
                - 7. The invention of claim 1, wherein step (c) selects each descriptor of each interface descriptor queue in accordance with a predefined service method.
 
                - 8. Apparatus for routing packets of one or more multicast sessions between ingress ports and egress ports of a switch, the apparatus comprising: 
a packet arrival processor adapted to queue i) each arriving packet in a corresponding session queue, and ii) an identifer for each new multicast session to a list-of-sessions queue; a packet replication processor adapted to queue a descriptor associated with one or more packets of each multicast session in the list-of-sessions queue to one or more interface descriptor queues associated with one or more egress ports of the switch; a per-interface transmission processor adapted to: 
1) select, for each non-empty interface descriptor queue, one descriptor of the non-empty interface descriptor queue; and 2) transmit, for each non-empty interface descriptor queue, one or more packets associated with the selected descriptor in the non-empty interface queue to the corresponding egress port.
 
                - 9. The invention of claim 8, wherein: 
the packet arrival processor is adapted to assign a reference count equivalent to the fan-out of the corresponding multicast session to each arriving packet; and the per-interface transmission processor is adapted to adjust the reference count as the corresponding packet is transmitted to the corresponding egress port.
 
                - 10. The invention of claim 9, wherein the per-interface transmission processor is adapted to clear the packet in the switch based on the adjusted reference count.
 
                - 11. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to implement a method for routing packets of one or more multicast sessions between ingress ports and egress ports of a switch, the method comprising the steps of: 
(a) queuing i) each arriving packet in a corresponding session queue, and ii) an identifer for each new multicast session to a list-of-sessions queue; (b) queuing a descriptor associated with one or more packets of each multicast session in the list-of-sessions queue to one or more interface descriptor queues associated with one or more egress ports of the switch; (c) selecting, for each non-empty interface descriptor queue, one descriptor of the non-empty interface descriptor queue; and (d) transmitting, for each non-empty interface descriptor queue, one or more packets associated with the selected descriptor in the non-empty interface queue to the corresponding egress port.
 
        
                
                        CROSS-REFERENCE TO RELATED APPLICATIONS
        [0001] This application claims the benefit of the filing date of U.S. provisional application No. 60/395,906 filed on Jul. 15, 2002, as Attorney Docket No. Stiliadis 11 PROV.
                
                
                
                        Provisional Applications (1)
        
            
                
                     | 
                    Number | 
                    Date | 
                    Country | 
                
            
            
    
         | 
            60395906 | 
        Jul 2002 | 
        US |