16 #ifndef __VOM_ROUTE_H__ 17 #define __VOM_ROUTE_H__ 94 flags_t(
int v,
const std::string& s);
159 std::shared_ptr<route_domain>
rd()
const;
160 std::shared_ptr<interface>
itf()
const;
189 std::shared_ptr<route_domain> m_rd;
194 std::shared_ptr<interface> m_interface;
204 uint8_t m_preference;
243 std::ostream&
operator<<(std::ostream& os,
const path_list_t& path_list);
244 std::ostream&
operator<<(std::ostream& os,
const mpath_list_t& path_list);
255 typedef std::pair<route::table_id_t, prefix_t>
key_t;
290 const key_t
key()
const;
300 std::shared_ptr<ip_route> singular()
const;
315 static std::shared_ptr<ip_route> find(
const ip_route& temp);
320 static void dump(std::ostream& os);
335 static std::shared_ptr<ip_route> find(
const key_t& k);
355 void handle_replay();
360 void show(std::ostream& os);
376 static std::shared_ptr<ip_route> find_or_add(
const ip_route& temp);
406 std::shared_ptr<route_domain> m_rd;
433 typedef std::pair<route::table_id_t, mprefix_t>
key_t;
458 const key_t
key()
const;
468 std::shared_ptr<ip_mroute> singular()
const;
473 static std::shared_ptr<ip_mroute> find(
const ip_mroute& temp);
478 static void dump(std::ostream& os);
493 static std::shared_ptr<ip_mroute> find(
const key_t& k);
515 void handle_replay();
520 void show(std::ostream& os);
536 static std::shared_ptr<ip_mroute> find_or_add(
const ip_mroute& temp);
566 std::shared_ptr<route_domain> m_rd;
576 mpath_list_t m_paths;
std::pair< route::table_id_t, mprefix_t > key_t
The key for a route.
static const special_t STANDARD
A standard path type.
static const itf_flags_t ACCEPT
Path is accepting multicast traffic.
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< route_domain > rd() const
static const nh_proto_t IPV4
A path for IP or MPLS routes.
route::path from_vpp(const vapi_type_fib_path &p, const nh_proto_t &nhp)
const boost::asio::ip::address & nh() const
static const itf_flags_t FORWARD
A local/for-us/recieve.
bool operator==(const enum_base &e) const
Comparison operator.
static const itf_flags_t NONE
static const special_t LOCAL
A local/for-us/recieve.
static const special_t DROP
drop path
std::ostream & operator<<(std::ostream &os, const ip_route::key_t &key)
Types belonging to Routing.
static const special_t UNREACH
a path will return ICMP unreachables
special_t type() const
Getters.
uint8_t preference() const
A Database to store the unique 'singular' instances of a single object type.
static const special_t PROHIBIT
a path will return ICMP prohibit
bool operator<(const path &p) const
Less than operator for set insertion.
std::set< path > path_list_t
A path-list is a set of paths.
A representation of an interface in VPP.
std::set< std::pair< path, itf_flags_t > > mpath_list_t
A mpath-list is a set of paths and interface flags.
Class definition for listeners to OM events.
static const flags_t DVR
A path that resolves via a DVR next-hop.
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.
nh_proto_t nh_proto() const
A base class for all object_base in the VPP object_base-Model.
path(special_t special, const nh_proto_t &proto=nh_proto_t::IPV4)
constructor for special paths
The VPP Object Model (VOM) library.
std::shared_ptr< interface > itf() const
static const flags_t NONE
No flags.
std::pair< route::table_id_t, prefix_t > key_t
The key for a route.