class PimNode

The PIM node class. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Methods


Detailed Description

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:

familythe address family (AF_INET or AF_INET6 for IPv4 and IPv6 respectively).
module_idthe 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.
eventloopthe event loop to use.
 ~PimNode ()

~PimNode

[virtual]

Destructor

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. If this method is called one-after-another, the second one will force calling immediately PimNode::final_stop() to quickly finish 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.

bool  has_pending_down_units (string& reason_msg)

has_pending_down_units

Test if there is an unit that is in PENDING_DOWN state.

Parameters:

reason_msgreturn-by-reference string that contains human-readable information about the unit that is in PENDING_DOWN state (if any).

Returns: true if there is an unit that is in PENDING_DOWN state, otherwise false.

int  add_vif (const Vif& vif, string& error_msg)

add_vif

Install a new PIM vif.

Parameters:

vifvif information about the new PimVif to install.
error_msgthe 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_namethe name of the new vif.
vif_indexthe vif index of the new vif.
error_msgthe 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_namethe name of the vif to delete.
error_msgthe 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_namethe name of the vif.
is_pim_registertrue if this is a PIM Register vif.
is_p2ptrue if this is a point-to-point vif.
is_loopbacktrue if this is a loopback interface.
is_multicastrue if the vif is multicast-capable.
is_broadcasttrue if the vif is broadcast-capable.
is_uptrue if the vif is UP and running.
error_msgthe 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_namethe name of the vif.
addrthe unicast address to add.
subnet_addrthe subnet address to add.
broadcast_addrthe broadcast address (when applicable).
peer_addrthe peer address (when applicable).
error_msgthe 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_namethe name of the vif.
addrthe unicast address to delete.
error_msgthe 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_namethe name of the vif to enable.
error_msgthe 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_namethe name of the vif to disable.
error_msgthe 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_namethe name of the vif to start.
error_msgthe 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_namethe name of the vif to start.
error_msgthe 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: the number of virtual interfaces PIM was started on, or XORP_ERROR if error occured.

int  stop_all_vifs ()

stop_all_vifs

Stop PIM on all interfaces it was running on.

Returns: he number of virtual interfaces PIM was stopped on, or XORP_ERROR if error occured.

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

Delete all PIM vifs.

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 router_alert_bool, const uint8_t *rcvbuf, size_t rcvlen)

proto_recv

Receive a protocol message.

Parameters:

src_module_instance_namethe module instance name of the module-origin of the message.
src_module_idthe module ID (xorp_module_id) of the module-origin of the message.
vif_indexthe vif index of the interface used to receive this message.
srcthe source address of the message.
dstthe destination address of the message.
ip_ttlthe IP TTL of the message. If it has a negative value, it should be ignored.
ip_tosthe IP TOS of the message. If it has a negative value, it should be ignored.
router_alert_boolif true, the IP Router Alert option in the IP packet was set (when applicable).
rcvbufthe data buffer with the received message.
rcvlenthe 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 router_alert_bool, 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_indexthe vif index of the vif to send the message.
srcthe source address of the message.
dstthe destination address of the message.
ip_ttlthe TTL of the IP packet to send. If it has a negative value, the TTL will be set by the lower layers.
ip_tosthe TOS of the IP packet to send. If it has a negative value, the TOS will be set by the lower layers.
router_alert_boolif true, set the IP Router Alert option in the IP packet to send (when applicable).
bufferthe 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_namethe module instance name of the module-origin of the message.
src_module_idthe module ID (xorp_module_id) of the module-origin of the message.
message_typethe message type. Currently, the type of messages received from the kernel are:
vif_indexthe vif index of the related interface (message-specific relation).
srcthe source address in the message.
dstthe destination address in the message.
rcvbufthe data buffer with the additional information in the message.
rcvlenthe 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_indexthe 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_indexthe 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_indexthe vif index of the interface to join.
multicast_groupthe 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_indexthe vif index of the interface to leave.
multicast_groupthe 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_mfcthe 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_mfcthe 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:

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

Returns: XORP_OK on success, otherwise XORP_ERROR.

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:

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

Returns: XORP_OK on success, otherwise XORP_ERROR.

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_addrthe source address.
group_addrthe 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_indexthe 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_indexthe 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_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.

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_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.

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_vifthe virtual interface to test against.
ipaddr_testthe address to test.

Returns: true if ipaddr_test is directly connected to vif, otherwise false.

PimVifvif_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_indexthe vif index of the virtual interface to set/reset as a Designated Router.
vif true, set the virtual interface as a Designated Router, otherwise reset it.
PimNbrpim_nbr_rpf_find (const IPvX& dst_addr)

pim_nbr_rpf_find

Find the RPF PIM neighbor for a given destination address.

Parameters:

dst_addrthe destination address to lookup.

Returns: the RPF PIM neighbor (PimNbr) toward dst_addr if found, otherwise NULL.

PimNbrpim_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_addrthe destination address to lookup.
mribthe already known Mrib entry.

Returns: the RPF PIM neighbor (PimNbr) toward dst_addr if found, otherwise NULL.

PimNbrpim_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_addrthe 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_msgthe 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  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_enabledif 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

PimNbrfind_processing_pim_mre_rp (uint16_t vif_index, const IPvX& pim_nbr_addr)

find_processing_pim_mre_rp

PimNbrfind_processing_pim_mre_wc (uint16_t vif_index, const IPvX& pim_nbr_addr)

find_processing_pim_mre_wc

PimNbrfind_processing_pim_mre_sg (uint16_t vif_index, const IPvX& pim_nbr_addr)

find_processing_pim_mre_sg

PimNbrfind_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

bool  is_receive_mrib_from_mfea ()

is_receive_mrib_from_mfea

[const]

void  set_receive_mrib_from_mfea (bool v)

set_receive_mrib_from_mfea

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]


Generated by: pavlin on possum.icir.org on Thu Jul 8 23:48:31 2004, using kdoc $.