16 #ifndef __VOM_GBP_BRIDGE_DOMAIN_H__ 17 #define __VOM_GBP_BRIDGE_DOMAIN_H__ 48 flags_t(
int v,
const std::string& s);
67 const std::shared_ptr<interface> bvi,
68 const std::shared_ptr<interface> uu_fwd,
69 const std::shared_ptr<interface> bm_flood,
74 const std::shared_ptr<interface> uu_fwd,
75 const std::shared_ptr<interface> bm_flood,
91 const key_t
key()
const;
106 std::shared_ptr<gbp_bridge_domain>
singular()
const;
111 static std::shared_ptr<gbp_bridge_domain>
find(
const key_t& k);
116 static void dump(std::ostream& os);
129 const std::shared_ptr<interface>
get_bvi()
const;
149 void handle_replay();
154 void show(std::ostream& os);
175 static std::shared_ptr<gbp_bridge_domain> find_or_add(
198 std::shared_ptr<bridge_domain> m_bd;
199 std::shared_ptr<gbp_route_domain> m_rd;
200 std::shared_ptr<interface> m_bvi;
201 std::shared_ptr<interface> m_uu_fwd;
202 std::shared_ptr<interface> m_bm_flood;
static const flags_t DO_NOT_LEARN
A template base class for all enum types.
static const flags_t UU_FWD_DROP
const std::string key_t
In the opflex world each entity is known by a URI which can be converted into a string.
const std::shared_ptr< bridge_domain > get_bridge_domain() const
static void dump(std::ostream &os)
Dump all bridge_domain-doamin into the stream provided.
static const flags_t NONE
bool operator==(const enum_base &e) const
Comparison operator.
static const flags_t MCAST_DROP
static const flags_t UCAST_ARP
std::shared_ptr< gbp_bridge_domain > singular() const
Return the matching 'singular instance'.
void replay(void)
replay the object to create it in hardware
static std::shared_ptr< gbp_bridge_domain > find(const key_t &k)
Find the instnace of the bridge_domain domain in the OM.
const std::shared_ptr< interface > get_bvi() const
A entry in the ARP termination table of a Bridge Domain.
A Database to store the unique 'singular' instances of a single object type.
static const flags_t & from_vpp(int i)
bridge_domain::key_t key_t
The key for a bridge_domain is the pair of EPG-IDs.
sll srl srl sll sra u16x4 i
A representation of an interface in VPP.
A base class for all object_base in the VPP object_base-Model.
Class definition for listeners to OM events.
inspect command handler Handler
const std::string & to_string() const
convert to string format for debug purposes
gbp_bridge_domain(const bridge_domain &bd, const gbp_route_domain &rd, const interface &bvi, const flags_t &flags=flags_t::NONE)
Construct a GBP bridge_domain.
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.
uint32_t key_t
Key Type for Bridge Domains in the sigular DB.
A base class for all object_base in the VPP object_base-Model.
A entry in the ARP termination table of a Route Domain.
const key_t key() const
Return the object's key.
The VPP Object Model (VOM) library.
~gbp_bridge_domain()
Destructor.
uint32_t id() const
Return the bridge domain's VPP ID.