16 #ifndef __VOM_GBP_ENDPOINT_H__ 17 #define __VOM_GBP_ENDPOINT_H__ 54 typedef std::pair<interface::key_t, mac_address_t>
key_t;
60 const std::vector<boost::asio::ip::address>& ip_addr,
78 const key_t
key()
const;
88 std::shared_ptr<gbp_endpoint>
singular()
const;
93 static std::shared_ptr<gbp_endpoint>
find(
const key_t& k);
98 static void dump(std::ostream& os);
128 void handle_replay();
133 void show(std::ostream& os);
154 static std::shared_ptr<gbp_endpoint> find_or_add(
const gbp_endpoint& temp);
179 std::shared_ptr<interface> m_itf;
184 std::vector<boost::asio::ip::address> m_ips;
194 std::shared_ptr<gbp_endpoint_group> m_epg;
static const flags_t LEARNT
static const flags_t BOUNCE
std::shared_ptr< gbp_endpoint > singular() const
Return the matching 'singular instance'.
static const flags_t NONE
vl_api_wireguard_peer_flags_t flags
A template base class for all enum types.
const std::string key_t
In the opflex world each entity is known by a URI which can be converted into a string.
std::pair< interface::key_t, mac_address_t > key_t
The key for a GBP endpoint; interface and IP.
~gbp_endpoint()
Destructor.
bool operator==(const enum_base &e) const
Comparison operator.
gbp_endpoint(const interface &itf, const std::vector< boost::asio::ip::address > &ip_addr, const mac_address_t &mac, const gbp_endpoint_group &epg, const flags_t &flags=flags_t::NONE)
Construct a GBP endpoint.
const key_t key() const
Return the object's key.
static const flags_t REMOTE
A Database to store the unique 'singular' instances of a single object type.
static const flags_t EXTERNAL
static void dump(std::ostream &os)
Dump all bridge_domain-doamin into the stream provided.
A representation of an interface in VPP.
A entry in the ARP termination table of a Bridge Domain.
Class definition for listeners to OM events.
inspect command handler Handler
const std::string & to_string() const
convert to string format for debug purposes
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.
void replay(void)
replay the object to create it in hardware
A base class for all object_base in the VPP object_base-Model.
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_endpoint > find(const key_t &k)
Find the instnace of the bridge_domain domain in the OM.
Type def of a Ethernet address.