]> git.proxmox.com Git - mirror_frr.git/commit
zebra: fix detection of duplicate system routes
authorRenato Westphal <renato@opensourcerouting.org>
Thu, 31 Aug 2017 20:28:05 +0000 (17:28 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Fri, 1 Sep 2017 01:13:14 +0000 (22:13 -0300)
commita3d18ce6b0810ad91e3d99bcb86e56cb6d6903a0
tree923fa888e294535dc751c8bec15c602811eae380
parentcc54cfee3a67aa0192c62736cd567b562bb5597b
zebra: fix detection of duplicate system routes

Fixes the following bugs:

1)
% ip -6 route add 5000::/64 via 3000::2
% ip -6 route replace 5000::/64 via 3000::2
% ip -6 route replace 5000::/64 via 3000::2
% ip -6 route replace 5000::/64 via 3000::2
% ip -6 route replace 5000::/64 via 3000::2
%
% vtysh -c "show ipv6 route"
[snip]
K * 5000::/64 [0/1024] via 3000::2, rt1-eth0
K * 5000::/64 [0/1024] via 3000::2, rt1-eth0
K * 5000::/64 [0/1024] via 3000::2, rt1-eth0
K * 5000::/64 [0/1024] via 3000::2, rt1-eth0
K>* 5000::/64 [0/1024] via 3000::2, rt1-eth0

2)
% ip -6 route add 7000::/64 via 3000::2
% ip -6 route replace 7000::/64 via 3000::3
% ip -6 ro | grep 7000
7000::/64 via 3000::3 dev rt1-eth0 metric 1024  pref medium
%
% vtysh -c "show ipv6 route"
[snip]
K * 7000::/64 [0/1024] via 3000::3, rt1-eth0
K>* 7000::/64 [0/1024] via 3000::2, rt1-eth0

NOTE: the check for ROUTE_ENTRY_REMOVED was redundant as it was already
performed at the beginning of the loop.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
zebra/zebra_rib.c