On 13/09/12 14:08, Jamal Hadi Salim wrote:
On 12-09-13 11:22 AM, David Ward wrote:
quoted
gred_dequeue() and gred_drop() do not seem to get called when the
queue is empty, meaning that we never start idling while in WRED
mode. And since qidlestart is not stored by gred_store_wred_set(),
we would never stop idling while in WRED mode if we ever started.
This messes up the average queue size calculation that influences
packet marking/dropping behavior.
Now, we start WRED mode idling as we are removing the last packet
from the queue. Also we now actually stop WRED mode idling when we
are enqueuing a packet.
Cc: Bruce Osler <redacted>
Signed-off-by: David Ward <redacted>
This is one is not so obvious. Iam assuming you vetted it via some tests.
In which case:
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
cheers,
jamal
Before applying this patch, the average queue size (as seen with "tc -s
qdisc") remained constant forever after I stopped sending any packets
through the interface -- it didn't taper off as you would expect. After
the patch, the average queue size will now taper off if packets are not
being sent.
David