summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSabrina Dubroca <sd@queasysnail.net>2017-03-22 11:31:04 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-03-22 11:31:04 +0000
commite8f6f65c8ea5faf64f21f0cd672ecdc9c94555b2 (patch)
tree88ff24724adf270fa7f476cf7b76ce85b7edc9a3
parent02e2cf1d4d1d96bb87bd0ed005d588cdb7946606 (diff)
parent5f8bc3856e285cc12597879039c17f7397f4b37d (diff)
ipv6: make ECMP route replacement less greedy
am: 5f8bc3856e Change-Id: I6abea1ee369e3ae901dbb615991a112621da03f9
-rw-r--r--net/ipv6/ip6_fib.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
index 34cf46d74554..85bf86458706 100644
--- a/net/ipv6/ip6_fib.c
+++ b/net/ipv6/ip6_fib.c
@@ -903,6 +903,8 @@ add:
ins = &rt->dst.rt6_next;
iter = *ins;
while (iter) {
+ if (iter->rt6i_metric > rt->rt6i_metric)
+ break;
if (rt6_qualify_for_ecmp(iter)) {
*ins = iter->dst.rt6_next;
fib6_purge_rt(iter, fn, info->nl_net);