Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
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&ampsect=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







  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