X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fgbp_bridge_domain.hpp;h=64429fc730e96286322d6901039c2e06d7d8c823;hb=8ea109e40;hp=031510aa4613ce09b7e58e840eeda8add89a4405;hpb=193c47d900bfbc15e4e46ede7c25ecf1ca95b898;p=vpp.git diff --git a/extras/vom/vom/gbp_bridge_domain.hpp b/extras/vom/vom/gbp_bridge_domain.hpp index 031510aa461..64429fc730e 100644 --- a/extras/vom/vom/gbp_bridge_domain.hpp +++ b/extras/vom/vom/gbp_bridge_domain.hpp @@ -34,20 +34,42 @@ 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; + const static flags_t UU_FWD_DROP; + const static flags_t MCAST_DROP; + const static flags_t UCAST_ARP; + + 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); 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 @@ -99,8 +121,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: /** @@ -172,6 +194,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