diff options
author | Eyal Bari <ebari@cisco.com> | 2017-03-06 11:47:50 +0200 |
---|---|---|
committer | John Lo <loj@cisco.com> | 2017-03-07 20:44:56 +0000 |
commit | 3212c57087069c5137abe4919ac1336e79fa93e9 (patch) | |
tree | 9d4ad4a3c43825aa0aafa8ef26baa7ee84eeaeb1 /src/vnet/vxlan/vxlan.c | |
parent | 1b563527c143903b6e7e79b5978af5310372f605 (diff) |
CLI: hide deleted interfaces
Added a new interface flag - HIDDEN
Indicates that the interface does not appear in CLI/API.
Added three new interface functions:
vnet_sw_interface_is_api_visible - indicates if the sw_if_index should be displayed
vnet_swif_is_api_visible - variant for sw_interface
vnet_sw_interface_is_api_valid - tests if the given if_index exists and is visible
for future use by api functions
Changed the unformat function to only accept visible interfaces
Changed vxlan to add the HIDDEN flag to deleted interfaces
This is the first part in a series to hide deleted interfaces from the API
Change-Id: Ib43cc5cf1c450856560faf4e84126eb3671038e2
Signed-off-by: Eyal Bari <ebari@cisco.com>
Diffstat (limited to 'src/vnet/vxlan/vxlan.c')
-rw-r--r-- | src/vnet/vxlan/vxlan.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/vnet/vxlan/vxlan.c b/src/vnet/vxlan/vxlan.c index f373a283d76..58c7becb5d7 100644 --- a/src/vnet/vxlan/vxlan.c +++ b/src/vnet/vxlan/vxlan.c @@ -18,6 +18,7 @@ #include <vnet/fib/fib_table.h> #include <vnet/mfib/mfib_table.h> #include <vnet/adj/adj_mcast.h> +#include <vnet/interface.h> #include <vlib/vlib.h> /** @@ -462,8 +463,11 @@ int vnet_vxlan_add_del_tunnel l2im->configs[sw_if_index].feature_bitmap = L2INPUT_FEAT_DROP; l2im->configs[sw_if_index].bd_index = 0; + vnet_sw_interface_t * si = vnet_get_sw_interface (vnm, sw_if_index); + si->flags &= ~VNET_SW_INTERFACE_FLAG_HIDDEN; vnet_sw_interface_set_flags (vnm, sw_if_index, VNET_SW_INTERFACE_FLAG_ADMIN_UP); + fib_node_init(&t->node, FIB_NODE_TYPE_VXLAN_TUNNEL); fib_prefix_t tun_dst_pfx; u32 encap_index = !is_ip6 ? @@ -573,6 +577,9 @@ int vnet_vxlan_add_del_tunnel t = pool_elt_at_index (vxm->tunnels, p[0]); vnet_sw_interface_set_flags (vnm, t->sw_if_index, 0 /* down */); + vnet_sw_interface_t * si = vnet_get_sw_interface (vnm, t->sw_if_index); + si->flags |= VNET_SW_INTERFACE_FLAG_HIDDEN; + /* make sure tunnel is removed from l2 bd or xconnect */ set_int_l2_mode(vxm->vlib_main, vnm, MODE_L3, t->sw_if_index, 0, 0, 0, 0); vec_add1 (vxm->free_vxlan_tunnel_hw_if_indices, t->hw_if_index); |