• David Ward's avatar
    net_sched: gred: actually perform idling in WRED mode · ba1bf474
    David Ward authored
    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 <brosler@cisco.com>
    Signed-off-by: default avatarDavid Ward <david.ward@ll.mit.edu>
    Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ba1bf474
sch_gred.c 13.8 KB