Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: moeller0 <moeller0@gmx.de>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>,
	cake@lists.bufferbloat.net
Subject: Re: [Cake] de-natting & host fairness
Date: Mon, 26 Sep 2016 17:23:52 +0200	[thread overview]
Message-ID: <DDCECE93-62CD-4D17-A596-1D781A11E702@gmx.de> (raw)
In-Reply-To: <E22F0FA4-7CE4-4868-88AD-564B60EC5067@gmail.com>

Hi Jonathan,

> On Sep 26, 2016, at 16:30 , Jonathan Morton <chromatix99@gmail.com> wrote:
> 
> 
>> On 26 Sep, 2016, at 16:28, moeller0 <moeller0@gmx.de> wrote:
>> 
>> Does that mean an initial packet(s) for a flow will be “misclassified” (not really since there should be no record yet to snatch the translated IP from) do all those initially non-classified packets end up in the same bin?
> 
> The initial packet will normally be outgoing, so it’ll go through conntrack before reaching the qdisc.  If it’s incoming, then it’ll be “related to” an existing connection or else won’t be natted - though I’m not sure whether “related” connections pre-emptively get conntrack entries before traffic has been seen.  If not, that initial packet will be associated with the NAT box by the qdisc, rather than the internal host, while subsequent packets will correctly be associated with the internal host.

	Okay, so the worst case is “regression” to simple flow fairness and only for initial packets. What about port redirects, will these be already included into the conntrack and what about UDP (I believe bit-torrent uses UDP so I believe this to be relevant).

> 
> That assumes we have qdiscs attached to the egress and ingress sides of a WAN-facing interface, as normally desired.
> 
> The code looks sane at first glance, so I’ll give it a try at my end.  With any luck, I’ll be able to improve triple-isolate’s performance enough to make that the default, too.  I should probably use a different data structure than a ring buffer, so that there is less in the way of linear searching for an unblocked flow.
> 
> The current default is “flows”, which doesn’t need NAT information to unambiguously distinguish flows from each other.  However, “hosts” mode does need it when running in a NAT environment, otherwise internal hosts will erroneously be lumped together with the NAT box.  Triple-isolate is effectively a combination of “hosts” and “flows” - that is probably the easiest way to understand it.

	But the dual-[src\dst]host options are similar to triple-isolate in that regard except they also need directionality information which is hard to divine, so I fully agree that riple is the best candidate for a default. Assuming that it actually works…

> 
> I think it is reasonable to turn on conntrack lookups by default whenever host information is relevant.  This is potentially true for all modes except “flowblind” and “flows”.
> 
> Also long overdue are the more subtle overhead compensation factor for PTM, and the two extra keywords for DOCSIS’ asymmetric overhead.

	Teacher, teacher, ask me: the term you are looking for is “proper documentation”. 
About PTM what are you thinking about, the 64/64 encapsulation “tax”? 
About DOCSIS, while we have Greg White going on record for cable labs, would it not be wiser to survey more cable ISPs to check first whether everybody actually follows those recommendations before creating keywords? One thing I have learned about overhead compensation is, it never is as simple and nice as in real life as RFCs make you hope. I would love to be wrong on DOCSIS, but I believe the hypothesis should be someone set it up different. So in essence pan for a number of keywords for DOCSIS and name them in a way that allows future additions that do not sound awkward.

Best Regards
	Sebastian

> 
> - Jonathan Morton
> 


  reply	other threads:[~2016-09-26 15:23 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-26  3:20 Kevin Darbyshire-Bryant
2016-09-26  3:54 ` Dave Taht
2016-09-26  5:11   ` Dave Taht
2016-09-26  8:54 ` moeller0
2016-09-26 13:02   ` Kevin Darbyshire-Bryant
2016-09-26 13:28     ` moeller0
2016-09-26 14:06       ` Kevin Darbyshire-Bryant
2016-09-26 14:30       ` Jonathan Morton
2016-09-26 15:23         ` moeller0 [this message]
2016-09-27  1:52 ` Noah Causin
2016-09-27  2:32   ` Kevin Darbyshire-Bryant
2016-09-27  4:20     ` Noah Causin
2016-09-27 14:52     ` Noah Causin
2016-09-27 15:28       ` Kevin Darbyshire-Bryant
2016-09-27 20:40         ` Noah Causin
2016-09-27 20:44           ` Jonathan Morton
     [not found]           ` <CAA93jw6rPE8aAGEiqf7jp3hc1J0ThrVer8PFmFLPBqANdtEixg@mail.gmail.com>
2016-09-27 20:58             ` Noah Causin
2016-09-28  4:38           ` Kevin Darbyshire-Bryant
2016-09-28  5:08             ` Noah Causin
2016-09-27 23:08 ` Jonathan Morton
2016-09-28  2:56   ` Kevin Darbyshire-Bryant
2016-09-28  3:06     ` Jonathan Morton
2016-09-28  3:33       ` Kevin Darbyshire-Bryant
2016-09-28  3:49         ` Jonathan Morton
2016-09-28  6:07       ` Kevin Darbyshire-Bryant
2016-09-28 11:08         ` Kevin Darbyshire-Bryant
2016-09-28 11:49           ` Dave Taht
2016-09-28 14:11             ` Kevin Darbyshire-Bryant
2016-09-28  5:56   ` 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=DDCECE93-62CD-4D17-A596-1D781A11E702@gmx.de \
    --to=moeller0@gmx.de \
    --cc=cake@lists.bufferbloat.net \
    --cc=chromatix99@gmail.com \
    --cc=kevin@darbyshire-bryant.me.uk \
    /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