No longer able to add multiple TC rules on same handle in current kernels (4.5.5 works, but anything current does not)
I think this appears pretty straightforward, so either this is a pretty major flaw/bug that has not been addressed or I am not aware of a workaround (hopefully the latter).
This works in 4.5.5, but some time between that and 4.17 onwards it has been broken:
# tc filter add dev ipenc0 parent 1:0 handle ::101 protocol ip prio 1 u32 match ip dst 224.1.1.1/32 flowid 1:5 > WORKS
# tc filter add dev ipenc0 parent 1:0 handle ::101 protocol ip prio 1 u32 match ip dst 224.2.2.2/32 flowid 1:5
# RTNETLINK answers: No space left on device
If I change the handle id, it will work, but that's not solving the issue.
The problem started when the kernel was changed to use a radix tree to store these rules, and from what I'm seeing in the code, it is only able to store 1 rule per handle. Is this not a fundamental flaw??
Any, and all help is very appreciated. Thank you.
|