From: Sebastian Moeller <moeller0@gmx.de>
To: Maxime Bizon <mbizon@freebox.fr>
Cc: "Toke Høiland-Jørgensen" <toke@redhat.com>,
"Cake List" <cake@lists.bufferbloat.net>
Subject: Re: [Cake] Advantages to tightly tuning latency
Date: Thu, 23 Apr 2020 20:30:09 +0200 [thread overview]
Message-ID: <A82F9728-C934-4CF1-BA37-870E82D6A05A@gmx.de> (raw)
In-Reply-To: <20200423173111.GL28541@sakura>
Hi Maxime,
if I might ask you a tangential question, did you also look at MAP-T (translation) and if so, what made you choose MAP-E (encapsulation)?
Best Regards
Sebastian
> On Apr 23, 2020, at 19:31, Maxime Bizon <mbizon@freebox.fr> wrote:
>
>
> On Thursday 23 Apr 2020 à 18:42:11 (+0200), Toke Høiland-Jørgensen wrote:
>
>> Didn't make it in until 5.5, unfortunately... :(
>>
>> I can try to produce a patch that you can manually apply on top of 5.4
>> if you're interested?
>
> I could do it, but the thing I'm more worried about is the lack of
> test coverage from everyone else.
>
>> Anyhow, my larger point was that we really do want to enable such use
>> cases for XDP; but we are lacking the details of what exactly is missing
>> before we can get to something that's useful / deployable. So any
>> details you could share about what feature set you are supporting in
>> your own 'fast path' implementation would be really helpful. As would
>> details about the hardware platform you are using. You can send them
>> off-list if you don't want to make it public, of course :)
>
> there is no hardware specific feature used, it's all software
>
> imagine this "simple" setup, pretty much what anyone's home router is
> doing:
>
> <br0> with <eth0> + <wlan0> inside, private IPv4 address
> <wan0.vlan> with IPv6, vlan interface over <wan0>
> <map0> with IPv4, MAP-E tunnel over <wan0.vlan>
>
> then:
> - IPv6 routing between <br0> and <wan0.vlan>
> - IPv4 routing + NAT between <br0> and <map0>
>
> iptables would be filled with usual rules, per interface ALLOW rules
> in FORWARD chain, DNAT rules in PREROUTING to access LAN from WAN...
>
> and then you want this to be fast :)
>
> What we do is build a "flow" table on top of conntrack, so with a
> single lookup we find the flow, the destination interface, and what
> modifications to apply to the packet (L3 address to change, encap to
> add/remove, etc etc)
>
> Then we do this lookup more or less early in RX path, on our oldest
> platform we even had to do this from the ethernet driver, and do TX
> from there too, skipping qdisc layer and allowing cache maintenance
> hacks (partial invalidation and wback)
>
>
> nftable with flowtables seems to be have developped something that
> could replace our flow cache, but I'm not sure if it can handle our
> tunneling scheme yet. It even has a notion of offloaded flow for
> hardware that can support it.
>
> If you add an XDP offload to it, with an option to do the
> lookup/modification/tx at the layer you want, depending on the
> performance you need, whether you want qdisc.. that you'd give you
> pretty much the same thing we use today, but with a cleaner design.
>
>
>> Depends on the TCP stack (I think).
>
> I guess Linux deals with OFO better, but unfortunately that's not the
> main OS used by our subscribers...
>
>> Steam is perhaps a bad example as that is doing something very much like
>> bittorrent AFAIK; but point taken, people do occasionally run
>> single-stream downloads and want them to be fast. I'm just annoyed that
>> this becomes the *one* benchmark people run, to the exclusion of
>> everything else that has a much larger impact on the overall user
>> experience :/
>
> that one is easy
>
> convince ookla to add some kind of "latency under load" metric, and
> have them report it as a big red flag when too high, and even better
> add scary messages like "this connection is not suitable for online
> gaming".
>
> subscribers will bug telco, then telco will bug SOCs vendors
>
> --
> Maxime
> _______________________________________________
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake
next prev parent reply other threads:[~2020-04-23 18:30 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-21 18:22 Justin Kilpatrick
2020-04-21 18:40 ` Jonathan Morton
2020-04-21 18:44 ` Dave Taht
2020-04-21 22:25 ` Thibaut
2020-04-21 22:33 ` Jonathan Morton
2020-04-21 22:44 ` Dave Taht
2020-04-21 22:50 ` Dave Taht
2020-04-21 23:07 ` Jonathan Morton
2020-04-21 23:27 ` Dave Taht
2020-04-22 8:28 ` Thibaut
2020-04-22 9:03 ` Luca Muscariello
2020-04-22 14:48 ` Dave Taht
2020-04-22 15:28 ` Luca Muscariello
2020-04-22 17:42 ` David P. Reed
2020-04-23 9:29 ` Maxime Bizon
2020-04-23 11:57 ` Toke Høiland-Jørgensen
2020-04-23 12:29 ` Luca Muscariello
2020-04-23 12:33 ` Maxime Bizon
2020-04-23 16:42 ` Toke Høiland-Jørgensen
2020-04-23 17:31 ` Maxime Bizon
2020-04-23 18:30 ` Sebastian Moeller [this message]
2020-04-23 21:53 ` Maxime Bizon
2020-04-23 18:35 ` Toke Høiland-Jørgensen
2020-04-23 21:59 ` Maxime Bizon
2020-04-23 23:05 ` Toke Høiland-Jørgensen
2020-04-23 23:11 ` Dave Taht
2020-04-23 16:28 ` Dave Taht
2020-04-21 23:06 ` Justin Kilpatrick
2020-04-21 23:19 ` Dave Taht
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=A82F9728-C934-4CF1-BA37-870E82D6A05A@gmx.de \
--to=moeller0@gmx.de \
--cc=cake@lists.bufferbloat.net \
--cc=mbizon@freebox.fr \
--cc=toke@redhat.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