Bug fix for VPP-104 about not being able to down a sub-if if the super-if is up 51/1851/3
authorCalvin <calvin.ference@gmail.com>
Mon, 4 Jul 2016 18:14:46 +0000 (14:14 -0400)
committerChris Luke <chris_luke@comcast.com>
Wed, 6 Jul 2016 16:47:35 +0000 (16:47 +0000)
Change-Id: I913c9807519aa10e515d12fcfbcbfc22b58f5839
Signed-off-by: Calvin <calvin.ference@gmail.com>
vnet/vnet/interface.c

index d84c8b0..24f9cbc 100644 (file)
@@ -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,