aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp-api/vom/bridge_domain.hpp
diff options
context:
space:
mode:
authorNeale Ranns <neale.ranns@cisco.com>2018-04-04 09:34:50 -0700
committerDamjan Marion <dmarion.lists@gmail.com>2018-04-13 08:51:21 +0000
commit25b049484fcf9161edb2c19250066b893c38c264 (patch)
tree69204352a0648cfc4089fa0e37214bffbae61e81 /src/vpp-api/vom/bridge_domain.hpp
parent4f8863b21405d1ab3e067e978a60be72a343358b (diff)
GBP V2
update the GBP plugin to implement the full NAT feature set of opflex agent Change-Id: Ic06a039c889445ed0b9087fa1f292634192b0f8d Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Diffstat (limited to 'src/vpp-api/vom/bridge_domain.hpp')
-rw-r--r--src/vpp-api/vom/bridge_domain.hpp67
1 files changed, 65 insertions, 2 deletions
diff --git a/src/vpp-api/vom/bridge_domain.hpp b/src/vpp-api/vom/bridge_domain.hpp
index c7f84e9ec3f..d345da238ca 100644
--- a/src/vpp-api/vom/bridge_domain.hpp
+++ b/src/vpp-api/vom/bridge_domain.hpp
@@ -52,6 +52,51 @@ public:
};
/**
+ * Bridge Domain ARP termination mode
+ */
+ struct arp_term_mode_t : enum_base<arp_term_mode_t>
+ {
+ const static arp_term_mode_t ON;
+ const static arp_term_mode_t OFF;
+
+ private:
+ /**
+ * Private constructor taking the value and the string name
+ */
+ arp_term_mode_t(int v, const std::string& s);
+ };
+
+ /**
+ * Bridge Domain MAC aging mode
+ */
+ struct mac_age_mode_t : enum_base<mac_age_mode_t>
+ {
+ const static mac_age_mode_t ON;
+ const static mac_age_mode_t OFF;
+
+ private:
+ /**
+ * Private constructor taking the value and the string name
+ */
+ mac_age_mode_t(int v, const std::string& s);
+ };
+
+ /**
+ * Bridge Domain Learning mode
+ */
+ struct flood_mode_t : enum_base<flood_mode_t>
+ {
+ const static flood_mode_t ON;
+ const static flood_mode_t OFF;
+
+ private:
+ /**
+ * Private constructor taking the value and the string name
+ */
+ flood_mode_t(int v, const std::string& s);
+ };
+
+ /**
* The value of the defaultbridge domain
*/
const static uint32_t DEFAULT_TABLE = 0;
@@ -60,7 +105,10 @@ public:
* Construct a new object matching the desried state
*/
bridge_domain(uint32_t id,
- const learning_mode_t& lmode = learning_mode_t::ON);
+ const learning_mode_t& lmode = learning_mode_t::ON,
+ const arp_term_mode_t& amode = arp_term_mode_t::ON,
+ const flood_mode_t& fmode = flood_mode_t::ON,
+ const mac_age_mode_t& mmode = mac_age_mode_t::OFF);
/**
* Copy Constructor
@@ -179,11 +227,26 @@ private:
HW::item<uint32_t> m_id;
/**
- * The leanring mode of the bridge
+ * The learning mode of the bridge
*/
learning_mode_t m_learning_mode;
/**
+ * The ARP termination mode of the bridge
+ */
+ arp_term_mode_t m_arp_term_mode;
+
+ /**
+ * The flood mode of the bridge
+ */
+ flood_mode_t m_flood_mode;
+
+ /**
+ * The MAC aging mode of the bridge
+ */
+ mac_age_mode_t m_mac_age_mode;
+
+ /**
* A map of all interfaces key against the interface's name
*/
static singular_db<key_t, bridge_domain> m_db;