|
|
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)
| 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 IPv4, unicast and multicast. |
~VifManager ()
| ~VifManager |
VifManager destructor
int start ()
| start |
Start operation.
Start the process of registering with the FEA, etc.
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoState.
int stop ()
| stop |
Stop operation.
Gracefully stop operation.
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoState.
void no_fea ()
| no_fea |
Set test-mode - don't try to communicate with the FEA.
enum State { INITIALIZING, READY, FAILED } | State |
The state of the VifManager. It it hasn't yet successfully registered with the FEA, it will be in INITIALIZING state. If it has permanently failed to register with the FEA it will be in FAILED state. Otherwise it should be in READY state.
State state ()
| state |
[const]
Get the state of the VifManager.
Returns: the state of the VifManager.
See also: VifManager::State.
void interface_update (const string& ifname, const uint32_t& event)
| interface_update |
Update the status of a physical interface.
This method is called when receiving an XRL from the FEA indicating that a physical interface on the router has been added, deleted, or reconfigured.
Parameters:
ifname | the name of the physical interface that changed. |
event | the event that occured. Should be one of the following: IF_EVENT_CREATED, IF_EVENT_DELETED, or IF_EVENT_CHANGED. |
void vif_update (const string& ifname, const string& vifname,
const uint32_t& event)
| vif_update |
Update the status of a virtual interface.
This method is called when receiving an XRL from the FEA indicating that a virtual interface on the router has been added, deleted, or reconfigured.
Parameters:
ifname | the name of the physical interface on which the virtual interface resides. |
vifname | the name of the virtual interface that changed. |
event | the event that occured. Should be one of the following: IF_EVENT_CREATED, IF_EVENT_DELETED, or IF_EVENT_CHANGED. |
void vifaddr4_update (const string& ifname,
const string& vifname,
const IPv4& addr,
const uint32_t& event)
| vifaddr4_update |
Update the IPv4 address of a virtual interface.
This method is called when receiving an XRL from the FEA indicating that a virtual interface has undergone an address change. An IPv4 address (and associated prefix length) has been added, deleted, or reconfigured on this VIF.
Parameters:
ifname | the name of the interface containing the VIF. |
vifname | the name of the VIF on which the address change occured. |
addr | the address that was added or deleted. |
event | the event that occured. Should be one of the following: IF_EVENT_CREATED or IF_EVENT_DELETED. |
void vifaddr6_update (const string& ifname,
const string& vifname,
const IPv6& addr,
const uint32_t& event)
| vifaddr6_update |
Update the IPv6 address of a virtual interface.
This method is called when receiving an XRL from the FEA indicating that a virtual interface has undergone an address change. An IPv6 address (and associated prefix length) has been added, deleted, or reconfigured on this VIF.
Parameters:
ifname | the name of the interface containing the VIF. |
vifname | the name of the VIF on which the address change occured. |
addr | the address that was added or deleted. |
event | the event that occured. Should be one of the following: IF_EVENT_CREATED or IF_EVENT_DELETED. |
Generated by: pavlin on possum.icir.org on Thu Nov 6 23:47:07 2003, using kdoc 2.0a54+XORP. |