class Mld6igmpVif

A class for MLD6/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 MLD6/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  start ()

start

Start MLD6/IGMP on a single virtual interface.

Returns: XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoUnit.

int  stop ()

stop

Stop MLD6/IGMP on a single virtual interface.

Returns: XORP_OK on success, otherwise XORP_ERROR.

Reimplemented from ProtoUnit.

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

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 MLD/IMGPquerier 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 Timer&  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 (x_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 (x_module_id) of the protocol to add.

Returns: XORP_OK on success, otherwise XORP_ERROR.

int  delete_protocol (x_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 (x_module_id) of the protocol to delete.

Returns: XORP_OK on success, otherwise XORP_ERROR.


Generated by: pavlin on possum.icir.org on Wed Dec 11 16:50:50 2002, using kdoc 2.0a54+XORP.