X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=vnet%2Fvnet%2Finterface.c;h=24f9cbc9affc284cd57f93ac7b8118d3e21f01ec;hb=32f7bc1fac3388ff7c5c8ae260c11534dc7455e6;hp=d84c8b03bc27ff53b555640f73fe4ff49b52a7f2;hpb=b8dca74c232d6f177479d644dc3359b82772ea9e;p=vpp.git diff --git a/vnet/vnet/interface.c b/vnet/vnet/interface.c index d84c8b03bc2..24f9cbc9aff 100644 --- a/vnet/vnet/interface.c +++ b/vnet/vnet/interface.c @@ -354,7 +354,9 @@ vnet_sw_interface_set_flags_helper (vnet_main_t * vnm, u32 sw_if_index, u32 flag { si_sup = vnet_get_sw_interface (vnm, si->sup_sw_if_index); - if (flags != (si_sup->flags & mask)) + /* Check to see if we're bringing down the soft interface and if it's parent is up */ + if ((flags != (si_sup->flags & mask)) && + (!((flags == 0) && ((si_sup->flags & mask) == VNET_SW_INTERFACE_FLAG_ADMIN_UP)))) { error = clib_error_return (0, "super-interface %U must be %U", format_vnet_sw_interface_name, vnm, si_sup,