# Patent

## Title
Replicating and switching multicast internet packets in routers using crosspoint memory shared by output ports

## Abstract

Multicast traffic is expected to increase in packet networks, and therefore in switches and routers, by including broadcast and multimedia-on-demand services. Combined input-crosspoint buffered (CICB) switches can provide high performance under uniform multicast traffic. However this is often at the expense of N2 crosspoint buffers. An output-based shared-memory crosspoint-buffered (O-SMCB) packet switch is used where the crosspoint buffers are shared by two outputs and use no speedup. An embodiment of the proposed switch provides high performance under admissible uniform and non-uniform multicast traffic models while using 50% of the memory used in CICB switches that has dedicated buffers. Furthermore, the O-SMCB switch provides higher throughput than an existing SMCB switch where the buffers are shared by inputs.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application claims priority to U.S. Provisional Patent Application No. 60/967,175 filed Aug. 31, 2007, the contents of which are incorporated herein by reference.


STATEMENT OF FEDERALLY FUNDED RESEARCH
The present application includes research supported in part by the National Science Foundation (NSF) under Grant No. 0435250. The federal government may have certain rights in the present application.


FIELD
The present disclosure relates to the field of packet-oriented networks. The present disclosure provides a method for replicating and switching multicast Internet packets in routers using cross-point memory shared by output ports.
BACKGROUND
This background section provides a context for the disclosure. The description herein may include concepts that could be pursued but are not necessarily ones that have been previously conceived or pursued. The description is not intended to be limiting and unless otherwise stated, nothing in this section is admitted as prior art simply by inclusion in this section.
The migration of broadcasting services, such as cable television and multimedia-on-demand, to packet-oriented networks as well as the embracing of emerging applications, such as teleconferencing and storage networks by the Internet, place significant traffic demands on the Internet. To keep up with such bandwidth demand, packet switches and routers need to provide efficient multicast switching and packet replication.
The forwarding of packets in the Internet depends on the switching efficiency of routers and switches. Presently, there are different buffering strategies to build packet switches. Input buffered (IB) switches provide limited throughput and require complex scheduling schemes. Output buffered (OB) switches offer high throughput but require infeasible memory speedup. Combined input crosspoint buffered (CICB) switches deliver better switching performance than input buffered switches, but the memory amount in the buffered crossbar is large (the number of crosspoint buffers equals N2, where N is the number of ports).
In addition to the high performance of CICB packet switches under unicast traffic, the crosspoint buffers in these switches help to provide call splitting intrinsically. Different from IB switches, CICB switches do not require cell transmission after inputs and outputs have been matched. In CICB switches, one input can send up to one (multicast) cell to the crossbar, and one or more cells destined to a single output port can be forwarded from multiple inputs to the crossbar at the same time slot. Therefore, CICB switches have natural properties favorable for multicast switching as contending copies for a single output can be sent to the crosspoint buffers from several inputs at the same time slot without blocking each other.
Existing packet switches mostly target unicast traffic. It is expected that in the near future multicast and broadcast services will demand most of the available bandwidth of the Internet. Current packet switches provide limited services for multicast traffic. CICB switches are seen as the promising architecture for building efficient switches. However, multicast packets can easily exhaust the available internal buffers in current CICB switches. Handling and management of multicast traffic by switches and routers can become very expensive as the sheer amount and speed of memory necessary often becomes cost prohibitive if not simply infeasible. To lower the cost of memory implementation, the required memory amount should be reduced or kept to a minimum while keeping high efficiency in packet switching and replication.
SUMMARY
Various embodiments relate to switch architecture and selection schemes for efficient replication and switching of multicast Internet packets. In at least one embodiment, switch buffered crosspoints are utilized to allow for sharing of memory by different outputs.
At least one embodiment is based on a CICB switch that uses crosspoint buffers shared by two or more output ports. Buffer sharing by two output ports is used to achieve high performance and simplify the implementation.
At least one embodiment includes a method of scheduling access to the shared crosspoint buffers by output ports and a flow control mechanism to avoid buffer underflow and overflow. The resulting switch architecture is referred to as shared-memory crosspoint-buffered switch with output-based sharing (O-SMCB).



BRIEF DESCRIPTION OF THE DRAWINGS
To assist those of ordinary skill in the relevant art in making and using the subject matter hereof, reference is made to the appended drawings, wherein:
FIG. 1 is a schematic drawing of the N×N output-based shared-memory crosspoint buffered (O-SMCB) switch with shared-memory crosspoints by outputs.
FIG. 2 is a schematic drawing of the N×N input-based shared-memory crosspoint buffered (I-SMCB) switch with shared-memory crosspoints by inputs.



DETAILED DESCRIPTION
FIG. 1 illustrates a representative output-based shared-memory crosspoint buffered (O-SMCB) switch 10. The O-SMCB switch 10 requires less memory than a CICB switch to achieve comparable performance under multicast traffic and no speedup. Furthermore, the O-SMCB switch provides higher throughput under uniform and non-uniform multicast traffic models than an input-based SMCB (I-SMCB) switch (FIG. 2), where two inputs share crosspoint buffers. The O-SMCB switch 10 includes input ports 0 to N-1; shared memory buffers (SMB); output access schedulers; and output ports 0, 1, . . . , N-2, and N-1. The input ports receive input from a first-in first-out (FIFO) queue at each input. The switch 10 has N2 crosspoints and N2/2 crosspoint buffers in the crossbar. A crosspoint in the buffered crossbar connects input port i to output j is denoted as CP(i,j). The buffer shared by CP(i,j) and CP(i, j′) that stores cells for output ports j or j′, where j≠j′, is denoted as SMB (i,q), where 0≦q≦N/2−1.
According to at least one embodiment, the O-SMCB switch 10 uses round-robin selection in its arbitration schemes and achieves a high throughput under multicast traffic. This selection scheme was adopted for its simplicity and as an example. Other selection schemes can also be used. In another embodiment, the O-SMCB switch 10 is provisioned with one multicast first-in first-out (FIFO) queue at each input. For this embodiment, an even N value is assumed for the sake of clarity. However, an odd N value can be used with one input port using dedicated buffers of size 0.5 to 1.0 the size of an SMB. The size of an SMB, in number of cells that can be stored, is ks. The case of minimum amount of memory, or when ks=1 (equivalent to having 50% of the memory in the crossbar of a CICB switch), is considered. Therefore, SMB(i,q) with ks=1 can store a cell that can be directed to either j or j′. The SMB has two egress lines, one per output.
To avoid the need for speedup at SMBs, only one output is allowed to access an SMB at a time. The access to one of the N SMBs by each output is decided by an output-access scheduler. A scheduler performs a match between SMBs and the outputs that share them by using round-robin selection. There are N/2 output-access schedulers in the buffered crossbar, one for each pair of outputs. Multicast cells at the inputs have an N-bit multicast bitmap to indicate the destination of the multicast cells. Each bit of the bitmap is denoted as Dj, where




  
    D
    j
  
  =
  
    {
    
      
        
          
            1
            ⁢
            
              
            
          
        
        
          
            
              if
              ⁢
              
                
              
              ⁢
              output
              ⁢
              
                
              
              ⁢
              j
              ⁢
              
                
              
              ⁢
              is
              ⁢
              
                
              
              ⁢
              one
              ⁢
              
                
              
              ⁢
              of
              ⁢
              
                
              
              ⁢
              the
              ⁢
              
                
              
              ⁢
              cell
              ⁢
              
                
              
              ⁢
              destination
            
            ,
          
        
      
      
        
          0
        
        
          
            otherwise
            .
          
        
      
    
  




Each time a multicast copy is forwarded to the SMB for the cell's destination, the corresponding bit in the bitmap is reset. When all bits of a multicast bitmap are zero, the multicast cell is considered completely served. Call splitting is used by this switch to allow effective replication and to alleviate a possible head-of-line blocking. A credit-based flow control mechanism is used to notify the inputs about which output replicates a multicast copy and to avoid buffer overflow.
Much research has focused on unicast traffic, where each packet has a single destination. It has been shown that unicast switches achieve 100% throughput under admissible conditions,




  
    
      ∑
      i
    
    ⁢
    
      λ
      
        i
        ,
        j
      
    
  
  <
  
    1
    ⁢
    
      
    
    ⁢
    and
    ⁢
    
      
    
    ⁢
    
      
        ∑
        j
      
      ⁢
      
        λ
        
          i
          ,
          j
        
      
    
  
  <
  1




where i is the index of inputs (0≦i≦N-1), j is the index of outputs (0≦i≦N-1) for an N×N port switch, and λi,j is the data rate from input i to output j, in a plethora of switch architectures and switch configuration schemes.

Although it is difficult to describe actual multicast traffic models, switches of this type also should provide 100% throughput under admissible multicast traffic. In multicast switches, the admissibility conditions are similar to those for unicast traffic, however, with the consideration of the fanout of multicast packets. The fanout of a multicast packet is the number of different destinations that expect copies of the packet. This implies that the average fanout of multicast traffic increases the average output load of a switch. Therefore, the average output load in a multicast switch is proportional to the product of the average input load and the average fanout for a given multicast traffic model.
In at least one embodiment, incoming variable-size packets are segmented into fixed-length packets, also called cells, at the ingress side of a switch and being re-assembled at the egress side, before the packets leave the switch. Therefore, the time to transmit a cell from an input to an output takes a fixed amount of time, or time slot. Also, cell replication is performed at the switch fabric by exploiting its space capabilities. One embodiment focuses on crossbar-based switches in order to allow multicast cells to be stored in a single queue at the input.
Multicast switching has been largely considered for input buffered (IB) switches. In these switches, matching is performed between inputs and outputs to define the configuration on a time-slot basis. This matching process can be complex when considering multicast traffic. Combined input crosspoint-buffered (CICB) packet switches have higher performance than IB switches at the expense of having crosspoint buffers, which run at the same speed as the input buffers in an IB switch, under unicast traffic. In these switches, an input might have up to N buffers where each one stores cells destined to a particular output to avoid head-of-line blocking. The crosspoint buffers in CICB switches can be used to provide call splitting (or fanout splitting) intrinsically. Different from IB switches, CICB switches are not required to have cell transmission after inputs and output have been matched. This feature makes CICB switches attractive for implementation. In CICB switches, one input can send up to one (multicast) cell to the crossbar, and one or more cells destined to a single output port can be forwarded from multiple inputs to the crossbar at the same time slot.
Therefore, CICB switches have natural properties favorable for multicast switching as contending copies for a single output can be sent to the crosspoint buffers from several inputs at the same time slot without blocking each other. In general, CICB switches have dedicated crosspoint buffers for each input-output pair, for a total of N2 crosspoint buffers. Since memory used in the crosspoint buffers has to be fast, it is desirable to minimize the total amount this fast, expensive memory.
FIG. 2 shows an I-SMCB switch. The performance of the O-SMCB switch described with reference to FIG. 1 is compared to that of the I-SMCB switch. Models of a 16×16 O-SMCB switch and a 16×16 I-SMCB switch can be implemented in discrete-event simulation programs. The I-SMCB switch has an architecture similar to the O-SMCB switch, in that the SMBs are shared by (two) inputs. For a fair comparison, the I-SMCB also uses round-robin selections for SMB-access by inputs and for output arbitration. Simulation results are obtained with a 95% confidence interval and a standard error not greater than 5%.
Multicast traffic models are considered with uniform and nonuniform distributions and Bernoulli arrivals: multicast uniform, multicast diagonal with fanouts of 2 and 4, and broadcast. In the uniform multicast traffic model, multicast cells are generated with a uniformly distributed fanout among N outputs. For this traffic model, the average fanout is




  
    
      1
      +
      N
    
    2
  
  =
  
    17
    2
  




and a maximum admissible input load of





  
    1
    fanout
  
  =
  
    
      1
      8.5
    
    .
  




The diagonal multicast traffic model with a fanout of 2 has a destination distribution to j=i and j=(i+1)%N for each multicast cell, and a maximum admissible input load of 0.5. The diagonal multicast traffic model with a fanout of 4 has the copies of a multicast cell destined to j={i, (i+1)%N, (i+2)%N, and (i+3)%N}$ for each multicast cell, and its admissible input load is 0.25. A broadcast multicast cell generates copies for all N different outputs and has a maximum admissible load is 1/16=0.0625.
Under uniform traffic, the I-SMCB and O-SMCB switches deliver 100% throughput. Under multicast diagonal traffic with fanout of 2, the throughputs observed are 100% for the O-SMCB switch and 96% for the I-SMCB switch. Under multicast diagonal traffic with a fanout of 4, the performance of the I-SMCB switch decreases to 67%, while the performance of the O-SMCB switch remains high, close to 100%. Under broadcast traffic (fanout equal to N), the throughput of the O-SMCB switch is 99% while the throughput of the I-SMCB switch is 95%.
Multicast is a traffic type difficult to police for admissibility. Furthermore, the performance of switches under inadmissible traffic (produced by larger fanouts than the expected average) might change. In cases of unicast traffic, the maximum throughput of a switch can remain high with a fair scheduler. However, this might not be the case under multicast traffic. In this experiment, the input load is increased beyond the maximum admissible values in the considered traffic models to observe throughput changes of the O-SMCB and I-SMCB switches under these overload conditions.
Under uniform multicast traffic, the throughput of both switches degrades to 93% when the input load is larger than 0.117 (the output load is larger than 1.0). This throughput degradation occurs because of the increased number of contentions for SMB access as the traffic load increases. Under multicast diagonal traffic with fanout of 2, the throughput of the I-SMCB switch is reduced to 90% while the throughput of the O-SMCB switch remains close to 100%. Under multicast diagonal traffic with a fanout of 4, the throughput of the I-SMCB switch falls to 68% while the throughput of the O-SMCB switch also remains close to 100%. Under broadcast traffic, the throughput of the I-SMCB switch decreases to 79%. However, the throughput of the O-SMCB switch remains close to 100%.













TABLE I







Traffic type
Ta(I)
Ta(O)
Ti(I)
Ti(O)






















Uniform
100%
100%
93%
93%



Diagonal 2
96%
100%
90%
100%



Diagonal 4
67%
100%
68%
100%



Broadcast
95%
99%
79%
100%










Table I summarizes the obtained throughput for all tested traffic models. In this table, Ta stands for the measured throughput under admissible traffic and Ti for the measured throughput under inadmissible traffic. The I in parenthesis indicates that the result is related to the I-SMCB switch and the O indicates that the result is related to the O-SMCB switch.
The embodiment described provides a switch architecture to support multicast traffic using a shared-memory switch that uses crosspoint buffers shared by outputs to use 50% of the memory amount in the crossbar fabric that CICB switches require. One embodiment of the proposed O-SMCB switch delivers high performance under multicast traffic while using no speedup. The switch has buffers that are shared by outputs instead of the inputs. This has the effect of facilitating call splitting by allowing inputs directly access to the crosspoint buffers.
This improvement has a significant impact on switching performance. As a result, the O-SMCB provides 100% throughput under both uniform multicast traffic and diagonal multicast traffic with fanouts of 2 and 4, all with Bernoulli arrivals. Furthermore, an embodiment of the proposed switch keeps the throughput high under nonuniform traffic with overloading conditions. The disadvantage of SMCB switches is that time relaxation of CICB switches is minimized because of the matching process considered. However, the matching is performed in chip and among a moderate number of outputs. Furthermore, the matching process is simpler in the SMCB switches than those used in IB switches for multicast traffic.
The representative method offers significant advantages relative to prior art. The advantageous properties and/or characteristics of the disclosed method include, but are not limited to, scalability, effectiveness, robustness, and efficiency.
The above-described embodiments may be implemented within the context of methods, computer readable media and computer program processes. As such, it is contemplated that some of the steps discussed herein as methods, algorithms and/or software processes may be implemented within hardware (e.g., circuitry that cooperates with a processor to perform various steps), software or a combination of hardware and software. The representative embodiments may be implemented as a computer program product wherein computer instructions, when processed by a computer, adapt the operation of the computer such that the methods and/or techniques are invoked or otherwise provided. Instructions for invoking the methods may be stored in fixed or removable media, transmitted via a data stream in a signal bearing medium such as a broadcast medium, and/or stored within a working memory or mass storage device associated with a computing device operating according to the instructions. Generally speaking, a computing device including a processor, memory and input/output means may be used to process software instructions, store software instructions and/or propagate software instructions to or from a communications channel, storage device or other computer/system.
Applicant has attempted to disclose all embodiments and applications of the disclosed subject matter that could be reasonably foreseen. However, there may be unforeseeable, insubstantial modifications that remain as equivalents. While the present invention has been described in conjunction with specific, exemplary embodiments thereof, it is evident that many alterations, modifications, and variations will be apparent to those skilled in the art in light of the foregoing description without departing from the spirit or scope of the present disclosure. Accordingly, the present disclosure is intended to embrace all such alterations, modifications, and variations of the above detailed description.

## Claims

1. A switch that supports multi-cast traffic in a network, the switch comprising:
input ports configured to receive data packets;
output ports configured to provide data packets to the network;
crosspoint memory buffers coupling the input ports and the output ports, wherein each crosspoint memory buffer comprises a queue that is exclusively dedicated to two of the output ports, and wherein the queue comprises data for each of the two output ports; and
at least one scheduler that matches crosspoint memory buffers and output ports.

2. The switch of claim 1, wherein the data packets received by the input ports are variable size data packets.

3. The switch of claim 1, wherein there are N/2 schedulers where N is a number of output ports.

4. The switch of claim 1, wherein there are N2/2 crosspoint memory buffers where N is a number of output ports.

5. The switch of claim 1, wherein the received data packets have a multi-cast fanout number of 2.

6. The switch of claim 1, wherein the received data packets are uniform multicast traffic data packets.

7. A method of replicating and switching multicast network packets using cross-point memory shared by output ports, the method comprising:
segmenting incoming variable-size packets into fixed length packets at an ingress side of a switch;
matching shared memory buffers and output ports, wherein each shared memory buffer comprises a queue that is exclusively dedicated to two of the output ports, and wherein the queue comprises data for each of the two output ports; and
re-assembling the fixed-length packets into outgoing variable-size packets at an egress side of the switch.

8. The method of claim 7, wherein the incoming variable-size packets have a multi-cast fanout number of 4.

9. The method of claim 7, wherein matching shared memory buffers and output ports is done using a round-robin selection process.

10. The method of claim 7, further comprising scheduling access to shared memory buffers by output ports such that only one output port accesses a particular crosspoint memory buffer at a time.

11. The method of claim 7, further comprising providing call splitting with the incoming variable-size packets.

12. The method of claim 7, wherein multicast cells at the ingress side of the switch have an N-bit multicast bitmap to indicate a destination of the multicast cells.

13. The method of claim 12, wherein each bit of the N-bit bitmap is denoted as Dj, where Dj={1 if output j is one of the cell destination, 0 otherwise.

14. A non-transitory computer-readable medium having computer-readable instructions stored thereon, the instructions comprising:
instructions for segmenting incoming variable-size packets into fixed length packets at an ingress side of a switch;
instructions for matching shared memory buffers and output ports for communication of fixed length packets, wherein each shared memory buffer comprises a queue that is exclusively dedicated to two of the output ports, and wherein the queue comprises data for each of the two output ports; and
instructions for reassembling the fixed-length packets into outgoing variable-size packets at an egress side of the switch.

15. The non-transitory computer-readable medium of claim 14, wherein the instructions further comprise instructions for matching shared memory buffers and output ports using a round-robin selection process.

16. The non-transitory computer-readable medium of claim 14, wherein there are N2/2 shared memory buffers where N is a number of output ports.

17. The non-transitory computer-readable medium of claim 16, wherein N is an even number.

18. The non-transitory computer-readable medium of claim 14, wherein multicast cells are segmented at the ingress side.

19. The non-transitory computer-readable medium of claim 18, wherein multicast cells at the ingress side of the switch have an N-bit multicast bitmap to indicate a destination of the multicast cells, and wherein each bit of the N-bit bitmap is denoted as Dj, where Dj={1 if output j is one of the cell destination, 0 otherwise.

20. The non-transitory computer-readable medium of claim 19, wherein each time a multicast copy is sent to a particular shared memory buffer, a corresponding bit in the N-bit bitmap is reset.