\hypertarget{classIoIpReceiver}{
\section{IoIpReceiver Class Reference}
\label{classIoIpReceiver}\index{IoIpReceiver@{IoIpReceiver}}
}


A base class for I/O IP raw packets receiver.  




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

Inheritance diagram for IoIpReceiver:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classIoIpReceiver}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIoIpReceiver_a0e3e24eb22e7f7f6df0a7ddc57f2432b}{
\hyperlink{classIoIpReceiver_a0e3e24eb22e7f7f6df0a7ddc57f2432b}{IoIpReceiver} ()}
\label{classIoIpReceiver_a0e3e24eb22e7f7f6df0a7ddc57f2432b}

\begin{DoxyCompactList}\small\item\em Default constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classIoIpReceiver_ad75995ce8efee7a99094b7dd92d96176}{
virtual \hyperlink{classIoIpReceiver_ad75995ce8efee7a99094b7dd92d96176}{$\sim$IoIpReceiver} ()}
\label{classIoIpReceiver_ad75995ce8efee7a99094b7dd92d96176}

\begin{DoxyCompactList}\small\item\em Virtual destructor. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classIoIpReceiver_a704309d8680306a6219fa4b3df261109}{recv\_\-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)=0
\begin{DoxyCompactList}\small\item\em Received a raw IP packet. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classIoIpReceiver_a597d6cd6a888f1fe38532cbbf3507a2f}{recv\_\-system\_\-multicast\_\-upcall} (const vector$<$ uint8\_\-t $>$ \&payload)=0
\begin{DoxyCompactList}\small\item\em Received a multicast forwarding related upcall from \hyperlink{protocolthe-p}{the} system. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A base class for I/O IP raw packets receiver. The real receiver must inherit from this class and register with \hyperlink{protocolthe-p}{the} corresponding \hyperlink{classIoIp}{IoIp} entity to receive \hyperlink{protocolthe-p}{the} raw IP packets. \begin{DoxySeeAlso}{See also}
\hyperlink{classIoIp}{IoIp}. 
\end{DoxySeeAlso}


\subsection{Member Function Documentation}
\hypertarget{classIoIpReceiver_a704309d8680306a6219fa4b3df261109}{
\index{IoIpReceiver@{IoIpReceiver}!recv\_\-packet@{recv\_\-packet}}
\index{recv\_\-packet@{recv\_\-packet}!IoIpReceiver@{IoIpReceiver}}
\subsubsection[{recv\_\-packet}]{\setlength{\rightskip}{0pt plus 5cm}virtual void IoIpReceiver::recv\_\-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}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIoIpReceiver_a704309d8680306a6219fa4b3df261109}


Received a raw IP packet. 


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


Implemented in \hyperlink{classIoIpComm_a03b25bfd38d9f4bb131d79f909107ae8}{IoIpComm}.

\hypertarget{classIoIpReceiver_a597d6cd6a888f1fe38532cbbf3507a2f}{
\index{IoIpReceiver@{IoIpReceiver}!recv\_\-system\_\-multicast\_\-upcall@{recv\_\-system\_\-multicast\_\-upcall}}
\index{recv\_\-system\_\-multicast\_\-upcall@{recv\_\-system\_\-multicast\_\-upcall}!IoIpReceiver@{IoIpReceiver}}
\subsubsection[{recv\_\-system\_\-multicast\_\-upcall}]{\setlength{\rightskip}{0pt plus 5cm}virtual void IoIpReceiver::recv\_\-system\_\-multicast\_\-upcall (
\begin{DoxyParamCaption}
\item[{const vector$<$ uint8\_\-t $>$ \&}]{payload}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIoIpReceiver_a597d6cd6a888f1fe38532cbbf3507a2f}


Received a multicast forwarding related upcall from \hyperlink{protocolthe-p}{the} system. 

Examples of such upcalls are: \char`\"{}nocache\char`\"{}, \char`\"{}wrongiif\char`\"{}, \char`\"{}wholepkt\char`\"{}, \char`\"{}bw\_\-upcall\char`\"{}.


\begin{DoxyParams}{Parameters}
{\em payload} & \hyperlink{protocolthe-p}{the} payload data for \hyperlink{protocolthe-p}{the} upcall. \\
\hline
\end{DoxyParams}


Implemented in \hyperlink{classIoIpComm_a7d1720a0e7c6c6a00ea52ec8db9d74ae}{IoIpComm}.



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