vxlan: vxlan/vxlan.api API cleanup
[vpp.git] / extras / vom / vom / gbp_contract.hpp
index a8e15fb..caf5a3c 100644 (file)
@@ -17,8 +17,8 @@
 #define __VOM_GBP_CONTRACT_H__
 
 #include "vom/acl_l3_list.hpp"
-#include "vom/gbp_endpoint.hpp"
 #include "vom/gbp_rule.hpp"
+#include "vom/gbp_types.hpp"
 #include "vom/interface.hpp"
 #include "vom/singular_db.hpp"
 #include "vom/types.hpp"
@@ -39,7 +39,7 @@ public:
   /**
    * The key for a contract is the pair of EPG-IDs
    */
-  typedef std::pair<sclass_t, sclass_t> key_t;
+  typedef std::tuple<scope_t, sclass_t, sclass_t> key_t;
 
   /**
    * A set of allowed ethertypes
@@ -49,7 +49,8 @@ public:
   /**
    * Construct a GBP contract
    */
-  gbp_contract(sclass_t sclass,
+  gbp_contract(scope_t scope,
+               sclass_t sclass,
                sclass_t dclass,
                const ACL::l3_list& acl,
                const gbp_rules_t& gpb_rules,
@@ -164,7 +165,12 @@ private:
   /**
    * HW configuration for the result of creating the endpoint
    */
-  HW::item<bool> m_hw;
+  HW::item<uint32_t> m_hw;
+
+  /*
+   * The scope of the contract
+   */
+  scope_t m_scope;
 
   /**
    * The source EPG ID