16 #ifndef __VOM_GBP_ENDPOINT_H__ 17 #define __VOM_GBP_ENDPOINT_H__ 48 flags_t(
int v,
const std::string& s);
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
const key_t key() const
Return the object's key.
static const flags_t NONE
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::shared_ptr< gbp_endpoint > singular() const
Return the matching 'singular instance'.
std::pair< interface::key_t, mac_address_t > key_t
The key for a GBP endpoint; interface and IP.
~gbp_endpoint()
Destructor.
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.
static const flags_t REMOTE
A Database to store the unique 'singular' instances of a single object type.
static const flags_t EXTERNAL
bool operator==(const enum_base &e) const
Comparison operator.
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
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.
const std::string & to_string() const
convert to string format for debug purposes
Type def of a Ethernet address.