|
|
RegisterServer handles communication of notifications to the clients that registered interest in changes affecting specific routes. As these notifications can sometimes be generated faster than the recipient can handle them, the notifications can be queued here.
RegisterServer (XrlRouter* xrl_router)
| RegisterServer |
RegisterServer constructor
Parameters:
xrl_router | the XRL router instance used to send and receive XRLs in this process. |
~RegisterServer ()
| ~RegisterServer |
[virtual]
void send_route_changed (const string& module_name,
const IPv4Net& net,
const IPv4& nexthop,
uint32_t metric,
uint32_t admin_distance,
const string& protocol_origin,
bool multicast)
| send_route_changed |
[virtual]
send_route_changed is called to communicate to another XRL module that routing information in which it had registered an interest has changed its nexthop, metric, or admin distance.
Parameters:
module_name | the XRL target name of the module to notify. |
net | the destination subnet of the route that changed. |
nexthop | the new nexthop of the route that changed. |
metric | the new routing protocol metric of the route that changed. |
admin_distance | the new admin distance of the route that changed. |
protocol_origin | the name of the protocol that originated this route. |
multicast | true indicates that the change occured in the multicast RIB, false indicates that it occured in the unicast RIB. |
void send_invalidate (const string& module_name,
const IPv4Net& net,
bool multicast)
| send_invalidate |
[virtual]
void send_route_changed (const string& module_name,
const IPv6Net& net,
const IPv6& nexthop,
uint32_t metric,
uint32_t admin_distance,
const string& protocol_origin,
bool multicast)
| send_route_changed |
[virtual]
send_route_changed is called to communicate to another XRL module that routing information in which it had registered an interest has changed its nexthop, metric, or admin distance.
Parameters:
module_name | the XRL target name of the module to notify. |
net | the destination subnet of the route that changed. |
nexthop | the new nexthop of the route that changed. |
metric | the new routing protocol metric of the route that changed. |
admin_distance | the new admin distance of the route that changed. |
protocol_origin | the name of the protocol that originated this route. |
multicast | true indicates that the change occured in the multicast RIB, false indicates that it occured in the unicast RIB. |
void send_invalidate (const string& module_name,
const IPv6Net& net,
bool multicast)
| send_invalidate |
[virtual]
send_invalidate is called to communicate to another XRL module that routing information in which it had registered an interest has changed in some unspecified way that has caused the registration to become invalid. The client must re-register to find out what really happened.
Parameters:
module_name | the XRL target name of the module to notify. |
net | the valid_subnet of the route registration that is now invalid. |
multicast | true indicates that the change occured in the multicast RIB, false indicates that it occured in the unicast RIB. |
void flush ()
| flush |
[virtual]
See also: flush
void add_entry_to_queue (const string& module_name, NotifyQueueEntry* e)
| add_entry_to_queue |
[protected]
map<string, NotifyQueue* > _queuemap | _queuemap |
[protected]
ResponseSender _response_sender | _response_sender |
[protected]