• Hannes Frederic Sowa's avatar
    ipv6: only static routes qualify for equal cost multipathing · 307f2fb9
    Hannes Frederic Sowa authored
    Static routes in this case are non-expiring routes which did not get
    configured by autoconf or by icmpv6 redirects.
    
    To make sure we actually get an ecmp route while searching for the first
    one in this fib6_node's leafs, also make sure it matches the ecmp route
    assumptions.
    
    v2:
    a) Removed RTF_EXPIRE check in dst.from chain. The check of RTF_ADDRCONF
       already ensures that this route, even if added again without
       RTF_EXPIRES (in case of a RA announcement with infinite timeout),
       does not cause the rt6i_nsiblings logic to go wrong if a later RA
       updates the expiration time later.
    
    v3:
    a) Allow RTF_EXPIRES routes to enter the ecmp route set. We have to do so,
       because an pmtu event could update the RTF_EXPIRES flag and we would
       not count this route, if another route joins this set. We now filter
       only for RTF_GATEWAY|RTF_ADDRCONF|RTF_DYNAMIC, which are flags that
       don't get changed after rt6_info construction.
    
    Cc: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Signed-off-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    307f2fb9
ip6_fib.c 37.7 KB