• Kui-Feng Lee's avatar
    net/ipv6: set expires in rt6_add_dflt_router(). · 129e406e
    Kui-Feng Lee authored
    Pass the duration of a lifetime (in seconds) to the function
    rt6_add_dflt_router() so that it can properly set the expiration time.
    
    The function ndisc_router_discovery() is the only one that calls
    rt6_add_dflt_router(), and it will later set the expiration time for the
    route created by rt6_add_dflt_router(). However, there is a gap of time
    between calling rt6_add_dflt_router() and setting the expiration time in
    ndisc_router_discovery(). During this period, there is a possibility that a
    new route may be removed from the routing table. By setting the correct
    expiration time in rt6_add_dflt_router(), we can prevent this from
    happening. The reason for setting RTF_EXPIRES in rt6_add_dflt_router() is
    to start the Garbage Collection (GC) timer, as it only activates when a
    route with RTF_EXPIRES is added to a table.
    Suggested-by: default avatarDavid Ahern <dsahern@kernel.org>
    Reviewed-by: default avatarHangbin Liu <liuhangbin@gmail.com>
    Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
    Signed-off-by: default avatarKui-Feng Lee <thinker.li@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    129e406e
ip6_route.h 9.98 KB