Tracking packet/s in the server

Phil Mayers p.mayers at
Thu Feb 23 15:02:13 CET 2012

On 23/02/12 12:04, Alan DeKok wrote:

>    I'm not sure what benefits WRED would add.  Right now the "drop
> packets" limit is a hard limit.  But dropping packets means that the
> "add to queue" counter is NOT incremented.  The result is a few packets
> will be dropped, the "input pps" will go below the "output pps", and it
> will allow more packets to be added to the queue.
>    The result is that the queue will be filled no faster than it's
> emptied.  With WRED, the queue will continue to grow until it's full.
> I'm not sure how that helps...


RED-like behaviour makes sense if the sending system can detect the loss 
and *slow down*. It's not clear to me that this is the case; the NAS can 
re-send, and then stop re-sending, but will that actually decrease 
offered load at the radius server? I'd need to work it out on paper - my 
brain is full of DWDM at the moment! But it seems to me that, if you 
wanted RED-like behaviour i.e. reduce offered load at the radius server 
then the heuristic should be:

if queue_len > threshold:
   compute drop probability
   if (drop AND Acct-Status-Type==Interim)
     send immediate Accounting-Response code=ok

i.e. shut the NAS up immediately, for interim requests only, and don't 
execute the server {} block.

I think this would be a bad idea.

OTOH, it *might* make sense to expose the queue length / percentage as a 
control: variable to the server{} block; that way, if you wanted to, 
local sites could do this:

preacct {
   if (control:FreeRADIUS-Acct-QueueLoad > 50) {
   else {

[It's a shame there isn't an Accounting-Response code "Overloaded"; this 
could apply some kind of real-time delta to the Acct-Interim-Interval 
associated with the session(s) on the NAS, But that's rather pie in the sky]

More information about the Freeradius-Devel mailing list