Re: [PATCH v5 1/2] ip/ip6_gre: Fix changing addr gen mode not generating IPv6 link local address

From: David Ahern
Date: Tue Jan 31 2023 - 11:04:04 EST


On 1/30/23 8:46 PM, Thomas Winter wrote:
> For our point-to-point GRE tunnels, they have IN6_ADDR_GEN_MODE_NONE
> when they are created then we set IN6_ADDR_GEN_MODE_EUI64 when they
> come up to generate the IPv6 link local address for the interface.
> Recently we found that they were no longer generating IPv6 addresses.
> This issue would also have affected SIT tunnels.
>
> Commit e5dd729460ca changed the code path so that GRE tunnels
> generate an IPv6 address based on the tunnel source address.
> It also changed the code path so GRE tunnels don't call addrconf_addr_gen
> in addrconf_dev_config which is called by addrconf_sysctl_addr_gen_mode
> when the IN6_ADDR_GEN_MODE is changed.
>
> This patch aims to fix this issue by moving the code in addrconf_notify
> which calls the addr gen for GRE and SIT into a separate function
> and calling it in the places that expect the IPv6 address to be
> generated.
>
> The previous addrconf_dev_config is renamed to addrconf_eth_config
> since it only expected eth type interfaces and follows the
> addrconf_gre/sit_config format.
>
> A part of this changes means that the loopback address will be
> attempted to be configured when changing addr_gen_mode for lo.
> This should not be a problem because the address should exist anyway
> and if does already exist then no error is produced.
>
> Fixes: e5dd729460ca ("ip/ip6_gre: use the same logic as SIT interfaces when computing v6LL address")
> Signed-off-by: Thomas Winter <Thomas.Winter@xxxxxxxxxxxxxxxxxxx>
> ---
> net/ipv6/addrconf.c | 49 +++++++++++++++++++++++++--------------------
> 1 file changed, 27 insertions(+), 22 deletions(-)
>

Reviewed-by: David Ahern <dsahern@xxxxxxxxxx>