summaryrefslogtreecommitdiffstats
path: root/extras/vom/vom/gbp_bridge_domain_cmds.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'extras/vom/vom/gbp_bridge_domain_cmds.cpp')
-rw-r--r--extras/vom/vom/gbp_bridge_domain_cmds.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/extras/vom/vom/gbp_bridge_domain_cmds.cpp b/extras/vom/vom/gbp_bridge_domain_cmds.cpp
index 60f7cddd9f3..8fc5250f192 100644
--- a/extras/vom/vom/gbp_bridge_domain_cmds.cpp
+++ b/extras/vom/vom/gbp_bridge_domain_cmds.cpp
@@ -20,10 +20,12 @@ namespace gbp_bridge_domain_cmds {
create_cmd::create_cmd(HW::item<uint32_t>& item,
const handle_t bvi,
- const handle_t uu_fwd)
+ const handle_t uu_fwd,
+ const gbp_bridge_domain::flags_t& flags)
: rpc_cmd(item)
, m_bvi(bvi)
, m_uu_fwd(uu_fwd)
+ , m_flags(flags)
{
}
@@ -31,7 +33,8 @@ bool
create_cmd::operator==(const create_cmd& other) const
{
return ((m_hw_item.data() == other.m_hw_item.data()) &&
- (m_bvi == other.m_bvi) && (m_uu_fwd == other.m_uu_fwd));
+ (m_bvi == other.m_bvi) && (m_uu_fwd == other.m_uu_fwd) &&
+ (m_flags == other.m_flags));
}
rc_t
@@ -45,6 +48,10 @@ create_cmd::issue(connection& con)
payload.bd.bvi_sw_if_index = m_bvi.value();
payload.bd.uu_fwd_sw_if_index = m_uu_fwd.value();
+ payload.bd.flags = GBP_BD_API_FLAG_NONE;
+ if (gbp_bridge_domain::flags_t::DO_NOT_LEARN == m_flags)
+ payload.bd.flags = GBP_BD_API_FLAG_DO_NOT_LEARN;
+
VAPI_CALL(req.execute());
return (wait());