Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Sebastian Moeller <moeller0@gmx.de>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: cake@lists.bufferbloat.net
Subject: Re: [Cake] #17
Date: Mon, 13 Apr 2015 16:45:53 +0200	[thread overview]
Message-ID: <60B3F0CA-21B5-4E6E-B6F2-8BC679DE7558@gmx.de> (raw)
In-Reply-To: <1D75F7D7-4EA1-47CB-8CA0-51144C58857E@gmail.com>

Hi Jonathan,


On Apr 13, 2015, at 02:45 , Jonathan Morton <chromatix99@gmail.com> wrote:

> 
>> On 13 Apr, 2015, at 03:23, Sebastian Moeller <moeller0@gmx.de> wrote:
>> 
>> Ignore my gibberish below, that is almost all required: ceil(len+additional_per_packet_overhead/48)*53 seems the winner ;) Effectively this is what stab should offer, but its implementation with a table has issues if packets are larger than the table estimated…
> 
> The other problem with stab is that the configuration is awfully verbose - pretty much what I was trying to avoid with cake.  

	I agree, “overhead" and "link layer" should be sufficient and link layer can be turned into a simple “atm” flag as you already implemented.

> I’ll admit that a table lookup can be faster than a calculation (under favourable circumstances), but exposing those sorts of implementation details to userspace is just going to give people headaches while they try to figure out what to put and why.

	I think your method is superior to the table as it will work for any packet size, and will not require the user to either specify the table sizing parameters or default to a crazy 64K table to cover GRO.

> 
> That’s a recipe for people (and, more seriously, CPE vendors) getting it wrong.

	Yes, simple wins here, but it needs to be complex enough to actually cover the relevant use cases...

> 
> So cake just has that simple “atm” flag, which adds roughly the right amount of overhead for cell-framing already.  

	The cell framing with the last partly padded cell absolutely requires the correct overhead (well too large an overhead will only cost bandwidth) to work well, other wise the occasional packet will drag in up to 47 bytes of unaccounted bandwidth use.

> Any optimisations to that calculation (which are certainly possible) are an internal matter and not for public consumption.

	There is no reliably way, that I n=know to quickly auto detect the encapsulation overhead; I do have a rather crufty and slow method that will take hours.

> 
> It could be refined by adding an additional, orthogonal setting for non-cell framing overhead, which would be added before the cell-framing calculation; this would allow adding the 8 bytes of PPPoE framing and/or the 2 bytes of Ethernet VLAN tag, for people who want to get it exactly right.  

	I fully endorse this, actually this “overhead” parameter should work independent of the “atm” flag (on my VDSL link I have 16 bytes overhead that needs accounting on top of the ethernet header). For non-arm carriers getting the per-packet overhead wrong is not as terrible, but it will make the shaper suck with small packets...

> Whether these are simple, self-descriptive flags which can be combined for the desired effect, or a numeric parameter which must be set up, is open for discussion.

	Have a look at http://ace-host.stuart.id.au/russell/files/tc/tc-atm/ and http://www.faqs.org/rfcs/rfc2684.html (neither of which deals with potential VLAN tags between BRAS and Modem, that are “invisible” to packet captures as they never reach the endusers network, but still cost bottleneck bandwidth); the whole encapsulation issue is a mess that will most likely not lend it self to a small enumeration of encapsulations, so I vote for a) defaulting to 44-14 bytes overhead (this is pretty much the largest I have seen in the wild, but I have not seen much) and b) allowing the user to override this with something along “overhead 26” that will completely replace the 44-14 bytes from above. So have a reasonable default, but allow fine-tuning

> 
> All of this will help with setting cake’s shaper closer to, and eventually perhaps *at* the physical link rate.  

	Just a data point, when my link was still running ADSL2+ I manged to get the egress shaping to work well at 100% of line rate (around 2500 Kbps), so even sqm-scripts could reach that goal. (After the switch to vdsl2 I learned the hard way that my ISP had implemented a BRAS throttle that sort of mooted my attempts to reach 100% of the vdsl line rate).

> The relative lack of bursting from cake’s shaper already allows some of that, since it’s no longer necessary to allow the initial burst from the token bucket to drain from the dumb FIFO downstream.

	Interesting.

Best Regards
	Sebastian

> 
> - Jonathan Morton
> 


  parent reply	other threads:[~2015-04-13 14:45 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-12 19:18 Sebastian Moeller
2015-04-12 21:59 ` Dave Taht
2015-04-12 23:50   ` Sebastian Moeller
2015-04-12 23:55     ` Jonathan Morton
2015-04-13  0:15       ` Sebastian Moeller
2015-04-13  0:23         ` Sebastian Moeller
2015-04-13  0:45           ` Jonathan Morton
2015-04-13  6:51             ` Sebastian Moeller
2015-04-13 14:45             ` Sebastian Moeller [this message]
2015-04-14 10:13               ` Jonathan Morton
2015-04-14 10:34                 ` Sebastian Moeller
2015-04-13 14:59   ` Sebastian Moeller
2015-04-13 17:06     ` Jonathan Morton
2015-04-13 19:45       ` Sebastian Moeller
2015-04-13 20:08         ` Jonathan Morton
2015-04-13 20:10           ` Sebastian Moeller
2015-04-14  0:58             ` Jonathan Morton
2015-04-14  1:24               ` Dave Taht
2015-04-14  7:03               ` 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/cake.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=60B3F0CA-21B5-4E6E-B6F2-8BC679DE7558@gmx.de \
    --to=moeller0@gmx.de \
    --cc=cake@lists.bufferbloat.net \
    --cc=chromatix99@gmail.com \
    /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