xorp

XrlFibClientManager Class Reference

Class for managing clients interested in FIB changes notifications. More...

#include <xrl_fib_client_manager.hh>

Inheritance diagram for XrlFibClientManager:
FibTableObserverBase

List of all members.

Classes

class  FibClient
 A template class for storing FIB client information. More...

Public Member Functions

 XrlFibClientManager (FibConfig &fibconfig, XrlRouter &xrl_router)
 Constructor.
EventLoopeventloop ()
 Get a reference to the EventLoop instance.
void process_fib_changes (const list< Fte4 > &fte_list)
 Process a list of IPv4 FIB route changes.
XrlCmdError add_fib_client4 (const string &client_target_name, const bool send_updates, const bool send_resolves)
 Add an IPv4 FIB client.
XrlCmdError delete_fib_client4 (const string &client_target_name)
 Delete an IPv4 FIB client.
int send_fib_client_add_route (const string &target_name, const Fte4 &fte)
 Send an XRL to a FIB client to add an IPv4 route.
int send_fib_client_delete_route (const string &target_name, const Fte4 &fte)
 Send an XRL to a FIB client to delete an IPv4 route.
int send_fib_client_resolve_route (const string &target_name, const Fte4 &fte)
 Send an XRL to a FIB client to inform it of an IPv4 route miss.

Protected Attributes

FibConfig_fibconfig

Private Types

typedef FibClient< Fte4FibClient4

Private Member Functions

void send_fib_client_add_route4_cb (const XrlError &xrl_error, string target_name)
void send_fib_client_delete_route4_cb (const XrlError &xrl_error, string target_name)
void send_fib_client_resolve_route4_cb (const XrlError &xrl_error, string target_name)

Private Attributes

map< string, FibClient4_fib_clients4
XrlFeaFibClientV0p1Client _xrl_fea_fib_client

Detailed Description

Class for managing clients interested in FIB changes notifications.


Constructor & Destructor Documentation

XrlFibClientManager::XrlFibClientManager ( FibConfig fibconfig,
XrlRouter xrl_router 
) [inline]

Constructor.

Parameters:
fibconfigthe FibConfig configuration object (FibConfig).

Member Function Documentation

XrlCmdError XrlFibClientManager::add_fib_client4 ( const string &  client_target_name,
const bool  send_updates,
const bool  send_resolves 
)

Add an IPv4 FIB client.

Parameters:
client_target_namethe target name of the client to add.
send_updateswhether updates should be sent.
send_resolveswhether resolve requests should be sent.
Returns:
the XRL command error.
XrlCmdError XrlFibClientManager::delete_fib_client4 ( const string &  client_target_name)

Delete an IPv4 FIB client.

Parameters:
client_target_namethe target name of the client to delete.
Returns:
the XRL command error.
EventLoop& XrlFibClientManager::eventloop ( ) [inline]

Get a reference to the EventLoop instance.

Returns:
a reference to the EventLoop instance.
void XrlFibClientManager::process_fib_changes ( const list< Fte4 > &  fte_list) [virtual]

Process a list of IPv4 FIB route changes.

The FIB route changes come from the underlying system.

Parameters:
fte_listthe list of Fte entries to add or delete.

Implements FibTableObserverBase.

int XrlFibClientManager::send_fib_client_add_route ( const string &  target_name,
const Fte4 fte 
)

Send an XRL to a FIB client to add an IPv4 route.

Parameters:
target_namethe target name of the FIB client.
ftethe Fte with the route information to add.
Returns:
XORP_OK on success, otherwise XORP_ERROR.
See also:
Fte4.
int XrlFibClientManager::send_fib_client_delete_route ( const string &  target_name,
const Fte4 fte 
)

Send an XRL to a FIB client to delete an IPv4 route.

Parameters:
target_namethe target name of the FIB client.
ftethe Fte with the route information to delete.
Returns:
XORP_OK on success, otherwise XORP_ERROR.
See also:
Fte4.
int XrlFibClientManager::send_fib_client_resolve_route ( const string &  target_name,
const Fte4 fte 
)

Send an XRL to a FIB client to inform it of an IPv4 route miss.

Parameters:
target_namethe target name of the FIB client.
ftethe Fte with the destination to resolve.
Returns:
XORP_OK on success, otherwise XORP_ERROR.
See also:
Fte4.

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