Hi, recently Martin explained, how to avoid these "tc filter" lines in our scripts. unfortunatly it doesn''t work with my setup. i add a "dummy" tc filter - line: tc filter add dev imq1 parent 10:0 protocol ip prio 1 handle 1 fw classid 10:10 which of course works, but i have no fwmark "1", but as i thought it''s just a "dummy" -line for tc filter to work, i gues/think that''s ok. further i just set marks with iptables, and generate the right qdiscs/classes for them: ack=0x00100010 # for classid 10:10 high=0x00100011 # 10:11 norm=0x00100012 # and so low=0x00100013 # on but it doesn''t work :( am i missing something?! i gues it''s the "not-really-dummy" tc-filter line ?! :) thank you very much Tobias
Hi :) Tobias Geiger wrote:> Hi, > > recently Martin explained, how to avoid these "tc filter" lines in our > scripts. > unfortunatly it doesn''t work with my setup. > i add a "dummy" tc filter - line: > > tc filter add dev imq1 parent 10:0 protocol ip prio 1 handle 1 fw classid 10:10 > > which of course works, but i have no fwmark "1", but as i thought it''s > just a "dummy" -line for tc filter to work, i gues/think that''s ok. > > further i just set marks with iptables, and generate the right > qdiscs/classes for them: > > ack=0x00100010 # for classid 10:10 > high=0x00100011 # 10:11 > norm=0x00100012 # and so > low=0x00100013 # on >I guess the problem are the encoded id''s, in my opinion they have to be calculated like this: (classid << 16) + leafid So 10:10 would translate to 655370 decimal or 0xa000a hex. bye, patrick
On Mon, Apr 29, 2002 at 04:59:33PM +0200, Patrick McHardy wrote:> Hi :) > > Tobias Geiger wrote: > >Hi, > > > >recently Martin explained, how to avoid these "tc filter" lines in our > >scripts. > >unfortunatly it doesn''t work with my setup. > >i add a "dummy" tc filter - line: > > > >tc filter add dev imq1 parent 10:0 protocol ip prio 1 handle 1 fw classid > >10:10 > > > >which of course works, but i have no fwmark "1", but as i thought it''s > >just a "dummy" -line for tc filter to work, i gues/think that''s ok. > > > >further i just set marks with iptables, and generate the right > >qdiscs/classes for them: > > > > ack=0x00100010 # for classid 10:10 > > high=0x00100011 # 10:11 > > norm=0x00100012 # and so > > low=0x00100013 # on > > > > I guess the problem are the encoded id''s, in my opinion they have to be > calculated like this: > > (classid << 16) + leafid > So 10:10 would translate to 655370 decimal or 0xa000a hex. > > bye, > patrick >hi patrick :) hmm. here''s a posting from martin: -------------------------------- > > You can use only one > > tc filter add dev ppp0 parent 1: protocol ip prio 1 handle 1 fw > > > > and set classid directly in iptables like: > > iptables -t mangle -A to-dsl -p tcp --dport 80 -j MARK --set-mark 0x10010 > > iptables -t mangle -A to-dsl -p tcp --sport 24 -j MARK --set-mark 0x10020 > > > > and so on .. > > devik > Thx. > Even I ''m learning from this list :) > But how do you translate xx:xx to HEX ? handle numbers in tc ARE in hex, so that: ... classid a23f:334d can be written as --set-mark 0xa23f334d devik -------------------------------------------- but nevertheless i tried to convert the classid''s to hex ... no success :( Greetings Tobias
Hello Tobias!> unfortunatly it doesn''t work with my setup. > i add a "dummy" tc filter - line: > > tc filter add dev imq1 parent 10:0 protocol ip prio 1 handle 1 fw classid10:10 As far as I understood Devik, this should look like: tc filter add dev imq1 parent 10:0 protocol ip prio 1 handle 1 fw So no classid term (makes sense, since the classid term is incorporated into the --mark statement). Greetings Nils
On Tue, Apr 30, 2002 at 11:33:12AM +0200, Nils Lichtenfeld wrote:> Hello Tobias! >Hello Nils,> > unfortunatly it doesn''t work with my setup. > > i add a "dummy" tc filter - line: > > > > tc filter add dev imq1 parent 10:0 protocol ip prio 1 handle 1 fw classid > 10:10 > > As far as I understood Devik, this should look like: > tc filter add dev imq1 parent 10:0 protocol ip prio 1 handle 1 fwoutput: "RTNETLINK answers: Invalid argument" i can try this in whatever stage of my script (before iptables, after qdiscs and classes, whatever), it''s always that "answer" :)> > So no classid term (makes sense, since the classid term is incorporated into > the --mark statement).yes, i thought so too. that''s why i wanted to call it "dummy"-line :)> > Greetings Nils >Greetings Tobias
> > As far as I understood Devik, this should look like: > > tc filter add dev imq1 parent 10:0 protocol ip prio 1 handle 1 fw > > output: > "RTNETLINK answers: Invalid argument" > i can try this in whatever stage of my script (before iptables, after > qdiscs and classes, whatever), it''s always that "answer" :)You have to remove the handle parameter. That parameter = mark, so marking with 20 will put the packets in 10:20. Stef -- stef.coene@docum.org "Using Linux as bandwidth manager" http://www.docum.org/ #lartc @ irc.openprojects.net