• James Prestwood's avatar
    net: ndisc: introduce ndisc_evict_nocarrier sysctl parameter · 18ac597a
    James Prestwood authored
    In most situations the neighbor discovery cache should be cleared on a
    NOCARRIER event which is currently done unconditionally. But for wireless
    roams the neighbor discovery cache can and should remain intact since
    the underlying network has not changed.
    
    This patch introduces a sysctl option ndisc_evict_nocarrier which can
    be disabled by a wireless supplicant during a roam. This allows packets
    to be sent after a roam immediately without having to wait for
    neighbor discovery.
    
    A user reported roughly a 1 second delay after a roam before packets
    could be sent out (note, on IPv4). This delay was due to the ARP
    cache being cleared. During testing of this same scenario using IPv6
    no delay was noticed, but regardless there is no reason to clear
    the ndisc cache for wireless roams.
    Signed-off-by: default avatarJames Prestwood <prestwoj@gmail.com>
    Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    18ac597a
ndisc.c 49.2 KB