This is working in 4.5.5 and is not working in 4.18.12 onward. Not sure about the versions in between: example: # tc filter add dev ipenc0 parent 1:0 handle ::102 protocol ip prio 1 u32 match ip dst 224.44.44.4/32 flowid 1:5 //successfull, now every other addition will not be: # tc filter add dev ipenc0 parent 2:0 handle ::102 protocol ip prio 1 u32 match ip dst 224.44.44.4/32 flowid 2:102 RTNETLINK answers: No space left on device We have an error talking to the kernel This appears to be almost the same bug that was supposedly fixed, but does not appear to be: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1797669
This has something to do with the radix tree thing that was introduced. It is unable to extend the tree past the root node. So the first rule goes in, but any additional ones: idr_get_free (/lib/radix-tree.c) returns ENOSPC
Copy/pasted incorrect 2nd command above, in order to replicate: # tc filter add dev ipenc0 parent 1:0 handle ::102 protocol ip prio 1 u32 match ip dst 224.44.44.4/32 flowid 1:5 This Works, but now the next one(s) will not: # tc filter add dev ipenc0 parent 1:0 handle ::102 protocol ip prio 1 u32 match ip dst 224.22.22.2/32 flowid 1:5