X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vnet%2Fvnet%2Fvxlan%2Fvxlan.c;h=da359a8d1bb7393b08a2ff0de719ecfaea5a7e31;hb=0bfe5d8c792abcdbcf27bfcc7b7b353fba04aee2;hp=32ad7533e58246745171e881a3fa937c186aecaf;hpb=60537f3d83e83d0ce10a620ca99aad4eddf85f5e;p=vpp.git diff --git a/vnet/vnet/vxlan/vxlan.c b/vnet/vnet/vxlan/vxlan.c index 32ad7533e58..da359a8d1bb 100644 --- a/vnet/vnet/vxlan/vxlan.c +++ b/vnet/vnet/vxlan/vxlan.c @@ -348,11 +348,13 @@ int vnet_vxlan_add_del_tunnel vnet_sw_interface_set_flags (vnm, sw_if_index, VNET_SW_INTERFACE_FLAG_ADMIN_UP); if (!a->is_ip6) { - vec_validate (im4->fib_index_by_sw_if_index, sw_if_index); - im4->fib_index_by_sw_if_index[sw_if_index] = t->encap_fib_index; + vec_validate (im4->fib_index_by_sw_if_index, sw_if_index); + im4->fib_index_by_sw_if_index[sw_if_index] = t->encap_fib_index; + ip4_sw_interface_enable_disable(sw_if_index, 1); } else { vec_validate (im6->fib_index_by_sw_if_index, sw_if_index); im6->fib_index_by_sw_if_index[sw_if_index] = t->encap_fib_index; + ip6_sw_interface_enable_disable(sw_if_index, 1); } } else @@ -375,13 +377,16 @@ int vnet_vxlan_add_del_tunnel = L2OUTPUT_NEXT_DEL_TUNNEL; if (!a->is_ip6) - hash_unset (vxm->vxlan4_tunnel_by_key, key4.as_u64); + { + hash_unset (vxm->vxlan4_tunnel_by_key, key4.as_u64); + ip4_sw_interface_enable_disable(sw_if_index, 1); + } else { hash_unset_mem (vxm->vxlan6_tunnel_by_key, t->key6); clib_mem_free (t->key6); + ip6_sw_interface_enable_disable(sw_if_index, 1); } - vec_free (t->rewrite); pool_put (vxm->tunnels, t); }