• David Ahern's avatar
    net/ipv6: Add knob to skip DELROUTE message on device down · 7c6bb7d2
    David Ahern authored
    Another difference between IPv4 and IPv6 is the generation of RTM_DELROUTE
    notifications when a device is taken down (admin down) or deleted. IPv4
    does not generate a message for routes evicted by the down or delete;
    IPv6 does. A NOS at scale really needs to avoid these messages and have
    IPv4 and IPv6 behave similarly, relying on userspace to handle link
    notifications and evict the routes.
    
    At this point existing user behavior needs to be preserved. Since
    notifications are a global action (not per app) the only way to preserve
    existing behavior and allow the messages to be skipped is to add a new
    sysctl (net/ipv6/route/skip_notify_on_dev_down) which can be set to
    disable the notificatioons.
    
    IPv6 route code already supports the option to skip the message (it is
    used for multipath routes for example). Besides the new sysctl we need
    to pass the skip_notify setting through the generic fib6_clean and
    fib6_walk functions to fib6_clean_node and to set skip_notify on calls
    to __ip_del_rt for the addrconf_ifdown path.
    Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7c6bb7d2
ip6_fib.c 55.8 KB