Hi, I''m using a linux 2.4.29 kernel and having trouble getting my filters added. The script I''m editing I actually use on a different system currently. Is this a tc/iproute/kernel type incompatibility? Any ideas how to debug it? Thanks, Jeremy # create a qdisc on T1 interface tc qdisc add dev w1g1 root handle 1: htb default 77 OK # create a master class tc class add dev w1g1 parent 1: classid 1:1 htb rate 1400kbit OK # create a leaf class tc class add dev w1g1 parent 1:1 classid 1:10 htb rate 175kbit \ ceil 1400kbit prio 0 OK # create a SFQ qdisc within our subclass tc qdisc add dev w1g1 parent 1:10 handle 10: sfq perturb 10 OK # filter traffic on iptables mark 10 tc filter add dev w1g1 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10 Error: RTNETLINK answers: Invalid argument
jeremy@ossnetworks.org wrote:> > Hi, > > I''m using a linux 2.4.29 kernel and having trouble getting my filters added. The > script I''m editing I actually use on a different system currently. Is this a > tc/iproute/kernel type incompatibility? Any ideas how to debug it? > > Thanks, Jeremy > > # create a qdisc on T1 interface > tc qdisc add dev w1g1 root handle 1: htb default 77 > OK > > # create a master class > tc class add dev w1g1 parent 1: classid 1:1 htb rate 1400kbit > OK > > # create a leaf class > tc class add dev w1g1 parent 1:1 classid 1:10 htb rate 175kbit \ > ceil 1400kbit prio 0 > OK > > # create a SFQ qdisc within our subclass > tc qdisc add dev w1g1 parent 1:10 handle 10: sfq perturb 10 > OK > > # filter traffic on iptables mark 10 > tc filter add dev w1g1 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10 > Error: RTNETLINK answers: Invalid argumentI just ran that script on a 2.4.32 kernel and it does not error. Be sure to destruct before running: tc qdisc del dev w1g1 root I doubt that the above is everything in your script. Because there is a problem with prio 49152 (tc -s filter show dev w1g1), my hunch is that you will find that "prio 0" is the problem. Try E.G. "prio 9" for all your filter lines. (Rhetorical: What device is w1g1?) -- gypsy
I found my problem. Turned out I didn''t have the QOS fwmark routing flag enabled in the kernel for that host. Those RTNETLINK errors are so useless. I wish this was documented in that section of the LARTC howto. I looked for where to submit that as a suggestion and just see 20 different authors listed. Documenting the required kernel settings for match u32, fwmark, etc. where they are each discussed would seem like a useful thing. BTW, w1g1 is a sangoma wanpipe T1. Jeremy Quoting gypsy <gypsy@iswest.com>:> jeremy@ossnetworks.org wrote: > > > > Hi, > > > > I''m using a linux 2.4.29 kernel and having trouble getting my filters > added. The > > script I''m editing I actually use on a different system currently. Is this > a > > tc/iproute/kernel type incompatibility? Any ideas how to debug it? > > > > Thanks, Jeremy > > > > # create a qdisc on T1 interface > > tc qdisc add dev w1g1 root handle 1: htb default 77 > > OK > > > > # create a master class > > tc class add dev w1g1 parent 1: classid 1:1 htb rate 1400kbit > > OK > > > > # create a leaf class > > tc class add dev w1g1 parent 1:1 classid 1:10 htb rate 175kbit \ > > ceil 1400kbit prio 0 > > OK > > > > # create a SFQ qdisc within our subclass > > tc qdisc add dev w1g1 parent 1:10 handle 10: sfq perturb 10 > > OK > > > > # filter traffic on iptables mark 10 > > tc filter add dev w1g1 parent 1:0 prio 0 protocol ip handle 10 fw flowid > 1:10 > > Error: RTNETLINK answers: Invalid argument > > I just ran that script on a 2.4.32 kernel and it does not error. Be > sure to destruct before running: > tc qdisc del dev w1g1 root > > I doubt that the above is everything in your script. Because there is a > problem with prio 49152 (tc -s filter show dev w1g1), my hunch is that > you will find that "prio 0" is the problem. Try E.G. "prio 9" for all > your filter lines. > > (Rhetorical: What device is w1g1?) > -- > gypsy >