\hypertarget{classIpHeader6}{
\section{IpHeader6 Class Reference}
\label{classIpHeader6}\index{IpHeader6@{IpHeader6}}
}


\hyperlink{classIPv6}{IPv6} packet header.  




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

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

\item 
const uint8\_\-t $\ast$ \hyperlink{classIpHeader6_adc71e16a5a1dcd62012686e80bd98c20}{data} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} buffer data. \item\end{DoxyCompactList}\item 
\hypertarget{classIpHeader6_afc5b167abd4b10e56cacf6a2ac20057e}{
uint32\_\-t \hyperlink{classIpHeader6_afc5b167abd4b10e56cacf6a2ac20057e}{ip\_\-vtc\_\-flow} () const }
\label{classIpHeader6_afc5b167abd4b10e56cacf6a2ac20057e}

\begin{DoxyCompactList}\small\item\em Methods to get various IP header fields. \item\end{DoxyCompactList}\item 
\hypertarget{classIpHeader6_acf976629fbaa19a9aebbee6fb50e9ebc}{
uint16\_\-t {\bfseries ip\_\-plen} () const }
\label{classIpHeader6_acf976629fbaa19a9aebbee6fb50e9ebc}

\item 
\hypertarget{classIpHeader6_ad30ea890f390317176dba3bcddbb15b5}{
uint8\_\-t {\bfseries ip\_\-nxt} () const }
\label{classIpHeader6_ad30ea890f390317176dba3bcddbb15b5}

\item 
\hypertarget{classIpHeader6_a0b99a8c975c3b3ecf75c003e4bb47d0b}{
uint8\_\-t {\bfseries ip\_\-hlim} () const }
\label{classIpHeader6_a0b99a8c975c3b3ecf75c003e4bb47d0b}

\item 
\hypertarget{classIpHeader6_a3138126920d739f28872e263d4191a2e}{
\hyperlink{classIPv6}{IPv6} {\bfseries ip\_\-src} () const }
\label{classIpHeader6_a3138126920d739f28872e263d4191a2e}

\item 
\hypertarget{classIpHeader6_adab19e0f5560f66621f55a4465b502c1}{
\hyperlink{classIPv6}{IPv6} {\bfseries ip\_\-dst} () const }
\label{classIpHeader6_adab19e0f5560f66621f55a4465b502c1}

\item 
uint8\_\-t \hyperlink{classIpHeader6_a0d922b1fc960a1f15b8294e51cc5a7ce}{ip\_\-version} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} IP protocol version of \hyperlink{protocolthe-p}{the} header. \item\end{DoxyCompactList}\item 
uint8\_\-t \hyperlink{classIpHeader6_a94c2228bb8a2ac07f1a8b21d57c1bcba}{ip\_\-traffic\_\-class} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} traffic class. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIpHeader6_a62c34c8a8333fce513998f8274c02e1c}{ip\_\-flow\_\-label} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} flow label. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIpHeader6_abea7982e423ca4d6f9173b07d95f8588}{is\_\-valid\_\-version} () const 
\begin{DoxyCompactList}\small\item\em Test whether \hyperlink{protocolthe-p}{the} IP header version is valid. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static size\_\-t \hyperlink{classIpHeader6_a17a7198ffba46713ab1ac44e2969b200}{size} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} packet header size. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIpHeader6_a0de7393eea8c3cc6d9c845dd4ef82a28}{
static const size\_\-t {\bfseries SIZE} = 40}
\label{classIpHeader6_a0de7393eea8c3cc6d9c845dd4ef82a28}

\item 
\hypertarget{classIpHeader6_a95a8b77828ebb92012f6f9e25c27ead5}{
static const uint8\_\-t {\bfseries IP\_\-VERSION} = 6}
\label{classIpHeader6_a95a8b77828ebb92012f6f9e25c27ead5}

\end{DoxyCompactItemize}
\subsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIpHeader6_a5813ec5b2029420adbc240b0e18d65ad}{
static const uint32\_\-t {\bfseries VERSION\_\-MASK} = 0xf0000000}
\label{classIpHeader6_a5813ec5b2029420adbc240b0e18d65ad}

\item 
\hypertarget{classIpHeader6_a87abe4da357628a7a19e21478aa67ece}{
static const uint32\_\-t {\bfseries TRAFFIC\_\-CLASS\_\-MASK} = 0x0ff00000}
\label{classIpHeader6_a87abe4da357628a7a19e21478aa67ece}

\item 
\hypertarget{classIpHeader6_a1aeb79834e4af33f72d52aab3c116486}{
static const uint32\_\-t {\bfseries FLOW\_\-LABEL\_\-MASK} = 0x000fffff}
\label{classIpHeader6_a1aeb79834e4af33f72d52aab3c116486}

\item 
\hypertarget{classIpHeader6_a3572dffa46313fee589b37bb267a2802}{
static const size\_\-t {\bfseries VERSION\_\-SHIFT} = 28}
\label{classIpHeader6_a3572dffa46313fee589b37bb267a2802}

\item 
\hypertarget{classIpHeader6_a3301d91b74aa54570d7becef121455f8}{
static const size\_\-t {\bfseries TRAFFIC\_\-CLASS\_\-SHIFT} = 20}
\label{classIpHeader6_a3301d91b74aa54570d7becef121455f8}

\item 
\hypertarget{classIpHeader6_a03594aa3b00c2bdcfd40118141c2ade3}{
static const size\_\-t {\bfseries FLOW\_\-LABEL\_\-SHIFT} = 0}
\label{classIpHeader6_a03594aa3b00c2bdcfd40118141c2ade3}

\item 
\hypertarget{classIpHeader6_a05774a675874457b0f01422dbab448b0}{
static const size\_\-t {\bfseries \_\-ip\_\-vtc\_\-flow\_\-sizeof} = 4}
\label{classIpHeader6_a05774a675874457b0f01422dbab448b0}

\item 
\hypertarget{classIpHeader6_ada4b93be2dd0b15a715708c98e4ca292}{
static const size\_\-t {\bfseries \_\-ip\_\-plen\_\-sizeof} = 2}
\label{classIpHeader6_ada4b93be2dd0b15a715708c98e4ca292}

\item 
\hypertarget{classIpHeader6_a4717e488d3fd009957f1618a14924e65}{
static const size\_\-t {\bfseries \_\-ip\_\-nxt\_\-sizeof} = 1}
\label{classIpHeader6_a4717e488d3fd009957f1618a14924e65}

\item 
\hypertarget{classIpHeader6_a2ff7002e23ca03c59150f40fdc61796b}{
static const size\_\-t {\bfseries \_\-ip\_\-hlim\_\-sizeof} = 1}
\label{classIpHeader6_a2ff7002e23ca03c59150f40fdc61796b}

\item 
\hypertarget{classIpHeader6_a69a0d64ac3d8ee17a962f6e6ebadf1d6}{
static const size\_\-t {\bfseries \_\-ip\_\-src\_\-sizeof} = 16}
\label{classIpHeader6_a69a0d64ac3d8ee17a962f6e6ebadf1d6}

\item 
\hypertarget{classIpHeader6_aba263500619e019242fc4b1d66b7fd6f}{
static const size\_\-t {\bfseries \_\-ip\_\-dst\_\-sizeof} = 16}
\label{classIpHeader6_aba263500619e019242fc4b1d66b7fd6f}

\item 
\hypertarget{classIpHeader6_a35d1a8bc0fb2e8b8ddc49ae2eb4769bd}{
static const size\_\-t {\bfseries \_\-ip\_\-vtc\_\-flow\_\-offset} = 0}
\label{classIpHeader6_a35d1a8bc0fb2e8b8ddc49ae2eb4769bd}

\item 
\hypertarget{classIpHeader6_a7eeb8166beaa91b5c4091778f79cbbb5}{
static const size\_\-t {\bfseries \_\-ip\_\-plen\_\-offset} = \_\-ip\_\-vtc\_\-flow\_\-offset + \_\-ip\_\-vtc\_\-flow\_\-sizeof}
\label{classIpHeader6_a7eeb8166beaa91b5c4091778f79cbbb5}

\item 
\hypertarget{classIpHeader6_a4a8aa3a2c31f02c2e9619d519d9eeb8f}{
static const size\_\-t {\bfseries \_\-ip\_\-nxt\_\-offset} = \_\-ip\_\-plen\_\-offset + \_\-ip\_\-plen\_\-sizeof}
\label{classIpHeader6_a4a8aa3a2c31f02c2e9619d519d9eeb8f}

\item 
\hypertarget{classIpHeader6_ae1b1e78ca8759633593ee75836aa8da6}{
static const size\_\-t {\bfseries \_\-ip\_\-hlim\_\-offset} = \_\-ip\_\-nxt\_\-offset + \_\-ip\_\-nxt\_\-sizeof}
\label{classIpHeader6_ae1b1e78ca8759633593ee75836aa8da6}

\item 
\hypertarget{classIpHeader6_a37b3e4fa96411865d7a6a489d8048851}{
static const size\_\-t {\bfseries \_\-ip\_\-src\_\-offset} = \_\-ip\_\-hlim\_\-offset + \_\-ip\_\-hlim\_\-sizeof}
\label{classIpHeader6_a37b3e4fa96411865d7a6a489d8048851}

\item 
\hypertarget{classIpHeader6_aad5f4a92d8541cdbb9c4495059f512ec}{
static const size\_\-t {\bfseries \_\-ip\_\-dst\_\-offset} = \_\-ip\_\-src\_\-offset + \_\-ip\_\-src\_\-sizeof}
\label{classIpHeader6_aad5f4a92d8541cdbb9c4495059f512ec}

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

\item 
\hypertarget{classIpHeader6_a41ae765113ee61cf18eada53072bd046}{
const uint8\_\-t $\ast$ {\bfseries \_\-ip\_\-vtc\_\-flow}}
\label{classIpHeader6_a41ae765113ee61cf18eada53072bd046}

\item 
\hypertarget{classIpHeader6_a7fb30ac18f8e68a7418ab5d9b9a866ab}{
const uint8\_\-t $\ast$ {\bfseries \_\-ip\_\-plen}}
\label{classIpHeader6_a7fb30ac18f8e68a7418ab5d9b9a866ab}

\item 
\hypertarget{classIpHeader6_a58c8083c63de4a872842dc184453585c}{
const uint8\_\-t $\ast$ {\bfseries \_\-ip\_\-nxt}}
\label{classIpHeader6_a58c8083c63de4a872842dc184453585c}

\item 
\hypertarget{classIpHeader6_a3fd26c2379af3eb56918c5c38e4142a4}{
const uint8\_\-t $\ast$ {\bfseries \_\-ip\_\-hlim}}
\label{classIpHeader6_a3fd26c2379af3eb56918c5c38e4142a4}

\item 
\hypertarget{classIpHeader6_aa04a5d612573598cbb22920dbef237e6}{
const uint8\_\-t $\ast$ {\bfseries \_\-ip\_\-src}}
\label{classIpHeader6_aa04a5d612573598cbb22920dbef237e6}

\item 
\hypertarget{classIpHeader6_a4c25f21a2195b54991a4cbe672579184}{
const uint8\_\-t $\ast$ {\bfseries \_\-ip\_\-dst}}
\label{classIpHeader6_a4c25f21a2195b54991a4cbe672579184}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{classIPv6}{IPv6} packet header. The \hyperlink{classIPv6}{IPv6} packet header has \hyperlink{protocolthe-p}{the} following content:

ip\_\-vtc\_\-flow (4 bytes): // 4 bits vers., 8 bits traf. class, 20 bits flow-\/ID ip\_\-plen (2 bytes): // Payload length ip\_\-nxt (1 byte): // \hyperlink{classNext}{Next} header ip\_\-hlim (1 byte): // Hop limit ip\_\-src (16 bytes): // Source address ip\_\-dst (16 bytes): // Destination address 

\subsection{Member Function Documentation}
\hypertarget{classIpHeader6_adc71e16a5a1dcd62012686e80bd98c20}{
\index{IpHeader6@{IpHeader6}!data@{data}}
\index{data@{data}!IpHeader6@{IpHeader6}}
\subsubsection[{data}]{\setlength{\rightskip}{0pt plus 5cm}const uint8\_\-t$\ast$ IpHeader6::data (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIpHeader6_adc71e16a5a1dcd62012686e80bd98c20}


Get \hyperlink{protocolthe-p}{the} buffer data. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} buffer data. 
\end{DoxyReturn}
\hypertarget{classIpHeader6_a62c34c8a8333fce513998f8274c02e1c}{
\index{IpHeader6@{IpHeader6}!ip\_\-flow\_\-label@{ip\_\-flow\_\-label}}
\index{ip\_\-flow\_\-label@{ip\_\-flow\_\-label}!IpHeader6@{IpHeader6}}
\subsubsection[{ip\_\-flow\_\-label}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IpHeader6::ip\_\-flow\_\-label (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIpHeader6_a62c34c8a8333fce513998f8274c02e1c}


Get \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} flow label. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} flow label. 
\end{DoxyReturn}
\hypertarget{classIpHeader6_a94c2228bb8a2ac07f1a8b21d57c1bcba}{
\index{IpHeader6@{IpHeader6}!ip\_\-traffic\_\-class@{ip\_\-traffic\_\-class}}
\index{ip\_\-traffic\_\-class@{ip\_\-traffic\_\-class}!IpHeader6@{IpHeader6}}
\subsubsection[{ip\_\-traffic\_\-class}]{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t IpHeader6::ip\_\-traffic\_\-class (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIpHeader6_a94c2228bb8a2ac07f1a8b21d57c1bcba}


Get \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} traffic class. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} traffic class. 
\end{DoxyReturn}
\hypertarget{classIpHeader6_a0d922b1fc960a1f15b8294e51cc5a7ce}{
\index{IpHeader6@{IpHeader6}!ip\_\-version@{ip\_\-version}}
\index{ip\_\-version@{ip\_\-version}!IpHeader6@{IpHeader6}}
\subsubsection[{ip\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}uint8\_\-t IpHeader6::ip\_\-version (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIpHeader6_a0d922b1fc960a1f15b8294e51cc5a7ce}


Get \hyperlink{protocolthe-p}{the} IP protocol version of \hyperlink{protocolthe-p}{the} header. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} IP protocol version of \hyperlink{protocolthe-p}{the} header. 
\end{DoxyReturn}
\hypertarget{classIpHeader6_abea7982e423ca4d6f9173b07d95f8588}{
\index{IpHeader6@{IpHeader6}!is\_\-valid\_\-version@{is\_\-valid\_\-version}}
\index{is\_\-valid\_\-version@{is\_\-valid\_\-version}!IpHeader6@{IpHeader6}}
\subsubsection[{is\_\-valid\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}bool IpHeader6::is\_\-valid\_\-version (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIpHeader6_abea7982e423ca4d6f9173b07d95f8588}


Test whether \hyperlink{protocolthe-p}{the} IP header version is valid. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} IP header version is valid, otherwise false. 
\end{DoxyReturn}
\hypertarget{classIpHeader6_a17a7198ffba46713ab1ac44e2969b200}{
\index{IpHeader6@{IpHeader6}!size@{size}}
\index{size@{size}!IpHeader6@{IpHeader6}}
\subsubsection[{size}]{\setlength{\rightskip}{0pt plus 5cm}static size\_\-t IpHeader6::size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIpHeader6_a17a7198ffba46713ab1ac44e2969b200}


Get \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} packet header size. 

Note that this is \hyperlink{protocolthe-p}{the} header size only without any extention headers.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} packet header size. 
\end{DoxyReturn}


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