diff options
author | Neale Ranns <nranns@cisco.com> | 2019-01-10 08:00:22 -0800 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2019-01-22 07:17:43 +0000 |
commit | 5e82b050a5c140e195ba960b73fdcdefd5d9f3a5 (patch) | |
tree | 8102357010b1d311003b235db8831b231f789dde /extras/vom/vom/gbp_bridge_domain.hpp | |
parent | a0d82d68108a65ee28f7629da7eed74005b131c4 (diff) |
VOM: GBP bridge domain flags
Change-Id: Ib5e4a850e127dda51318ffe82ef2622b980bc947
Signed-off-by: Neale Ranns <nranns@cisco.com>
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 |