\hypertarget{classIoLinkDummy}{
\section{IoLinkDummy Class Reference}
\label{classIoLinkDummy}\index{IoLinkDummy@{IoLinkDummy}}
}


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




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

Inheritance diagram for IoLinkDummy:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classIoLinkDummy}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIoLinkDummy_a405c066549cfe71f497fbb02ee7ec782}{IoLinkDummy} (\hyperlink{classFeaDataPlaneManager}{FeaDataPlaneManager} \&fea\_\-data\_\-plane\_\-manager, const \hyperlink{classIfTree}{IfTree} \&iftree, const string \&if\_\-name, const string \&vif\_\-name, uint16\_\-t ether\_\-type, const string \&filter\_\-program)
\begin{DoxyCompactList}\small\item\em Constructor for link-\/level access for a given interface and vif. \item\end{DoxyCompactList}\item 
\hypertarget{classIoLinkDummy_a1a25812ae8dc77742df4dd2bf561938e}{
virtual \hyperlink{classIoLinkDummy_a1a25812ae8dc77742df4dd2bf561938e}{$\sim$IoLinkDummy} ()}
\label{classIoLinkDummy_a1a25812ae8dc77742df4dd2bf561938e}

\begin{DoxyCompactList}\small\item\em Virtual destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoLinkDummy_afa39a39cc8aa0a399938b2e99b9c2e07}{start} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Start operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoLinkDummy_a2ce27399e92581c83660dd8697c2a068}{stop} (string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Stop operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoLinkDummy_a007da6ce11131e20829c38d22ec475a7}{join\_\-multicast\_\-group} (const \hyperlink{classMac}{Mac} \&group, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Join a multicast group on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoLinkDummy_ad834fca8fd0a7577ecf113e95e73b9f9}{leave\_\-multicast\_\-group} (const \hyperlink{classMac}{Mac} \&group, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Leave a multicast group on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classIoLinkDummy_ade97bb447f9ae8e0a8171682e2dd5d89}{send\_\-packet} (const \hyperlink{classMac}{Mac} \&src\_\-address, const \hyperlink{classMac}{Mac} \&dst\_\-address, uint16\_\-t ether\_\-type, const vector$<$ uint8\_\-t $>$ \&payload, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} a link-\/level packet. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIoLinkDummy_a7030eacc6c7cf0779304749c6eeb7b31}{
set$<$ \hyperlink{classIoLinkComm_1_1JoinedMulticastGroup}{IoLinkComm::JoinedMulticastGroup} $>$ {\bfseries \_\-joined\_\-groups\_\-table}}
\label{classIoLinkDummy_a7030eacc6c7cf0779304749c6eeb7b31}

\end{DoxyCompactItemize}


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

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classIoLinkDummy_a405c066549cfe71f497fbb02ee7ec782}{
\index{IoLinkDummy@{IoLinkDummy}!IoLinkDummy@{IoLinkDummy}}
\index{IoLinkDummy@{IoLinkDummy}!IoLinkDummy@{IoLinkDummy}}
\subsubsection[{IoLinkDummy}]{\setlength{\rightskip}{0pt plus 5cm}IoLinkDummy::IoLinkDummy (
\begin{DoxyParamCaption}
\item[{{\bf FeaDataPlaneManager} \&}]{fea\_\-data\_\-plane\_\-manager, }
\item[{const {\bf IfTree} \&}]{iftree, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{uint16\_\-t}]{ether\_\-type, }
\item[{const string \&}]{filter\_\-program}
\end{DoxyParamCaption}
)}}
\label{classIoLinkDummy_a405c066549cfe71f497fbb02ee7ec782}


Constructor for link-\/level access for a given interface and vif. 


\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 if\_\-name} & \hyperlink{protocolthe-p}{the} interface name. \\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif name. \\
\hline
{\em ether\_\-type} & \hyperlink{protocolthe-p}{the} EtherType protocol number. If it is 0 then it is unused. \\
\hline
{\em filter\_\-program} & \hyperlink{protocolthe-p}{the} optional filter program to be applied on \hyperlink{protocolthe-p}{the} received packets. The program uses tcpdump(1) style expression. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classIoLinkDummy_a007da6ce11131e20829c38d22ec475a7}{
\index{IoLinkDummy@{IoLinkDummy}!join\_\-multicast\_\-group@{join\_\-multicast\_\-group}}
\index{join\_\-multicast\_\-group@{join\_\-multicast\_\-group}!IoLinkDummy@{IoLinkDummy}}
\subsubsection[{join\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}int IoLinkDummy::join\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const {\bf Mac} \&}]{group, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoLinkDummy_a007da6ce11131e20829c38d22ec475a7}


Join a multicast group on an interface. 


\begin{DoxyParams}{Parameters}
{\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{classIoLink_aa168bbec4e173df4fac5ba558c5b2c98}{IoLink}.

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


Leave a multicast group on an interface. 


\begin{DoxyParams}{Parameters}
{\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{classIoLink_a2a406d731b6767d1fdb4a57deee12aa7}{IoLink}.

\hypertarget{classIoLinkDummy_ade97bb447f9ae8e0a8171682e2dd5d89}{
\index{IoLinkDummy@{IoLinkDummy}!send\_\-packet@{send\_\-packet}}
\index{send\_\-packet@{send\_\-packet}!IoLinkDummy@{IoLinkDummy}}
\subsubsection[{send\_\-packet}]{\setlength{\rightskip}{0pt plus 5cm}int IoLinkDummy::send\_\-packet (
\begin{DoxyParamCaption}
\item[{const {\bf Mac} \&}]{src\_\-address, }
\item[{const {\bf Mac} \&}]{dst\_\-address, }
\item[{uint16\_\-t}]{ether\_\-type, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{payload, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIoLinkDummy_ade97bb447f9ae8e0a8171682e2dd5d89}


\hyperlink{structSend}{Send} a link-\/level packet. 


\begin{DoxyParams}{Parameters}
{\em src\_\-address} & \hyperlink{protocolthe-p}{the} MAC source address. \\
\hline
{\em dst\_\-address} & \hyperlink{protocolthe-p}{the} MAC destination address. \\
\hline
{\em ether\_\-type} & \hyperlink{protocolthe-p}{the} EtherType protocol number. \\
\hline
{\em payload} & \hyperlink{protocolthe-p}{the} payload, everything after \hyperlink{protocolthe-p}{the} MAC header. \\
\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{classIoLink_a882c92570e6ead04be86f330e6e8ae75}{IoLink}.

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


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{classIoLink_a08291a6eca72e4aba820b2afdaedf1d6}{IoLink}.

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


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{classIoLink_a1b02443c11bbd3ec25d9a82e2b862af4}{IoLink}.



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\_\-link\_\-dummy.hh\item 
/home/greearb/git/xorp.ct.github/xorp/fea/data\_\-plane/io/io\_\-link\_\-dummy.cc\end{DoxyCompactItemize}
