xorp

RedistXrlOutput< A > Class Template Reference

Route Redistributor output that sends route add and deletes to remote redistribution target via the redist{4,6} xrl interfaces. More...

#include <redist_xrl.hh>

Inheritance diagram for RedistXrlOutput< A >:
RedistOutput< A > NONCOPYABLE RedistTransactionXrlOutput< A >

List of all members.

Public Types

typedef RedistXrlTask< A > Task
typedef list< Task * > TaskQueue

Public Member Functions

 RedistXrlOutput (Redistributor< A > *redistributor, XrlRouter &xrl_router, Profile &profile, const string &from_protocol, const string &xrl_target_name, const IPNet< A > &network_prefix, const string &cookie)
 Constructor.
void add_route (const IPRouteEntry< A > &ipr)
void delete_route (const IPRouteEntry< A > &ipr)
void starting_route_dump ()
 Method called by Redistributor to indicate start of initial route dump.
void finishing_route_dump ()
 Method called by Redistributor to indicate end of initial route dump.
virtual void task_completed (Task *task)
void task_failed_fatally (Task *task)
const string & xrl_target_name () const
const string & cookie () const

Static Public Attributes

static const uint32_t HI_WATER = 100
static const uint32_t LO_WATER = 5
static const uint32_t RETRY_PAUSE_MS = 10

Protected Member Functions

void start_next_task ()
void incr_inflight ()
void decr_inflight ()
void enqueue_task (Task *task)
void dequeue_task (Task *task)

Protected Attributes

XrlRouter_xrl_router
Profile_profile
string _from_protocol
string _target_name
IPNet< A > _network_prefix
string _cookie
TaskQueue _taskq
uint32_t _queued
TaskQueue _flyingq
uint32_t _inflight
bool _flow_controlled
bool _callback_pending

Detailed Description

template<typename A>
class RedistXrlOutput< A >

Route Redistributor output that sends route add and deletes to remote redistribution target via the redist{4,6} xrl interfaces.


Constructor & Destructor Documentation

template<typename A >
RedistXrlOutput< A >::RedistXrlOutput ( Redistributor< A > *  redistributor,
XrlRouter xrl_router,
Profile profile,
const string &  from_protocol,
const string &  xrl_target_name,
const IPNet< A > &  network_prefix,
const string &  cookie 
)

Constructor.

Parameters:
redistributororiginator of route add and delete requests.
xrl_routerrouter to be used to send XRLs.
from_protocolname of protocol routes are redistributed from.
xrl_target_namename of XRL entity to send XRLs to.
cookiecookie passed in redist interface XRLs to identify source of updates.
is_xrl_transaction_outputif true, the add/delete route XRLs are grouped into transactions.

Member Function Documentation

template<typename A >
void RedistXrlOutput< A >::finishing_route_dump ( ) [virtual]

Method called by Redistributor to indicate end of initial route dump.

This occurs when an output is first attached to the redistributor to announce the existing routes.

Implements RedistOutput< A >.

Reimplemented in RedistTransactionXrlOutput< A >.

template<typename A >
void RedistXrlOutput< A >::starting_route_dump ( ) [virtual]

Method called by Redistributor to indicate start of initial route dump.

This occurs when an output is first attached to the redistributor to announce the existing routes.

Implements RedistOutput< A >.

Reimplemented in RedistTransactionXrlOutput< A >.


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations