Subject: Re: [PATCH] ipv6: fix icmp6_send() route lookup

From: Ivan Delalande <[email-masked]>
Date: Mon, 11 Feb 2019 19:31:45 -0800

Hi David,

On Mon, Feb 11, 2019 at 12:38:18PM -0800, David Miller wrote:
> From: Alin Nastac <[email-masked]>
> Date: Thu,  7 Feb 2019 16:05:31 +0100
> 
> > Original packet destination address must be used as saddr for the
> > route lookup performed by icmp6_send() even when this address is
> > not local. This fixes the IPv6 router ability to send back
> > destination unreachable ICMPv6 errors for forwarded packets when
> > the route toward the saddr of the original packet is source
> > filtered (e.g. a default route with a "from PD" attribute, where
> > PD is the delegated prefix).
> > 
> > Signed-off-by: Alin Nastac <[email-masked]>
> 
> Yes, but however this will change behavior for a lot of situations
> not just the one you are interested in.
> 
> The base ipv6_chk_addr() test has been there for more than a decade
> and I'm not comfortable with changing this logic until I see you
> write up a full audit of all of the use cases of icmp6_send() and
> how they are impacted by your changes.

For what it's worth, we also have 3 internal patches changing the
selection of saddr in icmp6_send (to pick an address from the receiving
interface in priority, or the most specific to the source address of the
original packet, etc.) that we would like to submit in some form, but
that would most likely break existing setups if enabled by default.

Could we introduce a sysctl with a set of flags to enable the different
behaviors from our patches and Alin's? Or any other configuration
interface than sysctls if more appropriate.

Thank you,

-- 
Ivan Delalande
Arista Networks