\hypertarget{classIoIpDummy}{
\section{IoIpDummy Class Reference}
\label{classIoIpDummy}\index{IoIpDummy@{IoIpDummy}}
}


A base class for Dummy I/O IP raw communication.  




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

Inheritance diagram for IoIpDummy:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classIoIpDummy}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIoIpDummy_aaad226a28dfe2b2f8e4d5067888f4645}{IoIpDummy} (\hyperlink{classFeaDataPlaneManager}{FeaDataPlaneManager} \&fea\_\-data\_\-plane\_\-manager, const \hyperlink{classIfTree}{IfTree} \&iftree, int family, uint8\_\-t ip\_\-protocol)
\begin{DoxyCompactList}\small\item\em Constructor for a given address family and protocol. \item\end{DoxyCompactList}\item 
\hypertarget{classIoIpDummy_a9afeb3a88b3230f0355ccdd0bd1e10bb}{
virtual \hyperlink{classIoIpDummy_a9afeb3a88b3230f0355ccdd0bd1e10bb}{$\sim$IoIpDummy} ()}
\label{classIoIpDummy_a9afeb3a88b3230f0355ccdd0bd1e10bb}

\begin{DoxyCompactList}\small\item\em Virtual destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoIpDummy_a25511be5425c4eab7de68e11d2346144}{start} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Start operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoIpDummy_a4be974246d92d02a5cb7ddcde647b187}{stop} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Stop operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoIpDummy_ad3b0fa75f8150e8d12cc101c3adfd95b}{set\_\-multicast\_\-ttl} (int ttl, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} default TTL (or hop-\/limit in \hyperlink{classIPv6}{IPv6}) for \hyperlink{protocolthe-p}{the} outgoing multicast packets. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoIpDummy_a66da8890e363b90abd4e9b34adebaf2f}{enable\_\-multicast\_\-loopback} (bool is\_\-enabled, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Enable/disable multicast loopback when transmitting multicast packets. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoIpDummy_a40c2d153472f3b76714d5864baeac494}{set\_\-default\_\-multicast\_\-interface} (const string \&if\_\-name, const string \&vif\_\-name, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set default interface for transmitting multicast packets. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoIpDummy_ae2206847a823a97e4ed71ad8ac58fc8c}{join\_\-multicast\_\-group} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&group, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Join a multicast group on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoIpDummy_a38498634e0c3d61b62878d9525867542}{leave\_\-multicast\_\-group} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&group, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Leave a multicast group on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoIpDummy_a97f2066e7e8149341f2436ee72abf753}{send\_\-packet} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPvX}{IPvX} \&src\_\-address, const \hyperlink{classIPvX}{IPvX} \&dst\_\-address, int32\_\-t ip\_\-ttl, int32\_\-t ip\_\-tos, bool ip\_\-router\_\-alert, bool ip\_\-internet\_\-control, const vector$<$ uint8\_\-t $>$ \&ext\_\-headers\_\-type, const vector$<$ vector$<$ uint8\_\-t $>$ $>$ \&ext\_\-headers\_\-payload, const vector$<$ uint8\_\-t $>$ \&payload, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} a raw IP packet. \item\end{DoxyCompactList}\item 
\hyperlink{classXorpFd}{XorpFd} $\ast$ \hyperlink{classIoIpDummy_a01da99723d16bc9507d19e2a811380a4}{mcast\_\-protocol\_\-fd\_\-in} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} file descriptor for receiving protocol messages. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIoIpDummy_abec3485c416ce83d20406656a7d80904}{
\hyperlink{classXorpFd}{XorpFd} {\bfseries \_\-dummy\_\-protocol\_\-fd\_\-in}}
\label{classIoIpDummy_abec3485c416ce83d20406656a7d80904}

\item 
\hypertarget{classIoIpDummy_a4be7b7dfe044eddd2a037ca58941c71d}{
uint8\_\-t {\bfseries \_\-multicast\_\-ttl}}
\label{classIoIpDummy_a4be7b7dfe044eddd2a037ca58941c71d}

\item 
\hypertarget{classIoIpDummy_a7735eeea4d59d9e89364452cf292856c}{
bool {\bfseries \_\-multicast\_\-loopback}}
\label{classIoIpDummy_a7735eeea4d59d9e89364452cf292856c}

\item 
\hypertarget{classIoIpDummy_a0716665c3cedf454b9e38ec29c4e31bd}{
string {\bfseries \_\-default\_\-multicast\_\-interface}}
\label{classIoIpDummy_a0716665c3cedf454b9e38ec29c4e31bd}

\item 
\hypertarget{classIoIpDummy_af16d7a633f51bf5e8388abcad17a0c82}{
string {\bfseries \_\-default\_\-multicast\_\-vif}}
\label{classIoIpDummy_af16d7a633f51bf5e8388abcad17a0c82}

\item 
\hypertarget{classIoIpDummy_a3656181f21b76a8fd48f70bed6cc2a33}{
set$<$ \hyperlink{classIoIpComm_1_1JoinedMulticastGroup}{IoIpComm::JoinedMulticastGroup} $>$ {\bfseries \_\-joined\_\-groups\_\-table}}
\label{classIoIpDummy_a3656181f21b76a8fd48f70bed6cc2a33}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
A base class for Dummy I/O IP raw communication. Each protocol 'registers' for I/O and gets assigned one object of this class. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classIoIpDummy_aaad226a28dfe2b2f8e4d5067888f4645}{
\index{IoIpDummy@{IoIpDummy}!IoIpDummy@{IoIpDummy}}
\index{IoIpDummy@{IoIpDummy}!IoIpDummy@{IoIpDummy}}
\subsubsection[{IoIpDummy}]{\setlength{\rightskip}{0pt plus 5cm}IoIpDummy::IoIpDummy (
\begin{DoxyParamCaption}
\item[{{\bf FeaDataPlaneManager} \&}]{fea\_\-data\_\-plane\_\-manager, }
\item[{const {\bf IfTree} \&}]{iftree, }
\item[{int}]{family, }
\item[{uint8\_\-t}]{ip\_\-protocol}
\end{DoxyParamCaption}
)}}
\label{classIoIpDummy_aaad226a28dfe2b2f8e4d5067888f4645}


Constructor for a given address family and protocol. 


\begin{DoxyParams}{Parameters}
{\em fea\_\-data\_\-plane\_\-manager} & \hyperlink{protocolthe-p}{the} corresponding data plane manager (\hyperlink{classFeaDataPlaneManager}{FeaDataPlaneManager}). \\
\hline
{\em iftree} & \hyperlink{protocolthe-p}{the} interface tree to use. \\
\hline
{\em family} & \hyperlink{protocolthe-p}{the} address family (AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). \\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number (IPPROTO\_\-$\ast$). \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classIoIpDummy_a66da8890e363b90abd4e9b34adebaf2f}{
\index{IoIpDummy@{IoIpDummy}!enable\_\-multicast\_\-loopback@{enable\_\-multicast\_\-loopback}}
\index{enable\_\-multicast\_\-loopback@{enable\_\-multicast\_\-loopback}!IoIpDummy@{IoIpDummy}}
\subsubsection[{enable\_\-multicast\_\-loopback}]{\setlength{\rightskip}{0pt plus 5cm}int IoIpDummy::enable\_\-multicast\_\-loopback (
\begin{DoxyParamCaption}
\item[{bool}]{is\_\-enabled, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoIpDummy_a66da8890e363b90abd4e9b34adebaf2f}


Enable/disable multicast loopback when transmitting multicast packets. 

If \hyperlink{protocolthe-p}{the} multicast loopback is enabled, a transmitted multicast packet will be delivered back to this host (assuming \hyperlink{protocolthe-p}{the} host is a member of \hyperlink{protocolthe-p}{the} same multicast group).


\begin{DoxyParams}{Parameters}
{\em is\_\-enabled} & if true, enable \hyperlink{protocolthe-p}{the} loopback, 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}


Implements \hyperlink{classIoIp_af5b13a9b0424555a615021ecc8955f1e}{IoIp}.

\hypertarget{classIoIpDummy_ae2206847a823a97e4ed71ad8ac58fc8c}{
\index{IoIpDummy@{IoIpDummy}!join\_\-multicast\_\-group@{join\_\-multicast\_\-group}}
\index{join\_\-multicast\_\-group@{join\_\-multicast\_\-group}!IoIpDummy@{IoIpDummy}}
\subsubsection[{join\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}int IoIpDummy::join\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{group, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoIpDummy_ae2206847a823a97e4ed71ad8ac58fc8c}


Join a multicast group on an interface. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to join \hyperlink{protocolthe-p}{the} multicast group. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to join \hyperlink{protocolthe-p}{the} multicast group. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} multicast group to join. \\
\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{classIoIp_a91c6bbb67097f3f40cbf3c3c6ff80dcc}{IoIp}.

\hypertarget{classIoIpDummy_a38498634e0c3d61b62878d9525867542}{
\index{IoIpDummy@{IoIpDummy}!leave\_\-multicast\_\-group@{leave\_\-multicast\_\-group}}
\index{leave\_\-multicast\_\-group@{leave\_\-multicast\_\-group}!IoIpDummy@{IoIpDummy}}
\subsubsection[{leave\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}int IoIpDummy::leave\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPvX} \&}]{group, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoIpDummy_a38498634e0c3d61b62878d9525867542}


Leave a multicast group on an interface. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to leave \hyperlink{protocolthe-p}{the} multicast group. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to leave \hyperlink{protocolthe-p}{the} multicast group. \\
\hline
{\em group} & \hyperlink{protocolthe-p}{the} multicast group to leave. \\
\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{classIoIp_a22d7f9077a618fbdeb689146dad3a741}{IoIp}.

\hypertarget{classIoIpDummy_a01da99723d16bc9507d19e2a811380a4}{
\index{IoIpDummy@{IoIpDummy}!mcast\_\-protocol\_\-fd\_\-in@{mcast\_\-protocol\_\-fd\_\-in}}
\index{mcast\_\-protocol\_\-fd\_\-in@{mcast\_\-protocol\_\-fd\_\-in}!IoIpDummy@{IoIpDummy}}
\subsubsection[{mcast\_\-protocol\_\-fd\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XorpFd}$\ast$ IoIpDummy::mcast\_\-protocol\_\-fd\_\-in (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classIoIpDummy_a01da99723d16bc9507d19e2a811380a4}


Get \hyperlink{protocolthe-p}{the} file descriptor for receiving protocol messages. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} file descriptor for receiving protocol messages. 
\end{DoxyReturn}


Implements \hyperlink{classIoIp_a8efca10514cd213b44539b5a8397a404}{IoIp}.

\hypertarget{classIoIpDummy_a97f2066e7e8149341f2436ee72abf753}{
\index{IoIpDummy@{IoIpDummy}!send\_\-packet@{send\_\-packet}}
\index{send\_\-packet@{send\_\-packet}!IoIpDummy@{IoIpDummy}}
\subsubsection[{send\_\-packet}]{\setlength{\rightskip}{0pt plus 5cm}int IoIpDummy::send\_\-packet (
\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[{int32\_\-t}]{ip\_\-ttl, }
\item[{int32\_\-t}]{ip\_\-tos, }
\item[{bool}]{ip\_\-router\_\-alert, }
\item[{bool}]{ip\_\-internet\_\-control, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{ext\_\-headers\_\-type, }
\item[{const vector$<$ vector$<$ uint8\_\-t $>$ $>$ \&}]{ext\_\-headers\_\-payload, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{payload, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoIpDummy_a97f2066e7e8149341f2436ee72abf753}


\hyperlink{structSend}{Send} a raw IP 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\_\-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} or IP traffic class for \hyperlink{classIPv6}{IPv6}). 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 ext\_\-headers\_\-type} & a vector of integers with \hyperlink{protocolthe-p}{the} types of \hyperlink{protocolthe-p}{the} optional \hyperlink{classIPv6}{IPv6} extention headers. \\
\hline
{\em ext\_\-headers\_\-payload} & a vector of payload data, one for each optional \hyperlink{classIPv6}{IPv6} extention header. The number of entries must match ext\_\-headers\_\-type. \\
\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{classIoIp_a553edc941a439bbc824ae8404e1ea8d3}{IoIp}.

\hypertarget{classIoIpDummy_a40c2d153472f3b76714d5864baeac494}{
\index{IoIpDummy@{IoIpDummy}!set\_\-default\_\-multicast\_\-interface@{set\_\-default\_\-multicast\_\-interface}}
\index{set\_\-default\_\-multicast\_\-interface@{set\_\-default\_\-multicast\_\-interface}!IoIpDummy@{IoIpDummy}}
\subsubsection[{set\_\-default\_\-multicast\_\-interface}]{\setlength{\rightskip}{0pt plus 5cm}int IoIpDummy::set\_\-default\_\-multicast\_\-interface (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoIpDummy_a40c2d153472f3b76714d5864baeac494}


Set default interface for transmitting multicast packets. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface that would become \hyperlink{protocolthe-p}{the} default multicast interface. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif that would become \hyperlink{protocolthe-p}{the} default multicast interface. \\
\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{classIoIp_a1e2751f4f32a1b51ebe63331c968ee51}{IoIp}.

\hypertarget{classIoIpDummy_ad3b0fa75f8150e8d12cc101c3adfd95b}{
\index{IoIpDummy@{IoIpDummy}!set\_\-multicast\_\-ttl@{set\_\-multicast\_\-ttl}}
\index{set\_\-multicast\_\-ttl@{set\_\-multicast\_\-ttl}!IoIpDummy@{IoIpDummy}}
\subsubsection[{set\_\-multicast\_\-ttl}]{\setlength{\rightskip}{0pt plus 5cm}int IoIpDummy::set\_\-multicast\_\-ttl (
\begin{DoxyParamCaption}
\item[{int}]{ttl, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoIpDummy_ad3b0fa75f8150e8d12cc101c3adfd95b}


Set \hyperlink{protocolthe-p}{the} default TTL (or hop-\/limit in \hyperlink{classIPv6}{IPv6}) for \hyperlink{protocolthe-p}{the} outgoing multicast packets. 


\begin{DoxyParams}{Parameters}
{\em ttl} & \hyperlink{protocolthe-p}{the} desired IP TTL (a.k.a. hop-\/limit in \hyperlink{classIPv6}{IPv6}) 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}


Implements \hyperlink{classIoIp_a9615f67c69c07d97453b3efe7392bc7e}{IoIp}.

\hypertarget{classIoIpDummy_a25511be5425c4eab7de68e11d2346144}{
\index{IoIpDummy@{IoIpDummy}!start@{start}}
\index{start@{start}!IoIpDummy@{IoIpDummy}}
\subsubsection[{start}]{\setlength{\rightskip}{0pt plus 5cm}int IoIpDummy::start (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoIpDummy_a25511be5425c4eab7de68e11d2346144}


Start operation. 


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


Implements \hyperlink{classIoIp_a62b9862050aca745cc7da7b2eb18400a}{IoIp}.

\hypertarget{classIoIpDummy_a4be974246d92d02a5cb7ddcde647b187}{
\index{IoIpDummy@{IoIpDummy}!stop@{stop}}
\index{stop@{stop}!IoIpDummy@{IoIpDummy}}
\subsubsection[{stop}]{\setlength{\rightskip}{0pt plus 5cm}int IoIpDummy::stop (
\begin{DoxyParamCaption}
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoIpDummy_a4be974246d92d02a5cb7ddcde647b187}


Stop operation. 


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


Implements \hyperlink{classIoIp_a44e244066d12564df8449cde234a5ef1}{IoIp}.



The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/fea/data\_\-plane/io/io\_\-ip\_\-dummy.hh\item 
/home/greearb/git/xorp.ct.github/xorp/fea/data\_\-plane/io/io\_\-ip\_\-dummy.cc\end{DoxyCompactItemize}
