Bug #11192
openUsing Limiters causes out of order packets within one TCP or UDP flow
0%
Description
I am using following limiters:
pipe 1 config bw 85Mb queue 2000 mask all droptail
sched 1 config pipe 1 type qfq
queue 1 config pipe 1 queue 2000 mask all codel target 20ms interval 200ms ecn
pipe 2 config bw 85Mb queue 2000 mask all droptail
sched 2 config pipe 2 type qfq
queue 2 config pipe 2 queue 2000 mask all codel target 20ms interval 200ms ecn
(to get "mask all" option i have patched shaper.inc, but problem is reproducible with default shaper.inc also)
And using this rule:
match in on { ovpns8 } inet from 192.168.8.0/22 to 192.168.8.0/22 tracker 1608854657 dnqueue( 2,1) label "USER_RULE: Shape VPN Traffic"
As a result - I get a lot out-of-order packets in TCP / UDP streams when this rule is applied, and no reorder when firewall rule is turned off.
I have tried different types of queue management and schedulers, result is always the same.
I have also tried to limit network to 1 thread, net.isr.maxthreads=1 , no success.
Disabling net.inet.ip.dummynet.io_fast (via patching shaper.inc) gives no result too.
Attaching wireshark screenshow showing typical TCP out-of-order packets block (for 50-60 Mbit stream).
(There are hundreds of such blocks within all capture, but complete wireshark capture is 40 Megabytes for 6 seconds, so I can not attach it to ticket.)
Also attaching output of iperf3 with OUT OF ORDER errors for UDP 30 Mbit stream.
If i raise pipe bandwidth to 185Mb then probability of out-of-order becomes higher for the same traffic.
Files