16 #ifndef __VOM_GBP_CONTRACT_H__ 17 #define __VOM_GBP_CONTRACT_H__ 42 typedef std::pair<epg_id_t, epg_id_t>
key_t;
55 const gbp_rules_t& gpb_rules,
71 const key_t
key()
const;
81 std::shared_ptr<gbp_contract>
singular()
const;
86 static std::shared_ptr<gbp_contract>
find(
const key_t& k);
91 static void dump(std::ostream& os);
121 void handle_replay();
126 void show(std::ostream& os);
147 static std::shared_ptr<gbp_contract> find_or_add(
const gbp_contract& temp);
182 std::shared_ptr<ACL::l3_list> m_acl;
187 gbp_rules_t m_gbp_rules;
192 ethertype_set_t m_allowed_ethertypes;
bool operator==(const gbp_contract &bdae) const
comparison operator
const std::string key_t
In the opflex world each entity is known by a URI which can be converted into a string.
An ACL list comprises a set of match actions rules to be applied to packets.
uint32_t epg_id_t
EPG IDs are 32 bit integers.
static void dump(std::ostream &os)
Dump all bridge_domain-doamin into the stream provided.
const key_t key() const
Return the object's key.
std::string to_string() const
Convert to string for debugging.
std::set< ethertype_t > ethertype_set_t
A set of allowed ethertypes.
u16 allowed_ethertypes[n_ether_types]
void replay(void)
replay the object to create it in hardware
gbp_contract(epg_id_t src_epg_id, epg_id_t dst_epg_id, const ACL::l3_list &acl, const gbp_rules_t &gpb_rules, const ethertype_set_t &allowed_ethertypes)
Construct a GBP contract.
A Database to store the unique 'singular' instances of a single object type.
A entry in the ARP termination table of a Bridge Domain.
~gbp_contract()
Destructor.
std::pair< epg_id_t, epg_id_t > key_t
The key for a contract is the pari of EPG-IDs.
Class definition for listeners to OM events.
inspect command handler Handler
void event_handler(void *tls_async)
dependency_t
There needs to be a strict order in which object types are read from VPP (at boot time) and replayed ...
The interface to writing objects into VPP OM.
A base class for all object_base in the VPP object_base-Model.
std::set< gbp_rule > gbp_rules_t
set of gbp rules
std::ostream & operator<<(std::ostream &os, const std::pair< direction_t, interface::key_t > &key)
The VPP Object Model (VOM) library.
static std::shared_ptr< gbp_contract > find(const key_t &k)
Find the instnace of the bridge_domain domain in the OM.
std::shared_ptr< gbp_contract > singular() const
Return the matching 'singular instance'.