net/ipv6: need update peer route when modify metric
authorHangbin Liu <liuhangbin@gmail.com>
Tue, 3 Mar 2020 06:37:34 +0000 (14:37 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 3 Mar 2020 22:43:16 +0000 (14:43 -0800)
commit617940123e0140521f3080d2befc2bf55bcda094
tree9d8399b995a27076c5db710a554e4f19892e9a93
parenta6fbcddad6a4141d119f18dca72f9ecc897eac51
net/ipv6: need update peer route when modify metric

When we modify the route metric, the peer address's route need also
be updated. Before the fix:

+ ip addr add dev dummy1 2001:db8::1 peer 2001:db8::2 metric 60
+ ip -6 route show dev dummy1
2001:db8::1 proto kernel metric 60 pref medium
2001:db8::2 proto kernel metric 60 pref medium
+ ip addr change dev dummy1 2001:db8::1 peer 2001:db8::2 metric 61
+ ip -6 route show dev dummy1
2001:db8::1 proto kernel metric 61 pref medium
2001:db8::2 proto kernel metric 60 pref medium

After the fix:
+ ip addr change dev dummy1 2001:db8::1 peer 2001:db8::2 metric 61
+ ip -6 route show dev dummy1
2001:db8::1 proto kernel metric 61 pref medium
2001:db8::2 proto kernel metric 61 pref medium

Fixes: 8308f3ff1753 ("net/ipv6: Add support for specifying metric of connected routes")
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/addrconf.c