class Mld6igmpVif

A class for MLD/IGMP-specific virtual interface. More...

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

Public Methods


Detailed Description

 Mld6igmpVif (Mld6igmpNode& mld6igmp_node, const Vif& vif)

Mld6igmpVif

Constructor for a given MLD/IGMP node and a generic virtual interface.

Parameters:
mld6igmp_nodethe Mld6igmpNode this interface belongs to.
vifthe generic Vif interface that contains various information.

 ~Mld6igmpVif ()

~Mld6igmpVif

[virtual]

Destructor

int  set_proto_version (int proto_version)

set_proto_version

Set the current protocol version.

The protocol version must be in the interval [IGMP_VERSION_MIN, IGMP_VERSION_MAX] or [MLD_VERSION_MIN, MLD_VERSION_MAX]

Parameters:
proto_versionthe protocol version to set.

Returns: XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoUnit.

int  start ()

start

Start MLD/IGMP on a single virtual interface.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  stop ()

stop

Stop MLD/IGMP on a single virtual interface.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  mld6igmp_recv (const IPvX& src, const IPvX& dst, int ip_ttl, int ip_tos, bool router_alert_bool, buffer_t *buffer)

mld6igmp_recv

Receive a protocol message.

Parameters:
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_ttlthe 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).
bufferthe data buffer with the received message.

Returns: XORP_OK on success, otherwise XORP_ERROR.

string  flags_string ()

flags_string

[const]

Get the string with the flags about the vif status.

TODO: temporary here. Should go to the Vif class after the Vif class starts using the Proto class.

Returns: the C++ style string with the flags about the vif status (e.g., UP/DOWN/DISABLED, etc).

Mld6igmpNode&  mld6igmp_node ()

mld6igmp_node

[const]

Get the MLD6IGMP node (Mld6igmpNode).

Returns: a reference to the MLD6IGMP node (Mld6igmpNode).

const IPvX&  querier_addr ()

querier_addr

[const]

Get the MLD/IGMP querier address.

Returns: the MLD/IGMP querier address.

void  set_querier_addr (const IPvX& v)

set_querier_addr

Set the MLD6/IGMP querier address.

Parameters:
vthe value of the MLD/IGMP querier address.

const list<MemberQuery *>&  members ()

members

[const]

Get the list with the multicast membership information (MemberQuery).

Returns: the list with the multicast membership information (MemberQuery).

bool  proto_is_ssm ()

proto_is_ssm

[const]

Test if the protocol is Source-Specific Multicast (e.g., IGMPv3 or MLDv2).

Returns: true if the protocol is Source-Specific Multicast (e.g., IGMPv3 or MLDv2).

const XorpTimer&  const_other_querier_timer ()

const_other_querier_timer

[const]

Get the timer to timeout the (other) MLD/IGMP querier.

Returns: a reference to the timer to timeout the (other) MLD/IGMP querier.

int  add_protocol (xorp_module_id module_id, const string& module_instance_name)

add_protocol

Add a protocol that needs to be notified about multicast membership changes.

Add a protocol to the list of entries that would be notified if there is membership change on a particular interface.

Parameters:
module_instance_namethe module instance name of the protocol to add.
module_idthe module ID (xorp_module_id) of the protocol to add.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  delete_protocol (xorp_module_id module_id, const string& module_instance_name)

delete_protocol

Delete a protocol that needs to be notified about multicast membership changes.

Delete a protocol from the list of entries that would be notified if there is membership change on a particular interface.

Parameters:
module_instance_namethe module instance name of the protocol to delete.
module_idthe module ID (xorp_module_id) of the protocol to delete.

Returns: XORP_OK on success, otherwise XORP_ERROR.


Generated by: pavlin on possum.icir.org on Thu Nov 6 23:47:00 2003, using kdoc 2.0a54+XORP.