ruleset: skip _iifname match for !tcp in mss fix
Add explicit l4proto match before _ifname to avoid burning cycles for other protocols, eliminating measurable (iperf3) udp re-ordering Displayed back rules show pessimal combo even new one is loaded.
Fixes: couple of issues pertaining UDP ordering in games and cheap loudspeakers TBA Signed-off-by: Andris PE [email protected]
in
table inet t {
chain c {
oifname "eth1" tcp flags & (fin | syn | rst) == syn tcp option maxseg size set rt mtu
meta l4proto tcp oifname "eth1" tcp flags & (fin | syn | rst) == syn tcp option maxseg size set rt mtu
}
}
out
inet t c
[ meta load oifname => reg 1 ]
[ cmp eq reg 1 0x31687465 0x00000000 0x00000000 0x00000000 ]
[ meta load l4proto => reg 1 ]
[ cmp eq reg 1 0x00000006 ]
...
inet t c
[ meta load l4proto => reg 1 ]
[ cmp eq reg 1 0x00000006 ]
[ meta load oifname => reg 1 ]
[ cmp eq reg 1 0x31687465 0x00000000 0x00000000 0x00000000 ]
...
Kind of still sucks for tcp established connections.
do you mean by that that this is just a workaround?
tcp mss fix will still do the name comparison for each tcp packet. This just removes useless check for measurably bad offloaded udp streams. just a side observation in the context.
Swapped to draft, i got better idea, but this is still minimally intrusive for stable trains