Source: ../../xrl/targets/fea_base.hh
|
|
|
|
/*
* Copyright (c) 2001-2004 International Computer Science Institute
* See LICENSE file for licensing, conditions, and warranties on use.
*
* DO NOT EDIT THIS FILE - IT IS PROGRAMMATICALLY GENERATED
*
* Generated by 'tgt-gen'.
*
* $XORP: xorp/xrl/targets/fea_base.hh,v 1.36 2004/06/10 22:42:10 hodson Exp $
*/
#ifndef __XRL_INTERFACES_FEA_BASE_HH__
#define __XRL_INTERFACES_FEA_BASE_HH__
#undef XORP_LIBRARY_NAME
#define XORP_LIBRARY_NAME "XrlFeaTarget"
#include "libxorp/xlog.h"
#include "libxipc/xrl_cmd_map.hh"
class XrlFeaTargetBase {
protected:
XrlCmdMap* _cmds;
public:
/**
* Constructor.
*
* @param cmds an XrlCmdMap that the commands associated with the target
* should be added to. This is typically the XrlRouter
* associated with the target.
*/
XrlFeaTargetBase(XrlCmdMap* cmds = 0);
/**
* Destructor.
*
* Dissociates instance commands from command map.
*/
virtual ~XrlFeaTargetBase();
/**
* Set command map.
*
* @param cmds pointer to command map to associate commands with. This
* argument is typically a pointer to the XrlRouter associated with the
* target.
*
* @return true on success, false if cmds is null or a command map has
* already been supplied.
*/
bool set_command_map(XrlCmdMap* cmds);
/**
* Get Xrl instance name associated with command map.
*/
inline const string& name() const { return _cmds->name(); }
/**
* Get version string of instance.
*/
inline const char* version() const { return "fea/0.0"; }
protected:
/**
* Pure-virtual function that needs to be implemented to:
*
* Get name of Xrl Target
*/
virtual XrlCmdError common_0_1_get_target_name(
// Output values,
string& name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Get version string from Xrl Target
*/
virtual XrlCmdError common_0_1_get_version(
// Output values,
string& version) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Get status of Xrl Target
*/
virtual XrlCmdError common_0_1_get_status(
// Output values,
uint32_t& status,
string& reason) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Request clean shutdown of Xrl Target
*/
virtual XrlCmdError common_0_1_shutdown() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add a FIB client.
*
* @param target_name the target name of the FIB client to add.
*/
virtual XrlCmdError fea_fib_0_1_add_fib_client4(
// Input values,
const string& target_name) = 0;
virtual XrlCmdError fea_fib_0_1_add_fib_client6(
// Input values,
const string& target_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete a FIB client.
*
* @param target_name the target name of the FIB client to delete.
*/
virtual XrlCmdError fea_fib_0_1_delete_fib_client4(
// Input values,
const string& target_name) = 0;
virtual XrlCmdError fea_fib_0_1_delete_fib_client6(
// Input values,
const string& target_name) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_interface_names(
// Output values,
XrlAtomList& ifnames) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_vif_names(
// Input values,
const string& ifname,
// Output values,
XrlAtomList& vifs) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_vif_flags(
// Input values,
const string& ifname,
const string& vif,
// Output values,
bool& enabled,
bool& broadcast,
bool& loopback,
bool& point_to_point,
bool& multicast) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_vif_pif_index(
// Input values,
const string& ifname,
const string& vif,
// Output values,
uint32_t& pif_index) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_vif_addresses4(
// Input values,
const string& ifname,
const string& vif,
// Output values,
XrlAtomList& addresses) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_vif_addresses6(
// Input values,
const string& ifname,
const string& vif,
// Output values,
XrlAtomList& addresses) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_address_flags4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
bool& enabled,
bool& broadcast,
bool& loopback,
bool& point_to_point,
bool& multicast) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_address_flags6(
// Input values,
const string& ifname,
const string& vif,
const IPv6& address,
// Output values,
bool& enabled,
bool& loopback,
bool& point_to_point,
bool& multicast) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_interface_enabled(
// Input values,
const string& ifname,
// Output values,
bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_mac(
// Input values,
const string& ifname,
// Output values,
Mac& mac) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_mtu(
// Input values,
const string& ifname,
// Output values,
uint32_t& mtu) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_vif_enabled(
// Input values,
const string& ifname,
const string& vif,
// Output values,
bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_prefix4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
uint32_t& prefix_len) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_broadcast4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
IPv4& broadcast) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_endpoint4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
IPv4& endpoint) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_prefix6(
// Input values,
const string& ifname,
const string& vif,
const IPv6& address,
// Output values,
uint32_t& prefix_len) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_endpoint6(
// Input values,
const string& ifname,
const string& vif,
const IPv6& address,
// Output values,
IPv6& endpoint) = 0;
virtual XrlCmdError ifmgr_0_1_start_transaction(
// Output values,
uint32_t& tid) = 0;
virtual XrlCmdError ifmgr_0_1_commit_transaction(
// Input values,
const uint32_t& tid) = 0;
virtual XrlCmdError ifmgr_0_1_abort_transaction(
// Input values,
const uint32_t& tid) = 0;
virtual XrlCmdError ifmgr_0_1_create_interface(
// Input values,
const uint32_t& tid,
const string& ifname) = 0;
virtual XrlCmdError ifmgr_0_1_delete_interface(
// Input values,
const uint32_t& tid,
const string& ifname) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Implicitly configure an interface within the FEA by using information
* from the underlying system.
*
* @param tid the transaction ID.
*
* @param ifname the name of the interface to configure.
*/
virtual XrlCmdError ifmgr_0_1_configure_interface_from_system(
// Input values,
const uint32_t& tid,
const string& ifname) = 0;
virtual XrlCmdError ifmgr_0_1_set_interface_enabled(
// Input values,
const uint32_t& tid,
const string& ifname,
const bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_set_mac(
// Input values,
const uint32_t& tid,
const string& ifname,
const Mac& mac) = 0;
virtual XrlCmdError ifmgr_0_1_set_mtu(
// Input values,
const uint32_t& tid,
const string& ifname,
const uint32_t& mtu) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Create a vif
*
* @param ifname the name of the physical interface associated with the
* new vif.
*
* @param vif name for new vif, must be unique across all the vifs in the
* system.
*/
virtual XrlCmdError ifmgr_0_1_create_vif(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif) = 0;
virtual XrlCmdError ifmgr_0_1_delete_vif(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif) = 0;
virtual XrlCmdError ifmgr_0_1_set_vif_enabled(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_create_address4(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv4& address) = 0;
virtual XrlCmdError ifmgr_0_1_delete_address4(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv4& address) = 0;
virtual XrlCmdError ifmgr_0_1_set_address_enabled4(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv4& address,
const bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_address_enabled4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_set_prefix4(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv4& address,
const uint32_t& prefix_len) = 0;
virtual XrlCmdError ifmgr_0_1_set_broadcast4(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv4& address,
const IPv4& broadcast) = 0;
virtual XrlCmdError ifmgr_0_1_set_endpoint4(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv4& address,
const IPv4& endpoint) = 0;
virtual XrlCmdError ifmgr_0_1_create_address6(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv6& address) = 0;
virtual XrlCmdError ifmgr_0_1_delete_address6(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv6& address) = 0;
virtual XrlCmdError ifmgr_0_1_set_address_enabled6(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv6& address,
const bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_get_configured_address_enabled6(
// Input values,
const string& ifname,
const string& vif,
const IPv6& address,
// Output values,
bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_set_prefix6(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv6& address,
const uint32_t& prefix_len) = 0;
virtual XrlCmdError ifmgr_0_1_set_endpoint6(
// Input values,
const uint32_t& tid,
const string& ifname,
const string& vif,
const IPv6& address,
const IPv6& endpoint) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Register network interface observer for configured interfaces.
*
* @param clientname name of xrl entity supporting fea_ifmgr_client.xif
* methods.
*/
virtual XrlCmdError ifmgr_0_1_register_client(
// Input values,
const string& clientname) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Unregister network interface observer for configured interfaces. This
* method is not strictly necessary, the fea will remove the interface
* observer from its list of known observers if interface update XRLs
* fail.
*/
virtual XrlCmdError ifmgr_0_1_unregister_client(
// Input values,
const string& clientname) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_interface_names(
// Output values,
XrlAtomList& ifnames) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_vif_names(
// Input values,
const string& ifname,
// Output values,
XrlAtomList& vifs) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_vif_flags(
// Input values,
const string& ifname,
const string& vif,
// Output values,
bool& enabled,
bool& broadcast,
bool& loopback,
bool& point_to_point,
bool& multicast) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_vif_pif_index(
// Input values,
const string& ifname,
const string& vif,
// Output values,
uint32_t& pif_index) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_vif_addresses4(
// Input values,
const string& ifname,
const string& vif,
// Output values,
XrlAtomList& addresses) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_address_flags4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
bool& enabled,
bool& broadcast,
bool& loopback,
bool& point_to_point,
bool& multicast) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_vif_addresses6(
// Input values,
const string& ifname,
const string& vif,
// Output values,
XrlAtomList& addresses) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_address_flags6(
// Input values,
const string& ifname,
const string& vif,
const IPv6& address,
// Output values,
bool& enabled,
bool& loopback,
bool& point_to_point,
bool& multicast) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_interface_enabled(
// Input values,
const string& ifname,
// Output values,
bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_mac(
// Input values,
const string& ifname,
// Output values,
Mac& mac) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_mtu(
// Input values,
const string& ifname,
// Output values,
uint32_t& mtu) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_vif_enabled(
// Input values,
const string& ifname,
const string& vif,
// Output values,
bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_prefix4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
uint32_t& prefix_len) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_broadcast4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
IPv4& broadcast) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_endpoint4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
IPv4& endpoint) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_prefix6(
// Input values,
const string& ifname,
const string& vif,
const IPv6& address,
// Output values,
uint32_t& prefix_len) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_endpoint6(
// Input values,
const string& ifname,
const string& vif,
const IPv6& address,
// Output values,
IPv6& endpoint) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_address_enabled4(
// Input values,
const string& ifname,
const string& vif,
const IPv4& address,
// Output values,
bool& enabled) = 0;
virtual XrlCmdError ifmgr_0_1_get_system_address_enabled6(
// Input values,
const string& ifname,
const string& vif,
const IPv6& address,
// Output values,
bool& enabled) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Register network interface observer for all system interfaces.
*
* @param clientname name of xrl entity supporting fea_ifmgr_client.xif
* methods.
*/
virtual XrlCmdError ifmgr_0_1_register_system_interfaces_client(
// Input values,
const string& clientname) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Unregister network interface observer for all system interfaces. This
* method is not strictly necessary, the fea will remove the interface
* observer from its list of known observers if interface update XRLs
* fail.
*/
virtual XrlCmdError ifmgr_0_1_unregister_system_interfaces_client(
// Input values,
const string& clientname) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Register remote mirror of interface state.
*/
virtual XrlCmdError ifmgr_replicator_0_1_register_ifmgr_mirror(
// Input values,
const string& clientname) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Register remote mirror of interface state.
*/
virtual XrlCmdError ifmgr_replicator_0_1_unregister_ifmgr_mirror(
// Input values,
const string& clientname) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Start transaction.
*
* @param tid the transaction ID to use for this transaction.
*/
virtual XrlCmdError fti_0_2_start_transaction(
// Output values,
uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Commit transaction.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError fti_0_2_commit_transaction(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Abort transaction.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError fti_0_2_abort_transaction(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add a routing entry.
*
* @param tid the transaction ID of this transaction.
*
* @param dst the destination subnet address of the entry.
*
* @param gateway the address of the next-hop router toward dst.
*
* @param ifname the name of the physical interface toward dst.
*
* @param vifname the name of the virtual interface toward dst.
*
* @param metric the routing metric toward dst.
*
* @param admin_distance the administratively defined distance toward dst.
*
* @param protocol_origin the name of the protocol that originated this
* entry.
*/
virtual XrlCmdError fti_0_2_add_entry4(
// Input values,
const uint32_t& tid,
const IPv4Net& dst,
const IPv4& gateway,
const string& ifname,
const string& vifname,
const uint32_t& metric,
const uint32_t& admin_distance,
const string& protocol_origin) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add a routing entry.
*
* @param tid the transaction ID of this transaction.
*
* @param dst the destination subnet address of the entry.
*
* @param gateway the address of the next-hop router toward dst.
*
* @param ifname the name of the physical interface toward dst.
*
* @param vifname the name of the virtual interface toward dst.
*
* @param metric the routing metric toward dst.
*
* @param admin_distance the administratively defined distance toward dst.
*
* @param protocol_origin the name of the protocol that originated this
* entry.
*/
virtual XrlCmdError fti_0_2_add_entry6(
// Input values,
const uint32_t& tid,
const IPv6Net& dst,
const IPv6& gateway,
const string& ifname,
const string& vifname,
const uint32_t& metric,
const uint32_t& admin_distance,
const string& protocol_origin) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete a routing entry.
*
* @param tid the transaction ID of this transaction.
*
* @param dst the destination subnet address of the entry.
*/
virtual XrlCmdError fti_0_2_delete_entry4(
// Input values,
const uint32_t& tid,
const IPv4Net& dst) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete a routing entry.
*
* @param tid the transaction ID of this transaction.
*
* @param dst the destination subnet address of the entry.
*/
virtual XrlCmdError fti_0_2_delete_entry6(
// Input values,
const uint32_t& tid,
const IPv6Net& dst) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete all routing entries for all address families.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError fti_0_2_delete_all_entries(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete all routing entries for the IPv4 address family.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError fti_0_2_delete_all_entries4(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete all routing entries for the IPv6 address family.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError fti_0_2_delete_all_entries6(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Lookup a route for a destination host address.
*
* @param dst the destination host address to lookup.
*
* @param gateway the address of the next-hop router toward dst.
*
* @param ifname the name of the physical interface toward dst.
*
* @param vifname the name of the virtual interface toward dst.
*
* @param metric the routing metric toward dst.
*
* @param admin_distance the administratively defined distance toward dst.
*
* @param protocol_origin the name of the protocol that originated this
* entry.
*/
virtual XrlCmdError fti_0_2_lookup_route4(
// Input values,
const IPv4& dst,
// Output values,
IPv4Net& netmask,
IPv4& gateway,
string& ifname,
string& vifname,
uint32_t& metric,
uint32_t& admin_distance,
string& protocol_origin) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Lookup a route for a destination host address.
*
* @param dst the destination host address to lookup.
*
* @param gateway the address of the next-hop router toward dst.
*
* @param ifname the name of the physical interface toward dst.
*
* @param vifname the name of the virtual interface toward dst.
*
* @param metric the routing metric toward dst.
*
* @param admin_distance the administratively defined distance toward dst.
*
* @param protocol_origin the name of the protocol that originated this
* entry.
*/
virtual XrlCmdError fti_0_2_lookup_route6(
// Input values,
const IPv6& dst,
// Output values,
IPv6Net& netmask,
IPv6& gateway,
string& ifname,
string& vifname,
uint32_t& metric,
uint32_t& admin_distance,
string& protocol_origin) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Lookup a route for a destination subnet address.
*
* @param dst the destination subnet address to lookup.
*
* @param gateway the address of the next-hop router toward dst.
*
* @param ifname the name of the physical interface toward dst.
*
* @param vifname the name of the virtual interface toward dst.
*
* @param metric the routing metric toward dst.
*
* @param admin_distance the administratively defined distance toward dst.
*
* @param protocol_origin the name of the protocol that originated this
* entry.
*/
virtual XrlCmdError fti_0_2_lookup_entry4(
// Input values,
const IPv4Net& dst,
// Output values,
IPv4& gateway,
string& ifname,
string& vifname,
uint32_t& metric,
uint32_t& admin_distance,
string& protocol_origin) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Lookup a route for a destination subnet address.
*
* @param dst the destination subnet address to lookup.
*
* @param gateway the address of the next-hop router toward dst.
*
* @param ifname the name of the physical interface toward dst.
*
* @param vifname the name of the virtual interface toward dst.
*
* @param metric the routing metric toward dst.
*
* @param admin_distance the administratively defined distance toward dst.
*
* @param protocol_origin the name of the protocol that originated this
* entry.
*/
virtual XrlCmdError fti_0_2_lookup_entry6(
// Input values,
const IPv6Net& dst,
// Output values,
IPv6& gateway,
string& ifname,
string& vifname,
uint32_t& metric,
uint32_t& admin_distance,
string& protocol_origin) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Test if the underlying system supports IPv4.
*
* @param result true if the underlying system supports IPv4, otherwise
* false.
*/
virtual XrlCmdError fti_0_2_have_ipv4(
// Output values,
bool& result) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Test if the underlying system supports IPv6.
*
* @param result true if the underlying system supports IPv4, otherwise
* false.
*/
virtual XrlCmdError fti_0_2_have_ipv6(
// Output values,
bool& result) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Test whether the IPv4 unicast forwarding engine is enabled or disabled
* to forward packets.
*
* @param enabled if true, then the IPv4 unicast forwarding is enabled,
* otherwise is disabled.
*/
virtual XrlCmdError fti_0_2_get_unicast_forwarding_enabled4(
// Output values,
bool& enabled) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Test whether the IPv6 unicast forwarding engine is enabled or disabled
* to forward packets.
*
* @param enabled if true, then the IPv6 unicast forwarding is enabled,
* otherwise is disabled.
*/
virtual XrlCmdError fti_0_2_get_unicast_forwarding_enabled6(
// Output values,
bool& enabled) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Set the IPv4 unicast forwarding engine to enable or disable forwarding
* of packets.
*
* @param enabled if true, then enable IPv4 unicast forwarding, otherwise
* disable it.
*/
virtual XrlCmdError fti_0_2_set_unicast_forwarding_enabled4(
// Input values,
const bool& enabled) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Set the IPv6 unicast forwarding engine to enable or disable forwarding
* of packets.
*
* @param enabled if true, then enable IPv6 unicast forwarding, otherwise
* disable it.
*/
virtual XrlCmdError fti_0_2_set_unicast_forwarding_enabled6(
// Input values,
const bool& enabled) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Start transaction.
*
* @param tid the transaction ID to use for this transaction.
*/
virtual XrlCmdError redist_transaction4_0_1_start_transaction(
// Output values,
uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Commit transaction.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError redist_transaction4_0_1_commit_transaction(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Abort transaction.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError redist_transaction4_0_1_abort_transaction(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add/delete a routing entry.
*
* @param tid the transaction ID of this transaction.
*
* @param dst destination network.
*
* @param nh nexthop router address.
*
* @param ifname interface name associated with nexthop.
*
* @param vifname virtual interface name with nexthop.
*
* @param metric origin routing protocol metric for route.
*
* @param ad administrative distance of origin routing protocol.
*
* @param cookie value set be requestor to identify redistribution source.
* Typical value is the originating protocol name.
*
* @param protocol_origin the name of the protocol that originated this
* entry.
*/
virtual XrlCmdError redist_transaction4_0_1_add_route(
// Input values,
const uint32_t& tid,
const IPv4Net& dst,
const IPv4& nh,
const string& ifname,
const string& vifname,
const uint32_t& metric,
const uint32_t& ad,
const string& cookie,
const string& protocol_origin) = 0;
virtual XrlCmdError redist_transaction4_0_1_delete_route(
// Input values,
const uint32_t& tid,
const IPv4Net& network,
const string& cookie) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Start transaction.
*
* @param tid the transaction ID to use for this transaction.
*/
virtual XrlCmdError redist_transaction6_0_1_start_transaction(
// Output values,
uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Commit transaction.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError redist_transaction6_0_1_commit_transaction(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Abort transaction.
*
* @param tid the transaction ID of this transaction.
*/
virtual XrlCmdError redist_transaction6_0_1_abort_transaction(
// Input values,
const uint32_t& tid) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add/delete a routing entry.
*
* @param tid the transaction ID of this transaction.
*
* @param dst destination network.
*
* @param nh nexthop router address.
*
* @param ifname interface name associated with nexthop.
*
* @param vifname virtual interface name with nexthop.
*
* @param metric origin routing protocol metric for route.
*
* @param ad administrative distance of origin routing protocol.
*
* @param cookie value set be requestor to identify redistribution source.
* Typical value is the originating protocol name.
*
* @param protocol_origin the name of the protocol that originated this
* entry.
*/
virtual XrlCmdError redist_transaction6_0_1_add_route(
// Input values,
const uint32_t& tid,
const IPv6Net& dst,
const IPv6& nh,
const string& ifname,
const string& vifname,
const uint32_t& metric,
const uint32_t& ad,
const string& cookie,
const string& protocol_origin) = 0;
virtual XrlCmdError redist_transaction6_0_1_delete_route(
// Input values,
const uint32_t& tid,
const IPv6Net& network,
const string& cookie) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Send a packet on a raw socket.
*/
virtual XrlCmdError raw_packet_0_1_send4(
// Input values,
const IPv4& src_address,
const IPv4& dst_address,
const string& vif_name,
const uint32_t& proto,
const uint32_t& ttl,
const uint32_t& tos,
const vector<uint8_t>& options,
const vector<uint8_t>& payload) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Send raw packet. Checksum is computed and applied before transmission.
* All the fields within the IPv4 header must be in network order.
*/
virtual XrlCmdError raw_packet_0_1_send_raw4(
// Input values,
const string& vif_name,
const vector<uint8_t>& packet) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Register to receive packets. The receiver is expected to support
* raw_socket_client/0.1 interface.
*/
virtual XrlCmdError raw_packet_0_1_register_vif_receiver(
// Input values,
const string& router_name,
const string& if_name,
const string& vif_name,
const uint32_t& proto) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Unregister stop receiving packets.
*
* @param proto Protocol number that the receiver is interested in.
*/
virtual XrlCmdError raw_packet_0_1_unregister_vif_receiver(
// Input values,
const string& router_name,
const string& if_name,
const string& vif_name,
const uint32_t& proto) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Find suitable socket serving Xrl Target for a particular interface
* address.
*/
virtual XrlCmdError socket4_locator_0_1_find_socket_server_for_addr(
// Input values,
const IPv4& local_addr,
// Output values,
string& xrl_target) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Find suitable socket serving Xrl Target for a particular interface
* address.
*/
virtual XrlCmdError socket6_locator_0_1_find_socket_server_for_addr(
// Input values,
const IPv6& local_addr,
// Output values,
string& xrl_target) = 0;
private:
const XrlCmdError handle_common_0_1_get_target_name(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_common_0_1_get_version(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_common_0_1_get_status(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_common_0_1_shutdown(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fea_fib_0_1_add_fib_client4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fea_fib_0_1_add_fib_client6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fea_fib_0_1_delete_fib_client4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fea_fib_0_1_delete_fib_client6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_interface_names(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_vif_names(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_vif_flags(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_vif_pif_index(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_vif_addresses4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_vif_addresses6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_address_flags4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_address_flags6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_interface_enabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_mac(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_mtu(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_vif_enabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_prefix4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_broadcast4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_endpoint4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_prefix6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_endpoint6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_start_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_commit_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_abort_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_create_interface(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_delete_interface(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_configure_interface_from_system(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_interface_enabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_mac(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_mtu(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_create_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_delete_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_vif_enabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_create_address4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_delete_address4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_address_enabled4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_address_enabled4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_prefix4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_broadcast4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_endpoint4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_create_address6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_delete_address6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_address_enabled6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_configured_address_enabled6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_prefix6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_set_endpoint6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_register_client(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_unregister_client(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_interface_names(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_vif_names(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_vif_flags(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_vif_pif_index(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_vif_addresses4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_address_flags4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_vif_addresses6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_address_flags6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_interface_enabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_mac(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_mtu(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_vif_enabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_prefix4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_broadcast4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_endpoint4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_prefix6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_endpoint6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_address_enabled4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_get_system_address_enabled6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_register_system_interfaces_client(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_0_1_unregister_system_interfaces_client(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_replicator_0_1_register_ifmgr_mirror(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_ifmgr_replicator_0_1_unregister_ifmgr_mirror(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_start_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_commit_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_abort_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_add_entry4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_add_entry6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_delete_entry4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_delete_entry6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_delete_all_entries(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_delete_all_entries4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_delete_all_entries6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_lookup_route4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_lookup_route6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_lookup_entry4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_lookup_entry6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_have_ipv4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_have_ipv6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_get_unicast_forwarding_enabled4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_get_unicast_forwarding_enabled6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_set_unicast_forwarding_enabled4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_fti_0_2_set_unicast_forwarding_enabled6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction4_0_1_start_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction4_0_1_commit_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction4_0_1_abort_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction4_0_1_add_route(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction4_0_1_delete_route(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction6_0_1_start_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction6_0_1_commit_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction6_0_1_abort_transaction(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction6_0_1_add_route(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_redist_transaction6_0_1_delete_route(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_raw_packet_0_1_send4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_raw_packet_0_1_send_raw4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_raw_packet_0_1_register_vif_receiver(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_raw_packet_0_1_unregister_vif_receiver(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_socket4_locator_0_1_find_socket_server_for_addr(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_socket6_locator_0_1_find_socket_server_for_addr(const XrlArgs& in, XrlArgs* out);
void add_handlers();
void remove_handlers();
};
#endif /* __XRL_INTERFACES_FEA_BASE_HH__ */
Generated by: pavlin on possum.icir.org on Thu Jul 8 23:48:20 2004, using kdoc $.