From: Patrick Nagelschmidt <dto@gmx.net>
To: lartc@vger.kernel.org
Subject: [LARTC] CBQ only works 'bounded'
Date: Fri, 07 Dec 2001 01:29:59 +0000 [thread overview]
Message-ID: <marc-lartc-100768870231848@msgid-missing> (raw)
what i try to achieve with QoS is to divide my outgoing traffic in one high priority class and one low priority class. i have an asymetric connection with 768 kbit/s downstream and 128 kbit/s upstream and want to avoid ack-congestions by sending ack packets through the high priority class and normal outbound traffic through the low priority class. what i've done so far is the following:
#create the root class
tc qdisc add dev ppp0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 mpu 64
#limit outbound traffic to 128kbit/s total
tc class add dev ppp0 parent 1: classid 1:1 cbq bandwidth 10Mbit rate 128kbit allot 1514 weight 12.8kbit prio 8 maxburst 20 avpkt 1000 bounded
#create a high priority class
tc class add dev ppp0 parent 1:1 classid 1:10 cbq bandwidth 10Mbit rate 20kbit allot 1514 weight 2.0kbit prio 1 maxburst 20 avpkt 1000
#create a low priority class
tc class add dev ppp0 parent 1:1 classid 1:20 cbq bandwidth 10Mbit rate 108kbit allot 1514 weight 10.8kbit prio 7 maxburst 20 avpkt 1000 bounded
#use sfq for both
tc qdisc add dev ppp0 parent 1:10 sfq quantum 1514b perturb 10
tc qdisc add dev ppp0 parent 1:20 sfq quantum 1514b perturb 10
#put everything in the low priority class
tc filter add dev ppp0 parent 1: protocol ip prio 20 u32 \
match u8 0x00 0x00 \
flowid 1:20
#except ack-packets (header length 0x05, total l. 0x34, ack set)
tc filter add dev ppp0 parent 1: protocol ip prio 10 u32 \
match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 \
match u8 0x34 0xff at 3 \
match u8 0x10 0xff at 33 \
flowid 1:10
the good thing is that this works. of course this doesn't mean its error-free, so please tell me if i've done something terribly wrong.
if i use this configurtion and upload with ~14.5kb/s (ack's not included) i can still download with ~84kb/s. but what i dont understand is that the whole thing stops working if i remove the 'bounded' from classid 1:20. i thought this would release the bandwidth of 1:10 to 1:20 _only_ if 1:10 doesn't need it. i set the prio of 1:10 to the highest value to ensure that if any ack-packets should be sent via 1:10 these packets get send first. but my download speed decreases to ~20kb/s if i upload at the same time. i think this indicates that ack packets have to wait behind some bigger data packets until they get sent. in numbers, i have with 1:20 set to 'bounded':
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
Sent 461859 bytes 1189 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 605 undertime 0
class cbq 1:10 parent 1:1 leaf 8146: rate 20Kbit prio 1
Sent 33372 bytes 828 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 1.57292e+06 undertime 0
class cbq 1:1 parent 1: rate 128Kbit (bounded) prio no-transmit
Sent 461859 bytes 1189 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 41470 undertime 0
class cbq 1:20 parent 1:1 leaf 8147: rate 108Kbit (bounded) prio 7
Sent 428487 bytes 361 pkts (dropped 0, overlimits 1860)
backlog 15p
borrowed 0 overactions 197 avgidle -82792 undertime 84903
and without 'bounded'
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
Sent 1283284 bytes 1397 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 624 undertime 0
class cbq 1:10 parent 1:1 leaf 8148: rate 20Kbit prio 1
Sent 18244 bytes 454 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 2.66114e+06 undertime 0
class cbq 1:1 parent 1: rate 128Kbit (bounded) prio no-transmit
Sent 1283284 bytes 1397 pkts (dropped 0, overlimits 0)
borrowed 844 overactions 0 avgidle 219417 undertime 0
class cbq 1:20 parent 1:1 leaf 8149: rate 108Kbit prio 7
Sent 1265040 bytes 943 pkts (dropped 0, overlimits 2564)
borrowed 844 overactions 7 avgidle -186045 undertime 265135
now i'm curious what i have to do to make 1:10 share it's bandwidth in a way it doesn't ruin the whole mechanism.
also i would like to know what 'overactions' are and what it means (or at least if it is good or bad) if tc -s shows a 'backlog 15p' or similar in the statistic of e.g. class 1:20.
thanks for your help,
Patrick
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://ds9a.nl/2.4Routing/
next reply other threads:[~2001-12-07 1:29 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-07 1:29 Patrick Nagelschmidt [this message]
2001-12-07 11:13 ` [LARTC] CBQ only works 'bounded' bert hubert
2001-12-07 13:19 ` Patrick Nagelschmidt
2001-12-07 14:33 ` Michael T. Babcock
2001-12-07 15:26 ` bert hubert
2001-12-07 15:38 ` Patrick Nagelschmidt
2001-12-07 15:57 ` Martin Devera
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-lartc-100768870231848@msgid-missing \
--to=dto@gmx.net \
--cc=lartc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.