]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: only static routes qualify for equal cost multipathing
authorHannes Frederic Sowa <hannes@stressinduktion.org>
Fri, 12 Jul 2013 21:46:33 +0000 (23:46 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 12 Jul 2013 23:29:54 +0000 (16:29 -0700)
commit6485dfb365e5e0e9456fbf6ca3391418d0210795
tree7e39923fb1915bfeb1532eabcae35dd150a91f29
parent8e6f3ae166d8dd44de4e0fcc7b47bc5e6d243bf3
ipv6: only static routes qualify for equal cost multipathing

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: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_fib.c