All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.