Nicolas, Good catch although I tend to think that the impact of this would be more visible on FIFO/DropTail queues; with an AQM presumably set at a low threshold this impact will probably be less profound (although depending on too many other factors, such as the load, multiplexing level, BDP, etc).
Naeem On Fri, Feb 21, 2014 at 1:10 PM, Ilpo Järvinen <[email protected]> wrote: > On Fri, 21 Feb 2014, Nicolas KUHN wrote: > >> 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? > > While doing some tests with RED using ns2 in the past, I noticed this same > difference. I patched ns2 RED to get equal behavior (patch attached but it > probably breaks some of the ns2 tests which is why I didn't consider > trying to upstream it). > > > -- > i. > _______________________________________________ > aqm mailing list > [email protected] > https://www.ietf.org/mailman/listinfo/aqm > _______________________________________________ aqm mailing list [email protected] https://www.ietf.org/mailman/listinfo/aqm
