class XrlRibTargetBase


 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Methods

Protected Methods

Protected Members


Detailed Description

XrlCmdMap* _cmds

_cmds

[protected]

 XrlRibTargetBase (XrlCmdMap* cmds = 0)

XrlRibTargetBase

Constructor.

Parameters:

cmdsan XrlCmdMap that the commands associated with the target should be added to. This is typically the XrlRouter associated with the target.
 ~XrlRibTargetBase ()

~XrlRibTargetBase

[virtual]

Destructor.

Dissociates instance commands from command map.

bool  set_command_map (XrlCmdMap* cmds)

set_command_map

Set command map.

Parameters:

cmdspointer to command map to associate commands with. This argument is typically a pointer to the XrlRouter associated with the target.

Returns: true on success, false if cmds is null or a command map has already been supplied.

inline const string&  name ()

name

[const]

Get Xrl instance name associated with command map.

inline const char*  version ()

version

[const]

Get version string of instance.

XrlCmdError  common_0_1_get_target_name ( string& name)

common_0_1_get_target_name

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Get name of Xrl Target

XrlCmdError  common_0_1_get_version ( string& version)

common_0_1_get_version

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Get version string from Xrl Target

XrlCmdError  common_0_1_get_status ( uint32_t& status, string& reason)

common_0_1_get_status

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Get status of Xrl Target

XrlCmdError  common_0_1_shutdown ()

common_0_1_shutdown

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Request clean shutdown of Xrl Target

XrlCmdError  finder_event_observer_0_1_xrl_target_birth ( const string& target_class, const string& target_instance)

finder_event_observer_0_1_xrl_target_birth

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Announce target birth to observer.

Parameters:

target_classthe target class name.
target_instancethe target instance name.
XrlCmdError  finder_event_observer_0_1_xrl_target_death ( const string& target_class, const string& target_instance)

finder_event_observer_0_1_xrl_target_death

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Announce target death to observer.

Parameters:

target_classthe target class name.
target_instancethe target instance name.
XrlCmdError  policy_backend_0_1_configure ( const uint32_t& filter, const string& conf)

policy_backend_0_1_configure

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Configure a policy filter.

Parameters:

filterthe identifier of the filter to configure.
confthe configuration of the filter.
XrlCmdError  policy_backend_0_1_reset ( const uint32_t& filter)

policy_backend_0_1_reset

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Reset a policy filter.

Parameters:

filterthe identifier of the filter to reset.
XrlCmdError  policy_backend_0_1_push_routes ()

policy_backend_0_1_push_routes

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Push all available routes through all filters for re-filtering.

XrlCmdError  rib_0_1_enable_rib ()

rib_0_1_enable_rib

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Enable/disable/start/stop RIB.

XrlCmdError  rib_0_1_disable_rib ()

rib_0_1_disable_rib

[protected pure virtual]

XrlCmdError  rib_0_1_start_rib ()

rib_0_1_start_rib

[protected pure virtual]

XrlCmdError  rib_0_1_stop_rib ()

rib_0_1_stop_rib

[protected pure virtual]

XrlCmdError  rib_0_1_make_errors_fatal ()

rib_0_1_make_errors_fatal

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Make errors fatal; used to detect errors we'd normally mask

XrlCmdError  rib_0_1_get_registered_protocols ( const bool& ipv4, const bool& ipv6, const bool& unicast, const bool& multicast, XrlAtomList& ipv4_unicast_protocols, XrlAtomList& ipv6_unicast_protocols, XrlAtomList& ipv4_multicast_protocols, XrlAtomList& ipv6_multicast_protocols)

rib_0_1_get_registered_protocols

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Get the list of registered protocols.

Parameters:

ipv4if true, then include the IPv4 protocols.
ipv6if true, then include the IPv6 protocols.
unicastif true, then include the protocols registered with the unicast RIB.
multicastif true, then include the protocols registered with the multicast RIB.
ipv4_unicast_protocolsthe list of IPv4 protocols registered with the unicast RIB.
ipv6_unicast_protocolsthe list of IPv6 protocols registered with the unicast RIB.
ipv4_multicast_protocolsthe list of IPv4 protocols registered with the multicast RIB.
ipv6_multicast_protocolsthe list of IPv6 protocols registered with the multicast RIB.
XrlCmdError  rib_0_1_add_igp_table4 ( const string& protocol, const string& target_class, const string& target_instance, const bool& unicast, const bool& multicast)

rib_0_1_add_igp_table4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Add/delete an IGP or EGP table.

Parameters:

protocolthe name of the protocol.
target_classthe target class of the protocol.
target_instancethe target instance of the protocol.
unicasttrue if the table is for the unicast RIB.
multicasttrue if the table is for the multicast RIB.
XrlCmdError  rib_0_1_add_igp_table6 ( const string& protocol, const string& target_class, const string& target_instance, const bool& unicast, const bool& multicast)

rib_0_1_add_igp_table6

[protected pure virtual]

XrlCmdError  rib_0_1_delete_igp_table4 ( const string& protocol, const string& target_class, const string& target_instance, const bool& unicast, const bool& multicast)

rib_0_1_delete_igp_table4

[protected pure virtual]

XrlCmdError  rib_0_1_delete_igp_table6 ( const string& protocol, const string& target_class, const string& target_instance, const bool& unicast, const bool& multicast)

rib_0_1_delete_igp_table6

[protected pure virtual]

XrlCmdError  rib_0_1_add_egp_table4 ( const string& protocol, const string& target_class, const string& target_instance, const bool& unicast, const bool& multicast)

rib_0_1_add_egp_table4

[protected pure virtual]

XrlCmdError  rib_0_1_add_egp_table6 ( const string& protocol, const string& target_class, const string& target_instance, const bool& unicast, const bool& multicast)

rib_0_1_add_egp_table6

[protected pure virtual]

XrlCmdError  rib_0_1_delete_egp_table4 ( const string& protocol, const string& target_class, const string& target_instance, const bool& unicast, const bool& multicast)

rib_0_1_delete_egp_table4

[protected pure virtual]

XrlCmdError  rib_0_1_delete_egp_table6 ( const string& protocol, const string& target_class, const string& target_instance, const bool& unicast, const bool& multicast)

rib_0_1_delete_egp_table6

[protected pure virtual]

XrlCmdError  rib_0_1_add_route4 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv4Net& network, const IPv4& nexthop, const uint32_t& metric, const XrlAtomList& policytags)

rib_0_1_add_route4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Add/replace/delete a route.

Parameters:

protocolthe name of the protocol this route comes from.
unicasttrue if the route is for the unicast RIB.
multicasttrue if the route is for the multicast RIB.
networkthe network address prefix of the route.
nexthopthe address of the next-hop router toward the destination.
metricthe routing metric.
policytagsa set of policy tags used for redistribution.
XrlCmdError  rib_0_1_add_route6 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv6Net& network, const IPv6& nexthop, const uint32_t& metric, const XrlAtomList& policytags)

rib_0_1_add_route6

[protected pure virtual]

XrlCmdError  rib_0_1_replace_route4 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv4Net& network, const IPv4& nexthop, const uint32_t& metric, const XrlAtomList& policytags)

rib_0_1_replace_route4

[protected pure virtual]

XrlCmdError  rib_0_1_replace_route6 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv6Net& network, const IPv6& nexthop, const uint32_t& metric, const XrlAtomList& policytags)

rib_0_1_replace_route6

[protected pure virtual]

XrlCmdError  rib_0_1_delete_route4 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv4Net& network)

rib_0_1_delete_route4

[protected pure virtual]

XrlCmdError  rib_0_1_delete_route6 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv6Net& network)

rib_0_1_delete_route6

[protected pure virtual]

XrlCmdError  rib_0_1_add_interface_route4 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv4Net& network, const IPv4& nexthop, const string& ifname, const string& vifname, const uint32_t& metric, const XrlAtomList& policytags)

rib_0_1_add_interface_route4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Add/replace a route by explicitly specifying the network interface toward the destination.

Parameters:

protocolthe name of the protocol this route comes from.
unicasttrue if the route is for the unicast RIB.
multicasttrue if the route is for the multicast RIB.
networkthe network address prefix of the route.
nexthopthe address of the next-hop router toward the destination.
ifnameof the name of the physical interface toward the destination.
vifnameof the name of the virtual interface toward the destination.
metricthe routing metric.
policytagsa set of policy tags used for redistribution.
XrlCmdError  rib_0_1_add_interface_route6 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv6Net& network, const IPv6& nexthop, const string& ifname, const string& vifname, const uint32_t& metric, const XrlAtomList& policytags)

rib_0_1_add_interface_route6

[protected pure virtual]

XrlCmdError  rib_0_1_replace_interface_route4 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv4Net& network, const IPv4& nexthop, const string& ifname, const string& vifname, const uint32_t& metric, const XrlAtomList& policytags)

rib_0_1_replace_interface_route4

[protected pure virtual]

XrlCmdError  rib_0_1_replace_interface_route6 ( const string& protocol, const bool& unicast, const bool& multicast, const IPv6Net& network, const IPv6& nexthop, const string& ifname, const string& vifname, const uint32_t& metric, const XrlAtomList& policytags)

rib_0_1_replace_interface_route6

[protected pure virtual]

XrlCmdError  rib_0_1_lookup_route_by_dest4 ( const IPv4& addr, const bool& unicast, const bool& multicast, IPv4& nexthop)

rib_0_1_lookup_route_by_dest4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Lookup nexthop.

Parameters:

addraddress to lookup.
unicastlook in unicast RIB.
multicastlook in multicast RIB.
nexthopcontains the resolved nexthop if successful, IPv4::ZERO otherwise. It is an error for the unicast and multicast fields to both be true or both false.
XrlCmdError  rib_0_1_lookup_route_by_dest6 ( const IPv6& addr, const bool& unicast, const bool& multicast, IPv6& nexthop)

rib_0_1_lookup_route_by_dest6

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Lookup nexthop.

Parameters:

addraddress to lookup.
unicastlook in unicast RIB.
multicastlook in multicast RIB.
nexthopcontains the resolved nexthop if successful, IPv6::ZERO otherwise. It is an error for the unicast and multicast fields to both be true or both false.
XrlCmdError  rib_0_1_new_vif ( const string& name)

rib_0_1_new_vif

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Add a vif or a vif address to the RIB. This interface should be used only for testing purpose.

Parameters:

namethe name of the vif.
XrlCmdError  rib_0_1_add_vif_addr4 ( const string& name, const IPv4& addr, const IPv4Net& subnet)

rib_0_1_add_vif_addr4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Add a vif address to the RIB. This interface should be used only for testing purpose.

Parameters:

namethe name of the vif.
addrthe address to add.
subnetthe subnet address to add.
XrlCmdError  rib_0_1_add_vif_addr6 ( const string& name, const IPv6& addr, const IPv6Net& subnet)

rib_0_1_add_vif_addr6

[protected pure virtual]

XrlCmdError  rib_0_1_redist_enable4 ( const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const IPv4Net& network_prefix, const string& cookie)

rib_0_1_redist_enable4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Enable route redistribution from one routing protocol to another.

Parameters:

to_xrl_targetthe XRL Target instance name of the caller. The caller must implement redist4/0.1.
from_protocolthe name of the routing process routes are to be redistributed from.
unicastenable for unicast RIBs matching from and to.
multicastenable for multicast RIBs matching from and to.
network_prefixredistribite only the routes that fall into this prefix address.
cookiea text value passed back to creator in each call from the RIB. This allows creators to identity the source of updates it receives through the redist4/0.1 interface.
XrlCmdError  rib_0_1_redist_enable6 ( const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const IPv6Net& network_prefix, const string& cookie)

rib_0_1_redist_enable6

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Enable route redistribution from one routing protocol to another.

Parameters:

to_xrl_targetthe XRL Target instance name of the caller. The caller must implement redist6/0.1.
from_protocolthe name of the routing process routes are to be redistributed from.
unicastenable for unicast RIBs matching from and to.
multicastenable for multicast RIBs matching from and to.
network_prefixredistribite only the routes that fall into this prefix address.
cookiea text value passed back to creator in each call from the RIB. This allows creators to identity the source of updates it receives through the redist6/0.1 interface.
XrlCmdError  rib_0_1_redist_disable4 ( const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const string& cookie)

rib_0_1_redist_disable4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Disable route redistribution from one routing protocol to another.

Parameters:

to_xrl_targetthe XRL Target instance name of the caller. The caller must implement redist4/0.1 and previously called redist_enable4.
unicastdisable for unicast RIBs matching from and to.
multicastdisable for multicast RIBs matching from and to.
cookiea text value passed back to creator in each call from the RIB. This allows creators to identity the source of updates it receives through the redist4/0.1 interface.
XrlCmdError  rib_0_1_redist_disable6 ( const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const string& cookie)

rib_0_1_redist_disable6

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Disable route redistribution from one routing protocol to another.

Parameters:

to_xrl_targetthe XRL Target instance name of the caller. The caller must implement redist6/0.1 and previously called redist_enable6.
unicastdisable for unicast RIBs matching from and to.
multicastdisable for multicast RIBs matching from and to.
cookiea text value passed back to creator in each call from the RIB. This allows creators to identity the source of updates it receives through the redist6/0.1 interface.
XrlCmdError  rib_0_1_redist_transaction_enable4 ( const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const IPv4Net& network_prefix, const string& cookie)

rib_0_1_redist_transaction_enable4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Enable transaction-based route redistribution from one routing protocol to another.

Parameters:

to_xrl_targetthe XRL Target instance name of the caller. The caller must implement redist_transaction4/0.1.
from_protocolthe name of the routing process routes are to be redistributed from.
unicastenable for unicast RIBs matching from and to.
multicastenable for multicast RIBs matching from and to.
network_prefixredistribite only the routes that fall into this prefix address.
cookiea text value passed back to creator in each call from the RIB. This allows creators to identity the source of updates it receives through the redist_transaction4/0.1 interface.
XrlCmdError  rib_0_1_redist_transaction_enable6 ( const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const IPv6Net& network_prefix, const string& cookie)

rib_0_1_redist_transaction_enable6

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Enable transaction-based route redistribution from one routing protocol to another.

Parameters:

to_xrl_targetthe XRL Target instance name of the caller. The caller must implement redist_transaction6/0.1.
from_protocolthe name of the routing process routes are to be redistributed from.
unicastenable for unicast RIBs matching from and to.
multicastenable for multicast RIBs matching from and to.
network_prefixredistribite only the routes that fall into this prefix address.
cookiea text value passed back to creator in each call from the RIB. This allows creators to identity the source of updates it receives through the redist_transaction6/0.1 interface.
XrlCmdError  rib_0_1_redist_transaction_disable4 ( const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const string& cookie)

rib_0_1_redist_transaction_disable4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Disable transaction-based route redistribution from one routing protocol to another.

Parameters:

to_xrl_targetthe XRL Target instance name of the caller. The caller must implement redist_transaction4/0.1 and previously called redist_transaction_enable4.
unicastdisable for unicast RIBs matching from and to.
multicastdisable for multicast RIBs matching from and to.
cookiea text value passed back to creator in each call from the RIB. This allows creators to identity the source of updates it receives through the redist_transaction4/0.1 interface.
XrlCmdError  rib_0_1_redist_transaction_disable6 ( const string& to_xrl_target, const string& from_protocol, const bool& unicast, const bool& multicast, const string& cookie)

rib_0_1_redist_transaction_disable6

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Disable transaction-based route redistribution from one routing protocol to another.

Parameters:

to_xrl_targetthe XRL Target instance name of the caller. The caller must implement redist_transaction6/0.1 and previously called redist_transaction_enable6.
unicastdisable for unicast RIBs matching from and to.
multicastdisable for multicast RIBs matching from and to.
cookiea text value passed back to creator in each call from the RIB. This allows creators to identity the source of updates it receives through the redist_transaction6/0.1 interface.
XrlCmdError  rib_0_1_register_interest4 ( const string& target, const IPv4& addr, bool& resolves, IPv4& base_addr, uint32_t& prefix_len, uint32_t& real_prefix_len, IPv4& nexthop, uint32_t& metric)

rib_0_1_register_interest4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Register an interest in a route.

Parameters:

targetthe name of the XRL module to notify when the information returned by this call becomes invalid.
addraddress of interest.
resolvesreturns whether or not the address resolves to a route that can be used for forwarding.
base_addrreturns the address of interest (actually the base address of the subnet covered by addr/prefix_len).
prefix_lenreturns the prefix length that the registration covers. This response applies to all addresses in addr/prefix_len.
real_prefix_lenreturns the actual prefix length of the route that will be used to route addr. If real_prefix_len is not the same as prefix_len, this is because there are some more specific routes that overlap addr/real_prefix_len. real_prefix_len is primarily given for debugging reasons.
nexthopreturns the address of the next hop for packets sent to addr.
metricreturns the IGP metric for this route.
XrlCmdError  rib_0_1_deregister_interest4 ( const string& target, const IPv4& addr, const uint32_t& prefix_len)

rib_0_1_deregister_interest4

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

De-register an interest in a route.

Parameters:

targetthe name of the XRL module that registered the interest.
addrthe address of the previous registered interest. addr should be the base address of the add/prefix_len subnet.
prefix_lenthe prefix length of the registered interest, as given in the response from register_interest.
XrlCmdError  rib_0_1_register_interest6 ( const string& target, const IPv6& addr, bool& resolves, IPv6& base_addr, uint32_t& prefix_len, uint32_t& real_prefix_len, IPv6& nexthop, uint32_t& metric)

rib_0_1_register_interest6

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Register an interest in a route.

Parameters:

targetthe name of the XRL module to notify when the information returned by this call becomes invalid.
addraddress of interest.
resolvesreturns whether or not the address resolves to a route that can be used for forwarding.
base_addrreturns the address of interest (actually the base address of the subnet covered by addr/prefix_len).
prefix_lenreturns the prefix length that the registration covers. This response applies to all addresses in addr/prefix_len.
real_prefix_lenreturns the actual prefix length of the route that will be used to route addr. If real_prefix_len is not the same as prefix_len, this is because there are some more specific routes that overlap addr/real_prefix_len. real_prefix_len is primarily given for debugging reasons.
nexthopreturns the address of the next hop for packets sent to addr.
metricreturns the IGP metric for this route.
XrlCmdError  rib_0_1_deregister_interest6 ( const string& target, const IPv6& addr, const uint32_t& prefix_len)

rib_0_1_deregister_interest6

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

De-register an interest in a route.

Parameters:

targetthe name of the XRL module that registered the interest.
addrthe address of the previous registered interest. addr should be the base address of the add/prefix_len subnet.
prefix_lenthe prefix length of the registered interest, as given in the response from register_interest.
XrlCmdError  rib_0_1_insert_policy_redist_tags ( const string& protocol, const XrlAtomList& policytags)

rib_0_1_insert_policy_redist_tags

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Add policy tags for a specific protcol in the redistribution map.

Parameters:

protocolThe destination protocol of the redistribution.
policytagsThe set of policytags of interest for the protocol.
XrlCmdError  rib_0_1_reset_policy_redist_tags ()

rib_0_1_reset_policy_redist_tags

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Reset the policy redistribution map. No policy based route redistribution will be available at this point.

XrlCmdError  profile_0_1_enable ( const string& pname)

profile_0_1_enable

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Enable profiling

Parameters:

pnameprofile variable
XrlCmdError  profile_0_1_disable ( const string& pname)

profile_0_1_disable

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Disable profiling

Parameters:

pnameprofile variable
XrlCmdError  profile_0_1_get_entries ( const string& pname, const string& instance_name)

profile_0_1_get_entries

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Get log entries.

Parameters:

pnameprofile variable
instance_nameto send the profiling info to.
XrlCmdError  profile_0_1_clear ( const string& pname)

profile_0_1_clear

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

Clear the profiling entries

Parameters:

pnameprofile variable
XrlCmdError  profile_0_1_list ( string& info)

profile_0_1_list

[protected pure virtual]

Pure-virtual function that needs to be implemented to:

List all the profiling variables registered with this target.


Generated by: pavlin on possum.icir.org on Wed Aug 2 15:36:11 2006, using kdoc $.