* [LARTC] limiting users on a 128kbit line
@ 2003-02-19 21:40 radus
2003-02-20 14:17 ` radus
2003-02-20 16:10 ` Mathieu Deziel
0 siblings, 2 replies; 3+ messages in thread
From: radus @ 2003-02-19 21:40 UTC (permalink / raw)
To: lartc
Hello!
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 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 ?
Will this setup work if the bandwidth is full ?
Since it's not a guaranteed bandwidth can i put no ceiling but still all the
ips to have their equal share ?
I've set r2q to 1 (it's the smallest one possible, no ? ) and it receive
warnings that the quantum is too small
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/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [LARTC] limiting users on a 128kbit line
2003-02-19 21:40 [LARTC] limiting users on a 128kbit line radus
@ 2003-02-20 14:17 ` radus
2003-02-20 16:10 ` Mathieu Deziel
1 sibling, 0 replies; 3+ messages in thread
From: radus @ 2003-02-20 14:17 UTC (permalink / raw)
To: lartc
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/
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [LARTC] limiting users on a 128kbit line
2003-02-19 21:40 [LARTC] limiting users on a 128kbit line radus
2003-02-20 14:17 ` radus
@ 2003-02-20 16:10 ` Mathieu Deziel
1 sibling, 0 replies; 3+ messages in thread
From: Mathieu Deziel @ 2003-02-20 16:10 UTC (permalink / raw)
To: lartc
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/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2003-02-20 16:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-19 21:40 [LARTC] limiting users on a 128kbit line radus
2003-02-20 14:17 ` radus
2003-02-20 16:10 ` Mathieu Deziel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.