diff options
Diffstat (limited to 'src/plugins/gbp/gbp_bridge_domain.c')
-rw-r--r-- | src/plugins/gbp/gbp_bridge_domain.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/gbp/gbp_bridge_domain.c b/src/plugins/gbp/gbp_bridge_domain.c index 73daa9d6d80..53105451d6c 100644 --- a/src/plugins/gbp/gbp_bridge_domain.c +++ b/src/plugins/gbp/gbp_bridge_domain.c @@ -213,7 +213,8 @@ gbp_bridge_domain_add_and_lock (u32 bd_id, MODE_L2_BRIDGE, gb->gb_bvi_sw_if_index, bd_index, L2_BD_PORT_TYPE_BVI, 0, 0); - if (!(flags & GBP_BD_FLAG_UU_FWD_DROP) + if ((!(flags & GBP_BD_FLAG_UU_FWD_DROP) + || (flags & GBP_BD_FLAG_UCAST_ARP)) && ~0 != gb->gb_uu_fwd_sw_if_index) { set_int_l2_mode (vlib_get_main (), vnet_get_main (), @@ -234,6 +235,12 @@ gbp_bridge_domain_add_and_lock (u32 bd_id, */ bd_set_flags (vlib_get_main (), bd_index, bd_flags, 0); + if (flags & GBP_BD_FLAG_UCAST_ARP) + { + bd_flags = L2_ARP_UFWD; + bd_set_flags (vlib_get_main (), bd_index, bd_flags, 1); + } + /* * Add the BVI's MAC to the L2FIB */ |