X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fethernet%2Finterface.c;h=2ed20e15c24348b71a801dbe98ec7383e9085005;hb=fe7d4a2e31529eed5416b38b520fdc84687df03c;hp=801c99f824dc6ce89ed780cdb191798d2f73aa10;hpb=5957a14329ab174e1215a914296cade8de8865e9;p=vpp.git diff --git a/src/vnet/ethernet/interface.c b/src/vnet/ethernet/interface.c index 801c99f824d..2ed20e15c24 100644 --- a/src/vnet/ethernet/interface.c +++ b/src/vnet/ethernet/interface.c @@ -344,6 +344,7 @@ ethernet_delete_interface (vnet_main_t * vnm, u32 hw_if_index) } } pool_put_index (em->vlan_pool, main_intf->dot1q_vlans); + main_intf->dot1q_vlans = 0; } if (main_intf->dot1ad_vlans) { @@ -356,6 +357,7 @@ ethernet_delete_interface (vnet_main_t * vnm, u32 hw_if_index) } } pool_put_index (em->vlan_pool, main_intf->dot1ad_vlans); + main_intf->dot1ad_vlans = 0; } vnet_delete_hw_interface (vnm, hw_if_index); @@ -619,6 +621,10 @@ vnet_create_loopback_interface (u32 * sw_if_indexp, u8 * mac_address, { vnet_sw_interface_t *si = vnet_get_hw_sw_interface (vnm, hw_if_index); *sw_if_indexp = si->sw_if_index; + + /* By default don't flood to loopbacks, as packets just keep + * coming back ... If this loopback becomes a BVI, we'll change it */ + si->flood_class = VNET_FLOOD_CLASS_NO_FLOOD; } return 0; @@ -737,12 +743,13 @@ int vnet_delete_sub_interface (u32 sw_if_index) { vnet_main_t *vnm = vnet_get_main (); - vnet_sw_interface_t *si = vnet_get_sw_interface (vnm, sw_if_index); + vnet_sw_interface_t *si; int rv = 0; if (pool_is_free_index (vnm->interface_main.sw_interfaces, sw_if_index)) return VNET_API_ERROR_INVALID_SW_IF_INDEX; + si = vnet_get_sw_interface (vnm, sw_if_index); if (si->type == VNET_SW_INTERFACE_TYPE_SUB || si->type == VNET_SW_INTERFACE_TYPE_P2P) {