class MfeaMrouter

A class for socket I/O communication. More...

Definition#include <mfea_mrouter.hh>
InheritsProtoUnit (libproto) [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods


Detailed Description

Each protocol 'registers' for socket I/O and gets assigned one object of this class.

 MfeaMrouter (MfeaNode& mfea_node)

MfeaMrouter

Constructor for given MFEA node.

Parameters:
mfea_nodethe MFEA node (MfeaNode) this entry belongs to.

 ~MfeaMrouter ()

~MfeaMrouter

[virtual]

Destructor

int  start ()

start

Start the MfeaMrouter.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  stop ()

stop

Stop the MfeaMrouter.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  mrouter_socket ()

mrouter_socket

[const]

Get the mrouter socket.

The mrouter socket is used for various multicast-related access.

Returns: the socket value if valid, otherwise XORP_ERROR.

int  open_mrouter_socket ()

open_mrouter_socket

Open an mrouter socket.

The mrouter socket is used for various multicast-related access. Note that no more than one mrouter socket (per address family) should be open at a time.

Returns: the socket value on success, otherwise XORP_ERROR.

int  close_mrouter_socket ()

close_mrouter_socket

Close the mrouter socket.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  start_mrt ()

start_mrt

Start/enable the multicast routing in the kernel.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  stop_mrt ()

stop_mrt

Stop/disable the multicast routing in the kernel.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  start_pim ()

start_pim

Start/enable PIM routing in the kernel.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  stop_pim ()

stop_pim

Stop/disable PIM routing in the kernel.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  add_multicast_vif (uint16_t vif_index)

add_multicast_vif

Add a virtual multicast interface to the kernel.

Parameters:
vif_indexthe vif index of the virtual interface to add.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  delete_multicast_vif (uint16_t vif_index)

delete_multicast_vif

Delete a virtual multicast interface from the kernel.

Parameters:
vif_indexthe vif index of the interface to delete.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  add_mfc (const IPvX& source, const IPvX& group, uint16_t iif_vif_index, uint8_t *oifs_ttl, uint8_t *oifs_flags, const IPvX& rp_addr)

add_mfc

Install/modify a Multicast Forwarding Cache (MFC) entry in the kernel.

If the MFC entry specified by (@source, @group) pair was not installed before, a new MFC entry will be created in the kernel; otherwise, the existing entry's fields will be modified.

Parameters:
sourcethe MFC source address.
groupthe MFC group address.
iif_vif_indexthe MFC incoming interface index.
oifs_ttlan array with the min. TTL a packet should have to be forwarded.
oifs_flagsan array with misc. flags for the MFC to install. Note that those flags are supported only by the advanced multicast API.
rp_addrthe RP address.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  delete_mfc (const IPvX& source, const IPvX& group)

delete_mfc

Delete a Multicast Forwarding Cache (MFC) entry in the kernel.

Parameters:
sourcethe MFC source address.
groupthe MFC group address.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  add_bw_upcall (const IPvX& source, const IPvX& group, const TimeVal& threshold_interval, 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_bw_upcall

Add a dataflow monitor entry in the kernel.

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_intervalthe dataflow threshold interval.
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_bw_upcall (const IPvX& source, const IPvX& group, const TimeVal& threshold_interval, 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_bw_upcall

Delete a dataflow monitor entry from the kernel.

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_intervalthe dataflow threshold interval.
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_bw_upcall (const IPvX& source, const IPvX& group)

delete_all_bw_upcall

Delete all dataflow monitor entries from the kernel for a given source and group address.

Parameters:
sourcethe source address.
groupthe group address.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  get_sg_count (const IPvX& source, const IPvX& group, SgCount& sg_count)

get_sg_count

Get various counters per (S,G) entry.

Get the number of packets and bytes forwarded by a particular Multicast Forwarding Cache (MFC) entry in the kernel, and the number of packets arrived on wrong interface for that entry.

Parameters:
sourcethe MFC source address.
groupthe MFC group address.
sg_counta reference to a SgCount class to place the result.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  get_vif_count (uint16_t vif_index, VifCount& vif_count)

get_vif_count

Get various counters per virtual interface.

Get the number of packets and bytes received on, or forwarded on a particular multicast interface.

Parameters:
vif_indexthe vif index of the virtual multicast interface whose statistics we need.
vif_counta reference to a VifCount class to store the result.

Returns: XORP_OK on success, otherwise XORP_ERROR.

bool  mrt_api_mrt_mfc_flags_disable_wrongvif ()

mrt_api_mrt_mfc_flags_disable_wrongvif

[const]

Get the flag that indicates whether the kernel supports disabling of WRONGVIF signal per (S,G) per interface.

Returns: true if the kernel supports disabling of WRONGVIF signal per (S,G) per interface, otherwise false.

bool  mrt_api_mrt_mfc_flags_border_vif ()

mrt_api_mrt_mfc_flags_border_vif

[const]

Get the flag that indicates whether the kernel supports setting of the Border bit flag per (S,G) per interface.

The Border bit flag is used for PIM-SM Register encapsulation in the kernel.

Returns: true if the kernel supports setting of the Border bit flag per (S,G) per interface, otherwise false.

bool  mrt_api_mrt_mfc_rp ()

mrt_api_mrt_mfc_rp

[const]

Get the flag that indicates whether the kernel supports adding the RP address to the kernel.

The RP address is used for PIM-SM Register encapsulation in the kernel.

Returns: true if the kernel supports adding the RP address to the kernel, otherwise false.

bool  mrt_api_mrt_mfc_bw_upcall ()

mrt_api_mrt_mfc_bw_upcall

[const]

Get the flag that indicates whether the kernel supports the bandwidth upcall mechanism.

Returns: true if the kernel supports the bandwidth upcall mechanism.


Generated by: pavlin on possum.icir.org on Mon Jun 9 13:23:54 2003, using kdoc 2.0a54+XORP.