• stephen hemminger's avatar
    sched: CHOKe flow scheduler · 45e14433
    stephen hemminger authored
    CHOKe ("CHOose and Kill" or "CHOose and Keep") is an alternative
    packet scheduler based on the Random Exponential Drop (RED) algorithm.
    
    The core idea is:
      For every packet arrival:
      	Calculate Qave
    	if (Qave < minth)
    	     Queue the new packet
    	else
    	     Select randomly a packet from the queue
    	     if (both packets from same flow)
    	     then Drop both the packets
    	     else if (Qave > maxth)
    	          Drop packet
    	     else
    	       	  Admit packet with proability p (same as RED)
    
    See also:
      Rong Pan, Balaji Prabhakar, Konstantinos Psounis, "CHOKe: a stateless active
       queue management scheme for approximating fair bandwidth allocation",
      Proceeding of INFOCOM'2000, March 2000.
    
    Help from:
         Eric Dumazet <eric.dumazet@gmail.com>
         Patrick McHardy <kaber@trash.net>
    Signed-off-by: default avatarStephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    45e14433
sch_choke.c 15.4 KB