xorp

XrlMld6igmpNode Class Reference

Inheritance diagram for XrlMld6igmpNode:
Mld6igmpNodeCli XrlMld6igmpTargetBase XrlStdRouter Mld6igmpNode Mld6igmpNodeCli XrlMld6igmpTargetBase XrlStdRouter Mld6igmpNode

List of all members.

Classes

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  RegisterUnregisterReceiver
 Class for handling the task to register/unregister with the FEA as a receiver on an interface. More...
class  SendAddDeleteMembership
 Class for handling the queue of sending Add/Delete membership requests. 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

 XrlMld6igmpNode (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)
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_mld6igmp ()
int disable_mld6igmp ()
int start_mld6igmp ()
int stop_mld6igmp ()
void send_register_unregister_interest ()
void send_register_unregister_receiver ()
void send_join_leave_multicast_group ()
void send_protocol_message ()
 Send a protocol message through the FEA.
 XrlMld6igmpNode (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)
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_mld6igmp ()
int disable_mld6igmp ()
int start_mld6igmp ()
int stop_mld6igmp ()
void send_register_unregister_interest ()
void send_register_unregister_receiver ()
void send_join_leave_multicast_group ()
void send_protocol_message ()

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 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 raw_packet6_client_0_1_recv (const string &if_name, const string &vif_name, const IPv6 &src_address, const IPv6 &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 XrlAtomList &ext_headers_type, const XrlAtomList &ext_headers_payload, const vector< uint8_t > &payload)
 Receive an IPv6 packet from a raw socket.
XrlCmdError mld6igmp_0_1_enable_vif (const string &vif_name, const bool &enable)
 Enable/disable/start/stop a MLD6IGMP vif interface.
XrlCmdError mld6igmp_0_1_start_vif (const string &vif_name)
XrlCmdError mld6igmp_0_1_stop_vif (const string &vif_name)
XrlCmdError mld6igmp_0_1_enable_all_vifs (const bool &enable)
 Enable/disable/start/stop all MLD6IGMP vif interfaces.
XrlCmdError mld6igmp_0_1_start_all_vifs ()
XrlCmdError mld6igmp_0_1_stop_all_vifs ()
XrlCmdError mld6igmp_0_1_enable_mld6igmp (const bool &enable)
 Enable/disable/start/stop the MLD6IGMP protocol.
XrlCmdError mld6igmp_0_1_start_mld6igmp ()
XrlCmdError mld6igmp_0_1_stop_mld6igmp ()
XrlCmdError mld6igmp_0_1_enable_cli (const bool &enable)
 Enable/disable/start/stop the MLD6IGMP CLI access.
XrlCmdError mld6igmp_0_1_start_cli ()
XrlCmdError mld6igmp_0_1_stop_cli ()
XrlCmdError mld6igmp_0_1_get_vif_proto_version (const string &vif_name, uint32_t &proto_version)
 Get the configured protocol version per interface.
XrlCmdError mld6igmp_0_1_set_vif_proto_version (const string &vif_name, const uint32_t &proto_version)
 Set the protocol version per interface.
XrlCmdError mld6igmp_0_1_reset_vif_proto_version (const string &vif_name)
 Reset the protocol version per interface to its default value.
XrlCmdError mld6igmp_0_1_get_vif_ip_router_alert_option_check (const string &vif_name, bool &enabled)
 Get the IP Router Alert option check per interface for received packets.
XrlCmdError mld6igmp_0_1_set_vif_ip_router_alert_option_check (const string &vif_name, const bool &enable)
 Set the IP Router Alert option check per interface for received packets.
XrlCmdError mld6igmp_0_1_reset_vif_ip_router_alert_option_check (const string &vif_name)
 Reset the IP Router Alert option check per interface for received packets to its default value.
XrlCmdError mld6igmp_0_1_get_vif_query_interval (const string &vif_name, uint32_t &interval_sec, uint32_t &interval_usec)
 Get the Query Interval per interface.
XrlCmdError mld6igmp_0_1_set_vif_query_interval (const string &vif_name, const uint32_t &interval_sec, const uint32_t &interval_usec)
 Set the Query Interval per interface.
XrlCmdError mld6igmp_0_1_reset_vif_query_interval (const string &vif_name)
 Reset the Query Interval per interface to its default value.
XrlCmdError mld6igmp_0_1_get_vif_query_last_member_interval (const string &vif_name, uint32_t &interval_sec, uint32_t &interval_usec)
 Get the Last Member Query Interval per interface.
XrlCmdError mld6igmp_0_1_set_vif_query_last_member_interval (const string &vif_name, const uint32_t &interval_sec, const uint32_t &interval_usec)
 Set the Last Member Query Interval per interface.
XrlCmdError mld6igmp_0_1_reset_vif_query_last_member_interval (const string &vif_name)
 Reset the Last Member Query Interval per interface to its default value.
XrlCmdError mld6igmp_0_1_get_vif_query_response_interval (const string &vif_name, uint32_t &interval_sec, uint32_t &interval_usec)
 Get the Query Response Interval per interface.
XrlCmdError mld6igmp_0_1_set_vif_query_response_interval (const string &vif_name, const uint32_t &interval_sec, const uint32_t &interval_usec)
 Set the Query Response Interval per interface.
XrlCmdError mld6igmp_0_1_reset_vif_query_response_interval (const string &vif_name)
 Reset the Query Response Interval per interface to its default value.
XrlCmdError mld6igmp_0_1_get_vif_robust_count (const string &vif_name, uint32_t &robust_count)
 Get the Robustness Variable count per interface.
XrlCmdError mld6igmp_0_1_set_vif_robust_count (const string &vif_name, const uint32_t &robust_count)
 Set the Robustness Variable count per interface.
XrlCmdError mld6igmp_0_1_reset_vif_robust_count (const string &vif_name)
 Reset the Robustness Variable count per interface to its default value.
XrlCmdError mld6igmp_0_1_log_trace_all (const bool &enable)
 Enable/disable the MLD6IGMP trace log for all operations.
XrlCmdError mld6igmp_0_1_add_protocol4 (const string &xrl_sender_name, const string &protocol_name, const uint32_t &protocol_id, const string &vif_name, const uint32_t &vif_index)
 Add/delete a client protocol in the MLD/IGMP protocol.
XrlCmdError mld6igmp_0_1_add_protocol6 (const string &xrl_sender_name, const string &protocol_name, const uint32_t &protocol_id, const string &vif_name, const uint32_t &vif_index)
XrlCmdError mld6igmp_0_1_delete_protocol4 (const string &xrl_sender_name, const string &protocol_name, const uint32_t &protocol_id, const string &vif_name, const uint32_t &vif_index)
XrlCmdError mld6igmp_0_1_delete_protocol6 (const string &xrl_sender_name, const string &protocol_name, const uint32_t &protocol_id, const string &vif_name, const uint32_t &vif_index)
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 raw_packet6_client_0_1_recv (const string &if_name, const string &vif_name, const IPv6 &src_address, const IPv6 &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 XrlAtomList &ext_headers_type, const XrlAtomList &ext_headers_payload, const vector< uint8_t > &payload)
 Receive an IPv6 packet from a raw socket.
XrlCmdError mld6igmp_0_1_enable_vif (const string &vif_name, const bool &enable)
 Enable/disable/start/stop a MLD6IGMP vif interface.
XrlCmdError mld6igmp_0_1_start_vif (const string &vif_name)
XrlCmdError mld6igmp_0_1_stop_vif (const string &vif_name)
XrlCmdError mld6igmp_0_1_enable_all_vifs (const bool &enable)
 Enable/disable/start/stop all MLD6IGMP vif interfaces.
XrlCmdError mld6igmp_0_1_start_all_vifs ()
XrlCmdError mld6igmp_0_1_stop_all_vifs ()
XrlCmdError mld6igmp_0_1_enable_mld6igmp (const bool &enable)
 Enable/disable/start/stop the MLD6IGMP protocol.
XrlCmdError mld6igmp_0_1_start_mld6igmp ()
XrlCmdError mld6igmp_0_1_stop_mld6igmp ()
XrlCmdError mld6igmp_0_1_enable_cli (const bool &enable)
 Enable/disable/start/stop the MLD6IGMP CLI access.
XrlCmdError mld6igmp_0_1_start_cli ()
XrlCmdError mld6igmp_0_1_stop_cli ()
XrlCmdError mld6igmp_0_1_get_vif_proto_version (const string &vif_name, uint32_t &proto_version)
 Get the configured protocol version per interface.
XrlCmdError mld6igmp_0_1_set_vif_proto_version (const string &vif_name, const uint32_t &proto_version)
 Set the protocol version per interface.
XrlCmdError mld6igmp_0_1_reset_vif_proto_version (const string &vif_name)
 Reset the protocol version per interface to its default value.
XrlCmdError mld6igmp_0_1_get_vif_ip_router_alert_option_check (const string &vif_name, bool &enabled)
 Get the IP Router Alert option check per interface for received packets.
XrlCmdError mld6igmp_0_1_set_vif_ip_router_alert_option_check (const string &vif_name, const bool &enable)
 Set the IP Router Alert option check per interface for received packets.
XrlCmdError mld6igmp_0_1_reset_vif_ip_router_alert_option_check (const string &vif_name)
 Reset the IP Router Alert option check per interface for received packets to its default value.
XrlCmdError mld6igmp_0_1_get_vif_query_interval (const string &vif_name, uint32_t &interval_sec, uint32_t &interval_usec)
 Get the Query Interval per interface.
XrlCmdError mld6igmp_0_1_set_vif_query_interval (const string &vif_name, const uint32_t &interval_sec, const uint32_t &interval_usec)
 Set the Query Interval per interface.
XrlCmdError mld6igmp_0_1_reset_vif_query_interval (const string &vif_name)
 Reset the Query Interval per interface to its default value.
XrlCmdError mld6igmp_0_1_get_vif_query_last_member_interval (const string &vif_name, uint32_t &interval_sec, uint32_t &interval_usec)
 Get the Last Member Query Interval per interface.
XrlCmdError mld6igmp_0_1_set_vif_query_last_member_interval (const string &vif_name, const uint32_t &interval_sec, const uint32_t &interval_usec)
 Set the Last Member Query Interval per interface.
XrlCmdError mld6igmp_0_1_reset_vif_query_last_member_interval (const string &vif_name)
 Reset the Last Member Query Interval per interface to its default value.
XrlCmdError mld6igmp_0_1_get_vif_query_response_interval (const string &vif_name, uint32_t &interval_sec, uint32_t &interval_usec)
 Get the Query Response Interval per interface.
XrlCmdError mld6igmp_0_1_set_vif_query_response_interval (const string &vif_name, const uint32_t &interval_sec, const uint32_t &interval_usec)
 Set the Query Response Interval per interface.
XrlCmdError mld6igmp_0_1_reset_vif_query_response_interval (const string &vif_name)
 Reset the Query Response Interval per interface to its default value.
XrlCmdError mld6igmp_0_1_get_vif_robust_count (const string &vif_name, uint32_t &robust_count)
 Get the Robustness Variable count per interface.
XrlCmdError mld6igmp_0_1_set_vif_robust_count (const string &vif_name, const uint32_t &robust_count)
 Set the Robustness Variable count per interface.
XrlCmdError mld6igmp_0_1_reset_vif_robust_count (const string &vif_name)
 Reset the Robustness Variable count per interface to its default value.
XrlCmdError mld6igmp_0_1_log_trace_all (const bool &enable)
 Enable/disable the MLD6IGMP trace log for all operations.
XrlCmdError mld6igmp_0_1_add_protocol4 (const string &xrl_sender_name, const string &protocol_name, const uint32_t &protocol_id, const string &vif_name, const uint32_t &vif_index)
 Add/delete a client protocol in the MLD/IGMP protocol.
XrlCmdError mld6igmp_0_1_add_protocol6 (const string &xrl_sender_name, const string &protocol_name, const uint32_t &protocol_id, const string &vif_name, const uint32_t &vif_index)
XrlCmdError mld6igmp_0_1_delete_protocol4 (const string &xrl_sender_name, const string &protocol_name, const uint32_t &protocol_id, const string &vif_name, const uint32_t &vif_index)
XrlCmdError mld6igmp_0_1_delete_protocol6 (const string &xrl_sender_name, const string &protocol_name, const uint32_t &protocol_id, const string &vif_name, const uint32_t &vif_index)

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)
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 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 send_add_membership (const string &dst_module_instance_name, xorp_module_id dst_module_id, uint32_t vif_index, const IPvX &source, const IPvX &group)
 Send "add membership" to a protocol that needs to be notified about multicast membership changes.
int send_delete_membership (const string &dst_module_instance_name, xorp_module_id dst_module_id, uint32_t vif_index, const IPvX &source, const IPvX &group)
 Send "delete membership" to a protocol that needs to be notified about multicast membership changes.
void send_add_delete_membership ()
void mld6igmp_client_send_add_delete_membership_cb (const XrlError &xrl_error)
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.
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)
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 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 send_add_membership (const string &dst_module_instance_name, xorp_module_id dst_module_id, uint32_t vif_index, const IPvX &source, const IPvX &group)
 Send "add membership" to a protocol that needs to be notified about multicast membership changes.
int send_delete_membership (const string &dst_module_instance_name, xorp_module_id dst_module_id, uint32_t vif_index, const IPvX &source, const IPvX &group)
 Send "delete membership" to a protocol that needs to be notified about multicast membership changes.
void send_add_delete_membership ()
void mld6igmp_client_send_add_delete_membership_cb (const XrlError &xrl_error)
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
IfMgrXrlMirror _ifmgr
XrlRawPacket4V0p1Client _xrl_fea_client4
XrlRawPacket6V0p1Client _xrl_fea_client6
XrlMld6igmpClientV0p1Client _xrl_mld6igmp_client_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
list< XrlTaskBase * > _xrl_tasks_queue
XorpTimer _xrl_tasks_queue_timer
list< SendAddDeleteMembership_send_add_delete_membership_queue
XorpTimer _send_add_delete_membership_queue_timer

Static Private Attributes

static const TimeVal RETRY_TIMEVAL = TimeVal(1, 0)

Member Function Documentation

int XrlMld6igmpNode::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 XrlMld6igmpNode::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.

XrlCmdError XrlMld6igmpNode::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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::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 XrlMld6igmpTargetBase.

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

Pure-virtual function that needs to be implemented to:

Request a startup of Xrl Target

Implements XrlMld6igmpTargetBase.

int XrlMld6igmpNode::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 XrlMld6igmpNode::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 XrlMld6igmpNode::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.

int XrlMld6igmpNode::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 XrlMld6igmpNode::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 Mld6igmpNode.

void XrlMld6igmpNode::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 Mld6igmpNode.

void XrlMld6igmpNode::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 Mld6igmpNode.

void XrlMld6igmpNode::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 Mld6igmpNode.

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

Called when Finder connection is established.

Note that this method overwrites an XrlRouter virtual method.

Reimplemented from XrlRouter.

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

Called when Finder connection is established.

Note that this method overwrites an XrlRouter virtual method.

Reimplemented from XrlRouter.

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

Called when Finder disconnect occurs.

Note that this method overwrites an XrlRouter virtual method.

Reimplemented from XrlRouter.

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

Called when Finder disconnect occurs.

Note that this method overwrites an XrlRouter virtual method.

Reimplemented from XrlRouter.

XrlCmdError XrlMld6igmpNode::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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::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 XrlMld6igmpTargetBase.

const IfMgrIfTree& XrlMld6igmpNode::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 Mld6igmpNode.

const IfMgrIfTree& XrlMld6igmpNode::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 Mld6igmpNode.

const ServiceBase* XrlMld6igmpNode::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 Mld6igmpNode.

const ServiceBase* XrlMld6igmpNode::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 Mld6igmpNode.

int XrlMld6igmpNode::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 Mld6igmpNode.

int XrlMld6igmpNode::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 Mld6igmpNode.

int XrlMld6igmpNode::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 Mld6igmpNode.

int XrlMld6igmpNode::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 Mld6igmpNode.

void XrlMld6igmpNode::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 Mld6igmpNode.

void XrlMld6igmpNode::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 Mld6igmpNode.

void XrlMld6igmpNode::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 Mld6igmpNode.

void XrlMld6igmpNode::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 Mld6igmpNode.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_add_protocol4 ( const string &  xrl_sender_name,
const string &  protocol_name,
const uint32_t &  protocol_id,
const string &  vif_name,
const uint32_t &  vif_index 
) [protected, virtual]

Add/delete a client protocol in the MLD/IGMP protocol.

Parameters:
xrl_sender_namethe XRL name of the originator of this XRL.
protocol_namethe name of the protocol to add/delete.
protocol_idthe ID of the protocol to add/delete (both sides must agree on the particular values).
vif_namethe name of the vif the protocol add/delete to apply to.
vif_indexthe index of the vif the protocol add/delete to apply to. The added protocol will receive Join/Leave membership information about same-LAN members for the particular vif.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_add_protocol4 ( const string &  xrl_sender_name,
const string &  protocol_name,
const uint32_t &  protocol_id,
const string &  vif_name,
const uint32_t &  vif_index 
) [protected, virtual]

Add/delete a client protocol in the MLD/IGMP protocol.

Parameters:
xrl_sender_namethe XRL name of the originator of this XRL.
protocol_namethe name of the protocol to add/delete.
protocol_idthe ID of the protocol to add/delete (both sides must agree on the particular values).
vif_namethe name of the vif the protocol add/delete to apply to.
vif_indexthe index of the vif the protocol add/delete to apply to. The added protocol will receive Join/Leave membership information about same-LAN members for the particular vif.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_enable_all_vifs ( const bool &  enable) [protected, virtual]

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

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_enable_all_vifs ( const bool &  enable) [protected, virtual]

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

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_enable_cli ( const bool &  enable) [protected, virtual]

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

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_enable_cli ( const bool &  enable) [protected, virtual]

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

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_enable_mld6igmp ( const bool &  enable) [protected, virtual]

Enable/disable/start/stop the MLD6IGMP protocol.

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_enable_mld6igmp ( const bool &  enable) [protected, virtual]

Enable/disable/start/stop the MLD6IGMP protocol.

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_enable_vif ( const string &  vif_name,
const bool &  enable 
) [protected, virtual]

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

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_enable_vif ( const string &  vif_name,
const bool &  enable 
) [protected, virtual]

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

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_ip_router_alert_option_check ( const string &  vif_name,
bool &  enabled 
) [protected, virtual]

Get the IP Router Alert option check per interface for received packets.

Parameters:
vif_namethe name of the vif to apply to.
enabledif true, then the IP Router Alert option check was enabled, otherwise it was disabled.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_ip_router_alert_option_check ( const string &  vif_name,
bool &  enabled 
) [protected, virtual]

Get the IP Router Alert option check per interface for received packets.

Parameters:
vif_namethe name of the vif to apply to.
enabledif true, then the IP Router Alert option check was enabled, otherwise it was disabled.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_query_interval ( const string &  vif_name,
uint32_t &  interval_sec,
uint32_t &  interval_usec 
) [protected, virtual]

Get the Query Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_query_interval ( const string &  vif_name,
uint32_t &  interval_sec,
uint32_t &  interval_usec 
) [protected, virtual]

Get the Query Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_query_last_member_interval ( const string &  vif_name,
uint32_t &  interval_sec,
uint32_t &  interval_usec 
) [protected, virtual]

Get the Last Member Query Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_query_last_member_interval ( const string &  vif_name,
uint32_t &  interval_sec,
uint32_t &  interval_usec 
) [protected, virtual]

Get the Last Member Query Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_query_response_interval ( const string &  vif_name,
uint32_t &  interval_sec,
uint32_t &  interval_usec 
) [protected, virtual]

Get the Query Response Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_query_response_interval ( const string &  vif_name,
uint32_t &  interval_sec,
uint32_t &  interval_usec 
) [protected, virtual]

Get the Query Response Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_robust_count ( const string &  vif_name,
uint32_t &  robust_count 
) [protected, virtual]

Get the Robustness Variable count per interface.

Parameters:
vif_namethe name of the vif to apply to.
robust_countthe count value.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_get_vif_robust_count ( const string &  vif_name,
uint32_t &  robust_count 
) [protected, virtual]

Get the Robustness Variable count per interface.

Parameters:
vif_namethe name of the vif to apply to.
robust_countthe count value.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_log_trace_all ( const bool &  enable) [protected, virtual]

Enable/disable the MLD6IGMP trace log for all operations.

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_log_trace_all ( const bool &  enable) [protected, virtual]

Enable/disable the MLD6IGMP trace log for all operations.

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

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_ip_router_alert_option_check ( const string &  vif_name) [protected, virtual]

Reset the IP Router Alert option check per interface for received packets to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_ip_router_alert_option_check ( const string &  vif_name) [protected, virtual]

Reset the IP Router Alert option check per interface for received packets to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_query_interval ( const string &  vif_name) [protected, virtual]

Reset the Query Interval per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_query_interval ( const string &  vif_name) [protected, virtual]

Reset the Query Interval per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_query_last_member_interval ( const string &  vif_name) [protected, virtual]

Reset the Last Member Query Interval per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_query_last_member_interval ( const string &  vif_name) [protected, virtual]

Reset the Last Member Query Interval per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_query_response_interval ( const string &  vif_name) [protected, virtual]

Reset the Query Response Interval per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_query_response_interval ( const string &  vif_name) [protected, virtual]

Reset the Query Response Interval per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_robust_count ( const string &  vif_name) [protected, virtual]

Reset the Robustness Variable count per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_reset_vif_robust_count ( const string &  vif_name) [protected, virtual]

Reset the Robustness Variable count per interface to its default value.

Parameters:
vif_namethe name of the vif to apply to.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_ip_router_alert_option_check ( const string &  vif_name,
const bool &  enable 
) [protected, virtual]

Set the IP Router Alert option check per interface for received packets.

Parameters:
vif_namethe name of the vif to apply to.
enableif true, then enable the IP Router Alert option check, otherwise disable it.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_ip_router_alert_option_check ( const string &  vif_name,
const bool &  enable 
) [protected, virtual]

Set the IP Router Alert option check per interface for received packets.

Parameters:
vif_namethe name of the vif to apply to.
enableif true, then enable the IP Router Alert option check, otherwise disable it.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_query_interval ( const string &  vif_name,
const uint32_t &  interval_sec,
const uint32_t &  interval_usec 
) [protected, virtual]

Set the Query Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_query_interval ( const string &  vif_name,
const uint32_t &  interval_sec,
const uint32_t &  interval_usec 
) [protected, virtual]

Set the Query Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_query_last_member_interval ( const string &  vif_name,
const uint32_t &  interval_sec,
const uint32_t &  interval_usec 
) [protected, virtual]

Set the Last Member Query Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_query_last_member_interval ( const string &  vif_name,
const uint32_t &  interval_sec,
const uint32_t &  interval_usec 
) [protected, virtual]

Set the Last Member Query Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_query_response_interval ( const string &  vif_name,
const uint32_t &  interval_sec,
const uint32_t &  interval_usec 
) [protected, virtual]

Set the Query Response Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_query_response_interval ( const string &  vif_name,
const uint32_t &  interval_sec,
const uint32_t &  interval_usec 
) [protected, virtual]

Set the Query Response Interval per interface.

Parameters:
vif_namethe name of the vif to apply to.
interval_secthe number of seconds in the interval.
interval_usecthe number of microseconds (in addition to interval_sec) in the interval.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_robust_count ( const string &  vif_name,
const uint32_t &  robust_count 
) [protected, virtual]

Set the Robustness Variable count per interface.

Parameters:
vif_namethe name of the vif to apply to.
robust_countthe count value.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::mld6igmp_0_1_set_vif_robust_count ( const string &  vif_name,
const uint32_t &  robust_count 
) [protected, virtual]

Set the Robustness Variable count per interface.

Parameters:
vif_namethe name of the vif to apply to.
robust_countthe count value.

Implements XrlMld6igmpTargetBase.

int XrlMld6igmpNode::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< Mld6igmpVif >.

int XrlMld6igmpNode::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< Mld6igmpVif >.

XrlCmdError XrlMld6igmpNode::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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::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 XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::raw_packet6_client_0_1_recv ( const string &  if_name,
const string &  vif_name,
const IPv6 src_address,
const IPv6 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 XrlAtomList ext_headers_type,
const XrlAtomList ext_headers_payload,
const vector< uint8_t > &  payload 
) [protected, virtual]

Receive an IPv6 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 (IP traffic class 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.
ext_headers_typea list of u32 integers with the types of the optional extention headers.
ext_headers_payloada list of payload data, one for each optional extention header. The number of entries must match ext_headers_type.

Implements XrlMld6igmpTargetBase.

XrlCmdError XrlMld6igmpNode::raw_packet6_client_0_1_recv ( const string &  if_name,
const string &  vif_name,
const IPv6 src_address,
const IPv6 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 XrlAtomList ext_headers_type,
const XrlAtomList ext_headers_payload,
const vector< uint8_t > &  payload 
) [protected, virtual]

Receive an IPv6 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 (IP traffic class 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.
ext_headers_typea list of u32 integers with the types of the optional extention headers.
ext_headers_payloada list of payload data, one for each optional extention header. The number of entries must match ext_headers_type.

Implements XrlMld6igmpTargetBase.

int XrlMld6igmpNode::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 Mld6igmpNode.

int XrlMld6igmpNode::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 Mld6igmpNode.

int XrlMld6igmpNode::send_add_membership ( const string &  dst_module_instance_name,
xorp_module_id  dst_module_id,
uint32_t  vif_index,
const IPvX source,
const IPvX group 
) [private, virtual]

Send "add membership" to a protocol that needs to be notified about multicast membership changes.

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

Parameters:
dst_module_instance_namethe module instance name of the protocol to notify.
dst_module_idthe module ID (xorp_module_id) of the protocol to notify.
vif_indexthe vif index of the interface with membership change.
sourcethe source address of the (S,G) or (*,G) entry that has changed membership. In case of Any-Source Multicast, it is IPvX::ZERO().
groupthe group address.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements Mld6igmpNode.

int XrlMld6igmpNode::send_add_membership ( const string &  dst_module_instance_name,
xorp_module_id  dst_module_id,
uint32_t  vif_index,
const IPvX source,
const IPvX group 
) [private, virtual]

Send "add membership" to a protocol that needs to be notified about multicast membership changes.

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

Parameters:
dst_module_instance_namethe module instance name of the protocol to notify.
dst_module_idthe module ID (xorp_module_id) of the protocol to notify.
vif_indexthe vif index of the interface with membership change.
sourcethe source address of the (S,G) or (*,G) entry that has changed membership. In case of Any-Source Multicast, it is IPvX::ZERO().
groupthe group address.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements Mld6igmpNode.

int XrlMld6igmpNode::send_delete_membership ( const string &  dst_module_instance_name,
xorp_module_id  dst_module_id,
uint32_t  vif_index,
const IPvX source,
const IPvX group 
) [private, virtual]

Send "delete membership" to a protocol that needs to be notified about multicast membership changes.

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

Parameters:
dst_module_instance_namethe module instance name of the protocol to notify.
dst_module_idthe module ID (xorp_module_id) of the protocol to notify.
vif_indexthe vif index of the interface with membership change.
sourcethe source address of the (S,G) or (*,G) entry that has changed membership. In case of Any-Source Multicast, it is IPvX::ZERO().
groupthe group address of the (S,G) or (*,G) entry that has changed.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements Mld6igmpNode.

int XrlMld6igmpNode::send_delete_membership ( const string &  dst_module_instance_name,
xorp_module_id  dst_module_id,
uint32_t  vif_index,
const IPvX source,
const IPvX group 
) [private, virtual]

Send "delete membership" to a protocol that needs to be notified about multicast membership changes.

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

Parameters:
dst_module_instance_namethe module instance name of the protocol to notify.
dst_module_idthe module ID (xorp_module_id) of the protocol to notify.
vif_indexthe vif index of the interface with membership change.
sourcethe source address of the (S,G) or (*,G) entry that has changed membership. In case of Any-Source Multicast, it is IPvX::ZERO().
groupthe group address of the (S,G) or (*,G) entry that has changed.
Returns:
XORP_OK on success, otherwise XORP_ERROR.

Implements Mld6igmpNode.

int XrlMld6igmpNode::shutdown ( ) [virtual]

Shutdown the node operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoState.

int XrlMld6igmpNode::shutdown ( ) [virtual]

Shutdown the node operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoState.

int XrlMld6igmpNode::startup ( ) [virtual]

Startup the node operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoState.

int XrlMld6igmpNode::startup ( ) [virtual]

Startup the node operation.

Returns:
XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoState.

int XrlMld6igmpNode::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 Mld6igmpNode.

int XrlMld6igmpNode::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 Mld6igmpNode.

XrlRouter& XrlMld6igmpNode::xrl_router ( ) [inline]

Get a reference to the XrlRouter instance.

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

Get a reference to the XrlRouter instance.

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

Get a const reference to the XrlRouter instance.

Returns:
a const reference to the XrlRouter (XrlRouter) instance.
const XrlRouter& XrlMld6igmpNode::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