Abstract:
An efficient policer ( 210 - 1, . . . , 210 -M) based weighted fairness bandwidth distribution system ( 200 ) is disclosed. The system ( 200 ) is based on a plurality of policers ( 210 - 1, . . . ,    210 -M) and at least one queue ( 220 ). To achieve fairness, the rate for queuing packets is adaptively controlled. Specifically, first the queue occupancy is determined and it then is used for computing an attenuation value (Attn). This value is multiplied by the excess information rate of each policer ( 210 - 1, . . . , 210 -M) to get a new excess information rate to be enforced.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     The invention is based on a priority application EP 05292539.3 which is hereby incorporated by reference.  
         [0002]     The present invention relates generally to communication networks, and more particularly to techniques for queuing data traffic in communication networks.  
         [0003]     Weighted fair queuing (WFQ) is a well known flow-based queuing technique. The WFQ simultaneously schedules interactive traffic to the front of the queue to reduce response time and it fairly shares the remaining bandwidth between high bandwidth flows.  FIG. 1  shows a conventional WFQ system  100  that includes N queues  110 - 1  through  110 -N. Each queue  110  serves a single source (or connection) and is assigned with a respective weight. Each packet leaving its respective queue  110  is forwarded directly to an output channel  120 . The scheduling method implemented in WFQ system  100  ensures that the waiting time of packets in queues  110  is always in proportion to queue&#39;s weights.  
         [0004]     For example, a WFQ system having three queues Q1, Q2, and Q3 and respectively assigned with the weights W 1 =5,W 2 =2, and W 3 =3. The maximum allowable rate of the output channel is 10 MB/Sec. In this exemplary system, if all queues have packets waiting, then Q2 and Q3 receive a guaranteed bandwidth of 2 and 3 MB/Sec respectively, and Q1 receives a guaranteed bandwidth of 5 MB/sec. If Q1 does not have any packets waiting, then the excess bandwidth is equal to 5 MBS/second. In a WFQ system, this excess bandwidth is redistributed in proportion to the associated weights of the queues that have packets waiting. That is, when queue Q1 does not have packets waiting, the excess bandwidth is distributed proportionally to queues Q2 and Q3 so that they now receive bandwidth of 4 and 6 MB/Sec respectively.  
         [0005]     One advantage of the WFQ technique is the end-to-end delay guarantees, i.e., each packet is guaranteed a certain rate for each packet flow in the stream. Another advantage is the underutilization of capacity when flow is particularly bursty idle time. In such case the WFQ technique facilitates the redistribution of the unused bandwidth so as to preserve work-conservation property. The drawback of the WFQ technique inherits in its implementation. The conventional WFQ systems are based on multiple queues, this configuration is costly and complicated. Furthermore, queue based system requires to maintain the state of each packet. This requirement is not compliant with most of the communication networks.  
         [0006]     It would be therefore advantageous to provide an efficient weighted fairness bandwidth distribution system.  
       SUMMARY OF THE INVENTION  
       [0007]     The present invention provides an efficient weighted fair policing (WFP) system capable of weighted fairness bandwidth distribution. The system is based on a plurality of policers connected to one or more queues. To achieve fairness, the policers adaptively control the rate of policed packets.  
         [0008]     Further advantageous embodiments are defined in the dependent claims.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]     Preferred embodiments of the invention will be described below with reference to the accompanying drawings, in which  
         [0010]      FIG. 1  shows a conventional WFQ system (prior art);  
         [0011]      FIG. 2  shows a non-limiting an exemplary block diagram of an efficient weighted fairness system that discloses one embodiment of the present invention;  
         [0012]      FIG. 3  shows a non-limiting and exemplary graph of an attenuation function;  
         [0013]      FIG. 4  shows an example for the operation the disclosed weighted fairness system;  
         [0014]      FIG. 5  shows a non-limiting flowchart describing method for performing a weighted fair policing that discloses on embodiment of the present invention; and  
         [0015]      FIG. 6  shows a non-limiting an exemplary diagram of an efficient weighted fair policing system having prioritized queues that discloses one embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0016]      FIG. 2  shows a non-limiting and an exemplary block diagram of a WFP system  200  that discloses one embodiment of the present invention. WFP system  200  includes M policers  210 - 1  through  210 -M connected to a single queue  220 , a bandwidth adjustment module  230 , and an output channel  240 . Each policer  210  is parameterized by an input rate (InRate) and a maximum excess information rate (EIR max ). A policer is a rate limiting device that rejects data packets that arrive to the policer at an instantaneous rate that is above some predefined threshold rate. Specifically, each policer  210  is capable of handling a single data flow and computing a new EIR to be enforced. Namely, packets of a respective data flow are transferred from a policer  210  to queue  220  if their instantaneous rate does not exceed the rate equal to the newly computed EIR. The new EIR is computed according to the following equation:
 EIR new =Attn*EIR max ;  (1) 
 where the “Attn” parameter is determined by an attenuation function, as described in more detail below. The EIR max  is the maximum bandwidth that a policer can transfer. In fact, the EIR max  are preconfigured values that determine the weighs of the WFP algorithm. Data packets flowing through the policer cannot exceed InRate. An example for a policer  210  may be found in PCT application No. PCT/112004/00781 by Zeitak, entitled “A Policer and Method for Resource Bundling”, assigned to a common assignee and hereby incorporated by reference for all that it contains. 
 
         [0017]     The output rate of output channel  240  is determined by a maximum allowable rate (hereinafter the “RATE max ”) parameter. Congestion occurs whenever the total rate that the policers  210  allow is in excess of the RATE max . The bandwidth adjustment module  230  monitors the queue occupancy and queue ingress rate (hereinafter the “Qocc”) and computes an Attn value using the attenuation function.  FIG. 3  shows a non-limiting and exemplary graph of an attenuation function  310 . As seen, the Attn value ranges between 0 and 1, where a 1 value is when queue  220  is empty and a 0 value is when the queue  220  is full. The Attn value is sent to each of policers  210 , which in turn calculates the ElR new  to be enforced. An exemplary embodiment of the attenuation function (AT) would be:  
               AT   ⁡     (   Qocc   )       =     {           1   ;       if   ⁢           ⁢   Qocc     &lt;     Th   ⁢           ⁢     1   ⁡     [   changed   ]                       0   ;       if   ⁢           ⁢   Qocc     &gt;     Th   ⁢           ⁢   2                         Th   ⁢           ⁢   2     -   Qocc         Th   ⁢           ⁢   2     -     Th   ⁢           ⁢   1         ;       if   ⁢           ⁢   Th     &lt;   Qocc   &lt;     Th   ⁢           ⁢   2                         (   2   )             
 
 where, Th2 is a normalization factor that determines the maximum occupancy (in bytes) of the queue and Th1 is a threshold equals to α*Th2. The parameter α is configurable and in the exemplary embodiment is set to 0,6. 
 
         [0018]     It should be appreciated by a person skilled in the art that policers are based on bandwidth, hence they cannot emulate a weight fair queuing. However, by utilizing the queue occupancy to adaptively and directly control the bandwidth of each policer, ensures fairness in respect to the maximum allowable rate. That is, by controlling the policer&#39;s bandwidth, a source transmitting at a rate that is lower than its EIR max  may continue to deliver undistributed traffic; otherwise, the EIR max  is reduced.  
         [0019]      FIG. 4  shows a non-limiting flowchart  400  describing method for performing a weighted fair queuing that discloses one embodiment of the present invention. The method applies only when congestion is detected. At S 410 , the Qocc value of queue  220  is determined. In one embodiment the Qocc is computed as the average depth of the queue and over time. This is performed by measuring the number of stored bytes in the queue each time that a packet is inserted or removed from the queue. Averaging the queue depth provides a stable value of the Qocc. At S 420 , the Attn value is computed using the Qocc based on attenuation function. The Attn value may be computed using equation 2. It should be noted that the Attn value may be slightly varied until it reaches its equilibrium point. This point is achieved when the following equation is satisfied:  
               RATE   max     =       ∑   policers     ⁢       min   ⁡     (       In   ⁢           ⁢   Rate     ,     Attn   *     EIR   max         )       .               (   3   )               
         [0020]     Alternatively, in the case of no congestion the equilibrium point when the following equation is satisfied:  
               RATE   max     =       ∑   policers     ⁢       min   ⁡     (       In   ⁢           ⁢   Rate     ,     EIR   max       )       .               (   4   )             
 
         [0021]     At S 430 , the Attn value is sent to each of policers  210 . The Attn value is used for computing and enforcing the EIR new  on incoming packets as shown at S 440 . The EIR new  may be computed using equation 1.  
         [0022]     Following is a non-limiting example describing the weighted fair queuing performed by the present invention.  FIG. 5  shows an exemplary WFP system  500  that includes three policers  510 - 1 ,  510 - 2 , and  510 - 3  connected to a queue  520 . Each of policers  510 - 1 ,  510 - 2 , and  510 - 3  is configured with an EIR max  value that equals, for example, to 30 MB/Sec. A source A transmits packets through policer  510 - 1  at a rate that equals, for example, to 10 MB/Sec; a source B transmits packets through policer  510 - 2  at a rate that equals to, for example, 20 MB/Sec; and, the output rate of source C is, for example, 30 MB/Sec. The RATE max  of output channel  540  is, for example, 30 MB/Sec. It is clear that in such exemplary configuration congestion occurs.  
         [0023]     To fairly schedule packets of the input sources, the Attn value in computed. In the example above the equilibrium point is achieved when the Attn value is ⅓. This value is sent to policers  510 - 1 ,  510 - 2  and  510 - 3  that computes the EIR new  values. The computed EIR new  value of all policers  510 - 1 ,  510 - 2 , and  510 - 3  equals to 10 MB/Sec. Policers  510  cannot transmit packets at a rate that exceeds the computed EIR new , and therefore the policers together cannot deliver packets at a rate that is above RATE max .  
         [0024]     It should be noted that the Attn is adaptively changed according to traffic rates of the input sources. For instance, if source A stops transmitting packets then the depth of queue  520  reduces and therefore a new Attn value is generated. Here, the equilibrium is achieved when Attn value equals to ½. Accordingly, the EIR new  values of policers  510 - 1  and  510 - 2  are set to 10 MB/Sec.  
         [0025]     In another embodiment of the present invention the principles of WFP technique disclosed herein can be utilized in systems having a plurality of queues, where each queue has its own priority.  FIG. 6  shows an exemplary system  600  that includes N policers  610 - 1  through  610 -N connected to queues  620 - 1 ,  620 - 2 , and  620 - 3 . The priorities assign to queue  620 - 1 ,  620 - 2 , and  620 - 3  are high, low, and medium respectively. The priority determines the waiting time of packets in a queue, i.e., packets in a high priority queue are queued for relatively less time than packets in a low priority queue. In this embodiment, a different attenuation function is associated with each queue. The Attn function of low priority queue  620 - 3  (AT L ) is based on the Qocc of that queue, i.e., AT L =F [Qocc L ]. The Attn function of medium priority queue  620 - 2  (AT M ) is based on the Qocc of that queue (Qocc M ) and on the occupation of CIR bytes QoccLC in the low priority queue  620 - 3 , i.e., AT M =F [Qocc M,  QoccLC]. The Attn function of high priority queue  620 - 1  (AT M ) is based on the Qocc of queue  620 - 1  as well as on the occupation of CIR bytes QoccLC in the the low priority queue  620 - 3  and the occupation of CIR bytes QoccMC in) the medium priority queue  620 - 3 , i.e., AT M =F[Qocc M,  QoccMC, QoccLC]. The use of the CIR occupation values of lower priority queues to set the value of higher priority queues is performed in order to deliver packets having a committed information rate (CIR) from lower priority queues. In fact, the Qocc_C of the low and medium priority queues is a function of the number of CIR bytes in the respective queue.