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;
241 std::ostream&
operator<<(std::ostream& os,
const path_list_t& path_list);
242 std::ostream&
operator<<(std::ostream& os,
const mpath_list_t& path_list);
253 typedef std::pair<route::table_id_t, prefix_t>
key_t;
288 const key_t
key()
const;
298 std::shared_ptr<ip_route> singular()
const;
313 static std::shared_ptr<ip_route> find(
const ip_route& temp);
318 static void dump(std::ostream& os);
333 static std::shared_ptr<ip_route> find(
const key_t& k);
353 void handle_replay();
358 void show(std::ostream& os);
374 static std::shared_ptr<ip_route> find_or_add(
const ip_route& temp);
404 std::shared_ptr<route_domain> m_rd;
431 typedef std::pair<route::table_id_t, mprefix_t>
key_t;
456 const key_t
key()
const;
466 std::shared_ptr<ip_mroute> singular()
const;
471 static std::shared_ptr<ip_mroute> find(
const ip_mroute& temp);
476 static void dump(std::ostream& os);
491 static std::shared_ptr<ip_mroute> find(
const key_t& k);
513 void handle_replay();
518 void show(std::ostream& os);
534 static std::shared_ptr<ip_mroute> find_or_add(
const ip_mroute& temp);
564 std::shared_ptr<route_domain> m_rd;
574 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.
typedef ip_route
An IP route.
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.
sll srl srl sll sra u16x4 i
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 ...
manual_print typedef address
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.
typedef ip_mroute
Add / del route request.
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.