X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fgbp_contract.hpp;h=e517a3d642895a8050d2c31ce003406b1b2c9a23;hb=1c17e2ecac42e001ce905418463edcb26fe58b01;hp=7a0696de7b3df7e038d4a970c7faab668793560b;hpb=164e5f8c63652028ecb9c3570e1ea8618b163071;p=vpp.git diff --git a/extras/vom/vom/gbp_contract.hpp b/extras/vom/vom/gbp_contract.hpp index 7a0696de7b3..e517a3d6428 100644 --- a/extras/vom/vom/gbp_contract.hpp +++ b/extras/vom/vom/gbp_contract.hpp @@ -18,6 +18,7 @@ #include "vom/acl_list.hpp" #include "vom/gbp_endpoint.hpp" +#include "vom/gbp_rule.hpp" #include "vom/interface.hpp" #include "vom/singular_db.hpp" #include "vom/types.hpp" @@ -30,17 +31,29 @@ namespace VOM { class gbp_contract : public object_base { public: + /** + * set of gbp rules + */ + typedef std::set gbp_rules_t; + /** * The key for a contract is the pari of EPG-IDs */ typedef std::pair key_t; + /** + * A set of allowed ethertypes + */ + typedef std::set ethertype_set_t; + /** * Construct a GBP contract */ gbp_contract(epg_id_t src_epg_id, epg_id_t dst_epg_id, - const ACL::l3_list& acl); + const ACL::l3_list& acl, + const gbp_rules_t& gpb_rules, + const ethertype_set_t& allowed_ethertypes); /** * Copy Construct @@ -168,6 +181,16 @@ private: */ std::shared_ptr m_acl; + /** + * The gbp rules applied to traffic between the gourps + */ + gbp_rules_t m_gbp_rules; + + /** + * the set of Ether-types allowed by this contract + */ + ethertype_set_t m_allowed_ethertypes; + /** * A map of all bridge_domains */