|
xorp
|
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. | |
| XrlRouter & | xrl_router () |
| Get a reference to the XrlRouter instance. | |
| const XrlRouter & | xrl_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 ServiceBase * | ifmgr_mirror_service_base () const |
| Get a reference to the service base of the interface manager. | |
| const IfMgrIfTree & | ifmgr_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) |
| 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.
| command_name | the command name to add. |
| command_help | the help message for the command. |
| is_command_cd | if true, this is a directory level that allows user to "cd" to that directory. |
| command_cd_prompt | if this is a directory user can "cd" to it, the prompt to appear after the "cd". |
| is_command_processor | if true, this is an oridinary command that can be invoked for processing rather than a directory level. |
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.
| source | the source address. |
| group | the group address. |
| threshold_interval_sec | the dataflow threshold interval (seconds). |
| threshold_interval_usec | the dataflow threshold interval (microseconds). |
| threshold_packets | the threshold (in number of packets) to compare against. |
| threshold_bytes | the threshold (in number of bytes) to compare against. |
| is_threshold_in_packets | if true, threshold_packets is valid. |
| is_threshold_in_bytes | if true, threshold_bytes is valid. |
| is_geq_upcall | if true, the operation for comparison is ">=". |
| is_leq_upcall | if true, the operation for comparison is "<=". |
Implements PimNode.
| int XrlPimNode::add_mfc_to_kernel | ( | const PimMfc & | pim_mfc | ) | [private, virtual] |
| 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.
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.
| processor_name | the processor name for this command. |
| cli_term_name | the terminal name the command was entered from. |
| cli_session_id | the CLI session ID the command was entered from. |
| command_name | the command name to process. |
| command_args | the command arguments to process. |
| ret_processor_name | the processor name to return back to the CLI. |
| ret_cli_term_name | the terminal name to return back. |
| ret_cli_session_id | the CLI session ID to return back. |
| ret_command_output | the 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] |
| 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.
| command_name | the command name to delete. |
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.
| source | the source address. |
| group | the group address. |
| threshold_interval_sec | the dataflow threshold interval (seconds). |
| threshold_interval_usec | the dataflow threshold interval (microseconds). |
| threshold_packets | the threshold (in number of packets) to compare against. |
| threshold_bytes | the threshold (in number of bytes) to compare against. |
| is_threshold_in_packets | if true, threshold_packets is valid. |
| is_threshold_in_bytes | if true, threshold_bytes is valid. |
| is_geq_upcall | if true, the operation for comparison is ">=". |
| is_leq_upcall | if true, the operation for comparison is "<=". |
Implements PimNode.
| int XrlPimNode::delete_mfc_from_kernel | ( | const PimMfc & | pim_mfc | ) | [private, virtual] |
| int XrlPimNode::delete_protocol_mld6igmp | ( | uint32_t | vif_index | ) | [private, virtual] |
| void XrlPimNode::destruct_me | ( | ) | [virtual] |
Does real destruction work.
Reimplemented from PimNode.
| int XrlPimNode::family | ( | ) | const [inline, private] |
| void XrlPimNode::fea_register_shutdown | ( | ) | [private, virtual] |
| void XrlPimNode::fea_register_startup | ( | ) | [private, virtual] |
| void XrlPimNode::finder_connect_event | ( | ) | [private, virtual] |
| void XrlPimNode::finder_disconnect_event | ( | ) | [private, virtual] |
| 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.
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.
Implements XrlPimTargetBase.
| const IfMgrIfTree& XrlPimNode::ifmgr_iftree | ( | ) | const [inline, private, virtual] |
| const ServiceBase* XrlPimNode::ifmgr_mirror_service_base | ( | ) | const [inline, private, virtual] |
| 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!!
| if_name | the interface name to join. |
| vif_name | the vif name to join. |
| ip_protocol | the IP protocol number that the receiver is interested in. |
| group_address | the multicast group address to join. |
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!!
| if_name | the interface name to leave. |
| vif_name | the vif name to leave. |
| ip_protocol | the IP protocol number that the receiver is not interested in anymore. |
| group_address | the multicast group address to leave. |
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.
| xrl_sender_name | the XRL name of the originator of this XRL. |
| source_address | the source address of the dataflow. |
| group_address | the group address of the dataflow. |
| threshold_interval_sec | the number of seconds in the interval requested for measurement. |
| threshold_interval_usec | the number of microseconds in the interval requested for measurement. |
| measured_interval_sec | the number of seconds in the last measured interval that has triggered the signal. |
| measured_interval_usec | the number of microseconds in the last measured interval that has triggered the signal. |
| threshold_packets | the threshold value to trigger a signal (in number of packets). |
| threshold_bytes | the threshold value to trigger a signal (in bytes). |
| measured_packets | the number of packets measured within the measured interval. |
| measured_bytes | the number of bytes measured within the measured interval. |
| is_threshold_in_packets | if true, threshold_packets is valid. |
| is_threshold_in_bytes | if true, threshold_bytes is valid. |
| is_geq_upcall | if true, the operation for comparison is ">=". |
| is_leq_upcall | if 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.
| xrl_sender_name | the XRL name of the originator of this XRL. |
| message_type | the type of the kernel signal message (TODO: integer for now: the particular types are well-known by both sides). |
| vif_name | the name of the vif the message was received on. |
| vif_index | the index of the vif the message was received on. |
| source_address | the address of the sender. |
| dest_address | the destination address. |
| protocol_message | the protocol message. |
Implements XrlPimTargetBase.
| void XrlPimNode::mfea_register_shutdown | ( | ) | [private, virtual] |
| void XrlPimNode::mfea_register_startup | ( | ) | [private, virtual] |
| 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.
| xrl_sender_name | the XRL name of the originator of this XRL. |
| vif_name | the name of the new vif. |
| vif_index | the index of the new vif. |
| source | the source address that has been joined/left. |
| group | the 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!
| vif_name | the name of the vif to add or delete an alternative subnet. |
| subnet | the 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.
| scope_zone_id | the ID of the configured zone. |
| is_scope_zone | true if configuring administratively scoped zone. |
| vif_name | the name of the vif to use its address as a candidate-BSR. |
| vif_addr | the address of the vif to use as a candidate-BSR. |
| bsr_priority | the BSR priority (larger is better). |
| hash_mask_len | the 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.
| group_prefix | the group prefix of the configured zone. |
| is_scope_zone | true if configuring administratively scoped zone. |
| vif_name | the name of the vif to use its address as a candidate-RP. |
| vif_addr | the address of the vif to use as a candidate-RP. |
| rp_priority | the Cand-RP priority (smaller is better). |
| rp_holdtime | the 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] |
| 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.
| group_prefix | the group prefix for the RP. |
| rp_addr | the RP address. |
| rp_priority | the RP priority (smaller is better). |
| 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. |
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.
| zone_id_scope_zone_prefix | the zone prefix of the zone ID. |
| zone_id_is_scope_zone | true if the zone is scoped. |
| bsr_addr | the address of the Bootstrap router. |
| bsr_priority | the priority of the Bootstrap router. |
| hash_mask_len | the hash mask length inside the Bootstrap messages. |
| fragment_tag | the 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.
Implements XrlPimTargetBase.
| XrlCmdError XrlPimNode::pim_0_1_enable_all_vifs | ( | const bool & | enable | ) | [protected, virtual] |
Enable/disable/start/stop all PIM vif interfaces.
| enable | if 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.
| enable | if 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.
| enable | if 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.
| enable | if 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.
| vif_name | the name of the vif to enable/disable/start/stop. |
| enable | if 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.
| is_enabled | if true, enable SPT-switch, otherwise disable it. |
| 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. |
Implements XrlPimTargetBase.
| XrlCmdError XrlPimNode::pim_0_1_get_vif_hello_triggered_delay | ( | const string & | vif_name, |
| uint32_t & | hello_triggered_delay | ||
| ) | [protected, virtual] |
| XrlCmdError XrlPimNode::pim_0_1_get_vif_join_prune_period | ( | const string & | vif_name, |
| uint32_t & | join_prune_period | ||
| ) | [protected, virtual] |
| 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.
Implements XrlPimTargetBase.
| XrlCmdError XrlPimNode::pim_0_1_log_trace_all | ( | const bool & | enable | ) | [protected, virtual] |
Enable/disable the PIM trace log for all operations.
| enable | if 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.
| vif_name | the name of the vif to retrieve information about. |
| pim_version | the PIM protocol version on that vif. |
| is_dr | true if this router is the DR for the subnet the vif is connected to. |
| dr_priority | the DR priority configured on that vif. |
| dr_address | the address of the DR for the subnet the vif is connected to. |
| pim_nbrs_number | the 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.
| nbrs_number | the number of PIM neighbors |
| vifs | the list of vif names for all neighbors (one vif name per neighbor). |
| pim_versions | the list of PIM protocol versions for all neighbors (one number per neighbor). |
| dr_priorities | the list of DR priorities of all neighbors (one number per neighbor). |
| holdtimes | the list of configured holdtimes (in seconds) of all neighbors (one number per neighbor). |
| timeouts | the list of timeout values (in seconds) of all neighbors (one number per neighbor). |
| uptimes | the 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.
| rps_number | the number of RPs in the RP-Set. |
| addresses | the list of addresses of all RPs (one IPv4 or IPv6 address per RP). |
| types | the list of textual description about the origin of each RP (one keyword per RP: "bootstrap", "static" or "unknown"). |
| priorities | the list of RP priorities of all RPs (one number per RP). |
| holdtimes | the list of configured holdtimes (in seconds) of all RPs (one number per RP). |
| timeouts | the list of timeout values (in seconds) of all RPs (one number per RP). |
| 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. |
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.
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.
| vif_name | the name of the vif to send the Assert on. |
| source_addr | the source address inside the Assert message. |
| group_addr | the group address inside the Assert message. |
| rpt_bit | the RPT-bit inside the Assert message. |
| metric_preference | the metric preference inside the Assert message. |
| metric | the 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.
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.
| if_name | the interface to send the packet on. It is essential for multicast. In the unicast case this field may be empty. |
| vif_name | the vif to send the packet on. It is essential for multicast. In the unicast case this field may be empty. |
| src_address | the IP source address. |
| dst_address | the IP destination address. |
| ip_protocol | the IP protocol number. It must be between 1 and 255. |
| ip_ttl | the IP TTL (hop-limit). If it has a negative value, the TTL will be set internally before transmission. |
| ip_tos | the Type Of Service (Diffserv/ECN bits for IPv4). If it has a negative value, the TOS will be set internally before transmission. |
| ip_router_alert | if true, then add the IP Router Alert option to the IP packet. |
| ip_internet_control | if true, then this is IP control traffic. |
| sndbuf | the data buffer with the outgoing packet. |
| sndlen | the data length in sndbuf. |
| error_msg | the error message (if 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.
| if_name | the interface name the packet arrived on. |
| vif_name | the vif name the packet arrived on. |
| src_address | the IP source address. |
| dst_address | the IP destination address. |
| ip_protocol | the IP protocol number. |
| ip_ttl | the IP TTL (hop-limit). If it has a negative value, then the received value is unknown. |
| ip_tos | the Type of Service (Diffserv/ECN bits for IPv4). If it has a negative value, then the received value is unknown. |
| ip_router_alert | if true, the IP Router Alert option was included in the IP packet. |
| ip_internet_control | if 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.
| tid | the 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.
| tid | the transaction ID of this transaction. |
| dst | destination network. |
| nexthop | nexthop router address. |
| ifname | interface name associated with nexthop. |
| vifname | virtual interface name with nexthop. |
| metric | origin routing protocol metric for route. |
| admin_distance | administrative distance of origin routing protocol. |
| cookie | value set by the requestor to identify redistribution source. Typical value is the originating protocol name. |
| protocol_origin | the 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.
| tid | the 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.
| tid | the transaction ID of this transaction. |
| cookie | value 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.
| tid | the 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.
| tid | the 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.
| tid | the transaction ID of this transaction. |
| dst | destination network. |
| nexthop | nexthop router address. |
| ifname | interface name associated with nexthop. |
| vifname | virtual interface name with nexthop. |
| metric | origin routing protocol metric for route. |
| admin_distance | administrative distance of origin routing protocol. |
| cookie | value set by the requestor to identify redistribution source. Typical value is the originating protocol name. |
| protocol_origin | the 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.
| tid | the 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.
| tid | the transaction ID of this transaction. |
| cookie | value 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.
| if_name | the name of the interface to register for the particular protocol. |
| vif_name | the name of the vif to register for the particular protocol. |
| ip_protocol | the IP protocol number. It must be between 1 and 255. |
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.
| if_name | the interface through which packets should be accepted. |
| vif_name | the vif through which packets should be accepted. |
| ip_protocol | the 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_loopback | if true then enable delivering of multicast datagrams back to this host (assuming the host is a member of the same multicast group). |
Implements PimNode.
| void XrlPimNode::rib_register_shutdown | ( | ) | [private, virtual] |
| void XrlPimNode::rib_register_startup | ( | ) | [private, virtual] |
| int XrlPimNode::shutdown | ( | ) | [virtual] |
Reimplemented from ProtoState.
| int XrlPimNode::start_bsr | ( | ) |
| int XrlPimNode::startup | ( | ) | [virtual] |
Reimplemented from ProtoState.
| int XrlPimNode::stop_bsr | ( | ) |
| int XrlPimNode::unregister_protocol | ( | const string & | if_name, |
| const string & | vif_name | ||
| ) | [private, virtual] |
| 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.
| if_name | the interface through which packets should not be accepted. |
| vif_name | the vif through which packets should not be accepted. |
| ip_protocol | the 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. |
Implements PimNode.
| XrlRouter& XrlPimNode::xrl_router | ( | ) | [inline] |
| const XrlRouter& XrlPimNode::xrl_router | ( | ) | const [inline] |