|
|
This class periodically checks the UpdateQueue for updates and sends them to the RIB. Once an instance has been created, the startup() method should be called to register a routing table for RIP and begin checking for updates. Before being destructed, shutdown() should be called to remove the RIP routing table from the RIB.
The XrlRibNotifier may be in one of several states enumerated by RunStatus. Before startup(), an instances state is SERVICE_READY. Then when startup is called it transitions into INSTALLING_RIP_TABLE and transitions into SERVICE_RUNNING. When in SERVICE_RUNNING state updates are sent to the RIB. When shutdown() is called it enters UNINSTALLING_RIP_TABLE before entering SERVICE_SHUTDOWN. At any time it may fall into state SERVICE_FAILED if communication with the RIB fails.
typedef RibNotifierBase<A> Super | Super |
static const uint32_t DEFAULT_INFLIGHT | DEFAULT_INFLIGHT |
XrlRibNotifier (EventLoop& e,
UpdateQueue<A>& uq,
XrlRouter& xr,
uint32_t max_inflight = DEFAULT_INFLIGHT,
uint32_t poll_ms = Super::DEFAULT_POLL_MS)
| XrlRibNotifier |
XrlRibNotifier (EventLoop& e,
UpdateQueue<A>& uq,
XrlSender& xs,
const string& class_name,
const string& intance_name,
uint32_t max_inflight = DEFAULT_INFLIGHT,
uint32_t poll_ms = Super::DEFAULT_POLL_MS)
| XrlRibNotifier |
Constructor taking an XrlSender, a class name, and an instance name as arguments. These arguments are broken out for debugging instances, ie a fake XrlSender can be used to test behaviour of this class.
~XrlRibNotifier ()
| ~XrlRibNotifier |
int startup ()
| startup |
Request RIB instantiates a RIP routing table and once instantiated start passing route updates to RIB.
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ServiceBase.
int shutdown ()
| shutdown |
Stop forwarding route updates to RIB and request RIB unregisters RIP routing table.
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ServiceBase.
uint32_t xrls_inflight ()
| xrls_inflight |
[const]
Accessor returning the current number of Xrls inflight.
uint32_t max_xrls_inflight ()
| max_xrls_inflight |
[const]
Accessor returning the maximum number of Xrls inflight.
void updates_available ()
| updates_available |
[protected]
Reimplemented from RibNotifierBase.
XrlSender& _xs | _xs |
[protected]
string _cname | _cname |
[protected]
string _iname | _iname |
[protected]
const uint32_t _max_inflight | _max_inflight |
[protected]
uint32_t _inflight | _inflight |
[protected]
set<IPNet<A> > _ribnets | _ribnets |
[protected]
template <typename A>
inline uint32_t
xrls_inflight ()
| xrls_inflight |
[protected const]
template <typename A>
inline uint32_t
max_xrls_inflight ()
| max_xrls_inflight |
[protected const]