|
|
The RIB process has a single VifManager instance, which registers with the FEA process to discover the VIFs on this router and their IP addresses and prefixes. When the VIFs or their configuration in the FEA change, the VifManager will be notified, and it will update the RIBs appropriately. The RIBs need to know about VIFs and VIF addresses to decide which routes have nexthops that are on directly connected subnets, and which are nexthops that need to be resolved using other routes to figure out where next to send the packet. Only routes with nexthops that are on directly connected subnets can be sent to the FEA.
VifManager (XrlRouter& xrl_router, EventLoop& eventloop,
RibManager* rib_manager, const string& fea_target)
| VifManager |
VifManager constructor
Parameters:
xrl_router | this process's XRL router. |
eventloop | this process's EventLoop. |
rib_manager | this class contains the actual RIBs for IPv4 and IPv6, unicast and multicast. |
fea_target | the FEA target name. |
~VifManager ()
| ~VifManager |
int start ()
| start |
Start operation.
Start the process of registering with the FEA, etc. After the startup operations are completed, VifManager::final_start() is called internally to complete the job.
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoState.
int stop ()
| stop |
Stop operation.
Gracefully stop operation. After the shutdown operations are completed, VifManager::final_stop() is called internally to complete the job.
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoState.
int final_start ()
| final_start |
Completely start the node operation.
This method should be called internally after VifManager::start() to complete the job.
Returns: XORP_OK on success, otherwise XORP_ERROR.
int final_stop ()
| final_stop |
Completely stop the node operation.
This method should be called internally after VifManager::stop() to complete the job.
Returns: XORP_OK on success, otherwise XORP_ERROR.
void tree_complete ()
| tree_complete |
[protected]
Reimplemented from IfMgrHintObserver.
void updates_made ()
| updates_made |
[protected]
Reimplemented from IfMgrHintObserver.
void incr_startup_requests_n ()
| incr_startup_requests_n |
[protected]
void decr_startup_requests_n ()
| decr_startup_requests_n |
[protected]
void incr_shutdown_requests_n ()
| incr_shutdown_requests_n |
[protected]
void decr_shutdown_requests_n ()
| decr_shutdown_requests_n |
[protected]
void update_status ()
| update_status |
[protected]