There should be one node per PIM instance. There should be one instance per address family.
| PimNode (int family, xorp_module_id module_id, EventLoop& eventloop) | PimNode | 
Constructor for a given address family, module ID, and event loop.
Parameters:
| family | the address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively). | 
| module_id | the module ID (xorp_module_id). Should be XORP_MODULE_PIMSM Note: if/after PIM-DM is implemented, XORP_MODULE_PIMDM would be allowed as well. | 
| eventloop | the event loop to use. | 
| ~PimNode () | ~PimNode | 
[virtual]
| int		 start () | start | 
Start the node operation.
Start the PIM protocol. After the startup operations are completed, PimNode::final_start() is called internally to complete the job.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 stop () | stop | 
Stop the node operation.
Gracefully stop the PIM protocol. The graceful stop will attempt to send Join/Prune, Assert, etc. messages for all multicast routing entries to gracefully clean-up state with neighbors. After the multicast routing entries cleanup is completed, PimNode::final_stop() is called internally to complete the job. This method, unlike start(), will stop the protocol operation on all interfaces.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 final_start () | final_start | 
Completely start the node operation.
This method should be called internally after PimNode::start() to complete the job.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 final_stop () | final_stop | 
Completely stop the node operation.
This method should be called internally after PimNode::stop() to complete the job.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| void	 enable () | enable | 
Enable node operation.
If an unit is not enabled, it cannot be start, or pending-start.
| void	 disable () | disable | 
Disable node operation.
If an unit is disabled, it cannot be start or pending-start. If the unit was runnning, it will be stop first.
| int		 add_vif (const Vif& vif, string& error_msg) | add_vif | 
Install a new PIM vif.
Parameters:
| vif | vif information about the new PimVif to install. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoNode.
| int		 add_vif (const string& vif_name, uint16_t vif_index,
			string& error_msg) | add_vif | 
Install a new PIM vif.
Parameters:
| vif_name | the name of the new vif. | 
| vif_index | the vif index of the new vif. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoNode.
| int		 delete_vif (const string& vif_name, string& error_msg) | delete_vif | 
Delete an existing PIM vif.
Parameters:
| vif_name | the name of the vif to delete. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoNode.
| int		 set_vif_flags (const string& vif_name,
			      bool is_pim_register, bool is_p2p,
			      bool is_loopback, bool is_multicast,
			      bool is_broadcast, bool is_up,
			      string& error_msg) | set_vif_flags | 
Set flags to a vif.
Parameters:
| vif_name | the name of the vif. | 
| is_pim_register | true if this is a PIM Register vif. | 
| is_p2p | true if this is a point-to-point vif. | 
| is_loopback | true if this is a loopback interface. | 
| is_multicast | rue if the vif is multicast-capable. | 
| is_broadcast | true if the vif is broadcast-capable. | 
| is_up | true if the vif is UP and running. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 add_vif_addr (const string& vif_name,
			     const IPvX& addr,
			     const IPvXNet& subnet_addr,
			     const IPvX& broadcast_addr,
			     const IPvX& peer_addr,
			     string& error_msg) | add_vif_addr | 
Add a new address to a vif, or update an existing address.
Parameters:
| vif_name | the name of the vif. | 
| addr | the unicast address to add. | 
| subnet_addr | the subnet address to add. | 
| broadcast_addr | the broadcast address (when applicable). | 
| peer_addr | the peer address (when applicable). | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 delete_vif_addr (const string& vif_name,
				const IPvX& addr,
				string& error_msg) | delete_vif_addr | 
Delete an address from a vif.
Parameters:
| vif_name | the name of the vif. | 
| addr | the unicast address to delete. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 enable_vif (const string& vif_name, string& error_msg) | enable_vif | 
Enable an existing PIM vif.
Parameters:
| vif_name | the name of the vif to enable. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 disable_vif (const string& vif_name, string& error_msg) | disable_vif | 
Disable an existing PIM vif.
Parameters:
| vif_name | the name of the vif to disable. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 start_vif (const string& vif_name, string& error_msg) | start_vif | 
Start an existing PIM vif.
Parameters:
| vif_name | the name of the vif to start. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 stop_vif (const string& vif_name, string& error_msg) | stop_vif | 
Stop an existing PIM vif.
Parameters:
| vif_name | the name of the vif to start. | 
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 start_all_vifs () | start_all_vifs | 
Start PIM on all enabled interfaces.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 stop_all_vifs () | stop_all_vifs | 
Stop PIM on all interfaces it was running on.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 enable_all_vifs () | enable_all_vifs | 
Enable PIM on all interfaces.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 disable_all_vifs () | disable_all_vifs | 
Disable PIM on all interfaces.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| void	 delete_all_vifs () | delete_all_vifs | 
| void	 vif_shutdown_completed (const string& vif_name) | vif_shutdown_completed | 
A method called when a vif has completed its shutdown.
Parameters:
| vif_name | the name of the vif that has completed its shutdown. | 
| int		 proto_recv (const string& src_module_instance_name,
			   xorp_module_id src_module_id,
			   uint16_t vif_index,
			   const IPvX& src, const IPvX& dst,
			   int ip_ttl, int ip_tos, bool is_router_alert,
			   const uint8_t *rcvbuf, size_t rcvlen) | proto_recv | 
Receive a protocol message.
Parameters:
| src_module_instance_name | the module instance name of the module-origin of the message. | 
| src_module_id | the module ID (xorp_module_id) of the module-origin of the message. | 
| vif_index | the vif index of the interface used to receive this message. | 
| src | the source address of the message. | 
| dst | the destination address of the message. | 
| ip_ttl | the IP TTL of the message. If it has a negative value, it should be ignored. | 
| ip_tos | the IP TOS of the message. If it has a negative value, it should be ignored. | 
| is_router_alert | if true, the IP Router Alert option in the IP packet was set (when applicable). | 
| rcvbuf | the data buffer with the received message. | 
| rcvlen | the data length in rcvbuf. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoNode.
| int		 pim_send (uint16_t vif_index,
			 const IPvX& src, const IPvX& dst,
			 int ip_ttl, int ip_tos, bool is_router_alert,
			 buffer_t *buffer) | pim_send | 
Send a protocol message.
Note: this method uses the pure virtual ProtoNode::proto_send() method that is implemented somewhere else (in a class that inherits this one).
Parameters:
| vif_index | the vif index of the vif to send the message. | 
| src | the source address of the message. | 
| dst | the destination address of the message. | 
| ip_ttl | the TTL of the IP packet to send. If it has a negative value, the TTL will be set by the lower layers. | 
| ip_tos | the TOS of the IP packet to send. If it has a negative value, the TOS will be set by the lower layers. | 
| is_router_alert | if true, set the IP Router Alert option in the IP packet to send (when applicable). | 
| buffer | the data buffer with the message to send. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 signal_message_recv (const string& src_module_instance_name,
				    xorp_module_id src_module_id,
				    int message_type,
				    uint16_t vif_index,
				    const IPvX& src,
				    const IPvX& dst,
				    const uint8_t *rcvbuf,
				    size_t rcvlen) | signal_message_recv | 
Receive a signal message from the kernel.
#define MFEA_KERNEL_MESSAGE_NOCACHE 1 #define MFEA_KERNEL_MESSAGE_WRONGVIF 2 #define MFEA_KERNEL_MESSAGE_WHOLEPKT 3
Parameters:
| src_module_instance_name | the module instance name of the module-origin of the message. | 
| src_module_id | the module ID (xorp_module_id) of the module-origin of the message. | 
| message_type | the message type. Currently, the type of messages received from the kernel are: | 
| vif_index | the vif index of the related interface (message-specific relation). | 
| src | the source address in the message. | 
| dst | the destination address in the message. | 
| rcvbuf | the data buffer with the additional information in the message. | 
| rcvlen | the data length in rcvbuf. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
Reimplemented from ProtoNode.
| int		 signal_message_send (const string&, 
				    xorp_module_id, 
				    int		, 
				    uint16_t	, 
				    const IPvX&	, 
				    const IPvX&	, 
				    const uint8_t * , 
				    size_t	  
	) | signal_message_send | 
Send signal message: not used by PIM.
Reimplemented from ProtoNode.
| int  start_protocol_kernel_vif (uint16_t vif_index) | start_protocol_kernel_vif | 
[pure virtual]
Start a protocol vif with the kernel.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
Parameters:
| vif_index | the vif index of the interface to start. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  stop_protocol_kernel_vif (uint16_t vif_index) | stop_protocol_kernel_vif | 
[pure virtual]
Stop a protocol vif with the kernel.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
Parameters:
| vif_index | the vif index of the interface to stop. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  join_multicast_group (uint16_t vif_index,
				     const IPvX& multicast_group) | join_multicast_group | 
[pure 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:
| vif_index | the vif index of the interface to join. | 
| multicast_group | the multicast group address. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  leave_multicast_group (uint16_t vif_index,
				      const IPvX& multicast_group) | leave_multicast_group | 
[pure 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:
| vif_index | the vif index of the interface to leave. | 
| multicast_group | the multicast group address. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  add_mfc_to_kernel (const PimMfc& pim_mfc) | add_mfc_to_kernel | 
[pure virtual]
Add a Multicast Forwarding Cache to the kernel.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
Parameters:
| pim_mfc | the PimMfc entry to add. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  delete_mfc_from_kernel (const PimMfc& pim_mfc) | delete_mfc_from_kernel | 
[pure virtual]
Delete a Multicast Forwarding Cache to the kernel.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
Parameters:
| pim_mfc | the PimMfc entry to delete. | 
Returns: XORP_OK on success, otherwise XORP_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_dataflow_monitor | 
[pure virtual]
Add a dataflow monitor to the MFEA.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
Note: either is_threshold_in_packets or is_threshold_in_bytes (or both) must be true. Note: either is_geq_upcall or is_leq_upcall (but not both) must be true.
Parameters:
| 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 "<=". | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| 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_dataflow_monitor | 
[pure virtual]
Delete a dataflow monitor from the MFEA.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
Note: either is_threshold_in_packets or is_threshold_in_bytes (or both) must be true. Note: either is_geq_upcall or is_leq_upcall (but not both) must be true.
Parameters:
| 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 "<=". | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  delete_all_dataflow_monitor (const IPvX& source_addr,
					    const IPvX& group_addr) | delete_all_dataflow_monitor | 
[pure virtual]
Delete all dataflow monitors for a given source and group address from the MFEA.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
Parameters:
| source_addr | the source address. | 
| group_addr | the group address. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  add_protocol_mld6igmp (uint16_t vif_index) | add_protocol_mld6igmp | 
[pure virtual]
Register this protocol with the MLD/IGMP module.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
By registering this protocol with the MLD/IGMP module, it will be notified about multicast group membership events.
Parameters:
| vif_index | the vif index of the interface to register with the MLD/IGMP module. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int  delete_protocol_mld6igmp (uint16_t vif_index) | delete_protocol_mld6igmp | 
[pure virtual]
Deregister this protocol with the MLD/IGMP module.
This is a pure virtual function, and it must be implemented by the communication-wrapper class that inherits this base class.
Parameters:
| vif_index | the vif index of the interface to deregister with the MLD/IGMP module. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 add_membership (uint16_t vif_index, const IPvX& source,
			       const IPvX& group) | add_membership | 
Receive "add membership" from the MLD/IGMP module.
Parameters:
| vif_index | the vif index of the interface with membership change. | 
| source | the source address of the (S,G) or (*,G) entry that has changed membership. In case of Any-Source Multicast, it is IPvX::ZERO(). | 
| group | the group address. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 delete_membership (uint16_t vif_index, const IPvX& source,
				  const IPvX& group) | delete_membership | 
Receive "delete membership" from the MLD/IGMP module.
Parameters:
| vif_index | the vif index of the interface with membership change. | 
| source | the source address of the (S,G) or (*,G) entry that has changed membership. In case of Any-Source Multicast, it is IPvX::ZERO(). | 
| group | the group address. | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| bool  is_directly_connected (const PimVif& pim_vif,
			       const IPvX& ipaddr_test) | is_directly_connected | 
[const]
Test if an address is directly connected to a specified virtual interface.
Note that the virtual interface the address is directly connected to must be UP.
Parameters:
| pim_vif | the virtual interface to test against. | 
| ipaddr_test | the address to test. | 
Returns: true if ipaddr_test is directly connected to vif, otherwise false.
| PimVif	* vif_find_pim_register () | vif_find_pim_register | 
[const]
Get the PIM-Register virtual interface.
Returns: the PIM-Register virtual interface if exists, otherwise NULL.
| uint16_t	 pim_register_vif_index () | pim_register_vif_index | 
[const]
Get the vif index of the PIM-Register virtual interface.
Returns: the vif index of the PIM-Register virtual interface if exists, otherwise Vif::VIF_INDEX_INVALID.
| PimMrt&	 pim_mrt () | pim_mrt | 
Get the PIM Multicast Routing Table.
Returns: a reference to the PIM Multicast Routing Table (PimMrt).
| PimMribTable&  pim_mrib_table () | pim_mrib_table | 
Get the table with the Multicast Routing Information Base used by PIM.
Returns: a reference to the table with the Multicast Routing Information Base used by PIM (PimMribTable).
| PimBsr&	 pim_bsr () | pim_bsr | 
Get the PIM Bootstrap entity.
Returns: a reference to the PIM Bootstrap entity (PimBsr).
| RpTable&	 rp_table () | rp_table | 
Get the PIM RP table.
Returns: a reference to the PIM RP table (RpTable).
| PimScopeZoneTable&  pim_scope_zone_table () | pim_scope_zone_table | 
Get the PIM Scope-Zone table.
Returns: a reference to the PIM Scope-Zone table.
| Mifset&	 pim_vifs_dr () | pim_vifs_dr | 
Get the set of vifs for which this PIM note is a Designated Router.
Returns: the Mifset indicating the vifs for which this PIM node is a Designated Router.
| void	 set_pim_vifs_dr (uint16_t vif_index, bool v) | set_pim_vifs_dr | 
Set/reset a virtual interface as a Designated Router.
Parameters:
| vif_index | the vif index of the virtual interface to set/reset as a Designated Router. | 
| v | if true, set the virtual interface as a Designated Router, otherwise reset it. | 
| PimNbr	* pim_nbr_rpf_find (const IPvX& dst_addr) | pim_nbr_rpf_find | 
Find the RPF PIM neighbor for a given destination address.
Parameters:
| dst_addr | the destination address to lookup. | 
Returns: the RPF PIM neighbor (PimNbr) toward dst_addr if found, otherwise NULL.
| PimNbr	* pim_nbr_rpf_find (const IPvX& dst_addr, const Mrib *mrib) | pim_nbr_rpf_find | 
Find the RPF PIM neighbor for a given destination address, and already known Mrib entry.
Parameters:
| dst_addr | the destination address to lookup. | 
| mrib | the already known Mrib entry. | 
Returns: the RPF PIM neighbor (PimNbr) toward dst_addr if found, otherwise NULL.
| PimNbr	* pim_nbr_find (const IPvX& nbr_addr) | pim_nbr_find | 
Find a PIM neighbor by its address.
Note: this method should be used in very limited cases, because in case of IPv6 a neighbor's IP address may be non-unique within the PIM neighbor database due to scope issues.
Parameters:
| nbr_addr | the address of the PIM neighbor. | 
Returns: the PIM neighbor (PimNbr) if found, otherwise NULL.
| void	 enable_bsr () | enable_bsr | 
Enable the PIM Bootstrap mechanism.
| void	 disable_bsr () | disable_bsr | 
Disable the PIM Bootstrap mechanism.
| int		 start_bsr () | start_bsr | 
Start the Bootstrap mechanism.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 stop_bsr () | stop_bsr | 
Stop the Bootstrap mechanism.
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 set_config_all_vifs_done (string& error_msg) | set_config_all_vifs_done | 
Complete the set of vif configuration changes.
Parameters:
| error_msg | the error message (if error). | 
Returns: XORP_OK on success, otherwise XORP_ERROR.
| int		 get_vif_proto_version (const string& vif_name,
				      int& proto_version,
				      string& error_msg) | get_vif_proto_version | 
| int		 set_vif_proto_version (const string& vif_name,
				      int proto_version,
				      string& error_msg) | set_vif_proto_version | 
| int		 reset_vif_proto_version (const string& vif_name,
					string& error_msg) | reset_vif_proto_version | 
| int		 get_vif_hello_triggered_delay (const string& vif_name,
					      uint16_t& hello_triggered_delay,
					      string& error_msg) | get_vif_hello_triggered_delay | 
| int		 set_vif_hello_triggered_delay (const string& vif_name,
					      uint16_t hello_triggered_delay,
					      string& error_msg) | set_vif_hello_triggered_delay | 
| int		 reset_vif_hello_triggered_delay (const string& vif_name,
						string& error_msg) | reset_vif_hello_triggered_delay | 
| int		 get_vif_hello_period (const string& vif_name,
				     uint16_t& hello_period,
				     string& error_msg) | get_vif_hello_period | 
| int		 set_vif_hello_period (const string& vif_name,
				     uint16_t hello_period,
				     string& error_msg) | set_vif_hello_period | 
| int		 reset_vif_hello_period (const string& vif_name,
				       string& error_msg) | reset_vif_hello_period | 
| int		 get_vif_hello_holdtime (const string& vif_name,
				       uint16_t& hello_holdtime,
				       string& error_msg) | get_vif_hello_holdtime | 
| int		 set_vif_hello_holdtime (const string& vif_name,
				       uint16_t	hello_holdtime,
				       string& error_msg) | set_vif_hello_holdtime | 
| int		 reset_vif_hello_holdtime (const string& vif_name,
					 string& error_msg) | reset_vif_hello_holdtime | 
| int		 get_vif_dr_priority (const string& vif_name,
				    uint32_t& dr_priority,
				    string& error_msg) | get_vif_dr_priority | 
| int		 set_vif_dr_priority (const string& vif_name,
				    uint32_t dr_priority,
				    string& error_msg) | set_vif_dr_priority | 
| int		 reset_vif_dr_priority (const string& vif_name,
				      string& error_msg) | reset_vif_dr_priority | 
| int		 get_vif_lan_delay (const string&	vif_name,
				  uint16_t& lan_delay,
				  string& error_msg) | get_vif_lan_delay | 
| int		 set_vif_lan_delay (const string&	vif_name,
				  uint16_t lan_delay,
				  string& error_msg) | set_vif_lan_delay | 
| int		 reset_vif_lan_delay (const string& vif_name,
				    string& error_msg) | reset_vif_lan_delay | 
| int		 get_vif_override_interval (const string&	vif_name,
					  uint16_t& override_interval,
					  string& error_msg) | get_vif_override_interval | 
| int		 set_vif_override_interval (const string&	vif_name,
					  uint16_t override_interval,
					  string& error_msg) | set_vif_override_interval | 
| int		 reset_vif_override_interval (const string& vif_name,
					    string& error_msg) | reset_vif_override_interval | 
| int		 get_vif_is_tracking_support_disabled (const string& vif_name,
						     bool& is_tracking_support_disabled,
						     string& error_msg) | get_vif_is_tracking_support_disabled | 
| int		 set_vif_is_tracking_support_disabled (const string& vif_name,
						     bool is_tracking_support_disabled,
						     string& error_msg) | set_vif_is_tracking_support_disabled | 
| int		 reset_vif_is_tracking_support_disabled (const string& vif_name,
						       string& error_msg) | reset_vif_is_tracking_support_disabled | 
| int		 get_vif_accept_nohello_neighbors (const string& vif_name,
						 bool& accept_nohello_neighbors,
						 string& error_msg) | get_vif_accept_nohello_neighbors | 
| int		 set_vif_accept_nohello_neighbors (const string& vif_name,
						 bool accept_nohello_neighbors,
						 string& error_msg) | set_vif_accept_nohello_neighbors | 
| int		 reset_vif_accept_nohello_neighbors (const string& vif_name,
						   string& error_msg) | reset_vif_accept_nohello_neighbors | 
| int		 get_vif_join_prune_period (const string&	vif_name,
					  uint16_t& join_prune_period,
					  string& error_msg) | get_vif_join_prune_period | 
| int		 set_vif_join_prune_period (const string&	vif_name,
					  uint16_t join_prune_period,
					  string& error_msg) | set_vif_join_prune_period | 
| int		 reset_vif_join_prune_period (const string& vif_name,
					    string& error_msg) | reset_vif_join_prune_period | 
| int		 get_switch_to_spt_threshold (bool& is_enabled,
					    uint32_t& interval_sec,
					    uint32_t& bytes,
					    string& error_msg) | get_switch_to_spt_threshold | 
| int		 set_switch_to_spt_threshold (bool is_enabled,
					    uint32_t interval_sec,
					    uint32_t bytes,
					    string& error_msg) | set_switch_to_spt_threshold | 
| int		 reset_switch_to_spt_threshold (string& error_msg) | reset_switch_to_spt_threshold | 
| int		 add_config_scope_zone_by_vif_name (const IPvXNet& scope_zone_id,
						  const string& vif_name,
						  string& error_msg) | add_config_scope_zone_by_vif_name | 
| int		 add_config_scope_zone_by_vif_addr (const IPvXNet& scope_zone_id,
						  const IPvX& vif_addr,
						  string& error_msg) | add_config_scope_zone_by_vif_addr | 
| int		 delete_config_scope_zone_by_vif_name (const IPvXNet& scope_zone_id,
						     const string& vif_name,
						     string& error_msg) | delete_config_scope_zone_by_vif_name | 
| int		 delete_config_scope_zone_by_vif_addr (const IPvXNet& scope_zone_id,
						     const IPvX& vif_addr,
						     string& error_msg) | delete_config_scope_zone_by_vif_addr | 
| int		 add_config_cand_bsr_by_vif_name (const IPvXNet& scope_zone_id,
						bool is_scope_zone,
						const string& vif_name,
						uint8_t bsr_priority,
						uint8_t hash_mask_len,
						string& error_msg) | add_config_cand_bsr_by_vif_name | 
| int		 add_config_cand_bsr_by_addr (const IPvXNet& scope_zone_id,
					    bool is_scope_zone,
					    const IPvX& my_cand_bsr_addr,
					    uint8_t bsr_priority,
					    uint8_t hash_mask_len,
					    string& error_msg) | add_config_cand_bsr_by_addr | 
| int		 delete_config_cand_bsr (const IPvXNet& scope_zone_id,
				       bool is_scope_zone,
				       string& error_msg) | delete_config_cand_bsr | 
| int		 add_config_cand_rp_by_vif_name (const IPvXNet& group_prefix,
					       bool is_scope_zone,
					       const string& vif_name,
					       uint8_t rp_priority,
					       uint16_t rp_holdtime,
					       string& error_msg) | add_config_cand_rp_by_vif_name | 
| int		 add_config_cand_rp_by_addr (const IPvXNet& group_prefix,
					   bool is_scope_zone,
					   const IPvX& my_cand_rp_addr,
					   uint8_t rp_priority,
					   uint16_t rp_holdtime,
					   string& error_msg) | add_config_cand_rp_by_addr | 
| int		 delete_config_cand_rp_by_vif_name (const IPvXNet& group_prefix,
						  bool is_scope_zone,
						  const string& vif_name,
						  string& error_msg) | delete_config_cand_rp_by_vif_name | 
| int		 delete_config_cand_rp_by_addr (const IPvXNet& group_prefix,
					      bool is_scope_zone,
					      const IPvX& my_cand_rp_addr,
					      string& error_msg) | delete_config_cand_rp_by_addr | 
| int		 add_config_static_rp (const IPvXNet& group_prefix,
				     const IPvX& rp_addr,
				     uint8_t rp_priority,
				     uint8_t hash_mask_len,
				     string& error_msg) | add_config_static_rp | 
| int		 delete_config_static_rp (const IPvXNet& group_prefix,
					const IPvX& rp_addr,
					string& error_msg) | delete_config_static_rp | 
| int		 delete_config_all_static_group_prefixes_rp (const IPvX& rp_addr,
							   string& error_msg) | delete_config_all_static_group_prefixes_rp | 
| int		 delete_config_all_static_rps (string& error_msg) | delete_config_all_static_rps | 
| int		 config_static_rp_done (string& error_msg) | config_static_rp_done | 
| int		 add_alternative_subnet (const string& vif_name,
				       const IPvXNet& subnet,
				       string& error_msg) | add_alternative_subnet | 
| int		 delete_alternative_subnet (const string& vif_name,
					  const IPvXNet& subnet,
					  string& error_msg) | delete_alternative_subnet | 
| int		 remove_all_alternative_subnets (const string& vif_name,
					       string& error_msg) | remove_all_alternative_subnets | 
| bool	 is_log_trace () | is_log_trace | 
[const]
Test if trace log is enabled.
This method is used to test whether to output trace log debug messges.
Returns: true if trace log is enabled, otherwise false.
| void	 set_log_trace (bool is_enabled) | set_log_trace | 
Enable/disable trace log.
This method is used to enable/disable trace log debug messages output.
Parameters:
| is_enabled | if true, trace log is enabled, otherwise is disabled. | 
| int		 add_test_jp_entry (const IPvX& source_addr,
				  const IPvX& group_addr,
				  uint8_t group_mask_len,
				  mrt_entry_type_t mrt_entry_type,
				  action_jp_t action_jp, uint16_t holdtime,
				  bool new_group_bool) | add_test_jp_entry | 
| int		 send_test_jp_entry (const IPvX& nbr_addr) | send_test_jp_entry | 
| int		 send_test_assert (const string& vif_name,
				 const IPvX& source_addr,
				 const IPvX& group_addr,
				 bool rpt_bit,
				 uint32_t metric_preference,
				 uint32_t metric) | send_test_assert | 
| int		 add_test_bsr_zone (const PimScopeZoneId& zone_id,
				  const IPvX& bsr_addr,
				  uint8_t bsr_priority,
				  uint8_t hash_mask_len,
				  uint16_t fragment_tag) | add_test_bsr_zone | 
| int		 add_test_bsr_group_prefix (const PimScopeZoneId& zone_id,
					  const IPvXNet& group_prefix,
					  bool is_scope_zone,
					  uint8_t expected_rp_count) | add_test_bsr_group_prefix | 
| int		 add_test_bsr_rp (const PimScopeZoneId& zone_id,
				const IPvXNet& group_prefix,
				const IPvX& rp_addr,
				uint8_t rp_priority,
				uint16_t rp_holdtime) | add_test_bsr_rp | 
| int		 send_test_bootstrap (const string& vif_name) | send_test_bootstrap | 
| int		 send_test_bootstrap_by_dest (const string& vif_name,
					    const IPvX& dest_addr) | send_test_bootstrap_by_dest | 
| int		 send_test_cand_rp_adv () | send_test_cand_rp_adv | 
| void	 add_pim_mre_no_pim_nbr (PimMre *pim_mre) | add_pim_mre_no_pim_nbr | 
| void	 delete_pim_mre_no_pim_nbr (PimMre *pim_mre) | delete_pim_mre_no_pim_nbr | 
| list<PimNbr *>&  processing_pim_nbr_list () | processing_pim_nbr_list | 
| void	 init_processing_pim_mre_rp (uint16_t vif_index,
					   const IPvX& pim_nbr_addr) | init_processing_pim_mre_rp | 
| void	 init_processing_pim_mre_wc (uint16_t vif_index,
					   const IPvX& pim_nbr_addr) | init_processing_pim_mre_wc | 
| void	 init_processing_pim_mre_sg (uint16_t vif_index,
					   const IPvX& pim_nbr_addr) | init_processing_pim_mre_sg | 
| void	 init_processing_pim_mre_sg_rpt (uint16_t vif_index,
					       const IPvX& pim_nbr_addr) | init_processing_pim_mre_sg_rpt | 
| PimNbr	* find_processing_pim_mre_rp (uint16_t vif_index,
					    const IPvX& pim_nbr_addr) | find_processing_pim_mre_rp | 
| PimNbr	* find_processing_pim_mre_wc (uint16_t vif_index,
					    const IPvX& pim_nbr_addr) | find_processing_pim_mre_wc | 
| PimNbr	* find_processing_pim_mre_sg (uint16_t vif_index,
					    const IPvX& pim_nbr_addr) | find_processing_pim_mre_sg | 
| PimNbr	* find_processing_pim_mre_sg_rpt (uint16_t vif_index,
						const IPvX& pim_nbr_addr) | find_processing_pim_mre_sg_rpt | 
| ConfigParam<bool>&  is_switch_to_spt_enabled () | is_switch_to_spt_enabled | 
| ConfigParam<uint32_t>&  switch_to_spt_threshold_interval_sec () | switch_to_spt_threshold_interval_sec | 
| ConfigParam<uint32_t>&  switch_to_spt_threshold_bytes () | switch_to_spt_threshold_bytes | 
| void	 clear_pim_statistics () | clear_pim_statistics | 
| int		 clear_pim_statistics_per_vif (const string& vif_name,
					     string& error_msg) | clear_pim_statistics_per_vif | 
| uint32_t	 pimstat_hello_messages_received () | pimstat_hello_messages_received | 
[const]
| uint32_t	 pimstat_hello_messages_sent () | pimstat_hello_messages_sent | 
[const]
| uint32_t	 pimstat_hello_messages_rx_errors () | pimstat_hello_messages_rx_errors | 
[const]
| uint32_t	 pimstat_register_messages_received () | pimstat_register_messages_received | 
[const]
| uint32_t	 pimstat_register_messages_sent () | pimstat_register_messages_sent | 
[const]
| uint32_t	 pimstat_register_messages_rx_errors () | pimstat_register_messages_rx_errors | 
[const]
| uint32_t	 pimstat_register_stop_messages_received () | pimstat_register_stop_messages_received | 
[const]
| uint32_t	 pimstat_register_stop_messages_sent () | pimstat_register_stop_messages_sent | 
[const]
| uint32_t	 pimstat_register_stop_messages_rx_errors () | pimstat_register_stop_messages_rx_errors | 
[const]
| uint32_t	 pimstat_join_prune_messages_received () | pimstat_join_prune_messages_received | 
[const]
| uint32_t	 pimstat_join_prune_messages_sent () | pimstat_join_prune_messages_sent | 
[const]
| uint32_t	 pimstat_join_prune_messages_rx_errors () | pimstat_join_prune_messages_rx_errors | 
[const]
| uint32_t	 pimstat_bootstrap_messages_received () | pimstat_bootstrap_messages_received | 
[const]
| uint32_t	 pimstat_bootstrap_messages_sent () | pimstat_bootstrap_messages_sent | 
[const]
| uint32_t	 pimstat_bootstrap_messages_rx_errors () | pimstat_bootstrap_messages_rx_errors | 
[const]
| uint32_t	 pimstat_assert_messages_received () | pimstat_assert_messages_received | 
[const]
| uint32_t	 pimstat_assert_messages_sent () | pimstat_assert_messages_sent | 
[const]
| uint32_t	 pimstat_assert_messages_rx_errors () | pimstat_assert_messages_rx_errors | 
[const]
| uint32_t	 pimstat_graft_messages_received () | pimstat_graft_messages_received | 
[const]
| uint32_t	 pimstat_graft_messages_sent () | pimstat_graft_messages_sent | 
[const]
| uint32_t	 pimstat_graft_messages_rx_errors () | pimstat_graft_messages_rx_errors | 
[const]
| uint32_t	 pimstat_graft_ack_messages_received () | pimstat_graft_ack_messages_received | 
[const]
| uint32_t	 pimstat_graft_ack_messages_sent () | pimstat_graft_ack_messages_sent | 
[const]
| uint32_t	 pimstat_graft_ack_messages_rx_errors () | pimstat_graft_ack_messages_rx_errors | 
[const]
| uint32_t	 pimstat_candidate_rp_messages_received () | pimstat_candidate_rp_messages_received | 
[const]
| uint32_t	 pimstat_candidate_rp_messages_sent () | pimstat_candidate_rp_messages_sent | 
[const]
| uint32_t	 pimstat_candidate_rp_messages_rx_errors () | pimstat_candidate_rp_messages_rx_errors | 
[const]
| uint32_t	 pimstat_unknown_type_messages () | pimstat_unknown_type_messages | 
[const]
| uint32_t	 pimstat_unknown_version_messages () | pimstat_unknown_version_messages | 
[const]
| uint32_t	 pimstat_neighbor_unknown_messages () | pimstat_neighbor_unknown_messages | 
[const]
| uint32_t	 pimstat_bad_length_messages () | pimstat_bad_length_messages | 
[const]
| uint32_t	 pimstat_bad_checksum_messages () | pimstat_bad_checksum_messages | 
[const]
| uint32_t	 pimstat_bad_receive_interface_messages () | pimstat_bad_receive_interface_messages | 
[const]
| uint32_t	 pimstat_rx_interface_disabled_messages () | pimstat_rx_interface_disabled_messages | 
[const]
| uint32_t	 pimstat_rx_register_not_rp () | pimstat_rx_register_not_rp | 
[const]
| uint32_t	 pimstat_rp_filtered_source () | pimstat_rp_filtered_source | 
[const]
| uint32_t	 pimstat_unknown_register_stop () | pimstat_unknown_register_stop | 
[const]
| uint32_t	 pimstat_rx_join_prune_no_state () | pimstat_rx_join_prune_no_state | 
[const]
| uint32_t	 pimstat_rx_graft_graft_ack_no_state () | pimstat_rx_graft_graft_ack_no_state | 
[const]
| uint32_t	 pimstat_rx_graft_on_upstream_interface () | pimstat_rx_graft_on_upstream_interface | 
[const]
| uint32_t	 pimstat_rx_candidate_rp_not_bsr () | pimstat_rx_candidate_rp_not_bsr | 
[const]
| uint32_t	 pimstat_rx_bsr_when_bsr () | pimstat_rx_bsr_when_bsr | 
[const]
| uint32_t	 pimstat_rx_bsr_not_rpf_interface () | pimstat_rx_bsr_not_rpf_interface | 
[const]
| uint32_t	 pimstat_rx_unknown_hello_option () | pimstat_rx_unknown_hello_option | 
[const]
| uint32_t	 pimstat_rx_data_no_state () | pimstat_rx_data_no_state | 
[const]
| uint32_t	 pimstat_rx_rp_no_state () | pimstat_rx_rp_no_state | 
[const]
| uint32_t	 pimstat_rx_aggregate () | pimstat_rx_aggregate | 
[const]
| uint32_t	 pimstat_rx_malformed_packet () | pimstat_rx_malformed_packet | 
[const]
| uint32_t	 pimstat_no_rp () | pimstat_no_rp | 
[const]
| uint32_t	 pimstat_no_route_upstream () | pimstat_no_route_upstream | 
[const]
| uint32_t	 pimstat_rp_mismatch () | pimstat_rp_mismatch | 
[const]
| uint32_t	 pimstat_rpf_neighbor_unknown () | pimstat_rpf_neighbor_unknown | 
[const]
| uint32_t	 pimstat_rx_join_rp () | pimstat_rx_join_rp | 
[const]
| uint32_t	 pimstat_rx_prune_rp () | pimstat_rx_prune_rp | 
[const]
| uint32_t	 pimstat_rx_join_wc () | pimstat_rx_join_wc | 
[const]
| uint32_t	 pimstat_rx_prune_wc () | pimstat_rx_prune_wc | 
[const]
| uint32_t	 pimstat_rx_join_sg () | pimstat_rx_join_sg | 
[const]
| uint32_t	 pimstat_rx_prune_sg () | pimstat_rx_prune_sg | 
[const]
| uint32_t	 pimstat_rx_join_sg_rpt () | pimstat_rx_join_sg_rpt | 
[const]
| uint32_t	 pimstat_rx_prune_sg_rpt () | pimstat_rx_prune_sg_rpt | 
[const]
| int	 pimstat_hello_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_hello_messages_received_per_vif | 
[const]
| int	 pimstat_hello_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_hello_messages_sent_per_vif | 
[const]
| int	 pimstat_hello_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_hello_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_register_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_register_messages_received_per_vif | 
[const]
| int	 pimstat_register_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_register_messages_sent_per_vif | 
[const]
| int	 pimstat_register_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_register_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_register_stop_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_register_stop_messages_received_per_vif | 
[const]
| int	 pimstat_register_stop_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_register_stop_messages_sent_per_vif | 
[const]
| int	 pimstat_register_stop_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_register_stop_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_join_prune_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_join_prune_messages_received_per_vif | 
[const]
| int	 pimstat_join_prune_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_join_prune_messages_sent_per_vif | 
[const]
| int	 pimstat_join_prune_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_join_prune_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_bootstrap_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_bootstrap_messages_received_per_vif | 
[const]
| int	 pimstat_bootstrap_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_bootstrap_messages_sent_per_vif | 
[const]
| int	 pimstat_bootstrap_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_bootstrap_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_assert_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_assert_messages_received_per_vif | 
[const]
| int	 pimstat_assert_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_assert_messages_sent_per_vif | 
[const]
| int	 pimstat_assert_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_assert_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_graft_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_graft_messages_received_per_vif | 
[const]
| int	 pimstat_graft_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_graft_messages_sent_per_vif | 
[const]
| int	 pimstat_graft_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_graft_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_graft_ack_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_graft_ack_messages_received_per_vif | 
[const]
| int	 pimstat_graft_ack_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_graft_ack_messages_sent_per_vif | 
[const]
| int	 pimstat_graft_ack_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_graft_ack_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_candidate_rp_messages_received_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_candidate_rp_messages_received_per_vif | 
[const]
| int	 pimstat_candidate_rp_messages_sent_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_candidate_rp_messages_sent_per_vif | 
[const]
| int	 pimstat_candidate_rp_messages_rx_errors_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_candidate_rp_messages_rx_errors_per_vif | 
[const]
| int	 pimstat_unknown_type_messages_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_unknown_type_messages_per_vif | 
[const]
| int	 pimstat_unknown_version_messages_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_unknown_version_messages_per_vif | 
[const]
| int	 pimstat_neighbor_unknown_messages_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_neighbor_unknown_messages_per_vif | 
[const]
| int	 pimstat_bad_length_messages_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_bad_length_messages_per_vif | 
[const]
| int	 pimstat_bad_checksum_messages_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_bad_checksum_messages_per_vif | 
[const]
| int	 pimstat_bad_receive_interface_messages_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_bad_receive_interface_messages_per_vif | 
[const]
| int	 pimstat_rx_interface_disabled_messages_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_interface_disabled_messages_per_vif | 
[const]
| int	 pimstat_rx_register_not_rp_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_register_not_rp_per_vif | 
[const]
| int	 pimstat_rp_filtered_source_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rp_filtered_source_per_vif | 
[const]
| int	 pimstat_unknown_register_stop_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_unknown_register_stop_per_vif | 
[const]
| int	 pimstat_rx_join_prune_no_state_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_join_prune_no_state_per_vif | 
[const]
| int	 pimstat_rx_graft_graft_ack_no_state_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_graft_graft_ack_no_state_per_vif | 
[const]
| int	 pimstat_rx_graft_on_upstream_interface_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_graft_on_upstream_interface_per_vif | 
[const]
| int	 pimstat_rx_candidate_rp_not_bsr_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_candidate_rp_not_bsr_per_vif | 
[const]
| int	 pimstat_rx_bsr_when_bsr_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_bsr_when_bsr_per_vif | 
[const]
| int	 pimstat_rx_bsr_not_rpf_interface_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_bsr_not_rpf_interface_per_vif | 
[const]
| int	 pimstat_rx_unknown_hello_option_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_unknown_hello_option_per_vif | 
[const]
| int	 pimstat_rx_data_no_state_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_data_no_state_per_vif | 
[const]
| int	 pimstat_rx_rp_no_state_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_rp_no_state_per_vif | 
[const]
| int	 pimstat_rx_aggregate_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_aggregate_per_vif | 
[const]
| int	 pimstat_rx_malformed_packet_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_malformed_packet_per_vif | 
[const]
| int	 pimstat_no_rp_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_no_rp_per_vif | 
[const]
| int	 pimstat_no_route_upstream_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_no_route_upstream_per_vif | 
[const]
| int	 pimstat_rp_mismatch_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rp_mismatch_per_vif | 
[const]
| int	 pimstat_rpf_neighbor_unknown_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rpf_neighbor_unknown_per_vif | 
[const]
| int	 pimstat_rx_join_rp_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_join_rp_per_vif | 
[const]
| int	 pimstat_rx_prune_rp_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_prune_rp_per_vif | 
[const]
| int	 pimstat_rx_join_wc_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_join_wc_per_vif | 
[const]
| int	 pimstat_rx_prune_wc_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_prune_wc_per_vif | 
[const]
| int	 pimstat_rx_join_sg_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_join_sg_per_vif | 
[const]
| int	 pimstat_rx_prune_sg_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_prune_sg_per_vif | 
[const]
| int	 pimstat_rx_join_sg_rpt_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_join_sg_rpt_per_vif | 
[const]
| int  pimstat_rx_prune_sg_rpt_per_vif (const string& vif_name, uint32_t& result, string& error_msg) | pimstat_rx_prune_sg_rpt_per_vif | 
[const]