diff options
Diffstat (limited to 'vnet/vnet/ip/ip6_forward.c')
-rw-r--r-- | vnet/vnet/ip/ip6_forward.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/vnet/vnet/ip/ip6_forward.c b/vnet/vnet/ip/ip6_forward.c index 80156e03..823daa69 100644 --- a/vnet/vnet/ip/ip6_forward.c +++ b/vnet/vnet/ip/ip6_forward.c @@ -516,8 +516,12 @@ ip6_add_del_route_next_hop (ip6_main_t * im, a.n_add_adj = 0; ip6_add_del_route (im, &a); - /* adjust share count. This cannot be the only use of the adjacency */ - nh_adj->share_count += is_del ? -1 : 1; + + /* adjust share count. This cannot be the only use of the adjacency + unless next hop is an indiect adj where share count is already + incremented */ + if (next_hop_sw_if_index != ~0) + nh_adj->share_count += is_del ? -1 : 1; goto done; } |