summaryrefslogtreecommitdiffstats
path: root/src/plugins/gbp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/gbp')
-rw-r--r--src/plugins/gbp/gbp_bridge_domain.c9
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
*/