X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=extras%2Fvom%2Fvom%2Fgbp_bridge_domain.hpp;h=2c470aa3a6eccf6a9c5b59341173000627a68b65;hb=0e3eb60f35c17297383bdd4b353fecdea704be17;hp=c86c53ebf24e57e9a38eec19136d9109c3d4b92d;hpb=7e70ff52c18e62f4fdef1f63dea4edd64bcf9c76;p=vpp.git diff --git a/extras/vom/vom/gbp_bridge_domain.hpp b/extras/vom/vom/gbp_bridge_domain.hpp index c86c53ebf24..2c470aa3a6e 100644 --- a/extras/vom/vom/gbp_bridge_domain.hpp +++ b/extras/vom/vom/gbp_bridge_domain.hpp @@ -34,19 +34,39 @@ public: */ typedef bridge_domain::key_t key_t; + struct flags_t : enum_base + { + const static flags_t NONE; + const static flags_t DO_NOT_LEARN; + + static const flags_t& from_vpp(int i); + + private: + flags_t(int v, const std::string& s); + flags_t(); + }; + /** * Construct a GBP bridge_domain */ - gbp_bridge_domain(const bridge_domain& bd, const interface& bvi); gbp_bridge_domain(const bridge_domain& bd, const interface& bvi, - const interface& uu_fwd); + const flags_t& flags = flags_t::NONE); + gbp_bridge_domain(const bridge_domain& bd, + const interface& bvi, + const interface& uu_fwd, + const interface& bm_flood, + const flags_t& flags = flags_t::NONE); gbp_bridge_domain(const bridge_domain& bd, const std::shared_ptr bvi, - const std::shared_ptr uu_fwd); + const std::shared_ptr uu_fwd, + const std::shared_ptr bm_flood, + const flags_t& flags = flags_t::NONE); gbp_bridge_domain(const bridge_domain& bd, const interface& bvi, - const std::shared_ptr uu_fwd); + const std::shared_ptr uu_fwd, + const std::shared_ptr bm_flood, + const flags_t& flags = flags_t::NONE); /** * Copy Construct @@ -98,8 +118,8 @@ public: */ std::string to_string() const; - const std::shared_ptr get_bridge_domain(); - const std::shared_ptr get_bvi(); + const std::shared_ptr get_bridge_domain() const; + const std::shared_ptr get_bvi() const; private: /** @@ -171,6 +191,8 @@ private: std::shared_ptr m_bd; std::shared_ptr m_bvi; std::shared_ptr m_uu_fwd; + std::shared_ptr m_bm_flood; + const flags_t& m_flags; /** * A map of all bridge_domains