Radus, see below.> > I''ve been trying to write a traffic shaper for a 128kbit line with this setup > : > 5 computers that get dedicated bandwidth and the rest go in a pool with bigger > priorities. >I do not see the priorities in your script. Only some of the filters have priorities, but it has nothing to do with scheduling (you should give prioirties to the HTB classes).> > I made the attached script, but it seems it doesn''t work... > > It sends the traffic coming from the dedicated ips to the default class. > Where is the error ? >You mean it all goes to 1:14 ?> > > I''ve set r2q to 1 (it''s the smallest one possible, no ? ) and it receive > warnings that the quantum is too small >Quantum = rate/r2q For class 1:12, quantum = 10k/r2q = 10*1024(8*r2q) = 1280Bytes. This is smaller than MTU, that''s why it complains that quantum is too small. Same thing for classes 1:13 and 1:14, quantum = 640 Bytes, which is smaller them MTU. What you can (and should) do is specify the quantum manually.> > Thanks in advance.... > > Radu > > Here''s the script : > > tc qdisc add dev eth1 root handle 1: htb default 14 r2q 1 > tc class add dev eth1 parent 1: classid 1:1 htb rate 128kbit burst 2k > tc class add dev eth1 parent 1:1 classid 1:10 htb rate 48kbit burst 2k > > tc class add dev eth1 parent 1:1 classid 1:20 htb rate 12kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:1 classid 1:30 htb rate 12kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:1 classid 1:40 htb rate 12kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:1 classid 1:50 htb rate 12kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:1 classid 1:11 htb rate 20kbit ceil 128kbit > burst 2k > > tc class add dev eth1 parent 1:11 classid 1:12 htb rate 10kbit burst 2k > tc class add dev eth1 parent 1:11 classid 1:13 htb rate 5kbit burst 2k > tc class add dev eth1 parent 1:11 classid 1:14 htb rate 5kbit burst 2k > > tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 15 > tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 15 > tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 15 > tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 15 > > tc qdisc add dev eth1 parent 1:12 handle 12: sfq perturb 15 > tc qdisc add dev eth1 parent 1:13 handle 13: sfq perturb 15 > tc qdisc add dev eth1 parent 1:14 handle 14: sfq perturb 15 > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.45 > flowid 1:20 > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.4 > flowid 1:30 > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.50 > flowid 1:40 > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.38 > flowid 1:50 > > tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip sport 80 > 0xffff flowid 1:12 > tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip sport 25 > 0xffff flowid 1:13 > tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip sport 110 > 0xffff flowid 1:13_______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Hello! First, thanks for the reply...> > 5 computers that get dedicated bandwidth and the rest go in a pool with > > bigger priorities. > > I do not see the priorities in your script. Only some of the filters have > priorities, but it has nothing to do with scheduling (you should give > prioirties to the HTB classes). >I made priorities only for the big class where the default traffic goes, so that the remaining 5 computers share the bandwidth equally (when it''s free) I should write prios for all classes ?> You mean it all goes to 1:14 ?Yes, exactly that....> > Quantum = rate/r2q > For class 1:12, quantum = 10k/r2q = 10*1024(8*r2q) = 1280Bytes. > This is smaller than MTU, that''s why it complains that quantum is too > small. > > Same thing for classes 1:13 and 1:14, quantum = 640 Bytes, which is smaller > them MTU. > > What you can (and should) do is specify the quantum manually. >Could you give me an example for a class on how to specify the quantum ? Radu> > Here''s the script : > > > > tc qdisc add dev eth1 root handle 1: htb default 14 r2q 1 > > tc class add dev eth1 parent 1: classid 1:1 htb rate 128kbit burst 2k > > tc class add dev eth1 parent 1:1 classid 1:10 htb rate 48kbit burst 2k > > > > tc class add dev eth1 parent 1:1 classid 1:20 htb rate 12kbit ceil > > 128kbit burst 2k > > > > tc class add dev eth1 parent 1:1 classid 1:30 htb rate 12kbit ceil > > 128kbit burst 2k > > > > tc class add dev eth1 parent 1:1 classid 1:40 htb rate 12kbit ceil > > 128kbit burst 2k > > > > tc class add dev eth1 parent 1:1 classid 1:50 htb rate 12kbit ceil > > 128kbit burst 2k > > > > tc class add dev eth1 parent 1:1 classid 1:11 htb rate 20kbit ceil > > 128kbit burst 2k > > > > tc class add dev eth1 parent 1:11 classid 1:12 htb rate 10kbit burst 2k > > tc class add dev eth1 parent 1:11 classid 1:13 htb rate 5kbit burst 2k > > tc class add dev eth1 parent 1:11 classid 1:14 htb rate 5kbit burst 2k > > > > tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 15 > > tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 15 > > tc qdisc add dev eth1 parent 1:40 handle 40: sfq perturb 15 > > tc qdisc add dev eth1 parent 1:50 handle 50: sfq perturb 15 > > > > tc qdisc add dev eth1 parent 1:12 handle 12: sfq perturb 15 > > tc qdisc add dev eth1 parent 1:13 handle 13: sfq perturb 15 > > tc qdisc add dev eth1 parent 1:14 handle 14: sfq perturb 15 > > > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst > > 192.168.0.45 flowid 1:20 > > > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst 192.168.0.4 > > flowid 1:30 > > > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst > > 192.168.0.50 flowid 1:40 > > > > tc filter add dev eth1 protocol ip parent 1: u32 match ip dst > > 192.168.0.38 flowid 1:50 > > > > tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip sport 80 > > 0xffff flowid 1:12 > > tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip sport 25 > > 0xffff flowid 1:13 > > tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip sport > > 110 0xffff flowid 1:13 >_______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Radus, see below. Mathieu. radus wrote:> > I made priorities only for the big class where the default traffic goes, so > that the remaining 5 computers share the bandwidth equally (when it''s free) > I should write prios for all classes ? >Priorities to the filter means which filter is tried first. Prio to HTB classes will influence the sheduling and borrowing of HTB.> > > You mean it all goes to 1:14 ? > > Yes, exactly that....Default should be 11, not 14. Your three filters filtering on sport should have as parent 1: (as right now) and they should all have flowid 1:11. Then, you create three similar filters with parent 1:11 and flowid 1:12, 1:13 and 1:14 respectively. Something like: tc filter add dev eth1 protocol ip parent 1: prio 1 u32 match ip sport 80 0xffff flowid 1:11 tc filter add dev eth1 protocol ip parent 1: prio 2 u32 match ip sport 25 0xffff flowid 1:11 tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip sport 110 0xffff flowid 1:11 tc filter add dev eth1 protocol ip parent 1:11 u32 match ip sport 80 0xffff flowid 1:12 tc filter add dev eth1 protocol ip parent 1:11 u32 match ip sport 25 0xffff flowid 1:13 tc filter add dev eth1 protocol ip parent 1:11 u32 match ip sport 110 0xffff flowid 1:13> > > > > Quantum = rate/r2q > > For class 1:12, quantum = 10k/r2q = 10*1024(8*r2q) = 1280Bytes. > > This is smaller than MTU, that''s why it complains that quantum is too > > small. > > > > Same thing for classes 1:13 and 1:14, quantum = 640 Bytes, which is smaller > > them MTU. > > > > What you can (and should) do is specify the quantum manually. > > > Could you give me an example for a class on how to specify the quantum ? >For example: tc class add dev eth1 parent 1:11 classid 1:14 htb rate 5kbit burst 2k quantum 1600 Note that quantum will influence the borrowing of HTB. See the HTB home page for details. _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/