Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Improve L2FIB delete entry handling and "show l2fib" CLI options
[vpp.git]
/
src
/
vnet
/
l2
/
l2_input.c
diff --git
a/src/vnet/l2/l2_input.c
b/src/vnet/l2/l2_input.c
index
c2df5ac
..
6e3851e
100644
(file)
--- a/
src/vnet/l2/l2_input.c
+++ b/
src/vnet/l2/l2_input.c
@@
-176,7
+176,8
@@
classify_and_dispatch (l2input_main_t * msm, vlib_buffer_t * b0, u32 * next0)
u8 protocol = ((ip6_header_t *) l3h0)->protocol;
/* Disable bridge forwarding (flooding will execute instead if not xconnect) */
u8 protocol = ((ip6_header_t *) l3h0)->protocol;
/* Disable bridge forwarding (flooding will execute instead if not xconnect) */
- feat_mask &= ~(L2INPUT_FEAT_FWD | L2INPUT_FEAT_UU_FLOOD);
+ feat_mask &= ~(L2INPUT_FEAT_FWD |
+ L2INPUT_FEAT_UU_FLOOD | L2INPUT_FEAT_GBP_FWD);
/* Disable ARP-term for non-ARP and non-ICMP6 packet */
if (ethertype != ETHERNET_TYPE_ARP &&
/* Disable ARP-term for non-ARP and non-ICMP6 packet */
if (ethertype != ETHERNET_TYPE_ARP &&
@@
-564,6
+565,7
@@
set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */
l2_bridge_domain_t *bd_config;
i32 l2_if_adjust = 0;
u32 slot;
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);
config = l2input_intf_config (sw_if_index);
hi = vnet_get_sup_hw_interface (vnet_main, sw_if_index);
config = l2input_intf_config (sw_if_index);
@@
-585,7
+587,7
@@
set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */
config->bvi = 0;
/* delete the l2fib entry for the bvi interface */
config->bvi = 0;
/* delete the l2fib entry for the bvi interface */
- l2fib_del_entry (hi->hw_address, config->bd_index);
+ l2fib_del_entry (hi->hw_address, config->bd_index
, sw_if_index
);
/* Make loop output node send packet back to ethernet-input node */
slot =
/* Make loop output node send packet back to ethernet-input node */
slot =
@@
-798,6
+800,12
@@
set_int_l2_mode (vlib_main_t * vm, vnet_main_t * vnet_main, /* */
/* Set up the L2/L3 flag in the interface parsing tables */
ethernet_sw_interface_set_l2_mode (vnm, sw_if_index, (mode != MODE_L3));
/* Set up the L2/L3 flag in the interface parsing tables */
ethernet_sw_interface_set_l2_mode (vnm, sw_if_index, (mode != MODE_L3));
+ dev_class = vnet_get_device_class (vnet_main, hi->dev_class_index);
+ if (dev_class->set_l2_mode_function)
+ {
+ dev_class->set_l2_mode_function (vnet_main, hi, l2_if_adjust);
+ }
+
return 0;
}
return 0;
}