diff options
Diffstat (limited to 'extras/vom/vom/gbp_bridge_domain.hpp')
-rw-r--r-- | extras/vom/vom/gbp_bridge_domain.hpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/extras/vom/vom/gbp_bridge_domain.hpp b/extras/vom/vom/gbp_bridge_domain.hpp index c86c53ebf24..3fcb24cf07b 100644 --- a/extras/vom/vom/gbp_bridge_domain.hpp +++ b/extras/vom/vom/gbp_bridge_domain.hpp @@ -34,19 +34,36 @@ public: */ typedef bridge_domain::key_t key_t; + struct flags_t : enum_base<flags_t> + { + 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 flags_t& flags = flags_t::NONE); gbp_bridge_domain(const bridge_domain& bd, const std::shared_ptr<interface> bvi, - const std::shared_ptr<interface> uu_fwd); + const std::shared_ptr<interface> uu_fwd, + const flags_t& flags = flags_t::NONE); gbp_bridge_domain(const bridge_domain& bd, const interface& bvi, - const std::shared_ptr<interface> uu_fwd); + const std::shared_ptr<interface> uu_fwd, + const flags_t& flags = flags_t::NONE); /** * Copy Construct @@ -98,8 +115,8 @@ public: */ std::string to_string() const; - const std::shared_ptr<bridge_domain> get_bridge_domain(); - const std::shared_ptr<interface> get_bvi(); + const std::shared_ptr<bridge_domain> get_bridge_domain() const; + const std::shared_ptr<interface> get_bvi() const; private: /** @@ -171,6 +188,7 @@ private: std::shared_ptr<bridge_domain> m_bd; std::shared_ptr<interface> m_bvi; std::shared_ptr<interface> m_uu_fwd; + const flags_t& m_flags; /** * A map of all bridge_domains |