[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 10 Oct 2018 09:27:55 -0600
From: David Ahern <dsahern@...il.com>
To: Sabrina Dubroca <sd@...asysnail.net>, netdev@...r.kernel.org
Cc: Stefano Brivio <sbrivio@...hat.com>
Subject: Re: [PATCH net v2 1/2] net: ipv4: update fnhe_pmtu when first hop's
MTU changes
On 10/9/18 9:48 AM, Sabrina Dubroca wrote:
> Since commit 5aad1de5ea2c ("ipv4: use separate genid for next hop
> exceptions"), exceptions get deprecated separately from cached
> routes. In particular, administrative changes don't clear PMTU anymore.
>
> As Stefano described in commit e9fa1495d738 ("ipv6: Reflect MTU changes
> on PMTU of exceptions for MTU-less routes"), the PMTU discovered before
> the local MTU change can become stale:
> - if the local MTU is now lower than the PMTU, that PMTU is now
> incorrect
> - if the local MTU was the lowest value in the path, and is increased,
> we might discover a higher PMTU
>
> Similarly to what commit e9fa1495d738 did for IPv6, update PMTU in those
> cases.
>
> If the exception was locked, the discovered PMTU was smaller than the
> minimal accepted PMTU. In that case, if the new local MTU is smaller
> than the current PMTU, let PMTU discovery figure out if locking of the
> exception is still needed.
>
> To do this, we need to know the old link MTU in the NETDEV_CHANGEMTU
> notifier. By the time the notifier is called, dev->mtu has been
> changed. This patch adds the old MTU as additional information in the
> notifier structure, and a new call_netdevice_notifiers_u32() function.
>
> Fixes: 5aad1de5ea2c ("ipv4: use separate genid for next hop exceptions")
> Signed-off-by: Sabrina Dubroca <sd@...asysnail.net>
> Reviewed-by: Stefano Brivio <sbrivio@...hat.com>
> ---
> v2:
> - s/u32/mtu/ in netdev_notifier_info_ext and call_netdevice_notifiers_
> helper, suggested by David Ahern
> - don't EXPORT_SYMBOL the helper, it's only used in net/core/dev.c
> - fix typo in commit message
> - fix kerneldoc comment, spotted by kbuild bot
>
> include/linux/netdevice.h | 7 ++++++
> include/net/ip_fib.h | 1 +
> net/core/dev.c | 28 ++++++++++++++++++++--
> net/ipv4/fib_frontend.c | 12 ++++++----
> net/ipv4/fib_semantics.c | 50 +++++++++++++++++++++++++++++++++++++++
> 5 files changed, 92 insertions(+), 6 deletions(-)
Reviewed-by: David Ahern <dsahern@...il.com>
Powered by blists - more mailing lists