\hypertarget{classMld6igmpNode}{
\section{Mld6igmpNode Class Reference}
\label{classMld6igmpNode}\index{Mld6igmpNode@{Mld6igmpNode}}
}


The MLD/IGMP node class.  




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

Inheritance diagram for Mld6igmpNode:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.438596cm]{classMld6igmpNode}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classMld6igmpNode_a4524a9a177b5a50d6aee891a10401e76}{Mld6igmpNode} (int family, xorp\_\-module\_\-id module\_\-id, \hyperlink{classEventLoop}{EventLoop} \&eventloop)
\begin{DoxyCompactList}\small\item\em Constructor for a given address family, module ID, and event loop. \item\end{DoxyCompactList}\item 
virtual \hyperlink{classMld6igmpNode_a874d9d2dc84ed95909c53443d52594b3}{$\sim$Mld6igmpNode} ()
\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}{start} ()
\begin{DoxyCompactList}\small\item\em Start \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}{stop} ()
\begin{DoxyCompactList}\small\item\em Stop \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}{final\_\-start} ()
\begin{DoxyCompactList}\small\item\em Completely start \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a713a5a0c3c56b2be29f48ad7a46a0775}{final\_\-stop} ()
\begin{DoxyCompactList}\small\item\em Completely stop \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_a68eb8cd0dcb2646133b65bf427a7c1b7}{enable} ()
\begin{DoxyCompactList}\small\item\em Enable node operation. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_a6ab47ca767c36f0c3bd08fab00936b9d}{disable} ()
\begin{DoxyCompactList}\small\item\em Disable node operation. \item\end{DoxyCompactList}\item 
uint8\_\-t \hyperlink{classMld6igmpNode_a9425da4b81cf8ecb5fbe1c421c404f46}{ip\_\-protocol\_\-number} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} IP protocol number. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a6ddfc7e46db03cbc35859008d2053f77}{add\_\-vif} (const \hyperlink{classVif}{Vif} \&vif, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Install a new MLD/IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_ac3cc4fee8dc265fe4caa8ae34472f381}{add\_\-vif} (const string \&vif\_\-name, uint32\_\-t vif\_\-index, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Install a new MLD/IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a14a68fa7d932d5dfc992740c10d23d4a}{delete\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete an existing MLD/IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_ac5f2b7f6d8af9ab7dd6e19b8f78a04d3}{set\_\-vif\_\-flags} (const string \&vif\_\-name, bool is\_\-pim\_\-register, bool is\_\-p2p, bool is\_\-loopback, bool is\_\-multicast, bool is\_\-broadcast, bool is\_\-up, uint32\_\-t mtu, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set flags to a vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_af4ec41f5e78ce2e9ce76df4342db8863}{add\_\-vif\_\-addr} (const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&addr, const \hyperlink{classIPvXNet}{IPvXNet} \&subnet\_\-addr, const \hyperlink{classIPvX}{IPvX} \&broadcast\_\-addr, const \hyperlink{classIPvX}{IPvX} \&peer\_\-addr, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add an address to a vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a31ff5735adeb28807030ef44c2003807}{delete\_\-vif\_\-addr} (const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&addr, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete an address from a vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a7f56637fb10cb079b04a553e57f9b925}{enable\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Enable an existing MLD6IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a77a4b495abd684269d6b78c672dc7d84}{disable\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Disable an existing MLD6IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a41eb52752edc0d3bcb05d61324581f8c}{start\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Start an existing MLD6IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a8e176209bfd042c2d80a8b5c7b797cff}{stop\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Stop an existing MLD6IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a516126e0443940da10f7bc989b9dc756}{start\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Start MLD/IGMP on all enabled interfaces. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a185e55f4e3039bde6c456f85a81d2d8b}{stop\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Stop MLD/IGMP on all interfaces it was running on. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a3a0c4c8d6c4fadde1388ac80c7ff2e46}{enable\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Enable MLD/IGMP on all interfaces. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a74ad40923ab35bd173485b974a4c6042}{disable\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Disable MLD/IGMP on all interfaces. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_a6584be60319fbf553da9e8fe750fbc44}{delete\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Delete all MLD/IGMP vifs. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_ae76536b71b3e58adf78f075ceabc932b}{vif\_\-shutdown\_\-completed} (const string \&vif\_\-name)
\begin{DoxyCompactList}\small\item\em A method called when a vif has completed its shutdown. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a5b4ba19dd9a50972c36bb8d02e4db1c8}{proto\_\-recv} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&src\_\-address, const \hyperlink{classIPvX}{IPvX} \&dst\_\-address, uint8\_\-t ip\_\-protocol, int32\_\-t ip\_\-ttl, int32\_\-t ip\_\-tos, bool ip\_\-router\_\-alert, bool ip\_\-internet\_\-control, const vector$<$ uint8\_\-t $>$ \&payload, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Receive a protocol packet. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a08f66b56bba1fda58b24055c0c1cc64f}{mld6igmp\_\-send} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&src\_\-address, const \hyperlink{classIPvX}{IPvX} \&dst\_\-address, uint8\_\-t ip\_\-protocol, int32\_\-t ip\_\-ttl, int32\_\-t 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{structSend}{Send} a protocol packet. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpNode_a861331b820df301bb45b13edf9f7c297}{
int \hyperlink{classMld6igmpNode_a861331b820df301bb45b13edf9f7c297}{signal\_\-message\_\-recv} (const string \&, int, uint32\_\-t, const \hyperlink{classIPvX}{IPvX} \&, const \hyperlink{classIPvX}{IPvX} \&, const uint8\_\-t $\ast$, size\_\-t)}
\label{classMld6igmpNode_a861331b820df301bb45b13edf9f7c297}

\begin{DoxyCompactList}\small\item\em Receive signal message: not used by MLD/IGMP. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpNode_a23a5b96b68ccf5edf75b8f75b1d2d8c4}{
int \hyperlink{classMld6igmpNode_a23a5b96b68ccf5edf75b8f75b1d2d8c4}{signal\_\-message\_\-send} (const string \&, int, uint32\_\-t, const \hyperlink{classIPvX}{IPvX} \&, const \hyperlink{classIPvX}{IPvX} \&, const uint8\_\-t $\ast$, size\_\-t)}
\label{classMld6igmpNode_a23a5b96b68ccf5edf75b8f75b1d2d8c4}

\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} signal message: not used by MLD/IGMP. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_ae59563e6318c2aa22c30c69d43f60880}{register\_\-receiver} (const string \&if\_\-name, const string \&vif\_\-name, uint8\_\-t ip\_\-protocol, bool enable\_\-multicast\_\-loopback)=0
\begin{DoxyCompactList}\small\item\em Register as a receiver to receive packets. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_a64e5e41ce8e5bb9e1180311b37dca439}{unregister\_\-receiver} (const string \&if\_\-name, const string \&vif\_\-name, uint8\_\-t ip\_\-protocol)=0
\begin{DoxyCompactList}\small\item\em Unregister as a receiver to receive packets. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_ac24bda860d4c55fb11003f9271c818db}{join\_\-multicast\_\-group} (const string \&if\_\-name, const string \&vif\_\-name, uint8\_\-t ip\_\-protocol, const \hyperlink{classIPvX}{IPvX} \&group\_\-address)=0
\begin{DoxyCompactList}\small\item\em Join a multicast group on an interface. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_abb3999ae152751bbde579755339fae0c}{leave\_\-multicast\_\-group} (const string \&if\_\-name, const string \&vif\_\-name, uint8\_\-t ip\_\-protocol, const \hyperlink{classIPvX}{IPvX} \&group\_\-address)=0
\begin{DoxyCompactList}\small\item\em Leave a multicast group on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aad265a943e211ee1845111ee5a96bdbb}{add\_\-protocol} (const string \&module\_\-instance\_\-name, xorp\_\-module\_\-id module\_\-id, uint32\_\-t vif\_\-index)
\begin{DoxyCompactList}\small\item\em Add a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a45a73bb6c185b161e719c669e7c8df33}{delete\_\-protocol} (const string \&module\_\-instance\_\-name, xorp\_\-module\_\-id module\_\-id, uint32\_\-t vif\_\-index)
\begin{DoxyCompactList}\small\item\em Delete a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_a7b72582d29a6e21f3c5eee15d99f454c}{send\_\-add\_\-membership} (const string \&dst\_\-module\_\-instance\_\-name, xorp\_\-module\_\-id dst\_\-module\_\-id, uint32\_\-t vif\_\-index, const \hyperlink{classIPvX}{IPvX} \&source, const \hyperlink{classIPvX}{IPvX} \&group)=0
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} \char`\"{}add membership\char`\"{} to a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_a5a783a551dedf17013c4808ae8906573}{send\_\-delete\_\-membership} (const string \&dst\_\-module\_\-instance\_\-name, xorp\_\-module\_\-id dst\_\-module\_\-id, uint32\_\-t vif\_\-index, const \hyperlink{classIPvX}{IPvX} \&source, const \hyperlink{classIPvX}{IPvX} \&group)=0
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} \char`\"{}delete membership\char`\"{} to a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a0916993885841dad3b9652c86a3ff08a}{join\_\-prune\_\-notify\_\-routing} (const string \&module\_\-instance\_\-name, xorp\_\-module\_\-id module\_\-id, uint32\_\-t vif\_\-index, const \hyperlink{classIPvX}{IPvX} \&source, const \hyperlink{classIPvX}{IPvX} \&group, action\_\-jp\_\-t action\_\-jp)
\begin{DoxyCompactList}\small\item\em Notify a protocol about multicast membership change. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpNode_ab1318d18688f07b5a0c021daadc581f0}{is\_\-directly\_\-connected} (const \hyperlink{classMld6igmpVif}{Mld6igmpVif} \&mld6igmp\_\-vif, const \hyperlink{classIPvX}{IPvX} \&ipaddr\_\-test) const 
\begin{DoxyCompactList}\small\item\em Test if an address is directly connected to a specified virtual interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_af9df5c80150e4733b6041d6556f842fc}{set\_\-config\_\-all\_\-vifs\_\-done} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Complete \hyperlink{protocolthe-p}{the} set of vif configuration changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a8699da3a6473f6645a03c61e9c503f97}{get\_\-vif\_\-proto\_\-version} (const string \&vif\_\-name, int \&proto\_\-version, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} protocol version on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a6c641b39deb3e675953159a4e528d15f}{set\_\-vif\_\-proto\_\-version} (const string \&vif\_\-name, int proto\_\-version, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} protocol version on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_acfd0c9ea985c197c46119f62f7e85fb3}{reset\_\-vif\_\-proto\_\-version} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} protocol version on an interface to its default value. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a2769b8a59bee9de492380c91b3b20c66}{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check} (const string \&vif\_\-name, bool \&enabled, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} flag that enables/disables \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a30a29903d4ab56d7b8b05da3569b012d}{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check} (const string \&vif\_\-name, bool enable, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Enable/disable \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a649bd34432928bdc6a3b3991512ac196}{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} flag that enables/disables \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets to its default value. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aa79913f3b8cbfb02cf07166310913efb}{get\_\-vif\_\-query\_\-interval} (const string \&vif\_\-name, \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_ae6cd278664a5b924631d4a12d0b4811e}{set\_\-vif\_\-query\_\-interval} (const string \&vif\_\-name, const \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aff72b7be19ed2f623cf0ae677a7afa21}{reset\_\-vif\_\-query\_\-interval} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_af873ae5872fda80799784099ea87d0a5}{get\_\-vif\_\-query\_\-last\_\-member\_\-interval} (const string \&vif\_\-name, \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a6885985b91c9a207b91d5e16df4bafb8}{set\_\-vif\_\-query\_\-last\_\-member\_\-interval} (const string \&vif\_\-name, const \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a87d9a8541be7a1de0148811dbe18e974}{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a818cc293999e5ecb0e3f781088ffedcb}{get\_\-vif\_\-query\_\-response\_\-interval} (const string \&vif\_\-name, \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Query Response Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a2bc62a6636f1767c11317587fb107311}{set\_\-vif\_\-query\_\-response\_\-interval} (const string \&vif\_\-name, const \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} Query Response Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a9ef40a60e302bc510b90928f0cabda0b}{reset\_\-vif\_\-query\_\-response\_\-interval} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} Query Response Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aa818ae185f7246533a6424083cc3319a}{get\_\-vif\_\-robust\_\-count} (const string \&vif\_\-name, uint32\_\-t \&robust\_\-count, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a85d75ac67665a9bfbb942d89d0f61756}{set\_\-vif\_\-robust\_\-count} (const string \&vif\_\-name, uint32\_\-t robust\_\-count, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_ab675c7266cb17808f410480b55d21431}{reset\_\-vif\_\-robust\_\-count} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpNode_abb1fdbab14af986b9bbca55e6c4194fe}{is\_\-log\_\-trace} () const 
\begin{DoxyCompactList}\small\item\em Test if trace log is enabled. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_aa761a867183ce3da2a1fb4394b346158}{set\_\-log\_\-trace} (bool is\_\-enabled)
\begin{DoxyCompactList}\small\item\em Enable/disable trace log. \item\end{DoxyCompactList}\item 
\hyperlink{classMld6igmpNode_a4524a9a177b5a50d6aee891a10401e76}{Mld6igmpNode} (int family, xorp\_\-module\_\-id module\_\-id, \hyperlink{classEventLoop}{EventLoop} \&eventloop)
\begin{DoxyCompactList}\small\item\em Constructor for a given address family, module ID, and event loop. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpNode_aec8dbc1211461f329a9f092a87f92707}{
virtual \hyperlink{classMld6igmpNode_aec8dbc1211461f329a9f092a87f92707}{$\sim$Mld6igmpNode} ()}
\label{classMld6igmpNode_aec8dbc1211461f329a9f092a87f92707}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}{start} ()
\begin{DoxyCompactList}\small\item\em Start \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}{stop} ()
\begin{DoxyCompactList}\small\item\em Stop \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}{final\_\-start} ()
\begin{DoxyCompactList}\small\item\em Completely start \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a713a5a0c3c56b2be29f48ad7a46a0775}{final\_\-stop} ()
\begin{DoxyCompactList}\small\item\em Completely stop \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_a68eb8cd0dcb2646133b65bf427a7c1b7}{enable} ()
\begin{DoxyCompactList}\small\item\em Enable node operation. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_a6ab47ca767c36f0c3bd08fab00936b9d}{disable} ()
\begin{DoxyCompactList}\small\item\em Disable node operation. \item\end{DoxyCompactList}\item 
uint8\_\-t \hyperlink{classMld6igmpNode_a9425da4b81cf8ecb5fbe1c421c404f46}{ip\_\-protocol\_\-number} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} IP protocol number. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a6ddfc7e46db03cbc35859008d2053f77}{add\_\-vif} (const \hyperlink{classVif}{Vif} \&vif, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Install a new MLD/IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_ac3cc4fee8dc265fe4caa8ae34472f381}{add\_\-vif} (const string \&vif\_\-name, uint32\_\-t vif\_\-index, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Install a new MLD/IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a14a68fa7d932d5dfc992740c10d23d4a}{delete\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete an existing MLD/IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_ac5f2b7f6d8af9ab7dd6e19b8f78a04d3}{set\_\-vif\_\-flags} (const string \&vif\_\-name, bool is\_\-pim\_\-register, bool is\_\-p2p, bool is\_\-loopback, bool is\_\-multicast, bool is\_\-broadcast, bool is\_\-up, uint32\_\-t mtu, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set flags to a vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_af4ec41f5e78ce2e9ce76df4342db8863}{add\_\-vif\_\-addr} (const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&addr, const \hyperlink{classIPvXNet}{IPvXNet} \&subnet\_\-addr, const \hyperlink{classIPvX}{IPvX} \&broadcast\_\-addr, const \hyperlink{classIPvX}{IPvX} \&peer\_\-addr, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add an address to a vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a31ff5735adeb28807030ef44c2003807}{delete\_\-vif\_\-addr} (const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&addr, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete an address from a vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a7f56637fb10cb079b04a553e57f9b925}{enable\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Enable an existing MLD6IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a77a4b495abd684269d6b78c672dc7d84}{disable\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Disable an existing MLD6IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a41eb52752edc0d3bcb05d61324581f8c}{start\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Start an existing MLD6IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a8e176209bfd042c2d80a8b5c7b797cff}{stop\_\-vif} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Stop an existing MLD6IGMP vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a516126e0443940da10f7bc989b9dc756}{start\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Start MLD/IGMP on all enabled interfaces. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a185e55f4e3039bde6c456f85a81d2d8b}{stop\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Stop MLD/IGMP on all interfaces it was running on. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a3a0c4c8d6c4fadde1388ac80c7ff2e46}{enable\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Enable MLD/IGMP on all interfaces. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a74ad40923ab35bd173485b974a4c6042}{disable\_\-all\_\-vifs} ()
\begin{DoxyCompactList}\small\item\em Disable MLD/IGMP on all interfaces. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpNode_a6584be60319fbf553da9e8fe750fbc44}{
void \hyperlink{classMld6igmpNode_a6584be60319fbf553da9e8fe750fbc44}{delete\_\-all\_\-vifs} ()}
\label{classMld6igmpNode_a6584be60319fbf553da9e8fe750fbc44}

\begin{DoxyCompactList}\small\item\em Delete all MLD/IGMP vifs. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_ae76536b71b3e58adf78f075ceabc932b}{vif\_\-shutdown\_\-completed} (const string \&vif\_\-name)
\begin{DoxyCompactList}\small\item\em A method called when a vif has completed its shutdown. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a5b4ba19dd9a50972c36bb8d02e4db1c8}{proto\_\-recv} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&src\_\-address, const \hyperlink{classIPvX}{IPvX} \&dst\_\-address, uint8\_\-t ip\_\-protocol, int32\_\-t ip\_\-ttl, int32\_\-t ip\_\-tos, bool ip\_\-router\_\-alert, bool ip\_\-internet\_\-control, const vector$<$ uint8\_\-t $>$ \&payload, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Receive a protocol packet. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a08f66b56bba1fda58b24055c0c1cc64f}{mld6igmp\_\-send} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&src\_\-address, const \hyperlink{classIPvX}{IPvX} \&dst\_\-address, uint8\_\-t ip\_\-protocol, int32\_\-t ip\_\-ttl, int32\_\-t 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{structSend}{Send} a protocol packet. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpNode_a861331b820df301bb45b13edf9f7c297}{
int \hyperlink{classMld6igmpNode_a861331b820df301bb45b13edf9f7c297}{signal\_\-message\_\-recv} (const string \&, int, uint32\_\-t, const \hyperlink{classIPvX}{IPvX} \&, const \hyperlink{classIPvX}{IPvX} \&, const uint8\_\-t $\ast$, size\_\-t)}
\label{classMld6igmpNode_a861331b820df301bb45b13edf9f7c297}

\begin{DoxyCompactList}\small\item\em Receive signal message: not used by MLD/IGMP. \item\end{DoxyCompactList}\item 
\hypertarget{classMld6igmpNode_a23a5b96b68ccf5edf75b8f75b1d2d8c4}{
int \hyperlink{classMld6igmpNode_a23a5b96b68ccf5edf75b8f75b1d2d8c4}{signal\_\-message\_\-send} (const string \&, int, uint32\_\-t, const \hyperlink{classIPvX}{IPvX} \&, const \hyperlink{classIPvX}{IPvX} \&, const uint8\_\-t $\ast$, size\_\-t)}
\label{classMld6igmpNode_a23a5b96b68ccf5edf75b8f75b1d2d8c4}

\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} signal message: not used by MLD/IGMP. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_ae59563e6318c2aa22c30c69d43f60880}{register\_\-receiver} (const string \&if\_\-name, const string \&vif\_\-name, uint8\_\-t ip\_\-protocol, bool enable\_\-multicast\_\-loopback)=0
\begin{DoxyCompactList}\small\item\em Register as a receiver to receive packets. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_a64e5e41ce8e5bb9e1180311b37dca439}{unregister\_\-receiver} (const string \&if\_\-name, const string \&vif\_\-name, uint8\_\-t ip\_\-protocol)=0
\begin{DoxyCompactList}\small\item\em Unregister as a receiver to receive packets. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_ac24bda860d4c55fb11003f9271c818db}{join\_\-multicast\_\-group} (const string \&if\_\-name, const string \&vif\_\-name, uint8\_\-t ip\_\-protocol, const \hyperlink{classIPvX}{IPvX} \&group\_\-address)=0
\begin{DoxyCompactList}\small\item\em Join a multicast group on an interface. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_abb3999ae152751bbde579755339fae0c}{leave\_\-multicast\_\-group} (const string \&if\_\-name, const string \&vif\_\-name, uint8\_\-t ip\_\-protocol, const \hyperlink{classIPvX}{IPvX} \&group\_\-address)=0
\begin{DoxyCompactList}\small\item\em Leave a multicast group on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aad265a943e211ee1845111ee5a96bdbb}{add\_\-protocol} (const string \&module\_\-instance\_\-name, xorp\_\-module\_\-id module\_\-id, uint32\_\-t vif\_\-index)
\begin{DoxyCompactList}\small\item\em Add a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a3becfdac0570deb855a2120415b6cbdb}{delete\_\-protocol} (const string \&module\_\-instance\_\-name, xorp\_\-module\_\-id module\_\-id, uint32\_\-t vif\_\-index, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_a7b72582d29a6e21f3c5eee15d99f454c}{send\_\-add\_\-membership} (const string \&dst\_\-module\_\-instance\_\-name, xorp\_\-module\_\-id dst\_\-module\_\-id, uint32\_\-t vif\_\-index, const \hyperlink{classIPvX}{IPvX} \&source, const \hyperlink{classIPvX}{IPvX} \&group)=0
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} \char`\"{}add membership\char`\"{} to a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
virtual int \hyperlink{classMld6igmpNode_a5a783a551dedf17013c4808ae8906573}{send\_\-delete\_\-membership} (const string \&dst\_\-module\_\-instance\_\-name, xorp\_\-module\_\-id dst\_\-module\_\-id, uint32\_\-t vif\_\-index, const \hyperlink{classIPvX}{IPvX} \&source, const \hyperlink{classIPvX}{IPvX} \&group)=0
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} \char`\"{}delete membership\char`\"{} to a protocol that needs to be notified about multicast membership changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a0916993885841dad3b9652c86a3ff08a}{join\_\-prune\_\-notify\_\-routing} (const string \&module\_\-instance\_\-name, xorp\_\-module\_\-id module\_\-id, uint32\_\-t vif\_\-index, const \hyperlink{classIPvX}{IPvX} \&source, const \hyperlink{classIPvX}{IPvX} \&group, action\_\-jp\_\-t action\_\-jp)
\begin{DoxyCompactList}\small\item\em Notify a protocol about multicast membership change. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpNode_ab1318d18688f07b5a0c021daadc581f0}{is\_\-directly\_\-connected} (const \hyperlink{classMld6igmpVif}{Mld6igmpVif} \&mld6igmp\_\-vif, const \hyperlink{classIPvX}{IPvX} \&ipaddr\_\-test) const 
\begin{DoxyCompactList}\small\item\em Test if an address is directly connected to a specified virtual interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_af9df5c80150e4733b6041d6556f842fc}{set\_\-config\_\-all\_\-vifs\_\-done} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Complete \hyperlink{protocolthe-p}{the} set of vif configuration changes. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a8699da3a6473f6645a03c61e9c503f97}{get\_\-vif\_\-proto\_\-version} (const string \&vif\_\-name, int \&proto\_\-version, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} protocol version on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a6c641b39deb3e675953159a4e528d15f}{set\_\-vif\_\-proto\_\-version} (const string \&vif\_\-name, int proto\_\-version, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} protocol version on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_acfd0c9ea985c197c46119f62f7e85fb3}{reset\_\-vif\_\-proto\_\-version} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} protocol version on an interface to its default value. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a2769b8a59bee9de492380c91b3b20c66}{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check} (const string \&vif\_\-name, bool \&enabled, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} flag that enables/disables \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a30a29903d4ab56d7b8b05da3569b012d}{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check} (const string \&vif\_\-name, bool enable, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Enable/disable \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a649bd34432928bdc6a3b3991512ac196}{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} flag that enables/disables \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets to its default value. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aa79913f3b8cbfb02cf07166310913efb}{get\_\-vif\_\-query\_\-interval} (const string \&vif\_\-name, \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_ae6cd278664a5b924631d4a12d0b4811e}{set\_\-vif\_\-query\_\-interval} (const string \&vif\_\-name, const \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aff72b7be19ed2f623cf0ae677a7afa21}{reset\_\-vif\_\-query\_\-interval} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_af873ae5872fda80799784099ea87d0a5}{get\_\-vif\_\-query\_\-last\_\-member\_\-interval} (const string \&vif\_\-name, \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a6885985b91c9a207b91d5e16df4bafb8}{set\_\-vif\_\-query\_\-last\_\-member\_\-interval} (const string \&vif\_\-name, const \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a87d9a8541be7a1de0148811dbe18e974}{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a818cc293999e5ecb0e3f781088ffedcb}{get\_\-vif\_\-query\_\-response\_\-interval} (const string \&vif\_\-name, \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Query Response Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a2bc62a6636f1767c11317587fb107311}{set\_\-vif\_\-query\_\-response\_\-interval} (const string \&vif\_\-name, const \hyperlink{classTimeVal}{TimeVal} \&interval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} Query Response Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a9ef40a60e302bc510b90928f0cabda0b}{reset\_\-vif\_\-query\_\-response\_\-interval} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} Query Response Interval per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_aa818ae185f7246533a6424083cc3319a}{get\_\-vif\_\-robust\_\-count} (const string \&vif\_\-name, uint32\_\-t \&robust\_\-count, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_a85d75ac67665a9bfbb942d89d0f61756}{set\_\-vif\_\-robust\_\-count} (const string \&vif\_\-name, uint32\_\-t robust\_\-count, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classMld6igmpNode_ab675c7266cb17808f410480b55d21431}{reset\_\-vif\_\-robust\_\-count} (const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMld6igmpNode_abb1fdbab14af986b9bbca55e6c4194fe}{is\_\-log\_\-trace} () const 
\begin{DoxyCompactList}\small\item\em Test if trace log is enabled. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_aa761a867183ce3da2a1fb4394b346158}{set\_\-log\_\-trace} (bool is\_\-enabled)
\begin{DoxyCompactList}\small\item\em Enable/disable trace log. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMld6igmpNode_a57d0500e6dc33c41f42ea47286f68252}{
void {\bfseries tree\_\-complete} ()}
\label{classMld6igmpNode_a57d0500e6dc33c41f42ea47286f68252}

\item 
\hypertarget{classMld6igmpNode_ae1da47e11c9b174a9d52404a14500185}{
void {\bfseries updates\_\-made} ()}
\label{classMld6igmpNode_ae1da47e11c9b174a9d52404a14500185}

\item 
\hypertarget{classMld6igmpNode_a57d0500e6dc33c41f42ea47286f68252}{
void {\bfseries tree\_\-complete} ()}
\label{classMld6igmpNode_a57d0500e6dc33c41f42ea47286f68252}

\item 
\hypertarget{classMld6igmpNode_ae1da47e11c9b174a9d52404a14500185}{
void {\bfseries updates\_\-made} ()}
\label{classMld6igmpNode_ae1da47e11c9b174a9d52404a14500185}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classMld6igmpNode_a7979af3c1b6dc25ac87e416853e7ed24}{status\_\-change} (\hyperlink{classServiceBase}{ServiceBase} $\ast$service, ServiceStatus old\_\-status, ServiceStatus new\_\-status)
\begin{DoxyCompactList}\small\item\em A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. \item\end{DoxyCompactList}\item 
virtual const \hyperlink{classServiceBase}{ServiceBase} $\ast$ \hyperlink{classMld6igmpNode_ac571deadca8e8ee3751c651ed11d5db6}{ifmgr\_\-mirror\_\-service\_\-base} () const =0
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. \item\end{DoxyCompactList}\item 
virtual const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \& \hyperlink{classMld6igmpNode_ac53375e64061c452d7dc3f1a268cff3a}{ifmgr\_\-iftree} () const =0
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} interface manager tree. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classMld6igmpNode_a6a25e1c655b154c7c2213141c1e13ff1}{fea\_\-register\_\-startup} ()=0
\begin{DoxyCompactList}\small\item\em Initiate registration with \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classMld6igmpNode_aac359927f2bf2da683b2f3ab18b78d6e}{mfea\_\-register\_\-startup} ()=0
\begin{DoxyCompactList}\small\item\em Initiate registration with \hyperlink{protocolthe-p}{the} MFEA. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classMld6igmpNode_abbcef813523f82065bca50e23f9b34a0}{fea\_\-register\_\-shutdown} ()=0
\begin{DoxyCompactList}\small\item\em Initiate de-\/registration with \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classMld6igmpNode_a97de2373c7a8f7a444aef706327d301b}{mfea\_\-register\_\-shutdown} ()=0
\begin{DoxyCompactList}\small\item\em Initiate de-\/registration with \hyperlink{protocolthe-p}{the} MFEA. \item\end{DoxyCompactList}\item 
void \hyperlink{classMld6igmpNode_a7979af3c1b6dc25ac87e416853e7ed24}{status\_\-change} (\hyperlink{classServiceBase}{ServiceBase} $\ast$service, ServiceStatus old\_\-status, ServiceStatus new\_\-status)
\begin{DoxyCompactList}\small\item\em A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. \item\end{DoxyCompactList}\item 
virtual const \hyperlink{classServiceBase}{ServiceBase} $\ast$ \hyperlink{classMld6igmpNode_ac571deadca8e8ee3751c651ed11d5db6}{ifmgr\_\-mirror\_\-service\_\-base} () const =0
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. \item\end{DoxyCompactList}\item 
virtual const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \& \hyperlink{classMld6igmpNode_ac53375e64061c452d7dc3f1a268cff3a}{ifmgr\_\-iftree} () const =0
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} interface manager tree. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classMld6igmpNode_a6a25e1c655b154c7c2213141c1e13ff1}{fea\_\-register\_\-startup} ()=0
\begin{DoxyCompactList}\small\item\em Initiate registration with \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classMld6igmpNode_aac359927f2bf2da683b2f3ab18b78d6e}{mfea\_\-register\_\-startup} ()=0
\begin{DoxyCompactList}\small\item\em Initiate registration with \hyperlink{protocolthe-p}{the} MFEA. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classMld6igmpNode_abbcef813523f82065bca50e23f9b34a0}{fea\_\-register\_\-shutdown} ()=0
\begin{DoxyCompactList}\small\item\em Initiate de-\/registration with \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classMld6igmpNode_a97de2373c7a8f7a444aef706327d301b}{mfea\_\-register\_\-shutdown} ()=0
\begin{DoxyCompactList}\small\item\em Initiate de-\/registration with \hyperlink{protocolthe-p}{the} MFEA. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMld6igmpNode_a7cfd30ef9d4c6830ec74567f12be60f9}{
\hyperlink{structbuffer__}{buffer\_\-t} $\ast$ {\bfseries \_\-buffer\_\-recv}}
\label{classMld6igmpNode_a7cfd30ef9d4c6830ec74567f12be60f9}

\item 
\hypertarget{classMld6igmpNode_a07b35eac0a4deb7ff1e6677a528cc28f}{
size\_\-t {\bfseries \_\-waiting\_\-for\_\-mfea\_\-startup\_\-events}}
\label{classMld6igmpNode_a07b35eac0a4deb7ff1e6677a528cc28f}

\item 
\hypertarget{classMld6igmpNode_ac6b873c96a955e4c5d056449c4f7bfa4}{
\hyperlink{classIfMgrIfTree}{IfMgrIfTree} {\bfseries \_\-iftree}}
\label{classMld6igmpNode_ac6b873c96a955e4c5d056449c4f7bfa4}

\item 
\hypertarget{classMld6igmpNode_a752d733e2f2c5fc0a9340ae374ab1c18}{
bool {\bfseries \_\-is\_\-log\_\-trace}}
\label{classMld6igmpNode_a752d733e2f2c5fc0a9340ae374ab1c18}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The MLD/IGMP node class. There should be one node per MLD or IGMP instance. There should be one instance per address family. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classMld6igmpNode_a4524a9a177b5a50d6aee891a10401e76}{
\index{Mld6igmpNode@{Mld6igmpNode}!Mld6igmpNode@{Mld6igmpNode}}
\index{Mld6igmpNode@{Mld6igmpNode}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{Mld6igmpNode}]{\setlength{\rightskip}{0pt plus 5cm}Mld6igmpNode::Mld6igmpNode (
\begin{DoxyParamCaption}
\item[{int}]{family, }
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{{\bf EventLoop} \&}]{eventloop}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a4524a9a177b5a50d6aee891a10401e76}


Constructor for a given address family, module ID, and event loop. 

\hyperlink{classMld6igmpNode_a4524a9a177b5a50d6aee891a10401e76}{Mld6igmpNode::Mld6igmpNode}: : The address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively).


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). \\
\hline
{\em module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id). Should be equal to XORP\_\-MODULE\_\-MLD6IGMP. \\
\hline
{\em eventloop} & \hyperlink{protocolthe-p}{the} event loop to use.\\
\hline
\end{DoxyParams}
: The module ID (must be XORP\_\-MODULE\_\-MLD6IGMP). : The event loop.

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


Destructor. 

\hyperlink{classMld6igmpNode_a874d9d2dc84ed95909c53443d52594b3}{Mld6igmpNode::$\sim$Mld6igmpNode}: @:

MLD6IGMP node destructor. \hypertarget{classMld6igmpNode_a4524a9a177b5a50d6aee891a10401e76}{
\index{Mld6igmpNode@{Mld6igmpNode}!Mld6igmpNode@{Mld6igmpNode}}
\index{Mld6igmpNode@{Mld6igmpNode}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{Mld6igmpNode}]{\setlength{\rightskip}{0pt plus 5cm}Mld6igmpNode::Mld6igmpNode (
\begin{DoxyParamCaption}
\item[{int}]{family, }
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{{\bf EventLoop} \&}]{eventloop}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a4524a9a177b5a50d6aee891a10401e76}


Constructor for a given address family, module ID, and event loop. 


\begin{DoxyParams}{Parameters}
{\em family} & \hyperlink{protocolthe-p}{the} address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). \\
\hline
{\em module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id). Should be equal to XORP\_\-MODULE\_\-MLD6IGMP. \\
\hline
{\em eventloop} & \hyperlink{protocolthe-p}{the} event loop to use. \\
\hline
\end{DoxyParams}


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


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

\hyperlink{classMld6igmpNode_aad265a943e211ee1845111ee5a96bdbb}{Mld6igmpNode::add\_\-protocol}: : 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 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
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface to add \hyperlink{protocolthe-p}{the} protocol to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The \#xorp\_\-module\_\-id of \hyperlink{protocolthe-p}{the} protocol to add. : The vif index of \hyperlink{protocolthe-p}{the} interface to add \hyperlink{protocolthe-p}{the} protocol to.

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

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


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
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface to add \hyperlink{protocolthe-p}{the} protocol to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_a6ddfc7e46db03cbc35859008d2053f77}{
\index{Mld6igmpNode@{Mld6igmpNode}!add\_\-vif@{add\_\-vif}}
\index{add\_\-vif@{add\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{add\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::add\_\-vif (
\begin{DoxyParamCaption}
\item[{const {\bf Vif} \&}]{vif, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a6ddfc7e46db03cbc35859008d2053f77}


Install a new MLD/IGMP vif. 

\hyperlink{classMld6igmpNode_a6ddfc7e46db03cbc35859008d2053f77}{Mld6igmpNode::add\_\-vif}: : Information about \hyperlink{protocolthe-p}{the} new \hyperlink{classMld6igmpVif}{Mld6igmpVif} to install.


\begin{DoxyParams}{Parameters}
{\em vif} & vif information about \hyperlink{protocolthe-p}{the} new \hyperlink{classMld6igmpVif}{Mld6igmpVif} to install. \\
\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 error message (if error).

Install a new MLD/IGMP vif.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_ac3cc4fee8dc265fe4caa8ae34472f381}{
\index{Mld6igmpNode@{Mld6igmpNode}!add\_\-vif@{add\_\-vif}}
\index{add\_\-vif@{add\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{add\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::add\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ac3cc4fee8dc265fe4caa8ae34472f381}


Install a new MLD/IGMP vif. 

\hyperlink{classMld6igmpNode_a6ddfc7e46db03cbc35859008d2053f77}{Mld6igmpNode::add\_\-vif}: : The name of \hyperlink{protocolthe-p}{the} new vif.


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} new vif. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} new vif. \\
\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 vif index of \hyperlink{protocolthe-p}{the} new vif. : The error message (if error).

Install a new MLD/IGMP vif. If \hyperlink{protocolthe-p}{the} vif exists, nothing is installed.

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


Install a new MLD/IGMP vif. 


\begin{DoxyParams}{Parameters}
{\em vif} & vif information about \hyperlink{protocolthe-p}{the} new \hyperlink{classMld6igmpVif}{Mld6igmpVif} to install. \\
\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{classMld6igmpNode_ac3cc4fee8dc265fe4caa8ae34472f381}{
\index{Mld6igmpNode@{Mld6igmpNode}!add\_\-vif@{add\_\-vif}}
\index{add\_\-vif@{add\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{add\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::add\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ac3cc4fee8dc265fe4caa8ae34472f381}


Install a new MLD/IGMP vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} new vif. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} new vif. \\
\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{classMld6igmpNode_af4ec41f5e78ce2e9ce76df4342db8863}{
\index{Mld6igmpNode@{Mld6igmpNode}!add\_\-vif\_\-addr@{add\_\-vif\_\-addr}}
\index{add\_\-vif\_\-addr@{add\_\-vif\_\-addr}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{add\_\-vif\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::add\_\-vif\_\-addr (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{addr, }
\item[{const {\bf IPvXNet} \&}]{subnet\_\-addr, }
\item[{const {\bf IPvX} \&}]{broadcast\_\-addr, }
\item[{const {\bf IPvX} \&}]{peer\_\-addr, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_af4ec41f5e78ce2e9ce76df4342db8863}


Add an address to a vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em addr} & \hyperlink{protocolthe-p}{the} unicast address to add. \\
\hline
{\em subnet\_\-addr} & \hyperlink{protocolthe-p}{the} subnet address to add. \\
\hline
{\em broadcast\_\-addr} & \hyperlink{protocolthe-p}{the} broadcast address (when applicable). \\
\hline
{\em peer\_\-addr} & \hyperlink{protocolthe-p}{the} peer address (when applicable). \\
\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{classMld6igmpNode_af4ec41f5e78ce2e9ce76df4342db8863}{
\index{Mld6igmpNode@{Mld6igmpNode}!add\_\-vif\_\-addr@{add\_\-vif\_\-addr}}
\index{add\_\-vif\_\-addr@{add\_\-vif\_\-addr}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{add\_\-vif\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::add\_\-vif\_\-addr (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{addr, }
\item[{const {\bf IPvXNet} \&}]{subnet\_\-addr, }
\item[{const {\bf IPvX} \&}]{broadcast\_\-addr, }
\item[{const {\bf IPvX} \&}]{peer\_\-addr, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_af4ec41f5e78ce2e9ce76df4342db8863}


Add an address to a vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em addr} & \hyperlink{protocolthe-p}{the} unicast address to add. \\
\hline
{\em subnet\_\-addr} & \hyperlink{protocolthe-p}{the} subnet address to add. \\
\hline
{\em broadcast\_\-addr} & \hyperlink{protocolthe-p}{the} broadcast address (when applicable). \\
\hline
{\em peer\_\-addr} & \hyperlink{protocolthe-p}{the} peer address (when applicable). \\
\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{classMld6igmpNode_a6584be60319fbf553da9e8fe750fbc44}{
\index{Mld6igmpNode@{Mld6igmpNode}!delete\_\-all\_\-vifs@{delete\_\-all\_\-vifs}}
\index{delete\_\-all\_\-vifs@{delete\_\-all\_\-vifs}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{delete\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::delete\_\-all\_\-vifs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a6584be60319fbf553da9e8fe750fbc44}


Delete all MLD/IGMP vifs. 

\hyperlink{classMld6igmpNode_a6584be60319fbf553da9e8fe750fbc44}{Mld6igmpNode::delete\_\-all\_\-vifs}: @: \hypertarget{classMld6igmpNode_a45a73bb6c185b161e719c669e7c8df33}{
\index{Mld6igmpNode@{Mld6igmpNode}!delete\_\-protocol@{delete\_\-protocol}}
\index{delete\_\-protocol@{delete\_\-protocol}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{delete\_\-protocol}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::delete\_\-protocol (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-instance\_\-name, }
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{uint32\_\-t}]{vif\_\-index}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a45a73bb6c185b161e719c669e7c8df33}


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

\hyperlink{classMld6igmpNode_a45a73bb6c185b161e719c669e7c8df33}{Mld6igmpNode::delete\_\-protocol}: : 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 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
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface to delete \hyperlink{protocolthe-p}{the} protocol from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The \#xorp\_\-module\_\-id of \hyperlink{protocolthe-p}{the} protocol to delete. : The vif index of \hyperlink{protocolthe-p}{the} interface to delete \hyperlink{protocolthe-p}{the} protocol from.

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

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


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

\hyperlink{classMld6igmpNode_a45a73bb6c185b161e719c669e7c8df33}{Mld6igmpNode::delete\_\-protocol}: : 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 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
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface to delete \hyperlink{protocolthe-p}{the} protocol from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The \#xorp\_\-module\_\-id of \hyperlink{protocolthe-p}{the} protocol to delete. : The vif index of \hyperlink{protocolthe-p}{the} interface to delete \hyperlink{protocolthe-p}{the} protocol from.

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

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


Delete an existing MLD/IGMP vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to delete. \\
\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{classMld6igmpNode_a14a68fa7d932d5dfc992740c10d23d4a}{
\index{Mld6igmpNode@{Mld6igmpNode}!delete\_\-vif@{delete\_\-vif}}
\index{delete\_\-vif@{delete\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{delete\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::delete\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a14a68fa7d932d5dfc992740c10d23d4a}


Delete an existing MLD/IGMP vif. 

\hyperlink{classMld6igmpNode_a14a68fa7d932d5dfc992740c10d23d4a}{Mld6igmpNode::delete\_\-vif}: : The name of \hyperlink{protocolthe-p}{the} vif to delete.


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to delete. \\
\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 error message (if error).

Delete an existing MLD/IGMP vif.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_a31ff5735adeb28807030ef44c2003807}{
\index{Mld6igmpNode@{Mld6igmpNode}!delete\_\-vif\_\-addr@{delete\_\-vif\_\-addr}}
\index{delete\_\-vif\_\-addr@{delete\_\-vif\_\-addr}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{delete\_\-vif\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::delete\_\-vif\_\-addr (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{addr, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a31ff5735adeb28807030ef44c2003807}


Delete an address from a vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em addr} & \hyperlink{protocolthe-p}{the} unicast address to delete. \\
\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{classMld6igmpNode_a31ff5735adeb28807030ef44c2003807}{
\index{Mld6igmpNode@{Mld6igmpNode}!delete\_\-vif\_\-addr@{delete\_\-vif\_\-addr}}
\index{delete\_\-vif\_\-addr@{delete\_\-vif\_\-addr}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{delete\_\-vif\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::delete\_\-vif\_\-addr (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{addr, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a31ff5735adeb28807030ef44c2003807}


Delete an address from a vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em addr} & \hyperlink{protocolthe-p}{the} unicast address to delete. \\
\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{classMld6igmpNode_a6ab47ca767c36f0c3bd08fab00936b9d}{
\index{Mld6igmpNode@{Mld6igmpNode}!disable@{disable}}
\index{disable@{disable}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{disable}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::disable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a6ab47ca767c36f0c3bd08fab00936b9d}


Disable node operation. 

Disable \hyperlink{protocolthe-p}{the} node operation.

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{classMld6igmpNode_a6ab47ca767c36f0c3bd08fab00936b9d}{
\index{Mld6igmpNode@{Mld6igmpNode}!disable@{disable}}
\index{disable@{disable}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{disable}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::disable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a6ab47ca767c36f0c3bd08fab00936b9d}


Disable node operation. 

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{classMld6igmpNode_a74ad40923ab35bd173485b974a4c6042}{
\index{Mld6igmpNode@{Mld6igmpNode}!disable\_\-all\_\-vifs@{disable\_\-all\_\-vifs}}
\index{disable\_\-all\_\-vifs@{disable\_\-all\_\-vifs}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{disable\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::disable\_\-all\_\-vifs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a74ad40923ab35bd173485b974a4c6042}


Disable MLD/IGMP on all interfaces. 

\hyperlink{classMld6igmpNode_a74ad40923ab35bd173485b974a4c6042}{Mld6igmpNode::disable\_\-all\_\-vifs}: @:

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Disable MLD/IGMP on all interfaces. All running interfaces are stopped first.

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


Disable MLD/IGMP on all interfaces. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_a77a4b495abd684269d6b78c672dc7d84}{
\index{Mld6igmpNode@{Mld6igmpNode}!disable\_\-vif@{disable\_\-vif}}
\index{disable\_\-vif@{disable\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{disable\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::disable\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a77a4b495abd684269d6b78c672dc7d84}


Disable an existing MLD6IGMP vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to disable. \\
\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{classMld6igmpNode_a77a4b495abd684269d6b78c672dc7d84}{
\index{Mld6igmpNode@{Mld6igmpNode}!disable\_\-vif@{disable\_\-vif}}
\index{disable\_\-vif@{disable\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{disable\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::disable\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a77a4b495abd684269d6b78c672dc7d84}


Disable an existing MLD6IGMP vif. 

\hyperlink{classMld6igmpNode_a77a4b495abd684269d6b78c672dc7d84}{Mld6igmpNode::disable\_\-vif}: : The name of \hyperlink{protocolthe-p}{the} vif to disable.


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to disable. \\
\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 error message (if error).

Disable an existing MLD6IGMP vif.

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


Enable node operation. 

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

Reimplemented from \hyperlink{classProtoState_a9e91d1d442f873cf6bf914db996519e7}{ProtoState}.

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


Enable node operation. 

Enable \hyperlink{protocolthe-p}{the} node operation.

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

Reimplemented from \hyperlink{classProtoState_a9e91d1d442f873cf6bf914db996519e7}{ProtoState}.

\hypertarget{classMld6igmpNode_a3a0c4c8d6c4fadde1388ac80c7ff2e46}{
\index{Mld6igmpNode@{Mld6igmpNode}!enable\_\-all\_\-vifs@{enable\_\-all\_\-vifs}}
\index{enable\_\-all\_\-vifs@{enable\_\-all\_\-vifs}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{enable\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::enable\_\-all\_\-vifs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a3a0c4c8d6c4fadde1388ac80c7ff2e46}


Enable MLD/IGMP on all interfaces. 

\hyperlink{classMld6igmpNode_a3a0c4c8d6c4fadde1388ac80c7ff2e46}{Mld6igmpNode::enable\_\-all\_\-vifs}: @:

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Enable MLD/IGMP on all interfaces.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_a3a0c4c8d6c4fadde1388ac80c7ff2e46}{
\index{Mld6igmpNode@{Mld6igmpNode}!enable\_\-all\_\-vifs@{enable\_\-all\_\-vifs}}
\index{enable\_\-all\_\-vifs@{enable\_\-all\_\-vifs}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{enable\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::enable\_\-all\_\-vifs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a3a0c4c8d6c4fadde1388ac80c7ff2e46}


Enable MLD/IGMP on all interfaces. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_a7f56637fb10cb079b04a553e57f9b925}{
\index{Mld6igmpNode@{Mld6igmpNode}!enable\_\-vif@{enable\_\-vif}}
\index{enable\_\-vif@{enable\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{enable\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::enable\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a7f56637fb10cb079b04a553e57f9b925}


Enable an existing MLD6IGMP vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to enable. \\
\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{classMld6igmpNode_a7f56637fb10cb079b04a553e57f9b925}{
\index{Mld6igmpNode@{Mld6igmpNode}!enable\_\-vif@{enable\_\-vif}}
\index{enable\_\-vif@{enable\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{enable\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::enable\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a7f56637fb10cb079b04a553e57f9b925}


Enable an existing MLD6IGMP vif. 

\hyperlink{classMld6igmpNode_a7f56637fb10cb079b04a553e57f9b925}{Mld6igmpNode::enable\_\-vif}: : The name of \hyperlink{protocolthe-p}{the} vif to enable.


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to enable. \\
\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 error message (if error).

Enable an existing MLD6IGMP vif.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_abbcef813523f82065bca50e23f9b34a0}{
\index{Mld6igmpNode@{Mld6igmpNode}!fea\_\-register\_\-shutdown@{fea\_\-register\_\-shutdown}}
\index{fea\_\-register\_\-shutdown@{fea\_\-register\_\-shutdown}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{fea\_\-register\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Mld6igmpNode::fea\_\-register\_\-shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_abbcef813523f82065bca50e23f9b34a0}


Initiate de-\/registration with \hyperlink{protocolthe-p}{the} FEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlMld6igmpNode_a538d70507be0281236bc6b6ff56696f0}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a538d70507be0281236bc6b6ff56696f0}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_abbcef813523f82065bca50e23f9b34a0}{
\index{Mld6igmpNode@{Mld6igmpNode}!fea\_\-register\_\-shutdown@{fea\_\-register\_\-shutdown}}
\index{fea\_\-register\_\-shutdown@{fea\_\-register\_\-shutdown}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{fea\_\-register\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Mld6igmpNode::fea\_\-register\_\-shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_abbcef813523f82065bca50e23f9b34a0}


Initiate de-\/registration with \hyperlink{protocolthe-p}{the} FEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlMld6igmpNode_a538d70507be0281236bc6b6ff56696f0}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a538d70507be0281236bc6b6ff56696f0}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a6a25e1c655b154c7c2213141c1e13ff1}{
\index{Mld6igmpNode@{Mld6igmpNode}!fea\_\-register\_\-startup@{fea\_\-register\_\-startup}}
\index{fea\_\-register\_\-startup@{fea\_\-register\_\-startup}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{fea\_\-register\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Mld6igmpNode::fea\_\-register\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a6a25e1c655b154c7c2213141c1e13ff1}


Initiate registration with \hyperlink{protocolthe-p}{the} FEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlMld6igmpNode_a92bfe40092f6a4a987c24558bba2bb6d}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a92bfe40092f6a4a987c24558bba2bb6d}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a6a25e1c655b154c7c2213141c1e13ff1}{
\index{Mld6igmpNode@{Mld6igmpNode}!fea\_\-register\_\-startup@{fea\_\-register\_\-startup}}
\index{fea\_\-register\_\-startup@{fea\_\-register\_\-startup}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{fea\_\-register\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Mld6igmpNode::fea\_\-register\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a6a25e1c655b154c7c2213141c1e13ff1}


Initiate registration with \hyperlink{protocolthe-p}{the} FEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlMld6igmpNode_a92bfe40092f6a4a987c24558bba2bb6d}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a92bfe40092f6a4a987c24558bba2bb6d}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}{
\index{Mld6igmpNode@{Mld6igmpNode}!final\_\-start@{final\_\-start}}
\index{final\_\-start@{final\_\-start}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{final\_\-start}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::final\_\-start (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}


Completely start \hyperlink{protocolthe-p}{the} node operation. 

This method should be called internally after \hyperlink{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}{Mld6igmpNode::start()} to complete \hyperlink{protocolthe-p}{the} job.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}{
\index{Mld6igmpNode@{Mld6igmpNode}!final\_\-start@{final\_\-start}}
\index{final\_\-start@{final\_\-start}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{final\_\-start}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::final\_\-start (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}


Completely start \hyperlink{protocolthe-p}{the} node operation. 

\hyperlink{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}{Mld6igmpNode::final\_\-start}: @:

This method should be called internally after \hyperlink{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}{Mld6igmpNode::start()} to complete \hyperlink{protocolthe-p}{the} job.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Complete \hyperlink{protocolthe-p}{the} start-\/up of \hyperlink{protocolthe-p}{the} MLD/IGMP protocol.

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


Completely stop \hyperlink{protocolthe-p}{the} node operation. 

This method should be called internally after \hyperlink{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}{Mld6igmpNode::stop()} to complete \hyperlink{protocolthe-p}{the} job.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_a713a5a0c3c56b2be29f48ad7a46a0775}{
\index{Mld6igmpNode@{Mld6igmpNode}!final\_\-stop@{final\_\-stop}}
\index{final\_\-stop@{final\_\-stop}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{final\_\-stop}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::final\_\-stop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a713a5a0c3c56b2be29f48ad7a46a0775}


Completely stop \hyperlink{protocolthe-p}{the} node operation. 

\hyperlink{classMld6igmpNode_a713a5a0c3c56b2be29f48ad7a46a0775}{Mld6igmpNode::final\_\-stop}: @:

This method should be called internally after \hyperlink{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}{Mld6igmpNode::stop()} to complete \hyperlink{protocolthe-p}{the} job.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Completely stop \hyperlink{protocolthe-p}{the} MLD/IGMP protocol.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_a2769b8a59bee9de492380c91b3b20c66}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}}
\index{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{bool \&}]{enabled, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a2769b8a59bee9de492380c91b3b20c66}


Get \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} flag that enables/disables \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em enabled} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference flag value. \\
\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{classMld6igmpNode_a2769b8a59bee9de492380c91b3b20c66}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}}
\index{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{bool \&}]{enabled, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a2769b8a59bee9de492380c91b3b20c66}


Get \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} flag that enables/disables \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em enabled} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference flag value. \\
\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{classMld6igmpNode_a8699da3a6473f6645a03c61e9c503f97}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-proto\_\-version@{get\_\-vif\_\-proto\_\-version}}
\index{get\_\-vif\_\-proto\_\-version@{get\_\-vif\_\-proto\_\-version}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-proto\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-proto\_\-version (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{int \&}]{proto\_\-version, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a8699da3a6473f6645a03c61e9c503f97}


Get \hyperlink{protocolthe-p}{the} protocol version on an interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to get \hyperlink{protocolthe-p}{the} protocol version of. \\
\hline
{\em proto\_\-version} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference protocol version. \\
\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{classMld6igmpNode_a8699da3a6473f6645a03c61e9c503f97}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-proto\_\-version@{get\_\-vif\_\-proto\_\-version}}
\index{get\_\-vif\_\-proto\_\-version@{get\_\-vif\_\-proto\_\-version}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-proto\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-proto\_\-version (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{int \&}]{proto\_\-version, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a8699da3a6473f6645a03c61e9c503f97}


Get \hyperlink{protocolthe-p}{the} protocol version on an interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to get \hyperlink{protocolthe-p}{the} protocol version of. \\
\hline
{\em proto\_\-version} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference protocol version. \\
\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{classMld6igmpNode_aa79913f3b8cbfb02cf07166310913efb}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-query\_\-interval@{get\_\-vif\_\-query\_\-interval}}
\index{get\_\-vif\_\-query\_\-interval@{get\_\-vif\_\-query\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-query\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{{\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_aa79913f3b8cbfb02cf07166310913efb}


Get \hyperlink{protocolthe-p}{the} Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference interval. \\
\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{classMld6igmpNode_aa79913f3b8cbfb02cf07166310913efb}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-query\_\-interval@{get\_\-vif\_\-query\_\-interval}}
\index{get\_\-vif\_\-query\_\-interval@{get\_\-vif\_\-query\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-query\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{{\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_aa79913f3b8cbfb02cf07166310913efb}


Get \hyperlink{protocolthe-p}{the} Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference interval. \\
\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{classMld6igmpNode_af873ae5872fda80799784099ea87d0a5}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-query\_\-last\_\-member\_\-interval@{get\_\-vif\_\-query\_\-last\_\-member\_\-interval}}
\index{get\_\-vif\_\-query\_\-last\_\-member\_\-interval@{get\_\-vif\_\-query\_\-last\_\-member\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-query\_\-last\_\-member\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-query\_\-last\_\-member\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{{\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_af873ae5872fda80799784099ea87d0a5}


Get \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference interval. \\
\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{classMld6igmpNode_af873ae5872fda80799784099ea87d0a5}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-query\_\-last\_\-member\_\-interval@{get\_\-vif\_\-query\_\-last\_\-member\_\-interval}}
\index{get\_\-vif\_\-query\_\-last\_\-member\_\-interval@{get\_\-vif\_\-query\_\-last\_\-member\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-query\_\-last\_\-member\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-query\_\-last\_\-member\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{{\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_af873ae5872fda80799784099ea87d0a5}


Get \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference interval. \\
\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{classMld6igmpNode_a818cc293999e5ecb0e3f781088ffedcb}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-query\_\-response\_\-interval@{get\_\-vif\_\-query\_\-response\_\-interval}}
\index{get\_\-vif\_\-query\_\-response\_\-interval@{get\_\-vif\_\-query\_\-response\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-query\_\-response\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-query\_\-response\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{{\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a818cc293999e5ecb0e3f781088ffedcb}


Get \hyperlink{protocolthe-p}{the} Query Response Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference interval. \\
\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{classMld6igmpNode_a818cc293999e5ecb0e3f781088ffedcb}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-query\_\-response\_\-interval@{get\_\-vif\_\-query\_\-response\_\-interval}}
\index{get\_\-vif\_\-query\_\-response\_\-interval@{get\_\-vif\_\-query\_\-response\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-query\_\-response\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-query\_\-response\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{{\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a818cc293999e5ecb0e3f781088ffedcb}


Get \hyperlink{protocolthe-p}{the} Query Response Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference interval. \\
\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{classMld6igmpNode_aa818ae185f7246533a6424083cc3319a}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-robust\_\-count@{get\_\-vif\_\-robust\_\-count}}
\index{get\_\-vif\_\-robust\_\-count@{get\_\-vif\_\-robust\_\-count}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-robust\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-robust\_\-count (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{uint32\_\-t \&}]{robust\_\-count, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_aa818ae185f7246533a6424083cc3319a}


Get \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em robust\_\-count} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference count value. \\
\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{classMld6igmpNode_aa818ae185f7246533a6424083cc3319a}{
\index{Mld6igmpNode@{Mld6igmpNode}!get\_\-vif\_\-robust\_\-count@{get\_\-vif\_\-robust\_\-count}}
\index{get\_\-vif\_\-robust\_\-count@{get\_\-vif\_\-robust\_\-count}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{get\_\-vif\_\-robust\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::get\_\-vif\_\-robust\_\-count (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{uint32\_\-t \&}]{robust\_\-count, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_aa818ae185f7246533a6424083cc3319a}


Get \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em robust\_\-count} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference count value. \\
\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{classMld6igmpNode_ac53375e64061c452d7dc3f1a268cff3a}{
\index{Mld6igmpNode@{Mld6igmpNode}!ifmgr\_\-iftree@{ifmgr\_\-iftree}}
\index{ifmgr\_\-iftree@{ifmgr\_\-iftree}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{ifmgr\_\-iftree}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf IfMgrIfTree}\& Mld6igmpNode::ifmgr\_\-iftree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_ac53375e64061c452d7dc3f1a268cff3a}


Get a reference to \hyperlink{protocolthe-p}{the} interface manager tree. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} interface manager tree. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a2949536de97912b34bf2405a655a73c8}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a2949536de97912b34bf2405a655a73c8}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_ac53375e64061c452d7dc3f1a268cff3a}{
\index{Mld6igmpNode@{Mld6igmpNode}!ifmgr\_\-iftree@{ifmgr\_\-iftree}}
\index{ifmgr\_\-iftree@{ifmgr\_\-iftree}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{ifmgr\_\-iftree}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf IfMgrIfTree}\& Mld6igmpNode::ifmgr\_\-iftree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_ac53375e64061c452d7dc3f1a268cff3a}


Get a reference to \hyperlink{protocolthe-p}{the} interface manager tree. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} interface manager tree. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a2949536de97912b34bf2405a655a73c8}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a2949536de97912b34bf2405a655a73c8}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_ac571deadca8e8ee3751c651ed11d5db6}{
\index{Mld6igmpNode@{Mld6igmpNode}!ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}}
\index{ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{ifmgr\_\-mirror\_\-service\_\-base}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf ServiceBase}$\ast$ Mld6igmpNode::ifmgr\_\-mirror\_\-service\_\-base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_ac571deadca8e8ee3751c651ed11d5db6}


Get a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a0739918b54ff95f4fceb81aa12258586}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a0739918b54ff95f4fceb81aa12258586}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_ac571deadca8e8ee3751c651ed11d5db6}{
\index{Mld6igmpNode@{Mld6igmpNode}!ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}}
\index{ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{ifmgr\_\-mirror\_\-service\_\-base}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf ServiceBase}$\ast$ Mld6igmpNode::ifmgr\_\-mirror\_\-service\_\-base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_ac571deadca8e8ee3751c651ed11d5db6}


Get a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a0739918b54ff95f4fceb81aa12258586}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a0739918b54ff95f4fceb81aa12258586}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a9425da4b81cf8ecb5fbe1c421c404f46}{
\index{Mld6igmpNode@{Mld6igmpNode}!ip\_\-protocol\_\-number@{ip\_\-protocol\_\-number}}
\index{ip\_\-protocol\_\-number@{ip\_\-protocol\_\-number}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{ip\_\-protocol\_\-number}]{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t Mld6igmpNode::ip\_\-protocol\_\-number (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpNode_a9425da4b81cf8ecb5fbe1c421c404f46}


Get \hyperlink{protocolthe-p}{the} IP protocol number. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} IP protocol number. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_a9425da4b81cf8ecb5fbe1c421c404f46}{
\index{Mld6igmpNode@{Mld6igmpNode}!ip\_\-protocol\_\-number@{ip\_\-protocol\_\-number}}
\index{ip\_\-protocol\_\-number@{ip\_\-protocol\_\-number}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{ip\_\-protocol\_\-number}]{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t Mld6igmpNode::ip\_\-protocol\_\-number (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpNode_a9425da4b81cf8ecb5fbe1c421c404f46}


Get \hyperlink{protocolthe-p}{the} IP protocol number. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} IP protocol number. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_ab1318d18688f07b5a0c021daadc581f0}{
\index{Mld6igmpNode@{Mld6igmpNode}!is\_\-directly\_\-connected@{is\_\-directly\_\-connected}}
\index{is\_\-directly\_\-connected@{is\_\-directly\_\-connected}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{is\_\-directly\_\-connected}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpNode::is\_\-directly\_\-connected (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpVif} \&}]{mld6igmp\_\-vif, }
\item[{const {\bf IPvX} \&}]{ipaddr\_\-test}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpNode_ab1318d18688f07b5a0c021daadc581f0}


Test if an address is directly connected to a specified virtual interface. 

\hyperlink{classMld6igmpNode_ab1318d18688f07b5a0c021daadc581f0}{Mld6igmpNode::is\_\-directly\_\-connected}: : The virtual interface to test against.

Note that \hyperlink{protocolthe-p}{the} virtual interface \hyperlink{protocolthe-p}{the} address is directly connected to must be UP.


\begin{DoxyParams}{Parameters}
{\em mld6igmp\_\-vif} & \hyperlink{protocolthe-p}{the} virtual interface to test against. \\
\hline
{\em ipaddr\_\-test} & \hyperlink{protocolthe-p}{the} address to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if ipaddr\_\-test is directly connected to vif, otherwise false.
\end{DoxyReturn}
: The address to test.

Note that \hyperlink{protocolthe-p}{the} virtual interface \hyperlink{protocolthe-p}{the} address is directly connected to must be UP.

Return value: True if  is directly connected to , otherwise false. \hypertarget{classMld6igmpNode_ab1318d18688f07b5a0c021daadc581f0}{
\index{Mld6igmpNode@{Mld6igmpNode}!is\_\-directly\_\-connected@{is\_\-directly\_\-connected}}
\index{is\_\-directly\_\-connected@{is\_\-directly\_\-connected}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{is\_\-directly\_\-connected}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpNode::is\_\-directly\_\-connected (
\begin{DoxyParamCaption}
\item[{const {\bf Mld6igmpVif} \&}]{mld6igmp\_\-vif, }
\item[{const {\bf IPvX} \&}]{ipaddr\_\-test}
\end{DoxyParamCaption}
) const}}
\label{classMld6igmpNode_ab1318d18688f07b5a0c021daadc581f0}


Test if an address is directly connected to a specified virtual interface. 

Note that \hyperlink{protocolthe-p}{the} virtual interface \hyperlink{protocolthe-p}{the} address is directly connected to must be UP.


\begin{DoxyParams}{Parameters}
{\em mld6igmp\_\-vif} & \hyperlink{protocolthe-p}{the} virtual interface to test against. \\
\hline
{\em ipaddr\_\-test} & \hyperlink{protocolthe-p}{the} address to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if ipaddr\_\-test is directly connected to vif, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_abb1fdbab14af986b9bbca55e6c4194fe}{
\index{Mld6igmpNode@{Mld6igmpNode}!is\_\-log\_\-trace@{is\_\-log\_\-trace}}
\index{is\_\-log\_\-trace@{is\_\-log\_\-trace}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{is\_\-log\_\-trace}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpNode::is\_\-log\_\-trace (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpNode_abb1fdbab14af986b9bbca55e6c4194fe}


Test if trace log is enabled. 

This method is used to test whether to output trace log debug messges.

\begin{DoxyReturn}{Returns}
true if trace log is enabled, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_abb1fdbab14af986b9bbca55e6c4194fe}{
\index{Mld6igmpNode@{Mld6igmpNode}!is\_\-log\_\-trace@{is\_\-log\_\-trace}}
\index{is\_\-log\_\-trace@{is\_\-log\_\-trace}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{is\_\-log\_\-trace}]{\setlength{\rightskip}{0pt plus 5cm}bool Mld6igmpNode::is\_\-log\_\-trace (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpNode_abb1fdbab14af986b9bbca55e6c4194fe}


Test if trace log is enabled. 

This method is used to test whether to output trace log debug messges.

\begin{DoxyReturn}{Returns}
true if trace log is enabled, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_ac24bda860d4c55fb11003f9271c818db}{
\index{Mld6igmpNode@{Mld6igmpNode}!join\_\-multicast\_\-group@{join\_\-multicast\_\-group}}
\index{join\_\-multicast\_\-group@{join\_\-multicast\_\-group}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{join\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::join\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{const {\bf IPvX} \&}]{group\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_ac24bda860d4c55fb11003f9271c818db}


Join a multicast group on an interface. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

TODO: add a source address as well!!


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface name to join. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif name to join. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is interested in. \\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} multicast group address to join. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_ac083c50abc536d94d9cac915fabf313c}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_ac083c50abc536d94d9cac915fabf313c}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_ac24bda860d4c55fb11003f9271c818db}{
\index{Mld6igmpNode@{Mld6igmpNode}!join\_\-multicast\_\-group@{join\_\-multicast\_\-group}}
\index{join\_\-multicast\_\-group@{join\_\-multicast\_\-group}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{join\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::join\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{const {\bf IPvX} \&}]{group\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_ac24bda860d4c55fb11003f9271c818db}


Join a multicast group on an interface. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

TODO: add a source address as well!!


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface name to join. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif name to join. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is interested in. \\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} multicast group address to join. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_ac083c50abc536d94d9cac915fabf313c}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_ac083c50abc536d94d9cac915fabf313c}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a0916993885841dad3b9652c86a3ff08a}{
\index{Mld6igmpNode@{Mld6igmpNode}!join\_\-prune\_\-notify\_\-routing@{join\_\-prune\_\-notify\_\-routing}}
\index{join\_\-prune\_\-notify\_\-routing@{join\_\-prune\_\-notify\_\-routing}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{join\_\-prune\_\-notify\_\-routing}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::join\_\-prune\_\-notify\_\-routing (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-instance\_\-name, }
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{const {\bf IPvX} \&}]{source, }
\item[{const {\bf IPvX} \&}]{group, }
\item[{action\_\-jp\_\-t}]{action\_\-jp}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a0916993885841dad3b9652c86a3ff08a}


Notify a protocol about multicast membership change. 

\hyperlink{classMld6igmpNode_a0916993885841dad3b9652c86a3ff08a}{Mld6igmpNode::join\_\-prune\_\-notify\_\-routing}: : The module instance name of \hyperlink{protocolthe-p}{the} protocol to notify.


\begin{DoxyParams}{Parameters}
{\em module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface with membership change. \\
\hline
{\em source} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed. In case of group-\/specific multicast, it is \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed. \\
\hline
{\em action\_\-jp} & \hyperlink{protocolthe-p}{the} membership change type (action\_\-jp\_\-t): either ACTION\_\-JOIN or ACTION\_\-PRUNE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
: The \#xorp\_\-module\_\-id of \hyperlink{protocolthe-p}{the} protocol to notify. : The vif index of \hyperlink{protocolthe-p}{the} interface with membership change. : The source address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed. In case of group-\/specific membership, it is \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. : The group address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed. : The membership change type \#action\_\-jp\_\-t: either ACTION\_\-JOIN or ACTION\_\-PRUNE.

Notify \hyperlink{protocolthe-p}{the} protocol instance with name  that there is multicast membership change on interface with vif index of .

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_a0916993885841dad3b9652c86a3ff08a}{
\index{Mld6igmpNode@{Mld6igmpNode}!join\_\-prune\_\-notify\_\-routing@{join\_\-prune\_\-notify\_\-routing}}
\index{join\_\-prune\_\-notify\_\-routing@{join\_\-prune\_\-notify\_\-routing}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{join\_\-prune\_\-notify\_\-routing}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::join\_\-prune\_\-notify\_\-routing (
\begin{DoxyParamCaption}
\item[{const string \&}]{module\_\-instance\_\-name, }
\item[{xorp\_\-module\_\-id}]{module\_\-id, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{const {\bf IPvX} \&}]{source, }
\item[{const {\bf IPvX} \&}]{group, }
\item[{action\_\-jp\_\-t}]{action\_\-jp}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a0916993885841dad3b9652c86a3ff08a}


Notify a protocol about multicast membership change. 


\begin{DoxyParams}{Parameters}
{\em module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface with membership change. \\
\hline
{\em source} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed. In case of group-\/specific multicast, it is \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed. \\
\hline
{\em action\_\-jp} & \hyperlink{protocolthe-p}{the} membership change type (action\_\-jp\_\-t): either ACTION\_\-JOIN or ACTION\_\-PRUNE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_abb3999ae152751bbde579755339fae0c}{
\index{Mld6igmpNode@{Mld6igmpNode}!leave\_\-multicast\_\-group@{leave\_\-multicast\_\-group}}
\index{leave\_\-multicast\_\-group@{leave\_\-multicast\_\-group}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{leave\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::leave\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{const {\bf IPvX} \&}]{group\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_abb3999ae152751bbde579755339fae0c}


Leave a multicast group on an interface. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

TODO: add a source address as well!!


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface name to leave. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif name to leave. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is not interested in anymore. \\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} multicast group address to leave. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a25f6397f7406a12f607ff01e2b50ce46}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a25f6397f7406a12f607ff01e2b50ce46}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_abb3999ae152751bbde579755339fae0c}{
\index{Mld6igmpNode@{Mld6igmpNode}!leave\_\-multicast\_\-group@{leave\_\-multicast\_\-group}}
\index{leave\_\-multicast\_\-group@{leave\_\-multicast\_\-group}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{leave\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::leave\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{const {\bf IPvX} \&}]{group\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_abb3999ae152751bbde579755339fae0c}


Leave a multicast group on an interface. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

TODO: add a source address as well!!


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface name to leave. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif name to leave. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is not interested in anymore. \\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} multicast group address to leave. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a25f6397f7406a12f607ff01e2b50ce46}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a25f6397f7406a12f607ff01e2b50ce46}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a97de2373c7a8f7a444aef706327d301b}{
\index{Mld6igmpNode@{Mld6igmpNode}!mfea\_\-register\_\-shutdown@{mfea\_\-register\_\-shutdown}}
\index{mfea\_\-register\_\-shutdown@{mfea\_\-register\_\-shutdown}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{mfea\_\-register\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Mld6igmpNode::mfea\_\-register\_\-shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a97de2373c7a8f7a444aef706327d301b}


Initiate de-\/registration with \hyperlink{protocolthe-p}{the} MFEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlMld6igmpNode_a7da215fe1375f727a1ed23158fcfbffe}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a7da215fe1375f727a1ed23158fcfbffe}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a97de2373c7a8f7a444aef706327d301b}{
\index{Mld6igmpNode@{Mld6igmpNode}!mfea\_\-register\_\-shutdown@{mfea\_\-register\_\-shutdown}}
\index{mfea\_\-register\_\-shutdown@{mfea\_\-register\_\-shutdown}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{mfea\_\-register\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Mld6igmpNode::mfea\_\-register\_\-shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a97de2373c7a8f7a444aef706327d301b}


Initiate de-\/registration with \hyperlink{protocolthe-p}{the} MFEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlMld6igmpNode_a7da215fe1375f727a1ed23158fcfbffe}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a7da215fe1375f727a1ed23158fcfbffe}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_aac359927f2bf2da683b2f3ab18b78d6e}{
\index{Mld6igmpNode@{Mld6igmpNode}!mfea\_\-register\_\-startup@{mfea\_\-register\_\-startup}}
\index{mfea\_\-register\_\-startup@{mfea\_\-register\_\-startup}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{mfea\_\-register\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Mld6igmpNode::mfea\_\-register\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_aac359927f2bf2da683b2f3ab18b78d6e}


Initiate registration with \hyperlink{protocolthe-p}{the} MFEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlMld6igmpNode_aed58c498c8cf2168f34fbc414311fd7a}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_aed58c498c8cf2168f34fbc414311fd7a}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_aac359927f2bf2da683b2f3ab18b78d6e}{
\index{Mld6igmpNode@{Mld6igmpNode}!mfea\_\-register\_\-startup@{mfea\_\-register\_\-startup}}
\index{mfea\_\-register\_\-startup@{mfea\_\-register\_\-startup}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{mfea\_\-register\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Mld6igmpNode::mfea\_\-register\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classMld6igmpNode_aac359927f2bf2da683b2f3ab18b78d6e}


Initiate registration with \hyperlink{protocolthe-p}{the} MFEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlMld6igmpNode_aed58c498c8cf2168f34fbc414311fd7a}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_aed58c498c8cf2168f34fbc414311fd7a}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a08f66b56bba1fda58b24055c0c1cc64f}{
\index{Mld6igmpNode@{Mld6igmpNode}!mld6igmp\_\-send@{mld6igmp\_\-send}}
\index{mld6igmp\_\-send@{mld6igmp\_\-send}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{mld6igmp\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::mld6igmp\_\-send (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{src\_\-address, }
\item[{const {\bf IPvX} \&}]{dst\_\-address, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{int32\_\-t}]{ip\_\-ttl, }
\item[{int32\_\-t}]{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{classMld6igmpNode_a08f66b56bba1fda58b24055c0c1cc64f}


\hyperlink{structSend}{Send} a protocol packet. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface to send \hyperlink{protocolthe-p}{the} packet on. It is essential for multicast. In \hyperlink{protocolthe-p}{the} unicast case this field may be empty. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif to send \hyperlink{protocolthe-p}{the} packet on. It is essential for multicast. In \hyperlink{protocolthe-p}{the} unicast case this field may be empty. \\
\hline
{\em src\_\-address} & \hyperlink{protocolthe-p}{the} IP source address. \\
\hline
{\em dst\_\-address} & \hyperlink{protocolthe-p}{the} IP destination address. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number. It must be between 1 and 255. \\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TTL (hop-\/limit). If it has a negative value, \hyperlink{protocolthe-p}{the} TTL will be set internally before transmission. \\
\hline
{\em ip\_\-tos} & \hyperlink{protocolthe-p}{the} Type Of Service (Diffserv/ECN bits for \hyperlink{classIPv4}{IPv4}). If it has a negative value, \hyperlink{protocolthe-p}{the} TOS will be set internally before transmission. \\
\hline
{\em ip\_\-router\_\-alert} & if true, then add \hyperlink{protocolthe-p}{the} IP Router Alert option to \hyperlink{protocolthe-p}{the} IP packet. \\
\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} packet to send. \\
\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{classMld6igmpNode_a08f66b56bba1fda58b24055c0c1cc64f}{
\index{Mld6igmpNode@{Mld6igmpNode}!mld6igmp\_\-send@{mld6igmp\_\-send}}
\index{mld6igmp\_\-send@{mld6igmp\_\-send}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{mld6igmp\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::mld6igmp\_\-send (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{src\_\-address, }
\item[{const {\bf IPvX} \&}]{dst\_\-address, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{int32\_\-t}]{ip\_\-ttl, }
\item[{int32\_\-t}]{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{classMld6igmpNode_a08f66b56bba1fda58b24055c0c1cc64f}


\hyperlink{structSend}{Send} a protocol packet. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface to send \hyperlink{protocolthe-p}{the} packet on. It is essential for multicast. In \hyperlink{protocolthe-p}{the} unicast case this field may be empty. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif to send \hyperlink{protocolthe-p}{the} packet on. It is essential for multicast. In \hyperlink{protocolthe-p}{the} unicast case this field may be empty. \\
\hline
{\em src\_\-address} & \hyperlink{protocolthe-p}{the} IP source address. \\
\hline
{\em dst\_\-address} & \hyperlink{protocolthe-p}{the} IP destination address. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number. It must be between 1 and 255. \\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TTL (hop-\/limit). If it has a negative value, \hyperlink{protocolthe-p}{the} TTL will be set internally before transmission. \\
\hline
{\em ip\_\-tos} & \hyperlink{protocolthe-p}{the} Type Of Service (Diffserv/ECN bits for \hyperlink{classIPv4}{IPv4}). If it has a negative value, \hyperlink{protocolthe-p}{the} TOS will be set internally before transmission. \\
\hline
{\em ip\_\-router\_\-alert} & if true, then add \hyperlink{protocolthe-p}{the} IP Router Alert option to \hyperlink{protocolthe-p}{the} IP packet. \\
\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} packet to send. \\
\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{classMld6igmpNode_a5b4ba19dd9a50972c36bb8d02e4db1c8}{
\index{Mld6igmpNode@{Mld6igmpNode}!proto\_\-recv@{proto\_\-recv}}
\index{proto\_\-recv@{proto\_\-recv}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{proto\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::proto\_\-recv (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{src\_\-address, }
\item[{const {\bf IPvX} \&}]{dst\_\-address, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{int32\_\-t}]{ip\_\-ttl, }
\item[{int32\_\-t}]{ip\_\-tos, }
\item[{bool}]{ip\_\-router\_\-alert, }
\item[{bool}]{ip\_\-internet\_\-control, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{payload, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMld6igmpNode_a5b4ba19dd9a50972c36bb8d02e4db1c8}


Receive a protocol packet. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface name \hyperlink{protocolthe-p}{the} packet arrived on. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif name \hyperlink{protocolthe-p}{the} packet arrived on. \\
\hline
{\em src\_\-address} & \hyperlink{protocolthe-p}{the} IP source address. \\
\hline
{\em dst\_\-address} & \hyperlink{protocolthe-p}{the} IP destination address. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number. \\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TTL (hop-\/limit). If it has a negative value, then \hyperlink{protocolthe-p}{the} received value is unknown. \\
\hline
{\em ip\_\-tos} & \hyperlink{protocolthe-p}{the} Type of Service (Diffserv/ECN bits for \hyperlink{classIPv4}{IPv4}). If it has a negative value, then \hyperlink{protocolthe-p}{the} received value is unknown. \\
\hline
{\em ip\_\-router\_\-alert} & if true, \hyperlink{protocolthe-p}{the} IP Router Alert option was included in \hyperlink{protocolthe-p}{the} IP packet. \\
\hline
{\em ip\_\-internet\_\-control} & if true, then this is IP control traffic. \\
\hline
{\em payload} & \hyperlink{protocolthe-p}{the} payload, everything after \hyperlink{protocolthe-p}{the} IP header and options. \\
\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}


Implements \hyperlink{classProtoNode_a4752a6a3ad1e4b79045d17681fb1a304}{ProtoNode$<$ Mld6igmpVif $>$}.

\hypertarget{classMld6igmpNode_a5b4ba19dd9a50972c36bb8d02e4db1c8}{
\index{Mld6igmpNode@{Mld6igmpNode}!proto\_\-recv@{proto\_\-recv}}
\index{proto\_\-recv@{proto\_\-recv}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{proto\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::proto\_\-recv (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{src\_\-address, }
\item[{const {\bf IPvX} \&}]{dst\_\-address, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{int32\_\-t}]{ip\_\-ttl, }
\item[{int32\_\-t}]{ip\_\-tos, }
\item[{bool}]{ip\_\-router\_\-alert, }
\item[{bool}]{ip\_\-internet\_\-control, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{payload, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMld6igmpNode_a5b4ba19dd9a50972c36bb8d02e4db1c8}


Receive a protocol packet. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface name \hyperlink{protocolthe-p}{the} packet arrived on. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif name \hyperlink{protocolthe-p}{the} packet arrived on. \\
\hline
{\em src\_\-address} & \hyperlink{protocolthe-p}{the} IP source address. \\
\hline
{\em dst\_\-address} & \hyperlink{protocolthe-p}{the} IP destination address. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number. \\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TTL (hop-\/limit). If it has a negative value, then \hyperlink{protocolthe-p}{the} received value is unknown. \\
\hline
{\em ip\_\-tos} & \hyperlink{protocolthe-p}{the} Type of Service (Diffserv/ECN bits for \hyperlink{classIPv4}{IPv4}). If it has a negative value, then \hyperlink{protocolthe-p}{the} received value is unknown. \\
\hline
{\em ip\_\-router\_\-alert} & if true, \hyperlink{protocolthe-p}{the} IP Router Alert option was included in \hyperlink{protocolthe-p}{the} IP packet. \\
\hline
{\em ip\_\-internet\_\-control} & if true, then this is IP control traffic. \\
\hline
{\em payload} & \hyperlink{protocolthe-p}{the} payload, everything after \hyperlink{protocolthe-p}{the} IP header and options. \\
\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}


Implements \hyperlink{classProtoNode_a4752a6a3ad1e4b79045d17681fb1a304}{ProtoNode$<$ Mld6igmpVif $>$}.

\hypertarget{classMld6igmpNode_ae59563e6318c2aa22c30c69d43f60880}{
\index{Mld6igmpNode@{Mld6igmpNode}!register\_\-receiver@{register\_\-receiver}}
\index{register\_\-receiver@{register\_\-receiver}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{register\_\-receiver}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::register\_\-receiver (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{bool}]{enable\_\-multicast\_\-loopback}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_ae59563e6318c2aa22c30c69d43f60880}


Register as a receiver to receive packets. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should be accepted. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should be accepted. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols. \\
\hline
{\em enable\_\-multicast\_\-loopback} & if true then enable delivering of multicast datagrams back to this host (assuming \hyperlink{protocolthe-p}{the} host is a member of \hyperlink{protocolthe-p}{the} same multicast group). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_aa23f6f95eceb981970ce79f07dcdf4d9}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_aa23f6f95eceb981970ce79f07dcdf4d9}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_ae59563e6318c2aa22c30c69d43f60880}{
\index{Mld6igmpNode@{Mld6igmpNode}!register\_\-receiver@{register\_\-receiver}}
\index{register\_\-receiver@{register\_\-receiver}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{register\_\-receiver}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::register\_\-receiver (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint8\_\-t}]{ip\_\-protocol, }
\item[{bool}]{enable\_\-multicast\_\-loopback}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_ae59563e6318c2aa22c30c69d43f60880}


Register as a receiver to receive packets. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should be accepted. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should be accepted. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols. \\
\hline
{\em enable\_\-multicast\_\-loopback} & if true then enable delivering of multicast datagrams back to this host (assuming \hyperlink{protocolthe-p}{the} host is a member of \hyperlink{protocolthe-p}{the} same multicast group). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_aa23f6f95eceb981970ce79f07dcdf4d9}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_aa23f6f95eceb981970ce79f07dcdf4d9}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a649bd34432928bdc6a3b3991512ac196}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}}
\index{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a649bd34432928bdc6a3b3991512ac196}


Reset \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} flag that enables/disables \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets to its default value. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_a649bd34432928bdc6a3b3991512ac196}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}}
\index{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a649bd34432928bdc6a3b3991512ac196}


Reset \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} flag that enables/disables \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets to its default value. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_acfd0c9ea985c197c46119f62f7e85fb3}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-proto\_\-version@{reset\_\-vif\_\-proto\_\-version}}
\index{reset\_\-vif\_\-proto\_\-version@{reset\_\-vif\_\-proto\_\-version}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-proto\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-proto\_\-version (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_acfd0c9ea985c197c46119f62f7e85fb3}


Reset \hyperlink{protocolthe-p}{the} protocol version on an interface to its default value. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to reset \hyperlink{protocolthe-p}{the} protocol version of to its default value. \\
\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{classMld6igmpNode_acfd0c9ea985c197c46119f62f7e85fb3}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-proto\_\-version@{reset\_\-vif\_\-proto\_\-version}}
\index{reset\_\-vif\_\-proto\_\-version@{reset\_\-vif\_\-proto\_\-version}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-proto\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-proto\_\-version (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_acfd0c9ea985c197c46119f62f7e85fb3}


Reset \hyperlink{protocolthe-p}{the} protocol version on an interface to its default value. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to reset \hyperlink{protocolthe-p}{the} protocol version of to its default value. \\
\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{classMld6igmpNode_aff72b7be19ed2f623cf0ae677a7afa21}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-query\_\-interval@{reset\_\-vif\_\-query\_\-interval}}
\index{reset\_\-vif\_\-query\_\-interval@{reset\_\-vif\_\-query\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-query\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_aff72b7be19ed2f623cf0ae677a7afa21}


Reset \hyperlink{protocolthe-p}{the} Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_aff72b7be19ed2f623cf0ae677a7afa21}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-query\_\-interval@{reset\_\-vif\_\-query\_\-interval}}
\index{reset\_\-vif\_\-query\_\-interval@{reset\_\-vif\_\-query\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-query\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_aff72b7be19ed2f623cf0ae677a7afa21}


Reset \hyperlink{protocolthe-p}{the} Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_a87d9a8541be7a1de0148811dbe18e974}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-query\_\-last\_\-member\_\-interval@{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval}}
\index{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval@{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-query\_\-last\_\-member\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a87d9a8541be7a1de0148811dbe18e974}


Reset \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_a87d9a8541be7a1de0148811dbe18e974}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-query\_\-last\_\-member\_\-interval@{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval}}
\index{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval@{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-query\_\-last\_\-member\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-query\_\-last\_\-member\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a87d9a8541be7a1de0148811dbe18e974}


Reset \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_a9ef40a60e302bc510b90928f0cabda0b}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-query\_\-response\_\-interval@{reset\_\-vif\_\-query\_\-response\_\-interval}}
\index{reset\_\-vif\_\-query\_\-response\_\-interval@{reset\_\-vif\_\-query\_\-response\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-query\_\-response\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-query\_\-response\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a9ef40a60e302bc510b90928f0cabda0b}


Reset \hyperlink{protocolthe-p}{the} Query Response Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_a9ef40a60e302bc510b90928f0cabda0b}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-query\_\-response\_\-interval@{reset\_\-vif\_\-query\_\-response\_\-interval}}
\index{reset\_\-vif\_\-query\_\-response\_\-interval@{reset\_\-vif\_\-query\_\-response\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-query\_\-response\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-query\_\-response\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a9ef40a60e302bc510b90928f0cabda0b}


Reset \hyperlink{protocolthe-p}{the} Query Response Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_ab675c7266cb17808f410480b55d21431}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-robust\_\-count@{reset\_\-vif\_\-robust\_\-count}}
\index{reset\_\-vif\_\-robust\_\-count@{reset\_\-vif\_\-robust\_\-count}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-robust\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-robust\_\-count (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ab675c7266cb17808f410480b55d21431}


Reset \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_ab675c7266cb17808f410480b55d21431}{
\index{Mld6igmpNode@{Mld6igmpNode}!reset\_\-vif\_\-robust\_\-count@{reset\_\-vif\_\-robust\_\-count}}
\index{reset\_\-vif\_\-robust\_\-count@{reset\_\-vif\_\-robust\_\-count}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{reset\_\-vif\_\-robust\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::reset\_\-vif\_\-robust\_\-count (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ab675c7266cb17808f410480b55d21431}


Reset \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\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{classMld6igmpNode_a7b72582d29a6e21f3c5eee15d99f454c}{
\index{Mld6igmpNode@{Mld6igmpNode}!send\_\-add\_\-membership@{send\_\-add\_\-membership}}
\index{send\_\-add\_\-membership@{send\_\-add\_\-membership}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{send\_\-add\_\-membership}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::send\_\-add\_\-membership (
\begin{DoxyParamCaption}
\item[{const string \&}]{dst\_\-module\_\-instance\_\-name, }
\item[{xorp\_\-module\_\-id}]{dst\_\-module\_\-id, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{const {\bf IPvX} \&}]{source, }
\item[{const {\bf IPvX} \&}]{group}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a7b72582d29a6e21f3c5eee15d99f454c}


\hyperlink{structSend}{Send} \char`\"{}add membership\char`\"{} to a protocol that needs to be notified about multicast membership changes. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em dst\_\-module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em dst\_\-module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface with membership change. \\
\hline
{\em source} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed membership. In case of Any-\/Source Multicast, it is \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} group address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a5cad9274b06b0d7718f15902c4c12b66}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a5cad9274b06b0d7718f15902c4c12b66}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a7b72582d29a6e21f3c5eee15d99f454c}{
\index{Mld6igmpNode@{Mld6igmpNode}!send\_\-add\_\-membership@{send\_\-add\_\-membership}}
\index{send\_\-add\_\-membership@{send\_\-add\_\-membership}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{send\_\-add\_\-membership}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::send\_\-add\_\-membership (
\begin{DoxyParamCaption}
\item[{const string \&}]{dst\_\-module\_\-instance\_\-name, }
\item[{xorp\_\-module\_\-id}]{dst\_\-module\_\-id, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{const {\bf IPvX} \&}]{source, }
\item[{const {\bf IPvX} \&}]{group}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a7b72582d29a6e21f3c5eee15d99f454c}


\hyperlink{structSend}{Send} \char`\"{}add membership\char`\"{} to a protocol that needs to be notified about multicast membership changes. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em dst\_\-module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em dst\_\-module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface with membership change. \\
\hline
{\em source} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed membership. In case of Any-\/Source Multicast, it is \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} group address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a5cad9274b06b0d7718f15902c4c12b66}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a5cad9274b06b0d7718f15902c4c12b66}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a5a783a551dedf17013c4808ae8906573}{
\index{Mld6igmpNode@{Mld6igmpNode}!send\_\-delete\_\-membership@{send\_\-delete\_\-membership}}
\index{send\_\-delete\_\-membership@{send\_\-delete\_\-membership}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{send\_\-delete\_\-membership}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::send\_\-delete\_\-membership (
\begin{DoxyParamCaption}
\item[{const string \&}]{dst\_\-module\_\-instance\_\-name, }
\item[{xorp\_\-module\_\-id}]{dst\_\-module\_\-id, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{const {\bf IPvX} \&}]{source, }
\item[{const {\bf IPvX} \&}]{group}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a5a783a551dedf17013c4808ae8906573}


\hyperlink{structSend}{Send} \char`\"{}delete membership\char`\"{} to a protocol that needs to be notified about multicast membership changes. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em dst\_\-module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em dst\_\-module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface with membership change. \\
\hline
{\em source} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed membership. In case of Any-\/Source Multicast, it is \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a0edab3816d722684d035d8459c393b6c}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a0edab3816d722684d035d8459c393b6c}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a5a783a551dedf17013c4808ae8906573}{
\index{Mld6igmpNode@{Mld6igmpNode}!send\_\-delete\_\-membership@{send\_\-delete\_\-membership}}
\index{send\_\-delete\_\-membership@{send\_\-delete\_\-membership}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{send\_\-delete\_\-membership}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::send\_\-delete\_\-membership (
\begin{DoxyParamCaption}
\item[{const string \&}]{dst\_\-module\_\-instance\_\-name, }
\item[{xorp\_\-module\_\-id}]{dst\_\-module\_\-id, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{const {\bf IPvX} \&}]{source, }
\item[{const {\bf IPvX} \&}]{group}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a5a783a551dedf17013c4808ae8906573}


\hyperlink{structSend}{Send} \char`\"{}delete membership\char`\"{} to a protocol that needs to be notified about multicast membership changes. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em dst\_\-module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em dst\_\-module\_\-id} & \hyperlink{protocolthe-p}{the} module ID (xorp\_\-module\_\-id) of \hyperlink{protocolthe-p}{the} protocol to notify. \\
\hline
{\em vif\_\-index} & \hyperlink{protocolthe-p}{the} vif index of \hyperlink{protocolthe-p}{the} interface with membership change. \\
\hline
{\em source} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed membership. In case of Any-\/Source Multicast, it is \hyperlink{classIPvX_aba7dce7144be6617538811e770c26cbd}{IPvX::ZERO()}. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} (S,G) or ($\ast$,G) entry that has changed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a0edab3816d722684d035d8459c393b6c}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a0edab3816d722684d035d8459c393b6c}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_af9df5c80150e4733b6041d6556f842fc}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-config\_\-all\_\-vifs\_\-done@{set\_\-config\_\-all\_\-vifs\_\-done}}
\index{set\_\-config\_\-all\_\-vifs\_\-done@{set\_\-config\_\-all\_\-vifs\_\-done}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-config\_\-all\_\-vifs\_\-done}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-config\_\-all\_\-vifs\_\-done (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_af9df5c80150e4733b6041d6556f842fc}


Complete \hyperlink{protocolthe-p}{the} set of vif configuration changes. 


\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{classMld6igmpNode_af9df5c80150e4733b6041d6556f842fc}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-config\_\-all\_\-vifs\_\-done@{set\_\-config\_\-all\_\-vifs\_\-done}}
\index{set\_\-config\_\-all\_\-vifs\_\-done@{set\_\-config\_\-all\_\-vifs\_\-done}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-config\_\-all\_\-vifs\_\-done}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-config\_\-all\_\-vifs\_\-done (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_af9df5c80150e4733b6041d6556f842fc}


Complete \hyperlink{protocolthe-p}{the} set of vif configuration changes. 


\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{classMld6igmpNode_aa761a867183ce3da2a1fb4394b346158}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-log\_\-trace@{set\_\-log\_\-trace}}
\index{set\_\-log\_\-trace@{set\_\-log\_\-trace}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-log\_\-trace}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::set\_\-log\_\-trace (
\begin{DoxyParamCaption}
\item[{bool}]{is\_\-enabled}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpNode_aa761a867183ce3da2a1fb4394b346158}


Enable/disable trace log. 

This method is used to enable/disable trace log debug messages output.


\begin{DoxyParams}{Parameters}
{\em is\_\-enabled} & if true, trace log is enabled, otherwise is disabled. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpNode_aa761a867183ce3da2a1fb4394b346158}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-log\_\-trace@{set\_\-log\_\-trace}}
\index{set\_\-log\_\-trace@{set\_\-log\_\-trace}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-log\_\-trace}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::set\_\-log\_\-trace (
\begin{DoxyParamCaption}
\item[{bool}]{is\_\-enabled}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMld6igmpNode_aa761a867183ce3da2a1fb4394b346158}


Enable/disable trace log. 

This method is used to enable/disable trace log debug messages output.


\begin{DoxyParams}{Parameters}
{\em is\_\-enabled} & if true, trace log is enabled, otherwise is disabled. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpNode_ac5f2b7f6d8af9ab7dd6e19b8f78a04d3}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-flags@{set\_\-vif\_\-flags}}
\index{set\_\-vif\_\-flags@{set\_\-vif\_\-flags}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-flags}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-flags (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{bool}]{is\_\-pim\_\-register, }
\item[{bool}]{is\_\-p2p, }
\item[{bool}]{is\_\-loopback, }
\item[{bool}]{is\_\-multicast, }
\item[{bool}]{is\_\-broadcast, }
\item[{bool}]{is\_\-up, }
\item[{uint32\_\-t}]{mtu, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ac5f2b7f6d8af9ab7dd6e19b8f78a04d3}


Set flags to a vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em is\_\-pim\_\-register} & true if this is a PIM Register vif. \\
\hline
{\em is\_\-p2p} & true if this is a point-\/to-\/point vif. \\
\hline
{\em is\_\-loopback} & true if this is a loopback interface. \\
\hline
{\em is\_\-multicast} & true if \hyperlink{protocolthe-p}{the} vif is multicast-\/capable. \\
\hline
{\em is\_\-broadcast} & true if \hyperlink{protocolthe-p}{the} vif is broadcast-\/capable. \\
\hline
{\em is\_\-up} & true if \hyperlink{protocolthe-p}{the} vif is UP and running. \\
\hline
{\em mtu} & \hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. \\
\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{classMld6igmpNode_ac5f2b7f6d8af9ab7dd6e19b8f78a04d3}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-flags@{set\_\-vif\_\-flags}}
\index{set\_\-vif\_\-flags@{set\_\-vif\_\-flags}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-flags}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-flags (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{bool}]{is\_\-pim\_\-register, }
\item[{bool}]{is\_\-p2p, }
\item[{bool}]{is\_\-loopback, }
\item[{bool}]{is\_\-multicast, }
\item[{bool}]{is\_\-broadcast, }
\item[{bool}]{is\_\-up, }
\item[{uint32\_\-t}]{mtu, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ac5f2b7f6d8af9ab7dd6e19b8f78a04d3}


Set flags to a vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em is\_\-pim\_\-register} & true if this is a PIM Register vif. \\
\hline
{\em is\_\-p2p} & true if this is a point-\/to-\/point vif. \\
\hline
{\em is\_\-loopback} & true if this is a loopback interface. \\
\hline
{\em is\_\-multicast} & true if \hyperlink{protocolthe-p}{the} vif is multicast-\/capable. \\
\hline
{\em is\_\-broadcast} & true if \hyperlink{protocolthe-p}{the} vif is broadcast-\/capable. \\
\hline
{\em is\_\-up} & true if \hyperlink{protocolthe-p}{the} vif is UP and running. \\
\hline
{\em mtu} & \hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. \\
\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{classMld6igmpNode_a30a29903d4ab56d7b8b05da3569b012d}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}}
\index{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{bool}]{enable, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a30a29903d4ab56d7b8b05da3569b012d}


Enable/disable \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em enable} & if true, then enable \hyperlink{protocolthe-p}{the} IP Router Alert option check, otherwise disable it. \\
\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{classMld6igmpNode_a30a29903d4ab56d7b8b05da3569b012d}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}}
\index{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check@{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-ip\_\-router\_\-alert\_\-option\_\-check (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{bool}]{enable, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a30a29903d4ab56d7b8b05da3569b012d}


Enable/disable \hyperlink{protocolthe-p}{the} IP Router Alert option check per interface for received packets. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em enable} & if true, then enable \hyperlink{protocolthe-p}{the} IP Router Alert option check, otherwise disable it. \\
\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{classMld6igmpNode_a6c641b39deb3e675953159a4e528d15f}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-proto\_\-version@{set\_\-vif\_\-proto\_\-version}}
\index{set\_\-vif\_\-proto\_\-version@{set\_\-vif\_\-proto\_\-version}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-proto\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-proto\_\-version (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{int}]{proto\_\-version, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a6c641b39deb3e675953159a4e528d15f}


Set \hyperlink{protocolthe-p}{the} protocol version on an interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to set \hyperlink{protocolthe-p}{the} protocol version of. \\
\hline
{\em proto\_\-version} & \hyperlink{protocolthe-p}{the} new protocol version. \\
\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{classMld6igmpNode_a6c641b39deb3e675953159a4e528d15f}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-proto\_\-version@{set\_\-vif\_\-proto\_\-version}}
\index{set\_\-vif\_\-proto\_\-version@{set\_\-vif\_\-proto\_\-version}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-proto\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-proto\_\-version (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{int}]{proto\_\-version, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a6c641b39deb3e675953159a4e528d15f}


Set \hyperlink{protocolthe-p}{the} protocol version on an interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to set \hyperlink{protocolthe-p}{the} protocol version of. \\
\hline
{\em proto\_\-version} & \hyperlink{protocolthe-p}{the} new protocol version. \\
\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{classMld6igmpNode_ae6cd278664a5b924631d4a12d0b4811e}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-query\_\-interval@{set\_\-vif\_\-query\_\-interval}}
\index{set\_\-vif\_\-query\_\-interval@{set\_\-vif\_\-query\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-query\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ae6cd278664a5b924631d4a12d0b4811e}


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


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} interval. \\
\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{classMld6igmpNode_ae6cd278664a5b924631d4a12d0b4811e}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-query\_\-interval@{set\_\-vif\_\-query\_\-interval}}
\index{set\_\-vif\_\-query\_\-interval@{set\_\-vif\_\-query\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-query\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-query\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ae6cd278664a5b924631d4a12d0b4811e}


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


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} interval. \\
\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{classMld6igmpNode_a6885985b91c9a207b91d5e16df4bafb8}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-query\_\-last\_\-member\_\-interval@{set\_\-vif\_\-query\_\-last\_\-member\_\-interval}}
\index{set\_\-vif\_\-query\_\-last\_\-member\_\-interval@{set\_\-vif\_\-query\_\-last\_\-member\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-query\_\-last\_\-member\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-query\_\-last\_\-member\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a6885985b91c9a207b91d5e16df4bafb8}


Set \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} interval. \\
\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{classMld6igmpNode_a6885985b91c9a207b91d5e16df4bafb8}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-query\_\-last\_\-member\_\-interval@{set\_\-vif\_\-query\_\-last\_\-member\_\-interval}}
\index{set\_\-vif\_\-query\_\-last\_\-member\_\-interval@{set\_\-vif\_\-query\_\-last\_\-member\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-query\_\-last\_\-member\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-query\_\-last\_\-member\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a6885985b91c9a207b91d5e16df4bafb8}


Set \hyperlink{protocolthe-p}{the} Last Member Query Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} interval. \\
\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{classMld6igmpNode_a2bc62a6636f1767c11317587fb107311}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-query\_\-response\_\-interval@{set\_\-vif\_\-query\_\-response\_\-interval}}
\index{set\_\-vif\_\-query\_\-response\_\-interval@{set\_\-vif\_\-query\_\-response\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-query\_\-response\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-query\_\-response\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a2bc62a6636f1767c11317587fb107311}


Set \hyperlink{protocolthe-p}{the} Query Response Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} interval. \\
\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{classMld6igmpNode_a2bc62a6636f1767c11317587fb107311}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-query\_\-response\_\-interval@{set\_\-vif\_\-query\_\-response\_\-interval}}
\index{set\_\-vif\_\-query\_\-response\_\-interval@{set\_\-vif\_\-query\_\-response\_\-interval}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-query\_\-response\_\-interval}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-query\_\-response\_\-interval (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf TimeVal} \&}]{interval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a2bc62a6636f1767c11317587fb107311}


Set \hyperlink{protocolthe-p}{the} Query Response Interval per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em interval} & \hyperlink{protocolthe-p}{the} interval. \\
\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{classMld6igmpNode_a85d75ac67665a9bfbb942d89d0f61756}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-robust\_\-count@{set\_\-vif\_\-robust\_\-count}}
\index{set\_\-vif\_\-robust\_\-count@{set\_\-vif\_\-robust\_\-count}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-robust\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-robust\_\-count (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{uint32\_\-t}]{robust\_\-count, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a85d75ac67665a9bfbb942d89d0f61756}


Set \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em robust\_\-count} & \hyperlink{protocolthe-p}{the} count value. \\
\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{classMld6igmpNode_a85d75ac67665a9bfbb942d89d0f61756}{
\index{Mld6igmpNode@{Mld6igmpNode}!set\_\-vif\_\-robust\_\-count@{set\_\-vif\_\-robust\_\-count}}
\index{set\_\-vif\_\-robust\_\-count@{set\_\-vif\_\-robust\_\-count}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{set\_\-vif\_\-robust\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::set\_\-vif\_\-robust\_\-count (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{uint32\_\-t}]{robust\_\-count, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a85d75ac67665a9bfbb942d89d0f61756}


Set \hyperlink{protocolthe-p}{the} Robustness Variable count per interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to apply to. \\
\hline
{\em robust\_\-count} & \hyperlink{protocolthe-p}{the} count value. \\
\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{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}{
\index{Mld6igmpNode@{Mld6igmpNode}!start@{start}}
\index{start@{start}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{start}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::start (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}


Start \hyperlink{protocolthe-p}{the} node operation. 

Start \hyperlink{protocolthe-p}{the} MLD or IGMP protocol. After \hyperlink{protocolthe-p}{the} startup operations are completed, \hyperlink{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}{Mld6igmpNode::final\_\-start()} is called internally to complete \hyperlink{protocolthe-p}{the} job.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classProtoState_a5a0cf7fc68b9db681ce8b8fca9635e07}{ProtoState}.

\hypertarget{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}{
\index{Mld6igmpNode@{Mld6igmpNode}!start@{start}}
\index{start@{start}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{start}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::start (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}


Start \hyperlink{protocolthe-p}{the} node operation. 

\hyperlink{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}{Mld6igmpNode::start}: @:

Start \hyperlink{protocolthe-p}{the} MLD or IGMP protocol. After \hyperlink{protocolthe-p}{the} startup operations are completed, \hyperlink{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}{Mld6igmpNode::final\_\-start()} is called internally to complete \hyperlink{protocolthe-p}{the} job.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Start \hyperlink{protocolthe-p}{the} MLD or IGMP protocol. TODO: This function should not start \hyperlink{protocolthe-p}{the} protocol operation on \hyperlink{protocolthe-p}{the} interfaces. The interfaces must be activated separately. After \hyperlink{protocolthe-p}{the} startup operations are completed, \hyperlink{classMld6igmpNode_a40cff983075fa6b06b8c6fcf929b019a}{Mld6igmpNode::final\_\-start()} is called to complete \hyperlink{protocolthe-p}{the} job.

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

Reimplemented from \hyperlink{classProtoState_a5a0cf7fc68b9db681ce8b8fca9635e07}{ProtoState}.

\hypertarget{classMld6igmpNode_a516126e0443940da10f7bc989b9dc756}{
\index{Mld6igmpNode@{Mld6igmpNode}!start\_\-all\_\-vifs@{start\_\-all\_\-vifs}}
\index{start\_\-all\_\-vifs@{start\_\-all\_\-vifs}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{start\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::start\_\-all\_\-vifs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a516126e0443940da10f7bc989b9dc756}


Start MLD/IGMP on all enabled interfaces. 

\hyperlink{classMld6igmpNode_a516126e0443940da10f7bc989b9dc756}{Mld6igmpNode::start\_\-all\_\-vifs}: @:

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Start MLD/IGMP on all enabled interfaces.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_a516126e0443940da10f7bc989b9dc756}{
\index{Mld6igmpNode@{Mld6igmpNode}!start\_\-all\_\-vifs@{start\_\-all\_\-vifs}}
\index{start\_\-all\_\-vifs@{start\_\-all\_\-vifs}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{start\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::start\_\-all\_\-vifs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a516126e0443940da10f7bc989b9dc756}


Start MLD/IGMP on all enabled interfaces. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_a41eb52752edc0d3bcb05d61324581f8c}{
\index{Mld6igmpNode@{Mld6igmpNode}!start\_\-vif@{start\_\-vif}}
\index{start\_\-vif@{start\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{start\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::start\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a41eb52752edc0d3bcb05d61324581f8c}


Start an existing MLD6IGMP vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to start. \\
\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{classMld6igmpNode_a41eb52752edc0d3bcb05d61324581f8c}{
\index{Mld6igmpNode@{Mld6igmpNode}!start\_\-vif@{start\_\-vif}}
\index{start\_\-vif@{start\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{start\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::start\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a41eb52752edc0d3bcb05d61324581f8c}


Start an existing MLD6IGMP vif. 

\hyperlink{classMld6igmpNode_a41eb52752edc0d3bcb05d61324581f8c}{Mld6igmpNode::start\_\-vif}: : The name of \hyperlink{protocolthe-p}{the} vif to start.


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to start. \\
\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 error message (if error).

Start an existing MLD6IGMP vif.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_a7979af3c1b6dc25ac87e416853e7ed24}{
\index{Mld6igmpNode@{Mld6igmpNode}!status\_\-change@{status\_\-change}}
\index{status\_\-change@{status\_\-change}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{status\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::status\_\-change (
\begin{DoxyParamCaption}
\item[{{\bf ServiceBase} $\ast$}]{service, }
\item[{ServiceStatus}]{old\_\-status, }
\item[{ServiceStatus}]{new\_\-status}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classMld6igmpNode_a7979af3c1b6dc25ac87e416853e7ed24}


A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. 


\begin{DoxyParams}{Parameters}
{\em service} & \hyperlink{protocolthe-p}{the} service whose status has changed. \\
\hline
{\em old\_\-status} & \hyperlink{protocolthe-p}{the} old status. \\
\hline
{\em new\_\-status} & \hyperlink{protocolthe-p}{the} new status. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classServiceChangeObserverBase}{ServiceChangeObserverBase}.

\hypertarget{classMld6igmpNode_a7979af3c1b6dc25ac87e416853e7ed24}{
\index{Mld6igmpNode@{Mld6igmpNode}!status\_\-change@{status\_\-change}}
\index{status\_\-change@{status\_\-change}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{status\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::status\_\-change (
\begin{DoxyParamCaption}
\item[{{\bf ServiceBase} $\ast$}]{service, }
\item[{ServiceStatus}]{old\_\-status, }
\item[{ServiceStatus}]{new\_\-status}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classMld6igmpNode_a7979af3c1b6dc25ac87e416853e7ed24}


A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. 


\begin{DoxyParams}{Parameters}
{\em service} & \hyperlink{protocolthe-p}{the} service whose status has changed. \\
\hline
{\em old\_\-status} & \hyperlink{protocolthe-p}{the} old status. \\
\hline
{\em new\_\-status} & \hyperlink{protocolthe-p}{the} new status. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classServiceChangeObserverBase}{ServiceChangeObserverBase}.

\hypertarget{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}{
\index{Mld6igmpNode@{Mld6igmpNode}!stop@{stop}}
\index{stop@{stop}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{stop}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::stop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}


Stop \hyperlink{protocolthe-p}{the} node operation. 

\hyperlink{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}{Mld6igmpNode::stop}: @:

Gracefully stop \hyperlink{protocolthe-p}{the} MLD or IGMP protocol. After \hyperlink{protocolthe-p}{the} shutdown operations are completed, \hyperlink{classMld6igmpNode_a713a5a0c3c56b2be29f48ad7a46a0775}{Mld6igmpNode::final\_\-stop()} is called internally to complete \hyperlink{protocolthe-p}{the} job.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Gracefully stop \hyperlink{protocolthe-p}{the} MLD or IGMP protocol. XXX: After \hyperlink{protocolthe-p}{the} cleanup is completed, \hyperlink{classMld6igmpNode_a713a5a0c3c56b2be29f48ad7a46a0775}{Mld6igmpNode::final\_\-stop()} is called to complete \hyperlink{protocolthe-p}{the} job. XXX: This function, unlike \hyperlink{classMld6igmpNode_a0744a0d12950740d7181e98283f2a6cd}{start()}, will stop \hyperlink{protocolthe-p}{the} protocol operation on all interfaces.

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

Reimplemented from \hyperlink{classProtoState_a00a8d35d02b0ce61a6b012326e81878c}{ProtoState}.

\hypertarget{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}{
\index{Mld6igmpNode@{Mld6igmpNode}!stop@{stop}}
\index{stop@{stop}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{stop}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::stop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_aaa3fe5ee28bcb8dab840a2e268788813}


Stop \hyperlink{protocolthe-p}{the} node operation. 

Gracefully stop \hyperlink{protocolthe-p}{the} MLD or IGMP protocol. After \hyperlink{protocolthe-p}{the} shutdown operations are completed, \hyperlink{classMld6igmpNode_a713a5a0c3c56b2be29f48ad7a46a0775}{Mld6igmpNode::final\_\-stop()} is called internally to complete \hyperlink{protocolthe-p}{the} job.

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classProtoState_a00a8d35d02b0ce61a6b012326e81878c}{ProtoState}.

\hypertarget{classMld6igmpNode_a185e55f4e3039bde6c456f85a81d2d8b}{
\index{Mld6igmpNode@{Mld6igmpNode}!stop\_\-all\_\-vifs@{stop\_\-all\_\-vifs}}
\index{stop\_\-all\_\-vifs@{stop\_\-all\_\-vifs}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{stop\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::stop\_\-all\_\-vifs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a185e55f4e3039bde6c456f85a81d2d8b}


Stop MLD/IGMP on all interfaces it was running on. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classMld6igmpNode_a185e55f4e3039bde6c456f85a81d2d8b}{
\index{Mld6igmpNode@{Mld6igmpNode}!stop\_\-all\_\-vifs@{stop\_\-all\_\-vifs}}
\index{stop\_\-all\_\-vifs@{stop\_\-all\_\-vifs}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{stop\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::stop\_\-all\_\-vifs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a185e55f4e3039bde6c456f85a81d2d8b}


Stop MLD/IGMP on all interfaces it was running on. 

\hyperlink{classMld6igmpNode_a185e55f4e3039bde6c456f85a81d2d8b}{Mld6igmpNode::stop\_\-all\_\-vifs}: @:

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR.
\end{DoxyReturn}
Stop MLD/IGMP on all interfaces it was running on.

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


Stop an existing MLD6IGMP vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to start. \\
\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{classMld6igmpNode_a8e176209bfd042c2d80a8b5c7b797cff}{
\index{Mld6igmpNode@{Mld6igmpNode}!stop\_\-vif@{stop\_\-vif}}
\index{stop\_\-vif@{stop\_\-vif}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{stop\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int Mld6igmpNode::stop\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_a8e176209bfd042c2d80a8b5c7b797cff}


Stop an existing MLD6IGMP vif. 

\hyperlink{classMld6igmpNode_a8e176209bfd042c2d80a8b5c7b797cff}{Mld6igmpNode::stop\_\-vif}: : The name of \hyperlink{protocolthe-p}{the} vif to stop.


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to start. \\
\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 error message (if error).

Stop an existing MLD6IGMP vif.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. \hypertarget{classMld6igmpNode_a64e5e41ce8e5bb9e1180311b37dca439}{
\index{Mld6igmpNode@{Mld6igmpNode}!unregister\_\-receiver@{unregister\_\-receiver}}
\index{unregister\_\-receiver@{unregister\_\-receiver}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{unregister\_\-receiver}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::unregister\_\-receiver (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint8\_\-t}]{ip\_\-protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a64e5e41ce8e5bb9e1180311b37dca439}


Unregister as a receiver to receive packets. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should not be accepted. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should not be accepted. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP \hyperlink{classProtocol}{Protocol} number that \hyperlink{protocolthe-p}{the} receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a6eb5e62b1c92802cb27d44a328c6b427}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a6eb5e62b1c92802cb27d44a328c6b427}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_a64e5e41ce8e5bb9e1180311b37dca439}{
\index{Mld6igmpNode@{Mld6igmpNode}!unregister\_\-receiver@{unregister\_\-receiver}}
\index{unregister\_\-receiver@{unregister\_\-receiver}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{unregister\_\-receiver}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Mld6igmpNode::unregister\_\-receiver (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint8\_\-t}]{ip\_\-protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classMld6igmpNode_a64e5e41ce8e5bb9e1180311b37dca439}


Unregister as a receiver to receive packets. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should not be accepted. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should not be accepted. \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP \hyperlink{classProtocol}{Protocol} number that \hyperlink{protocolthe-p}{the} receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlMld6igmpNode_a6eb5e62b1c92802cb27d44a328c6b427}{XrlMld6igmpNode}, and \hyperlink{classXrlMld6igmpNode_a6eb5e62b1c92802cb27d44a328c6b427}{XrlMld6igmpNode}.

\hypertarget{classMld6igmpNode_ae76536b71b3e58adf78f075ceabc932b}{
\index{Mld6igmpNode@{Mld6igmpNode}!vif\_\-shutdown\_\-completed@{vif\_\-shutdown\_\-completed}}
\index{vif\_\-shutdown\_\-completed@{vif\_\-shutdown\_\-completed}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{vif\_\-shutdown\_\-completed}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::vif\_\-shutdown\_\-completed (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ae76536b71b3e58adf78f075ceabc932b}


A method called when a vif has completed its shutdown. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif that has completed its shutdown. \\
\hline
\end{DoxyParams}
\hypertarget{classMld6igmpNode_ae76536b71b3e58adf78f075ceabc932b}{
\index{Mld6igmpNode@{Mld6igmpNode}!vif\_\-shutdown\_\-completed@{vif\_\-shutdown\_\-completed}}
\index{vif\_\-shutdown\_\-completed@{vif\_\-shutdown\_\-completed}!Mld6igmpNode@{Mld6igmpNode}}
\subsubsection[{vif\_\-shutdown\_\-completed}]{\setlength{\rightskip}{0pt plus 5cm}void Mld6igmpNode::vif\_\-shutdown\_\-completed (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name}
\end{DoxyParamCaption}
)}}
\label{classMld6igmpNode_ae76536b71b3e58adf78f075ceabc932b}


A method called when a vif has completed its shutdown. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif that has completed its shutdown. \\
\hline
\end{DoxyParams}


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\_\-node.hh\item 
/home/greearb/git/xorp.ct.github/xorp/mld6igmp/mld6igmp\_\-node.hh\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/mld6igmp\_\-lite/mld6igmp\_\-config.cc\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/mld6igmp\_\-lite/mld6igmp\_\-node.cc\item 
/home/greearb/git/xorp.ct.github/xorp/mld6igmp/mld6igmp\_\-config.cc\item 
/home/greearb/git/xorp.ct.github/xorp/mld6igmp/mld6igmp\_\-node.cc\end{DoxyCompactItemize}
