From 87dad11c8717735479e57cf6c065c7a7963c3aa3 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Mon, 9 Apr 2018 01:53:01 -0700 Subject: L2: no-flood interface type in the Bridge-Domain Change-Id: I50ff0cacf88182f8e0be19840c50f4954de586e2 Signed-off-by: Neale Ranns --- src/vnet/l2/l2_input.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/vnet/l2/l2_input.c') diff --git a/src/vnet/l2/l2_input.c b/src/vnet/l2/l2_input.c index 5d16b1ddc9e..c2df5acb3b2 100644 --- a/src/vnet/l2/l2_input.c +++ b/src/vnet/l2/l2_input.c @@ -579,6 +579,8 @@ set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */ /* undo any BVI-related config */ if (bd_config->bvi_sw_if_index == sw_if_index) { + vnet_sw_interface_t *si; + bd_config->bvi_sw_if_index = ~0; config->bvi = 0; @@ -591,6 +593,10 @@ set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */ "ethernet-input", VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT); ASSERT (slot == VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT); + + /* since this is a no longer BVI interface do not to flood to it */ + si = vnet_get_sw_interface (vnm, sw_if_index); + si->flood_class = VNET_FLOOD_CLASS_NO_FLOOD; } /* Clear MACs learned on the interface */ @@ -673,6 +679,8 @@ set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */ /* Do BVI interface initializations */ if (bvi) { + vnet_sw_interface_t *si; + /* ensure BD has no bvi interface (or replace that one with this??) */ if (bd_config->bvi_sw_if_index != ~0) { @@ -693,6 +701,10 @@ set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */ "l2-input", VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT); ASSERT (slot == VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT); + + /* since this is a BVI interface we want to flood to it */ + si = vnet_get_sw_interface (vnm, sw_if_index); + si->flood_class = VNET_FLOOD_CLASS_BVI; } /* Add interface to bridge-domain flood vector */ -- cgit 1.2.3-korg