vxlan: vxlan/vxlan.api API cleanup
[vpp.git] / extras / vom / vom / gbp_endpoint.hpp
index d27ad90..8008e3b 100644 (file)
@@ -30,6 +30,24 @@ namespace VOM {
 class gbp_endpoint : public object_base
 {
 public:
+  /**
+   * Endpoint flags
+   */
+  struct flags_t : enum_base<flags_t>
+  {
+    const static flags_t NONE;
+    const static flags_t BOUNCE;
+    const static flags_t REMOTE;
+    const static flags_t LEARNT;
+    const static flags_t EXTERNAL;
+
+  private:
+    /**
+     * Private constructor taking the value and the string name
+     */
+    flags_t(int v, const std::string& s);
+  };
+
   /**
    * The key for a GBP endpoint; interface and IP
    */
@@ -41,7 +59,8 @@ public:
   gbp_endpoint(const interface& itf,
                const std::vector<boost::asio::ip::address>& ip_addr,
                const mac_address_t& mac,
-               const gbp_endpoint_group& epg);
+               const gbp_endpoint_group& epg,
+               const flags_t& flags = flags_t::NONE);
 
   /**
    * Copy Construct
@@ -174,6 +193,11 @@ private:
    */
   std::shared_ptr<gbp_endpoint_group> m_epg;
 
+  /**
+   * Endpoint flags
+   */
+  flags_t m_flags;
+
   /**
    * A map of all bridge_domains
    */