From: Sebastian Moeller <moeller0@gmx.de>
To: Dave Taht <dave.taht@gmail.com>
Cc: "Toke Høiland-Jørgensen" <toke@toke.dk>,
"cerowrt-devel@lists.bufferbloat.net"
<cerowrt-devel@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] AQM scripts modified for DSL exploration
Date: Mon, 12 Aug 2013 11:42:41 +0200 [thread overview]
Message-ID: <58D5B804-1EC8-47BC-ADA0-09E1949A85FB@gmx.de> (raw)
In-Reply-To: <CAA93jw7nUUPLqg0TzHR5JUnNopYSzM-=2kQQuWUaqWdNQNyQdA@mail.gmail.com>
Hi Dave,
On Aug 12, 2013, at 02:06 , Dave Taht <dave.taht@gmail.com> wrote:
> Alright I slammed them into ceropackages for the next build but I
> don't get this line:
>
> STABSTRING="stab mtu 2048 tsize ${TSIZE} overhead ${OVERHEAD}
> linklayer ${LINKLAYER}"
>
> mtu 2048?
I agree that looks wrong on the face of it, but it is not as bad as it seems. From td-stab's man page (http://www.dsm.fordham.edu/cgi-bin/man-cgi.pl?topic=tc-stab&sect=8):
> NAME
>
> tc-stab - Generic size table manipulations
>
>
> SYNOPSIS
>
> tc qdisc add ... stab \
> [ mtu BYTES ] [ tsize SLOTS ] \
> [ mpu BYTES ] [ overhead BYTES ] [ linklayer TYPE ] ...
>
> TYPE := adsl | atm | ethernet
>
> For the description of BYTES - please refer to the UNITS section of
>
> tc(8)
> .
>
> mtu
> maximum packet size we create size table for, assumed 2048 if not
> specified explicitly
>
> tsize
> required table size, assumed 512 if not specified explicitly
>
> mpu
> minimum packet size used in computations
>
> overhead
> per-packet size overhead (can be negative) used in computations
>
> linklayer
> required linklayer adaptation.
>
So tc-stab's MTU value is only used to create a size table up to that value, HTB, by the way, also has:
{
fprintf(stderr, "Usage: ... qdisc add ... htb [default N] [r2q N]\n"
" default minor id of class to which unclassified packets are sent {0}\n"
" r2q DRR quantums are computed as rate in Bps/r2q {10}\n"
" debug string of 16 numbers each 0-3 {0}\n\n"
"... class add ... htb rate R1 [burst B1] [mpu B] [overhead O]\n"
" [prio P] [slot S] [pslot PS]\n"
" [ceil R2] [cburst B2] [mtu MTU] [quantum Q]\n"
" rate rate allocated to this class (class can still borrow)\n"
" burst max bytes burst which can be accumulated during idle period {computed}\n"
" mpu minimum packet size used in rate computations\n"
" overhead per-packet size overhead used in rate computations\n"
" ceil definite upper class rate (no borrows) {rate}\n"
" cburst burst but for ceil {computed}\n"
" mtu max packet size we create rate map for {1600}\n"
" prio priority of leaf; lower are served first {0}\n"
" quantum how much bytes to serve from leaf at once {use r2q}\n"
"\nTC HTB version %d.%d\n",HTB_TC_VER>>16,HTB_TC_VER&0xffff
);
}
So, I guess this should have been called max_MTU_tablesize to not be confusing.
My understanding is that the kernel builds a table giving the effective size for each packet length (by taking ATM cell overhead and per packet overhead into account) by looking it up in a table, the "mtu" here just tells tc how large a table to create. I picked 2048, since it seems to be the default just to be verbose (and to account for baby giant frames that seem to be intudiced at some del ISPs to allow 1500 effective MTU in spite of PPPOE overhead, but I digress). Looking at it again I assume that 1600 (HTB's default) might be large enough, but 2048 (actually 2047) allows an easier way to get 16byte size table steps which work well for 48byte ATM payload per cell sizes…
I guess I will change the AQM scripts to allow direct manipulation of MTU, MPU and TSIZE just to be compete (of these only TSIZE is stab only, the other two also apply to HTB), so that it becomes easier to experiment with those from the GUI...
hope that helps & best regards
Sebastian
next prev parent reply other threads:[~2013-08-12 9:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-11 20:22 Sebastian Moeller
2013-08-11 21:04 ` Toke Høiland-Jørgensen
2013-08-11 21:53 ` Dave Taht
2013-08-12 0:06 ` Dave Taht
2013-08-12 9:42 ` Sebastian Moeller [this message]
2013-08-13 9:23 ` Sebastian Moeller
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
List information: https://lists.bufferbloat.net/postorius/lists/cerowrt-devel.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=58D5B804-1EC8-47BC-ADA0-09E1949A85FB@gmx.de \
--to=moeller0@gmx.de \
--cc=cerowrt-devel@lists.bufferbloat.net \
--cc=dave.taht@gmail.com \
--cc=toke@toke.dk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox