summaryrefslogtreecommitdiffstats
path: root/src/vnet/l2/l2_input.c
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2018-07-13 20:12:45 -0400
committerDamjan Marion <dmarion@me.com>2018-07-15 08:51:15 +0000
commit635ec3bdd073101dd513083be4f1edfb64e29098 (patch)
tree5f837acadc4955f07f42da45694ecbe1261ea08c /src/vnet/l2/l2_input.c
parent0e6f4d6af4191340a5f542c9eeb0f34dda32e745 (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.c15
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;