-
- if (uu_fwd && bm_flood && bvi) {
- gbp_bridge_domain bd(payload.bd.bd_id, bvi, uu_fwd, bm_flood);
+ std::shared_ptr<gbp_route_domain> grd =
+ gbp_route_domain::find(payload.bd.rd_id);
+
+ flags_t flags = gbp_bridge_domain::flags_t::NONE;
+ if (payload.bd.flags & GBP_BD_API_FLAG_DO_NOT_LEARN)
+ flags |= gbp_bridge_domain::flags_t::DO_NOT_LEARN;
+ if (payload.bd.flags & GBP_BD_API_FLAG_UU_FWD_DROP)
+ flags |= gbp_bridge_domain::flags_t::UU_FWD_DROP;
+ if (payload.bd.flags & GBP_BD_API_FLAG_MCAST_DROP)
+ flags |= gbp_bridge_domain::flags_t::MCAST_DROP;
+ if (payload.bd.flags & GBP_BD_API_FLAG_UCAST_ARP)
+ flags |= gbp_bridge_domain::flags_t::UCAST_ARP;
+
+ if (uu_fwd && bm_flood && bvi && grd) {
+ gbp_bridge_domain bd(payload.bd.bd_id, *grd, bvi, uu_fwd, bm_flood,
+ flags);