|
|
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 READY. Then when startup is called it transitions into INSTALLING_RIP_TABLE and transitions into RUNNING. When in RUNNING state updates are sent to the RIB. When shutdown() is called it enters UNINSTALLING_RIP_TABLE before entering SHUTDOWN. At any time it may fall into state 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 |
bool startup ()
| startup |
Request RIB instantiates a RIP routing table and once instantiated start passing route updates to RIB.
Returns: true on success, false on failure.
Reimplemented from ServiceBase.
bool shutdown ()
| shutdown |
Stop forwarding route updates to RIB and request RIB unregisters RIP routing table.
Returns: true on success, false on failure.
Reimplemented from ServiceBase.
inline uint32_t xrls_inflight ()
| xrls_inflight |
[const]
Accessor returning the current number of Xrls inflight.
inline 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]