Send LARTC mailing list submissions to lartc@xxxxxxxxxxxxxxx To subscribe or unsubscribe via the World Wide Web, visit http://mailman.ds9a.nl/mailman/listinfo/lartc or, via email, send a message with subject or body 'help' to lartc-request@xxxxxxxxxxxxxxx You can reach the person managing the list at lartc-admin@xxxxxxxxxxxxxxx When replying, please edit your Subject line so it is more specific than "Re: Contents of LARTC digest..." Today's Topics: 1. Re: CBQ and all other qdiscs now REALLY completely documented (jamal) 2. Re: more on cbq parameters (Michael T. Babcock) 3. Re: Re: further CBQ/tc documentation ds9a.nl/lartc/manpages (Michael T. Babcock) 4. Re: Re: further CBQ/tc documentation ds9a.nl/lartc/manpages (Michael T. Babcock) 5. quit (johannes.ebenhoeh@xxxxxx) 6. HTB burst, cburst parameters (Amit Kucheria) 7. CBQ MANPAGE: I hear the theme of '2001, A Space Odyssey' (bert hubert) 8. Re: CBQ MANPAGE: I hear the theme of '2001, A Space Odyssey' (jamal) --__--__-- Message: 1 Date: Sun, 9 Dec 2001 16:45:01 -0500 (EST) From: jamal <hadi@xxxxxxxxxx> To: <kuznet@xxxxxxxxxxxxx> Cc: <ahu@xxxxxxx>, <lartc@xxxxxxxxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx>, <netdev@xxxxxxxxxxx> Subject: [LARTC] Re: CBQ and all other qdiscs now REALLY completely documented On Sun, 9 Dec 2001 kuznet@xxxxxxxxxxxxx wrote: > Hello! > > > > But to do this, you would need to be able to set skb->priority to a 32bit > > > number: > > > > > > > Cant think of a straight way to do this .... Alexey would know, > > SO_PRIORITY. Or I did not follow you? > So priority limits the size of skb->priority to be from 0..6; this wont work with that check in cbq. cheers, jamal --__--__-- Message: 2 Date: Sun, 9 Dec 2001 17:28:44 -0500 From: "Michael T. Babcock" <mbabcock@xxxxxxxxxxxxxx> To: LARTC List <lartc@xxxxxxxxxxxxxxx> Subject: Re: [LARTC] more on cbq parameters On Sat, Dec 08, 2001 at 09:10:50PM +0100, bert hubert wrote: > > Notice above I supplied bandwidth 30kbit which is far from the actual > > physical bandwidth (100Mbit). Maybe this is why I get good results. > > Maybe this is what you're SUPPOSED to do! > > Not that I'm aware of. To agree with you, AFAICS, the correct way to deal with this is to specify the root bandwidth as the maximum physical bandwidth on the interface, then split it down using classes that have rates set to the expected rates. On a 100Mbit card connected to a 256kbit line, I used something like: tc qdisc add dev eth0 root handle 1: cbq \ bandwidth 100Mbit avpkt 1000 tc class add dev eth0 parent 1:0 classid 1:1 cbq \ bandwidth 100Mbit rate 256kbit [...] tc qdisc add dev eth0 parent 1:1 handle 10: cbq \ bandwidth 256kbit allot 1514 avpkt 1000 (PS, highly inspired by Stef and others' scripts of course) All my other classes then hang off 10: instead of 1: and work quite well. What I've considered doing a few times is adding an option to dump out the values CBQ is looking at for idleness at each level as well as dynamic avpkt values (based on reality). HTB may do this, of course. -- Michael T. Babcock CTO, FibreSpeed Ltd. (Hosting, Security, Consultation, Database, etc) http://www.fibrespeed.net/~mbabcock/ --__--__-- Message: 3 Date: Sun, 9 Dec 2001 17:33:13 -0500 From: "Michael T. Babcock" <mbabcock@xxxxxxxxxxxxxx> To: LARTC List <lartc@xxxxxxxxxxxxxxx> Subject: Re: [LARTC] Re: further CBQ/tc documentation ds9a.nl/lartc/manpages On Sat, Dec 08, 2001 at 03:43:05PM -0500, jamal wrote: > - You keep saying "reodering" -- dont know what that means. Reordering is > generally considered a Bad Thing(tm). Reordering happens on a mass scale (packets often go out in a different order than they were received / generated) but not on a per-qdisc scale (packets go out 'in order' within an SFQ queue or within a CBQ queue). Its quite obvious that fairness causes overall reordering of the available packets because you sometimes with to pass along (for example) an SSH packet before the 10 waiting FTP packets even though the latter got there first. -- Michael T. Babcock CTO, FibreSpeed Ltd. (Hosting, Security, Consultation, Database, etc) http://www.fibrespeed.net/~mbabcock/ --__--__-- Message: 4 Date: Sun, 9 Dec 2001 17:36:52 -0500 From: "Michael T. Babcock" <mbabcock@xxxxxxxxxxxxxx> To: LARTC List <lartc@xxxxxxxxxxxxxxx> Subject: Re: [LARTC] Re: further CBQ/tc documentation ds9a.nl/lartc/manpages On Sat, Dec 08, 2001 at 10:30:55PM +0100, bert hubert wrote: > The ingress qdisc is a strange animal in that is not used to send packets > out to the network adaptor. Instead, it allows you to apply tc filters to > packets coming in over the interface, regardless of whether they have a > local destination or are to be forwarded. Opinions, opinions ... just the facts please. My suggested paragraph: The ingress qdisc allows the application of tc filters to the inbound packets on an interface instead of the outgoing ones. This filtering is done to all incoming packets, whether destined for the local host or to be forwarded. -- Michael T. Babcock CTO, FibreSpeed Ltd. (Hosting, Security, Consultation, Database, etc) http://www.fibrespeed.net/~mbabcock/ --__--__-- Message: 5 From: johannes.ebenhoeh@xxxxxx <johannes.ebenhoeh@xxxxxx> To: LARTC@xxxxxxxxxxxxxxx Date: Mon, 10 Dec 2001 00:14:19 +0100 Subject: [LARTC] quit --__--__-- Message: 6 Date: Sun, 9 Dec 2001 18:27:43 -0600 (CST) From: Amit Kucheria <amitk@xxxxxxxxxxx> To: <lartc@xxxxxxxxxxxxxxx> Subject: [LARTC] HTB burst, cburst parameters Hi, I am trying to understand the burst and cburst parameters in HTB. Can somebody explain it. The docs arent very clear. I am trying to throttle a 10Mbit link to a T1 link using HTB. I am using the following: ------------------------------------------ DEVICE="dev eth1" BANDWIDTH="bandwidth 10Mbit" LIMITBW="1.536Mbit" AVPKT="avpkt 1470" # Root HTB qdisc 1: $TC qdisc add $DEVICE root handle 1: htb # This HTB class rate limits everyting to 1Mbit $TC class add $DEVICE parent 1: classid 1:1 htb rate 1.536Mbps ceil 1.536Mbps burst 1k cburst 0.5k ------------------------------------------ Is this right ? Also, can HTB take other qdiscs and classes ? Regards, Amit -- The statement below is true. The statement above is false. ^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^ Amit Kucheria EECS Grad. Research Assistant University of Kansas @ Lawrence (R)+1-(785)-830 8521 ||| (O)+1-(785)-864 7774 ____________________________________________________ --__--__-- Message: 7 Date: Mon, 10 Dec 2001 01:41:30 +0100 From: bert hubert <ahu@xxxxxxx> To: kuznet@xxxxxxxxxxxxx Cc: jamal <hadi@xxxxxxxxxx>, lartc@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx Subject: [LARTC] CBQ MANPAGE: I hear the theme of '2001, A Space Odyssey' --yrj/dFKFPuw6o+aM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline ... to the sound of 'Also sprach Zarathustra': After weeks of social deprivation and much digging through heaps of code, I bring you tc-cbq.8 The CBQ manpage. Nearly 2500 words, 8 printed pages, of nearly unintelligible gobledygook, explaining mostly how CBQ works. It is part of the Linux Advanced Routing & Traffic Control documentation project which contains a HOWTO, a mailinglist, an IRC channel and now manpages: http://ds9a.nl/lartc I want to thank Jamal for stubbornly straightening me out when I use messy language and explaining how things work. The errors are mine though. I *implore* ANK and others to read through this. I'm about exhausted and running out of time (need to get on with work), and have a hard time figuring out the exact details of the CBQ link sharing algorithm. I need help, so to speak. The manpage indicates where. Thanks for your attention. Please find tc-cbq.8 attached. Regards, bert hubert -- http://www.PowerDNS.com Versatile DNS Software & Services Trilab The Technology People Netherlabs BV / Rent-a-Nerd.nl - Nerd Available - 'SYN! .. SYN|ACK! .. ACK!' - the mating call of the internet --yrj/dFKFPuw6o+aM Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="tc-cbq.8" .TH CBQ 8 "8 December 2001" "iproute2" "Linux" .SH NAME CBQ \- Class Based Queueing .SH SYNOPSIS .B tc qdisc ... dev dev .B ( parent classid .B | root) [ handle major: .B ] cbq avpkt bytes .B bandwidth rate .B [ cell bytes .B ] [ ewma log .B ] [ mpu bytes .B ] .B tc class ... dev dev .B parent major:[minor] .B [ classid major:minor .B ] cbq allot bytes .B [ bandwidth rate .B ] [ rate rate .B ] prio priority .B [ weight weight .B ] [ minburst packets .B ] [ maxburst packets .B ] [ ewma log .B ] [ cell bytes .B ] avpkt bytes .B [ mpu bytes .B ] [ bounded isolated ] [ split handle .B & defmap defmap .B ] [ estimator interval timeconstant .B ] .SH DESCRIPTION Class Based Queueing is a classful qdisc that implements a rich linksharing hierarchy of classes. It contains shaping elements as well as prioritizing capabilities. Shaping is performed using link idle time calculations based on the timing of dequeue events and underlying link bandwidth. .SH SHAPING ALGORITHM Shaping is done using link idle time calculations, and actions taken if these calculations deviate from set limits. When shape a 10mbit/s connection to 1mbit/s, the link will be idle 90% of the time. If it isn't, it needs to be throttled so that it IS idle 90% of the time.