Source: ../../xrl/targets/pim_base.hh
|
|
|
|
/*
* Copyright (c) 2001-2005 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/pim_base.hh,v 1.54 2005/06/01 00:37:02 pavlin Exp $
*/
#ifndef __XRL_INTERFACES_PIM_BASE_HH__
#define __XRL_INTERFACES_PIM_BASE_HH__
#undef XORP_LIBRARY_NAME
#define XORP_LIBRARY_NAME "XrlPimTarget"
#include "libxorp/xlog.h"
#include "libxipc/xrl_cmd_map.hh"
class XrlPimTargetBase {
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.
*/
XrlPimTargetBase(XrlCmdMap* cmds = 0);
/**
* Destructor.
*
* Dissociates instance commands from command map.
*/
virtual ~XrlPimTargetBase();
/**
* 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 "pim/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:
*
* Process a CLI command.
*
* @param processor_name the processor name for this command.
*
* @param cli_term_name the terminal name the command was entered from.
*
* @param cli_session_id the CLI session ID the command was entered from.
*
* @param command_name the command name to process.
*
* @param command_args the command arguments to process.
*
* @param ret_processor_name the processor name to return back to the CLI.
*
* @param ret_cli_term_name the terminal name to return back.
*
* @param ret_cli_session_id the CLI session ID to return back.
*
* @param ret_command_output the command output to return back.
*/
virtual XrlCmdError cli_processor_0_1_process_command(
// Input values,
const string& processor_name,
const string& cli_term_name,
const uint32_t& cli_session_id,
const string& command_name,
const string& command_args,
// Output values,
string& ret_processor_name,
string& ret_cli_term_name,
uint32_t& ret_cli_session_id,
string& ret_command_output) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Announce target birth to observer.
*
* @param target_class the target class name.
*
* @param target_instance the target instance name.
*/
virtual XrlCmdError finder_event_observer_0_1_xrl_target_birth(
// Input values,
const string& target_class,
const string& target_instance) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Announce target death to observer.
*
* @param target_class the target class name.
*
* @param target_instance the target instance name.
*/
virtual XrlCmdError finder_event_observer_0_1_xrl_target_death(
// Input values,
const string& target_class,
const string& target_instance) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add a new vif.
*
* @param vif_name the name of the new vif.
*
* @param vif_index the index of the new vif.
*/
virtual XrlCmdError mfea_client_0_1_new_vif(
// Input values,
const string& vif_name,
const uint32_t& vif_index) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete an existing vif.
*
* @param vif_name the name of the vif to delete.
*/
virtual XrlCmdError mfea_client_0_1_delete_vif(
// Input values,
const string& vif_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add an address to a vif.
*
* @param vif_name the name of the vif.
*
* @param addr the unicast address to add.
*
* @param subnet the subnet address to add.
*
* @param broadcast the broadcast address (when applicable).
*
* @param peer the peer address (when applicable).
*/
virtual XrlCmdError mfea_client_0_1_add_vif_addr4(
// Input values,
const string& vif_name,
const IPv4& addr,
const IPv4Net& subnet,
const IPv4& broadcast,
const IPv4& peer) = 0;
virtual XrlCmdError mfea_client_0_1_add_vif_addr6(
// Input values,
const string& vif_name,
const IPv6& addr,
const IPv6Net& subnet,
const IPv6& broadcast,
const IPv6& peer) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete an address from a vif.
*
* @param vif_name the name of the vif.
*
* @param addr the unicast address to delete.
*/
virtual XrlCmdError mfea_client_0_1_delete_vif_addr4(
// Input values,
const string& vif_name,
const IPv4& addr) = 0;
virtual XrlCmdError mfea_client_0_1_delete_vif_addr6(
// Input values,
const string& vif_name,
const IPv6& addr) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Set flags to a vif.
*
* @param vif_name the name of the vif.
*
* @param is_pim_register true if this is a PIM Register vif.
*
* @param is_p2p true if this is a point-to-point vif.
*
* @param is_loopback true if this is a loopback interface.
*
* @param is_multicast true if the vif is multicast-capable.
*
* @param is_broadcast true if the vif is broadcast-capable.
*
* @param is_up true if the vif is UP and running.
*/
virtual XrlCmdError mfea_client_0_1_set_vif_flags(
// Input values,
const string& vif_name,
const bool& is_pim_register,
const bool& is_p2p,
const bool& is_loopback,
const bool& is_multicast,
const bool& is_broadcast,
const bool& is_up) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Complete all transactions with vif information.
*/
virtual XrlCmdError mfea_client_0_1_set_all_vifs_done() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Test if the vif setup is completed.
*
* @param is_completed if true the vif setup is completed.
*/
virtual XrlCmdError mfea_client_0_1_is_vif_setup_completed(
// Output values,
bool& is_completed) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Receive a protocol message from the MFEA.
*
* @param xrl_sender_name the XRL name of the originator of this XRL.
*
* @param protocol_name the name of the protocol that sends a message.
*
* @param protocol_id the ID of the protocol that sends a message (both
* sides must agree on the particular values).
*
* @param vif_name the name of the vif the message was received on.
*
* @param vif_index the index of the vif the message was received on.
*
* @param source_address the address of the sender.
*
* @param dest_address the destination address.
*
* @param ip_ttl the TTL of the received IP packet. If it has a negative
* value, it should be ignored.
*
* @param ip_tos the TOS of the received IP packet. If it has a negative
* value, it should be ignored.
*
* @param is_router_alert if true, the IP Router Alert option in the IP
* packet was set (when applicable).
*
* @param protocol_message the protocol message.
*/
virtual XrlCmdError mfea_client_0_1_recv_protocol_message4(
// Input values,
const string& xrl_sender_name,
const string& protocol_name,
const uint32_t& protocol_id,
const string& vif_name,
const uint32_t& vif_index,
const IPv4& source_address,
const IPv4& dest_address,
const int32_t& ip_ttl,
const int32_t& ip_tos,
const bool& is_router_alert,
const vector<uint8_t>& protocol_message) = 0;
virtual XrlCmdError mfea_client_0_1_recv_protocol_message6(
// Input values,
const string& xrl_sender_name,
const string& protocol_name,
const uint32_t& protocol_id,
const string& vif_name,
const uint32_t& vif_index,
const IPv6& source_address,
const IPv6& dest_address,
const int32_t& ip_ttl,
const int32_t& ip_tos,
const bool& is_router_alert,
const vector<uint8_t>& protocol_message) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Receive a kernel signal message from the MFEA.
*
* @param xrl_sender_name the XRL name of the originator of this XRL.
*
* @param protocol_name the name of the protocol that sends a message.
*
* @param protocol_id the ID of the protocol that sends a message (both
* sides must agree on the particular values).
*
* @param message_type the type of the kernel signal message (TODO:
* integer for now: the particular types are well-known by both sides).
*
* @param vif_name the name of the vif the message was received on.
*
* @param vif_index the index of the vif the message was received on.
*
* @param source_address the address of the sender.
*
* @param dest_address the destination address.
*
* @param protocol_message the protocol message.
*/
virtual XrlCmdError mfea_client_0_1_recv_kernel_signal_message4(
// Input values,
const string& xrl_sender_name,
const string& protocol_name,
const uint32_t& protocol_id,
const uint32_t& message_type,
const string& vif_name,
const uint32_t& vif_index,
const IPv4& source_address,
const IPv4& dest_address,
const vector<uint8_t>& protocol_message) = 0;
virtual XrlCmdError mfea_client_0_1_recv_kernel_signal_message6(
// Input values,
const string& xrl_sender_name,
const string& protocol_name,
const uint32_t& protocol_id,
const uint32_t& message_type,
const string& vif_name,
const uint32_t& vif_index,
const IPv6& source_address,
const IPv6& dest_address,
const vector<uint8_t>& protocol_message) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* A signal that a dataflow-related pre-condition is true.
*
* @param xrl_sender_name the XRL name of the originator of this XRL.
*
* @param source_address the source address of the dataflow.
*
* @param group_address the group address of the dataflow.
*
* @param threshold_interval_sec the number of seconds in the interval
* requested for measurement.
*
* @param threshold_interval_usec the number of microseconds in the
* interval requested for measurement.
*
* @param measured_interval_sec the number of seconds in the last measured
* interval that has triggered the signal.
*
* @param measured_interval_usec the number of microseconds in the last
* measured interval that has triggered the signal.
*
* @param threshold_packets the threshold value to trigger a signal (in
* number of packets).
*
* @param threshold_bytes the threshold value to trigger a signal (in
* bytes).
*
* @param measured_packets the number of packets measured within the
* measured interval.
*
* @param measured_bytes the number of bytes measured within the measured
* interval.
*
* @param is_threshold_in_packets if true, threshold_packets is valid.
*
* @param is_threshold_in_bytes if true, threshold_bytes is valid.
*
* @param is_geq_upcall if true, the operation for comparison is ">=".
*
* @param is_leq_upcall if true, the operation for comparison is "<=".
*/
virtual XrlCmdError mfea_client_0_1_recv_dataflow_signal4(
// Input values,
const string& xrl_sender_name,
const IPv4& source_address,
const IPv4& group_address,
const uint32_t& threshold_interval_sec,
const uint32_t& threshold_interval_usec,
const uint32_t& measured_interval_sec,
const uint32_t& measured_interval_usec,
const uint32_t& threshold_packets,
const uint32_t& threshold_bytes,
const uint32_t& measured_packets,
const uint32_t& measured_bytes,
const bool& is_threshold_in_packets,
const bool& is_threshold_in_bytes,
const bool& is_geq_upcall,
const bool& is_leq_upcall) = 0;
virtual XrlCmdError mfea_client_0_1_recv_dataflow_signal6(
// Input values,
const string& xrl_sender_name,
const IPv6& source_address,
const IPv6& group_address,
const uint32_t& threshold_interval_sec,
const uint32_t& threshold_interval_usec,
const uint32_t& measured_interval_sec,
const uint32_t& measured_interval_usec,
const uint32_t& threshold_packets,
const uint32_t& threshold_bytes,
const uint32_t& measured_packets,
const uint32_t& measured_bytes,
const bool& is_threshold_in_packets,
const bool& is_threshold_in_bytes,
const bool& is_geq_upcall,
const bool& is_leq_upcall) = 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 nexthop 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 admin_distance administrative distance of origin routing
* protocol.
*
* @param cookie value set by the requestor to identify redistribution
* source. Typical value is the originating protocol name.
*
* @param protocol_origin the name of the protocol that originated this
* routing entry.
*/
virtual XrlCmdError redist_transaction4_0_1_add_route(
// Input values,
const uint32_t& tid,
const IPv4Net& dst,
const IPv4& nexthop,
const string& ifname,
const string& vifname,
const uint32_t& metric,
const uint32_t& admin_distance,
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,
const string& protocol_origin) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete all routing entries.
*
* @param tid the transaction ID of this transaction.
*
* @param cookie value set by the requestor to identify redistribution
* source. Typical value is the originating protocol name.
*/
virtual XrlCmdError redist_transaction4_0_1_delete_all_routes(
// Input values,
const uint32_t& tid,
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 nexthop 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 admin_distance administrative distance of origin routing
* protocol.
*
* @param cookie value set by the requestor to identify redistribution
* source. Typical value is the originating protocol name.
*
* @param protocol_origin the name of the protocol that originated this
* routing entry.
*/
virtual XrlCmdError redist_transaction6_0_1_add_route(
// Input values,
const uint32_t& tid,
const IPv6Net& dst,
const IPv6& nexthop,
const string& ifname,
const string& vifname,
const uint32_t& metric,
const uint32_t& admin_distance,
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,
const string& protocol_origin) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Delete all routing entries.
*
* @param tid the transaction ID of this transaction.
*
* @param cookie value set by the requestor to identify redistribution
* source. Typical value is the originating protocol name.
*/
virtual XrlCmdError redist_transaction6_0_1_delete_all_routes(
// Input values,
const uint32_t& tid,
const string& cookie) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add/delete membership information.
*
* @param xrl_sender_name the XRL name of the originator of this XRL.
*
* @param vif_name the name of the new vif.
*
* @param vif_index the index of the new vif.
*
* @param source the source address that has been joined/left.
*
* @param group the group address that has been joined/left.
*/
virtual XrlCmdError mld6igmp_client_0_1_add_membership4(
// Input values,
const string& xrl_sender_name,
const string& vif_name,
const uint32_t& vif_index,
const IPv4& source,
const IPv4& group) = 0;
virtual XrlCmdError mld6igmp_client_0_1_add_membership6(
// Input values,
const string& xrl_sender_name,
const string& vif_name,
const uint32_t& vif_index,
const IPv6& source,
const IPv6& group) = 0;
virtual XrlCmdError mld6igmp_client_0_1_delete_membership4(
// Input values,
const string& xrl_sender_name,
const string& vif_name,
const uint32_t& vif_index,
const IPv4& source,
const IPv4& group) = 0;
virtual XrlCmdError mld6igmp_client_0_1_delete_membership6(
// Input values,
const string& xrl_sender_name,
const string& vif_name,
const uint32_t& vif_index,
const IPv6& source,
const IPv6& group) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Enable/disable/start/stop a PIM vif interface.
*
* @param vif_name the name of the vif to enable/disable/start/stop.
*
* @param enable if true, then enable the vif, otherwise disable it.
*/
virtual XrlCmdError pim_0_1_enable_vif(
// Input values,
const string& vif_name,
const bool& enable) = 0;
virtual XrlCmdError pim_0_1_start_vif(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_stop_vif(
// Input values,
const string& vif_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Enable/disable/start/stop all PIM vif interfaces.
*
* @param enable if true, then enable the vifs, otherwise disable them.
*/
virtual XrlCmdError pim_0_1_enable_all_vifs(
// Input values,
const bool& enable) = 0;
virtual XrlCmdError pim_0_1_start_all_vifs() = 0;
virtual XrlCmdError pim_0_1_stop_all_vifs() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Enable/disable/start/stop the PIM protocol.
*
* @param enable if true, then enable the PIM protocol, otherwise disable
* it.
*/
virtual XrlCmdError pim_0_1_enable_pim(
// Input values,
const bool& enable) = 0;
virtual XrlCmdError pim_0_1_start_pim() = 0;
virtual XrlCmdError pim_0_1_stop_pim() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Enable/disable/start/stop the PIM CLI access.
*
* @param enable if true, then enable the PIM CLI access, otherwise
* disable it.
*/
virtual XrlCmdError pim_0_1_enable_cli(
// Input values,
const bool& enable) = 0;
virtual XrlCmdError pim_0_1_start_cli() = 0;
virtual XrlCmdError pim_0_1_stop_cli() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Enable/disable/start/stop BSR.
*
* @param enable if true, then enable the BSR, otherwise disable it.
*/
virtual XrlCmdError pim_0_1_enable_bsr(
// Input values,
const bool& enable) = 0;
virtual XrlCmdError pim_0_1_start_bsr() = 0;
virtual XrlCmdError pim_0_1_stop_bsr() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add/delete scope zone.
*
* @param scope_zone_id the ID of the configured zone.
*
* @param vif_name the name of the vif to use as a bondary of the scope
* zone.
*/
virtual XrlCmdError pim_0_1_add_config_scope_zone_by_vif_name4(
// Input values,
const IPv4Net& scope_zone_id,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_add_config_scope_zone_by_vif_name6(
// Input values,
const IPv6Net& scope_zone_id,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_add_config_scope_zone_by_vif_addr4(
// Input values,
const IPv4Net& scope_zone_id,
const IPv4& vif_addr) = 0;
virtual XrlCmdError pim_0_1_add_config_scope_zone_by_vif_addr6(
// Input values,
const IPv6Net& scope_zone_id,
const IPv6& vif_addr) = 0;
virtual XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_name4(
// Input values,
const IPv4Net& scope_zone_id,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_name6(
// Input values,
const IPv6Net& scope_zone_id,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_addr4(
// Input values,
const IPv4Net& scope_zone_id,
const IPv4& vif_addr) = 0;
virtual XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_addr6(
// Input values,
const IPv6Net& scope_zone_id,
const IPv6& vif_addr) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add/delete candidate-BSR configuration.
*
* @param scope_zone_id the ID of the configured zone.
*
* @param is_scope_zone true if configuring administratively scoped zone.
*
* @param vif_name the name of the vif to use its address as a
* candidate-BSR.
*
* @param vif_addr the address of the vif to use as a candidate-BSR.
*
* @param bsr_priority the BSR priority (larger is better).
*
* @param hash_mask_len the hash mask length.
*/
virtual XrlCmdError pim_0_1_add_config_cand_bsr4(
// Input values,
const IPv4Net& scope_zone_id,
const bool& is_scope_zone,
const string& vif_name,
const IPv4& vif_addr,
const uint32_t& bsr_priority,
const uint32_t& hash_mask_len) = 0;
virtual XrlCmdError pim_0_1_add_config_cand_bsr6(
// Input values,
const IPv6Net& scope_zone_id,
const bool& is_scope_zone,
const string& vif_name,
const IPv6& vif_addr,
const uint32_t& bsr_priority,
const uint32_t& hash_mask_len) = 0;
virtual XrlCmdError pim_0_1_delete_config_cand_bsr4(
// Input values,
const IPv4Net& scope_zone_id,
const bool& is_scope_zone) = 0;
virtual XrlCmdError pim_0_1_delete_config_cand_bsr6(
// Input values,
const IPv6Net& scope_zone_id,
const bool& is_scope_zone) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add/delete Candidate-RP configuration.
*
* @param group_prefix the group prefix of the configured zone.
*
* @param is_scope_zone true if configuring administratively scoped zone.
*
* @param vif_name the name of the vif to use its address as a
* candidate-RP.
*
* @param vif_addr the address of the vif to use as a candidate-RP.
*
* @param rp_priority the Cand-RP priority (smaller is better).
*
* @param rp_holdtime the Cand-RP holdtime (in seconds).
*/
virtual XrlCmdError pim_0_1_add_config_cand_rp4(
// Input values,
const IPv4Net& group_prefix,
const bool& is_scope_zone,
const string& vif_name,
const IPv4& vif_addr,
const uint32_t& rp_priority,
const uint32_t& rp_holdtime) = 0;
virtual XrlCmdError pim_0_1_add_config_cand_rp6(
// Input values,
const IPv6Net& group_prefix,
const bool& is_scope_zone,
const string& vif_name,
const IPv6& vif_addr,
const uint32_t& rp_priority,
const uint32_t& rp_holdtime) = 0;
virtual XrlCmdError pim_0_1_delete_config_cand_rp4(
// Input values,
const IPv4Net& group_prefix,
const bool& is_scope_zone,
const string& vif_name,
const IPv4& vif_addr) = 0;
virtual XrlCmdError pim_0_1_delete_config_cand_rp6(
// Input values,
const IPv6Net& group_prefix,
const bool& is_scope_zone,
const string& vif_name,
const IPv6& vif_addr) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add/delete/complete static RP configuration.
*
* @param group_prefix the group prefix for the RP.
*
* @param rp_addr the RP address.
*
* @param rp_priority the RP priority (smaller is better).
*
* @param hash_mask_len the hash mask length used in computing an RP for a
* group. It should be same across all RPs. If set to zero, the default
* one will be used.
*/
virtual XrlCmdError pim_0_1_add_config_static_rp4(
// Input values,
const IPv4Net& group_prefix,
const IPv4& rp_addr,
const uint32_t& rp_priority,
const uint32_t& hash_mask_len) = 0;
virtual XrlCmdError pim_0_1_add_config_static_rp6(
// Input values,
const IPv6Net& group_prefix,
const IPv6& rp_addr,
const uint32_t& rp_priority,
const uint32_t& hash_mask_len) = 0;
virtual XrlCmdError pim_0_1_delete_config_static_rp4(
// Input values,
const IPv4Net& group_prefix,
const IPv4& rp_addr) = 0;
virtual XrlCmdError pim_0_1_delete_config_static_rp6(
// Input values,
const IPv6Net& group_prefix,
const IPv6& rp_addr) = 0;
virtual XrlCmdError pim_0_1_delete_config_all_static_group_prefixes_rp4(
// Input values,
const IPv4& rp_addr) = 0;
virtual XrlCmdError pim_0_1_delete_config_all_static_group_prefixes_rp6(
// Input values,
const IPv6& rp_addr) = 0;
virtual XrlCmdError pim_0_1_delete_config_all_static_rps() = 0;
virtual XrlCmdError pim_0_1_config_static_rp_done() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Get the configured protocol version per interface.
*
* @param vif_name the name of the vif to apply to.
*
* @param proto_version the protocol version.
*/
virtual XrlCmdError pim_0_1_get_vif_proto_version(
// Input values,
const string& vif_name,
// Output values,
uint32_t& proto_version) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Set the protocol version per interface.
*
* @param vif_name the name of the vif to apply to.
*
* @param proto_version the protocol version.
*/
virtual XrlCmdError pim_0_1_set_vif_proto_version(
// Input values,
const string& vif_name,
const uint32_t& proto_version) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Reset the protocol version per interface to its default value.
*
* @param vif_name the name of the vif to apply to.
*/
virtual XrlCmdError pim_0_1_reset_vif_proto_version(
// Input values,
const string& vif_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Get the IP Router Alert option check per interface for received
* packets.
*
* @param vif_name the name of the vif to apply to.
*
* @param enabled if true, then the IP Router Alert option check was
* enabled, otherwise it was disabled.
*/
virtual XrlCmdError pim_0_1_get_vif_ip_router_alert_option_check(
// Input values,
const string& vif_name,
// Output values,
bool& enabled) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Set the IP Router Alert option check per interface for received
* packets.
*
* @param vif_name the name of the vif to apply to.
*
* @param enable if true, then enable the IP Router Alert option check,
* otherwise disable it.
*/
virtual XrlCmdError pim_0_1_set_vif_ip_router_alert_option_check(
// Input values,
const string& vif_name,
const bool& enable) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Reset the IP Router Alert option check per interface for received
* packets to its default value.
*
* @param vif_name the name of the vif to apply to.
*/
virtual XrlCmdError pim_0_1_reset_vif_ip_router_alert_option_check(
// Input values,
const string& vif_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Configure PIM Hello-related metrics. The 'set_foo' XRLs set the
* particular values. The 'reset_foo' XRLs reset the metrics to their
* default values.
*
* @param vif_name the name of the vif to configure.
*
* @param hello_triggered_delay the Triggered_Hello_Delay (in seconds).
*/
virtual XrlCmdError pim_0_1_get_vif_hello_triggered_delay(
// Input values,
const string& vif_name,
// Output values,
uint32_t& hello_triggered_delay) = 0;
virtual XrlCmdError pim_0_1_set_vif_hello_triggered_delay(
// Input values,
const string& vif_name,
const uint32_t& hello_triggered_delay) = 0;
virtual XrlCmdError pim_0_1_reset_vif_hello_triggered_delay(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_get_vif_hello_period(
// Input values,
const string& vif_name,
// Output values,
uint32_t& hello_period) = 0;
virtual XrlCmdError pim_0_1_set_vif_hello_period(
// Input values,
const string& vif_name,
const uint32_t& hello_period) = 0;
virtual XrlCmdError pim_0_1_reset_vif_hello_period(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_get_vif_hello_holdtime(
// Input values,
const string& vif_name,
// Output values,
uint32_t& hello_holdtime) = 0;
virtual XrlCmdError pim_0_1_set_vif_hello_holdtime(
// Input values,
const string& vif_name,
const uint32_t& hello_holdtime) = 0;
virtual XrlCmdError pim_0_1_reset_vif_hello_holdtime(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_get_vif_dr_priority(
// Input values,
const string& vif_name,
// Output values,
uint32_t& dr_priority) = 0;
virtual XrlCmdError pim_0_1_set_vif_dr_priority(
// Input values,
const string& vif_name,
const uint32_t& dr_priority) = 0;
virtual XrlCmdError pim_0_1_reset_vif_dr_priority(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_get_vif_propagation_delay(
// Input values,
const string& vif_name,
// Output values,
uint32_t& propagation_delay) = 0;
virtual XrlCmdError pim_0_1_set_vif_propagation_delay(
// Input values,
const string& vif_name,
const uint32_t& propagation_delay) = 0;
virtual XrlCmdError pim_0_1_reset_vif_propagation_delay(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_get_vif_override_interval(
// Input values,
const string& vif_name,
// Output values,
uint32_t& override_interval) = 0;
virtual XrlCmdError pim_0_1_set_vif_override_interval(
// Input values,
const string& vif_name,
const uint32_t& override_interval) = 0;
virtual XrlCmdError pim_0_1_reset_vif_override_interval(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_get_vif_is_tracking_support_disabled(
// Input values,
const string& vif_name,
// Output values,
bool& is_tracking_support_disabled) = 0;
virtual XrlCmdError pim_0_1_set_vif_is_tracking_support_disabled(
// Input values,
const string& vif_name,
const bool& is_tracking_support_disabled) = 0;
virtual XrlCmdError pim_0_1_reset_vif_is_tracking_support_disabled(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_get_vif_accept_nohello_neighbors(
// Input values,
const string& vif_name,
// Output values,
bool& accept_nohello_neighbors) = 0;
virtual XrlCmdError pim_0_1_set_vif_accept_nohello_neighbors(
// Input values,
const string& vif_name,
const bool& accept_nohello_neighbors) = 0;
virtual XrlCmdError pim_0_1_reset_vif_accept_nohello_neighbors(
// Input values,
const string& vif_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Configure PIM Join/Prune-related metrics. The 'set_foo' XRLs set the
* particular values. The 'reset_foo' XRLs reset the metrics to their
* default values.
*
* @param vif_name the name of the vif to configure.
*
* @param join_prune_period the period between Join/Prune messages.
*/
virtual XrlCmdError pim_0_1_get_vif_join_prune_period(
// Input values,
const string& vif_name,
// Output values,
uint32_t& join_prune_period) = 0;
virtual XrlCmdError pim_0_1_set_vif_join_prune_period(
// Input values,
const string& vif_name,
const uint32_t& join_prune_period) = 0;
virtual XrlCmdError pim_0_1_reset_vif_join_prune_period(
// Input values,
const string& vif_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Configure SPT-switch threshold. The 'set_foo' XRLs set the particular
* values. The 'reset_foo' XRLs reset the metrics to their default values.
*
* @param is_enabled if true, enable SPT-switch, otherwise disable it.
*
* @param interval_sec if the SPT-switch is enabled, the interval (in
* number of seconds) to measure the bandwidth to consider whether to
* switch to the SPT.
*/
virtual XrlCmdError pim_0_1_get_switch_to_spt_threshold(
// Output values,
bool& is_enabled,
uint32_t& interval_sec,
uint32_t& bytes) = 0;
virtual XrlCmdError pim_0_1_set_switch_to_spt_threshold(
// Input values,
const bool& is_enabled,
const uint32_t& interval_sec,
const uint32_t& bytes) = 0;
virtual XrlCmdError pim_0_1_reset_switch_to_spt_threshold() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Add or delete an alternative subnet on a PIM vif. An alternative subnet
* is used to make incoming traffic with a non-local source address appear
* as it is coming from a local subnet. Note: add alternative subnets with
* extreme care, only if you know what you are really doing!
*
* @param vif_name the name of the vif to add or delete an alternative
* subnet.
*
* @param subnet the subnet address to add or delete.
*/
virtual XrlCmdError pim_0_1_add_alternative_subnet4(
// Input values,
const string& vif_name,
const IPv4Net& subnet) = 0;
virtual XrlCmdError pim_0_1_add_alternative_subnet6(
// Input values,
const string& vif_name,
const IPv6Net& subnet) = 0;
virtual XrlCmdError pim_0_1_delete_alternative_subnet4(
// Input values,
const string& vif_name,
const IPv4Net& subnet) = 0;
virtual XrlCmdError pim_0_1_delete_alternative_subnet6(
// Input values,
const string& vif_name,
const IPv6Net& subnet) = 0;
virtual XrlCmdError pim_0_1_remove_all_alternative_subnets(
// Input values,
const string& vif_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Enable/disable the PIM trace log for all operations.
*
* @param enable if true, then enable the trace log, otherwise disable it.
*/
virtual XrlCmdError pim_0_1_log_trace_all(
// Input values,
const bool& enable) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Test-related methods: add Join/Prune entries, and send them to a
* neighbor.
*/
virtual XrlCmdError pim_0_1_add_test_jp_entry4(
// Input values,
const IPv4& source_addr,
const IPv4& group_addr,
const uint32_t& group_mask_len,
const string& mrt_entry_type,
const string& action_jp,
const uint32_t& holdtime,
const bool& is_new_group) = 0;
virtual XrlCmdError pim_0_1_add_test_jp_entry6(
// Input values,
const IPv6& source_addr,
const IPv6& group_addr,
const uint32_t& group_mask_len,
const string& mrt_entry_type,
const string& action_jp,
const uint32_t& holdtime,
const bool& is_new_group) = 0;
virtual XrlCmdError pim_0_1_send_test_jp_entry4(
// Input values,
const string& vif_name,
const IPv4& nbr_addr) = 0;
virtual XrlCmdError pim_0_1_send_test_jp_entry6(
// Input values,
const string& vif_name,
const IPv6& nbr_addr) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Test-related methods: send an Assert message on an interface.
*
* @param vif_name the name of the vif to send the Assert on.
*
* @param source_addr the source address inside the Assert message.
*
* @param group_addr the group address inside the Assert message.
*
* @param rpt_bit the RPT-bit inside the Assert message.
*
* @param metric_preference the metric preference inside the Assert
* message.
*
* @param metric the metric inside the Assert message.
*/
virtual XrlCmdError pim_0_1_send_test_assert4(
// Input values,
const string& vif_name,
const IPv4& source_addr,
const IPv4& group_addr,
const bool& rpt_bit,
const uint32_t& metric_preference,
const uint32_t& metric) = 0;
virtual XrlCmdError pim_0_1_send_test_assert6(
// Input values,
const string& vif_name,
const IPv6& source_addr,
const IPv6& group_addr,
const bool& rpt_bit,
const uint32_t& metric_preference,
const uint32_t& metric) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Test-related methods: send Bootstrap and Cand-RP-Adv messages.
*
* @param zone_id_scope_zone_prefix the zone prefix of the zone ID.
*
* @param zone_id_is_scope_zone true if the zone is scoped.
*
* @param bsr_addr the address of the Bootstrap router.
*
* @param bsr_priority the priority of the Bootstrap router.
*
* @param hash_mask_len the hash mask length inside the Bootstrap
* messages.
*
* @param fragment_tag the fragment tag inside the Bootstrap messages.
*/
virtual XrlCmdError pim_0_1_add_test_bsr_zone4(
// Input values,
const IPv4Net& zone_id_scope_zone_prefix,
const bool& zone_id_is_scope_zone,
const IPv4& bsr_addr,
const uint32_t& bsr_priority,
const uint32_t& hash_mask_len,
const uint32_t& fragment_tag) = 0;
virtual XrlCmdError pim_0_1_add_test_bsr_zone6(
// Input values,
const IPv6Net& zone_id_scope_zone_prefix,
const bool& zone_id_is_scope_zone,
const IPv6& bsr_addr,
const uint32_t& bsr_priority,
const uint32_t& hash_mask_len,
const uint32_t& fragment_tag) = 0;
virtual XrlCmdError pim_0_1_add_test_bsr_group_prefix4(
// Input values,
const IPv4Net& zone_id_scope_zone_prefix,
const bool& zone_id_is_scope_zone,
const IPv4Net& group_prefix,
const bool& is_scope_zone,
const uint32_t& expected_rp_count) = 0;
virtual XrlCmdError pim_0_1_add_test_bsr_group_prefix6(
// Input values,
const IPv6Net& zone_id_scope_zone_prefix,
const bool& zone_id_is_scope_zone,
const IPv6Net& group_prefix,
const bool& is_scope_zone,
const uint32_t& expected_rp_count) = 0;
virtual XrlCmdError pim_0_1_add_test_bsr_rp4(
// Input values,
const IPv4Net& zone_id_scope_zone_prefix,
const bool& zone_id_is_scope_zone,
const IPv4Net& group_prefix,
const IPv4& rp_addr,
const uint32_t& rp_priority,
const uint32_t& rp_holdtime) = 0;
virtual XrlCmdError pim_0_1_add_test_bsr_rp6(
// Input values,
const IPv6Net& zone_id_scope_zone_prefix,
const bool& zone_id_is_scope_zone,
const IPv6Net& group_prefix,
const IPv6& rp_addr,
const uint32_t& rp_priority,
const uint32_t& rp_holdtime) = 0;
virtual XrlCmdError pim_0_1_send_test_bootstrap(
// Input values,
const string& vif_name) = 0;
virtual XrlCmdError pim_0_1_send_test_bootstrap_by_dest4(
// Input values,
const string& vif_name,
const IPv4& dest_addr) = 0;
virtual XrlCmdError pim_0_1_send_test_bootstrap_by_dest6(
// Input values,
const string& vif_name,
const IPv6& dest_addr) = 0;
virtual XrlCmdError pim_0_1_send_test_cand_rp_adv() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Retrieve information about all PIM neighbors.
*
* @param nbrs_number the number of PIM neighbors
*
* @param vifs the list of vif names for all neighbors (one vif name per
* neighbor).
*
* @param pim_versions the list of PIM protocol versions for all neighbors
* (one number per neighbor).
*
* @param dr_priorities the list of DR priorities of all neighbors (one
* number per neighbor).
*
* @param holdtimes the list of configured holdtimes (in seconds) of all
* neighbors (one number per neighbor).
*
* @param timeouts the list of timeout values (in seconds) of all
* neighbors (one number per neighbor).
*
* @param uptimes the list of uptime values (in seconds) of all neighbors
* (one number per neighbor).
*/
virtual XrlCmdError pim_0_1_pimstat_neighbors4(
// Output values,
uint32_t& nbrs_number,
XrlAtomList& vifs,
XrlAtomList& addresses,
XrlAtomList& pim_versions,
XrlAtomList& dr_priorities,
XrlAtomList& holdtimes,
XrlAtomList& timeouts,
XrlAtomList& uptimes) = 0;
virtual XrlCmdError pim_0_1_pimstat_neighbors6(
// Output values,
uint32_t& nbrs_number,
XrlAtomList& vifs,
XrlAtomList& addresses,
XrlAtomList& pim_versions,
XrlAtomList& dr_priorities,
XrlAtomList& holdtimes,
XrlAtomList& timeouts,
XrlAtomList& uptimes) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Retrieve information about PIM interfaces.
*
* @param vif_name the name of the vif to retrieve information about.
*
* @param pim_version the PIM protocol version on that vif.
*
* @param is_dr true if this router is the DR for the subnet the vif is
* connected to.
*
* @param dr_priority the DR priority configured on that vif.
*
* @param dr_address the address of the DR for the subnet the vif is
* connected to.
*
* @param pim_nbrs_number the number of PIM neighbors on the subnet the
* vif is connected to.
*/
virtual XrlCmdError pim_0_1_pimstat_interface4(
// Input values,
const string& vif_name,
// Output values,
uint32_t& pim_version,
bool& is_dr,
uint32_t& dr_priority,
IPv4& dr_address,
uint32_t& pim_nbrs_number) = 0;
virtual XrlCmdError pim_0_1_pimstat_interface6(
// Input values,
const string& vif_name,
// Output values,
uint32_t& pim_version,
bool& is_dr,
uint32_t& dr_priority,
IPv6& dr_address,
uint32_t& pim_nbrs_number) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Retrieve information about the RP-Set.
*
* @param rps_number the number of RPs in the RP-Set.
*
* @param addresses the list of addresses of all RPs (one IPv4 or IPv6
* address per RP).
*
* @param types the list of textual description about the origin of each
* RP (one keyword per RP: "bootstrap", "static" or "unknown").
*
* @param priorities the list of RP priorities of all RPs (one number per
* RP).
*
* @param holdtimes the list of configured holdtimes (in seconds) of all
* RPs (one number per RP).
*
* @param timeouts the list of timeout values (in seconds) of all RPs (one
* number per RP).
*
* @param group_prefixes the list of all group prefixes (one network
* IPv4Net or IPv6Net address per RP). Note that if an RP is configured
* for more than one group prefixes, there will be a number of entries for
* that RP: one per group prefix.
*/
virtual XrlCmdError pim_0_1_pimstat_rps4(
// Output values,
uint32_t& rps_number,
XrlAtomList& addresses,
XrlAtomList& types,
XrlAtomList& priorities,
XrlAtomList& holdtimes,
XrlAtomList& timeouts,
XrlAtomList& group_prefixes) = 0;
virtual XrlCmdError pim_0_1_pimstat_rps6(
// Output values,
uint32_t& rps_number,
XrlAtomList& addresses,
XrlAtomList& types,
XrlAtomList& priorities,
XrlAtomList& holdtimes,
XrlAtomList& timeouts,
XrlAtomList& group_prefixes) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Clear all statistics
*/
virtual XrlCmdError pim_0_1_clear_pim_statistics() = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Clear all statistics on a specific interface.
*
* @param vif_name the interface to clear the statistics of.
*/
virtual XrlCmdError pim_0_1_clear_pim_statistics_per_vif(
// Input values,
const string& vif_name) = 0;
/**
* Pure-virtual function that needs to be implemented to:
*
* Statistics-related counters and values
*/
virtual XrlCmdError pim_0_1_pimstat_hello_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_hello_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_hello_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_assert_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_assert_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_assert_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_received(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_sent(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_rx_errors(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_unknown_type_messages(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_unknown_version_messages(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_neighbor_unknown_messages(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bad_length_messages(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bad_checksum_messages(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bad_receive_interface_messages(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_interface_disabled_messages(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_register_not_rp(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rp_filtered_source(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_unknown_register_stop(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_prune_no_state(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_graft_graft_ack_no_state(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_graft_on_upstream_interface(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_candidate_rp_not_bsr(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_bsr_when_bsr(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_bsr_not_rpf_interface(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_unknown_hello_option(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_data_no_state(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_rp_no_state(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_aggregate(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_malformed_packet(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_no_rp(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_no_route_upstream(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rp_mismatch(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rpf_neighbor_unknown(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_rp(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_prune_rp(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_wc(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_prune_wc(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_sg(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_prune_sg(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_sg_rpt(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_prune_sg_rpt(
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_hello_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_hello_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_hello_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_register_stop_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_join_prune_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bootstrap_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_assert_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_assert_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_assert_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_graft_ack_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_received_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_sent_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_candidate_rp_messages_rx_errors_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_unknown_type_messages_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_unknown_version_messages_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_neighbor_unknown_messages_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bad_length_messages_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bad_checksum_messages_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_bad_receive_interface_messages_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_interface_disabled_messages_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_register_not_rp_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rp_filtered_source_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_unknown_register_stop_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_prune_no_state_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_graft_graft_ack_no_state_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_graft_on_upstream_interface_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_candidate_rp_not_bsr_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_bsr_when_bsr_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_bsr_not_rpf_interface_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_unknown_hello_option_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_data_no_state_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_rp_no_state_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_aggregate_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_malformed_packet_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_no_rp_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_no_route_upstream_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rp_mismatch_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rpf_neighbor_unknown_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_rp_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_prune_rp_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_wc_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_prune_wc_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_sg_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_prune_sg_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_join_sg_rpt_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 0;
virtual XrlCmdError pim_0_1_pimstat_rx_prune_sg_rpt_per_vif(
// Input values,
const string& vif_name,
// Output values,
uint32_t& value) = 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_cli_processor_0_1_process_command(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_finder_event_observer_0_1_xrl_target_birth(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_finder_event_observer_0_1_xrl_target_death(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_new_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_delete_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_add_vif_addr4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_add_vif_addr6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_delete_vif_addr4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_delete_vif_addr6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_set_vif_flags(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_set_all_vifs_done(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_is_vif_setup_completed(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_recv_protocol_message4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_recv_protocol_message6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_recv_kernel_signal_message4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_recv_kernel_signal_message6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_recv_dataflow_signal4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mfea_client_0_1_recv_dataflow_signal6(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_transaction4_0_1_delete_all_routes(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_redist_transaction6_0_1_delete_all_routes(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mld6igmp_client_0_1_add_membership4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mld6igmp_client_0_1_add_membership6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mld6igmp_client_0_1_delete_membership4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_mld6igmp_client_0_1_delete_membership6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_enable_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_start_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_stop_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_enable_all_vifs(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_start_all_vifs(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_stop_all_vifs(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_enable_pim(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_start_pim(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_stop_pim(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_enable_cli(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_start_cli(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_stop_cli(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_enable_bsr(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_start_bsr(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_stop_bsr(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_scope_zone_by_vif_name4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_scope_zone_by_vif_name6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_scope_zone_by_vif_addr4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_scope_zone_by_vif_addr6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_scope_zone_by_vif_name4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_scope_zone_by_vif_name6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_scope_zone_by_vif_addr4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_scope_zone_by_vif_addr6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_cand_bsr4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_cand_bsr6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_cand_bsr4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_cand_bsr6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_cand_rp4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_cand_rp6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_cand_rp4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_cand_rp6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_static_rp4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_config_static_rp6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_static_rp4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_static_rp6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_all_static_group_prefixes_rp4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_all_static_group_prefixes_rp6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_config_all_static_rps(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_config_static_rp_done(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_proto_version(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_proto_version(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_proto_version(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_ip_router_alert_option_check(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_ip_router_alert_option_check(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_ip_router_alert_option_check(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_hello_triggered_delay(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_hello_triggered_delay(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_hello_triggered_delay(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_hello_period(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_hello_period(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_hello_period(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_hello_holdtime(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_hello_holdtime(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_hello_holdtime(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_dr_priority(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_dr_priority(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_dr_priority(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_propagation_delay(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_propagation_delay(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_propagation_delay(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_override_interval(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_override_interval(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_override_interval(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_is_tracking_support_disabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_is_tracking_support_disabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_is_tracking_support_disabled(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_accept_nohello_neighbors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_accept_nohello_neighbors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_accept_nohello_neighbors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_vif_join_prune_period(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_vif_join_prune_period(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_vif_join_prune_period(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_get_switch_to_spt_threshold(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_set_switch_to_spt_threshold(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_reset_switch_to_spt_threshold(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_alternative_subnet4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_alternative_subnet6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_alternative_subnet4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_delete_alternative_subnet6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_remove_all_alternative_subnets(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_log_trace_all(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_test_jp_entry4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_test_jp_entry6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_send_test_jp_entry4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_send_test_jp_entry6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_send_test_assert4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_send_test_assert6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_test_bsr_zone4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_test_bsr_zone6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_test_bsr_group_prefix4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_test_bsr_group_prefix6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_test_bsr_rp4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_add_test_bsr_rp6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_send_test_bootstrap(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_send_test_bootstrap_by_dest4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_send_test_bootstrap_by_dest6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_send_test_cand_rp_adv(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_neighbors4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_neighbors6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_interface4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_interface6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rps4(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rps6(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_clear_pim_statistics(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_clear_pim_statistics_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_hello_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_hello_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_hello_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_stop_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_stop_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_stop_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_join_prune_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_join_prune_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_join_prune_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bootstrap_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bootstrap_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bootstrap_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_assert_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_assert_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_assert_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_ack_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_ack_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_ack_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_candidate_rp_messages_received(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_candidate_rp_messages_sent(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_candidate_rp_messages_rx_errors(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_unknown_type_messages(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_unknown_version_messages(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_neighbor_unknown_messages(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bad_length_messages(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bad_checksum_messages(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bad_receive_interface_messages(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_interface_disabled_messages(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_register_not_rp(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rp_filtered_source(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_unknown_register_stop(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_prune_no_state(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_graft_graft_ack_no_state(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_graft_on_upstream_interface(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_candidate_rp_not_bsr(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_bsr_when_bsr(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_bsr_not_rpf_interface(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_unknown_hello_option(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_data_no_state(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_rp_no_state(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_aggregate(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_malformed_packet(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_no_rp(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_no_route_upstream(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rp_mismatch(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rpf_neighbor_unknown(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_rp(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_prune_rp(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_wc(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_prune_wc(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_sg(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_prune_sg(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_sg_rpt(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_prune_sg_rpt(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_hello_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_hello_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_hello_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_stop_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_stop_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_register_stop_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_join_prune_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_join_prune_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_join_prune_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bootstrap_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bootstrap_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bootstrap_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_assert_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_assert_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_assert_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_ack_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_ack_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_graft_ack_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_candidate_rp_messages_received_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_candidate_rp_messages_sent_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_candidate_rp_messages_rx_errors_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_unknown_type_messages_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_unknown_version_messages_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_neighbor_unknown_messages_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bad_length_messages_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bad_checksum_messages_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_bad_receive_interface_messages_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_interface_disabled_messages_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_register_not_rp_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rp_filtered_source_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_unknown_register_stop_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_prune_no_state_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_graft_graft_ack_no_state_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_graft_on_upstream_interface_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_candidate_rp_not_bsr_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_bsr_when_bsr_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_bsr_not_rpf_interface_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_unknown_hello_option_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_data_no_state_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_rp_no_state_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_aggregate_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_malformed_packet_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_no_rp_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_no_route_upstream_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rp_mismatch_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rpf_neighbor_unknown_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_rp_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_prune_rp_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_wc_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_prune_wc_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_sg_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_prune_sg_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_join_sg_rpt_per_vif(const XrlArgs& in, XrlArgs* out);
const XrlCmdError handle_pim_0_1_pimstat_rx_prune_sg_rpt_per_vif(const XrlArgs& in, XrlArgs* out);
void add_handlers();
void remove_handlers();
};
#endif /* __XRL_INTERFACES_PIM_BASE_HH__ */
Generated by: pavlin on possum.icir.org on Thu Mar 9 04:42:51 2006, using kdoc $.