xorp

XrlPimNode Class Reference

Inheritance diagram for XrlPimNode:
PimNode XrlStdRouter XrlPimTargetBase PimNodeCli ProtoNode< PimVif > IfMgrHintObserver ServiceChangeObserverBase XrlRouter ProtoNodeCli ProtoUnit XrlDispatcher XrlSender FinderClientObserver ProtoUnit ProtoState XrlCmdMap ProtoState ServiceBase NONCOPYABLE ServiceBase BugCatcher BugCatcher

List of all members.

Classes

class  AddDeleteDataflowMonitor
 Class for handling the task of add/delete dataflow monitor requests. More...
class  AddDeleteMfc
 Class for handling the task of add/delete MFC requests. More...
class  JoinLeaveMulticastGroup
 Class for handling the task of join/leave multicast group requests. More...
class  RegisterUnregisterInterest
 Class for handling the task to register/unregister interest in the FEA or MFEA with the Finder. More...
class  RegisterUnregisterProtocol
 Class for handling the task to register/unregister with the MFEA as a protocol on an interface. More...
class  RegisterUnregisterReceiver
 Class for handling the task to register/unregister with the FEA as a receiver on an interface. More...
class  SendProtocolMessage
 Class for handling the task of sending protocol messages. More...
class  XrlTaskBase
 A base class for handling tasks for sending XRL requests. More...

Public Member Functions

 XrlPimNode (int family, xorp_module_id module_id, EventLoop &eventloop, const string &class_name, const string &finder_hostname, uint16_t finder_port, const string &finder_target, const string &fea_target, const string &mfea_target, const string &rib_target, const string &mld6igmp_target)
virtual void destruct_me ()
 Does real destruction work.
int startup ()
 Startup the node operation.
int shutdown ()
 Shutdown the node operation.
XrlRouterxrl_router ()
 Get a reference to the XrlRouter instance.
const XrlRouterxrl_router () const
 Get a const reference to the XrlRouter instance.
int enable_cli ()
int disable_cli ()
int start_cli ()
int stop_cli ()
int enable_pim ()
int disable_pim ()
int start_pim ()
int stop_pim ()
int enable_bsr ()
 Enable the PIM Bootstrap mechanism.
int disable_bsr ()
 Disable the PIM Bootstrap mechanism.
int start_bsr ()
 Start the Bootstrap mechanism.
int stop_bsr ()
 Stop the Bootstrap mechanism.
void send_register_unregister_interest ()
void send_register_unregister_receiver ()
void send_register_unregister_protocol ()
void send_join_leave_multicast_group ()
void send_protocol_message ()
 Send a protocol message through the FEA.
void send_add_delete_mfc ()
void send_add_delete_dataflow_monitor ()

Protected Member Functions

XrlCmdError common_0_1_get_target_name (string &name)
 Get name of Xrl Target.
XrlCmdError common_0_1_get_version (string &version)
 Get version string from Xrl Target.
XrlCmdError common_0_1_get_status (uint32_t &status, string &reason)
 Get status from Xrl Target.
XrlCmdError common_0_1_shutdown ()
 Shutdown cleanly.
XrlCmdError common_0_1_startup ()
 Pure-virtual function that needs to be implemented to:
XrlCmdError finder_event_observer_0_1_xrl_target_birth (const string &target_class, const string &target_instance)
 Announce target birth to observer.
XrlCmdError finder_event_observer_0_1_xrl_target_death (const string &target_class, const string &target_instance)
 Announce target death to observer.
XrlCmdError cli_processor_0_1_process_command (const string &processor_name, const string &cli_term_name, const uint32_t &cli_session_id, const string &command_name, const string &command_args, string &ret_processor_name, string &ret_cli_term_name, uint32_t &ret_cli_session_id, string &ret_command_output)
 Process a CLI command.
XrlCmdError raw_packet4_client_0_1_recv (const string &if_name, const string &vif_name, const IPv4 &src_address, const IPv4 &dst_address, const uint32_t &ip_protocol, const int32_t &ip_ttl, const int32_t &ip_tos, const bool &ip_router_alert, const bool &ip_internet_control, const vector< uint8_t > &payload)
 Receive an IPv4 packet from a raw socket.
XrlCmdError mfea_client_0_1_recv_kernel_signal_message4 (const string &xrl_sender_name, 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)
 Receive a kernel signal message from the MFEA.
XrlCmdError mfea_client_0_1_recv_dataflow_signal4 (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)
 A signal that a dataflow-related pre-condition is true.
XrlCmdError redist_transaction4_0_1_start_transaction (uint32_t &tid)
 Start transaction.
XrlCmdError redist_transaction4_0_1_commit_transaction (const uint32_t &tid)
 Commit transaction.
XrlCmdError redist_transaction4_0_1_abort_transaction (const uint32_t &tid)
 Abort transaction.
XrlCmdError redist_transaction4_0_1_add_route (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)
 Add/delete a routing entry.
XrlCmdError redist_transaction4_0_1_delete_route (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)
XrlCmdError redist_transaction4_0_1_delete_all_routes (const uint32_t &tid, const string &cookie)
 Delete all routing entries.
XrlCmdError redist_transaction6_0_1_commit_transaction (const uint32_t &tid)
 Commit transaction.
XrlCmdError redist_transaction6_0_1_abort_transaction (const uint32_t &tid)
 Abort transaction.
XrlCmdError redist_transaction6_0_1_add_route (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)
 Add/delete a routing entry.
XrlCmdError redist_transaction6_0_1_delete_route (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)
XrlCmdError redist_transaction6_0_1_delete_all_routes (const uint32_t &tid, const string &cookie)
 Delete all routing entries.
XrlCmdError mld6igmp_client_0_1_add_membership4 (const string &xrl_sender_name, const string &vif_name, const uint32_t &vif_index, const IPv4 &source, const IPv4 &group)
 Add/delete membership information.
XrlCmdError mld6igmp_client_0_1_add_membership6 (const string &xrl_sender_name, const string &vif_name, const uint32_t &vif_index, const IPv6 &source, const IPv6 &group)
XrlCmdError mld6igmp_client_0_1_delete_membership4 (const string &xrl_sender_name, const string &vif_name, const uint32_t &vif_index, const IPv4 &source, const IPv4 &group)
XrlCmdError mld6igmp_client_0_1_delete_membership6 (const string &xrl_sender_name, const string &vif_name, const uint32_t &vif_index, const IPv6 &source, const IPv6 &group)
XrlCmdError pim_0_1_enable_vif (const string &vif_name, const bool &enable)
 Enable/disable/start/stop a PIM vif interface.
XrlCmdError pim_0_1_start_vif (const string &vif_name)
XrlCmdError pim_0_1_stop_vif (const string &vif_name)
XrlCmdError pim_0_1_enable_all_vifs (const bool &enable)
 Enable/disable/start/stop all PIM vif interfaces.
XrlCmdError pim_0_1_disable_all_vifs ()
XrlCmdError pim_0_1_start_all_vifs ()
XrlCmdError pim_0_1_stop_all_vifs ()
XrlCmdError pim_0_1_enable_pim (const bool &enable)
 Enable/disable/start/stop the PIM protocol.
XrlCmdError pim_0_1_start_pim ()
XrlCmdError pim_0_1_stop_pim ()
XrlCmdError pim_0_1_enable_cli (const bool &enable)
 Enable/disable/start/stop the PIM CLI access.
XrlCmdError pim_0_1_start_cli ()
XrlCmdError pim_0_1_stop_cli ()
XrlCmdError pim_0_1_enable_bsr (const bool &enable)
 Enable/disable/start/stop BSR.
XrlCmdError pim_0_1_start_bsr ()
XrlCmdError pim_0_1_stop_bsr ()
XrlCmdError pim_0_1_apply_bsr_changes ()
 Apply BSR configuration changes.
XrlCmdError pim_0_1_add_config_scope_zone_by_vif_name4 (const IPv4Net &scope_zone_id, const string &vif_name)
 Add/delete scope zone.
XrlCmdError pim_0_1_add_config_scope_zone_by_vif_name6 (const IPv6Net &scope_zone_id, const string &vif_name)
XrlCmdError pim_0_1_add_config_scope_zone_by_vif_addr4 (const IPv4Net &scope_zone_id, const IPv4 &vif_addr)
XrlCmdError pim_0_1_add_config_scope_zone_by_vif_addr6 (const IPv6Net &scope_zone_id, const IPv6 &vif_addr)
XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_name4 (const IPv4Net &scope_zone_id, const string &vif_name)
XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_name6 (const IPv6Net &scope_zone_id, const string &vif_name)
XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_addr4 (const IPv4Net &scope_zone_id, const IPv4 &vif_addr)
XrlCmdError pim_0_1_delete_config_scope_zone_by_vif_addr6 (const IPv6Net &scope_zone_id, const IPv6 &vif_addr)
XrlCmdError pim_0_1_add_config_cand_bsr4 (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)
 Add/delete candidate-BSR configuration.
XrlCmdError pim_0_1_add_config_cand_bsr6 (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)
XrlCmdError pim_0_1_delete_config_cand_bsr4 (const IPv4Net &scope_zone_id, const bool &is_scope_zone)
XrlCmdError pim_0_1_delete_config_cand_bsr6 (const IPv6Net &scope_zone_id, const bool &is_scope_zone)
XrlCmdError pim_0_1_add_config_cand_rp4 (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)
 Add/delete Candidate-RP configuration.
XrlCmdError pim_0_1_add_config_cand_rp6 (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)
XrlCmdError pim_0_1_delete_config_cand_rp4 (const IPv4Net &group_prefix, const bool &is_scope_zone, const string &vif_name, const IPv4 &vif_addr)
XrlCmdError pim_0_1_delete_config_cand_rp6 (const IPv6Net &group_prefix, const bool &is_scope_zone, const string &vif_name, const IPv6 &vif_addr)
XrlCmdError pim_0_1_add_config_static_rp4 (const IPv4Net &group_prefix, const IPv4 &rp_addr, const uint32_t &rp_priority, const uint32_t &hash_mask_len)
 Add/delete/complete static RP configuration.
XrlCmdError pim_0_1_add_config_static_rp6 (const IPv6Net &group_prefix, const IPv6 &rp_addr, const uint32_t &rp_priority, const uint32_t &hash_mask_len)
XrlCmdError pim_0_1_delete_config_static_rp4 (const IPv4Net &group_prefix, const IPv4 &rp_addr)
XrlCmdError pim_0_1_delete_config_static_rp6 (const IPv6Net &group_prefix, const IPv6 &rp_addr)
XrlCmdError pim_0_1_delete_config_all_static_group_prefixes_rp4 (const IPv4 &rp_addr)
XrlCmdError pim_0_1_delete_config_all_static_group_prefixes_rp6 (const IPv6 &rp_addr)
XrlCmdError pim_0_1_delete_config_all_static_rps ()
XrlCmdError pim_0_1_config_static_rp_done ()
XrlCmdError pim_0_1_get_vif_proto_version (const string &vif_name, uint32_t &proto_version)
 Get the configured protocol version per interface.
XrlCmdError pim_0_1_set_vif_proto_version (const string &vif_name, const uint32_t &proto_version)
 Set the protocol version per interface.
XrlCmdError pim_0_1_reset_vif_proto_version (const string &vif_name)
 Reset the protocol version per interface to its default value.
XrlCmdError pim_0_1_get_vif_hello_triggered_delay (const string &vif_name, uint32_t &hello_triggered_delay)
 Configure PIM Hello-related metrics.
XrlCmdError pim_0_1_set_vif_hello_triggered_delay (const string &vif_name, const uint32_t &hello_triggered_delay)
XrlCmdError pim_0_1_reset_vif_hello_triggered_delay (const string &vif_name)
XrlCmdError pim_0_1_get_vif_hello_period (const string &vif_name, uint32_t &hello_period)
XrlCmdError pim_0_1_set_vif_hello_period (const string &vif_name, const uint32_t &hello_period)
XrlCmdError pim_0_1_reset_vif_hello_period (const string &vif_name)
XrlCmdError pim_0_1_get_vif_hello_holdtime (const string &vif_name, uint32_t &hello_holdtime)
XrlCmdError pim_0_1_set_vif_hello_holdtime (const string &vif_name, const uint32_t &hello_holdtime)
XrlCmdError pim_0_1_reset_vif_hello_holdtime (const string &vif_name)
XrlCmdError pim_0_1_get_vif_dr_priority (const string &vif_name, uint32_t &dr_priority)
XrlCmdError pim_0_1_set_vif_dr_priority (const string &vif_name, const uint32_t &dr_priority)
XrlCmdError pim_0_1_reset_vif_dr_priority (const string &vif_name)
XrlCmdError pim_0_1_get_vif_propagation_delay (const string &vif_name, uint32_t &propagation_delay)
XrlCmdError pim_0_1_set_vif_propagation_delay (const string &vif_name, const uint32_t &propagation_delay)
XrlCmdError pim_0_1_reset_vif_propagation_delay (const string &vif_name)
XrlCmdError pim_0_1_get_vif_override_interval (const string &vif_name, uint32_t &override_interval)
XrlCmdError pim_0_1_set_vif_override_interval (const string &vif_name, const uint32_t &override_interval)
XrlCmdError pim_0_1_reset_vif_override_interval (const string &vif_name)
XrlCmdError pim_0_1_get_vif_is_tracking_support_disabled (const string &vif_name, bool &is_tracking_support_disabled)
XrlCmdError pim_0_1_set_vif_is_tracking_support_disabled (const string &vif_name, const bool &is_tracking_support_disabled)
XrlCmdError pim_0_1_reset_vif_is_tracking_support_disabled (const string &vif_name)
XrlCmdError pim_0_1_get_vif_accept_nohello_neighbors (const string &vif_name, bool &accept_nohello_neighbors)
XrlCmdError pim_0_1_set_vif_accept_nohello_neighbors (const string &vif_name, const bool &accept_nohello_neighbors)
XrlCmdError pim_0_1_reset_vif_accept_nohello_neighbors (const string &vif_name)
XrlCmdError pim_0_1_get_vif_join_prune_period (const string &vif_name, uint32_t &join_prune_period)
 Configure PIM Join/Prune-related metrics.
XrlCmdError pim_0_1_set_vif_join_prune_period (const string &vif_name, const uint32_t &join_prune_period)
XrlCmdError pim_0_1_reset_vif_join_prune_period (const string &vif_name)
XrlCmdError pim_0_1_get_switch_to_spt_threshold (bool &is_enabled, uint32_t &interval_sec, uint32_t &bytes)
 Configure SPT-switch threshold.
XrlCmdError pim_0_1_set_switch_to_spt_threshold (const bool &is_enabled, const uint32_t &interval_sec, const uint32_t &bytes)
XrlCmdError pim_0_1_reset_switch_to_spt_threshold ()
XrlCmdError pim_0_1_add_alternative_subnet4 (const string &vif_name, const IPv4Net &subnet)
 Add or delete an alternative subnet on a PIM vif.
XrlCmdError pim_0_1_add_alternative_subnet6 (const string &vif_name, const IPv6Net &subnet)
XrlCmdError pim_0_1_delete_alternative_subnet4 (const string &vif_name, const IPv4Net &subnet)
XrlCmdError pim_0_1_delete_alternative_subnet6 (const string &vif_name, const IPv6Net &subnet)
XrlCmdError pim_0_1_remove_all_alternative_subnets (const string &vif_name)
XrlCmdError pim_0_1_log_trace_all (const bool &enable)
 Enable/disable the PIM trace log for all operations.
XrlCmdError pim_0_1_add_test_jp_entry4 (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)
 Test-related methods: add Join/Prune entries, and send them to a neighbor.
XrlCmdError pim_0_1_add_test_jp_entry6 (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)
XrlCmdError pim_0_1_send_test_jp_entry4 (const string &vif_name, const IPv4 &nbr_addr)
XrlCmdError pim_0_1_send_test_jp_entry6 (const string &vif_name, const IPv6 &nbr_addr)
XrlCmdError pim_0_1_send_test_assert4 (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)
 Test-related methods: send an Assert message on an interface.
XrlCmdError pim_0_1_send_test_assert6 (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)
XrlCmdError pim_0_1_add_test_bsr_zone4 (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)
 Test-related methods: send Bootstrap and Cand-RP-Adv messages.
XrlCmdError pim_0_1_add_test_bsr_zone6 (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)
XrlCmdError pim_0_1_add_test_bsr_group_prefix4 (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)
XrlCmdError pim_0_1_add_test_bsr_group_prefix6 (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)
XrlCmdError pim_0_1_add_test_bsr_rp4 (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)
XrlCmdError pim_0_1_add_test_bsr_rp6 (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)
XrlCmdError pim_0_1_send_test_bootstrap (const string &vif_name)
XrlCmdError pim_0_1_send_test_bootstrap_by_dest4 (const string &vif_name, const IPv4 &dest_addr)
XrlCmdError pim_0_1_send_test_bootstrap_by_dest6 (const string &vif_name, const IPv6 &dest_addr)
XrlCmdError pim_0_1_send_test_cand_rp_adv ()
XrlCmdError pim_0_1_pimstat_neighbors4 (uint32_t &nbrs_number, XrlAtomList &vifs, XrlAtomList &addresses, XrlAtomList &pim_versions, XrlAtomList &dr_priorities, XrlAtomList &holdtimes, XrlAtomList &timeouts, XrlAtomList &uptimes)
 Retrieve information about all PIM neighbors.
XrlCmdError pim_0_1_pimstat_neighbors6 (uint32_t &nbrs_number, XrlAtomList &vifs, XrlAtomList &addresses, XrlAtomList &pim_versions, XrlAtomList &dr_priorities, XrlAtomList &holdtimes, XrlAtomList &timeouts, XrlAtomList &uptimes)
XrlCmdError pim_0_1_pimstat_interface4 (const string &vif_name, uint32_t &pim_version, bool &is_dr, uint32_t &dr_priority, IPv4 &dr_address, uint32_t &pim_nbrs_number)
 Retrieve information about PIM interfaces.
XrlCmdError pim_0_1_pimstat_interface6 (const string &vif_name, uint32_t &pim_version, bool &is_dr, uint32_t &dr_priority, IPv6 &dr_address, uint32_t &pim_nbrs_number)
XrlCmdError pim_0_1_pimstat_rps4 (uint32_t &rps_number, XrlAtomList &addresses, XrlAtomList &types, XrlAtomList &priorities, XrlAtomList &holdtimes, XrlAtomList &timeouts, XrlAtomList &group_prefixes)
 Retrieve information about the RP-Set.
XrlCmdError pim_0_1_pimstat_rps6 (uint32_t &rps_number, XrlAtomList &addresses, XrlAtomList &types, XrlAtomList &priorities, XrlAtomList &holdtimes, XrlAtomList &timeouts, XrlAtomList &group_prefixes)
XrlCmdError pim_0_1_clear_pim_statistics ()
 Clear all statistics.
XrlCmdError pim_0_1_clear_pim_statistics_per_vif (const string &vif_name)
 Clear all statistics on a specific interface.
XrlCmdError pim_0_1_pimstat_hello_messages_received (uint32_t &value)
 Statistics-related counters and values.
XrlCmdError pim_0_1_pimstat_hello_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_hello_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_messages_received (uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_stop_messages_received (uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_stop_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_stop_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_join_prune_messages_received (uint32_t &value)
XrlCmdError pim_0_1_pimstat_join_prune_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_join_prune_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_bootstrap_messages_received (uint32_t &value)
XrlCmdError pim_0_1_pimstat_bootstrap_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_bootstrap_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_assert_messages_received (uint32_t &value)
XrlCmdError pim_0_1_pimstat_assert_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_assert_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_messages_received (uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_ack_messages_received (uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_ack_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_ack_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_candidate_rp_messages_received (uint32_t &value)
XrlCmdError pim_0_1_pimstat_candidate_rp_messages_sent (uint32_t &value)
XrlCmdError pim_0_1_pimstat_candidate_rp_messages_rx_errors (uint32_t &value)
XrlCmdError pim_0_1_pimstat_unknown_type_messages (uint32_t &value)
XrlCmdError pim_0_1_pimstat_unknown_version_messages (uint32_t &value)
XrlCmdError pim_0_1_pimstat_neighbor_unknown_messages (uint32_t &value)
XrlCmdError pim_0_1_pimstat_bad_length_messages (uint32_t &value)
XrlCmdError pim_0_1_pimstat_bad_checksum_messages (uint32_t &value)
XrlCmdError pim_0_1_pimstat_bad_receive_interface_messages (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_interface_disabled_messages (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_register_not_rp (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rp_filtered_source (uint32_t &value)
XrlCmdError pim_0_1_pimstat_unknown_register_stop (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_prune_no_state (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_graft_graft_ack_no_state (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_graft_on_upstream_interface (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_candidate_rp_not_bsr (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_bsr_when_bsr (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_bsr_not_rpf_interface (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_unknown_hello_option (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_data_no_state (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_rp_no_state (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_aggregate (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_malformed_packet (uint32_t &value)
XrlCmdError pim_0_1_pimstat_no_rp (uint32_t &value)
XrlCmdError pim_0_1_pimstat_no_route_upstream (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rp_mismatch (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rpf_neighbor_unknown (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_rp (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_prune_rp (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_wc (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_prune_wc (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_sg (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_prune_sg (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_sg_rpt (uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_prune_sg_rpt (uint32_t &value)
XrlCmdError pim_0_1_pimstat_hello_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_hello_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_hello_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_stop_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_stop_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_register_stop_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_join_prune_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_join_prune_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_join_prune_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_bootstrap_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_bootstrap_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_bootstrap_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_assert_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_assert_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_assert_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_ack_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_ack_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_graft_ack_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_candidate_rp_messages_received_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_candidate_rp_messages_sent_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_candidate_rp_messages_rx_errors_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_unknown_type_messages_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_unknown_version_messages_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_neighbor_unknown_messages_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_bad_length_messages_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_bad_checksum_messages_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_bad_receive_interface_messages_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_interface_disabled_messages_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_register_not_rp_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rp_filtered_source_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_unknown_register_stop_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_prune_no_state_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_graft_graft_ack_no_state_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_graft_on_upstream_interface_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_candidate_rp_not_bsr_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_bsr_when_bsr_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_bsr_not_rpf_interface_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_unknown_hello_option_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_data_no_state_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_rp_no_state_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_aggregate_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_malformed_packet_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_no_rp_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_no_route_upstream_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rp_mismatch_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rpf_neighbor_unknown_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_rp_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_prune_rp_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_wc_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_prune_wc_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_sg_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_prune_sg_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_join_sg_rpt_per_vif (const string &vif_name, uint32_t &value)
XrlCmdError pim_0_1_pimstat_rx_prune_sg_rpt_per_vif (const string &vif_name, uint32_t &value)

Private Member Functions

const ServiceBaseifmgr_mirror_service_base () const
 Get a reference to the service base of the interface manager.
const IfMgrIfTreeifmgr_iftree () const
 Get a reference to the interface manager tree.
virtual void finder_connect_event ()
 Called when Finder connection is established.
virtual void finder_disconnect_event ()
 Called when Finder disconnect occurs.
void add_task (XrlTaskBase *xrl_task)
void send_xrl_task ()
void pop_xrl_task ()
void retry_xrl_task ()
void fea_register_startup ()
 Initiate registration with the FEA.
void mfea_register_startup ()
 Initiate registration with the MFEA.
void fea_register_shutdown ()
 Initiate de-registration with the FEA.
void mfea_register_shutdown ()
 Initiate de-registration with the MFEA.
void finder_send_register_unregister_interest_cb (const XrlError &xrl_error)
void rib_register_startup ()
 Initiate registration with the RIB.
void finder_register_interest_rib_cb (const XrlError &xrl_error)
void rib_register_shutdown ()
 Initiate de-registration with the RIB.
void finder_deregister_interest_rib_cb (const XrlError &xrl_error)
void send_rib_redist_transaction_enable ()
void rib_client_send_redist_transaction_enable_cb (const XrlError &xrl_error)
void send_rib_redist_transaction_disable ()
void rib_client_send_redist_transaction_disable_cb (const XrlError &xrl_error)
int register_receiver (const string &if_name, const string &vif_name, uint8_t ip_protocol, bool enable_multicast_loopback)
 Register as a receiver to receive packets.
int unregister_receiver (const string &if_name, const string &vif_name, uint8_t ip_protocol)
 Unregister as a receiver to receive packets.
void fea_client_send_register_unregister_receiver_cb (const XrlError &xrl_error)
int register_protocol (const string &if_name, const string &vif_name, uint8_t ip_protocol)
 Register a protocol on an interface in the Multicast FEA.
int unregister_protocol (const string &if_name, const string &vif_name)
 Unregister a protocol on an interface in the Multicast FEA.
void mfea_client_send_register_unregister_protocol_cb (const XrlError &xrl_error)
int join_multicast_group (const string &if_name, const string &vif_name, uint8_t ip_protocol, const IPvX &group_address)
 Join a multicast group on an interface.
int leave_multicast_group (const string &if_name, const string &vif_name, uint8_t ip_protocol, const IPvX &group_address)
 Leave a multicast group on an interface.
void fea_client_send_join_leave_multicast_group_cb (const XrlError &xrl_error)
int proto_send (const string &if_name, const string &vif_name, const IPvX &src_address, const IPvX &dst_address, uint8_t ip_protocol, int32_t ip_ttl, int32_t ip_tos, bool ip_router_alert, bool ip_internet_control, const uint8_t *sndbuf, size_t sndlen, string &error_msg)
 Send a protocol packet.
void fea_client_send_protocol_message_cb (const XrlError &xrl_error)
int add_mfc_to_kernel (const PimMfc &pim_mfc)
 Add a Multicast Forwarding Cache to the kernel.
int delete_mfc_from_kernel (const PimMfc &pim_mfc)
 Delete a Multicast Forwarding Cache to the kernel.
void mfea_client_send_add_delete_mfc_cb (const XrlError &xrl_error)
int add_dataflow_monitor (const IPvX &source_addr, const IPvX &group_addr, uint32_t threshold_interval_sec, uint32_t threshold_interval_usec, uint32_t threshold_packets, uint32_t threshold_bytes, bool is_threshold_in_packets, bool is_threshold_in_bytes, bool is_geq_upcall, bool is_leq_upcall)
 Add a dataflow monitor to the MFEA.
int delete_dataflow_monitor (const IPvX &source_addr, const IPvX &group_addr, uint32_t threshold_interval_sec, uint32_t threshold_interval_usec, uint32_t threshold_packets, uint32_t threshold_bytes, bool is_threshold_in_packets, bool is_threshold_in_bytes, bool is_geq_upcall, bool is_leq_upcall)
 Delete a dataflow monitor from the MFEA.
int delete_all_dataflow_monitor (const IPvX &source_addr, const IPvX &group_addr)
 Delete all dataflow monitors for a given source and group address from the MFEA.
void mfea_client_send_add_delete_dataflow_monitor_cb (const XrlError &xrl_error)
int add_protocol_mld6igmp (uint32_t vif_index)
 Register this protocol with the MLD/IGMP module.
int delete_protocol_mld6igmp (uint32_t vif_index)
 Deregister this protocol with the MLD/IGMP module.
void send_add_delete_protocol_mld6igmp ()
void mld6igmp_client_send_add_delete_protocol_mld6igmp_cb (const XrlError &xrl_error)
void schedule_add_protocol_mld6igmp ()
int add_cli_command_to_cli_manager (const char *command_name, const char *command_help, bool is_command_cd, const char *command_cd_prompt, bool is_command_processor)
 Add a CLI command to the CLI manager.
void cli_manager_client_send_add_cli_command_cb (const XrlError &xrl_error)
int delete_cli_command_from_cli_manager (const char *command_name)
 Delete a CLI command from the CLI manager.
void cli_manager_client_send_delete_cli_command_cb (const XrlError &xrl_error)
int family () const
 Get the address family.

Private Attributes

EventLoop_eventloop
const string _finder_target
const string _fea_target
const string _mfea_target
const string _rib_target
const string _mld6igmp_target
IfMgrXrlMirror _ifmgr
TransactionManager _mrib_transaction_manager
XrlRawPacket4V0p1Client _xrl_fea_client4
XrlMfeaV0p1Client _xrl_mfea_client
XrlRibV0p1Client _xrl_rib_client
XrlMld6igmpV0p1Client _xrl_mld6igmp_client
XrlCliManagerV0p1Client _xrl_cli_manager_client
XrlFinderEventNotifierV0p1Client _xrl_finder_client
bool _is_finder_alive
bool _is_fea_alive
bool _is_fea_registered
bool _is_mfea_alive
bool _is_mfea_registered
bool _is_rib_alive
bool _is_rib_registered
bool _is_rib_registering
bool _is_rib_deregistering
XorpTimer _rib_register_startup_timer
XorpTimer _rib_register_shutdown_timer
bool _is_rib_redist_transaction_enabled
XorpTimer _rib_redist_transaction_enable_timer
bool _is_mld6igmp_alive
bool _is_mld6igmp_registered
bool _is_mld6igmp_registering
bool _is_mld6igmp_deregistering
XorpTimer _mld6igmp_register_startup_timer
XorpTimer _mld6igmp_register_shutdown_timer
list< XrlTaskBase * > _xrl_tasks_queue
XorpTimer _xrl_tasks_queue_timer
list< pair< uint32_t, bool > > _add_delete_protocol_mld6igmp_queue
XorpTimer _add_delete_protocol_mld6igmp_queue_timer
set< uint32_t > _add_protocol_mld6igmp_vif_index_set

Static Private Attributes

static const TimeVal RETRY_TIMEVAL = TimeVal(1, 0)

Member Function Documentation

int XrlPimNode::add_cli_command_to_cli_manager ( const char *  command_name,
const char *  command_help,
bool  is_command_cd,
const char *  command_cd_prompt,
bool  is_command_processor 
) [private, virtual]

Add a CLI command to the CLI manager.

This is a pure virtual function, and it must be implemented by the particular protocol node class that inherits this base class.

Parameters:
command_namethe command name to add.
command_helpthe help message for the command.
is_command_cdif true, this is a directory level that allows user to "cd" to that directory.
command_cd_promptif this is a directory user can "cd" to it, the prompt to appear after the "cd".
is_command_processorif true, this is an oridinary command that can be invoked for processing rather than a directory level.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements ProtoNodeCli.

int XrlPimNode::add_dataflow_monitor ( const IPvX source_addr,
const IPvX group_addr,
uint32_t  threshold_interval_sec,
uint32_t  threshold_interval_usec,
uint32_t  threshold_packets,
uint32_t  threshold_bytes,
bool  is_threshold_in_packets,
bool  is_threshold_in_bytes,
bool  is_geq_upcall,
bool  is_leq_upcall 
) [private, virtual]

Add a dataflow monitor to the MFEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Note: either is_threshold_in_packets or is_threshold_in_bytes (or both) must be true. Note: either is_geq_upcall or is_leq_upcall (but not both) must be true.

Parameters:
sourcethe source address.
groupthe group address.
threshold_interval_secthe dataflow threshold interval (seconds).
threshold_interval_usecthe dataflow threshold interval (microseconds).
threshold_packetsthe threshold (in number of packets) to compare against.
threshold_bytesthe threshold (in number of bytes) to compare against.
is_threshold_in_packetsif true, threshold_packets is valid.
is_threshold_in_bytesif true, threshold_bytes is valid.
is_geq_upcallif true, the operation for comparison is ">=".
is_leq_upcallif true, the operation for comparison is "<=".
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

int XrlPimNode::add_mfc_to_kernel ( const PimMfc pim_mfc) [private, virtual]

Add a Multicast Forwarding Cache to the kernel.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Parameters:
pim_mfcthe PimMfc entry to add.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

int XrlPimNode::add_protocol_mld6igmp ( uint32_t  vif_index) [private, virtual]

Register this protocol with the MLD/IGMP module.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

By registering this protocol with the MLD/IGMP module, it will be notified about multicast group membership events.

Parameters:
vif_indexthe vif index of the interface to register with the MLD/IGMP module.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

XrlCmdError XrlPimNode::cli_processor_0_1_process_command ( const string &  processor_name,
const string &  cli_term_name,
const uint32_t &  cli_session_id,
const string &  command_name,
const string &  command_args,
string &  ret_processor_name,
string &  ret_cli_term_name,
uint32_t &  ret_cli_session_id,
string &  ret_command_output 
) [protected, virtual]

Process a CLI command.

Parameters:
processor_namethe processor name for this command.
cli_term_namethe terminal name the command was entered from.
cli_session_idthe CLI session ID the command was entered from.
command_namethe command name to process.
command_argsthe command arguments to process.
ret_processor_namethe processor name to return back to the CLI.
ret_cli_term_namethe terminal name to return back.
ret_cli_session_idthe CLI session ID to return back.
ret_command_outputthe command output to return back.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::common_0_1_startup ( ) [protected, virtual]

Pure-virtual function that needs to be implemented to:

Request a startup of Xrl Target

Implements XrlPimTargetBase.

int XrlPimNode::delete_all_dataflow_monitor ( const IPvX source_addr,
const IPvX group_addr 
) [private, virtual]

Delete all dataflow monitors for a given source and group address from the MFEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Parameters:
source_addrthe source address.
group_addrthe group address.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

int XrlPimNode::delete_cli_command_from_cli_manager ( const char *  command_name) [private, virtual]

Delete a CLI command from the CLI manager.

This is a pure virtual function, and it must be implemented by the particular protocol node class that inherits this base class.

Parameters:
command_namethe command name to delete.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements ProtoNodeCli.

int XrlPimNode::delete_dataflow_monitor ( const IPvX source_addr,
const IPvX group_addr,
uint32_t  threshold_interval_sec,
uint32_t  threshold_interval_usec,
uint32_t  threshold_packets,
uint32_t  threshold_bytes,
bool  is_threshold_in_packets,
bool  is_threshold_in_bytes,
bool  is_geq_upcall,
bool  is_leq_upcall 
) [private, virtual]

Delete a dataflow monitor from the MFEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Note: either is_threshold_in_packets or is_threshold_in_bytes (or both) must be true. Note: either is_geq_upcall or is_leq_upcall (but not both) must be true.

Parameters:
sourcethe source address.
groupthe group address.
threshold_interval_secthe dataflow threshold interval (seconds).
threshold_interval_usecthe dataflow threshold interval (microseconds).
threshold_packetsthe threshold (in number of packets) to compare against.
threshold_bytesthe threshold (in number of bytes) to compare against.
is_threshold_in_packetsif true, threshold_packets is valid.
is_threshold_in_bytesif true, threshold_bytes is valid.
is_geq_upcallif true, the operation for comparison is ">=".
is_leq_upcallif true, the operation for comparison is "<=".
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

int XrlPimNode::delete_mfc_from_kernel ( const PimMfc pim_mfc) [private, virtual]

Delete a Multicast Forwarding Cache to the kernel.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Parameters:
pim_mfcthe PimMfc entry to delete.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

int XrlPimNode::delete_protocol_mld6igmp ( uint32_t  vif_index) [private, virtual]

Deregister this protocol with the MLD/IGMP module.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Parameters:
vif_indexthe vif index of the interface to deregister with the MLD/IGMP module.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

void XrlPimNode::destruct_me ( ) [virtual]

Does real destruction work.

Reimplemented from PimNode.

int XrlPimNode::family ( ) const [inline, private]

Get the address family.

Returns:
the address family (e.g., AF_INET or AF_INET6 for IPv4 and IPv6 respectively).

Reimplemented from ProtoUnit.

void XrlPimNode::fea_register_shutdown ( ) [private, virtual]

Initiate de-registration with the FEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements PimNode.

void XrlPimNode::fea_register_startup ( ) [private, virtual]

Initiate registration with the FEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements PimNode.

void XrlPimNode::finder_connect_event ( ) [private, virtual]

Called when Finder connection is established.

Note that this method overwrites an XrlRouter virtual method.

Reimplemented from XrlRouter.

void XrlPimNode::finder_disconnect_event ( ) [private, virtual]

Called when Finder disconnect occurs.

Note that this method overwrites an XrlRouter virtual method.

Reimplemented from XrlRouter.

XrlCmdError XrlPimNode::finder_event_observer_0_1_xrl_target_birth ( const string &  target_class,
const string &  target_instance 
) [protected, virtual]

Announce target birth to observer.

Parameters:
target_classthe target class name.
target_instancethe target instance name.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::finder_event_observer_0_1_xrl_target_death ( const string &  target_class,
const string &  target_instance 
) [protected, virtual]

Announce target death to observer.

Parameters:
target_classthe target class name.
target_instancethe target instance name.

Implements XrlPimTargetBase.

const IfMgrIfTree& XrlPimNode::ifmgr_iftree ( ) const [inline, private, virtual]

Get a reference to the interface manager tree.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Returns:
a reference to the interface manager tree.

Implements PimNode.

const ServiceBase* XrlPimNode::ifmgr_mirror_service_base ( ) const [inline, private, virtual]

Get a reference to the service base of the interface manager.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Returns:
a reference to the service base of the interface manager.

Implements PimNode.

int XrlPimNode::join_multicast_group ( const string &  if_name,
const string &  vif_name,
uint8_t  ip_protocol,
const IPvX group_address 
) [private, virtual]

Join a multicast group on an interface.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

TODO: add a source address as well!!

Parameters:
if_namethe interface name to join.
vif_namethe vif name to join.
ip_protocolthe IP protocol number that the receiver is interested in.
group_addressthe multicast group address to join.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

int XrlPimNode::leave_multicast_group ( const string &  if_name,
const string &  vif_name,
uint8_t  ip_protocol,
const IPvX group_address 
) [private, virtual]

Leave a multicast group on an interface.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

TODO: add a source address as well!!

Parameters:
if_namethe interface name to leave.
vif_namethe vif name to leave.
ip_protocolthe IP protocol number that the receiver is not interested in anymore.
group_addressthe multicast group address to leave.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

XrlCmdError XrlPimNode::mfea_client_0_1_recv_dataflow_signal4 ( 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 
) [protected, virtual]

A signal that a dataflow-related pre-condition is true.

Parameters:
xrl_sender_namethe XRL name of the originator of this XRL.
source_addressthe source address of the dataflow.
group_addressthe group address of the dataflow.
threshold_interval_secthe number of seconds in the interval requested for measurement.
threshold_interval_usecthe number of microseconds in the interval requested for measurement.
measured_interval_secthe number of seconds in the last measured interval that has triggered the signal.
measured_interval_usecthe number of microseconds in the last measured interval that has triggered the signal.
threshold_packetsthe threshold value to trigger a signal (in number of packets).
threshold_bytesthe threshold value to trigger a signal (in bytes).
measured_packetsthe number of packets measured within the measured interval.
measured_bytesthe number of bytes measured within the measured interval.
is_threshold_in_packetsif true, threshold_packets is valid.
is_threshold_in_bytesif true, threshold_bytes is valid.
is_geq_upcallif true, the operation for comparison is ">=".
is_leq_upcallif true, the operation for comparison is "<=".

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::mfea_client_0_1_recv_kernel_signal_message4 ( const string &  xrl_sender_name,
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 
) [protected, virtual]

Receive a kernel signal message from the MFEA.

Parameters:
xrl_sender_namethe XRL name of the originator of this XRL.
message_typethe type of the kernel signal message (TODO: integer for now: the particular types are well-known by both sides).
vif_namethe name of the vif the message was received on.
vif_indexthe index of the vif the message was received on.
source_addressthe address of the sender.
dest_addressthe destination address.
protocol_messagethe protocol message.

Implements XrlPimTargetBase.

void XrlPimNode::mfea_register_shutdown ( ) [private, virtual]

Initiate de-registration with the MFEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements PimNode.

void XrlPimNode::mfea_register_startup ( ) [private, virtual]

Initiate registration with the MFEA.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements PimNode.

XrlCmdError XrlPimNode::mld6igmp_client_0_1_add_membership4 ( const string &  xrl_sender_name,
const string &  vif_name,
const uint32_t &  vif_index,
const IPv4 source,
const IPv4 group 
) [protected, virtual]

Add/delete membership information.

Parameters:
xrl_sender_namethe XRL name of the originator of this XRL.
vif_namethe name of the new vif.
vif_indexthe index of the new vif.
sourcethe source address that has been joined/left.
groupthe group address that has been joined/left.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_add_alternative_subnet4 ( const string &  vif_name,
const IPv4Net subnet 
) [protected, virtual]

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!

Parameters:
vif_namethe name of the vif to add or delete an alternative subnet.
subnetthe subnet address to add or delete.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_add_config_cand_bsr4 ( 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 
) [protected, virtual]

Add/delete candidate-BSR configuration.

Parameters:
scope_zone_idthe ID of the configured zone.
is_scope_zonetrue if configuring administratively scoped zone.
vif_namethe name of the vif to use its address as a candidate-BSR.
vif_addrthe address of the vif to use as a candidate-BSR.
bsr_prioritythe BSR priority (larger is better).
hash_mask_lenthe hash mask length.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_add_config_cand_rp4 ( 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 
) [protected, virtual]

Add/delete Candidate-RP configuration.

Parameters:
group_prefixthe group prefix of the configured zone.
is_scope_zonetrue if configuring administratively scoped zone.
vif_namethe name of the vif to use its address as a candidate-RP.
vif_addrthe address of the vif to use as a candidate-RP.
rp_prioritythe Cand-RP priority (smaller is better).
rp_holdtimethe Cand-RP holdtime (in seconds).

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_add_config_scope_zone_by_vif_name4 ( const IPv4Net scope_zone_id,
const string &  vif_name 
) [protected, virtual]

Add/delete scope zone.

Parameters:
scope_zone_idthe ID of the configured zone.
vif_namethe name of the vif to use as a bondary of the scope zone.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_add_config_static_rp4 ( const IPv4Net group_prefix,
const IPv4 rp_addr,
const uint32_t &  rp_priority,
const uint32_t &  hash_mask_len 
) [protected, virtual]

Add/delete/complete static RP configuration.

Parameters:
group_prefixthe group prefix for the RP.
rp_addrthe RP address.
rp_prioritythe RP priority (smaller is better).
hash_mask_lenthe 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.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_add_test_bsr_zone4 ( 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 
) [protected, virtual]

Test-related methods: send Bootstrap and Cand-RP-Adv messages.

Parameters:
zone_id_scope_zone_prefixthe zone prefix of the zone ID.
zone_id_is_scope_zonetrue if the zone is scoped.
bsr_addrthe address of the Bootstrap router.
bsr_prioritythe priority of the Bootstrap router.
hash_mask_lenthe hash mask length inside the Bootstrap messages.
fragment_tagthe fragment tag inside the Bootstrap messages.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_clear_pim_statistics_per_vif ( const string &  vif_name) [protected, virtual]

Clear all statistics on a specific interface.

Parameters:
vif_namethe interface to clear the statistics of.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_enable_all_vifs ( const bool &  enable) [protected, virtual]

Enable/disable/start/stop all PIM vif interfaces.

Parameters:
enableif true, then enable the vifs, otherwise disable them.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_enable_bsr ( const bool &  enable) [protected, virtual]

Enable/disable/start/stop BSR.

Parameters:
enableif true, then enable the BSR, otherwise disable it.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_enable_cli ( const bool &  enable) [protected, virtual]

Enable/disable/start/stop the PIM CLI access.

Parameters:
enableif true, then enable the PIM CLI access, otherwise disable it.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_enable_pim ( const bool &  enable) [protected, virtual]

Enable/disable/start/stop the PIM protocol.

Parameters:
enableif true, then enable the PIM protocol, otherwise disable it.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_enable_vif ( const string &  vif_name,
const bool &  enable 
) [protected, virtual]

Enable/disable/start/stop a PIM vif interface.

Parameters:
vif_namethe name of the vif to enable/disable/start/stop.
enableif true, then enable the vif, otherwise disable it.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_get_switch_to_spt_threshold ( bool &  is_enabled,
uint32_t &  interval_sec,
uint32_t &  bytes 
) [protected, virtual]

Configure SPT-switch threshold.

The 'set_foo' XRLs set the particular values. The 'reset_foo' XRLs reset the metrics to their default values.

Parameters:
is_enabledif true, enable SPT-switch, otherwise disable it.
interval_secif the SPT-switch is enabled, the interval (in number of seconds) to measure the bandwidth to consider whether to switch to the SPT.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_get_vif_hello_triggered_delay ( const string &  vif_name,
uint32_t &  hello_triggered_delay 
) [protected, virtual]

Configure PIM Hello-related metrics.

The 'set_foo' XRLs set the particular values. The 'reset_foo' XRLs reset the metrics to their default values.

Parameters:
vif_namethe name of the vif to configure.
proto_versionthe protocol version.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_get_vif_join_prune_period ( const string &  vif_name,
uint32_t &  join_prune_period 
) [protected, virtual]

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.

Parameters:
vif_namethe name of the vif to configure.
join_prune_periodthe period between Join/Prune messages.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_get_vif_proto_version ( const string &  vif_name,
uint32_t &  proto_version 
) [protected, virtual]

Get the configured protocol version per interface.

Parameters:
vif_namethe name of the vif to apply to.
proto_versionthe protocol version.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_log_trace_all ( const bool &  enable) [protected, virtual]

Enable/disable the PIM trace log for all operations.

Parameters:
enableif true, then enable the trace log, otherwise disable it.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_pimstat_interface4 ( const string &  vif_name,
uint32_t &  pim_version,
bool &  is_dr,
uint32_t &  dr_priority,
IPv4 dr_address,
uint32_t &  pim_nbrs_number 
) [protected, virtual]

Retrieve information about PIM interfaces.

Parameters:
vif_namethe name of the vif to retrieve information about.
pim_versionthe PIM protocol version on that vif.
is_drtrue if this router is the DR for the subnet the vif is connected to.
dr_prioritythe DR priority configured on that vif.
dr_addressthe address of the DR for the subnet the vif is connected to.
pim_nbrs_numberthe number of PIM neighbors on the subnet the vif is connected to.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_pimstat_neighbors4 ( uint32_t &  nbrs_number,
XrlAtomList vifs,
XrlAtomList addresses,
XrlAtomList pim_versions,
XrlAtomList dr_priorities,
XrlAtomList holdtimes,
XrlAtomList timeouts,
XrlAtomList uptimes 
) [protected, virtual]

Retrieve information about all PIM neighbors.

Parameters:
nbrs_numberthe number of PIM neighbors
vifsthe list of vif names for all neighbors (one vif name per neighbor).
pim_versionsthe list of PIM protocol versions for all neighbors (one number per neighbor).
dr_prioritiesthe list of DR priorities of all neighbors (one number per neighbor).
holdtimesthe list of configured holdtimes (in seconds) of all neighbors (one number per neighbor).
timeoutsthe list of timeout values (in seconds) of all neighbors (one number per neighbor).
uptimesthe list of uptime values (in seconds) of all neighbors (one number per neighbor).

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_pimstat_rps4 ( uint32_t &  rps_number,
XrlAtomList addresses,
XrlAtomList types,
XrlAtomList priorities,
XrlAtomList holdtimes,
XrlAtomList timeouts,
XrlAtomList group_prefixes 
) [protected, virtual]

Retrieve information about the RP-Set.

Parameters:
rps_numberthe number of RPs in the RP-Set.
addressesthe list of addresses of all RPs (one IPv4 or IPv6 address per RP).
typesthe list of textual description about the origin of each RP (one keyword per RP: "bootstrap", "static" or "unknown").
prioritiesthe list of RP priorities of all RPs (one number per RP).
holdtimesthe list of configured holdtimes (in seconds) of all RPs (one number per RP).
timeoutsthe list of timeout values (in seconds) of all RPs (one number per RP).
group_prefixesthe 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.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_reset_vif_proto_version ( const string &  vif_name) [protected, virtual]

Reset the protocol version per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_send_test_assert4 ( 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 
) [protected, virtual]

Test-related methods: send an Assert message on an interface.

Parameters:
vif_namethe name of the vif to send the Assert on.
source_addrthe source address inside the Assert message.
group_addrthe group address inside the Assert message.
rpt_bitthe RPT-bit inside the Assert message.
metric_preferencethe metric preference inside the Assert message.
metricthe metric inside the Assert message.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::pim_0_1_set_vif_proto_version ( const string &  vif_name,
const uint32_t &  proto_version 
) [protected, virtual]

Set the protocol version per interface.

Parameters:
vif_namethe name of the vif to apply to.
proto_versionthe protocol version.

Implements XrlPimTargetBase.

int XrlPimNode::proto_send ( const string &  if_name,
const string &  vif_name,
const IPvX src_address,
const IPvX dst_address,
uint8_t  ip_protocol,
int32_t  ip_ttl,
int32_t  ip_tos,
bool  ip_router_alert,
bool  ip_internet_control,
const uint8_t *  sndbuf,
size_t  sndlen,
string &  error_msg 
) [private, virtual]

Send a protocol packet.

This is a pure virtual function, and it must be implemented by the particular protocol node class that inherits this base class.

Parameters:
if_namethe interface to send the packet on. It is essential for multicast. In the unicast case this field may be empty.
vif_namethe vif to send the packet on. It is essential for multicast. In the unicast case this field may be empty.
src_addressthe IP source address.
dst_addressthe IP destination address.
ip_protocolthe IP protocol number. It must be between 1 and 255.
ip_ttlthe IP TTL (hop-limit). If it has a negative value, the TTL will be set internally before transmission.
ip_tosthe Type Of Service (Diffserv/ECN bits for IPv4). If it has a negative value, the TOS will be set internally before transmission.
ip_router_alertif true, then add the IP Router Alert option to the IP packet.
ip_internet_controlif true, then this is IP control traffic.
sndbufthe data buffer with the outgoing packet.
sndlenthe data length in sndbuf.
error_msgthe error message (if error).
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements ProtoNode< PimVif >.

XrlCmdError XrlPimNode::raw_packet4_client_0_1_recv ( const string &  if_name,
const string &  vif_name,
const IPv4 src_address,
const IPv4 dst_address,
const uint32_t &  ip_protocol,
const int32_t &  ip_ttl,
const int32_t &  ip_tos,
const bool &  ip_router_alert,
const bool &  ip_internet_control,
const vector< uint8_t > &  payload 
) [protected, virtual]

Receive an IPv4 packet from a raw socket.

Parameters:
if_namethe interface name the packet arrived on.
vif_namethe vif name the packet arrived on.
src_addressthe IP source address.
dst_addressthe IP destination address.
ip_protocolthe IP protocol number.
ip_ttlthe IP TTL (hop-limit). If it has a negative value, then the received value is unknown.
ip_tosthe Type of Service (Diffserv/ECN bits for IPv4). If it has a negative value, then the received value is unknown.
ip_router_alertif true, the IP Router Alert option was included in the IP packet.
ip_internet_controlif true, then this is IP control traffic.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction4_0_1_abort_transaction ( const uint32_t &  tid) [protected, virtual]

Abort transaction.

Parameters:
tidthe transaction ID of this transaction.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction4_0_1_add_route ( 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 
) [protected, virtual]

Add/delete a routing entry.

Parameters:
tidthe transaction ID of this transaction.
dstdestination network.
nexthopnexthop router address.
ifnameinterface name associated with nexthop.
vifnamevirtual interface name with nexthop.
metricorigin routing protocol metric for route.
admin_distanceadministrative distance of origin routing protocol.
cookievalue set by the requestor to identify redistribution source. Typical value is the originating protocol name.
protocol_originthe name of the protocol that originated this routing entry.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction4_0_1_commit_transaction ( const uint32_t &  tid) [protected, virtual]

Commit transaction.

Parameters:
tidthe transaction ID of this transaction.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction4_0_1_delete_all_routes ( const uint32_t &  tid,
const string &  cookie 
) [protected, virtual]

Delete all routing entries.

Parameters:
tidthe transaction ID of this transaction.
cookievalue set by the requestor to identify redistribution source. Typical value is the originating protocol name.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction4_0_1_start_transaction ( uint32_t &  tid) [protected, virtual]

Start transaction.

Parameters:
tidthe transaction ID to use for this transaction.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction6_0_1_abort_transaction ( const uint32_t &  tid) [protected, virtual]

Abort transaction.

Parameters:
tidthe transaction ID of this transaction.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction6_0_1_add_route ( 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 
) [protected, virtual]

Add/delete a routing entry.

Parameters:
tidthe transaction ID of this transaction.
dstdestination network.
nexthopnexthop router address.
ifnameinterface name associated with nexthop.
vifnamevirtual interface name with nexthop.
metricorigin routing protocol metric for route.
admin_distanceadministrative distance of origin routing protocol.
cookievalue set by the requestor to identify redistribution source. Typical value is the originating protocol name.
protocol_originthe name of the protocol that originated this routing entry.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction6_0_1_commit_transaction ( const uint32_t &  tid) [protected, virtual]

Commit transaction.

Parameters:
tidthe transaction ID of this transaction.

Implements XrlPimTargetBase.

XrlCmdError XrlPimNode::redist_transaction6_0_1_delete_all_routes ( const uint32_t &  tid,
const string &  cookie 
) [protected, virtual]

Delete all routing entries.

Parameters:
tidthe transaction ID of this transaction.
cookievalue set by the requestor to identify redistribution source. Typical value is the originating protocol name.

Implements XrlPimTargetBase.

int XrlPimNode::register_protocol ( const string &  if_name,
const string &  vif_name,
uint8_t  ip_protocol 
) [private, virtual]

Register a protocol on an interface in the Multicast FEA.

Parameters:
if_namethe name of the interface to register for the particular protocol.
vif_namethe name of the vif to register for the particular protocol.
ip_protocolthe IP protocol number. It must be between 1 and 255.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

int XrlPimNode::register_receiver ( const string &  if_name,
const string &  vif_name,
uint8_t  ip_protocol,
bool  enable_multicast_loopback 
) [private, virtual]

Register as a receiver to receive packets.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Parameters:
if_namethe interface through which packets should be accepted.
vif_namethe vif through which packets should be accepted.
ip_protocolthe IP protocol number that the receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
enable_multicast_loopbackif true then enable delivering of multicast datagrams back to this host (assuming the host is a member of the same multicast group).
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

void XrlPimNode::rib_register_shutdown ( ) [private, virtual]

Initiate de-registration with the RIB.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements PimNode.

void XrlPimNode::rib_register_startup ( ) [private, virtual]

Initiate registration with the RIB.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Implements PimNode.

int XrlPimNode::shutdown ( ) [virtual]

Shutdown the node operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoState.

int XrlPimNode::start_bsr ( )

Start the Bootstrap mechanism.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from PimNode.

int XrlPimNode::startup ( ) [virtual]

Startup the node operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoState.

int XrlPimNode::stop_bsr ( )

Stop the Bootstrap mechanism.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from PimNode.

int XrlPimNode::unregister_protocol ( const string &  if_name,
const string &  vif_name 
) [private, virtual]

Unregister a protocol on an interface in the Multicast FEA.

Parameters:
if_namethe name of the interface to unregister for the particular protocol.
vif_namethe name of the vif to unregister for the particular protocol.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

int XrlPimNode::unregister_receiver ( const string &  if_name,
const string &  vif_name,
uint8_t  ip_protocol 
) [private, virtual]

Unregister as a receiver to receive packets.

This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.

Parameters:
if_namethe interface through which packets should not be accepted.
vif_namethe vif through which packets should not be accepted.
ip_protocolthe IP Protocol number that the receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements PimNode.

XrlRouter& XrlPimNode::xrl_router ( ) [inline]

Get a reference to the XrlRouter instance.

Returns:
a reference to the XrlRouter (XrlRouter) instance.
const XrlRouter& XrlPimNode::xrl_router ( ) const [inline]

Get a const reference to the XrlRouter instance.

Returns:
a const reference to the XrlRouter (XrlRouter) instance.

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