bug in sfq fairness

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi,
I found a strange behavior with SFQ qdisc when several TCP flows start at the same time:  despite having different hash values , they have a good chances to fall in the same slot which implies no more fairness than a simple FIFO.
This is due to the fact that the hash table for a flow is not cleared after dequeuing a slot whith a single packet in queue and so the same slot might be shared without hash colisions.
proposed patch :

--- kernel/linux-2.4.18/net/sched/sch_sfq.c     Tue May  7 16:22:23 2002
+++ sch_sfq.c   Tue Aug 20 18:07:03 2002
@@ -343,6 +343,7 @@
        if (q->qs[a].qlen == 0) {
                a = q->next[a];
                if (a == old_a) {
+                       q->ht[q->hash[a]] = SFQ_DEPTH;
                        q->tail = SFQ_DEPTH;
                        return skb;
                }

any comments ?

-- 
Vincent EGAL
Email : egal@ipanematech.com
 

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux