htb issue with large q limits

kernel mustard <[email protected]>
Newsgroups org.kernel.vger.lartc
Message-ID <CAG8aYvPBhX303eFv=zGwTmGjh8Nk4GUD0srEH98pAc31KsFXuA@mail.gmail.com>
 Below is a perplexing problem that I am hoping the LARTC kernel
experts can help me with.


We have a traffic control system based upon htb which when packets are
directed to it from a bridge between eth2 and eth3 works great.
Accurate adherence to specified link rates based upon priority is
achieved.

For example, if I have a 2 Mbps UDP stream going to Q-PRI4 and another
2 Mbps UDP stream going to Q-PRI5 with a link rate of 800Kbps, then
800K of traffic is sent from Q-PRI4 with and the rest of the packets
on Q-PRI4 are dropped, and 100% of the packets directed to Q-PRI5 are
dropped.  This is exactly how it should work.

BUT using all the same traffic control rules, if we intercept packets
on eht2 with PF-RING and then output to eth3 with raw socket packet
sends , the QDisc does not work the same.  Instead Q-PRI4 and Q-PRI
both get 400K of traffic.  The higher priority of Q-PRI4 is not
respected.

Why does it behave differently when intercepting packets from PF-RING
and then doing raw sends  versus how it works with a classic bridge ?

Another observation is that if I have a queue limit of 45 or less.
Then it works correctly in both scenarios.  But if I have a queue
limit higher than 45 then it disregards the priority of the Q.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.