X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fgbp_bridge_domain.cpp;h=92d1a13062b50bae62b7a2995b5d7e800f8c79d3;hb=refs%2Fchanges%2F20%2F16420%2F4;hp=6cad1954e5d605055aa5c7fe9b6eb77f7eaa917a;hpb=be2286b0a4ff0cd31791b86d38a5e72b06bc17c2;p=vpp.git diff --git a/extras/vom/vom/gbp_bridge_domain.cpp b/extras/vom/vom/gbp_bridge_domain.cpp index 6cad1954e5d..92d1a13062b 100644 --- a/extras/vom/vom/gbp_bridge_domain.cpp +++ b/extras/vom/vom/gbp_bridge_domain.cpp @@ -31,6 +31,14 @@ gbp_bridge_domain::event_handler gbp_bridge_domain::m_evh; /** * Construct a new object matching the desried state */ +gbp_bridge_domain::gbp_bridge_domain(const bridge_domain& bd, + const interface& bvi) + : m_id(bd.id()) + , m_bd(bd.singular()) + , m_bvi(bvi.singular()) +{ +} + gbp_bridge_domain::gbp_bridge_domain(const bridge_domain& bd) : m_id(bd.id()) , m_bd(bd.singular()) @@ -47,9 +55,31 @@ gbp_bridge_domain::gbp_bridge_domain(const bridge_domain& bd, { } +gbp_bridge_domain::gbp_bridge_domain(const bridge_domain& bd, + const std::shared_ptr bvi, + const std::shared_ptr uu_fwd) + : m_id(bd.id()) + , m_bd(bd.singular()) + , m_bvi(bvi->singular()) + , m_uu_fwd(uu_fwd->singular()) +{ +} + +gbp_bridge_domain::gbp_bridge_domain(const bridge_domain& bd, + const interface& bvi, + const std::shared_ptr uu_fwd) + : m_id(bd.id()) + , m_bd(bd.singular()) + , m_bvi(bvi.singular()) + , m_uu_fwd(uu_fwd->singular()) +{ +} + gbp_bridge_domain::gbp_bridge_domain(const gbp_bridge_domain& bd) : m_id(bd.id()) , m_bd(bd.m_bd) + , m_bvi(bd.m_bvi) + , m_uu_fwd(bd.m_uu_fwd) { } @@ -65,6 +95,18 @@ gbp_bridge_domain::id() const return (m_bd->id()); } +const std::shared_ptr +gbp_bridge_domain::get_bridge_domain() +{ + return m_bd; +} + +const std::shared_ptr +gbp_bridge_domain::get_bvi() +{ + return m_bvi; +} + bool gbp_bridge_domain::operator==(const gbp_bridge_domain& b) const { @@ -121,7 +163,14 @@ std::string gbp_bridge_domain::to_string() const { std::ostringstream s; - s << "gbp-bridge-domain:[" << m_bd->to_string() << "]"; + s << "gbp-bridge-domain:[" << m_bd->to_string(); + + if (m_bvi) + s << " bvi:" << m_bvi->to_string(); + if (m_uu_fwd) + s << " uu-fwd:" << m_uu_fwd->to_string(); + + s << "]"; return (s.str()); } @@ -187,11 +236,11 @@ gbp_bridge_domain::event_handler::handle_populate(const client_db::key_t& key) interface::find(payload.bd.bvi_sw_if_index); if (uu_fwd && bvi) { - gbp_bridge_domain bd(payload.bd.bd_id, *bvi, *uu_fwd); + gbp_bridge_domain bd(payload.bd.bd_id, bvi, uu_fwd); OM::commit(key, bd); VOM_LOG(log_level_t::DEBUG) << "dump: " << bd.to_string(); - } else { - gbp_bridge_domain bd(payload.bd.bd_id); + } else if (bvi) { + gbp_bridge_domain bd(payload.bd.bd_id, *bvi); OM::commit(key, bd); VOM_LOG(log_level_t::DEBUG) << "dump: " << bd.to_string(); }