Page 1 of 1

Any experts in Linux tc filter actions here?

Posted: 07 Jul 2020, 15:37
by marekm
I'm looking to do a seemingly simple thing that should be possible with u32 match and skbedit action, but can't seem to figure out the proper syntax.
The error I'm getting is usually "Error: Class doesn't support blocks." and I can't even find this string anywhere in the tc binary.
Running an accel-ppp server, with PPPoE clients on a few tagged VLANs on eth1.
I'd like to set higher priority (3 bits in the VLAN header, change default 0 to 7) in frames that egress from eth1 (through the wireless network to customers), which are either PPPoE discovery (ethertype 0x8863) or PPPoE session LCP (ethertype 0x8864 AND control code 0xC021).
Note that ethertype here is the one encapsulated inside VLAN.
No HTB or other traffic shaping, no iptables etc. - just this, reduce loss of these specific layer 2 frames on a heavily loaded wireless network (which makes use of the VLAN priority in WMM QoS) to speed up connect and reduce random disconnects. (I know about adaptive LCP echo - seems problematic though, as it keeps sessions alive even if long gone at the client, so I would prefer the old way of LCP echo at regular intervals like many SOHO routers do anyway.)
As the next step, it might be useful to give different priority to data traffic of different customers by using some RADIUS attribute. But let's start with simple things first.
Cisco describes it here - https://www.cisco.com/c/en/us/td/docs/i ... oe-xe.html
Long ago it was asked if it is possible on MikroTik but still no clear answer - https://forum.mikrotik.com/viewtopic.php?t=75286
(it would still be useful to do on MikroTik wireless CPEs in the upload direction)