16 #ifndef __VOM_NEIGHBOUR_H__ 17 #define __VOM_NEIGHBOUR_H__ 34 typedef std::pair<interface::key_t, boost::asio::ip::address>
key_t;
40 const boost::asio::ip::address& ip_addr,
56 const key_t
key()
const;
66 std::shared_ptr<neighbour>
singular()
const;
71 static std::shared_ptr<neighbour>
find(
const key_t& k);
76 static void dump(std::ostream& os);
96 virtual ~event_handler() =
default;
106 void handle_replay();
111 void show(std::ostream& os);
122 static event_handler m_evh;
133 std::shared_ptr<interface> itf,
139 static std::shared_ptr<neighbour> find_or_add(
const neighbour& temp);
164 std::shared_ptr<interface> m_itf;
169 boost::asio::ip::address m_ip_addr;
const key_t key() const
Return the object's key.
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< neighbour > singular() const
Return the matching 'singular instance'.
Types belonging to Routing.
std::string to_string() const
Convert to string for debugging.
bool operator==(const neighbour &n) const
Comparison operator.
A Database to store the unique 'singular' instances of a single object type.
A entry in the neighbour entry (ARP or IPv6 ND)
A representation of an interface in VPP.
Class definition for listeners to OM events.
inspect command handler Handler
void replay(void)
replay the object to create it in hardware
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.
static void dump(std::ostream &os)
Dump all neighbours into the stream provided.
std::ostream & operator<<(std::ostream &os, const std::pair< direction_t, interface::key_t > &key)
static std::shared_ptr< neighbour > find(const key_t &k)
Find the neighbour fromits key.
The VPP Object Model (VOM) library.
neighbour(const interface &itf, const boost::asio::ip::address &ip_addr, const mac_address_t &mac)
Construct an ARP entry.
std::pair< interface::key_t, boost::asio::ip::address > key_t
The key for a neighbour entry; the interface and IP address.
Type def of a Ethernet address.