\hypertarget{classXrlIO}{
\section{XrlIO$<$ A $>$ Class Template Reference}
\label{classXrlIO}\index{XrlIO@{XrlIO}}
}


Concrete implementation of \hyperlink{classIO}{IO} using XRLs.  




{\ttfamily \#include $<$xrl\_\-io.hh$>$}

Inheritance diagram for XrlIO$<$ A $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.684211cm]{classXrlIO}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classXrlIO_a935a87c117b4b5920ee4a375f3f99bb5}{XrlIO} (\hyperlink{classEventLoop}{EventLoop} \&eventloop, \hyperlink{classXrlRouter}{XrlRouter} \&xrl\_\-router, const string \&feaname, const string \&ribname)
\begin{DoxyCompactList}\small\item\em Construct an \hyperlink{classXrlIO}{XrlIO} instance. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_af0eb9438768f8013e9e67fbd23c5d41d}{
\hyperlink{classXrlIO_af0eb9438768f8013e9e67fbd23c5d41d}{$\sim$XrlIO} ()}
\label{classXrlIO_af0eb9438768f8013e9e67fbd23c5d41d}

\begin{DoxyCompactList}\small\item\em Destroy an \hyperlink{classXrlIO}{XrlIO} instance. \item\end{DoxyCompactList}\item 
int \hyperlink{classXrlIO_a65eb1ca7813cfc58630d0a1720804bf1}{startup} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classStartup}{Startup} operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classXrlIO_a3f7a0862d56dbab3dc5406cb7ee1fe10}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} operation. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIO_a90b631fdc84f43f447ba00090267b0a4}{component\_\-up} (string name)
\begin{DoxyCompactList}\small\item\em Called when internal subsystem comes up. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIO_aadcee9e056c9d15c974ae516426e3e43}{component\_\-down} (string name)
\begin{DoxyCompactList}\small\item\em Called when internal subsystem goes down. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIO_a6c0a3dfdacfb3ba53cf20167a513f7ae}{receive} (const string \&sockid, const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&src, const uint16\_\-t \&sport, const vector$<$ uint8\_\-t $>$ \&payload)
\begin{DoxyCompactList}\small\item\em Receive UDP datagrams. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a29b1d0ad3dd36b1345db36e2923d8090}{send} (const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&src, const uint16\_\-t \&sport, const \hyperlink{classIPv4}{IPv4} \&dst, const uint16\_\-t \&dport, uint8\_\-t $\ast$data, const uint32\_\-t \&len)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} a UDP datagram on a specific link. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a586f84a33f9943413dc7fbef07803a9b}{enable\_\-interface\_\-vif} (const string \&interface, const string \&vif)
\begin{DoxyCompactList}\small\item\em Enable \hyperlink{protocolthe-p}{the} interface/vif to receive frames. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_af0e18e9984f9b0518bac6785101cd798}{disable\_\-interface\_\-vif} (const string \&interface, const string \&vif)
\begin{DoxyCompactList}\small\item\em Disable this interface/vif from receiving frames. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a27d9410fbdc8be9fa79de8bb66135bdd}{enable\_\-address} (const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, const uint16\_\-t \&port, const \hyperlink{classIPv4}{IPv4} \&all\_\-nodes\_\-address)
\begin{DoxyCompactList}\small\item\em Enable an \hyperlink{classIPv4}{IPv4} address and port for OLSR datagram reception and transmission. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_aac061324bd2c93931dd4be40249755bd}{disable\_\-address} (const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, const uint16\_\-t \&port)
\begin{DoxyCompactList}\small\item\em Disable an \hyperlink{classIPv4}{IPv4} address and port for OLSR datagram reception. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a50a486ce00b64726620f4ea5676760e8}{is\_\-interface\_\-enabled} (const string \&interface) const 
\begin{DoxyCompactList}\small\item\em Test whether an interface is enabled. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_ab3bfe3aabc8711d58836b6b861fa4a37}{is\_\-vif\_\-enabled} (const string \&interface, const string \&vif) const 
\begin{DoxyCompactList}\small\item\em Test whether an interface/vif is enabled. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_af3b730d241f1e3ddebe1ba07d422452c}{is\_\-vif\_\-broadcast\_\-capable} (const string \&interface, const string \&vif)
\begin{DoxyCompactList}\small\item\em Test whether this interface/vif is broadcast capable. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_add30a32817997389bdee969c9ddc6d04}{is\_\-vif\_\-multicast\_\-capable} (const string \&interface, const string \&vif)
\begin{DoxyCompactList}\small\item\em Test whether this interface/vif is multicast capable. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_aa8ff6c73a8469c35a97893a2354ad970}{
bool \hyperlink{classXrlIO_aa8ff6c73a8469c35a97893a2354ad970}{is\_\-vif\_\-loopback} (const string \&interface, const string \&vif)}
\label{classXrlIO_aa8ff6c73a8469c35a97893a2354ad970}

\begin{DoxyCompactList}\small\item\em Return true if \hyperlink{protocolthe-p}{the} given vif is a loopback vif. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_ae8258320dfc692f07a2b43b45a89735d}{is\_\-address\_\-enabled} (const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address) const 
\begin{DoxyCompactList}\small\item\em Test whether an interface/vif/address is enabled. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a3cca6bd36e547866fff3c4e9eaa55b5f}{get\_\-addresses} (const string \&interface, const string \&vif, list$<$ \hyperlink{classIPv4}{IPv4} $>$ \&addresses) const 
\begin{DoxyCompactList}\small\item\em Get all addresses associated with this interface/vif. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a9ef2e38f511117ea3d844336cafb765f}{get\_\-broadcast\_\-address} (const string \&interface, const string \&vif, \hyperlink{classIPv4}{IPv4} \&address) const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} broadcast address associated with this vif. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_af70b5f66dd0b85fcc3ecbc0613190c51}{get\_\-broadcast\_\-address} (const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, \hyperlink{classIPv4}{IPv4} \&bcast\_\-address) const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} broadcast address associated with this \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_ad2967c459860a7ead887b4b7734db18e}{get\_\-interface\_\-id} (const string \&interface, uint32\_\-t \&interface\_\-id)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} interface ID. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classXrlIO_a6ed00ab8855edea3bb21e68000c96b4a}{get\_\-prefix\_\-length} (const string \&interface, const string \&vif, \hyperlink{classIPv4}{IPv4} address)
\begin{DoxyCompactList}\small\item\em Obtain \hyperlink{protocolthe-p}{the} subnet prefix length for an interface/vif/address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classXrlIO_a330db8bbe4c8e7a11ffbe1089161ec9d}{get\_\-mtu} (const string \&interface)
\begin{DoxyCompactList}\small\item\em Obtain \hyperlink{protocolthe-p}{the} MTU for an interface. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_af0d27f1036f9eaa0df6320c2fe75dc5a}{
void \hyperlink{classXrlIO_af0d27f1036f9eaa0df6320c2fe75dc5a}{register\_\-rib} ()}
\label{classXrlIO_af0d27f1036f9eaa0df6320c2fe75dc5a}

\begin{DoxyCompactList}\small\item\em Register with \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_ad0e282ccaf4ecb89dd15bf08d797064f}{
void \hyperlink{classXrlIO_ad0e282ccaf4ecb89dd15bf08d797064f}{unregister\_\-rib} ()}
\label{classXrlIO_ad0e282ccaf4ecb89dd15bf08d797064f}

\begin{DoxyCompactList}\small\item\em Remove registration from \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIO_a122479d05f7f7d4512e26d2d70fd1b51}{rib\_\-command\_\-done} (const \hyperlink{classXrlError}{XrlError} \&error, bool up, const char $\ast$comment)
\begin{DoxyCompactList}\small\item\em Callback method to: signal that an XRL command which has been sent to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} has returned. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a97e67280b9409faee7ee95972e2dd205}{add\_\-route} (\hyperlink{classIPNet}{IPv4Net} net, \hyperlink{classIPv4}{IPv4} nexthop, uint32\_\-t nexthop\_\-id, uint32\_\-t metric, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)
\begin{DoxyCompactList}\small\item\em Add route to \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a63b0100048d62f3a0a3c5cc95253c60a}{replace\_\-route} (\hyperlink{classIPNet}{IPv4Net} net, \hyperlink{classIPv4}{IPv4} nexthop, uint32\_\-t nexthop\_\-id, uint32\_\-t metric, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)
\begin{DoxyCompactList}\small\item\em Replace route in \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a5aacc0d58388c8a23e9e812b4ad7005b}{delete\_\-route} (\hyperlink{classIPNet}{IPv4Net} net)
\begin{DoxyCompactList}\small\item\em Delete route from \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a935a87c117b4b5920ee4a375f3f99bb5}{
{\bfseries XrlIO} (\hyperlink{classEventLoop}{EventLoop} \&eventloop, \hyperlink{classXrlRouter}{XrlRouter} \&xrl\_\-router, const string \&feaname, const string \&ribname)}
\label{classXrlIO_a935a87c117b4b5920ee4a375f3f99bb5}

\item 
int \hyperlink{classXrlIO_a65eb1ca7813cfc58630d0a1720804bf1}{startup} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classStartup}{Startup} operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classXrlIO_a3f7a0862d56dbab3dc5406cb7ee1fe10}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} operation. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_ae205f1a6e518f82d7e496487f049c7f3}{
void \hyperlink{classXrlIO_ae205f1a6e518f82d7e496487f049c7f3}{component\_\-up} (string)}
\label{classXrlIO_ae205f1a6e518f82d7e496487f049c7f3}

\begin{DoxyCompactList}\small\item\em Called when internal subsystem comes up. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_aea23aa07d4f53e90503e9d6e63d756a2}{
void \hyperlink{classXrlIO_aea23aa07d4f53e90503e9d6e63d756a2}{component\_\-down} (string)}
\label{classXrlIO_aea23aa07d4f53e90503e9d6e63d756a2}

\begin{DoxyCompactList}\small\item\em Called when internal subsystem goes down. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a915d0588cba38597e741f134c5d075a4}{
void \hyperlink{classXrlIO_a915d0588cba38597e741f134c5d075a4}{recv} (const string \&interface, const string \&vif, A src, A dst, 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)}
\label{classXrlIO_a915d0588cba38597e741f134c5d075a4}

\begin{DoxyCompactList}\small\item\em Receiver Raw frames. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a2a3331b60c01c814711c0f4e3697030e}{
bool \hyperlink{classXrlIO_a2a3331b60c01c814711c0f4e3697030e}{send} (const string \&interface, const string \&vif, A dst, A src, int ttl, uint8\_\-t $\ast$data, uint32\_\-t len)}
\label{classXrlIO_a2a3331b60c01c814711c0f4e3697030e}

\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} Raw frames. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a586f84a33f9943413dc7fbef07803a9b}{
bool \hyperlink{classXrlIO_a586f84a33f9943413dc7fbef07803a9b}{enable\_\-interface\_\-vif} (const string \&interface, const string \&vif)}
\label{classXrlIO_a586f84a33f9943413dc7fbef07803a9b}

\begin{DoxyCompactList}\small\item\em Enable \hyperlink{protocolthe-p}{the} interface/vif to receive frames. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_af0e18e9984f9b0518bac6785101cd798}{
bool \hyperlink{classXrlIO_af0e18e9984f9b0518bac6785101cd798}{disable\_\-interface\_\-vif} (const string \&interface, const string \&vif)}
\label{classXrlIO_af0e18e9984f9b0518bac6785101cd798}

\begin{DoxyCompactList}\small\item\em Disable this interface/vif from receiving frames. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_a50a486ce00b64726620f4ea5676760e8}{is\_\-interface\_\-enabled} (const string \&interface) const 
\begin{DoxyCompactList}\small\item\em Test whether an interface is enabled. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_ab3bfe3aabc8711d58836b6b861fa4a37}{is\_\-vif\_\-enabled} (const string \&interface, const string \&vif) const 
\begin{DoxyCompactList}\small\item\em Test whether an interface/vif is enabled. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_ad5816c61b483488b7d082fba1cdd1300}{is\_\-address\_\-enabled} (const string \&interface, const string \&vif, const A \&address) const 
\begin{DoxyCompactList}\small\item\em Test whether an interface/vif/address is enabled. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_ab9bac51776b6ff26ede67628b6f57ec9}{get\_\-addresses} (const string \&interface, const string \&vif, list$<$ A $>$ \&addresses) const 
\begin{DoxyCompactList}\small\item\em Get all addresses associated with this interface/vif. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_aaaf90558e5d71a1556184f0396fc37a2}{get\_\-link\_\-local\_\-address} (const string \&interface, const string \&vif, A \&address)
\begin{DoxyCompactList}\small\item\em Get a link local address for this interface/vif if available. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_ad2967c459860a7ead887b4b7734db18e}{get\_\-interface\_\-id} (const string \&interface, uint32\_\-t \&interface\_\-id)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} interface ID. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classXrlIO_aa3f0362c1b8d952cf0e38ac3db4165c6}{get\_\-prefix\_\-length} (const string \&interface, const string \&vif, A address)
\begin{DoxyCompactList}\small\item\em Obtain \hyperlink{protocolthe-p}{the} subnet prefix length for an interface/vif/address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classXrlIO_a330db8bbe4c8e7a11ffbe1089161ec9d}{get\_\-mtu} (const string \&interface)
\begin{DoxyCompactList}\small\item\em Obtain \hyperlink{protocolthe-p}{the} MTU for an interface. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a35167d9e302fa85277a4bacd9c28732c}{
bool \hyperlink{classXrlIO_a35167d9e302fa85277a4bacd9c28732c}{join\_\-multicast\_\-group} (const string \&interface, const string \&vif, A mcast)}
\label{classXrlIO_a35167d9e302fa85277a4bacd9c28732c}

\begin{DoxyCompactList}\small\item\em On \hyperlink{protocolthe-p}{the} interface/vif join this multicast group. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a8d31f0bcb9bb05a957fc8881925ea10f}{
bool \hyperlink{classXrlIO_a8d31f0bcb9bb05a957fc8881925ea10f}{leave\_\-multicast\_\-group} (const string \&interface, const string \&vif, A mcast)}
\label{classXrlIO_a8d31f0bcb9bb05a957fc8881925ea10f}

\begin{DoxyCompactList}\small\item\em On \hyperlink{protocolthe-p}{the} interface/vif leave this multicast group. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_af0d27f1036f9eaa0df6320c2fe75dc5a}{
void \hyperlink{classXrlIO_af0d27f1036f9eaa0df6320c2fe75dc5a}{register\_\-rib} ()}
\label{classXrlIO_af0d27f1036f9eaa0df6320c2fe75dc5a}

\begin{DoxyCompactList}\small\item\em Register with \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_ad0e282ccaf4ecb89dd15bf08d797064f}{
void \hyperlink{classXrlIO_ad0e282ccaf4ecb89dd15bf08d797064f}{unregister\_\-rib} ()}
\label{classXrlIO_ad0e282ccaf4ecb89dd15bf08d797064f}

\begin{DoxyCompactList}\small\item\em Remove registration from \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a122479d05f7f7d4512e26d2d70fd1b51}{
void {\bfseries rib\_\-command\_\-done} (const \hyperlink{classXrlError}{XrlError} \&error, bool up, const char $\ast$comment)}
\label{classXrlIO_a122479d05f7f7d4512e26d2d70fd1b51}

\item 
bool \hyperlink{classXrlIO_a04183fe2f2b55865a4136301ae04be86}{add\_\-route} (\hyperlink{classIPNet}{IPNet}$<$ A $>$ net, A nexthop, uint32\_\-t nexthop\_\-id, uint32\_\-t metric, bool equal, bool discard, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)
\begin{DoxyCompactList}\small\item\em Add route to \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlIO_aba17f6754380bcf2b7702132d2dc75e6}{replace\_\-route} (\hyperlink{classIPNet}{IPNet}$<$ A $>$ net, A nexthop, uint32\_\-t nexthop\_\-id, uint32\_\-t metric, bool equal, bool discard, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)
\begin{DoxyCompactList}\small\item\em Replace route in \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a016189050192c0447b7f4e22699c8e3a}{
bool \hyperlink{classXrlIO_a016189050192c0447b7f4e22699c8e3a}{delete\_\-route} (\hyperlink{classIPNet}{IPNet}$<$ A $>$ net)}
\label{classXrlIO_a016189050192c0447b7f4e22699c8e3a}

\begin{DoxyCompactList}\small\item\em Delete route from \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classXrlIO_a4fa4df2d205ce505788a26e21df7c0e0}{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 
const \hyperlink{classServiceBase}{ServiceBase} $\ast$ \hyperlink{classXrlIO_a34713a7543e01fae2ff6eeb7553b3195}{ifmgr\_\-mirror\_\-service\_\-base} () const 
\item 
const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \& \hyperlink{classXrlIO_acd59fc2a97711127be95acbd8037e1aa}{ifmgr\_\-iftree} () const 
\item 
\hypertarget{classXrlIO_a8383fde8f4a0310c384217477e641d82}{
void \hyperlink{classXrlIO_a8383fde8f4a0310c384217477e641d82}{tree\_\-complete} ()}
\label{classXrlIO_a8383fde8f4a0310c384217477e641d82}

\begin{DoxyCompactList}\small\item\em An \hyperlink{classIfMgrHintObserver}{IfMgrHintObserver} method invoked when \hyperlink{protocolthe-p}{the} initial interface tree information has been received. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a087efc3cad5d7a5d851f913d907fa984}{
void \hyperlink{classXrlIO_a087efc3cad5d7a5d851f913d907fa984}{updates\_\-made} ()}
\label{classXrlIO_a087efc3cad5d7a5d851f913d907fa984}

\begin{DoxyCompactList}\small\item\em An \hyperlink{classIfMgrHintObserver}{IfMgrHintObserver} method invoked whenever \hyperlink{protocolthe-p}{the} interface tree information has been changed. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIO_a8e722e01bfd3770c2b632e19dfa61579}{send\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error)
\begin{DoxyCompactList}\small\item\em Callback method to: signal that \hyperlink{protocolthe-p}{the} XRL command to send a UDP datagram has returned. \item\end{DoxyCompactList}\item 
\hyperlink{classXrlPort}{XrlPort} $\ast$ \hyperlink{classXrlIO_ac05c6e96b3a3c2fc4f6f8d85b32d4a85}{find\_\-port} (const string \&ifname, const string \&vifname, const \hyperlink{classIPv4}{IPv4} \&addr)
\begin{DoxyCompactList}\small\item\em Find OLSR port associated with interface, vif, address tuple. \item\end{DoxyCompactList}\item 
const \hyperlink{classXrlPort}{XrlPort} $\ast$ \hyperlink{classXrlIO_ac72274b28f4d4d8e6857febeb6196bbf}{find\_\-port} (const string \&ifname, const string \&vifname, const \hyperlink{classIPv4}{IPv4} \&addr) const 
\begin{DoxyCompactList}\small\item\em Find OLSR port associated with interface, vif, address tuple. \item\end{DoxyCompactList}\item 
XrlPortList \& \hyperlink{classXrlIO_acc1a272bbd2e20a31247140e1238af17}{ports} ()
\item 
const XrlPortList \& \hyperlink{classXrlIO_a4e528487cad91af0c99dc54ea3aab774}{ports} () const 
\item 
\hypertarget{classXrlIO_a039de363b38462c94f3ec8b840d355ca}{
void \hyperlink{classXrlIO_a039de363b38462c94f3ec8b840d355ca}{try\_\-start\_\-next\_\-port} ()}
\label{classXrlIO_a039de363b38462c94f3ec8b840d355ca}

\begin{DoxyCompactList}\small\item\em Gradually start each \hyperlink{classXrlPort}{XrlPort} to avoid races with \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\item 
void \hyperlink{classXrlIO_a4fa4df2d205ce505788a26e21df7c0e0}{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 
const \hyperlink{classServiceBase}{ServiceBase} $\ast$ \hyperlink{classXrlIO_a34713a7543e01fae2ff6eeb7553b3195}{ifmgr\_\-mirror\_\-service\_\-base} () const 
\begin{DoxyCompactList}\small\item\em Obtain a pointer to \hyperlink{protocolthe-p}{the} interface manager service base. \item\end{DoxyCompactList}\item 
const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \& \hyperlink{classXrlIO_acd59fc2a97711127be95acbd8037e1aa}{ifmgr\_\-iftree} () const 
\begin{DoxyCompactList}\small\item\em Obtain a reference to \hyperlink{protocolthe-p}{the} interface manager's interface tree. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a8383fde8f4a0310c384217477e641d82}{
void \hyperlink{classXrlIO_a8383fde8f4a0310c384217477e641d82}{tree\_\-complete} ()}
\label{classXrlIO_a8383fde8f4a0310c384217477e641d82}

\begin{DoxyCompactList}\small\item\em An \hyperlink{classIfMgrHintObserver}{IfMgrHintObserver} method invoked when \hyperlink{protocolthe-p}{the} initial interface tree information has been received. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a087efc3cad5d7a5d851f913d907fa984}{
void \hyperlink{classXrlIO_a087efc3cad5d7a5d851f913d907fa984}{updates\_\-made} ()}
\label{classXrlIO_a087efc3cad5d7a5d851f913d907fa984}

\begin{DoxyCompactList}\small\item\em An \hyperlink{classIfMgrHintObserver}{IfMgrHintObserver} method invoked whenever \hyperlink{protocolthe-p}{the} interface tree information has been changed. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a617212bb2547299b9cfc6c5aca2fd016}{
void {\bfseries send\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, string interface, string vif)}
\label{classXrlIO_a617212bb2547299b9cfc6c5aca2fd016}

\item 
\hypertarget{classXrlIO_a8a6f8038d50d3d3cb79437c003256a26}{
void {\bfseries enable\_\-interface\_\-vif\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, string interface, string vif)}
\label{classXrlIO_a8a6f8038d50d3d3cb79437c003256a26}

\item 
\hypertarget{classXrlIO_a14f210f3b158353e90dd6a924696de2c}{
void {\bfseries disable\_\-interface\_\-vif\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, string interface, string vif)}
\label{classXrlIO_a14f210f3b158353e90dd6a924696de2c}

\item 
\hypertarget{classXrlIO_a2d14b680895b6a8ff065550d4c0378d6}{
void {\bfseries join\_\-multicast\_\-group\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, string interface, string vif)}
\label{classXrlIO_a2d14b680895b6a8ff065550d4c0378d6}

\item 
\hypertarget{classXrlIO_acea3edb148fc20c4d3a98ad1562c7287}{
void {\bfseries leave\_\-multicast\_\-group\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error, string interface, string vif)}
\label{classXrlIO_acea3edb148fc20c4d3a98ad1562c7287}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlIO_ad353dc2284e174d8a9f6a74c46ec14c8}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classXrlIO_ad353dc2284e174d8a9f6a74c46ec14c8}

\item 
\hypertarget{classXrlIO_a96f7987296136bdfde8e740941522a4a}{
\hyperlink{classXrlRouter}{XrlRouter} \& {\bfseries \_\-xrl\_\-router}}
\label{classXrlIO_a96f7987296136bdfde8e740941522a4a}

\item 
\hypertarget{classXrlIO_a1041a13a3aab00f9f7bdeaee1ba809ab}{
string {\bfseries \_\-feaname}}
\label{classXrlIO_a1041a13a3aab00f9f7bdeaee1ba809ab}

\item 
\hypertarget{classXrlIO_a7aab4031e27db3fe318b0ce632d51306}{
string {\bfseries \_\-ribname}}
\label{classXrlIO_a7aab4031e27db3fe318b0ce632d51306}

\item 
\hypertarget{classXrlIO_a5b578e1fb4b239e35ce66fc8f88ac91a}{
uint32\_\-t {\bfseries \_\-component\_\-count}}
\label{classXrlIO_a5b578e1fb4b239e35ce66fc8f88ac91a}

\item 
\hypertarget{classXrlIO_a853a1fdd51aae3b3d18a7a328c433dee}{
\hyperlink{classIfMgrXrlMirror}{IfMgrXrlMirror} \hyperlink{classXrlIO_a853a1fdd51aae3b3d18a7a328c433dee}{\_\-ifmgr}}
\label{classXrlIO_a853a1fdd51aae3b3d18a7a328c433dee}

\begin{DoxyCompactList}\small\item\em libfeaclient wrapper. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_ac3e2e563c78f1903ef8ec134f58eb821}{
\hyperlink{classIfMgrIfTree}{IfMgrIfTree} \hyperlink{classXrlIO_ac3e2e563c78f1903ef8ec134f58eb821}{\_\-iftree}}
\label{classXrlIO_ac3e2e563c78f1903ef8ec134f58eb821}

\begin{DoxyCompactList}\small\item\em local copy of interface state obtained from libfeaclient. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_adbc1b6e35c0c0bbd79c4130d9554c9d7}{
\hyperlink{classXrlQueue}{XrlQueue} \hyperlink{classXrlIO_adbc1b6e35c0c0bbd79c4130d9554c9d7}{\_\-rib\_\-queue}}
\label{classXrlIO_adbc1b6e35c0c0bbd79c4130d9554c9d7}

\begin{DoxyCompactList}\small\item\em Queue of \hyperlink{classRIB}{RIB} add/delete XRL commands. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a08104415d8e4b77c9693489202bbdbcf}{
XrlPortList \hyperlink{classXrlIO_a08104415d8e4b77c9693489202bbdbcf}{\_\-ports}}
\label{classXrlIO_a08104415d8e4b77c9693489202bbdbcf}

\begin{DoxyCompactList}\small\item\em List of active XrlPorts. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_ab81ec60b6fac53d9b4d0416e6d85d1ef}{
XrlDeadPortMap \hyperlink{classXrlIO_ab81ec60b6fac53d9b4d0416e6d85d1ef}{\_\-dead\_\-ports}}
\label{classXrlIO_ab81ec60b6fac53d9b4d0416e6d85d1ef}

\begin{DoxyCompactList}\small\item\em XrlPorts awaiting I/O shutdown. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlIO_a27f93b7ef935b1f7f468037cdadc4f7b}{
\hyperlink{classXrlQueue}{XrlQueue}$<$ A $>$ {\bfseries \_\-rib\_\-queue}}
\label{classXrlIO_a27f93b7ef935b1f7f468037cdadc4f7b}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename A$>$ class XrlIO$<$ A $>$}

Concrete implementation of \hyperlink{classIO}{IO} using XRLs. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classXrlIO_a935a87c117b4b5920ee4a375f3f99bb5}{
\index{XrlIO@{XrlIO}!XrlIO@{XrlIO}}
\index{XrlIO@{XrlIO}!XrlIO@{XrlIO}}
\subsubsection[{XrlIO}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ {\bf XrlIO}$<$ A $>$::{\bf XrlIO} (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop, }
\item[{{\bf XrlRouter} \&}]{xrl\_\-router, }
\item[{const string \&}]{feaname, }
\item[{const string \&}]{ribname}
\end{DoxyParamCaption}
)}}
\label{classXrlIO_a935a87c117b4b5920ee4a375f3f99bb5}


Construct an \hyperlink{classXrlIO}{XrlIO} instance. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & \hyperlink{protocolthe-p}{the} event loop for \hyperlink{protocolthe-p}{the} OLSR process. \\
\hline
{\em xrl\_\-router} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} XRL router instance. \\
\hline
{\em feaname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} FEA XRL target. \\
\hline
{\em ribname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} XRL target. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classXrlIO_a97e67280b9409faee7ee95972e2dd205}{
\index{XrlIO@{XrlIO}!add\_\-route@{add\_\-route}}
\index{add\_\-route@{add\_\-route}!XrlIO@{XrlIO}}
\subsubsection[{add\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::add\_\-route (
\begin{DoxyParamCaption}
\item[{{\bf IPv4Net}}]{net, }
\item[{{\bf IPv4}}]{nexthop, }
\item[{uint32\_\-t}]{nexthop\_\-id, }
\item[{uint32\_\-t}]{metric, }
\item[{const {\bf PolicyTags} \&}]{policytags}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a97e67280b9409faee7ee95972e2dd205}


Add route to \hyperlink{classRIB}{RIB}. 


\begin{DoxyParams}{Parameters}
{\em net} & network \\
\hline
{\em nexthop} & \\
\hline
{\em nexthop\_\-id} & interface ID towards \hyperlink{protocolthe-p}{the} nexthop \\
\hline
{\em metric} & to network \\
\hline
{\em policytags} & policy info to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} route add was queued successfully, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a4902791813ea6d060fab15bc0282bc44}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a04183fe2f2b55865a4136301ae04be86}{
\index{XrlIO@{XrlIO}!add\_\-route@{add\_\-route}}
\index{add\_\-route@{add\_\-route}!XrlIO@{XrlIO}}
\subsubsection[{add\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::add\_\-route (
\begin{DoxyParamCaption}
\item[{{\bf IPNet}$<$ A $>$}]{net, }
\item[{A}]{nexthop, }
\item[{uint32\_\-t}]{nexthop\_\-id, }
\item[{uint32\_\-t}]{metric, }
\item[{bool}]{equal, }
\item[{bool}]{discard, }
\item[{const {\bf PolicyTags} \&}]{policytags}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a04183fe2f2b55865a4136301ae04be86}


Add route to \hyperlink{classRIB}{RIB}. 


\begin{DoxyParams}{Parameters}
{\em net} & network \\
\hline
{\em nexthop} & \\
\hline
{\em nexthop\_\-id} & interface ID towards \hyperlink{protocolthe-p}{the} nexthop \\
\hline
{\em metric} & to network \\
\hline
{\em equal} & true if this in another route to \hyperlink{protocolthe-p}{the} same destination. \\
\hline
{\em discard} & true if this is a discard route. \\
\hline
{\em policytags} & policy info to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classIO_a45dd379bd802b800e21546023839a108}{IO$<$ A $>$}.

\hypertarget{classXrlIO_aadcee9e056c9d15c974ae516426e3e43}{
\index{XrlIO@{XrlIO}!component\_\-down@{component\_\-down}}
\index{component\_\-down@{component\_\-down}!XrlIO@{XrlIO}}
\subsubsection[{component\_\-down}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ void {\bf XrlIO}$<$ A $>$::component\_\-down (
\begin{DoxyParamCaption}
\item[{string}]{name}
\end{DoxyParamCaption}
)}}
\label{classXrlIO_aadcee9e056c9d15c974ae516426e3e43}


Called when internal subsystem goes down. 


\begin{DoxyParams}{Parameters}
{\em name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} affected subsystem \\
\hline
\end{DoxyParams}
\hypertarget{classXrlIO_a90b631fdc84f43f447ba00090267b0a4}{
\index{XrlIO@{XrlIO}!component\_\-up@{component\_\-up}}
\index{component\_\-up@{component\_\-up}!XrlIO@{XrlIO}}
\subsubsection[{component\_\-up}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ void {\bf XrlIO}$<$ A $>$::component\_\-up (
\begin{DoxyParamCaption}
\item[{string}]{name}
\end{DoxyParamCaption}
)}}
\label{classXrlIO_a90b631fdc84f43f447ba00090267b0a4}


Called when internal subsystem comes up. 


\begin{DoxyParams}{Parameters}
{\em name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} affected subsystem \\
\hline
\end{DoxyParams}
\hypertarget{classXrlIO_a5aacc0d58388c8a23e9e812b4ad7005b}{
\index{XrlIO@{XrlIO}!delete\_\-route@{delete\_\-route}}
\index{delete\_\-route@{delete\_\-route}!XrlIO@{XrlIO}}
\subsubsection[{delete\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::delete\_\-route (
\begin{DoxyParamCaption}
\item[{{\bf IPv4Net}}]{net}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a5aacc0d58388c8a23e9e812b4ad7005b}


Delete route from \hyperlink{classRIB}{RIB}. 


\begin{DoxyParams}{Parameters}
{\em net} & \hyperlink{protocolthe-p}{the} destination to delete route for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} route delete was queued successfully, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a71dc7575dd53eae98ec72f0896e9e461}{IO$<$ A $>$}.

\hypertarget{classXrlIO_aac061324bd2c93931dd4be40249755bd}{
\index{XrlIO@{XrlIO}!disable\_\-address@{disable\_\-address}}
\index{disable\_\-address@{disable\_\-address}!XrlIO@{XrlIO}}
\subsubsection[{disable\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::disable\_\-address (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const {\bf IPv4} \&}]{address, }
\item[{const uint16\_\-t \&}]{port}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_aac061324bd2c93931dd4be40249755bd}


Disable an \hyperlink{classIPv4}{IPv4} address and port for OLSR datagram reception. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} interface to disable. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} vif to disable. \\
\hline
{\em address} & \hyperlink{protocolthe-p}{the} address to disable. \\
\hline
{\em port} & \hyperlink{protocolthe-p}{the} port to disable. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address was disabled, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_ad5158f1f1ce060b101b240a76271237f}{IO$<$ A $>$}.

\hypertarget{classXrlIO_af0e18e9984f9b0518bac6785101cd798}{
\index{XrlIO@{XrlIO}!disable\_\-interface\_\-vif@{disable\_\-interface\_\-vif}}
\index{disable\_\-interface\_\-vif@{disable\_\-interface\_\-vif}!XrlIO@{XrlIO}}
\subsubsection[{disable\_\-interface\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::disable\_\-interface\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_af0e18e9984f9b0518bac6785101cd798}


Disable this interface/vif from receiving frames. 

XXX


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to disable. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to disable. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface/vif was disabled successfully, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_ae52c70be1e0373d9924d266a05b8cdaf}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a27d9410fbdc8be9fa79de8bb66135bdd}{
\index{XrlIO@{XrlIO}!enable\_\-address@{enable\_\-address}}
\index{enable\_\-address@{enable\_\-address}!XrlIO@{XrlIO}}
\subsubsection[{enable\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::enable\_\-address (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const {\bf IPv4} \&}]{address, }
\item[{const uint16\_\-t \&}]{port, }
\item[{const {\bf IPv4} \&}]{all\_\-nodes\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a27d9410fbdc8be9fa79de8bb66135bdd}


Enable an \hyperlink{classIPv4}{IPv4} address and port for OLSR datagram reception and transmission. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} interface to enable. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} vif to enable. \\
\hline
{\em address} & \hyperlink{protocolthe-p}{the} address to enable. \\
\hline
{\em port} & \hyperlink{protocolthe-p}{the} port to enable. \\
\hline
{\em all\_\-nodes\_\-address} & \hyperlink{protocolthe-p}{the} address to transmit to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address was enabled, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a5e0cbf1cdbb41cb9cf31169516537cec}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a586f84a33f9943413dc7fbef07803a9b}{
\index{XrlIO@{XrlIO}!enable\_\-interface\_\-vif@{enable\_\-interface\_\-vif}}
\index{enable\_\-interface\_\-vif@{enable\_\-interface\_\-vif}!XrlIO@{XrlIO}}
\subsubsection[{enable\_\-interface\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::enable\_\-interface\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a586f84a33f9943413dc7fbef07803a9b}


Enable \hyperlink{protocolthe-p}{the} interface/vif to receive frames. 

XXX


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to enable. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to enable. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface/vif was enabled successfully, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a4d3fe99464dffadef77bc6732df41f9d}{IO$<$ A $>$}.

\hypertarget{classXrlIO_ac05c6e96b3a3c2fc4f6f8d85b32d4a85}{
\index{XrlIO@{XrlIO}!find\_\-port@{find\_\-port}}
\index{find\_\-port@{find\_\-port}!XrlIO@{XrlIO}}
\subsubsection[{find\_\-port}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ {\bf XrlPort} $\ast$ {\bf XrlIO}$<$ A $>$::find\_\-port (
\begin{DoxyParamCaption}
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlIO_ac05c6e96b3a3c2fc4f6f8d85b32d4a85}


Find OLSR port associated with interface, vif, address tuple. 

\begin{DoxyReturn}{Returns}
pointer to port on success, 0 if port could not be found. 
\end{DoxyReturn}
\hypertarget{classXrlIO_ac72274b28f4d4d8e6857febeb6196bbf}{
\index{XrlIO@{XrlIO}!find\_\-port@{find\_\-port}}
\index{find\_\-port@{find\_\-port}!XrlIO@{XrlIO}}
\subsubsection[{find\_\-port}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ const {\bf XrlPort} $\ast$ {\bf XrlIO}$<$ A $>$::find\_\-port (
\begin{DoxyParamCaption}
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlIO_ac72274b28f4d4d8e6857febeb6196bbf}


Find OLSR port associated with interface, vif, address tuple. 

\begin{DoxyReturn}{Returns}
pointer to port on success, 0 if port could not be found. 
\end{DoxyReturn}
\hypertarget{classXrlIO_ab9bac51776b6ff26ede67628b6f57ec9}{
\index{XrlIO@{XrlIO}!get\_\-addresses@{get\_\-addresses}}
\index{get\_\-addresses@{get\_\-addresses}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-addresses}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::get\_\-addresses (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{list$<$ A $>$ \&}]{addresses}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_ab9bac51776b6ff26ede67628b6f57ec9}


Get all addresses associated with this interface/vif. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif \\
\hline
{\em addresses} & (out argument) list of associated addresses\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if there are no errors. 
\end{DoxyReturn}


Implements \hyperlink{classIO_af2374460136dc37e06c5a98124a0947d}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a3cca6bd36e547866fff3c4e9eaa55b5f}{
\index{XrlIO@{XrlIO}!get\_\-addresses@{get\_\-addresses}}
\index{get\_\-addresses@{get\_\-addresses}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-addresses}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::get\_\-addresses (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{list$<$ {\bf IPv4} $>$ \&}]{addresses}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a3cca6bd36e547866fff3c4e9eaa55b5f}


Get all addresses associated with this interface/vif. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif \\
\hline
{\em addresses} & (out argument) list of associated addresses\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if there are no errors. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a515d1691a7626a42cb84a522b4bc7bf9}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a9ef2e38f511117ea3d844336cafb765f}{
\index{XrlIO@{XrlIO}!get\_\-broadcast\_\-address@{get\_\-broadcast\_\-address}}
\index{get\_\-broadcast\_\-address@{get\_\-broadcast\_\-address}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-broadcast\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::get\_\-broadcast\_\-address (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{{\bf IPv4} \&}]{address}
\end{DoxyParamCaption}
) const}}
\label{classXrlIO_a9ef2e38f511117ea3d844336cafb765f}


Get \hyperlink{protocolthe-p}{the} broadcast address associated with this vif. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif \\
\hline
{\em address} & (out argument) \char`\"{}all nodes\char`\"{} address\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if there are no errors. 
\end{DoxyReturn}
\hypertarget{classXrlIO_af70b5f66dd0b85fcc3ecbc0613190c51}{
\index{XrlIO@{XrlIO}!get\_\-broadcast\_\-address@{get\_\-broadcast\_\-address}}
\index{get\_\-broadcast\_\-address@{get\_\-broadcast\_\-address}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-broadcast\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::get\_\-broadcast\_\-address (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const {\bf IPv4} \&}]{address, }
\item[{{\bf IPv4} \&}]{bcast\_\-address}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_af70b5f66dd0b85fcc3ecbc0613190c51}


Get \hyperlink{protocolthe-p}{the} broadcast address associated with this \hyperlink{classIPv4}{IPv4} address. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif \\
\hline
{\em address} & \hyperlink{classIPv4}{IPv4} binding address \\
\hline
{\em bcast\_\-address} & (out argument) primary broadcast address \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if there are no errors. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a25bcf4c17b9af8397941ad7bb5246522}{IO$<$ A $>$}.

\hypertarget{classXrlIO_ad2967c459860a7ead887b4b7734db18e}{
\index{XrlIO@{XrlIO}!get\_\-interface\_\-id@{get\_\-interface\_\-id}}
\index{get\_\-interface\_\-id@{get\_\-interface\_\-id}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-interface\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf XrlIO}$<$ A $>$::get\_\-interface\_\-id (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{uint32\_\-t \&}]{interface\_\-id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_ad2967c459860a7ead887b4b7734db18e}


Get \hyperlink{protocolthe-p}{the} interface ID. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface. \\
\hline
{\em interface\_\-id} & \hyperlink{protocolthe-p}{the} value if found.. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface ID has been found.. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a2607d5352321e1761f66f4e7c53e5f5e}{IO$<$ A $>$}.

\hypertarget{classXrlIO_ad2967c459860a7ead887b4b7734db18e}{
\index{XrlIO@{XrlIO}!get\_\-interface\_\-id@{get\_\-interface\_\-id}}
\index{get\_\-interface\_\-id@{get\_\-interface\_\-id}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-interface\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::get\_\-interface\_\-id (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{uint32\_\-t \&}]{interface\_\-id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_ad2967c459860a7ead887b4b7734db18e}


Get \hyperlink{protocolthe-p}{the} interface ID. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface. \\
\hline
{\em interface\_\-id} & \hyperlink{protocolthe-p}{the} value if found.. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} interface ID has been found.. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a2607d5352321e1761f66f4e7c53e5f5e}{IO$<$ A $>$}.

\hypertarget{classXrlIO_aaaf90558e5d71a1556184f0396fc37a2}{
\index{XrlIO@{XrlIO}!get\_\-link\_\-local\_\-address@{get\_\-link\_\-local\_\-address}}
\index{get\_\-link\_\-local\_\-address@{get\_\-link\_\-local\_\-address}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-link\_\-local\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::get\_\-link\_\-local\_\-address (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{A \&}]{address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_aaaf90558e5d71a1556184f0396fc37a2}


Get a link local address for this interface/vif if available. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif \\
\hline
{\em address} & (out argument) set if address is found.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if a link local address is available. 
\end{DoxyReturn}


Implements \hyperlink{classIO_aabd6f3bb79dc0cfb676ab2b495e5b88d}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a330db8bbe4c8e7a11ffbe1089161ec9d}{
\index{XrlIO@{XrlIO}!get\_\-mtu@{get\_\-mtu}}
\index{get\_\-mtu@{get\_\-mtu}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-mtu}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ uint32\_\-t {\bf XrlIO}$<$ A $>$::get\_\-mtu (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a330db8bbe4c8e7a11ffbe1089161ec9d}


Obtain \hyperlink{protocolthe-p}{the} MTU for an interface. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} mtu for \hyperlink{protocolthe-p}{the} interface. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a45d9e2e55284c6151a9ada76e97ff180}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a330db8bbe4c8e7a11ffbe1089161ec9d}{
\index{XrlIO@{XrlIO}!get\_\-mtu@{get\_\-mtu}}
\index{get\_\-mtu@{get\_\-mtu}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-mtu}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ uint32\_\-t {\bf XrlIO}$<$ A $>$::get\_\-mtu (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a330db8bbe4c8e7a11ffbe1089161ec9d}


Obtain \hyperlink{protocolthe-p}{the} MTU for an interface. 


\begin{DoxyParams}{Parameters}
{\em \hyperlink{protocolthe-p}{the}} & name of \hyperlink{protocolthe-p}{the} interface. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} mtu for \hyperlink{protocolthe-p}{the} interface. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a45d9e2e55284c6151a9ada76e97ff180}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a6ed00ab8855edea3bb21e68000c96b4a}{
\index{XrlIO@{XrlIO}!get\_\-prefix\_\-length@{get\_\-prefix\_\-length}}
\index{get\_\-prefix\_\-length@{get\_\-prefix\_\-length}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-prefix\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ uint32\_\-t {\bf XrlIO}$<$ A $>$::get\_\-prefix\_\-length (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{{\bf IPv4}}]{address}
\end{DoxyParamCaption}
)}}
\label{classXrlIO_a6ed00ab8855edea3bb21e68000c96b4a}


Obtain \hyperlink{protocolthe-p}{the} subnet prefix length for an interface/vif/address. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em address} & \hyperlink{protocolthe-p}{the} address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} subnet prefix length for \hyperlink{protocolthe-p}{the} address. 
\end{DoxyReturn}
\hypertarget{classXrlIO_aa3f0362c1b8d952cf0e38ac3db4165c6}{
\index{XrlIO@{XrlIO}!get\_\-prefix\_\-length@{get\_\-prefix\_\-length}}
\index{get\_\-prefix\_\-length@{get\_\-prefix\_\-length}!XrlIO@{XrlIO}}
\subsubsection[{get\_\-prefix\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ uint32\_\-t {\bf XrlIO}$<$ A $>$::get\_\-prefix\_\-length (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{A}]{address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_aa3f0362c1b8d952cf0e38ac3db4165c6}


Obtain \hyperlink{protocolthe-p}{the} subnet prefix length for an interface/vif/address. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em address} & \hyperlink{protocolthe-p}{the} address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} subnet prefix length for \hyperlink{protocolthe-p}{the} address. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a6a819f03fd33d1af16546c1144fab748}{IO$<$ A $>$}.

\hypertarget{classXrlIO_acd59fc2a97711127be95acbd8037e1aa}{
\index{XrlIO@{XrlIO}!ifmgr\_\-iftree@{ifmgr\_\-iftree}}
\index{ifmgr\_\-iftree@{ifmgr\_\-iftree}!XrlIO@{XrlIO}}
\subsubsection[{ifmgr\_\-iftree}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ const {\bf IfMgrIfTree}\& {\bf XrlIO}$<$ A $>$::ifmgr\_\-iftree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classXrlIO_acd59fc2a97711127be95acbd8037e1aa}


Obtain a reference to \hyperlink{protocolthe-p}{the} interface manager's interface tree. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} interface manager's interface tree. 
\end{DoxyReturn}
\hypertarget{classXrlIO_acd59fc2a97711127be95acbd8037e1aa}{
\index{XrlIO@{XrlIO}!ifmgr\_\-iftree@{ifmgr\_\-iftree}}
\index{ifmgr\_\-iftree@{ifmgr\_\-iftree}!XrlIO@{XrlIO}}
\subsubsection[{ifmgr\_\-iftree}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ const {\bf IfMgrIfTree}\& {\bf XrlIO}$<$ A $>$::ifmgr\_\-iftree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classXrlIO_acd59fc2a97711127be95acbd8037e1aa}
\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} interface manager's interface tree. 
\end{DoxyReturn}
\hypertarget{classXrlIO_a34713a7543e01fae2ff6eeb7553b3195}{
\index{XrlIO@{XrlIO}!ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}}
\index{ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}!XrlIO@{XrlIO}}
\subsubsection[{ifmgr\_\-mirror\_\-service\_\-base}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ const {\bf ServiceBase}$\ast$ {\bf XrlIO}$<$ A $>$::ifmgr\_\-mirror\_\-service\_\-base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classXrlIO_a34713a7543e01fae2ff6eeb7553b3195}


Obtain a pointer to \hyperlink{protocolthe-p}{the} interface manager service base. 

\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} interface manager service base. 
\end{DoxyReturn}
\hypertarget{classXrlIO_a34713a7543e01fae2ff6eeb7553b3195}{
\index{XrlIO@{XrlIO}!ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}}
\index{ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}!XrlIO@{XrlIO}}
\subsubsection[{ifmgr\_\-mirror\_\-service\_\-base}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ const {\bf ServiceBase}$\ast$ {\bf XrlIO}$<$ A $>$::ifmgr\_\-mirror\_\-service\_\-base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classXrlIO_a34713a7543e01fae2ff6eeb7553b3195}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} interface manager service base. 
\end{DoxyReturn}
\hypertarget{classXrlIO_ae8258320dfc692f07a2b43b45a89735d}{
\index{XrlIO@{XrlIO}!is\_\-address\_\-enabled@{is\_\-address\_\-enabled}}
\index{is\_\-address\_\-enabled@{is\_\-address\_\-enabled}!XrlIO@{XrlIO}}
\subsubsection[{is\_\-address\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::is\_\-address\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const {\bf IPv4} \&}]{address}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_ae8258320dfc692f07a2b43b45a89735d}


Test whether an interface/vif/address is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to test. \\
\hline
{\em address} & \hyperlink{protocolthe-p}{the} address to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a1774d38216b84776fd90734dd8eaa64c}{IO$<$ A $>$}.

\hypertarget{classXrlIO_ad5816c61b483488b7d082fba1cdd1300}{
\index{XrlIO@{XrlIO}!is\_\-address\_\-enabled@{is\_\-address\_\-enabled}}
\index{is\_\-address\_\-enabled@{is\_\-address\_\-enabled}!XrlIO@{XrlIO}}
\subsubsection[{is\_\-address\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::is\_\-address\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const A \&}]{address}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_ad5816c61b483488b7d082fba1cdd1300}


Test whether an interface/vif/address is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to test. \\
\hline
{\em address} & \hyperlink{protocolthe-p}{the} address to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a805c43ffdeca51d93cc7a8a859a3dd27}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a50a486ce00b64726620f4ea5676760e8}{
\index{XrlIO@{XrlIO}!is\_\-interface\_\-enabled@{is\_\-interface\_\-enabled}}
\index{is\_\-interface\_\-enabled@{is\_\-interface\_\-enabled}!XrlIO@{XrlIO}}
\subsubsection[{is\_\-interface\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf XrlIO}$<$ A $>$::is\_\-interface\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a50a486ce00b64726620f4ea5676760e8}


Test whether an interface is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a9393ed6ba002d56eadec4f647560a7e0}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a50a486ce00b64726620f4ea5676760e8}{
\index{XrlIO@{XrlIO}!is\_\-interface\_\-enabled@{is\_\-interface\_\-enabled}}
\index{is\_\-interface\_\-enabled@{is\_\-interface\_\-enabled}!XrlIO@{XrlIO}}
\subsubsection[{is\_\-interface\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::is\_\-interface\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a50a486ce00b64726620f4ea5676760e8}


Test whether an interface is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a9393ed6ba002d56eadec4f647560a7e0}{IO$<$ A $>$}.

\hypertarget{classXrlIO_af3b730d241f1e3ddebe1ba07d422452c}{
\index{XrlIO@{XrlIO}!is\_\-vif\_\-broadcast\_\-capable@{is\_\-vif\_\-broadcast\_\-capable}}
\index{is\_\-vif\_\-broadcast\_\-capable@{is\_\-vif\_\-broadcast\_\-capable}!XrlIO@{XrlIO}}
\subsubsection[{is\_\-vif\_\-broadcast\_\-capable}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::is\_\-vif\_\-broadcast\_\-capable (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_af3b730d241f1e3ddebe1ba07d422452c}


Test whether this interface/vif is broadcast capable. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} vif to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it is broadcast capable, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a1dd603c9d938d7f024122afb9fe180a3}{IO$<$ A $>$}.

\hypertarget{classXrlIO_ab3bfe3aabc8711d58836b6b861fa4a37}{
\index{XrlIO@{XrlIO}!is\_\-vif\_\-enabled@{is\_\-vif\_\-enabled}}
\index{is\_\-vif\_\-enabled@{is\_\-vif\_\-enabled}!XrlIO@{XrlIO}}
\subsubsection[{is\_\-vif\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf XrlIO}$<$ A $>$::is\_\-vif\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_ab3bfe3aabc8711d58836b6b861fa4a37}


Test whether an interface/vif is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_afd43c68902263580df80e90b1f562ce1}{IO$<$ A $>$}.

\hypertarget{classXrlIO_ab3bfe3aabc8711d58836b6b861fa4a37}{
\index{XrlIO@{XrlIO}!is\_\-vif\_\-enabled@{is\_\-vif\_\-enabled}}
\index{is\_\-vif\_\-enabled@{is\_\-vif\_\-enabled}!XrlIO@{XrlIO}}
\subsubsection[{is\_\-vif\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::is\_\-vif\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_ab3bfe3aabc8711d58836b6b861fa4a37}


Test whether an interface/vif is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_afd43c68902263580df80e90b1f562ce1}{IO$<$ A $>$}.

\hypertarget{classXrlIO_add30a32817997389bdee969c9ddc6d04}{
\index{XrlIO@{XrlIO}!is\_\-vif\_\-multicast\_\-capable@{is\_\-vif\_\-multicast\_\-capable}}
\index{is\_\-vif\_\-multicast\_\-capable@{is\_\-vif\_\-multicast\_\-capable}!XrlIO@{XrlIO}}
\subsubsection[{is\_\-vif\_\-multicast\_\-capable}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::is\_\-vif\_\-multicast\_\-capable (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_add30a32817997389bdee969c9ddc6d04}


Test whether this interface/vif is multicast capable. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} vif to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it is multicast capable, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_aa793e5c1a05931f434a2219944face9d}{IO$<$ A $>$}.

\hypertarget{classXrlIO_acc1a272bbd2e20a31247140e1238af17}{
\index{XrlIO@{XrlIO}!ports@{ports}}
\index{ports@{ports}!XrlIO@{XrlIO}}
\subsubsection[{ports}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ XrlPortList\& {\bf XrlIO}$<$ A $>$::ports (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classXrlIO_acc1a272bbd2e20a31247140e1238af17}
\begin{DoxyReturn}{Returns}
pointer to list of active XrlPorts. 
\end{DoxyReturn}
\hypertarget{classXrlIO_a4e528487cad91af0c99dc54ea3aab774}{
\index{XrlIO@{XrlIO}!ports@{ports}}
\index{ports@{ports}!XrlIO@{XrlIO}}
\subsubsection[{ports}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ const XrlPortList\& {\bf XrlIO}$<$ A $>$::ports (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classXrlIO_a4e528487cad91af0c99dc54ea3aab774}
\begin{DoxyReturn}{Returns}
pointer to list of active XrlPorts. 
\end{DoxyReturn}
\hypertarget{classXrlIO_a6c0a3dfdacfb3ba53cf20167a513f7ae}{
\index{XrlIO@{XrlIO}!receive@{receive}}
\index{receive@{receive}!XrlIO@{XrlIO}}
\subsubsection[{receive}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ void {\bf XrlIO}$<$ A $>$::receive (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const {\bf IPv4} \&}]{src, }
\item[{const uint16\_\-t \&}]{sport, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{payload}
\end{DoxyParamCaption}
)}}
\label{classXrlIO_a6c0a3dfdacfb3ba53cf20167a513f7ae}


Receive UDP datagrams. 

Specific to \hyperlink{classXrlIO}{XrlIO}.


\begin{DoxyParams}{Parameters}
{\em sockid} & \hyperlink{protocolthe-p}{the} id of \hyperlink{protocolthe-p}{the} socket. \\
\hline
{\em interface} & \hyperlink{protocolthe-p}{the} interface where received. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} vif where received. \\
\hline
{\em src} & \hyperlink{protocolthe-p}{the} source port of \hyperlink{protocolthe-p}{the} UDP datagram. \\
\hline
{\em sport} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} UDP datagram. \\
\hline
{\em payload} & \hyperlink{protocolthe-p}{the} datagram payload. \\
\hline
\end{DoxyParams}
\hypertarget{classXrlIO_a63b0100048d62f3a0a3c5cc95253c60a}{
\index{XrlIO@{XrlIO}!replace\_\-route@{replace\_\-route}}
\index{replace\_\-route@{replace\_\-route}!XrlIO@{XrlIO}}
\subsubsection[{replace\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::replace\_\-route (
\begin{DoxyParamCaption}
\item[{{\bf IPv4Net}}]{net, }
\item[{{\bf IPv4}}]{nexthop, }
\item[{uint32\_\-t}]{nexthop\_\-id, }
\item[{uint32\_\-t}]{metric, }
\item[{const {\bf PolicyTags} \&}]{policytags}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a63b0100048d62f3a0a3c5cc95253c60a}


Replace route in \hyperlink{classRIB}{RIB}. 


\begin{DoxyParams}{Parameters}
{\em net} & network \\
\hline
{\em nexthop} & \\
\hline
{\em nexthop\_\-id} & interface ID towards \hyperlink{protocolthe-p}{the} nexthop \\
\hline
{\em metric} & to network \\
\hline
{\em policytags} & policy info to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} route replacement was queued successfully, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_a5618657839e884ee9a3c4f1cca348672}{IO$<$ A $>$}.

\hypertarget{classXrlIO_aba17f6754380bcf2b7702132d2dc75e6}{
\index{XrlIO@{XrlIO}!replace\_\-route@{replace\_\-route}}
\index{replace\_\-route@{replace\_\-route}!XrlIO@{XrlIO}}
\subsubsection[{replace\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::replace\_\-route (
\begin{DoxyParamCaption}
\item[{{\bf IPNet}$<$ A $>$}]{net, }
\item[{A}]{nexthop, }
\item[{uint32\_\-t}]{nexthop\_\-id, }
\item[{uint32\_\-t}]{metric, }
\item[{bool}]{equal, }
\item[{bool}]{discard, }
\item[{const {\bf PolicyTags} \&}]{policytags}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_aba17f6754380bcf2b7702132d2dc75e6}


Replace route in \hyperlink{classRIB}{RIB}. 


\begin{DoxyParams}{Parameters}
{\em net} & network \\
\hline
{\em nexthop} & \\
\hline
{\em nexthop\_\-id} & interface ID towards \hyperlink{protocolthe-p}{the} nexthop \\
\hline
{\em metric} & to network \\
\hline
{\em equal} & true if this in another route to \hyperlink{protocolthe-p}{the} same destination. \\
\hline
{\em discard} & true if this is a discard route. \\
\hline
{\em policytags} & policy info to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classIO_ae18ff03f11df616e2d31749369f39023}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a122479d05f7f7d4512e26d2d70fd1b51}{
\index{XrlIO@{XrlIO}!rib\_\-command\_\-done@{rib\_\-command\_\-done}}
\index{rib\_\-command\_\-done@{rib\_\-command\_\-done}!XrlIO@{XrlIO}}
\subsubsection[{rib\_\-command\_\-done}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf XrlIO}$<$ A $>$::rib\_\-command\_\-done (
\begin{DoxyParamCaption}
\item[{const {\bf XrlError} \&}]{error, }
\item[{bool}]{up, }
\item[{const char $\ast$}]{comment}
\end{DoxyParamCaption}
)}}
\label{classXrlIO_a122479d05f7f7d4512e26d2d70fd1b51}


Callback method to: signal that an XRL command which has been sent to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} has returned. 


\begin{DoxyParams}{Parameters}
{\em error} & \hyperlink{protocolthe-p}{the} XRL command return code. \\
\hline
{\em up} & indicates if \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} component has been brought up or down. \\
\hline
{\em comment} & text description of operation being performed. \\
\hline
\end{DoxyParams}
\hypertarget{classXrlIO_a29b1d0ad3dd36b1345db36e2923d8090}{
\index{XrlIO@{XrlIO}!send@{send}}
\index{send@{send}!XrlIO@{XrlIO}}
\subsubsection[{send}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf XrlIO}$<$ A $>$::send (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const {\bf IPv4} \&}]{src, }
\item[{const uint16\_\-t \&}]{sport, }
\item[{const {\bf IPv4} \&}]{dst, }
\item[{const uint16\_\-t \&}]{dport, }
\item[{uint8\_\-t $\ast$}]{data, }
\item[{const uint32\_\-t \&}]{len}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a29b1d0ad3dd36b1345db36e2923d8090}


\hyperlink{structSend}{Send} a UDP datagram on a specific link. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} interface to send from. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} vif to send from. \\
\hline
{\em src} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} address to send from. \\
\hline
{\em sport} & \hyperlink{protocolthe-p}{the} UDP port to send from. \\
\hline
{\em dst} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} address to send to. \\
\hline
{\em dport} & \hyperlink{protocolthe-p}{the} UDP port to send to. \\
\hline
{\em data} & \hyperlink{protocolthe-p}{the} datagram payload. \\
\hline
{\em len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} buffer \\
\hline
{\em data} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} datagram was queued successfully, otherwise false. 
\end{DoxyReturn}


Implements \hyperlink{classIO_afc45c02d5fceb77e7e1c886ace501257}{IO$<$ A $>$}.

\hypertarget{classXrlIO_a8e722e01bfd3770c2b632e19dfa61579}{
\index{XrlIO@{XrlIO}!send\_\-cb@{send\_\-cb}}
\index{send\_\-cb@{send\_\-cb}!XrlIO@{XrlIO}}
\subsubsection[{send\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ void {\bf XrlIO}$<$ A $>$::send\_\-cb (
\begin{DoxyParamCaption}
\item[{const {\bf XrlError} \&}]{xrl\_\-error}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlIO_a8e722e01bfd3770c2b632e19dfa61579}


Callback method to: signal that \hyperlink{protocolthe-p}{the} XRL command to send a UDP datagram has returned. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-error} & \hyperlink{protocolthe-p}{the} XRL command return code. \\
\hline
\end{DoxyParams}
\hypertarget{classXrlIO_a3f7a0862d56dbab3dc5406cb7ee1fe10}{
\index{XrlIO@{XrlIO}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!XrlIO@{XrlIO}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ int {\bf XrlIO}$<$ A $>$::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classXrlIO_a3f7a0862d56dbab3dc5406cb7ee1fe10}


\hyperlink{classShutdown}{Shutdown} operation. 

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


Implements \hyperlink{classServiceBase_a6ad34506fd5a446d5667abcb2e1b593b}{ServiceBase}.

\hypertarget{classXrlIO_a3f7a0862d56dbab3dc5406cb7ee1fe10}{
\index{XrlIO@{XrlIO}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!XrlIO@{XrlIO}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ int {\bf XrlIO}$<$ A $>$::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a3f7a0862d56dbab3dc5406cb7ee1fe10}


\hyperlink{classShutdown}{Shutdown} operation. 

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


Implements \hyperlink{classServiceBase_a6ad34506fd5a446d5667abcb2e1b593b}{ServiceBase}.

\hypertarget{classXrlIO_a65eb1ca7813cfc58630d0a1720804bf1}{
\index{XrlIO@{XrlIO}!startup@{startup}}
\index{startup@{startup}!XrlIO@{XrlIO}}
\subsubsection[{startup}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ int {\bf XrlIO}$<$ A $>$::startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlIO_a65eb1ca7813cfc58630d0a1720804bf1}


\hyperlink{classStartup}{Startup} operation. 

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


Implements \hyperlink{classServiceBase_a791755872b2056ddd82a2f00904c7d2b}{ServiceBase}.

\hypertarget{classXrlIO_a65eb1ca7813cfc58630d0a1720804bf1}{
\index{XrlIO@{XrlIO}!startup@{startup}}
\index{startup@{startup}!XrlIO@{XrlIO}}
\subsubsection[{startup}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ int {\bf XrlIO}$<$ A $>$::startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classXrlIO_a65eb1ca7813cfc58630d0a1720804bf1}


\hyperlink{classStartup}{Startup} operation. 

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


Implements \hyperlink{classServiceBase_a791755872b2056ddd82a2f00904c7d2b}{ServiceBase}.

\hypertarget{classXrlIO_a4fa4df2d205ce505788a26e21df7c0e0}{
\index{XrlIO@{XrlIO}!status\_\-change@{status\_\-change}}
\index{status\_\-change@{status\_\-change}!XrlIO@{XrlIO}}
\subsubsection[{status\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ void {\bf XrlIO}$<$ A $>$::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{classXrlIO_a4fa4df2d205ce505788a26e21df7c0e0}


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{classXrlIO_a4fa4df2d205ce505788a26e21df7c0e0}{
\index{XrlIO@{XrlIO}!status\_\-change@{status\_\-change}}
\index{status\_\-change@{status\_\-change}!XrlIO@{XrlIO}}
\subsubsection[{status\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ void {\bf XrlIO}$<$ A $>$::status\_\-change (
\begin{DoxyParamCaption}
\item[{{\bf ServiceBase} $\ast$}]{service, }
\item[{ServiceStatus}]{old\_\-status, }
\item[{ServiceStatus}]{new\_\-status}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private, virtual\mbox{]}}}}
\label{classXrlIO_a4fa4df2d205ce505788a26e21df7c0e0}


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



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