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 <s...@queasysnail.net>
> Reviewed-by: Stefano Brivio <sbri...@redhat.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 <dsah...@gmail.com>

Reply via email to