xorp

XrlFib2mribNode Class Reference

Inheritance diagram for XrlFib2mribNode:
Fib2mribNode XrlStdRouter XrlFib2mribTargetBase IfMgrHintObserver ServiceBase ServiceChangeObserverBase XrlRouter BugCatcher XrlDispatcher XrlSender FinderClientObserver XrlCmdMap NONCOPYABLE

List of all members.

Public Member Functions

 XrlFib2mribNode (EventLoop &eventloop, const string &class_name, const string &finder_hostname, uint16_t finder_port, const string &finder_target, const string &fea_target, const string &rib_target)
int startup ()
 Startup the node operation.
int shutdown ()
 Shutdown the node operation.
XrlRouterxrl_router ()
 Get a reference to the XrlRouter instance.

Protected Member Functions

XrlCmdError common_0_1_get_target_name (string &name)
 Get name of Xrl Target.
XrlCmdError common_0_1_get_version (string &version)
 Get version string from Xrl Target.
XrlCmdError common_0_1_get_status (uint32_t &status, string &reason)
 Get status of Xrl Target.
XrlCmdError common_0_1_shutdown ()
 Request clean shutdown of Xrl Target.
XrlCmdError common_0_1_startup ()
 Pure-virtual function that needs to be implemented to:
XrlCmdError finder_event_observer_0_1_xrl_target_birth (const string &target_class, const string &target_instance)
 Announce target birth to observer.
XrlCmdError finder_event_observer_0_1_xrl_target_death (const string &target_class, const string &target_instance)
 Announce target death to observer.
XrlCmdError fea_fib_client_0_1_add_route4 (const IPv4Net &network, const IPv4 &nexthop, const string &ifname, const string &vifname, const uint32_t &metric, const uint32_t &admin_distance, const string &protocol_origin, const bool &xorp_route)
 Add a route.
XrlCmdError fea_fib_client_0_1_replace_route4 (const IPv4Net &network, const IPv4 &nexthop, const string &ifname, const string &vifname, const uint32_t &metric, const uint32_t &admin_distance, const string &protocol_origin, const bool &xorp_route)
 Replace a route.
XrlCmdError fea_fib_client_0_1_delete_route4 (const IPv4Net &network, const string &ifname, const string &vifname)
 Delete a route.
XrlCmdError fea_fib_client_0_1_resolve_route4 (const IPv4Net &network)
 Route resolve notification.
XrlCmdError fib2mrib_0_1_enable_fib2mrib (const bool &enable)
 Enable/disable/start/stop Fib2mrib.
XrlCmdError fib2mrib_0_1_start_fib2mrib ()
XrlCmdError fib2mrib_0_1_stop_fib2mrib ()
XrlCmdError fib2mrib_0_1_enable_log_trace_all (const bool &enable)
 Enable/disable the Fib2mrib trace log for all operations.
XrlCmdError policy_backend_0_1_configure (const uint32_t &filter, const string &conf)
 Configure a policy filter.
XrlCmdError policy_backend_0_1_reset (const uint32_t &filter)
 Reset a policy filter.
XrlCmdError policy_backend_0_1_push_routes ()
 Push routes through policy filters for re-filtering.

Private Member Functions

const ServiceBaseifmgr_mirror_service_base () const
 Get a reference to the service base of the interface manager.
const IfMgrIfTreeifmgr_iftree () const
 Get a reference to the interface manager tree.
virtual void finder_connect_event ()
 Called when Finder connection is established.
virtual void finder_disconnect_event ()
 Called when Finder disconnect occurs.
void fea_register_startup ()
 Initiate registration with the FEA.
void finder_register_interest_fea_cb (const XrlError &xrl_error)
void fea_register_shutdown ()
 Initiate de-registration with the FEA.
void finder_deregister_interest_fea_cb (const XrlError &xrl_error)
void send_fea_add_fib_client ()
void fea_fti_client_send_have_ipv4_cb (const XrlError &xrl_error, const bool *result)
void fea_fib_client_send_add_fib_client4_cb (const XrlError &xrl_error)
void send_fea_delete_fib_client ()
void fea_fib_client_send_delete_fib_client4_cb (const XrlError &xrl_error)
void rib_register_startup ()
 Initiate registration with the RIB.
void finder_register_interest_rib_cb (const XrlError &xrl_error)
void rib_register_shutdown ()
 Initiate de-registration with the RIB.
void finder_deregister_interest_rib_cb (const XrlError &xrl_error)
void send_rib_add_tables ()
void rib_client_send_add_igp_table4_cb (const XrlError &xrl_error)
void send_rib_delete_tables ()
void rib_client_send_delete_igp_table4_cb (const XrlError &xrl_error)
void inform_rib_route_change (const Fib2mribRoute &fib2mrib_route)
 Inform the RIB about a route change.
void cancel_rib_route_change (const Fib2mribRoute &fib2mrib_route)
 Cancel a pending request to inform the RIB about a route change.
void send_rib_route_change ()
void send_rib_route_change_cb (const XrlError &xrl_error)

Private Attributes

EventLoop_eventloop
XrlFtiV0p2Client _xrl_fea_fti_client
XrlFeaFibV0p1Client _xrl_fea_fib_client
XrlRibV0p1Client _xrl_rib_client
const string _finder_target
const string _fea_target
const string _rib_target
IfMgrXrlMirror _ifmgr
list< Fib2mribRoute_inform_rib_queue
XorpTimer _inform_rib_queue_timer
XrlFinderEventNotifierV0p1Client _xrl_finder_client
bool _is_finder_alive
bool _is_fea_alive
bool _is_fea_registered
bool _is_fea_registering
bool _is_fea_deregistering
XorpTimer _fea_register_startup_timer
XorpTimer _fea_register_shutdown_timer
bool _is_fea_have_ipv4_tested
bool _fea_have_ipv4
bool _is_fea_fib_client4_registered
XorpTimer _fea_fib_client_registration_timer
bool _is_rib_alive
bool _is_rib_registered
bool _is_rib_registering
bool _is_rib_deregistering
bool _is_rib_igp_table4_registered
XorpTimer _rib_register_startup_timer
XorpTimer _rib_register_shutdown_timer
XorpTimer _rib_igp_table_registration_timer

Static Private Attributes

static const TimeVal RETRY_TIMEVAL = TimeVal(1, 0)

Member Function Documentation

void XrlFib2mribNode::cancel_rib_route_change ( const Fib2mribRoute fib2mrib_route) [private, virtual]

Cancel a pending request to inform the RIB about a route change.

Parameters:
fib2mrib_routethe route with the request that would be canceled.

Implements Fib2mribNode.

XrlCmdError XrlFib2mribNode::common_0_1_startup ( ) [protected, virtual]

Pure-virtual function that needs to be implemented to:

Request a startup of Xrl Target

Implements XrlFib2mribTargetBase.

XrlCmdError XrlFib2mribNode::fea_fib_client_0_1_add_route4 ( const IPv4Net network,
const IPv4 nexthop,
const string &  ifname,
const string &  vifname,
const uint32_t &  metric,
const uint32_t &  admin_distance,
const string &  protocol_origin,
const bool &  xorp_route 
) [protected, virtual]

Add a route.

Parameters:
networkthe network address prefix of the route to add.
nexthopthe address of the next-hop router toward the destination.
ifnamethe name of the physical interface toward the destination.
vifnamethe name of the virtual interface toward the destination.
metricthe routing metric toward the destination.
admin_distancethe administratively defined distance toward the destination.
protocol_originthe name of the protocol that originated this route.
xorp_routetrue if this route was installed by XORP.

Implements XrlFib2mribTargetBase.

XrlCmdError XrlFib2mribNode::fea_fib_client_0_1_delete_route4 ( const IPv4Net network,
const string &  ifname,
const string &  vifname 
) [protected, virtual]

Delete a route.

Parameters:
networkthe network address prefix of the route to delete.
ifnamethe name of the physical interface toward the destination.
vifnamethe name of the virtual interface toward the destination.
networkthe network address prefix of the route to delete.
ifnamethe name of the physical interface toward the destination.
vifnamethe name of the virtual interface toward the

Implements XrlFib2mribTargetBase.

XrlCmdError XrlFib2mribNode::fea_fib_client_0_1_replace_route4 ( const IPv4Net network,
const IPv4 nexthop,
const string &  ifname,
const string &  vifname,
const uint32_t &  metric,
const uint32_t &  admin_distance,
const string &  protocol_origin,
const bool &  xorp_route 
) [protected, virtual]

Replace a route.

Parameters:
networkthe network address prefix of the route to replace.
nexthopthe address of the next-hop router toward the destination.
ifnamethe name of the physical interface toward the destination.
vifnamethe name of the virtual interface toward the destination.
metricthe routing metric toward the destination.
admin_distancethe administratively defined distance toward the destination.
protocol_originthe name of the protocol that originated this route.
xorp_routetrue if this route was installed by XORP.

Implements XrlFib2mribTargetBase.

XrlCmdError XrlFib2mribNode::fea_fib_client_0_1_resolve_route4 ( const IPv4Net network) [protected, virtual]

Route resolve notification.

Parameters:
networkthe network address prefix of the lookup which failed or for which upper layer intervention is requested from the FIB.

Implements XrlFib2mribTargetBase.

void XrlFib2mribNode::fea_register_shutdown ( ) [private, virtual]

Initiate de-registration with the FEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements Fib2mribNode.

void XrlFib2mribNode::fea_register_startup ( ) [private, virtual]

Initiate registration with the FEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements Fib2mribNode.

XrlCmdError XrlFib2mribNode::fib2mrib_0_1_enable_fib2mrib ( const bool &  enable) [protected, virtual]

Enable/disable/start/stop Fib2mrib.

Parameters:
enableif true, then enable Fib2mrib, otherwise disable it.

Implements XrlFib2mribTargetBase.

XrlCmdError XrlFib2mribNode::fib2mrib_0_1_enable_log_trace_all ( const bool &  enable) [protected, virtual]

Enable/disable the Fib2mrib trace log for all operations.

Parameters:
enableif true, then enable the trace log, otherwise disable it.

Implements XrlFib2mribTargetBase.

void XrlFib2mribNode::finder_connect_event ( ) [private, virtual]

Called when Finder connection is established.

Note that this method overwrites an XrlRouter virtual method.

Reimplemented from XrlRouter.

void XrlFib2mribNode::finder_disconnect_event ( ) [private, virtual]

Called when Finder disconnect occurs.

Note that this method overwrites an XrlRouter virtual method.

Reimplemented from XrlRouter.

XrlCmdError XrlFib2mribNode::finder_event_observer_0_1_xrl_target_birth ( const string &  target_class,
const string &  target_instance 
) [protected, virtual]

Announce target birth to observer.

Parameters:
target_classthe target class name.
target_instancethe target instance name.

Implements XrlFib2mribTargetBase.

XrlCmdError XrlFib2mribNode::finder_event_observer_0_1_xrl_target_death ( const string &  target_class,
const string &  target_instance 
) [protected, virtual]

Announce target death to observer.

Parameters:
target_classthe target class name.
target_instancethe target instance name.

Implements XrlFib2mribTargetBase.

const IfMgrIfTree& XrlFib2mribNode::ifmgr_iftree ( ) const [inline, private, virtual]

Get a reference to the interface manager tree.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Returns:
a reference to the interface manager tree.

Implements Fib2mribNode.

const ServiceBase* XrlFib2mribNode::ifmgr_mirror_service_base ( ) const [inline, private, virtual]

Get a reference to the service base of the interface manager.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Returns:
a reference to the service base of the interface manager.

Implements Fib2mribNode.

void XrlFib2mribNode::inform_rib_route_change ( const Fib2mribRoute fib2mrib_route) [private, virtual]

Inform the RIB about a route change.

Parameters:
fib2mrib_routethe route with the information about the change.

Implements Fib2mribNode.

XrlCmdError XrlFib2mribNode::policy_backend_0_1_configure ( const uint32_t &  filter,
const string &  conf 
) [protected, virtual]

Configure a policy filter.

Parameters:
filterId of filter to configure.
confConfiguration of filter.

Implements XrlFib2mribTargetBase.

XrlCmdError XrlFib2mribNode::policy_backend_0_1_reset ( const uint32_t &  filter) [protected, virtual]

Reset a policy filter.

Parameters:
filterId of filter to reset.

Implements XrlFib2mribTargetBase.

void XrlFib2mribNode::rib_register_shutdown ( ) [private, virtual]

Initiate de-registration with the RIB.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements Fib2mribNode.

void XrlFib2mribNode::rib_register_startup ( ) [private, virtual]

Initiate registration with the RIB.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements Fib2mribNode.

int XrlFib2mribNode::shutdown ( ) [virtual]

Shutdown the node operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from Fib2mribNode.

int XrlFib2mribNode::startup ( ) [virtual]

Startup the node operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from Fib2mribNode.

XrlRouter& XrlFib2mribNode::xrl_router ( ) [inline]

Get a reference to the XrlRouter instance.

Returns:
a reference to the XrlRouter (XrlRouter) instance.

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations