Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Sebastian Moeller <moeller0@gmx.de>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: Ryan Mounce <ryan@mounce.com.au>, Cake List <Cake@lists.bufferbloat.net>
Subject: Re: [Cake] overheads or rate calculation changed?
Date: Sun, 7 Jan 2018 09:19:35 +0100	[thread overview]
Message-ID: <A440F25E-9C63-4199-A252-81CFC719989E@gmx.de> (raw)
In-Reply-To: <202188C4-062D-430B-838B-EAFEDB394002@gmail.com>

Hi Jonathan,

> On Jan 7, 2018, at 01:33, Jonathan Morton <chromatix99@gmail.com> wrote:
> 
>> On 7 Jan, 2018, at 12:46 am, Sebastian Moeller <moeller0@gmx.de> wrote:
>> 
>> I thibk cake should offer a mode in which it behaves as all other qdiscs currently do and not do auto correction at all and a mode where it corrects for the right amount, but keeping the current ake cbehavior will not help anybody.... but most likely i misunderstood your proposal in that regard.
> 
> Let me explain a little more clearly, using your example:
> 
> Here "by default" means with no overhead keywords used at all.  Currently, Cake does nothing with the packet lengths by default, acting as though "raw" was specified.

	Yes, I believe we should keep a mode that does exactly that, but this might be done with an explicit keyword IMHO. Not having that would require that cake always does the right thing and as the history of this feature shows, this is hard to guarantee.

> 
> Instead, Cake will act as though "overhead 26" were specified on egress and "overhead 14" on ingress in your case.  
> Unlike its current behaviour, it will recognise that it's actually getting raw IP packets, and won't first attempt to subtract a non-existent header from them.  That's still different from tc-stab behaviour, but probably more useful.

	Why behave like "overhead 26" was specified? The really desired behaviour seems to subtract (skb->len - IP packet size) and neither the 26 nor the 14 where actually added to skb->len. So I a still confused about what you propose cake to report.

BTW do you see a 100% correct way to get to (skb->len - IP packet size)?


> 
> Conversely, with a typical Ethernet interface, it will act as though "overhead 14" were specified on both egress and ingress, and will effectively leave the packet length alone, recognising that there is in fact an Ethernet frame header on the front of the packets handed in.

	Ah, I begin to understand my disconnect; this is not ideal behavior as with the overhead accounting we want to be able to "model" the bottleneck overhead and not only the shaped interface overhead; think shaping for an  IPoA link (IP over ATM) from a non-ATM router connected via ethernet to the ATM-modem, the 14 bytes kernel accounted overhead are neither required nor desired, if I specify overhead 10, the kernel ideally will pass (for a full MTU 1500 packet):
1500 (MTU) + 14 (kernel added MACs/ethertype) + 10 (specified cake overhead) - 14 (remove the kernel-added MACs/ethertype)

Now, if you only talk about the case that the user did not specify an overhead in the cake invocation, using the 1514 skb->len without further modifications, than we violently agree. We really need this "behave like all other qdiscs" mode so that cake can be used with "tc stab" exactly as awkward as all other qdiscs, it would be really unfortunate if cake would require different "tc stab" magic than say HTB+fq_codel.


> 
> If you then specify "overhead 34", you'll get exactly that, relative to the transport-layer packet (that is, IP).

	That is the best thing to do agreed, but from your description above I am not sure about the exact conditions you propose to do that.

> 
> You'll get visibility into this behaviour through the output of the current configuration, which will include an overhead keyword.  And all this assumes that skb_network_offset(skb) *actually* does what I think it does.

	The overhead keyword is nice in that it shows what the user requested, but we really NEED to report also how cake interpreted that request, so we NEED to explicitly report the auto correction value in addition to the requested overhead (and for ease of use we maybe should also report the amount of overhead cake added to skb->len (which equals (requested overhead - auto correction value)))

> 
> What I'm not sure about yet is whether to keep "raw"

	I am not that impressed by the overloading that raw already has (ATM, PTM, overhead...), but the functionality to not-do the auto accounting seems required (unless we guarantee that cake always does the correct thing; and for that we need to explicit;y report what cake "did" and what the user asked it to do).

> and "via-ethernet" with their current meanings -

	THe current via_ethernet behavior seems not requred anymore, ONCE we unconditionally report the amount of auto corrected overhead (which could well be 0).

> as that would probably have a (small) runtime overhead as well as requiring more serious thought into how to organise the configuration interface.  


> Otherwise, I do intend to keep "raw" as a way to reset to the default configuration.

	That is not what raw does ATM, for the via-ethernet mechanism raw is not the default (how a bout a new default compound keyword?)

Best Regards
	Sebastian

> 
> - Jonathan Morton
> 


  reply	other threads:[~2018-01-07  8:19 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-18 20:32 Andy Furniss
2017-12-21  0:54 ` Andy Furniss
2017-12-22  6:38   ` Jonathan Morton
2017-12-22  7:58     ` Kevin Darbyshire-Bryant
     [not found]       ` <CAJq5cE3e-CbJ8X_Bpu3AhwbVmq-yD89HGe7rSNMTYqj+KSaBUg@mail.gmail.com>
2017-12-22 10:00         ` Jonathan Morton
2017-12-22 12:58           ` Kevin Darbyshire-Bryant
2017-12-22 15:55     ` Dave Taht
2017-12-22 23:38     ` Andy Furniss
2017-12-23  9:41       ` Sebastian Moeller
2017-12-23  9:59         ` Andy Furniss
2017-12-23 12:55           ` Sebastian Moeller
2017-12-23 13:11             ` Ryan Mounce
2017-12-23 14:21               ` Sebastian Moeller
2017-12-23 21:03                 ` Sebastian Moeller
2017-12-23 21:20                   ` Jonathan Morton
2017-12-24 10:34                   ` Kevin Darbyshire-Bryant
2017-12-24 10:39                     ` Jonathan Morton
2017-12-24 10:46                       ` Kevin Darbyshire-Bryant
2017-12-24 12:19                         ` Sebastian Moeller
2017-12-24 12:14                     ` Sebastian Moeller
2018-01-06 20:44                   ` Jonathan Morton
2018-01-06 22:46                     ` Sebastian Moeller
2018-01-07  0:33                       ` Jonathan Morton
2018-01-07  8:19                         ` Sebastian Moeller [this message]
2018-01-07 15:21                           ` Jonathan Morton

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=A440F25E-9C63-4199-A252-81CFC719989E@gmx.de \
    --to=moeller0@gmx.de \
    --cc=Cake@lists.bufferbloat.net \
    --cc=chromatix99@gmail.com \
    --cc=ryan@mounce.com.au \
    /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