diff options
author | Dave Barach <dave@barachs.net> | 2018-07-13 20:12:45 -0400 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-07-15 08:51:15 +0000 |
commit | 635ec3bdd073101dd513083be4f1edfb64e29098 (patch) | |
tree | 5f837acadc4955f07f42da45694ecbe1261ea08c /src/vnet/l2/l2_input.c | |
parent | 0e6f4d6af4191340a5f542c9eeb0f34dda32e745 (diff) |
VPP-1341: fix loopback interface graph arcs
Remove broken special case from l2_input.c:set_int_l2_mode(), which
turns out to confuse the graph dispatch engine.
The loopback TX function needs to push packets to either
ethernet-input or to l2-input, based on bridge / BVI
configuration. Rather than overloading a single graph arc - and making
vain attempts to reconfigure it - create both arcs and use the correct
one.
Rewrote the loopback tx function as an idosyncratic multi-arch
quad/single loop fn.
Change-Id: I15b56ce641d90a11e7b3c7d23859f40e168dd7b2
Signed-off-by: Dave Barach <dave@barachs.net>
Diffstat (limited to 'src/vnet/l2/l2_input.c')
-rw-r--r-- | src/vnet/l2/l2_input.c | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/src/vnet/l2/l2_input.c b/src/vnet/l2/l2_input.c index 6e3851e8512..feab40c2cd3 100644 --- a/src/vnet/l2/l2_input.c +++ b/src/vnet/l2/l2_input.c @@ -564,7 +564,6 @@ set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */ l2_input_config_t *config; l2_bridge_domain_t *bd_config; i32 l2_if_adjust = 0; - u32 slot; vnet_device_class_t *dev_class; hi = vnet_get_sup_hw_interface (vnet_main, sw_if_index); @@ -589,13 +588,6 @@ set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */ /* delete the l2fib entry for the bvi interface */ l2fib_del_entry (hi->hw_address, config->bd_index, sw_if_index); - /* Make loop output node send packet back to ethernet-input node */ - slot = - vlib_node_add_named_next_with_slot (vm, hi->tx_node_index, - "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; @@ -697,13 +689,6 @@ set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */ /* Disable learning by default. no use since l2fib entry is static. */ config->feature_bitmap &= ~L2INPUT_FEAT_LEARN; - /* Make loop output node send packet to l2-input node */ - slot = - vlib_node_add_named_next_with_slot (vm, hi->tx_node_index, - "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; |