X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fgbp_contract.hpp;h=caf5a3c5a0ee8db97315f17f3c058c3aa214bcd1;hb=3b37125bdb0251181f90a429a4532b339711cf89;hp=2f1c3c5a9504d113ba484b8104ff050bce7a37c3;hpb=5637e653649692eb04fbec5c97e0fd427404c1dd;p=vpp.git diff --git a/extras/vom/vom/gbp_contract.hpp b/extras/vom/vom/gbp_contract.hpp index 2f1c3c5a950..caf5a3c5a0e 100644 --- a/extras/vom/vom/gbp_contract.hpp +++ b/extras/vom/vom/gbp_contract.hpp @@ -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" @@ -37,9 +37,9 @@ public: typedef std::set gbp_rules_t; /** - * The key for a contract is the pari of EPG-IDs + * The key for a contract is the pair of EPG-IDs */ - typedef std::pair key_t; + typedef std::tuple key_t; /** * A set of allowed ethertypes @@ -49,8 +49,9 @@ public: /** * Construct a GBP contract */ - gbp_contract(epg_id_t src_epg_id, - epg_id_t dst_epg_id, + gbp_contract(scope_t scope, + sclass_t sclass, + sclass_t dclass, const ACL::l3_list& acl, const gbp_rules_t& gpb_rules, const ethertype_set_t& allowed_ethertypes); @@ -164,17 +165,22 @@ private: /** * HW configuration for the result of creating the endpoint */ - HW::item m_hw; + HW::item m_hw; + + /* + * The scope of the contract + */ + scope_t m_scope; /** * The source EPG ID */ - epg_id_t m_src_epg_id; + sclass_t m_sclass; /** * The destination EPG ID */ - epg_id_t m_dst_epg_id; + sclass_t m_dclass; /** * The ACL applied to traffic between the gourps