\hypertarget{classMld6igmpVif}{
\section{Mld6igmpVif Class Reference}
\label{classMld6igmpVif}\index{Mld6igmpVif@{Mld6igmpVif}}
}


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




{\ttfamily \#include $<$mld6igmp\_\-vif.hh$>$}

Inheritance diagram for Mld6igmpVif:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5.000000cm]{classMld6igmpVif}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classMld6igmpVif_ae6b30b00a2e89ada4450ab59f71a3893}{Mld6igmpVif} (\hyperlink{classMld6igmpNode}{Mld6igmpNode} \&mld6igmp\_\-node, const \hyperlink{classVif}{Vif} \&vif)
\begin{DoxyCompactList}\small\item\em Constructor for a given MLD/IGMP node and a generic virtual interface. \item\end{DoxyCompactList}\item 
virtual \hyperlink{classMld6igmpVif_ad6fa61f8e37d9da5155ea0691e84c57f}{$\sim$Mld6igmpVif} ()
\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a59529e8b1c47a60993167a6d6f718c96}{set\_\-proto\_\-version} (int proto\_\-version)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} current protocol version. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a6c6bd907d2150f928ac4a22b08cbcadf}{start} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Start MLD/IGMP on a single virtual interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a581909ec2885a50b0e4882982a49dce6}{stop} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Stop MLD/IGMP on a single virtual interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_af6777b51869f9e885e7d0ca1dba940ff}{enable} ()
\begin{DoxyCompactList}\small\item\em Enable MLD/IGMP on a single virtual interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_aad17c53888261f3826ecd5c91813c52d}{disable} ()
\begin{DoxyCompactList}\small\item\em Disable MLD/IGMP on a single virtual interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a27fad45de035641702942359653df68d}{mld6igmp\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, int ip\_\-ttl, int ip\_\-tos, bool ip\_\-router\_\-alert, bool ip\_\-internet\_\-control, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Receive a protocol message. \item\end{DoxyCompactList}\item 
string \hyperlink{classMld6igmpVif_ae5d5f011cd4ee66f72f6e90624ad9ffc}{flags\_\-string} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} string with \hyperlink{protocolthe-p}{the} flags about \hyperlink{protocolthe-p}{the} vif status. \item\end{DoxyCompactList}\item 
\hyperlink{classMld6igmpNode}{Mld6igmpNode} \& \hyperlink{classMld6igmpVif_a481d036b6c0c4f154df5440959fa5951}{mld6igmp\_\-node} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} MLD6IGMP node (\hyperlink{classMld6igmpNode}{Mld6igmpNode}). \item\end{DoxyCompactList}\item 
const \hyperlink{classIPvX}{IPvX} \& \hyperlink{classMld6igmpVif_ac35691219f7b52ebe7e248fca14de301}{primary\_\-addr} () const 
\begin{DoxyCompactList}\small\item\em Get my primary address on this interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_afae8559624ab9fc67791b081626316f4}{set\_\-primary\_\-addr} (const \hyperlink{classIPvX}{IPvX} \&v)
\begin{DoxyCompactList}\small\item\em Set my primary address on this interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a50e7d630ee92b3f031b5bab03f11e643}{update\_\-primary\_\-address} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} primary address. \item\end{DoxyCompactList}\item 
const \hyperlink{classIPvX}{IPvX} \& \hyperlink{classMld6igmpVif_a6e944cce24ed2685f8255b75ee62a51c}{querier\_\-addr} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} MLD/IGMP querier address. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_adac59ffa2767c23c32423736a5bbafa8}{set\_\-querier\_\-addr} (const \hyperlink{classIPvX}{IPvX} \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} MLD6/IGMP querier address. \item\end{DoxyCompactList}\item 
\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet} \& \hyperlink{classMld6igmpVif_abdc3d99bb0fa43e476c7795c42b21e94}{group\_\-records} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). \item\end{DoxyCompactList}\item 
const \hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet} \& \hyperlink{classMld6igmpVif_a6ff74f12e57fba1a969615299b546d14}{group\_\-records} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} const set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_afbaa5715a77670434deff068d0c6ef6e}{proto\_\-is\_\-ssm} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} protocol is Source-\/Specific Multicast (e.g., IGMPv3 or MLDv2). \item\end{DoxyCompactList}\item 
const \hyperlink{classXorpTimer}{XorpTimer} \& \hyperlink{classMld6igmpVif_a5c93301680b784a82a1b7cba16f156fd}{const\_\-other\_\-querier\_\-timer} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} timer to timeout \hyperlink{protocolthe-p}{the} (other) MLD/IGMP querier. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ bool $>$ \& \hyperlink{classMld6igmpVif_a9fa537ca88a95dfd535a1879fa2b815d}{ip\_\-router\_\-alert\_\-option\_\-check} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} \char`\"{}IP Router Alert option check\char`\"{} flag. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ \& \hyperlink{classMld6igmpVif_a5e42da49aeeeca6cd0ca4e6654ea77d3}{configured\_\-query\_\-interval} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} configured Query Interval. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMld6igmpVif_a1b369eb26bfa32cd60d8831d47e4060a}{effective\_\-query\_\-interval} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} effective Query Interval value. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_a5b5dfb457e80b6b73f00462eee41dedb}{set\_\-effective\_\-query\_\-interval} (const \hyperlink{classTimeVal}{TimeVal} \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} effective Query Interval. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ \& \hyperlink{classMld6igmpVif_a82655a8c4adb9d769bfca6440d0d3a29}{query\_\-last\_\-member\_\-interval} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} Last Member Query Interval. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ \& \hyperlink{classMld6igmpVif_a9d4f8668510d325c8ebae59a78f2e517}{query\_\-response\_\-interval} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} Query Response Interval. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ uint32\_\-t $>$ \& \hyperlink{classMld6igmpVif_aebc3f186a37b9a65b254e24979a824ef}{configured\_\-robust\_\-count} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} configured Robustness Variable count. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMld6igmpVif_ac09501a8f9cc04bd3017c6c366a38826}{effective\_\-robustness\_\-variable} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} effective Robustness Variable value. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_a11426b957ae64d2008ff3ccaabcc7926}{set\_\-effective\_\-robustness\_\-variable} (uint32\_\-t v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} effective Robustness Variable. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMld6igmpVif_a5c4ad83e8c0cfee67212ba2485aa163b}{last\_\-member\_\-query\_\-count} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Last Member Query Count value. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMld6igmpVif_a63af58fb6c553ee0fa2707a907484ab1}{group\_\-membership\_\-interval} () const 
\begin{DoxyCompactList}\small\item\em Obtain a reference to \hyperlink{protocolthe-p}{the} Group Membership Interval. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMld6igmpVif_afc69869155abf38d4a29da069fe881b5}{last\_\-member\_\-query\_\-time} () const 
\begin{DoxyCompactList}\small\item\em Obtain a reference to \hyperlink{protocolthe-p}{the} Last Member Query Time. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMld6igmpVif_a0dce1466dcc9dc30dd39912488a64ab2}{older\_\-version\_\-host\_\-present\_\-interval} () const 
\begin{DoxyCompactList}\small\item\em Obtain a reference to \hyperlink{protocolthe-p}{the} Older Version Host Present Interval. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a2fa4be8483d3a594377f0be7f9c69fb7}{add\_\-protocol} (xorp\_\-module\_\-id module\_\-id, const string \&module\_\-instance\_\-name)
\begin{DoxyCompactList}\small\item\em Add a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a1076a9010953a238481edb07da0604f1}{delete\_\-protocol} (xorp\_\-module\_\-id module\_\-id, const string \&module\_\-instance\_\-name)
\begin{DoxyCompactList}\small\item\em Delete a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a01dc32de402550ce28c42c8e10edbf8b}{join\_\-prune\_\-notify\_\-routing} (const \hyperlink{classIPvX}{IPvX} \&source, const \hyperlink{classIPvX}{IPvX} \&group, action\_\-jp\_\-t action\_\-jp) const 
\begin{DoxyCompactList}\small\item\em Notify \hyperlink{protocolthe-p}{the} interested parties that there is membership change among \hyperlink{protocolthe-p}{the} local members. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_abb89dbfeee9ef55203ab227f33b81485}{mld6igmp\_\-send} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} MLD or IGMP message. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a6182b54e55abb2912595051f78dd4970}{mld6igmp\_\-group\_\-query\_\-send} (const \hyperlink{classIPvX}{IPvX} \&group\_\-address, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} Group-\/Specific Query message. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_ab5f9712ebf4eb2c92e4f52dbc017d079}{mld6igmp\_\-group\_\-source\_\-query\_\-send} (const \hyperlink{classIPvX}{IPvX} \&group\_\-address, const set$<$ \hyperlink{classIPvX}{IPvX} $>$ \&sources, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} MLDv2 or IGMPv3 Group-\/and-\/Source-\/Specific Query message. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a7fe74727fc031bfbdc85ebf6adcd66df}{mld6igmp\_\-query\_\-send} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, const \hyperlink{classTimeVal}{TimeVal} \&max\_\-resp\_\-time, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, const set$<$ \hyperlink{classIPvX}{IPvX} $>$ \&sources, bool s\_\-flag, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} MLD or IGMP Query message. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a06c8a5e8bee7329d44c3dd7877510c58}{is\_\-igmpv1\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv1 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a049a62f1753a573cbaee0d4dcef8efa6}{is\_\-igmpv2\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv2 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a3ad507f574fc4acca668cccf5ecbf13f}{is\_\-igmpv3\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv3 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a22a1c659c90a62ddcf95e4bc13daf9cc}{is\_\-mldv1\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in MLDv1 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a52585d483afcbac60c1776f187b60bbd}{is\_\-mldv2\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in MLDv2 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a58272f72798c852c21fd0a9e4373a04d}{is\_\-igmpv1\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in IGMPv1 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a2f062917bd51a8dd19ad988049aeda13}{is\_\-igmpv2\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in IGMPv2 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a3217bc433b19103b6f89307c9b7a020c}{is\_\-igmpv3\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in IGMPv3 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a065e995720189c8bc695e1df5ded27a0}{is\_\-mldv1\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in MLDv1 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_aa538626dc9234da3a9c794526d3a4599}{is\_\-mldv2\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in MLDv2 mode. \item\end{DoxyCompactList}\item 
\hyperlink{classMld6igmpVif_ae6b30b00a2e89ada4450ab59f71a3893}{Mld6igmpVif} (\hyperlink{classMld6igmpNode}{Mld6igmpNode} \&mld6igmp\_\-node, const \hyperlink{classVif}{Vif} \&vif)
\begin{DoxyCompactList}\small\item\em Constructor for a given MLD/IGMP node and a generic virtual interface. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpVif_a51c23b7bb193d80eadd837eadae4f13d}{
virtual \hyperlink{classMld6igmpVif_a51c23b7bb193d80eadd837eadae4f13d}{$\sim$Mld6igmpVif} ()}
\label{classMld6igmpVif_a51c23b7bb193d80eadd837eadae4f13d}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a59529e8b1c47a60993167a6d6f718c96}{set\_\-proto\_\-version} (int proto\_\-version)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} current protocol version. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a6c6bd907d2150f928ac4a22b08cbcadf}{start} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Start MLD/IGMP on a single virtual interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_a61b9096410e4484e8cf9ed242e11c8a7}{notifyUpdated} ()
\begin{DoxyCompactList}\small\item\em Attempt deferred start. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a581909ec2885a50b0e4882982a49dce6}{stop} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Stop MLD/IGMP on a single virtual interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_af6777b51869f9e885e7d0ca1dba940ff}{enable} ()
\begin{DoxyCompactList}\small\item\em Enable MLD/IGMP on a single virtual interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_aad17c53888261f3826ecd5c91813c52d}{disable} ()
\begin{DoxyCompactList}\small\item\em Disable MLD/IGMP on a single virtual interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a27fad45de035641702942359653df68d}{mld6igmp\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, int ip\_\-ttl, int ip\_\-tos, bool ip\_\-router\_\-alert, bool ip\_\-internet\_\-control, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Receive a protocol message. \item\end{DoxyCompactList}\item 
string \hyperlink{classMld6igmpVif_ae5d5f011cd4ee66f72f6e90624ad9ffc}{flags\_\-string} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} string with \hyperlink{protocolthe-p}{the} flags about \hyperlink{protocolthe-p}{the} vif status. \item\end{DoxyCompactList}\item 
\hyperlink{classMld6igmpNode}{Mld6igmpNode} \& \hyperlink{classMld6igmpVif_a481d036b6c0c4f154df5440959fa5951}{mld6igmp\_\-node} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} MLD6IGMP node (\hyperlink{classMld6igmpNode}{Mld6igmpNode}). \item\end{DoxyCompactList}\item 
const \hyperlink{classIPvX}{IPvX} \& \hyperlink{classMld6igmpVif_ac35691219f7b52ebe7e248fca14de301}{primary\_\-addr} () const 
\begin{DoxyCompactList}\small\item\em Get my primary address on this interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_afae8559624ab9fc67791b081626316f4}{set\_\-primary\_\-addr} (const \hyperlink{classIPvX}{IPvX} \&v)
\begin{DoxyCompactList}\small\item\em Set my primary address on this interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a50e7d630ee92b3f031b5bab03f11e643}{update\_\-primary\_\-address} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} primary address. \item\end{DoxyCompactList}\item 
const \hyperlink{classIPvX}{IPvX} \& \hyperlink{classMld6igmpVif_a6e944cce24ed2685f8255b75ee62a51c}{querier\_\-addr} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} MLD/IGMP querier address. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_adac59ffa2767c23c32423736a5bbafa8}{set\_\-querier\_\-addr} (const \hyperlink{classIPvX}{IPvX} \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} MLD6/IGMP querier address. \item\end{DoxyCompactList}\item 
\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet} \& \hyperlink{classMld6igmpVif_abdc3d99bb0fa43e476c7795c42b21e94}{group\_\-records} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). \item\end{DoxyCompactList}\item 
const \hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet} \& \hyperlink{classMld6igmpVif_a6ff74f12e57fba1a969615299b546d14}{group\_\-records} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} const set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_afbaa5715a77670434deff068d0c6ef6e}{proto\_\-is\_\-ssm} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} protocol is Source-\/Specific Multicast (e.g., IGMPv3 or MLDv2). \item\end{DoxyCompactList}\item 
const \hyperlink{classXorpTimer}{XorpTimer} \& \hyperlink{classMld6igmpVif_a5c93301680b784a82a1b7cba16f156fd}{const\_\-other\_\-querier\_\-timer} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} timer to timeout \hyperlink{protocolthe-p}{the} (other) MLD/IGMP querier. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ bool $>$ \& \hyperlink{classMld6igmpVif_a9fa537ca88a95dfd535a1879fa2b815d}{ip\_\-router\_\-alert\_\-option\_\-check} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} \char`\"{}IP Router Alert option check\char`\"{} flag. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ \& \hyperlink{classMld6igmpVif_a5e42da49aeeeca6cd0ca4e6654ea77d3}{configured\_\-query\_\-interval} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} configured Query Interval. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMld6igmpVif_a1b369eb26bfa32cd60d8831d47e4060a}{effective\_\-query\_\-interval} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} effective Query Interval value. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_a5b5dfb457e80b6b73f00462eee41dedb}{set\_\-effective\_\-query\_\-interval} (const \hyperlink{classTimeVal}{TimeVal} \&v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} effective Query Interval. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ \& \hyperlink{classMld6igmpVif_a82655a8c4adb9d769bfca6440d0d3a29}{query\_\-last\_\-member\_\-interval} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} Last Member Query Interval. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ \& \hyperlink{classMld6igmpVif_a9d4f8668510d325c8ebae59a78f2e517}{query\_\-response\_\-interval} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} Query Response Interval. \item\end{DoxyCompactList}\item 
\hyperlink{classConfigParam}{ConfigParam}$<$ uint32\_\-t $>$ \& \hyperlink{classMld6igmpVif_aebc3f186a37b9a65b254e24979a824ef}{configured\_\-robust\_\-count} ()
\begin{DoxyCompactList}\small\item\em Optain a reference to \hyperlink{protocolthe-p}{the} configured Robustness Variable count. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMld6igmpVif_ac09501a8f9cc04bd3017c6c366a38826}{effective\_\-robustness\_\-variable} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} effective Robustness Variable value. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_a11426b957ae64d2008ff3ccaabcc7926}{set\_\-effective\_\-robustness\_\-variable} (uint32\_\-t v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} effective Robustness Variable. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMld6igmpVif_a5c4ad83e8c0cfee67212ba2485aa163b}{last\_\-member\_\-query\_\-count} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Last Member Query Count value. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMld6igmpVif_a63af58fb6c553ee0fa2707a907484ab1}{group\_\-membership\_\-interval} () const 
\begin{DoxyCompactList}\small\item\em Obtain a reference to \hyperlink{protocolthe-p}{the} Group Membership Interval. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMld6igmpVif_afc69869155abf38d4a29da069fe881b5}{last\_\-member\_\-query\_\-time} () const 
\begin{DoxyCompactList}\small\item\em Obtain a reference to \hyperlink{protocolthe-p}{the} Last Member Query Time. \item\end{DoxyCompactList}\item 
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMld6igmpVif_a0dce1466dcc9dc30dd39912488a64ab2}{older\_\-version\_\-host\_\-present\_\-interval} () const 
\begin{DoxyCompactList}\small\item\em Obtain a reference to \hyperlink{protocolthe-p}{the} Older Version Host Present Interval. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a2fa4be8483d3a594377f0be7f9c69fb7}{add\_\-protocol} (xorp\_\-module\_\-id module\_\-id, const string \&module\_\-instance\_\-name)
\begin{DoxyCompactList}\small\item\em Add a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_ad267c8d0fe208f4eef2cd66d56f812e7}{delete\_\-protocol} (xorp\_\-module\_\-id module\_\-id, const string \&module\_\-instance\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a01dc32de402550ce28c42c8e10edbf8b}{join\_\-prune\_\-notify\_\-routing} (const \hyperlink{classIPvX}{IPvX} \&source, const \hyperlink{classIPvX}{IPvX} \&group, action\_\-jp\_\-t action\_\-jp) const 
\begin{DoxyCompactList}\small\item\em Notify \hyperlink{protocolthe-p}{the} interested parties that there is membership change among \hyperlink{protocolthe-p}{the} local members. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_abb89dbfeee9ef55203ab227f33b81485}{mld6igmp\_\-send} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} MLD or IGMP message. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a6182b54e55abb2912595051f78dd4970}{mld6igmp\_\-group\_\-query\_\-send} (const \hyperlink{classIPvX}{IPvX} \&group\_\-address, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} Group-\/Specific Query message. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_ab5f9712ebf4eb2c92e4f52dbc017d079}{mld6igmp\_\-group\_\-source\_\-query\_\-send} (const \hyperlink{classIPvX}{IPvX} \&group\_\-address, const set$<$ \hyperlink{classIPvX}{IPvX} $>$ \&sources, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} MLDv2 or IGMPv3 Group-\/and-\/Source-\/Specific Query message. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a7fe74727fc031bfbdc85ebf6adcd66df}{mld6igmp\_\-query\_\-send} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, const \hyperlink{classTimeVal}{TimeVal} \&max\_\-resp\_\-time, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, const set$<$ \hyperlink{classIPvX}{IPvX} $>$ \&sources, bool s\_\-flag, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} MLD or IGMP Query message. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a06c8a5e8bee7329d44c3dd7877510c58}{is\_\-igmpv1\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv1 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a049a62f1753a573cbaee0d4dcef8efa6}{is\_\-igmpv2\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv2 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a3ad507f574fc4acca668cccf5ecbf13f}{is\_\-igmpv3\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv3 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a22a1c659c90a62ddcf95e4bc13daf9cc}{is\_\-mldv1\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in MLDv1 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a52585d483afcbac60c1776f187b60bbd}{is\_\-mldv2\_\-mode} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface is running in MLDv2 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a58272f72798c852c21fd0a9e4373a04d}{is\_\-igmpv1\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in IGMPv1 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a2f062917bd51a8dd19ad988049aeda13}{is\_\-igmpv2\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in IGMPv2 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a3217bc433b19103b6f89307c9b7a020c}{is\_\-igmpv3\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in IGMPv3 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a065e995720189c8bc695e1df5ded27a0}{is\_\-mldv1\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in MLDv1 mode. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_aa538626dc9234da3a9c794526d3a4599}{is\_\-mldv2\_\-mode} (const \hyperlink{classMld6igmpGroupRecord}{Mld6igmpGroupRecord} $\ast$group\_\-record) const 
\begin{DoxyCompactList}\small\item\em Test if a group is running in MLDv2 mode. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
enum \{ {\bfseries MLD6IGMP\_\-VIF\_\-QUERIER} =  1 $<$$<$ 0
 \}
\item 
enum \{ {\bfseries MLD6IGMP\_\-VIF\_\-QUERIER} =  1 $<$$<$ 0
 \}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
const char $\ast$ \hyperlink{classMld6igmpVif_ab6dea136bfaaffd15751d97137b33a2a}{proto\_\-message\_\-type2ascii} (uint8\_\-t message\_\-type) const 
\begin{DoxyCompactList}\small\item\em Return \hyperlink{protocolthe-p}{the} ASCII text description of \hyperlink{protocolthe-p}{the} protocol message. \item\end{DoxyCompactList}\item 
\hyperlink{structbuffer__}{buffer\_\-t} $\ast$ \hyperlink{classMld6igmpVif_a80cb013c1e665db15564ca743d493d36}{buffer\_\-send\_\-prepare} ()
\begin{DoxyCompactList}\small\item\em Reset and prepare \hyperlink{protocolthe-p}{the} buffer for sending data. \item\end{DoxyCompactList}\item 
uint16\_\-t \hyperlink{classMld6igmpVif_a4645294f0e75f2ba133451d53d03b1fc}{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, size\_\-t len, uint8\_\-t protocol)
\begin{DoxyCompactList}\small\item\em Calculate \hyperlink{protocolthe-p}{the} checksum of an \hyperlink{classIPv6}{IPv6} \char`\"{}pseudo-\/header\char`\"{} as described in RFC 2460. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a5eb4e3acd4ee7b7d59df235657406b4f}{i\_\-am\_\-querier} () const 
\begin{DoxyCompactList}\small\item\em Test whether I am \hyperlink{protocolthe-p}{the} querier for this vif. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_a1a6f97936eca427542f374907a2c65de}{set\_\-i\_\-am\_\-querier} (bool v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} state whether I am \hyperlink{protocolthe-p}{the} querier for this vif. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpVif_a44411985be1766d41a41d2738699803f}{
void {\bfseries set\_\-configured\_\-query\_\-interval\_\-cb} (\hyperlink{classTimeVal}{TimeVal} v)}
\label{classMld6igmpVif_a44411985be1766d41a41d2738699803f}

\item 
\hypertarget{classMld6igmpVif_a2a9a3f1b8f41b294891bb1ae0cde360c}{
void {\bfseries set\_\-query\_\-last\_\-member\_\-interval\_\-cb} (\hyperlink{classTimeVal}{TimeVal} v)}
\label{classMld6igmpVif_a2a9a3f1b8f41b294891bb1ae0cde360c}

\item 
\hypertarget{classMld6igmpVif_aed5b2891c28fb978a76164c0a236418a}{
void {\bfseries set\_\-query\_\-response\_\-interval\_\-cb} (\hyperlink{classTimeVal}{TimeVal} v)}
\label{classMld6igmpVif_aed5b2891c28fb978a76164c0a236418a}

\item 
\hypertarget{classMld6igmpVif_a18b329970a34d00501e92acfcf7afbfb}{
void {\bfseries set\_\-configured\_\-robust\_\-count\_\-cb} (uint32\_\-t v)}
\label{classMld6igmpVif_a18b329970a34d00501e92acfcf7afbfb}

\item 
\hypertarget{classMld6igmpVif_ab17ce3e9756062add0507b25e45fbdcb}{
void {\bfseries recalculate\_\-effective\_\-query\_\-interval} ()}
\label{classMld6igmpVif_ab17ce3e9756062add0507b25e45fbdcb}

\item 
\hypertarget{classMld6igmpVif_a1d30d990256659c3bddc3e4cf76c5027}{
void {\bfseries recalculate\_\-effective\_\-robustness\_\-variable} ()}
\label{classMld6igmpVif_a1d30d990256659c3bddc3e4cf76c5027}

\item 
\hypertarget{classMld6igmpVif_af0dcce0d1f1f9e27126e373217c2fb67}{
void {\bfseries recalculate\_\-last\_\-member\_\-query\_\-count} ()}
\label{classMld6igmpVif_af0dcce0d1f1f9e27126e373217c2fb67}

\item 
\hypertarget{classMld6igmpVif_ab6afb71168f3c9ea711d6dc5d189d1d3}{
void {\bfseries recalculate\_\-group\_\-membership\_\-interval} ()}
\label{classMld6igmpVif_ab6afb71168f3c9ea711d6dc5d189d1d3}

\item 
\hypertarget{classMld6igmpVif_a40e7152e93d3d9b61ae4e58f6a8a43c6}{
void {\bfseries recalculate\_\-last\_\-member\_\-query\_\-time} ()}
\label{classMld6igmpVif_a40e7152e93d3d9b61ae4e58f6a8a43c6}

\item 
\hypertarget{classMld6igmpVif_a02d365711956c5855a9c62f642e04ca2}{
void {\bfseries recalculate\_\-older\_\-version\_\-host\_\-present\_\-interval} ()}
\label{classMld6igmpVif_a02d365711956c5855a9c62f642e04ca2}

\item 
\hypertarget{classMld6igmpVif_a97ef4ea997d7e4498f1b32a75e72d0dc}{
void {\bfseries restore\_\-effective\_\-variables} ()}
\label{classMld6igmpVif_a97ef4ea997d7e4498f1b32a75e72d0dc}

\item 
int \hyperlink{classMld6igmpVif_aa3e09b8cc5bcfe24d8699ffbb332cf4a}{mld6igmp\_\-membership\_\-query\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em \hyperlink{classMld6igmpVif_aa3e09b8cc5bcfe24d8699ffbb332cf4a}{Mld6igmpVif::mld6igmp\_\-membership\_\-query\_\-recv}: : The message source address. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a8f61f037471b534f67defc7ffc6ab000}{mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em \hyperlink{classMld6igmpVif_a8f61f037471b534f67defc7ffc6ab000}{Mld6igmpVif::mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv}: : The message source address. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_ae7d44b63f0f0140904fa9e1d42d11621}{mld6igmp\_\-membership\_\-report\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em \hyperlink{classMld6igmpVif_ae7d44b63f0f0140904fa9e1d42d11621}{Mld6igmpVif::mld6igmp\_\-membership\_\-report\_\-recv}: : The message source address. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_ac6b8a9d9bf6c608f84cbe47da2b2cc1c}{mld6igmp\_\-leave\_\-group\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em \hyperlink{classMld6igmpVif_ac6b8a9d9bf6c608f84cbe47da2b2cc1c}{Mld6igmpVif::mld6igmp\_\-leave\_\-group\_\-recv}: : The message source address. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a20aa9b8e73779a1b0cf10ed39faf46c1}{mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em \hyperlink{classMld6igmpVif_a20aa9b8e73779a1b0cf10ed39faf46c1}{Mld6igmpVif::mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv}: : The message source address. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a25d0b28ed11a6066643c376d724bf24e}{mld6igmp\_\-query\_\-version\_\-consistency\_\-check} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, int message\_\-version)
\begin{DoxyCompactList}\small\item\em mld6igmp\_\-query\_\-version\_\-consistency\_\-check: : The message source address. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpVif_a312a970f196bce173c5b239a0e6ef966}{mld6igmp\_\-process} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, int ip\_\-ttl, int ip\_\-tos, bool ip\_\-router\_\-alert, bool ip\_\-internet\_\-control, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{classMld6igmpVif_a312a970f196bce173c5b239a0e6ef966}{Mld6igmpVif::mld6igmp\_\-process}: : The message source address. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpVif_a32309946ee619a5987536a63864d38bf}{
size\_\-t {\bfseries mld6igmp\_\-constant\_\-minlen} () const }
\label{classMld6igmpVif_a32309946ee619a5987536a63864d38bf}

\item 
\hypertarget{classMld6igmpVif_a0f82752db40ffbfa0c6b3ca24f26c334}{
uint32\_\-t {\bfseries mld6igmp\_\-constant\_\-timer\_\-scale} () const }
\label{classMld6igmpVif_a0f82752db40ffbfa0c6b3ca24f26c334}

\item 
\hypertarget{classMld6igmpVif_ab44e73c45d36075a30ea89743fda50c9}{
uint8\_\-t {\bfseries mld6igmp\_\-constant\_\-membership\_\-query} () const }
\label{classMld6igmpVif_ab44e73c45d36075a30ea89743fda50c9}

\item 
void \hyperlink{classMld6igmpVif_a11190b0e5374298caf16207b02a1fa44}{other\_\-querier\_\-timer\_\-timeout} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classMld6igmpVif_a11190b0e5374298caf16207b02a1fa44}{Mld6igmpVif::other\_\-querier\_\-timer\_\-timeout}: \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_a9e0ec86e1fda12c2736d3381871c9ed3}{query\_\-timer\_\-timeout} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classMld6igmpVif_a9e0ec86e1fda12c2736d3381871c9ed3}{Mld6igmpVif::query\_\-timer\_\-timeout}: \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpVif_a37ab5eaf3a3170bbdfa370b7930e573a}{
void {\bfseries decode\_\-exp\_\-time\_\-code8} (uint8\_\-t code, \hyperlink{classTimeVal}{TimeVal} \&timeval, uint32\_\-t timer\_\-scale)}
\label{classMld6igmpVif_a37ab5eaf3a3170bbdfa370b7930e573a}

\item 
\hypertarget{classMld6igmpVif_a486de2e0a58c7241bd118551fa0cb084}{
void {\bfseries decode\_\-exp\_\-time\_\-code16} (uint16\_\-t code, \hyperlink{classTimeVal}{TimeVal} \&timeval, uint32\_\-t timer\_\-scale)}
\label{classMld6igmpVif_a486de2e0a58c7241bd118551fa0cb084}

\item 
\hypertarget{classMld6igmpVif_a0a585f30e5b57ad3e6c74d050267c537}{
void {\bfseries encode\_\-exp\_\-time\_\-code8} (const \hyperlink{classTimeVal}{TimeVal} \&timeval, uint8\_\-t \&code, uint32\_\-t timer\_\-scale)}
\label{classMld6igmpVif_a0a585f30e5b57ad3e6c74d050267c537}

\item 
\hypertarget{classMld6igmpVif_ad5c9b97f9b9d9bc1fe8ffd13e0d27301}{
void {\bfseries encode\_\-exp\_\-time\_\-code16} (const \hyperlink{classTimeVal}{TimeVal} \&timeval, uint16\_\-t \&code, uint32\_\-t timer\_\-scale)}
\label{classMld6igmpVif_ad5c9b97f9b9d9bc1fe8ffd13e0d27301}

\item 
const char $\ast$ \hyperlink{classMld6igmpVif_a52bc25bb79ff45cc3ffc63e3521f9c21}{proto\_\-message\_\-type2ascii} (uint8\_\-t message\_\-type) const 
\begin{DoxyCompactList}\small\item\em Return \hyperlink{protocolthe-p}{the} ASCII text description of \hyperlink{protocolthe-p}{the} protocol message. \item\end{DoxyCompactList}\item 
\hyperlink{structbuffer__}{buffer\_\-t} $\ast$ \hyperlink{classMld6igmpVif_a634bf789f65bc8d083024c0b10fe17fd}{buffer\_\-send\_\-prepare} ()
\begin{DoxyCompactList}\small\item\em Reset and prepare \hyperlink{protocolthe-p}{the} buffer for sending data. \item\end{DoxyCompactList}\item 
uint16\_\-t \hyperlink{classMld6igmpVif_a4645294f0e75f2ba133451d53d03b1fc}{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, size\_\-t len, uint8\_\-t protocol)
\begin{DoxyCompactList}\small\item\em Calculate \hyperlink{protocolthe-p}{the} checksum of an \hyperlink{classIPv6}{IPv6} \char`\"{}pseudo-\/header\char`\"{} as described in RFC 2460. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpVif_a5eb4e3acd4ee7b7d59df235657406b4f}{i\_\-am\_\-querier} () const 
\begin{DoxyCompactList}\small\item\em Test whether I am \hyperlink{protocolthe-p}{the} querier for this vif. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpVif_a1a6f97936eca427542f374907a2c65de}{set\_\-i\_\-am\_\-querier} (bool v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} state whether I am \hyperlink{protocolthe-p}{the} querier for this vif. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpVif_a44411985be1766d41a41d2738699803f}{
void {\bfseries set\_\-configured\_\-query\_\-interval\_\-cb} (\hyperlink{classTimeVal}{TimeVal} v)}
\label{classMld6igmpVif_a44411985be1766d41a41d2738699803f}

\item 
\hypertarget{classMld6igmpVif_a2a9a3f1b8f41b294891bb1ae0cde360c}{
void {\bfseries set\_\-query\_\-last\_\-member\_\-interval\_\-cb} (\hyperlink{classTimeVal}{TimeVal} v)}
\label{classMld6igmpVif_a2a9a3f1b8f41b294891bb1ae0cde360c}

\item 
\hypertarget{classMld6igmpVif_aed5b2891c28fb978a76164c0a236418a}{
void {\bfseries set\_\-query\_\-response\_\-interval\_\-cb} (\hyperlink{classTimeVal}{TimeVal} v)}
\label{classMld6igmpVif_aed5b2891c28fb978a76164c0a236418a}

\item 
\hypertarget{classMld6igmpVif_a18b329970a34d00501e92acfcf7afbfb}{
void {\bfseries set\_\-configured\_\-robust\_\-count\_\-cb} (uint32\_\-t v)}
\label{classMld6igmpVif_a18b329970a34d00501e92acfcf7afbfb}

\item 
\hypertarget{classMld6igmpVif_ab17ce3e9756062add0507b25e45fbdcb}{
void {\bfseries recalculate\_\-effective\_\-query\_\-interval} ()}
\label{classMld6igmpVif_ab17ce3e9756062add0507b25e45fbdcb}

\item 
\hypertarget{classMld6igmpVif_a1d30d990256659c3bddc3e4cf76c5027}{
void {\bfseries recalculate\_\-effective\_\-robustness\_\-variable} ()}
\label{classMld6igmpVif_a1d30d990256659c3bddc3e4cf76c5027}

\item 
\hypertarget{classMld6igmpVif_af0dcce0d1f1f9e27126e373217c2fb67}{
void {\bfseries recalculate\_\-last\_\-member\_\-query\_\-count} ()}
\label{classMld6igmpVif_af0dcce0d1f1f9e27126e373217c2fb67}

\item 
\hypertarget{classMld6igmpVif_ab6afb71168f3c9ea711d6dc5d189d1d3}{
void {\bfseries recalculate\_\-group\_\-membership\_\-interval} ()}
\label{classMld6igmpVif_ab6afb71168f3c9ea711d6dc5d189d1d3}

\item 
\hypertarget{classMld6igmpVif_a40e7152e93d3d9b61ae4e58f6a8a43c6}{
void {\bfseries recalculate\_\-last\_\-member\_\-query\_\-time} ()}
\label{classMld6igmpVif_a40e7152e93d3d9b61ae4e58f6a8a43c6}

\item 
\hypertarget{classMld6igmpVif_a02d365711956c5855a9c62f642e04ca2}{
void {\bfseries recalculate\_\-older\_\-version\_\-host\_\-present\_\-interval} ()}
\label{classMld6igmpVif_a02d365711956c5855a9c62f642e04ca2}

\item 
\hypertarget{classMld6igmpVif_a97ef4ea997d7e4498f1b32a75e72d0dc}{
void {\bfseries restore\_\-effective\_\-variables} ()}
\label{classMld6igmpVif_a97ef4ea997d7e4498f1b32a75e72d0dc}

\item 
\hypertarget{classMld6igmpVif_aa3e09b8cc5bcfe24d8699ffbb332cf4a}{
int {\bfseries mld6igmp\_\-membership\_\-query\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)}
\label{classMld6igmpVif_aa3e09b8cc5bcfe24d8699ffbb332cf4a}

\item 
\hypertarget{classMld6igmpVif_a8f61f037471b534f67defc7ffc6ab000}{
int {\bfseries mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)}
\label{classMld6igmpVif_a8f61f037471b534f67defc7ffc6ab000}

\item 
\hypertarget{classMld6igmpVif_ae7d44b63f0f0140904fa9e1d42d11621}{
int {\bfseries mld6igmp\_\-membership\_\-report\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)}
\label{classMld6igmpVif_ae7d44b63f0f0140904fa9e1d42d11621}

\item 
\hypertarget{classMld6igmpVif_ac6b8a9d9bf6c608f84cbe47da2b2cc1c}{
int {\bfseries mld6igmp\_\-leave\_\-group\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, uint16\_\-t max\_\-resp\_\-code, const \hyperlink{classIPvX}{IPvX} \&group\_\-address, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)}
\label{classMld6igmpVif_ac6b8a9d9bf6c608f84cbe47da2b2cc1c}

\item 
\hypertarget{classMld6igmpVif_a20aa9b8e73779a1b0cf10ed39faf46c1}{
int {\bfseries mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer)}
\label{classMld6igmpVif_a20aa9b8e73779a1b0cf10ed39faf46c1}

\item 
\hypertarget{classMld6igmpVif_a25d0b28ed11a6066643c376d724bf24e}{
int {\bfseries mld6igmp\_\-query\_\-version\_\-consistency\_\-check} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, uint8\_\-t message\_\-type, int message\_\-version)}
\label{classMld6igmpVif_a25d0b28ed11a6066643c376d724bf24e}

\item 
\hypertarget{classMld6igmpVif_a312a970f196bce173c5b239a0e6ef966}{
int {\bfseries mld6igmp\_\-process} (const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, int ip\_\-ttl, int ip\_\-tos, bool ip\_\-router\_\-alert, bool ip\_\-internet\_\-control, \hyperlink{structbuffer__}{buffer\_\-t} $\ast$buffer, string \&error\_\-msg)}
\label{classMld6igmpVif_a312a970f196bce173c5b239a0e6ef966}

\item 
\hypertarget{classMld6igmpVif_a32309946ee619a5987536a63864d38bf}{
size\_\-t {\bfseries mld6igmp\_\-constant\_\-minlen} () const }
\label{classMld6igmpVif_a32309946ee619a5987536a63864d38bf}

\item 
\hypertarget{classMld6igmpVif_a0f82752db40ffbfa0c6b3ca24f26c334}{
uint32\_\-t {\bfseries mld6igmp\_\-constant\_\-timer\_\-scale} () const }
\label{classMld6igmpVif_a0f82752db40ffbfa0c6b3ca24f26c334}

\item 
\hypertarget{classMld6igmpVif_ab44e73c45d36075a30ea89743fda50c9}{
uint8\_\-t {\bfseries mld6igmp\_\-constant\_\-membership\_\-query} () const }
\label{classMld6igmpVif_ab44e73c45d36075a30ea89743fda50c9}

\item 
\hypertarget{classMld6igmpVif_a11190b0e5374298caf16207b02a1fa44}{
void {\bfseries other\_\-querier\_\-timer\_\-timeout} ()}
\label{classMld6igmpVif_a11190b0e5374298caf16207b02a1fa44}

\item 
\hypertarget{classMld6igmpVif_a9e0ec86e1fda12c2736d3381871c9ed3}{
void {\bfseries query\_\-timer\_\-timeout} ()}
\label{classMld6igmpVif_a9e0ec86e1fda12c2736d3381871c9ed3}

\item 
\hypertarget{classMld6igmpVif_a37ab5eaf3a3170bbdfa370b7930e573a}{
void {\bfseries decode\_\-exp\_\-time\_\-code8} (uint8\_\-t code, \hyperlink{classTimeVal}{TimeVal} \&timeval, uint32\_\-t timer\_\-scale)}
\label{classMld6igmpVif_a37ab5eaf3a3170bbdfa370b7930e573a}

\item 
\hypertarget{classMld6igmpVif_a486de2e0a58c7241bd118551fa0cb084}{
void {\bfseries decode\_\-exp\_\-time\_\-code16} (uint16\_\-t code, \hyperlink{classTimeVal}{TimeVal} \&timeval, uint32\_\-t timer\_\-scale)}
\label{classMld6igmpVif_a486de2e0a58c7241bd118551fa0cb084}

\item 
\hypertarget{classMld6igmpVif_a0a585f30e5b57ad3e6c74d050267c537}{
void {\bfseries encode\_\-exp\_\-time\_\-code8} (const \hyperlink{classTimeVal}{TimeVal} \&timeval, uint8\_\-t \&code, uint32\_\-t timer\_\-scale)}
\label{classMld6igmpVif_a0a585f30e5b57ad3e6c74d050267c537}

\item 
\hypertarget{classMld6igmpVif_ad5c9b97f9b9d9bc1fe8ffd13e0d27301}{
void {\bfseries encode\_\-exp\_\-time\_\-code16} (const \hyperlink{classTimeVal}{TimeVal} \&timeval, uint16\_\-t \&code, uint32\_\-t timer\_\-scale)}
\label{classMld6igmpVif_ad5c9b97f9b9d9bc1fe8ffd13e0d27301}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMld6igmpVif_afd2f16814efcf6136e2994550be21594}{
\hyperlink{classMld6igmpNode}{Mld6igmpNode} \& {\bfseries \_\-mld6igmp\_\-node}}
\label{classMld6igmpVif_afd2f16814efcf6136e2994550be21594}

\item 
\hypertarget{classMld6igmpVif_af11f92a2d21c6be9b96b7796b294364c}{
\hyperlink{structbuffer__}{buffer\_\-t} $\ast$ {\bfseries \_\-buffer\_\-send}}
\label{classMld6igmpVif_af11f92a2d21c6be9b96b7796b294364c}

\item 
\hypertarget{classMld6igmpVif_a1b7d4e0feaf8c908d68c0144b7a0b9d0}{
uint32\_\-t {\bfseries \_\-proto\_\-flags}}
\label{classMld6igmpVif_a1b7d4e0feaf8c908d68c0144b7a0b9d0}

\item 
\hypertarget{classMld6igmpVif_ad70d3941ef42051eba117060d986da8e}{
\hyperlink{classIPvX}{IPvX} {\bfseries \_\-primary\_\-addr}}
\label{classMld6igmpVif_ad70d3941ef42051eba117060d986da8e}

\item 
\hypertarget{classMld6igmpVif_a2b3c0d4202718f3c29a6b666895dbe1f}{
\hyperlink{classIPvX}{IPvX} {\bfseries \_\-querier\_\-addr}}
\label{classMld6igmpVif_a2b3c0d4202718f3c29a6b666895dbe1f}

\item 
\hypertarget{classMld6igmpVif_a793edda2536892f0ae3792c30d987655}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-other\_\-querier\_\-timer}}
\label{classMld6igmpVif_a793edda2536892f0ae3792c30d987655}

\item 
\hypertarget{classMld6igmpVif_a6e38c6f724f4cb5d469f8922d8b55d32}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-query\_\-timer}}
\label{classMld6igmpVif_a6e38c6f724f4cb5d469f8922d8b55d32}

\item 
\hypertarget{classMld6igmpVif_a281eb05bc9f6b70cd2fc629208f8d662}{
uint8\_\-t {\bfseries \_\-startup\_\-query\_\-count}}
\label{classMld6igmpVif_a281eb05bc9f6b70cd2fc629208f8d662}

\item 
\hypertarget{classMld6igmpVif_a325a4e28a8381983c3cccedc15a61978}{
\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet} {\bfseries \_\-group\_\-records}}
\label{classMld6igmpVif_a325a4e28a8381983c3cccedc15a61978}

\item 
\hypertarget{classMld6igmpVif_a46c3aa49af3b178ee037052758d5933b}{
\hyperlink{classConfigParam}{ConfigParam}$<$ bool $>$ {\bfseries \_\-ip\_\-router\_\-alert\_\-option\_\-check}}
\label{classMld6igmpVif_a46c3aa49af3b178ee037052758d5933b}

\item 
\hypertarget{classMld6igmpVif_a3998a54212f1305261276cfda7a44f40}{
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ {\bfseries \_\-configured\_\-query\_\-interval}}
\label{classMld6igmpVif_a3998a54212f1305261276cfda7a44f40}

\item 
\hypertarget{classMld6igmpVif_afc2fa7672e68f93d24d96a649cfaf986}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-effective\_\-query\_\-interval}}
\label{classMld6igmpVif_afc2fa7672e68f93d24d96a649cfaf986}

\item 
\hypertarget{classMld6igmpVif_a6427d07d3c642bd17526bbd56b41b6f5}{
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ {\bfseries \_\-query\_\-last\_\-member\_\-interval}}
\label{classMld6igmpVif_a6427d07d3c642bd17526bbd56b41b6f5}

\item 
\hypertarget{classMld6igmpVif_a1e024319b5c05f3c508142727a769849}{
\hyperlink{classConfigParam}{ConfigParam}$<$ \hyperlink{classTimeVal}{TimeVal} $>$ {\bfseries \_\-query\_\-response\_\-interval}}
\label{classMld6igmpVif_a1e024319b5c05f3c508142727a769849}

\item 
\hypertarget{classMld6igmpVif_a46c8b7a1cf5648e7706853b00adea446}{
\hyperlink{classConfigParam}{ConfigParam}$<$ uint32\_\-t $>$ {\bfseries \_\-configured\_\-robust\_\-count}}
\label{classMld6igmpVif_a46c8b7a1cf5648e7706853b00adea446}

\item 
\hypertarget{classMld6igmpVif_ae53e5ce4782034f5aab9a86f7359ecc4}{
uint32\_\-t {\bfseries \_\-effective\_\-robustness\_\-variable}}
\label{classMld6igmpVif_ae53e5ce4782034f5aab9a86f7359ecc4}

\item 
\hypertarget{classMld6igmpVif_ace0a43dc4aa16e809eb9863a76a49078}{
uint32\_\-t {\bfseries \_\-last\_\-member\_\-query\_\-count}}
\label{classMld6igmpVif_ace0a43dc4aa16e809eb9863a76a49078}

\item 
\hypertarget{classMld6igmpVif_a43ad1b2ce7585379d065b2aa36794af6}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-group\_\-membership\_\-interval}}
\label{classMld6igmpVif_a43ad1b2ce7585379d065b2aa36794af6}

\item 
\hypertarget{classMld6igmpVif_a6469dda661fb47a47cc61555830c6652}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-last\_\-member\_\-query\_\-time}}
\label{classMld6igmpVif_a6469dda661fb47a47cc61555830c6652}

\item 
\hypertarget{classMld6igmpVif_a761643c45908a767e94ea260dd8d51b3}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-older\_\-version\_\-host\_\-present\_\-interval}}
\label{classMld6igmpVif_a761643c45908a767e94ea260dd8d51b3}

\item 
\hypertarget{classMld6igmpVif_ac1f14b1895f71b035d13ce8ecf22d491}{
vector$<$ pair$<$ xorp\_\-module\_\-id, string $>$ $>$ {\bfseries \_\-notify\_\-routing\_\-protocols}}
\label{classMld6igmpVif_ac1f14b1895f71b035d13ce8ecf22d491}

\item 
\hypertarget{classMld6igmpVif_ae86aa76d8e7b6d41a2d7363d8d812a87}{
bool {\bfseries \_\-dummy\_\-flag}}
\label{classMld6igmpVif_ae86aa76d8e7b6d41a2d7363d8d812a87}

\item 
\hypertarget{classMld6igmpVif_a2977ce817b3f12ff3586e28e5fafe47b}{
bool {\bfseries wants\_\-to\_\-be\_\-started}}
\label{classMld6igmpVif_a2977ce817b3f12ff3586e28e5fafe47b}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
A class for MLD/IGMP-\/specific virtual interface. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classMld6igmpVif_ae6b30b00a2e89ada4450ab59f71a3893}{
\index{Mld6igmpVif@{Mld6igmpVif}!Mld6igmpVif@{Mld6igmpVif}}
\index{Mld6igmpVif@{Mld6igmpVif}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{Mld6igmpVif}]{\setlength{\rightskip}{0pt plus 5cm}Mld6igmpVif::Mld6igmpVif (
\begin{DoxyParamCaption}
\item[{{\bf Mld6igmpNode} \&}]{mld6igmp\_\-node, }
\item[{const {\bf Vif} \&}]{vif}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_ae6b30b00a2e89ada4450ab59f71a3893}


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

\hyperlink{classMld6igmpVif_ae6b30b00a2e89ada4450ab59f71a3893}{Mld6igmpVif::Mld6igmpVif}: : The MLD6IGMP node this interface belongs to.


\begin{DoxyParams}{Parameters}
{\em mld6igmp\_\-node} & \hyperlink{protocolthe-p}{the} \hyperlink{classMld6igmpNode}{Mld6igmpNode} this interface belongs to. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} generic \hyperlink{classVif}{Vif} interface that contains various information.\\
\hline
\end{DoxyParams}
: The generic \hyperlink{classVif}{Vif} interface that contains various information.

MLD6IGMP protocol vif constructor. \hypertarget{classMld6igmpVif_ad6fa61f8e37d9da5155ea0691e84c57f}{
\index{Mld6igmpVif@{Mld6igmpVif}!$\sim$Mld6igmpVif@{$\sim$Mld6igmpVif}}
\index{$\sim$Mld6igmpVif@{$\sim$Mld6igmpVif}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{$\sim$Mld6igmpVif}]{\setlength{\rightskip}{0pt plus 5cm}Mld6igmpVif::$\sim$Mld6igmpVif (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMld6igmpVif_ad6fa61f8e37d9da5155ea0691e84c57f}


Destructor. 

\hyperlink{classMld6igmpVif_ad6fa61f8e37d9da5155ea0691e84c57f}{Mld6igmpVif::$\sim$Mld6igmpVif}: @:

MLD6IGMP protocol vif destructor. \hypertarget{classMld6igmpVif_ae6b30b00a2e89ada4450ab59f71a3893}{
\index{Mld6igmpVif@{Mld6igmpVif}!Mld6igmpVif@{Mld6igmpVif}}
\index{Mld6igmpVif@{Mld6igmpVif}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{Mld6igmpVif}]{\setlength{\rightskip}{0pt plus 5cm}Mld6igmpVif::Mld6igmpVif (
\begin{DoxyParamCaption}
\item[{{\bf Mld6igmpNode} \&}]{mld6igmp\_\-node, }
\item[{const {\bf Vif} \&}]{vif}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_ae6b30b00a2e89ada4450ab59f71a3893}


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


\begin{DoxyParams}{Parameters}
{\em mld6igmp\_\-node} & \hyperlink{protocolthe-p}{the} \hyperlink{classMld6igmpNode}{Mld6igmpNode} this interface belongs to. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} generic \hyperlink{classVif}{Vif} interface that contains various information. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classMld6igmpVif_a2fa4be8483d3a594377f0be7f9c69fb7}{
\index{Mld6igmpVif@{Mld6igmpVif}!add\_\-protocol@{add\_\-protocol}}
\index{add\_\-protocol@{add\_\-protocol}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{add\_\-protocol}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::add\_\-protocol (
\begin{DoxyParamCaption}
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{const string \&}]{module\_\-instance\_\-name}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a2fa4be8483d3a594377f0be7f9c69fb7}


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

\hyperlink{classMld6igmpVif_a2fa4be8483d3a594377f0be7f9c69fb7}{Mld6igmpVif::add\_\-protocol}: : The \#xorp\_\-module\_\-id of \hyperlink{protocolthe-p}{the} protocol to add.

Add a protocol to \hyperlink{protocolthe-p}{the} list of entries that would be notified if there is membership change on a particular interface.


\begin{DoxyParams}{Parameters}
{\em module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to add. \\
\hline
{\em module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to add. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The module instance name of \hyperlink{protocolthe-p}{the} protocol to add.

Add a protocol to \hyperlink{protocolthe-p}{the} list of entries that would be notified if there is membership change on this interface.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_a2fa4be8483d3a594377f0be7f9c69fb7}{
\index{Mld6igmpVif@{Mld6igmpVif}!add\_\-protocol@{add\_\-protocol}}
\index{add\_\-protocol@{add\_\-protocol}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{add\_\-protocol}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::add\_\-protocol (
\begin{DoxyParamCaption}
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{const string \&}]{module\_\-instance\_\-name}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a2fa4be8483d3a594377f0be7f9c69fb7}


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

Add a protocol to \hyperlink{protocolthe-p}{the} list of entries that would be notified if there is membership change on a particular interface.


\begin{DoxyParams}{Parameters}
{\em module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to add. \\
\hline
{\em module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to add. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a634bf789f65bc8d083024c0b10fe17fd}{
\index{Mld6igmpVif@{Mld6igmpVif}!buffer\_\-send\_\-prepare@{buffer\_\-send\_\-prepare}}
\index{buffer\_\-send\_\-prepare@{buffer\_\-send\_\-prepare}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{buffer\_\-send\_\-prepare}]{\setlength{\rightskip}{0pt plus 5cm}{\bf buffer\_\-t}$\ast$ Mld6igmpVif::buffer\_\-send\_\-prepare (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a634bf789f65bc8d083024c0b10fe17fd}


Reset and prepare \hyperlink{protocolthe-p}{the} buffer for sending data. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} prepared buffer. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a80cb013c1e665db15564ca743d493d36}{
\index{Mld6igmpVif@{Mld6igmpVif}!buffer\_\-send\_\-prepare@{buffer\_\-send\_\-prepare}}
\index{buffer\_\-send\_\-prepare@{buffer\_\-send\_\-prepare}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{buffer\_\-send\_\-prepare}]{\setlength{\rightskip}{0pt plus 5cm}{\bf buffer\_\-t} $\ast$ Mld6igmpVif::buffer\_\-send\_\-prepare (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a80cb013c1e665db15564ca743d493d36}


Reset and prepare \hyperlink{protocolthe-p}{the} buffer for sending data. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} prepared buffer. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a4645294f0e75f2ba133451d53d03b1fc}{
\index{Mld6igmpVif@{Mld6igmpVif}!calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum@{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum}}
\index{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum@{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum}]{\setlength{\rightskip}{0pt plus 5cm}uint16\_\-t Mld6igmpVif::calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{size\_\-t}]{len, }
\item[{uint8\_\-t}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a4645294f0e75f2ba133451d53d03b1fc}


Calculate \hyperlink{protocolthe-p}{the} checksum of an \hyperlink{classIPv6}{IPv6} \char`\"{}pseudo-\/header\char`\"{} as described in RFC 2460. 


\begin{DoxyParams}{Parameters}
{\em src} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} pseudo-\/header. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} destination address of \hyperlink{protocolthe-p}{the} pseudo-\/header. \\
\hline
{\em len} & \hyperlink{protocolthe-p}{the} upper-\/layer packet length of \hyperlink{protocolthe-p}{the} pseudo-\/header (in host-\/order). \\
\hline
{\em protocol} & \hyperlink{protocolthe-p}{the} upper-\/layer protocol number. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} checksum of \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} \char`\"{}pseudo-\/header\char`\"{}. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a4645294f0e75f2ba133451d53d03b1fc}{
\index{Mld6igmpVif@{Mld6igmpVif}!calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum@{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum}}
\index{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum@{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum}]{\setlength{\rightskip}{0pt plus 5cm}uint16\_\-t Mld6igmpVif::calculate\_\-ipv6\_\-pseudo\_\-header\_\-checksum (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{size\_\-t}]{len, }
\item[{uint8\_\-t}]{protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a4645294f0e75f2ba133451d53d03b1fc}


Calculate \hyperlink{protocolthe-p}{the} checksum of an \hyperlink{classIPv6}{IPv6} \char`\"{}pseudo-\/header\char`\"{} as described in RFC 2460. 


\begin{DoxyParams}{Parameters}
{\em src} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} pseudo-\/header. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} destination address of \hyperlink{protocolthe-p}{the} pseudo-\/header. \\
\hline
{\em len} & \hyperlink{protocolthe-p}{the} upper-\/layer packet length of \hyperlink{protocolthe-p}{the} pseudo-\/header (in host-\/order). \\
\hline
{\em protocol} & \hyperlink{protocolthe-p}{the} upper-\/layer protocol number. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} checksum of \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} \char`\"{}pseudo-\/header\char`\"{}. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a5e42da49aeeeca6cd0ca4e6654ea77d3}{
\index{Mld6igmpVif@{Mld6igmpVif}!configured\_\-query\_\-interval@{configured\_\-query\_\-interval}}
\index{configured\_\-query\_\-interval@{configured\_\-query\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{configured\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<${\bf TimeVal}$>$\& Mld6igmpVif::configured\_\-query\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a5e42da49aeeeca6cd0ca4e6654ea77d3}


Optain a reference to \hyperlink{protocolthe-p}{the} configured Query Interval. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} configured Query Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a5e42da49aeeeca6cd0ca4e6654ea77d3}{
\index{Mld6igmpVif@{Mld6igmpVif}!configured\_\-query\_\-interval@{configured\_\-query\_\-interval}}
\index{configured\_\-query\_\-interval@{configured\_\-query\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{configured\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<${\bf TimeVal}$>$\& Mld6igmpVif::configured\_\-query\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a5e42da49aeeeca6cd0ca4e6654ea77d3}


Optain a reference to \hyperlink{protocolthe-p}{the} configured Query Interval. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} configured Query Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_aebc3f186a37b9a65b254e24979a824ef}{
\index{Mld6igmpVif@{Mld6igmpVif}!configured\_\-robust\_\-count@{configured\_\-robust\_\-count}}
\index{configured\_\-robust\_\-count@{configured\_\-robust\_\-count}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{configured\_\-robust\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<$uint32\_\-t$>$\& Mld6igmpVif::configured\_\-robust\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_aebc3f186a37b9a65b254e24979a824ef}


Optain a reference to \hyperlink{protocolthe-p}{the} configured Robustness Variable count. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} configured Robustness Variable count. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_aebc3f186a37b9a65b254e24979a824ef}{
\index{Mld6igmpVif@{Mld6igmpVif}!configured\_\-robust\_\-count@{configured\_\-robust\_\-count}}
\index{configured\_\-robust\_\-count@{configured\_\-robust\_\-count}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{configured\_\-robust\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<$uint32\_\-t$>$\& Mld6igmpVif::configured\_\-robust\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_aebc3f186a37b9a65b254e24979a824ef}


Optain a reference to \hyperlink{protocolthe-p}{the} configured Robustness Variable count. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} configured Robustness Variable count. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a5c93301680b784a82a1b7cba16f156fd}{
\index{Mld6igmpVif@{Mld6igmpVif}!const\_\-other\_\-querier\_\-timer@{const\_\-other\_\-querier\_\-timer}}
\index{const\_\-other\_\-querier\_\-timer@{const\_\-other\_\-querier\_\-timer}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{const\_\-other\_\-querier\_\-timer}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf XorpTimer}\& Mld6igmpVif::const\_\-other\_\-querier\_\-timer (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a5c93301680b784a82a1b7cba16f156fd}


Get \hyperlink{protocolthe-p}{the} timer to timeout \hyperlink{protocolthe-p}{the} (other) MLD/IGMP querier. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} timer to timeout \hyperlink{protocolthe-p}{the} (other) MLD/IGMP querier. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a5c93301680b784a82a1b7cba16f156fd}{
\index{Mld6igmpVif@{Mld6igmpVif}!const\_\-other\_\-querier\_\-timer@{const\_\-other\_\-querier\_\-timer}}
\index{const\_\-other\_\-querier\_\-timer@{const\_\-other\_\-querier\_\-timer}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{const\_\-other\_\-querier\_\-timer}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf XorpTimer}\& Mld6igmpVif::const\_\-other\_\-querier\_\-timer (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a5c93301680b784a82a1b7cba16f156fd}


Get \hyperlink{protocolthe-p}{the} timer to timeout \hyperlink{protocolthe-p}{the} (other) MLD/IGMP querier. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} timer to timeout \hyperlink{protocolthe-p}{the} (other) MLD/IGMP querier. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a1076a9010953a238481edb07da0604f1}{
\index{Mld6igmpVif@{Mld6igmpVif}!delete\_\-protocol@{delete\_\-protocol}}
\index{delete\_\-protocol@{delete\_\-protocol}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{delete\_\-protocol}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::delete\_\-protocol (
\begin{DoxyParamCaption}
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{const string \&}]{module\_\-instance\_\-name}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a1076a9010953a238481edb07da0604f1}


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

\hyperlink{classMld6igmpVif_a1076a9010953a238481edb07da0604f1}{Mld6igmpVif::delete\_\-protocol}: : The \#xorp\_\-module\_\-id of \hyperlink{protocolthe-p}{the} protocol to delete.

Delete a protocol from \hyperlink{protocolthe-p}{the} list of entries that would be notified if there is membership change on a particular interface.


\begin{DoxyParams}{Parameters}
{\em module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to delete. \\
\hline
{\em module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The module instance name of \hyperlink{protocolthe-p}{the} protocol to delete.

Delete a protocol from \hyperlink{protocolthe-p}{the} list of entries that would be notified if there is membership change on this interface.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_ad267c8d0fe208f4eef2cd66d56f812e7}{
\index{Mld6igmpVif@{Mld6igmpVif}!delete\_\-protocol@{delete\_\-protocol}}
\index{delete\_\-protocol@{delete\_\-protocol}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{delete\_\-protocol}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::delete\_\-protocol (
\begin{DoxyParamCaption}
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{const string \&}]{module\_\-instance\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_ad267c8d0fe208f4eef2cd66d56f812e7}


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

\hyperlink{classMld6igmpVif_a1076a9010953a238481edb07da0604f1}{Mld6igmpVif::delete\_\-protocol}: : The \#xorp\_\-module\_\-id of \hyperlink{protocolthe-p}{the} protocol to delete.

Delete a protocol from \hyperlink{protocolthe-p}{the} list of entries that would be notified if there is membership change on a particular interface.


\begin{DoxyParams}{Parameters}
{\em module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to delete. \\
\hline
{\em module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The module instance name of \hyperlink{protocolthe-p}{the} protocol to delete.

Delete a protocol from \hyperlink{protocolthe-p}{the} list of entries that would be notified if there is membership change on this interface.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_aad17c53888261f3826ecd5c91813c52d}{
\index{Mld6igmpVif@{Mld6igmpVif}!disable@{disable}}
\index{disable@{disable}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{disable}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::disable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_aad17c53888261f3826ecd5c91813c52d}


Disable MLD/IGMP on a single virtual interface. 

If an unit is disabled, it cannot be start or pending-\/start. If \hyperlink{protocolthe-p}{the} unit was runnning, it will be stop first. 

Reimplemented from \hyperlink{classProtoState_a42bbb9a9fa9588ec66f62d99644f3c48}{ProtoState}.

\hypertarget{classMld6igmpVif_aad17c53888261f3826ecd5c91813c52d}{
\index{Mld6igmpVif@{Mld6igmpVif}!disable@{disable}}
\index{disable@{disable}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{disable}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::disable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_aad17c53888261f3826ecd5c91813c52d}


Disable MLD/IGMP on a single virtual interface. 

If an unit is disabled, it cannot be start or pending-\/start. If \hyperlink{protocolthe-p}{the} unit was runnning, it will be stop first. 

Reimplemented from \hyperlink{classProtoState_a42bbb9a9fa9588ec66f62d99644f3c48}{ProtoState}.

\hypertarget{classMld6igmpVif_a1b369eb26bfa32cd60d8831d47e4060a}{
\index{Mld6igmpVif@{Mld6igmpVif}!effective\_\-query\_\-interval@{effective\_\-query\_\-interval}}
\index{effective\_\-query\_\-interval@{effective\_\-query\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{effective\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& Mld6igmpVif::effective\_\-query\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a1b369eb26bfa32cd60d8831d47e4060a}


Get \hyperlink{protocolthe-p}{the} effective Query Interval value. 

Note that this value may be modified by reconfiguring \hyperlink{protocolthe-p}{the} router, or by \hyperlink{protocolthe-p}{the} Query message from \hyperlink{protocolthe-p}{the} current Querier.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} effective Query Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a1b369eb26bfa32cd60d8831d47e4060a}{
\index{Mld6igmpVif@{Mld6igmpVif}!effective\_\-query\_\-interval@{effective\_\-query\_\-interval}}
\index{effective\_\-query\_\-interval@{effective\_\-query\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{effective\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& Mld6igmpVif::effective\_\-query\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a1b369eb26bfa32cd60d8831d47e4060a}


Get \hyperlink{protocolthe-p}{the} effective Query Interval value. 

Note that this value may be modified by reconfiguring \hyperlink{protocolthe-p}{the} router, or by \hyperlink{protocolthe-p}{the} Query message from \hyperlink{protocolthe-p}{the} current Querier.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} effective Query Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_ac09501a8f9cc04bd3017c6c366a38826}{
\index{Mld6igmpVif@{Mld6igmpVif}!effective\_\-robustness\_\-variable@{effective\_\-robustness\_\-variable}}
\index{effective\_\-robustness\_\-variable@{effective\_\-robustness\_\-variable}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{effective\_\-robustness\_\-variable}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Mld6igmpVif::effective\_\-robustness\_\-variable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_ac09501a8f9cc04bd3017c6c366a38826}


Get \hyperlink{protocolthe-p}{the} effective Robustness Variable value. 

Note that this value may be modified by reconfiguring \hyperlink{protocolthe-p}{the} router, or by \hyperlink{protocolthe-p}{the} Query messages from \hyperlink{protocolthe-p}{the} current Querier.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} effective Robustness Variable. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_ac09501a8f9cc04bd3017c6c366a38826}{
\index{Mld6igmpVif@{Mld6igmpVif}!effective\_\-robustness\_\-variable@{effective\_\-robustness\_\-variable}}
\index{effective\_\-robustness\_\-variable@{effective\_\-robustness\_\-variable}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{effective\_\-robustness\_\-variable}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Mld6igmpVif::effective\_\-robustness\_\-variable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_ac09501a8f9cc04bd3017c6c366a38826}


Get \hyperlink{protocolthe-p}{the} effective Robustness Variable value. 

Note that this value may be modified by reconfiguring \hyperlink{protocolthe-p}{the} router, or by \hyperlink{protocolthe-p}{the} Query messages from \hyperlink{protocolthe-p}{the} current Querier.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} effective Robustness Variable. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_af6777b51869f9e885e7d0ca1dba940ff}{
\index{Mld6igmpVif@{Mld6igmpVif}!enable@{enable}}
\index{enable@{enable}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{enable}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::enable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_af6777b51869f9e885e7d0ca1dba940ff}


Enable MLD/IGMP on a single virtual interface. 

If an unit is not enabled, it cannot be start, or pending-\/start. 

Reimplemented from \hyperlink{classProtoState_a9e91d1d442f873cf6bf914db996519e7}{ProtoState}.

\hypertarget{classMld6igmpVif_af6777b51869f9e885e7d0ca1dba940ff}{
\index{Mld6igmpVif@{Mld6igmpVif}!enable@{enable}}
\index{enable@{enable}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{enable}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::enable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_af6777b51869f9e885e7d0ca1dba940ff}


Enable MLD/IGMP on a single virtual interface. 

If an unit is not enabled, it cannot be start, or pending-\/start. 

Reimplemented from \hyperlink{classProtoState_a9e91d1d442f873cf6bf914db996519e7}{ProtoState}.

\hypertarget{classMld6igmpVif_ae5d5f011cd4ee66f72f6e90624ad9ffc}{
\index{Mld6igmpVif@{Mld6igmpVif}!flags\_\-string@{flags\_\-string}}
\index{flags\_\-string@{flags\_\-string}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{flags\_\-string}]{\setlength{\rightskip}{0pt plus 5cm}string Mld6igmpVif::flags\_\-string (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_ae5d5f011cd4ee66f72f6e90624ad9ffc}


Get \hyperlink{protocolthe-p}{the} string with \hyperlink{protocolthe-p}{the} flags about \hyperlink{protocolthe-p}{the} vif status. 

TODO: temporary here. Should go to \hyperlink{protocolthe-p}{the} \hyperlink{classVif}{Vif} class after \hyperlink{protocolthe-p}{the} \hyperlink{classVif}{Vif} class starts using \hyperlink{protocolthe-p}{the} Proto class.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} C++ style string with \hyperlink{protocolthe-p}{the} flags about \hyperlink{protocolthe-p}{the} vif status (e.g., UP/DOWN/DISABLED, etc). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_ae5d5f011cd4ee66f72f6e90624ad9ffc}{
\index{Mld6igmpVif@{Mld6igmpVif}!flags\_\-string@{flags\_\-string}}
\index{flags\_\-string@{flags\_\-string}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{flags\_\-string}]{\setlength{\rightskip}{0pt plus 5cm}string Mld6igmpVif::flags\_\-string (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_ae5d5f011cd4ee66f72f6e90624ad9ffc}


Get \hyperlink{protocolthe-p}{the} string with \hyperlink{protocolthe-p}{the} flags about \hyperlink{protocolthe-p}{the} vif status. 

TODO: temporary here. Should go to \hyperlink{protocolthe-p}{the} \hyperlink{classVif}{Vif} class after \hyperlink{protocolthe-p}{the} \hyperlink{classVif}{Vif} class starts using \hyperlink{protocolthe-p}{the} Proto class.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} C++ style string with \hyperlink{protocolthe-p}{the} flags about \hyperlink{protocolthe-p}{the} vif status (e.g., UP/DOWN/DISABLED, etc). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a63af58fb6c553ee0fa2707a907484ab1}{
\index{Mld6igmpVif@{Mld6igmpVif}!group\_\-membership\_\-interval@{group\_\-membership\_\-interval}}
\index{group\_\-membership\_\-interval@{group\_\-membership\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{group\_\-membership\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& Mld6igmpVif::group\_\-membership\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a63af58fb6c553ee0fa2707a907484ab1}


Obtain a reference to \hyperlink{protocolthe-p}{the} Group Membership Interval. 

Note that it is not directly configurable, but may be tuned by changing \hyperlink{protocolthe-p}{the} values of \hyperlink{protocolthe-p}{the} parameters it depends on.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Group Membership Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a63af58fb6c553ee0fa2707a907484ab1}{
\index{Mld6igmpVif@{Mld6igmpVif}!group\_\-membership\_\-interval@{group\_\-membership\_\-interval}}
\index{group\_\-membership\_\-interval@{group\_\-membership\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{group\_\-membership\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& Mld6igmpVif::group\_\-membership\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a63af58fb6c553ee0fa2707a907484ab1}


Obtain a reference to \hyperlink{protocolthe-p}{the} Group Membership Interval. 

Note that it is not directly configurable, but may be tuned by changing \hyperlink{protocolthe-p}{the} values of \hyperlink{protocolthe-p}{the} parameters it depends on.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Group Membership Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_abdc3d99bb0fa43e476c7795c42b21e94}{
\index{Mld6igmpVif@{Mld6igmpVif}!group\_\-records@{group\_\-records}}
\index{group\_\-records@{group\_\-records}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{group\_\-records}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Mld6igmpGroupSet}\& Mld6igmpVif::group\_\-records (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_abdc3d99bb0fa43e476c7795c42b21e94}


Get \hyperlink{protocolthe-p}{the} set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a6ff74f12e57fba1a969615299b546d14}{
\index{Mld6igmpVif@{Mld6igmpVif}!group\_\-records@{group\_\-records}}
\index{group\_\-records@{group\_\-records}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{group\_\-records}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Mld6igmpGroupSet}\& Mld6igmpVif::group\_\-records (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a6ff74f12e57fba1a969615299b546d14}


Get \hyperlink{protocolthe-p}{the} const set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} const set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_abdc3d99bb0fa43e476c7795c42b21e94}{
\index{Mld6igmpVif@{Mld6igmpVif}!group\_\-records@{group\_\-records}}
\index{group\_\-records@{group\_\-records}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{group\_\-records}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Mld6igmpGroupSet}\& Mld6igmpVif::group\_\-records (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_abdc3d99bb0fa43e476c7795c42b21e94}


Get \hyperlink{protocolthe-p}{the} set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a6ff74f12e57fba1a969615299b546d14}{
\index{Mld6igmpVif@{Mld6igmpVif}!group\_\-records@{group\_\-records}}
\index{group\_\-records@{group\_\-records}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{group\_\-records}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf Mld6igmpGroupSet}\& Mld6igmpVif::group\_\-records (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a6ff74f12e57fba1a969615299b546d14}


Get \hyperlink{protocolthe-p}{the} const set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} const set with \hyperlink{protocolthe-p}{the} multicast group records information (\hyperlink{classMld6igmpGroupSet}{Mld6igmpGroupSet}). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a5eb4e3acd4ee7b7d59df235657406b4f}{
\index{Mld6igmpVif@{Mld6igmpVif}!i\_\-am\_\-querier@{i\_\-am\_\-querier}}
\index{i\_\-am\_\-querier@{i\_\-am\_\-querier}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{i\_\-am\_\-querier}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::i\_\-am\_\-querier (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a5eb4e3acd4ee7b7d59df235657406b4f}


Test whether I am \hyperlink{protocolthe-p}{the} querier for this vif. 

\begin{DoxyReturn}{Returns}
true if I am \hyperlink{protocolthe-p}{the} querier for this vif, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a5eb4e3acd4ee7b7d59df235657406b4f}{
\index{Mld6igmpVif@{Mld6igmpVif}!i\_\-am\_\-querier@{i\_\-am\_\-querier}}
\index{i\_\-am\_\-querier@{i\_\-am\_\-querier}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{i\_\-am\_\-querier}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::i\_\-am\_\-querier (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a5eb4e3acd4ee7b7d59df235657406b4f}


Test whether I am \hyperlink{protocolthe-p}{the} querier for this vif. 

\begin{DoxyReturn}{Returns}
true if I am \hyperlink{protocolthe-p}{the} querier for this vif, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a9fa537ca88a95dfd535a1879fa2b815d}{
\index{Mld6igmpVif@{Mld6igmpVif}!ip\_\-router\_\-alert\_\-option\_\-check@{ip\_\-router\_\-alert\_\-option\_\-check}}
\index{ip\_\-router\_\-alert\_\-option\_\-check@{ip\_\-router\_\-alert\_\-option\_\-check}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{ip\_\-router\_\-alert\_\-option\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<$bool$>$\& Mld6igmpVif::ip\_\-router\_\-alert\_\-option\_\-check (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a9fa537ca88a95dfd535a1879fa2b815d}


Optain a reference to \hyperlink{protocolthe-p}{the} \char`\"{}IP Router Alert option check\char`\"{} flag. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} \char`\"{}IP Router Alert option check\char`\"{} flag. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a9fa537ca88a95dfd535a1879fa2b815d}{
\index{Mld6igmpVif@{Mld6igmpVif}!ip\_\-router\_\-alert\_\-option\_\-check@{ip\_\-router\_\-alert\_\-option\_\-check}}
\index{ip\_\-router\_\-alert\_\-option\_\-check@{ip\_\-router\_\-alert\_\-option\_\-check}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{ip\_\-router\_\-alert\_\-option\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<$bool$>$\& Mld6igmpVif::ip\_\-router\_\-alert\_\-option\_\-check (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a9fa537ca88a95dfd535a1879fa2b815d}


Optain a reference to \hyperlink{protocolthe-p}{the} \char`\"{}IP Router Alert option check\char`\"{} flag. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} \char`\"{}IP Router Alert option check\char`\"{} flag. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a06c8a5e8bee7329d44c3dd7877510c58}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv1\_\-mode@{is\_\-igmpv1\_\-mode}}
\index{is\_\-igmpv1\_\-mode@{is\_\-igmpv1\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv1\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv1\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a06c8a5e8bee7329d44c3dd7877510c58}


Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv1 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in IGMPv1 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a58272f72798c852c21fd0a9e4373a04d}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv1\_\-mode@{is\_\-igmpv1\_\-mode}}
\index{is\_\-igmpv1\_\-mode@{is\_\-igmpv1\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv1\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv1\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a58272f72798c852c21fd0a9e4373a04d}


Test if a group is running in IGMPv1 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in IGMPv1 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in IGMPv1 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a06c8a5e8bee7329d44c3dd7877510c58}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv1\_\-mode@{is\_\-igmpv1\_\-mode}}
\index{is\_\-igmpv1\_\-mode@{is\_\-igmpv1\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv1\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv1\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a06c8a5e8bee7329d44c3dd7877510c58}


Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv1 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in IGMPv1 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a58272f72798c852c21fd0a9e4373a04d}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv1\_\-mode@{is\_\-igmpv1\_\-mode}}
\index{is\_\-igmpv1\_\-mode@{is\_\-igmpv1\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv1\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv1\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a58272f72798c852c21fd0a9e4373a04d}


Test if a group is running in IGMPv1 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in IGMPv1 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in IGMPv1 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a049a62f1753a573cbaee0d4dcef8efa6}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv2\_\-mode@{is\_\-igmpv2\_\-mode}}
\index{is\_\-igmpv2\_\-mode@{is\_\-igmpv2\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv2\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv2\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a049a62f1753a573cbaee0d4dcef8efa6}


Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv2 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in IGMPv2 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a2f062917bd51a8dd19ad988049aeda13}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv2\_\-mode@{is\_\-igmpv2\_\-mode}}
\index{is\_\-igmpv2\_\-mode@{is\_\-igmpv2\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv2\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv2\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a2f062917bd51a8dd19ad988049aeda13}


Test if a group is running in IGMPv2 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in IGMPv2 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in IGMPv2 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a049a62f1753a573cbaee0d4dcef8efa6}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv2\_\-mode@{is\_\-igmpv2\_\-mode}}
\index{is\_\-igmpv2\_\-mode@{is\_\-igmpv2\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv2\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv2\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a049a62f1753a573cbaee0d4dcef8efa6}


Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv2 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in IGMPv2 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a2f062917bd51a8dd19ad988049aeda13}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv2\_\-mode@{is\_\-igmpv2\_\-mode}}
\index{is\_\-igmpv2\_\-mode@{is\_\-igmpv2\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv2\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv2\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a2f062917bd51a8dd19ad988049aeda13}


Test if a group is running in IGMPv2 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in IGMPv2 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in IGMPv2 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a3ad507f574fc4acca668cccf5ecbf13f}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv3\_\-mode@{is\_\-igmpv3\_\-mode}}
\index{is\_\-igmpv3\_\-mode@{is\_\-igmpv3\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv3\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv3\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a3ad507f574fc4acca668cccf5ecbf13f}


Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv3 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in IGMPv3 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a3217bc433b19103b6f89307c9b7a020c}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv3\_\-mode@{is\_\-igmpv3\_\-mode}}
\index{is\_\-igmpv3\_\-mode@{is\_\-igmpv3\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv3\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv3\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a3217bc433b19103b6f89307c9b7a020c}


Test if a group is running in IGMPv3 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in IGMPv3 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in IGMPv3 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a3ad507f574fc4acca668cccf5ecbf13f}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv3\_\-mode@{is\_\-igmpv3\_\-mode}}
\index{is\_\-igmpv3\_\-mode@{is\_\-igmpv3\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv3\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv3\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a3ad507f574fc4acca668cccf5ecbf13f}


Test if \hyperlink{protocolthe-p}{the} interface is running in IGMPv3 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in IGMPv3 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a3217bc433b19103b6f89307c9b7a020c}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-igmpv3\_\-mode@{is\_\-igmpv3\_\-mode}}
\index{is\_\-igmpv3\_\-mode@{is\_\-igmpv3\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-igmpv3\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-igmpv3\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a3217bc433b19103b6f89307c9b7a020c}


Test if a group is running in IGMPv3 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in IGMPv3 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in IGMPv3 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a22a1c659c90a62ddcf95e4bc13daf9cc}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-mldv1\_\-mode@{is\_\-mldv1\_\-mode}}
\index{is\_\-mldv1\_\-mode@{is\_\-mldv1\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-mldv1\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-mldv1\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a22a1c659c90a62ddcf95e4bc13daf9cc}


Test if \hyperlink{protocolthe-p}{the} interface is running in MLDv1 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in MLDv1 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a065e995720189c8bc695e1df5ded27a0}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-mldv1\_\-mode@{is\_\-mldv1\_\-mode}}
\index{is\_\-mldv1\_\-mode@{is\_\-mldv1\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-mldv1\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-mldv1\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a065e995720189c8bc695e1df5ded27a0}


Test if a group is running in MLDv1 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in MLDv1 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in MLDv1 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a22a1c659c90a62ddcf95e4bc13daf9cc}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-mldv1\_\-mode@{is\_\-mldv1\_\-mode}}
\index{is\_\-mldv1\_\-mode@{is\_\-mldv1\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-mldv1\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-mldv1\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a22a1c659c90a62ddcf95e4bc13daf9cc}


Test if \hyperlink{protocolthe-p}{the} interface is running in MLDv1 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in MLDv1 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a065e995720189c8bc695e1df5ded27a0}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-mldv1\_\-mode@{is\_\-mldv1\_\-mode}}
\index{is\_\-mldv1\_\-mode@{is\_\-mldv1\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-mldv1\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-mldv1\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a065e995720189c8bc695e1df5ded27a0}


Test if a group is running in MLDv1 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in MLDv1 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in MLDv1 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a52585d483afcbac60c1776f187b60bbd}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-mldv2\_\-mode@{is\_\-mldv2\_\-mode}}
\index{is\_\-mldv2\_\-mode@{is\_\-mldv2\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-mldv2\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-mldv2\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a52585d483afcbac60c1776f187b60bbd}


Test if \hyperlink{protocolthe-p}{the} interface is running in MLDv2 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in MLDv2 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_aa538626dc9234da3a9c794526d3a4599}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-mldv2\_\-mode@{is\_\-mldv2\_\-mode}}
\index{is\_\-mldv2\_\-mode@{is\_\-mldv2\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-mldv2\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-mldv2\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_aa538626dc9234da3a9c794526d3a4599}


Test if a group is running in MLDv2 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in MLDv2 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in MLDv2 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a52585d483afcbac60c1776f187b60bbd}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-mldv2\_\-mode@{is\_\-mldv2\_\-mode}}
\index{is\_\-mldv2\_\-mode@{is\_\-mldv2\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-mldv2\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-mldv2\_\-mode (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a52585d483afcbac60c1776f187b60bbd}


Test if \hyperlink{protocolthe-p}{the} interface is running in MLDv2 mode. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface is running in MLDv2 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_aa538626dc9234da3a9c794526d3a4599}{
\index{Mld6igmpVif@{Mld6igmpVif}!is\_\-mldv2\_\-mode@{is\_\-mldv2\_\-mode}}
\index{is\_\-mldv2\_\-mode@{is\_\-mldv2\_\-mode}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{is\_\-mldv2\_\-mode}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::is\_\-mldv2\_\-mode (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpGroupRecord} $\ast$}]{group\_\-record}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_aa538626dc9234da3a9c794526d3a4599}


Test if a group is running in MLDv2 mode. 

Note that if group\_\-record is NULL, then we test whether \hyperlink{protocolthe-p}{the} interface itself is running in MLDv2 mode. 
\begin{DoxyParams}{Parameters}
{\em group\_\-record} & \hyperlink{protocolthe-p}{the} group record to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} group is running in MLDv2 mode, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a01dc32de402550ce28c42c8e10edbf8b}{
\index{Mld6igmpVif@{Mld6igmpVif}!join\_\-prune\_\-notify\_\-routing@{join\_\-prune\_\-notify\_\-routing}}
\index{join\_\-prune\_\-notify\_\-routing@{join\_\-prune\_\-notify\_\-routing}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{join\_\-prune\_\-notify\_\-routing}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::join\_\-prune\_\-notify\_\-routing (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{source, }
\item[{const {\bf IPvX} \&}]{group, }
\item[{action\_\-jp\_\-t}]{action\_\-jp}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a01dc32de402550ce28c42c8e10edbf8b}


Notify \hyperlink{protocolthe-p}{the} interested parties that there is membership change among \hyperlink{protocolthe-p}{the} local members. 


\begin{DoxyParams}{Parameters}
{\em source} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} (S,G) entry that has changed. In case of group-\/specific membership, it could be \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} (S,G) entry that has changed. \\
\hline
{\em action\_\-jp} & \hyperlink{protocolthe-p}{the} membership change: ACTION\_\-JOIN or ACTION\_\-PRUNE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a01dc32de402550ce28c42c8e10edbf8b}{
\index{Mld6igmpVif@{Mld6igmpVif}!join\_\-prune\_\-notify\_\-routing@{join\_\-prune\_\-notify\_\-routing}}
\index{join\_\-prune\_\-notify\_\-routing@{join\_\-prune\_\-notify\_\-routing}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{join\_\-prune\_\-notify\_\-routing}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::join\_\-prune\_\-notify\_\-routing (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{source, }
\item[{const {\bf IPvX} \&}]{group, }
\item[{action\_\-jp\_\-t}]{action\_\-jp}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_a01dc32de402550ce28c42c8e10edbf8b}


Notify \hyperlink{protocolthe-p}{the} interested parties that there is membership change among \hyperlink{protocolthe-p}{the} local members. 


\begin{DoxyParams}{Parameters}
{\em source} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} (S,G) entry that has changed. In case of group-\/specific membership, it could be \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} (S,G) entry that has changed. \\
\hline
{\em action\_\-jp} & \hyperlink{protocolthe-p}{the} membership change: ACTION\_\-JOIN or ACTION\_\-PRUNE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a5c4ad83e8c0cfee67212ba2485aa163b}{
\index{Mld6igmpVif@{Mld6igmpVif}!last\_\-member\_\-query\_\-count@{last\_\-member\_\-query\_\-count}}
\index{last\_\-member\_\-query\_\-count@{last\_\-member\_\-query\_\-count}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{last\_\-member\_\-query\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Mld6igmpVif::last\_\-member\_\-query\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a5c4ad83e8c0cfee67212ba2485aa163b}


Get \hyperlink{protocolthe-p}{the} Last Member Query Count value. 

Note: According to \hyperlink{protocolthe-p}{the} IGMP/MLD spec, \hyperlink{protocolthe-p}{the} default value for \hyperlink{protocolthe-p}{the} Last Member Query Count is \hyperlink{protocolthe-p}{the} Robustness Variable. Hence, \hyperlink{protocolthe-p}{the} Last Member Query Count itself should be configurable. For simplicity (and for consistency with other router vendors), it is always same as \hyperlink{protocolthe-p}{the} Robustness Variable.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} Last Member Query Count. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a5c4ad83e8c0cfee67212ba2485aa163b}{
\index{Mld6igmpVif@{Mld6igmpVif}!last\_\-member\_\-query\_\-count@{last\_\-member\_\-query\_\-count}}
\index{last\_\-member\_\-query\_\-count@{last\_\-member\_\-query\_\-count}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{last\_\-member\_\-query\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Mld6igmpVif::last\_\-member\_\-query\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a5c4ad83e8c0cfee67212ba2485aa163b}


Get \hyperlink{protocolthe-p}{the} Last Member Query Count value. 

Note: According to \hyperlink{protocolthe-p}{the} IGMP/MLD spec, \hyperlink{protocolthe-p}{the} default value for \hyperlink{protocolthe-p}{the} Last Member Query Count is \hyperlink{protocolthe-p}{the} Robustness Variable. Hence, \hyperlink{protocolthe-p}{the} Last Member Query Count itself should be configurable. For simplicity (and for consistency with other router vendors), it is always same as \hyperlink{protocolthe-p}{the} Robustness Variable.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} Last Member Query Count. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_afc69869155abf38d4a29da069fe881b5}{
\index{Mld6igmpVif@{Mld6igmpVif}!last\_\-member\_\-query\_\-time@{last\_\-member\_\-query\_\-time}}
\index{last\_\-member\_\-query\_\-time@{last\_\-member\_\-query\_\-time}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{last\_\-member\_\-query\_\-time}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& Mld6igmpVif::last\_\-member\_\-query\_\-time (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_afc69869155abf38d4a29da069fe881b5}


Obtain a reference to \hyperlink{protocolthe-p}{the} Last Member Query Time. 

Note that it is not directly configurable, but may be tuned by changing \hyperlink{protocolthe-p}{the} values of \hyperlink{protocolthe-p}{the} parameters it depends on.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Last Member Query Time. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_afc69869155abf38d4a29da069fe881b5}{
\index{Mld6igmpVif@{Mld6igmpVif}!last\_\-member\_\-query\_\-time@{last\_\-member\_\-query\_\-time}}
\index{last\_\-member\_\-query\_\-time@{last\_\-member\_\-query\_\-time}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{last\_\-member\_\-query\_\-time}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& Mld6igmpVif::last\_\-member\_\-query\_\-time (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_afc69869155abf38d4a29da069fe881b5}


Obtain a reference to \hyperlink{protocolthe-p}{the} Last Member Query Time. 

Note that it is not directly configurable, but may be tuned by changing \hyperlink{protocolthe-p}{the} values of \hyperlink{protocolthe-p}{the} parameters it depends on.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Last Member Query Time. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a6182b54e55abb2912595051f78dd4970}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-group\_\-query\_\-send@{mld6igmp\_\-group\_\-query\_\-send}}
\index{mld6igmp\_\-group\_\-query\_\-send@{mld6igmp\_\-group\_\-query\_\-send}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-group\_\-query\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-group\_\-query\_\-send (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a6182b54e55abb2912595051f78dd4970}


\hyperlink{structSend}{Send} Group-\/Specific Query message. 


\begin{DoxyParams}{Parameters}
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a6182b54e55abb2912595051f78dd4970}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-group\_\-query\_\-send@{mld6igmp\_\-group\_\-query\_\-send}}
\index{mld6igmp\_\-group\_\-query\_\-send@{mld6igmp\_\-group\_\-query\_\-send}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-group\_\-query\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-group\_\-query\_\-send (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a6182b54e55abb2912595051f78dd4970}


\hyperlink{structSend}{Send} Group-\/Specific Query message. 


\begin{DoxyParams}{Parameters}
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_ab5f9712ebf4eb2c92e4f52dbc017d079}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-group\_\-source\_\-query\_\-send@{mld6igmp\_\-group\_\-source\_\-query\_\-send}}
\index{mld6igmp\_\-group\_\-source\_\-query\_\-send@{mld6igmp\_\-group\_\-source\_\-query\_\-send}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-group\_\-source\_\-query\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-group\_\-source\_\-query\_\-send (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{const set$<$ {\bf IPvX} $>$ \&}]{sources, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_ab5f9712ebf4eb2c92e4f52dbc017d079}


\hyperlink{structSend}{Send} MLDv2 or IGMPv3 Group-\/and-\/Source-\/Specific Query message. 


\begin{DoxyParams}{Parameters}
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. \\
\hline
{\em sources} & \hyperlink{protocolthe-p}{the} set of source addresses. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_ab5f9712ebf4eb2c92e4f52dbc017d079}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-group\_\-source\_\-query\_\-send@{mld6igmp\_\-group\_\-source\_\-query\_\-send}}
\index{mld6igmp\_\-group\_\-source\_\-query\_\-send@{mld6igmp\_\-group\_\-source\_\-query\_\-send}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-group\_\-source\_\-query\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-group\_\-source\_\-query\_\-send (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{const set$<$ {\bf IPvX} $>$ \&}]{sources, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_ab5f9712ebf4eb2c92e4f52dbc017d079}


\hyperlink{structSend}{Send} MLDv2 or IGMPv3 Group-\/and-\/Source-\/Specific Query message. 


\begin{DoxyParams}{Parameters}
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. \\
\hline
{\em sources} & \hyperlink{protocolthe-p}{the} set of source addresses. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_ac6b8a9d9bf6c608f84cbe47da2b2cc1c}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-leave\_\-group\_\-recv@{mld6igmp\_\-leave\_\-group\_\-recv}}
\index{mld6igmp\_\-leave\_\-group\_\-recv@{mld6igmp\_\-leave\_\-group\_\-recv}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-leave\_\-group\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-leave\_\-group\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{uint8\_\-t}]{message\_\-type, }
\item[{uint16\_\-t}]{max\_\-resp\_\-code, }
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_ac6b8a9d9bf6c608f84cbe47da2b2cc1c}


\hyperlink{classMld6igmpVif_ac6b8a9d9bf6c608f84cbe47da2b2cc1c}{Mld6igmpVif::mld6igmp\_\-leave\_\-group\_\-recv}: : The message source address. 

: The message destination address. : The message type. : The Maximum Response \hyperlink{classCode}{Code} from \hyperlink{protocolthe-p}{the} MLD/IGMP header. : The Group \hyperlink{structAddress}{Address} from \hyperlink{protocolthe-p}{the} MLD/IGMP message. : The buffer with \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} message.

Receive and process IGMP\_\-V2\_\-LEAVE\_\-GROUP/MLD\_\-LISTENER\_\-DONE message from a host.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_aa3e09b8cc5bcfe24d8699ffbb332cf4a}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-membership\_\-query\_\-recv@{mld6igmp\_\-membership\_\-query\_\-recv}}
\index{mld6igmp\_\-membership\_\-query\_\-recv@{mld6igmp\_\-membership\_\-query\_\-recv}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-membership\_\-query\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-membership\_\-query\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{uint8\_\-t}]{message\_\-type, }
\item[{uint16\_\-t}]{max\_\-resp\_\-code, }
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_aa3e09b8cc5bcfe24d8699ffbb332cf4a}


\hyperlink{classMld6igmpVif_aa3e09b8cc5bcfe24d8699ffbb332cf4a}{Mld6igmpVif::mld6igmp\_\-membership\_\-query\_\-recv}: : The message source address. 

: The message destination address. : The message type. : The Maximum Response \hyperlink{classCode}{Code} from \hyperlink{protocolthe-p}{the} MLD/IGMP header. : The Group \hyperlink{structAddress}{Address} from \hyperlink{protocolthe-p}{the} MLD/IGMP message. : The buffer with \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} message.

Receive and process IGMP\_\-MEMBERSHIP\_\-QUERY/MLD\_\-LISTENER\_\-QUERY message from another router.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_ae7d44b63f0f0140904fa9e1d42d11621}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-membership\_\-report\_\-recv@{mld6igmp\_\-membership\_\-report\_\-recv}}
\index{mld6igmp\_\-membership\_\-report\_\-recv@{mld6igmp\_\-membership\_\-report\_\-recv}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-membership\_\-report\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-membership\_\-report\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{uint8\_\-t}]{message\_\-type, }
\item[{uint16\_\-t}]{max\_\-resp\_\-code, }
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_ae7d44b63f0f0140904fa9e1d42d11621}


\hyperlink{classMld6igmpVif_ae7d44b63f0f0140904fa9e1d42d11621}{Mld6igmpVif::mld6igmp\_\-membership\_\-report\_\-recv}: : The message source address. 

: The message destination address. : The message type. : The Maximum Response \hyperlink{classCode}{Code} from \hyperlink{protocolthe-p}{the} MLD/IGMP header. : The Group \hyperlink{structAddress}{Address} from \hyperlink{protocolthe-p}{the} MLD/IGMP message. : The buffer with \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} message.

Receive and process (IGMP\_\-V1\_\-MEMBERSHIP\_\-REPORT or IGMP\_\-V2\_\-MEMBERSHIP\_\-REPORT)/MLD\_\-LISTENER\_\-REPORT message from a host.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_a481d036b6c0c4f154df5440959fa5951}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-node@{mld6igmp\_\-node}}
\index{mld6igmp\_\-node@{mld6igmp\_\-node}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-node}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Mld6igmpNode}\& Mld6igmpVif::mld6igmp\_\-node (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a481d036b6c0c4f154df5440959fa5951}


Get \hyperlink{protocolthe-p}{the} MLD6IGMP node (\hyperlink{classMld6igmpNode}{Mld6igmpNode}). 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} MLD6IGMP node (\hyperlink{classMld6igmpNode}{Mld6igmpNode}). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a481d036b6c0c4f154df5440959fa5951}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-node@{mld6igmp\_\-node}}
\index{mld6igmp\_\-node@{mld6igmp\_\-node}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-node}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Mld6igmpNode}\& Mld6igmpVif::mld6igmp\_\-node (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a481d036b6c0c4f154df5440959fa5951}


Get \hyperlink{protocolthe-p}{the} MLD6IGMP node (\hyperlink{classMld6igmpNode}{Mld6igmpNode}). 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} MLD6IGMP node (\hyperlink{classMld6igmpNode}{Mld6igmpNode}). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a312a970f196bce173c5b239a0e6ef966}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-process@{mld6igmp\_\-process}}
\index{mld6igmp\_\-process@{mld6igmp\_\-process}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-process}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-process (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{int}]{ip\_\-ttl, }
\item[{int}]{ip\_\-tos, }
\item[{bool}]{ip\_\-router\_\-alert, }
\item[{bool}]{ip\_\-internet\_\-control, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a312a970f196bce173c5b239a0e6ef966}


\hyperlink{classMld6igmpVif_a312a970f196bce173c5b239a0e6ef966}{Mld6igmpVif::mld6igmp\_\-process}: : The message source address. 

: The message destination address. : The IP TTL of \hyperlink{protocolthe-p}{the} message. If it has a negative value, it should be ignored. : The IP TOS of \hyperlink{protocolthe-p}{the} message. If it has a negative value, it should be ignored. : True if \hyperlink{protocolthe-p}{the} received IP packet had \hyperlink{protocolthe-p}{the} Router Alert IP option set. : If true, then this is IP control traffic. : The buffer with \hyperlink{protocolthe-p}{the} message. : The error message (if error).

Process MLD or IGMP message and pass \hyperlink{protocolthe-p}{the} control to \hyperlink{protocolthe-p}{the} type-\/specific functions.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_a7fe74727fc031bfbdc85ebf6adcd66df}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-query\_\-send@{mld6igmp\_\-query\_\-send}}
\index{mld6igmp\_\-query\_\-send@{mld6igmp\_\-query\_\-send}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-query\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-query\_\-send (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{const {\bf TimeVal} \&}]{max\_\-resp\_\-time, }
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{const set$<$ {\bf IPvX} $>$ \&}]{sources, }
\item[{bool}]{s\_\-flag, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a7fe74727fc031bfbdc85ebf6adcd66df}


\hyperlink{structSend}{Send} MLD or IGMP Query message. 


\begin{DoxyParams}{Parameters}
{\em src} & \hyperlink{protocolthe-p}{the} message source address. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} message destination address. \\
\hline
{\em max\_\-resp\_\-time} & \hyperlink{protocolthe-p}{the} maximum response time. \\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. \\
\hline
{\em sources} & \hyperlink{protocolthe-p}{the} set of source addresses (for IGMPv3 or MLDv2 only). \\
\hline
{\em s\_\-flag} & \hyperlink{protocolthe-p}{the} \char`\"{}Suppress Router-\/Side Processing\char`\"{} bit (for IGMPv3 or MLDv2 only; in all other cases it should be set to false). \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a7fe74727fc031bfbdc85ebf6adcd66df}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-query\_\-send@{mld6igmp\_\-query\_\-send}}
\index{mld6igmp\_\-query\_\-send@{mld6igmp\_\-query\_\-send}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-query\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-query\_\-send (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{const {\bf TimeVal} \&}]{max\_\-resp\_\-time, }
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{const set$<$ {\bf IPvX} $>$ \&}]{sources, }
\item[{bool}]{s\_\-flag, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a7fe74727fc031bfbdc85ebf6adcd66df}


\hyperlink{structSend}{Send} MLD or IGMP Query message. 


\begin{DoxyParams}{Parameters}
{\em src} & \hyperlink{protocolthe-p}{the} message source address. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} message destination address. \\
\hline
{\em max\_\-resp\_\-time} & \hyperlink{protocolthe-p}{the} maximum response time. \\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. \\
\hline
{\em sources} & \hyperlink{protocolthe-p}{the} set of source addresses (for IGMPv3 or MLDv2 only). \\
\hline
{\em s\_\-flag} & \hyperlink{protocolthe-p}{the} \char`\"{}Suppress Router-\/Side Processing\char`\"{} bit (for IGMPv3 or MLDv2 only; in all other cases it should be set to false). \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a25d0b28ed11a6066643c376d724bf24e}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-query\_\-version\_\-consistency\_\-check@{mld6igmp\_\-query\_\-version\_\-consistency\_\-check}}
\index{mld6igmp\_\-query\_\-version\_\-consistency\_\-check@{mld6igmp\_\-query\_\-version\_\-consistency\_\-check}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-query\_\-version\_\-consistency\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-query\_\-version\_\-consistency\_\-check (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{uint8\_\-t}]{message\_\-type, }
\item[{int}]{message\_\-version}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a25d0b28ed11a6066643c376d724bf24e}


mld6igmp\_\-query\_\-version\_\-consistency\_\-check: : The message source address. 

: The message destination address. : The type of \hyperlink{protocolthe-p}{the} MLD/IGMP message. : The protocol version of \hyperlink{protocolthe-p}{the} received Query message: (IGMP\_\-V1, IGMP\_\-V2, IGMP\_\-V3 for IGMP) or (MLD\_\-V1, MLD\_\-V2 for MLD).

Check for MLD/IGMP protocol version interface configuration consistency. For example, if \hyperlink{protocolthe-p}{the} received Query message was IGMPv1, a correctly configured local interface must be operating in IGMPv1 mode. Similarly, if \hyperlink{protocolthe-p}{the} local interface is operating in IGMPv1 mode, all other neighbor routers (for that interface) must be operating in IGMPv1 as well.

Return value: XORP\_\-OK if consistency, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_a27fad45de035641702942359653df68d}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-recv@{mld6igmp\_\-recv}}
\index{mld6igmp\_\-recv@{mld6igmp\_\-recv}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{int}]{ip\_\-ttl, }
\item[{int}]{ip\_\-tos, }
\item[{bool}]{ip\_\-router\_\-alert, }
\item[{bool}]{ip\_\-internet\_\-control, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a27fad45de035641702942359653df68d}


Receive a protocol message. 


\begin{DoxyParams}{Parameters}
{\em src} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} message. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} destination address of \hyperlink{protocolthe-p}{the} message. \\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TTL of \hyperlink{protocolthe-p}{the} message. If it has a negative value it should be ignored. \\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TOS of \hyperlink{protocolthe-p}{the} message. If it has a negative value, it should be ignored. \\
\hline
{\em ip\_\-router\_\-alert} & if true, \hyperlink{protocolthe-p}{the} IP Router Alert option in \hyperlink{protocolthe-p}{the} IP packet was set (when applicable). \\
\hline
{\em ip\_\-internet\_\-control} & if true, then this is IP control traffic. \\
\hline
{\em buffer} & \hyperlink{protocolthe-p}{the} data buffer with \hyperlink{protocolthe-p}{the} received message. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a27fad45de035641702942359653df68d}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-recv@{mld6igmp\_\-recv}}
\index{mld6igmp\_\-recv@{mld6igmp\_\-recv}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{int}]{ip\_\-ttl, }
\item[{int}]{ip\_\-tos, }
\item[{bool}]{ip\_\-router\_\-alert, }
\item[{bool}]{ip\_\-internet\_\-control, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a27fad45de035641702942359653df68d}


Receive a protocol message. 

\hyperlink{classMld6igmpVif_a27fad45de035641702942359653df68d}{Mld6igmpVif::mld6igmp\_\-recv}: : The message source address.


\begin{DoxyParams}{Parameters}
{\em src} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} message. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} destination address of \hyperlink{protocolthe-p}{the} message. \\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TTL of \hyperlink{protocolthe-p}{the} message. If it has a negative value it should be ignored. \\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TOS of \hyperlink{protocolthe-p}{the} message. If it has a negative value, it should be ignored. \\
\hline
{\em ip\_\-router\_\-alert} & if true, \hyperlink{protocolthe-p}{the} IP Router Alert option in \hyperlink{protocolthe-p}{the} IP packet was set (when applicable). \\
\hline
{\em ip\_\-internet\_\-control} & if true, then this is IP control traffic. \\
\hline
{\em buffer} & \hyperlink{protocolthe-p}{the} data buffer with \hyperlink{protocolthe-p}{the} received message. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The message destination address. : The IP TTL of \hyperlink{protocolthe-p}{the} message. If it has a negative value, it should be ignored. : The IP TOS of \hyperlink{protocolthe-p}{the} message. If it has a negative value, it should be ignored. : True if \hyperlink{protocolthe-p}{the} received IP packet had \hyperlink{protocolthe-p}{the} Router Alert IP option set. : If true, then this is IP control traffic. : The buffer with \hyperlink{protocolthe-p}{the} received message. : The error message (if error).

Receive MLD or IGMP message and pass it for processing.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_abb89dbfeee9ef55203ab227f33b81485}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-send@{mld6igmp\_\-send}}
\index{mld6igmp\_\-send@{mld6igmp\_\-send}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-send (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{uint8\_\-t}]{message\_\-type, }
\item[{uint16\_\-t}]{max\_\-resp\_\-code, }
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_abb89dbfeee9ef55203ab227f33b81485}


\hyperlink{structSend}{Send} MLD or IGMP message. 

\hyperlink{classMld6igmpVif_abb89dbfeee9ef55203ab227f33b81485}{Mld6igmpVif::mld6igmp\_\-send}: : The message source address.


\begin{DoxyParams}{Parameters}
{\em src} & \hyperlink{protocolthe-p}{the} message source address. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} message destination address. \\
\hline
{\em message\_\-type} & \hyperlink{protocolthe-p}{the} MLD or IGMP type of \hyperlink{protocolthe-p}{the} message. \\
\hline
{\em max\_\-resp\_\-code} & \hyperlink{protocolthe-p}{the} \char`\"{}Maximum Response Code\char`\"{} or \char`\"{}Max Resp Code\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively (in \hyperlink{protocolthe-p}{the} particular protocol resolution). \\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. \\
\hline
{\em buffer} & \hyperlink{protocolthe-p}{the} buffer with \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} message. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The message destination address. : The MLD or IGMP type of \hyperlink{protocolthe-p}{the} message. : The \char`\"{}Maximum Response Code\char`\"{} or \char`\"{}Max Resp Code\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively (in \hyperlink{protocolthe-p}{the} particular protocol resolution). : The \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. : The buffer with \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} message. : The error message (if error).

\hyperlink{structSend}{Send} MLD or IGMP message.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_abb89dbfeee9ef55203ab227f33b81485}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-send@{mld6igmp\_\-send}}
\index{mld6igmp\_\-send@{mld6igmp\_\-send}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-send (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{uint8\_\-t}]{message\_\-type, }
\item[{uint16\_\-t}]{max\_\-resp\_\-code, }
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_abb89dbfeee9ef55203ab227f33b81485}


\hyperlink{structSend}{Send} MLD or IGMP message. 


\begin{DoxyParams}{Parameters}
{\em src} & \hyperlink{protocolthe-p}{the} message source address. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} message destination address. \\
\hline
{\em message\_\-type} & \hyperlink{protocolthe-p}{the} MLD or IGMP type of \hyperlink{protocolthe-p}{the} message. \\
\hline
{\em max\_\-resp\_\-code} & \hyperlink{protocolthe-p}{the} \char`\"{}Maximum Response Code\char`\"{} or \char`\"{}Max Resp Code\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively (in \hyperlink{protocolthe-p}{the} particular protocol resolution). \\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} \char`\"{}Multicast Address\char`\"{} or \char`\"{}Group Address\char`\"{} field in \hyperlink{protocolthe-p}{the} MLD or IGMP headers respectively. \\
\hline
{\em buffer} & \hyperlink{protocolthe-p}{the} buffer with \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} message. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a8f61f037471b534f67defc7ffc6ab000}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv@{mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv}}
\index{mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv@{mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{uint8\_\-t}]{message\_\-type, }
\item[{uint16\_\-t}]{max\_\-resp\_\-code, }
\item[{const {\bf IPvX} \&}]{group\_\-address, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a8f61f037471b534f67defc7ffc6ab000}


\hyperlink{classMld6igmpVif_a8f61f037471b534f67defc7ffc6ab000}{Mld6igmpVif::mld6igmp\_\-ssm\_\-membership\_\-query\_\-recv}: : The message source address. 

: The message destination address. : The message type. : The Maximum Response \hyperlink{classCode}{Code} from \hyperlink{protocolthe-p}{the} MLD/IGMP header. : The Group \hyperlink{structAddress}{Address} from \hyperlink{protocolthe-p}{the} MLD/IGMP message. : The buffer with \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} message.

Receive and process IGMPv3/MLDv2 IGMP\_\-MEMBERSHIP\_\-QUERY/MLD\_\-LISTENER\_\-QUERY message from another router.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_a20aa9b8e73779a1b0cf10ed39faf46c1}{
\index{Mld6igmpVif@{Mld6igmpVif}!mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv@{mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv}}
\index{mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv@{mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{uint8\_\-t}]{message\_\-type, }
\item[{{\bf buffer\_\-t} $\ast$}]{buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a20aa9b8e73779a1b0cf10ed39faf46c1}


\hyperlink{classMld6igmpVif_a20aa9b8e73779a1b0cf10ed39faf46c1}{Mld6igmpVif::mld6igmp\_\-ssm\_\-membership\_\-report\_\-recv}: : The message source address. 

: The message destination address. : The message type. : The buffer with \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} message.

Receive and process IGMP\_\-V3\_\-MEMBERSHIP\_\-REPORT/MLDV2\_\-LISTENER\_\-REPORT message from a host.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_a61b9096410e4484e8cf9ed242e11c8a7}{
\index{Mld6igmpVif@{Mld6igmpVif}!notifyUpdated@{notifyUpdated}}
\index{notifyUpdated@{notifyUpdated}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{notifyUpdated}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::notifyUpdated (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a61b9096410e4484e8cf9ed242e11c8a7}


Attempt deferred start. 

\hyperlink{classSystem}{System} detected some change.\hypertarget{classMld6igmpVif_a0dce1466dcc9dc30dd39912488a64ab2}{
\index{Mld6igmpVif@{Mld6igmpVif}!older\_\-version\_\-host\_\-present\_\-interval@{older\_\-version\_\-host\_\-present\_\-interval}}
\index{older\_\-version\_\-host\_\-present\_\-interval@{older\_\-version\_\-host\_\-present\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{older\_\-version\_\-host\_\-present\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& Mld6igmpVif::older\_\-version\_\-host\_\-present\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a0dce1466dcc9dc30dd39912488a64ab2}


Obtain a reference to \hyperlink{protocolthe-p}{the} Older Version Host Present Interval. 

Note that it is not directly configurable, but may be tuned by changing \hyperlink{protocolthe-p}{the} values of \hyperlink{protocolthe-p}{the} parameters it depends on.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Older Version Host Present Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a0dce1466dcc9dc30dd39912488a64ab2}{
\index{Mld6igmpVif@{Mld6igmpVif}!older\_\-version\_\-host\_\-present\_\-interval@{older\_\-version\_\-host\_\-present\_\-interval}}
\index{older\_\-version\_\-host\_\-present\_\-interval@{older\_\-version\_\-host\_\-present\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{older\_\-version\_\-host\_\-present\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf TimeVal}\& Mld6igmpVif::older\_\-version\_\-host\_\-present\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a0dce1466dcc9dc30dd39912488a64ab2}


Obtain a reference to \hyperlink{protocolthe-p}{the} Older Version Host Present Interval. 

Note that it is not directly configurable, but may be tuned by changing \hyperlink{protocolthe-p}{the} values of \hyperlink{protocolthe-p}{the} parameters it depends on.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Older Version Host Present Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a11190b0e5374298caf16207b02a1fa44}{
\index{Mld6igmpVif@{Mld6igmpVif}!other\_\-querier\_\-timer\_\-timeout@{other\_\-querier\_\-timer\_\-timeout}}
\index{other\_\-querier\_\-timer\_\-timeout@{other\_\-querier\_\-timer\_\-timeout}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{other\_\-querier\_\-timer\_\-timeout}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::other\_\-querier\_\-timer\_\-timeout (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a11190b0e5374298caf16207b02a1fa44}


\hyperlink{classMld6igmpVif_a11190b0e5374298caf16207b02a1fa44}{Mld6igmpVif::other\_\-querier\_\-timer\_\-timeout}: 

Timeout: \hyperlink{protocolthe-p}{the} previous querier has expired. I will become \hyperlink{protocolthe-p}{the} querier. \hypertarget{classMld6igmpVif_ac35691219f7b52ebe7e248fca14de301}{
\index{Mld6igmpVif@{Mld6igmpVif}!primary\_\-addr@{primary\_\-addr}}
\index{primary\_\-addr@{primary\_\-addr}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{primary\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IPvX}\& Mld6igmpVif::primary\_\-addr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_ac35691219f7b52ebe7e248fca14de301}


Get my primary address on this interface. 

\begin{DoxyReturn}{Returns}
my primary address on this interface. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_ac35691219f7b52ebe7e248fca14de301}{
\index{Mld6igmpVif@{Mld6igmpVif}!primary\_\-addr@{primary\_\-addr}}
\index{primary\_\-addr@{primary\_\-addr}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{primary\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IPvX}\& Mld6igmpVif::primary\_\-addr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_ac35691219f7b52ebe7e248fca14de301}


Get my primary address on this interface. 

\begin{DoxyReturn}{Returns}
my primary address on this interface. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_afbaa5715a77670434deff068d0c6ef6e}{
\index{Mld6igmpVif@{Mld6igmpVif}!proto\_\-is\_\-ssm@{proto\_\-is\_\-ssm}}
\index{proto\_\-is\_\-ssm@{proto\_\-is\_\-ssm}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{proto\_\-is\_\-ssm}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::proto\_\-is\_\-ssm (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_afbaa5715a77670434deff068d0c6ef6e}


Test if \hyperlink{protocolthe-p}{the} protocol is Source-\/Specific Multicast (e.g., IGMPv3 or MLDv2). 

\hyperlink{classMld6igmpVif_afbaa5715a77670434deff068d0c6ef6e}{Mld6igmpVif::proto\_\-is\_\-ssm}: @:

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} protocol is Source-\/Specific Multicast (e.g., IGMPv3 or MLDv2).
\end{DoxyReturn}
Test if \hyperlink{protocolthe-p}{the} interface is running a source-\/specific multicast capable protocol version (e.g. IGMPv3 or MLDv2).

Return value:  if \hyperlink{protocolthe-p}{the} protocol version is source-\/specific multicast capable, otherwise .se \hypertarget{classMld6igmpVif_afbaa5715a77670434deff068d0c6ef6e}{
\index{Mld6igmpVif@{Mld6igmpVif}!proto\_\-is\_\-ssm@{proto\_\-is\_\-ssm}}
\index{proto\_\-is\_\-ssm@{proto\_\-is\_\-ssm}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{proto\_\-is\_\-ssm}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpVif::proto\_\-is\_\-ssm (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpVif_afbaa5715a77670434deff068d0c6ef6e}


Test if \hyperlink{protocolthe-p}{the} protocol is Source-\/Specific Multicast (e.g., IGMPv3 or MLDv2). 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} protocol is Source-\/Specific Multicast (e.g., IGMPv3 or MLDv2). 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a52bc25bb79ff45cc3ffc63e3521f9c21}{
\index{Mld6igmpVif@{Mld6igmpVif}!proto\_\-message\_\-type2ascii@{proto\_\-message\_\-type2ascii}}
\index{proto\_\-message\_\-type2ascii@{proto\_\-message\_\-type2ascii}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{proto\_\-message\_\-type2ascii}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ Mld6igmpVif::proto\_\-message\_\-type2ascii (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{message\_\-type}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a52bc25bb79ff45cc3ffc63e3521f9c21}


Return \hyperlink{protocolthe-p}{the} ASCII text description of \hyperlink{protocolthe-p}{the} protocol message. 


\begin{DoxyParams}{Parameters}
{\em message\_\-type} & \hyperlink{protocolthe-p}{the} protocol message type. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} ASCII text descrpition of \hyperlink{protocolthe-p}{the} protocol message. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_ab6dea136bfaaffd15751d97137b33a2a}{
\index{Mld6igmpVif@{Mld6igmpVif}!proto\_\-message\_\-type2ascii@{proto\_\-message\_\-type2ascii}}
\index{proto\_\-message\_\-type2ascii@{proto\_\-message\_\-type2ascii}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{proto\_\-message\_\-type2ascii}]{\setlength{\rightskip}{0pt plus 5cm}const char $\ast$ Mld6igmpVif::proto\_\-message\_\-type2ascii (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{message\_\-type}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_ab6dea136bfaaffd15751d97137b33a2a}


Return \hyperlink{protocolthe-p}{the} ASCII text description of \hyperlink{protocolthe-p}{the} protocol message. 


\begin{DoxyParams}{Parameters}
{\em message\_\-type} & \hyperlink{protocolthe-p}{the} protocol message type. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} ASCII text descrpition of \hyperlink{protocolthe-p}{the} protocol message. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a6e944cce24ed2685f8255b75ee62a51c}{
\index{Mld6igmpVif@{Mld6igmpVif}!querier\_\-addr@{querier\_\-addr}}
\index{querier\_\-addr@{querier\_\-addr}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{querier\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IPvX}\& Mld6igmpVif::querier\_\-addr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a6e944cce24ed2685f8255b75ee62a51c}


Get \hyperlink{protocolthe-p}{the} MLD/IGMP querier address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} MLD/IGMP querier address. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a6e944cce24ed2685f8255b75ee62a51c}{
\index{Mld6igmpVif@{Mld6igmpVif}!querier\_\-addr@{querier\_\-addr}}
\index{querier\_\-addr@{querier\_\-addr}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{querier\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IPvX}\& Mld6igmpVif::querier\_\-addr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a6e944cce24ed2685f8255b75ee62a51c}


Get \hyperlink{protocolthe-p}{the} MLD/IGMP querier address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} MLD/IGMP querier address. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a82655a8c4adb9d769bfca6440d0d3a29}{
\index{Mld6igmpVif@{Mld6igmpVif}!query\_\-last\_\-member\_\-interval@{query\_\-last\_\-member\_\-interval}}
\index{query\_\-last\_\-member\_\-interval@{query\_\-last\_\-member\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{query\_\-last\_\-member\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<${\bf TimeVal}$>$\& Mld6igmpVif::query\_\-last\_\-member\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a82655a8c4adb9d769bfca6440d0d3a29}


Optain a reference to \hyperlink{protocolthe-p}{the} Last Member Query Interval. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Last Member Query Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a82655a8c4adb9d769bfca6440d0d3a29}{
\index{Mld6igmpVif@{Mld6igmpVif}!query\_\-last\_\-member\_\-interval@{query\_\-last\_\-member\_\-interval}}
\index{query\_\-last\_\-member\_\-interval@{query\_\-last\_\-member\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{query\_\-last\_\-member\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<${\bf TimeVal}$>$\& Mld6igmpVif::query\_\-last\_\-member\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a82655a8c4adb9d769bfca6440d0d3a29}


Optain a reference to \hyperlink{protocolthe-p}{the} Last Member Query Interval. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Last Member Query Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a9d4f8668510d325c8ebae59a78f2e517}{
\index{Mld6igmpVif@{Mld6igmpVif}!query\_\-response\_\-interval@{query\_\-response\_\-interval}}
\index{query\_\-response\_\-interval@{query\_\-response\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{query\_\-response\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<${\bf TimeVal}$>$\& Mld6igmpVif::query\_\-response\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a9d4f8668510d325c8ebae59a78f2e517}


Optain a reference to \hyperlink{protocolthe-p}{the} Query Response Interval. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Query Response Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a9d4f8668510d325c8ebae59a78f2e517}{
\index{Mld6igmpVif@{Mld6igmpVif}!query\_\-response\_\-interval@{query\_\-response\_\-interval}}
\index{query\_\-response\_\-interval@{query\_\-response\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{query\_\-response\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}{\bf ConfigParam}$<${\bf TimeVal}$>$\& Mld6igmpVif::query\_\-response\_\-interval (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_a9d4f8668510d325c8ebae59a78f2e517}


Optain a reference to \hyperlink{protocolthe-p}{the} Query Response Interval. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} Query Response Interval. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a9e0ec86e1fda12c2736d3381871c9ed3}{
\index{Mld6igmpVif@{Mld6igmpVif}!query\_\-timer\_\-timeout@{query\_\-timer\_\-timeout}}
\index{query\_\-timer\_\-timeout@{query\_\-timer\_\-timeout}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{query\_\-timer\_\-timeout}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::query\_\-timer\_\-timeout (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a9e0ec86e1fda12c2736d3381871c9ed3}


\hyperlink{classMld6igmpVif_a9e0ec86e1fda12c2736d3381871c9ed3}{Mld6igmpVif::query\_\-timer\_\-timeout}: 

Timeout: time to send a membership query. \hypertarget{classMld6igmpVif_a5b5dfb457e80b6b73f00462eee41dedb}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-effective\_\-query\_\-interval@{set\_\-effective\_\-query\_\-interval}}
\index{set\_\-effective\_\-query\_\-interval@{set\_\-effective\_\-query\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-effective\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-effective\_\-query\_\-interval (
\begin{DoxyParamCaption}
\item[{const {\bf TimeVal} \&}]{v}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a5b5dfb457e80b6b73f00462eee41dedb}


Set \hyperlink{protocolthe-p}{the} effective Query Interval. 

Note that this value may be modified by reconfiguring \hyperlink{protocolthe-p}{the} router, or by \hyperlink{protocolthe-p}{the} Query message from \hyperlink{protocolthe-p}{the} current Querier.


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} effective Query Interval. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_a5b5dfb457e80b6b73f00462eee41dedb}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-effective\_\-query\_\-interval@{set\_\-effective\_\-query\_\-interval}}
\index{set\_\-effective\_\-query\_\-interval@{set\_\-effective\_\-query\_\-interval}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-effective\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-effective\_\-query\_\-interval (
\begin{DoxyParamCaption}
\item[{const {\bf TimeVal} \&}]{v}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a5b5dfb457e80b6b73f00462eee41dedb}


Set \hyperlink{protocolthe-p}{the} effective Query Interval. 

Note that this value may be modified by reconfiguring \hyperlink{protocolthe-p}{the} router, or by \hyperlink{protocolthe-p}{the} Query message from \hyperlink{protocolthe-p}{the} current Querier.


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} effective Query Interval. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_a11426b957ae64d2008ff3ccaabcc7926}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-effective\_\-robustness\_\-variable@{set\_\-effective\_\-robustness\_\-variable}}
\index{set\_\-effective\_\-robustness\_\-variable@{set\_\-effective\_\-robustness\_\-variable}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-effective\_\-robustness\_\-variable}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-effective\_\-robustness\_\-variable (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{v}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a11426b957ae64d2008ff3ccaabcc7926}


Set \hyperlink{protocolthe-p}{the} effective Robustness Variable. 

Note that this value may be modified by reconfiguring \hyperlink{protocolthe-p}{the} router, or by \hyperlink{protocolthe-p}{the} Query messages from \hyperlink{protocolthe-p}{the} current Querier.


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} effective Robustness Variable. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_a11426b957ae64d2008ff3ccaabcc7926}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-effective\_\-robustness\_\-variable@{set\_\-effective\_\-robustness\_\-variable}}
\index{set\_\-effective\_\-robustness\_\-variable@{set\_\-effective\_\-robustness\_\-variable}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-effective\_\-robustness\_\-variable}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-effective\_\-robustness\_\-variable (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{v}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a11426b957ae64d2008ff3ccaabcc7926}


Set \hyperlink{protocolthe-p}{the} effective Robustness Variable. 

Note that this value may be modified by reconfiguring \hyperlink{protocolthe-p}{the} router, or by \hyperlink{protocolthe-p}{the} Query messages from \hyperlink{protocolthe-p}{the} current Querier.


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} effective Robustness Variable. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_a1a6f97936eca427542f374907a2c65de}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-i\_\-am\_\-querier@{set\_\-i\_\-am\_\-querier}}
\index{set\_\-i\_\-am\_\-querier@{set\_\-i\_\-am\_\-querier}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-i\_\-am\_\-querier}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-i\_\-am\_\-querier (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a1a6f97936eca427542f374907a2c65de}


Set \hyperlink{protocolthe-p}{the} state whether I am \hyperlink{protocolthe-p}{the} querier for this vif. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then I am \hyperlink{protocolthe-p}{the} querier for this vif. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_a1a6f97936eca427542f374907a2c65de}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-i\_\-am\_\-querier@{set\_\-i\_\-am\_\-querier}}
\index{set\_\-i\_\-am\_\-querier@{set\_\-i\_\-am\_\-querier}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-i\_\-am\_\-querier}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-i\_\-am\_\-querier (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classMld6igmpVif_a1a6f97936eca427542f374907a2c65de}


Set \hyperlink{protocolthe-p}{the} state whether I am \hyperlink{protocolthe-p}{the} querier for this vif. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then I am \hyperlink{protocolthe-p}{the} querier for this vif. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_afae8559624ab9fc67791b081626316f4}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-primary\_\-addr@{set\_\-primary\_\-addr}}
\index{set\_\-primary\_\-addr@{set\_\-primary\_\-addr}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-primary\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-primary\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_afae8559624ab9fc67791b081626316f4}


Set my primary address on this interface. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} primary address. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_afae8559624ab9fc67791b081626316f4}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-primary\_\-addr@{set\_\-primary\_\-addr}}
\index{set\_\-primary\_\-addr@{set\_\-primary\_\-addr}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-primary\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-primary\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_afae8559624ab9fc67791b081626316f4}


Set my primary address on this interface. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} primary address. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_a59529e8b1c47a60993167a6d6f718c96}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-proto\_\-version@{set\_\-proto\_\-version}}
\index{set\_\-proto\_\-version@{set\_\-proto\_\-version}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-proto\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::set\_\-proto\_\-version (
\begin{DoxyParamCaption}
\item[{int}]{proto\_\-version}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a59529e8b1c47a60993167a6d6f718c96}


Set \hyperlink{protocolthe-p}{the} current protocol version. 

\hyperlink{classMld6igmpVif_a59529e8b1c47a60993167a6d6f718c96}{Mld6igmpVif::set\_\-proto\_\-version}: : The protocol version to set.

The protocol version must be in \hyperlink{protocolthe-p}{the} interval \mbox{[}IGMP\_\-VERSION\_\-MIN, IGMP\_\-VERSION\_\-MAX\mbox{]} or \mbox{[}MLD\_\-VERSION\_\-MIN, MLD\_\-VERSION\_\-MAX\mbox{]}


\begin{DoxyParams}{Parameters}
{\em proto\_\-version} & \hyperlink{protocolthe-p}{the} protocol version to set. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Set protocol version.

Return value: XORP\_\-OK is  is valid, otherwise XORP\_\-ERROR. 

Reimplemented from \hyperlink{classProtoUnit_a166291900c1e79e8af1121a178082693}{ProtoUnit}.

\hypertarget{classMld6igmpVif_a59529e8b1c47a60993167a6d6f718c96}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-proto\_\-version@{set\_\-proto\_\-version}}
\index{set\_\-proto\_\-version@{set\_\-proto\_\-version}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-proto\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::set\_\-proto\_\-version (
\begin{DoxyParamCaption}
\item[{int}]{proto\_\-version}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a59529e8b1c47a60993167a6d6f718c96}


Set \hyperlink{protocolthe-p}{the} current protocol version. 

The protocol version must be in \hyperlink{protocolthe-p}{the} interval \mbox{[}IGMP\_\-VERSION\_\-MIN, IGMP\_\-VERSION\_\-MAX\mbox{]} or \mbox{[}MLD\_\-VERSION\_\-MIN, MLD\_\-VERSION\_\-MAX\mbox{]}


\begin{DoxyParams}{Parameters}
{\em proto\_\-version} & \hyperlink{protocolthe-p}{the} protocol version to set. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classProtoUnit_a166291900c1e79e8af1121a178082693}{ProtoUnit}.

\hypertarget{classMld6igmpVif_adac59ffa2767c23c32423736a5bbafa8}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-querier\_\-addr@{set\_\-querier\_\-addr}}
\index{set\_\-querier\_\-addr@{set\_\-querier\_\-addr}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-querier\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-querier\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_adac59ffa2767c23c32423736a5bbafa8}


Set \hyperlink{protocolthe-p}{the} MLD6/IGMP querier address. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} MLD/IGMP querier address. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_adac59ffa2767c23c32423736a5bbafa8}{
\index{Mld6igmpVif@{Mld6igmpVif}!set\_\-querier\_\-addr@{set\_\-querier\_\-addr}}
\index{set\_\-querier\_\-addr@{set\_\-querier\_\-addr}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{set\_\-querier\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpVif::set\_\-querier\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpVif_adac59ffa2767c23c32423736a5bbafa8}


Set \hyperlink{protocolthe-p}{the} MLD6/IGMP querier address. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} MLD/IGMP querier address. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpVif_a6c6bd907d2150f928ac4a22b08cbcadf}{
\index{Mld6igmpVif@{Mld6igmpVif}!start@{start}}
\index{start@{start}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{start}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::start (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a6c6bd907d2150f928ac4a22b08cbcadf}


Start MLD/IGMP on a single virtual interface. 


\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a6c6bd907d2150f928ac4a22b08cbcadf}{
\index{Mld6igmpVif@{Mld6igmpVif}!start@{start}}
\index{start@{start}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{start}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::start (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a6c6bd907d2150f928ac4a22b08cbcadf}


Start MLD/IGMP on a single virtual interface. 

\hyperlink{classMld6igmpVif_a6c6bd907d2150f928ac4a22b08cbcadf}{Mld6igmpVif::start}: : The error message (if error).


\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Start MLD or IGMP on a single virtual interface.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_a581909ec2885a50b0e4882982a49dce6}{
\index{Mld6igmpVif@{Mld6igmpVif}!stop@{stop}}
\index{stop@{stop}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{stop}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::stop (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a581909ec2885a50b0e4882982a49dce6}


Stop MLD/IGMP on a single virtual interface. 

\hyperlink{classMld6igmpVif_a581909ec2885a50b0e4882982a49dce6}{Mld6igmpVif::stop}: : The error message (if error).


\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Stop MLD or IGMP on a single virtual interface.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpVif_a581909ec2885a50b0e4882982a49dce6}{
\index{Mld6igmpVif@{Mld6igmpVif}!stop@{stop}}
\index{stop@{stop}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{stop}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::stop (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a581909ec2885a50b0e4882982a49dce6}


Stop MLD/IGMP on a single virtual interface. 


\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a50e7d630ee92b3f031b5bab03f11e643}{
\index{Mld6igmpVif@{Mld6igmpVif}!update\_\-primary\_\-address@{update\_\-primary\_\-address}}
\index{update\_\-primary\_\-address@{update\_\-primary\_\-address}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{update\_\-primary\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::update\_\-primary\_\-address (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a50e7d630ee92b3f031b5bab03f11e643}


Update \hyperlink{protocolthe-p}{the} primary address. 

The primary address should be a link-\/local unicast address, and is used for transmitting \hyperlink{protocolthe-p}{the} multicast control packets on \hyperlink{protocolthe-p}{the} LAN.


\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpVif_a50e7d630ee92b3f031b5bab03f11e643}{
\index{Mld6igmpVif@{Mld6igmpVif}!update\_\-primary\_\-address@{update\_\-primary\_\-address}}
\index{update\_\-primary\_\-address@{update\_\-primary\_\-address}!Mld6igmpVif@{Mld6igmpVif}}
\subsubsection[{update\_\-primary\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpVif::update\_\-primary\_\-address (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpVif_a50e7d630ee92b3f031b5bab03f11e643}


Update \hyperlink{protocolthe-p}{the} primary address. 

\hyperlink{classMld6igmpVif_a50e7d630ee92b3f031b5bab03f11e643}{Mld6igmpVif::update\_\-primary\_\-address}: : The error message (if error).

The primary address should be a link-\/local unicast address, and is used for transmitting \hyperlink{protocolthe-p}{the} multicast control packets on \hyperlink{protocolthe-p}{the} LAN.


\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Update \hyperlink{protocolthe-p}{the} primary address.

The primary address should be a link-\/local unicast address, and is used for transmitting \hyperlink{protocolthe-p}{the} multicast control packets on \hyperlink{protocolthe-p}{the} LAN.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. 

The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/mld6igmp\_\-lite/mld6igmp\_\-vif.hh\item 
/home/greearb/git/xorp.ct.github/xorp/mld6igmp/mld6igmp\_\-vif.hh\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/mld6igmp\_\-lite/mld6igmp\_\-proto.cc\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/mld6igmp\_\-lite/mld6igmp\_\-vif.cc\item 
/home/greearb/git/xorp.ct.github/xorp/mld6igmp/mld6igmp\_\-proto.cc\item 
/home/greearb/git/xorp.ct.github/xorp/mld6igmp/mld6igmp\_\-vif.cc\end{DoxyCompactItemize}
