Dear all,
We have a question regarding the NS-2 implementations of RED, CoDel, PIE and
others AQMs. Especially, we believe that the way buffer-overflows are managed
is not the same for each AQM scheme.
In "Multimedia-unfriendly TCP Congestion Control and Home Gateway Queue
Management" (L. Stewart et al.) details that :
"PS: The queue is packet (slot) based, and the maximum queue length is
specified as an integer number of packets:
if (NumPktsInQ ≥ PktQueueLength)
drop incoming packet"
However:
1- In droptail.cc: if((q_->length() + 1) >= qlim_) buffer overflow is detected
2- In RED/PIE/CoDel/etc.: if((q_->length() >= qlim_) buffer overflow is detected
In the case of RED/PIE, when there are buffer overflows, the incoming packet
may not be dropped. As a result, the incoming packet needs to be stored before
the other packet is selected for drop: if((q_->length() >= qlim_) should be
avoided - and if((q_->length() + 1) >= qlim_) preferred.
In the case of CoDel, when there are buffer overflows, the incoming packets are
dropped. if((q_->length() >= qlim_) is a good solution.
Anyway, the authors of "Multimedia-unfriendly TCP Congestion Control and Home
Gateway Queue Management" (L. Stewart et al.) illustrate the impact of this
setting that should be carefully discussed. This point is of interest while
comparing the performance of various AQM schemes with NS-2.
We believe that AQMs that need information about incoming packets before
tail-dropping them MUST detect buffer over flow when if((q_->length() + 1) >=
qlim_).
Any thoughts?
Kind regards,
Amadou B. Bagayoko & Nicolas Kuhn
_______________________________________________
aqm mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/aqm