mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Hannes Frederic Sowa <hannes@stressinduktion.org>
To: Tom Herbert <tom@herbertland.com>
Cc: Jakub Sitnicki <jkbs@redhat.com>,
	Linux Kernel Network Developers <netdev@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>,
	James Morris <jmorris@namei.org>,
	Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>,
	Patrick McHardy <kaber@trash.net>
Subject: Re: [PATCH net-next 5/5] ipv6: Compute multipath hash for forwarded ICMP errors from offending packet
Date: Tue, 1 Nov 2016 17:54:12 +0100	[thread overview]
Message-ID: <e497d91e-d5a1-e1c8-753c-9ab82ea95265@stressinduktion.org> (raw)
In-Reply-To: <CALx6S35gXFU47i5_LF7Hs1JKGvh40OyJ5Sn-TWacbwiFb0VZ9A@mail.gmail.com>

Hello,

On 01.11.2016 17:39, Tom Herbert wrote:
> On Tue, Nov 1, 2016 at 9:25 AM, Hannes Frederic Sowa
> <hannes@stressinduktion.org> wrote:
>> On 31.10.2016 20:25, Tom Herbert wrote:
>>> The normal hash for TCP or UDP using ECMP is over <protocol, srcIP,
>>> dstIP, srcPort, dstPort>. For an ICMP packet ECMP would most likely be
>>> done over <protocol, srcIP, dstIP>. There really is no way to ensure
>>> that an ICMP packet will follow the same path as TCP or any other
>>> protocol. Fortunately, this is really isn't so terrible. The Internet
>>> has worked this way ever since routers started using ports as input to
>>> ECMP and that hasn't caused any major meltdown.
>>
>> The normal hash for forwarding is without srcPort or dstPort, so the
>> same as ICMP and especially also because of fragmentation problematic I
>> don't think a lot of routers use L4 port information for ECMP either.
>>
> I don't think we can define a "normal hash". There is no requirement
> that routers do ECMP a certain way, or that they do ECMP, or that for
> that matter that they even consistently route packets for the same
> flow. All of this is optimization, not something we can rely on
> operationally. So in the general case, regardless of anything we do in
> the stack, either ICMP packets will follow the same path as the flow
> are they won't. If they don't things still need to to work. So I still
> don't see what material benefit this patch gives us.

There certainly is no standard ECMP hash algorithm. ;)

Even Linux IPv6 ECMP behaved like that for a long time (very bad). It
just routed put packets on different links without consulting any hash.
That exactly was the reason why it was unusable and was upgraded some
while ago.

I do remember a lot of IPv6 PMTU blackholes in the past, so every patch
that improves connectivity here seems valuable to me, even if it does
not fix the problem completely in the end.

Bye,
Hannes

  reply	other threads:[~2016-11-01 16:54 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-24  9:28 [PATCH net-next 0/5] Route ICMPv6 errors with the flow when ECMP in use Jakub Sitnicki
2016-10-24  9:28 ` [PATCH net-next 1/5] ipv6: Fold rt6_info_hash_nhsfn() into its only caller Jakub Sitnicki
2016-10-24  9:28 ` [PATCH net-next 2/5] net: Extend struct flowi6 with multipath hash Jakub Sitnicki
2016-10-24  9:39   ` Hannes Frederic Sowa
2016-10-24  9:28 ` [PATCH net-next 3/5] ipv6: Use multipath hash from flow info if available Jakub Sitnicki
2016-10-24  9:40   ` Hannes Frederic Sowa
2016-10-24  9:28 ` [PATCH net-next 4/5] ipv6: Compute multipath hash for sent ICMP errors from offending packet Jakub Sitnicki
2016-10-24  9:40   ` Hannes Frederic Sowa
2016-10-27 15:24   ` David Miller
2016-10-27 22:00     ` Jakub Sitnicki
2016-10-24  9:28 ` [PATCH net-next 5/5] ipv6: Compute multipath hash for forwarded " Jakub Sitnicki
2016-10-24  9:43   ` Hannes Frederic Sowa
2016-10-27 15:25   ` David Miller
2016-10-27 22:10     ` Jakub Sitnicki
2016-10-27 22:35   ` Tom Herbert
2016-10-28  8:32     ` Jakub Sitnicki
2016-10-28 14:25       ` Tom Herbert
2016-10-30 13:03         ` Jakub Sitnicki
2016-10-31 19:15           ` David Miller
2016-11-01 15:13             ` Jakub Sitnicki
2016-11-01 15:35               ` David Miller
2016-11-01 16:26                 ` Jakub Sitnicki
2016-11-01 16:27                 ` Hannes Frederic Sowa
2016-11-01 16:39                   ` David Miller
2016-11-01 16:59                     ` Hannes Frederic Sowa
2016-10-31 19:25           ` Tom Herbert
2016-11-01 15:43             ` Jakub Sitnicki
2016-11-01 16:25             ` Hannes Frederic Sowa
2016-11-01 16:39               ` Tom Herbert
2016-11-01 16:54                 ` Hannes Frederic Sowa [this message]
2016-10-27 15:23 ` [PATCH net-next 0/5] Route ICMPv6 errors with the flow when ECMP in use David Miller
2016-10-27 21:54   ` Hannes Frederic Sowa

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

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

  git send-email \
    --in-reply-to=e497d91e-d5a1-e1c8-753c-9ab82ea95265@stressinduktion.org \
    --to=hannes@stressinduktion.org \
    --cc=davem@davemloft.net \
    --cc=jkbs@redhat.com \
    --cc=jmorris@namei.org \
    --cc=kaber@trash.net \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=tom@herbertland.com \
    --cc=yoshfuji@linux-ipv6.org \
    /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

all inboxes | Powered by JetHome®