ip: IP6 incorrectly disabled on removing first ip6 prefix 90/29390/2
authorNeale Ranns <nranns@cisco.com>
Mon, 12 Oct 2020 11:46:53 +0000 (11:46 +0000)
committerMatthew Smith <mgsmith@netgate.com>
Mon, 12 Oct 2020 15:08:04 +0000 (15:08 +0000)
Type: fix

reference counting on the ip6 state was broken, meaning that disabling
one of serveral ip6 configs on an interface, completely ip6 disabled the
interface.

Signed-off-by: Neale Ranns <nranns@cisco.com>
Change-Id: Ie3af51587310ffe871ad2a9cbd927e15a3ececa9

src/vnet/ip/ip6_link.c

index d2142f9..aabd1a5 100644 (file)
@@ -182,7 +182,7 @@ ip6_link_enable (u32 sw_if_index, const ip6_address_t * link_local_addr)
       vec_validate (ip6_links, sw_if_index);
 
       il = &ip6_links[sw_if_index];
-      il->il_locks = 1;
+      il->il_locks = 0;
       il->il_sw_if_index = sw_if_index;
 
       sw = vnet_get_sup_sw_interface (vnm, sw_if_index);
@@ -238,6 +238,8 @@ ip6_link_enable (u32 sw_if_index, const ip6_address_t * link_local_addr)
       rv = VNET_API_ERROR_VALUE_EXIST;
     }
 
+  il->il_locks++;
+
 out:
   return (rv);
 }