\hypertarget{classPacketRouteEntry_3_01IPv4_01_4}{
\section{PacketRouteEntry$<$ IPv4 $>$ Class Template Reference}
\label{classPacketRouteEntry_3_01IPv4_01_4}\index{PacketRouteEntry$<$ IPv4 $>$@{PacketRouteEntry$<$ IPv4 $>$}}
}


\hyperlink{classRoute}{Route} Entry appearing in RIP packets on \hyperlink{classIPv4}{IPv4}.  




{\ttfamily \#include $<$packets.hh$>$}

Inheritance diagram for PacketRouteEntry$<$ IPv4 $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classPacketRouteEntry_3_01IPv4_01_4}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a7d9efe4d29af2f5d6ea341dff49d9896}{
{\bfseries PacketRouteEntry} (const uint8\_\-t $\ast$data)}
\label{classPacketRouteEntry_3_01IPv4_01_4_a7d9efe4d29af2f5d6ea341dff49d9896}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_ab9e1301587677ae80b8697c1c9b75546}{
uint16\_\-t {\bfseries addr\_\-family} () const }
\label{classPacketRouteEntry_3_01IPv4_01_4_ab9e1301587677ae80b8697c1c9b75546}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_ad5b5104950863a9ac59b079d5a9bdf79}{
uint16\_\-t {\bfseries tag} () const }
\label{classPacketRouteEntry_3_01IPv4_01_4_ad5b5104950863a9ac59b079d5a9bdf79}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a028d7bdfd8dd8a655a0cdc08f917a617}{
\hyperlink{classIPv4}{IPv4} {\bfseries addr} () const }
\label{classPacketRouteEntry_3_01IPv4_01_4_a028d7bdfd8dd8a655a0cdc08f917a617}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a219594a5ee339ca427d02cc83fc80a2e}{
uint32\_\-t {\bfseries prefix\_\-len} () const }
\label{classPacketRouteEntry_3_01IPv4_01_4_a219594a5ee339ca427d02cc83fc80a2e}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_ab0a0631bd1e4891089b4e5e1c55931f5}{
\hyperlink{classIPNet}{IPv4Net} {\bfseries net} () const }
\label{classPacketRouteEntry_3_01IPv4_01_4_ab0a0631bd1e4891089b4e5e1c55931f5}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a0e6066f39c93827a3930f8b31656ea1f}{
\hyperlink{classIPv4}{IPv4} {\bfseries nexthop} () const }
\label{classPacketRouteEntry_3_01IPv4_01_4_a0e6066f39c93827a3930f8b31656ea1f}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a6a22788e3c92d3d61e4bbb4c66dc210b}{
uint32\_\-t {\bfseries metric} () const }
\label{classPacketRouteEntry_3_01IPv4_01_4_a6a22788e3c92d3d61e4bbb4c66dc210b}

\item 
bool \hyperlink{classPacketRouteEntry_3_01IPv4_01_4_a1f09ed4b6826738ac59455e114ea3574}{is\_\-table\_\-request} () const 
\item 
bool \hyperlink{classPacketRouteEntry_3_01IPv4_01_4_a7cc9071b2daf33897214b4daa1977d40}{is\_\-auth\_\-entry} () const 
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static size\_\-t \hyperlink{classPacketRouteEntry_3_01IPv4_01_4_abe2df4a4ec71a2228469f3ef81f4cfac}{size} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} RIP \hyperlink{classIPv4}{IPv4} route entry size. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_aa5d85c353b24e90ee8fd3b90f9c23643}{
static const size\_\-t {\bfseries SIZE} = 20}
\label{classPacketRouteEntry_3_01IPv4_01_4_aa5d85c353b24e90ee8fd3b90f9c23643}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a577432205b58d6a1f88a493e3ab84f3e}{
static const uint16\_\-t {\bfseries ADDR\_\-FAMILY} = 2}
\label{classPacketRouteEntry_3_01IPv4_01_4_a577432205b58d6a1f88a493e3ab84f3e}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a58d4b9bdb2dd6b9dd72f6c2575a4969d}{
static const uint16\_\-t {\bfseries ADDR\_\-FAMILY\_\-DUMP} = 0}
\label{classPacketRouteEntry_3_01IPv4_01_4_a58d4b9bdb2dd6b9dd72f6c2575a4969d}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a1aa8627560980660f7048831415eef14}{
static const uint16\_\-t {\bfseries ADDR\_\-FAMILY\_\-AUTH} = 0xffff}
\label{classPacketRouteEntry_3_01IPv4_01_4_a1aa8627560980660f7048831415eef14}

\end{DoxyCompactItemize}
\subsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a541456e33b5bf22c0f1f8fc0b48948f9}{
static const size\_\-t {\bfseries \_\-af\_\-sizeof} = 2}
\label{classPacketRouteEntry_3_01IPv4_01_4_a541456e33b5bf22c0f1f8fc0b48948f9}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a586217481f11ab533ef049baae3bc4bf}{
static const size\_\-t {\bfseries \_\-tag\_\-sizeof} = 2}
\label{classPacketRouteEntry_3_01IPv4_01_4_a586217481f11ab533ef049baae3bc4bf}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a97411826ee5cb6446db7fdf79eb5047d}{
static const size\_\-t {\bfseries \_\-addr\_\-sizeof} = 4}
\label{classPacketRouteEntry_3_01IPv4_01_4_a97411826ee5cb6446db7fdf79eb5047d}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a99b7afa5d50b19945cb68f4a6e8b06fb}{
static const size\_\-t {\bfseries \_\-mask\_\-sizeof} = 4}
\label{classPacketRouteEntry_3_01IPv4_01_4_a99b7afa5d50b19945cb68f4a6e8b06fb}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a0c8bd76bca88b00744f7d26c45024715}{
static const size\_\-t {\bfseries \_\-nh\_\-sizeof} = 4}
\label{classPacketRouteEntry_3_01IPv4_01_4_a0c8bd76bca88b00744f7d26c45024715}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_af03a434a49e003eb5728182308928073}{
static const size\_\-t {\bfseries \_\-metric\_\-sizeof} = 4}
\label{classPacketRouteEntry_3_01IPv4_01_4_af03a434a49e003eb5728182308928073}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a02a6366e207c044bc140a8ecb2ec4488}{
static const size\_\-t {\bfseries \_\-af\_\-offset} = 0}
\label{classPacketRouteEntry_3_01IPv4_01_4_a02a6366e207c044bc140a8ecb2ec4488}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a8448c548795be1c97df7a563127c67b5}{
static const size\_\-t {\bfseries \_\-tag\_\-offset} = \_\-af\_\-offset + \_\-af\_\-sizeof}
\label{classPacketRouteEntry_3_01IPv4_01_4_a8448c548795be1c97df7a563127c67b5}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_ad52f272cf0249015c7f4c28e6dc6c809}{
static const size\_\-t {\bfseries \_\-addr\_\-offset} = \_\-tag\_\-offset + \_\-tag\_\-sizeof}
\label{classPacketRouteEntry_3_01IPv4_01_4_ad52f272cf0249015c7f4c28e6dc6c809}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_ac5bb2bb8e9acedfdb8172a4c1d5ff21b}{
static const size\_\-t {\bfseries \_\-mask\_\-offset} = \_\-addr\_\-offset + \_\-addr\_\-sizeof}
\label{classPacketRouteEntry_3_01IPv4_01_4_ac5bb2bb8e9acedfdb8172a4c1d5ff21b}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_afd23c4e57e2f0c0f62f17ab51fe6205f}{
static const size\_\-t {\bfseries \_\-nh\_\-offset} = \_\-mask\_\-offset + \_\-mask\_\-sizeof}
\label{classPacketRouteEntry_3_01IPv4_01_4_afd23c4e57e2f0c0f62f17ab51fe6205f}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_aece13ea282523c0c970a3670ac8dc38e}{
static const size\_\-t {\bfseries \_\-metric\_\-offset} = \_\-nh\_\-offset + \_\-nh\_\-sizeof}
\label{classPacketRouteEntry_3_01IPv4_01_4_aece13ea282523c0c970a3670ac8dc38e}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a0240ae9845865fe519625df0849cd8a5}{
const uint8\_\-t $\ast$ {\bfseries \_\-data}}
\label{classPacketRouteEntry_3_01IPv4_01_4_a0240ae9845865fe519625df0849cd8a5}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a24f179e0e51bf700ea040661daf085a0}{
const uint8\_\-t $\ast$ {\bfseries \_\-af}}
\label{classPacketRouteEntry_3_01IPv4_01_4_a24f179e0e51bf700ea040661daf085a0}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a17118b98c5ec4e4e94c10e077a08d009}{
const uint8\_\-t $\ast$ {\bfseries \_\-tag}}
\label{classPacketRouteEntry_3_01IPv4_01_4_a17118b98c5ec4e4e94c10e077a08d009}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_adac7790f05b49839e9751d0718b5aa86}{
const uint8\_\-t $\ast$ {\bfseries \_\-addr}}
\label{classPacketRouteEntry_3_01IPv4_01_4_adac7790f05b49839e9751d0718b5aa86}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_aa757ab366268b184687d74bd9ff1f882}{
const uint8\_\-t $\ast$ {\bfseries \_\-mask}}
\label{classPacketRouteEntry_3_01IPv4_01_4_aa757ab366268b184687d74bd9ff1f882}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a40922e47296f41edde432e17b87bd619}{
const uint8\_\-t $\ast$ {\bfseries \_\-nh}}
\label{classPacketRouteEntry_3_01IPv4_01_4_a40922e47296f41edde432e17b87bd619}

\item 
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a417d5e39c9b6a9b0a67099b2a3e27ff2}{
const uint8\_\-t $\ast$ {\bfseries \_\-metric}}
\label{classPacketRouteEntry_3_01IPv4_01_4_a417d5e39c9b6a9b0a67099b2a3e27ff2}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$$>$ class PacketRouteEntry$<$ IPv4 $>$}

\hyperlink{classRoute}{Route} Entry appearing in RIP packets on \hyperlink{classIPv4}{IPv4}. This payload is carried in RIP packets on \hyperlink{classIPv4}{IPv4}. The entry contains all \hyperlink{protocolthe-p}{the} fields for RIPv2. RIPv1 and RIPv2 use \hyperlink{protocolthe-p}{the} same size structure, except RIPv1 treats \hyperlink{protocolthe-p}{the} route tag, subnet mask and nexthop fields as Must-\/Be-\/Zero (MBZ) items. The interpretation of \hyperlink{protocolthe-p}{the} fields is described in RFC2453.

All items in \hyperlink{protocolthe-p}{the} route entry are stored in network order. The accessor methods provide values in host order, and \hyperlink{protocolthe-p}{the} modifiers take arguments in host order.

The route entry has \hyperlink{protocolthe-p}{the} following content:

af (2 bytes): // The address family tag (2 bytes): // Tag addr (4 bytes): // \hyperlink{structAddress}{Address} mask (4 bytes): // Mask nh (4 bytes): // \hyperlink{classNext}{Next} hop metric (4 bytes): // Metric 

\subsection{Member Function Documentation}
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a7cc9071b2daf33897214b4daa1977d40}{
\index{PacketRouteEntry$<$ IPv4 $>$@{PacketRouteEntry$<$ IPv4 $>$}!is\_\-auth\_\-entry@{is\_\-auth\_\-entry}}
\index{is\_\-auth\_\-entry@{is\_\-auth\_\-entry}!PacketRouteEntry< IPv4 >@{PacketRouteEntry$<$ IPv4 $>$}}
\subsubsection[{is\_\-auth\_\-entry}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf PacketRouteEntry}$<$ {\bf IPv4} $>$::is\_\-auth\_\-entry (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPacketRouteEntry_3_01IPv4_01_4_a7cc9071b2daf33897214b4daa1977d40}
\begin{DoxyReturn}{Returns}
true if route entry has properties of an authentication entry. 
\end{DoxyReturn}
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_a1f09ed4b6826738ac59455e114ea3574}{
\index{PacketRouteEntry$<$ IPv4 $>$@{PacketRouteEntry$<$ IPv4 $>$}!is\_\-table\_\-request@{is\_\-table\_\-request}}
\index{is\_\-table\_\-request@{is\_\-table\_\-request}!PacketRouteEntry< IPv4 >@{PacketRouteEntry$<$ IPv4 $>$}}
\subsubsection[{is\_\-table\_\-request}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf PacketRouteEntry}$<$ {\bf IPv4} $>$::is\_\-table\_\-request (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPacketRouteEntry_3_01IPv4_01_4_a1f09ed4b6826738ac59455e114ea3574}
\begin{DoxyReturn}{Returns}
true if route entry has properties of a table request. 
\end{DoxyReturn}
\hypertarget{classPacketRouteEntry_3_01IPv4_01_4_abe2df4a4ec71a2228469f3ef81f4cfac}{
\index{PacketRouteEntry$<$ IPv4 $>$@{PacketRouteEntry$<$ IPv4 $>$}!size@{size}}
\index{size@{size}!PacketRouteEntry< IPv4 >@{PacketRouteEntry$<$ IPv4 $>$}}
\subsubsection[{size}]{\setlength{\rightskip}{0pt plus 5cm}static size\_\-t {\bf PacketRouteEntry}$<$ {\bf IPv4} $>$::size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classPacketRouteEntry_3_01IPv4_01_4_abe2df4a4ec71a2228469f3ef81f4cfac}


Get \hyperlink{protocolthe-p}{the} RIP \hyperlink{classIPv4}{IPv4} route entry size. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} RIP \hyperlink{classIPv4}{IPv4} route entry size. 
\end{DoxyReturn}


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