\hypertarget{classIPv6}{
\section{IPv6 Class Reference}
\label{classIPv6}\index{IPv6@{IPv6}}
}


\hyperlink{classIPv6}{IPv6} address class.  




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

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \{ {\bfseries AF} =  AF\_\-INET6
 \}
\begin{DoxyCompactList}\small\item\em Constant for address family. \item\end{DoxyCompactList}\item 
enum \{ {\bfseries IPV} =  6
 \}
\begin{DoxyCompactList}\small\item\em Constant for IP protocol version. \item\end{DoxyCompactList}\item 
\hypertarget{classIPv6_a7c7e74cfa4749d8696922e79f578ba02}{
typedef struct in6\_\-addr {\bfseries InAddrType}}
\label{classIPv6_a7c7e74cfa4749d8696922e79f578ba02}

\item 
\hypertarget{classIPv6_ad906c58645a788c0ed17a11c5f94735f}{
typedef struct sockaddr\_\-in6 {\bfseries SockAddrType}}
\label{classIPv6_ad906c58645a788c0ed17a11c5f94735f}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIPv6_afa4c6d6174f6efe890e6455e80c4373a}{IPv6} ()
\begin{DoxyCompactList}\small\item\em Default constructor. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6_ac733d527ddd2ef1a475c953ed2611be8}{IPv6} (const uint8\_\-t $\ast$from\_\-uint8)
\begin{DoxyCompactList}\small\item\em Constructor from a (uint8\_\-t $\ast$) memory pointer. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6_aaf1c218c549fa4ce3341c457cd1e99cf}{IPv6} (const uint32\_\-t $\ast$from\_\-uint32)
\begin{DoxyCompactList}\small\item\em Constructor from a (uint32\_\-t $\ast$) memory pointer. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6_a1f1f08f743544fbe59ef5d11e6d1c266}{IPv6} (const in6\_\-addr \&from\_\-in6\_\-addr)
\begin{DoxyCompactList}\small\item\em Constructor from in6\_\-addr structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6_a9bbf7d3be4d00b24fa663a3629986141}{IPv6} (const sockaddr \&sa)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6_a983776e13b3b8f3bc3bd0f0a2e323e87}{IPv6} (const sockaddr\_\-storage \&ss)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr\_\-storage structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6_a0e41167380546a0b5e41f4a3fb09f7d2}{IPv6} (const sockaddr\_\-in6 \&sin6)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr\_\-in6 structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6_a07405cb05824bfda097f0492689dc4ad}{IPv6} (const char $\ast$from\_\-cstring)  throw (InvalidString)
\begin{DoxyCompactList}\small\item\em Constructor from a string. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_a109850b66cdabbdb08d2814f48f5c6a4}{copy\_\-out} (uint8\_\-t $\ast$to\_\-uint8) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to specified memory location. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_a0a8708079f8b088c82808fe9dce27aad}{copy\_\-out} (in6\_\-addr \&to\_\-in6\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to an in6\_\-addr structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_ae5c83b93cbff545518b002f420e6e1e5}{copy\_\-out} (sockaddr \&to\_\-sockaddr) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to a sockaddr structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_a18b91c3c314e913c6b1896e0b4775367}{copy\_\-out} (sockaddr\_\-storage \&to\_\-sockaddr\_\-storage) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to a sockaddr\_\-storage structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_ac60114c525bbf49c15daab512f6b271b}{copy\_\-out} (sockaddr\_\-in6 \&to\_\-sockaddr\_\-in6) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to a sockaddr\_\-in6 structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_a4b7e0850c40111fd04cdbab7334a47e1}{copy\_\-in} (const uint8\_\-t $\ast$from\_\-uint8)
\begin{DoxyCompactList}\small\item\em Copy a raw \hyperlink{classIPv6}{IPv6} address from specificed memory location into \hyperlink{classIPv6}{IPv6} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_ade0b0abfd0e85a8f0c539d8e3c758873}{copy\_\-in} (const in6\_\-addr \&from\_\-in6\_\-addr)
\begin{DoxyCompactList}\small\item\em Copy a raw \hyperlink{classIPv6}{IPv6} address from a in6\_\-addr structure into \hyperlink{classIPv6}{IPv6} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_a8bbf6281deb4314be3706cf3e04c80e0}{copy\_\-in} (const sockaddr \&from\_\-sockaddr)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw \hyperlink{classIPv6}{IPv6} address from a sockaddr structure into \hyperlink{classIPv6}{IPv6} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_a15081bc73264580517ba860f92974451}{copy\_\-in} (const sockaddr\_\-storage \&from\_\-sockaddr\_\-storage)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw \hyperlink{classIPv6}{IPv6} address from a sockaddr\_\-storage structure into \hyperlink{classIPv6}{IPv6} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv6_ab4d612efd332dee6378439c1bd24f802}{copy\_\-in} (const sockaddr\_\-in6 \&from\_\-sockaddr\_\-in6)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address from sockaddr\_\-in6 structure into \hyperlink{classIPv6}{IPv6} structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \hyperlink{classIPv6_a4f2a767b556de48141a5868ef6e0f48f}{operator$\sim$} () const 
\begin{DoxyCompactList}\small\item\em Bitwise-\/Negation Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \hyperlink{classIPv6_a7c938b5d25c511859eea3af756df34fd}{operator$|$} (const \hyperlink{classIPv6}{IPv6} \&other) const 
\begin{DoxyCompactList}\small\item\em OR Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \hyperlink{classIPv6_a619af3b3fe823609e4fabc775cfa4458}{operator\&} (const \hyperlink{classIPv6}{IPv6} \&other) const 
\begin{DoxyCompactList}\small\item\em AND Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \hyperlink{classIPv6_a83f16a2ecc630d7913fa699dc6fb4b74}{operator$^\wedge$} (const \hyperlink{classIPv6}{IPv6} \&other) const 
\begin{DoxyCompactList}\small\item\em XOR Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \hyperlink{classIPv6_a93bf8512dd76075cee046871c82ed136}{operator$<$$<$} (uint32\_\-t left\_\-shift) const 
\begin{DoxyCompactList}\small\item\em Operator $<$$<$. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \hyperlink{classIPv6_a048dd69613045f7f20ff12438d062cc9}{operator$>$$>$} (uint32\_\-t right\_\-shift) const 
\begin{DoxyCompactList}\small\item\em Operator $>$$>$ \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a6f4faecb0e4627b4ef995b80e81052d0}{operator$<$} (const \hyperlink{classIPv6}{IPv6} \&other) const 
\begin{DoxyCompactList}\small\item\em Less-\/Than Operator. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a8b1d53929ca1e20991d9f5830bbfa5df}{operator==} (const \hyperlink{classIPv6}{IPv6} \&other) const 
\begin{DoxyCompactList}\small\item\em Equality Operator. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_ad84ea54d9b23cdb4b4ee247daa106cc1}{operator!=} (const \hyperlink{classIPv6}{IPv6} \&other) const 
\begin{DoxyCompactList}\small\item\em Not-\/Equal Operator. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_aa1f35750bd9f3560a3eafd8c7ca853f3}{operator==} (const \hyperlink{classIPvXRange}{IPv6Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Equality Operator for \hyperlink{classIPv6}{IPv6} against IPv6Range operand. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_af2a8ef80324ba4fdfed86a470990e624}{operator!=} (const \hyperlink{classIPvXRange}{IPv6Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Non-\/equality Operator for \hyperlink{classIPv6}{IPv6} against IPv6Range operand. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a41cc8761470b84001e2390e04fbc3804}{operator$<$} (const \hyperlink{classIPvXRange}{IPv6Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Less-\/than comparison for \hyperlink{classIPv6}{IPv6} against IPv6Range operand. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a0ebbd9b07fb81a7193082858f1e31ffa}{operator$<$=} (const \hyperlink{classIPvXRange}{IPv6Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Less-\/than or equal comparison for \hyperlink{classIPv6}{IPv6} against IPv6Range. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_afbd8a9def9733bcf27fd9e50c0be1450}{operator$>$} (const \hyperlink{classIPvXRange}{IPv6Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Greater-\/than comparison for \hyperlink{classIPv6}{IPv6} against IPv6Range operand. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a39a2086fe522b27399e61c62b34af3dc}{operator$>$=} (const \hyperlink{classIPvXRange}{IPv6Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Greater-\/than or equal comparison for \hyperlink{classIPv6}{IPv6} against IPv6Range. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \& \hyperlink{classIPv6_a5ede043c716dbd8a5b4ba9f99b5fce9a}{operator-\/-\/} ()
\begin{DoxyCompactList}\small\item\em Decrement Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \& \hyperlink{classIPv6_a64b3cc246a4a76002c507098a2108790}{operator++} ()
\begin{DoxyCompactList}\small\item\em Increment Operator. \item\end{DoxyCompactList}\item 
string \hyperlink{classIPv6_a1c792e7ba7b0de9b6cbe288de994b935}{str} () const 
\begin{DoxyCompactList}\small\item\em Convert this address from binary form to presentation format. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a1fd870910d5ee3dd41a1dcb821130701}{is\_\-zero} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is numerically zero. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a5bf690f4780edd9a8913e4d876820f7e}{is\_\-unicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid unicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_acd913b2de29950a595f5b3615371da8e}{is\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a370635f7be7b503c68b98e6bbb0ccc40}{is\_\-linklocal\_\-unicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid link-\/local unicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a66c788056177d6e0f453a0817dfde90b}{is\_\-interfacelocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid interface-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a6ccf199d4cbb091d90cfb5c66281d70d}{is\_\-nodelocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid node-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_afc40ffb8b3214f29819a848acc018223}{is\_\-linklocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid link-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv6_a554e4c37cd7634977e7edb72b677d77c}{is\_\-loopback} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is \hyperlink{protocolthe-p}{the} loopback address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv6}{IPv6} \hyperlink{classIPv6_aa9d9a2cbd16fd823fd44a71a3f725f75}{mask\_\-by\_\-prefix\_\-len} (uint32\_\-t prefix\_\-len) const   throw (InvalidNetmaskLength)
\begin{DoxyCompactList}\small\item\em Make an \hyperlink{classIPv6}{IPv6} address prefix. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv6_acf7349d5ae51585c1341ab1018f4b759}{mask\_\-len} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length. \item\end{DoxyCompactList}\item 
const uint32\_\-t $\ast$ \hyperlink{classIPv6_a2b15b39ba10d5c06954fe6612bfa80b8}{addr} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} uint32\_\-t raw value of this address. \item\end{DoxyCompactList}\item 
void \hyperlink{classIPv6_a33df46a1ac8b4e34bd6defbbd1571a80}{set\_\-addr} (const uint8\_\-t $\ast$from\_\-uint8)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} address value. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv6_ad3e9b53b6c1d9def107a49e20e1b5a05}{bits} (uint32\_\-t lsb, uint32\_\-t len) const 
\begin{DoxyCompactList}\small\item\em Extract bits from an address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv6_aa88cd469ec79edfc52767c8d83973fc5}{bit\_\-count} () const 
\begin{DoxyCompactList}\small\item\em Count \hyperlink{protocolthe-p}{the} number of bits that are set in this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv6_a4f950344b72d2497d02d2d660be6f8bc}{leading\_\-zero\_\-count} () const 
\begin{DoxyCompactList}\small\item\em Count \hyperlink{protocolthe-p}{the} number of leading zeroes in this address. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static size\_\-t \hyperlink{classIPv6_a314d854f0a9882b1e0492f9f05636aff}{addr\_\-bytelen} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address octet-\/size. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv6_a460153cc38e8714957ae355b333416f1}{addr\_\-bitlen} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address bit-\/length. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv6_a5644a027d93b359500e0a4ab610c4a30}{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} multicast base address. \item\end{DoxyCompactList}\item 
static const \hyperlink{classIPv6}{IPv6} \& \hyperlink{classIPv6_aba06fc9f34be1c85747b57ad4f22d391}{make\_\-prefix} (uint32\_\-t mask\_\-len)  throw (InvalidNetmaskLength)
\begin{DoxyCompactList}\small\item\em Make an \hyperlink{classIPv6}{IPv6} mask prefix. \item\end{DoxyCompactList}\item 
static int \hyperlink{classIPv6_a03aad7afdc79471a57a7ede689812ddc}{af} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address family. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv6_a3fe11603b61e630eda816910d98cbf18}{ip\_\-version} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} IP protocol version. \item\end{DoxyCompactList}\item 
static const string \& \hyperlink{classIPv6_a28387f42aa9eef929e3b65b0faa3be07}{ip\_\-version\_\-str} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version. \item\end{DoxyCompactList}\item 
\hypertarget{classIPv6_aae107b1308261861f7be34d0ceae76ff}{
static const \hyperlink{classIPv6}{IPv6} \& \hyperlink{classIPv6_aae107b1308261861f7be34d0ceae76ff}{ZERO} (int af=AF\_\-INET6)}
\label{classIPv6_aae107b1308261861f7be34d0ceae76ff}

\begin{DoxyCompactList}\small\item\em Pre-\/defined \hyperlink{classIPv6}{IPv6} address constants. \item\end{DoxyCompactList}\item 
\hypertarget{classIPv6_a02cb2e49924bd9b6b540ff2cc47928e1}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries ANY} (int af=AF\_\-INET6)}
\label{classIPv6_a02cb2e49924bd9b6b540ff2cc47928e1}

\item 
\hypertarget{classIPv6_adfbbddb5c88b7413acdf3c249f2a6b7c}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries ALL\_\-ONES} (int af=AF\_\-INET6)}
\label{classIPv6_adfbbddb5c88b7413acdf3c249f2a6b7c}

\item 
\hypertarget{classIPv6_abdc37cd2f77f109cd2ec26e2daa932c8}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries LOOPBACK} (int af=AF\_\-INET6)}
\label{classIPv6_abdc37cd2f77f109cd2ec26e2daa932c8}

\item 
\hypertarget{classIPv6_a80295166825993d360f9319b9003a556}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries MULTICAST\_\-BASE} (int af=AF\_\-INET6)}
\label{classIPv6_a80295166825993d360f9319b9003a556}

\item 
\hypertarget{classIPv6_a4c4dfb816d7ea7ab3fae3cf1268c42e9}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries MULTICAST\_\-ALL\_\-SYSTEMS} (int af=AF\_\-INET6)}
\label{classIPv6_a4c4dfb816d7ea7ab3fae3cf1268c42e9}

\item 
\hypertarget{classIPv6_a1e35d4b4c21b3219aa96f6c26ae54865}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries MULTICAST\_\-ALL\_\-ROUTERS} (int af=AF\_\-INET6)}
\label{classIPv6_a1e35d4b4c21b3219aa96f6c26ae54865}

\item 
\hypertarget{classIPv6_a972ce68a0d34dc0b0eb5bb5c16194dfc}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries DVMRP\_\-ROUTERS} (int af=AF\_\-INET6)}
\label{classIPv6_a972ce68a0d34dc0b0eb5bb5c16194dfc}

\item 
\hypertarget{classIPv6_a0e27fdbeec9d3deeac6b29e9e9a20c99}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries OSPFIGP\_\-ROUTERS} (int af=AF\_\-INET6)}
\label{classIPv6_a0e27fdbeec9d3deeac6b29e9e9a20c99}

\item 
\hypertarget{classIPv6_a8b6802509da2ecf75fe593bca6128736}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries OSPFIGP\_\-DESIGNATED\_\-ROUTERS} (int af=AF\_\-INET6)}
\label{classIPv6_a8b6802509da2ecf75fe593bca6128736}

\item 
\hypertarget{classIPv6_ab56d9a5cbda4ac391ac020dbaaff57a0}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries RIP2\_\-ROUTERS} (int af=AF\_\-INET6)}
\label{classIPv6_ab56d9a5cbda4ac391ac020dbaaff57a0}

\item 
\hypertarget{classIPv6_aa1d7d6c4a5197147f3ef1c94f1b5e39a}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries PIM\_\-ROUTERS} (int af=AF\_\-INET6)}
\label{classIPv6_aa1d7d6c4a5197147f3ef1c94f1b5e39a}

\item 
\hypertarget{classIPv6_a33083afc192add1518bb743dda4299f1}{
static const \hyperlink{classIPv6}{IPv6} \& {\bfseries SSM\_\-ROUTERS} (int af=AF\_\-INET6)}
\label{classIPv6_a33083afc192add1518bb743dda4299f1}

\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIPv6_a28004f624b310256c177bd003aa60285}{
static const uint32\_\-t \hyperlink{classIPv6_a28004f624b310256c177bd003aa60285}{ADDR\_\-BITLEN} = 128}
\label{classIPv6_a28004f624b310256c177bd003aa60285}

\begin{DoxyCompactList}\small\item\em Number of bits in address as a constant. \item\end{DoxyCompactList}\item 
\hypertarget{classIPv6_a5f191f9e5d2e11fa9daa1a0f63b9f0d8}{
static const uint32\_\-t \hyperlink{classIPv6_a5f191f9e5d2e11fa9daa1a0f63b9f0d8}{ADDR\_\-BYTELEN} = \hyperlink{classIPv6_a28004f624b310256c177bd003aa60285}{ADDR\_\-BITLEN} / 8}
\label{classIPv6_a5f191f9e5d2e11fa9daa1a0f63b9f0d8}

\begin{DoxyCompactList}\small\item\em Number of bytes in address as a constant. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIPv6_a002a7d5ec79bb608ee25b30dea22772d}{
uint32\_\-t {\bfseries \_\-addr} \mbox{[}4\mbox{]}}
\label{classIPv6_a002a7d5ec79bb608ee25b30dea22772d}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{classIPv6}{IPv6} address class. The \hyperlink{classIPv6}{IPv6} address class is a trivial class for handling \hyperlink{classIPv6}{IPv6} addresses and for performing operations on them such as printing and masking. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classIPv6_afa4c6d6174f6efe890e6455e80c4373a}{
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\subsubsection[{IPv6}]{\setlength{\rightskip}{0pt plus 5cm}IPv6::IPv6 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_afa4c6d6174f6efe890e6455e80c4373a}


Default constructor. 

The address value is initialized to IN6ADDR\_\-ANY. \hypertarget{classIPv6_ac733d527ddd2ef1a475c953ed2611be8}{
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\subsubsection[{IPv6}]{\setlength{\rightskip}{0pt plus 5cm}IPv6::IPv6 (
\begin{DoxyParamCaption}
\item[{const uint8\_\-t $\ast$}]{from\_\-uint8}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}explicit\mbox{]}}}}
\label{classIPv6_ac733d527ddd2ef1a475c953ed2611be8}


Constructor from a (uint8\_\-t $\ast$) memory pointer. 


\begin{DoxyParams}{Parameters}
{\em from\_\-uint8} & \hyperlink{protocolthe-p}{the} pointer to \hyperlink{protocolthe-p}{the} memory to copy \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv6_aaf1c218c549fa4ce3341c457cd1e99cf}{
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\subsubsection[{IPv6}]{\setlength{\rightskip}{0pt plus 5cm}IPv6::IPv6 (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t $\ast$}]{from\_\-uint32}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}explicit\mbox{]}}}}
\label{classIPv6_aaf1c218c549fa4ce3341c457cd1e99cf}


Constructor from a (uint32\_\-t $\ast$) memory pointer. 


\begin{DoxyParams}{Parameters}
{\em from\_\-uint32} & \hyperlink{protocolthe-p}{the} pointer to \hyperlink{protocolthe-p}{the} memory to copy \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv6_a1f1f08f743544fbe59ef5d11e6d1c266}{
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\subsubsection[{IPv6}]{\setlength{\rightskip}{0pt plus 5cm}IPv6::IPv6 (
\begin{DoxyParamCaption}
\item[{const in6\_\-addr \&}]{from\_\-in6\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classIPv6_a1f1f08f743544fbe59ef5d11e6d1c266}


Constructor from in6\_\-addr structure. 


\begin{DoxyParams}{Parameters}
{\em from\_\-in6\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv6_a9bbf7d3be4d00b24fa663a3629986141}{
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\subsubsection[{IPv6}]{\setlength{\rightskip}{0pt plus 5cm}IPv6::IPv6 (
\begin{DoxyParamCaption}
\item[{const sockaddr \&}]{sa}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv6_a9bbf7d3be4d00b24fa663a3629986141}


Constructor from sockaddr structure. 


\begin{DoxyParams}{Parameters}
{\em sa} & sockaddr to construct \hyperlink{classIPv6}{IPv6} addr from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv6_a983776e13b3b8f3bc3bd0f0a2e323e87}{
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\subsubsection[{IPv6}]{\setlength{\rightskip}{0pt plus 5cm}IPv6::IPv6 (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-storage \&}]{ss}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv6_a983776e13b3b8f3bc3bd0f0a2e323e87}


Constructor from sockaddr\_\-storage structure. 


\begin{DoxyParams}{Parameters}
{\em ss} & sockaddr\_\-storage to construct \hyperlink{classIPv6}{IPv6} addr from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv6_a0e41167380546a0b5e41f4a3fb09f7d2}{
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\subsubsection[{IPv6}]{\setlength{\rightskip}{0pt plus 5cm}IPv6::IPv6 (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-in6 \&}]{sin6}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv6_a0e41167380546a0b5e41f4a3fb09f7d2}


Constructor from sockaddr\_\-in6 structure. 


\begin{DoxyParams}{Parameters}
{\em sin6} & sockaddr\_\-in6 to construct \hyperlink{classIPv6}{IPv6} addr from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv6_a07405cb05824bfda097f0492689dc4ad}{
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\index{IPv6@{IPv6}!IPv6@{IPv6}}
\subsubsection[{IPv6}]{\setlength{\rightskip}{0pt plus 5cm}IPv6::IPv6 (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{from\_\-cstring}
\end{DoxyParamCaption}
)  throw ({\bf InvalidString})}}
\label{classIPv6_a07405cb05824bfda097f0492689dc4ad}


Constructor from a string. 


\begin{DoxyParams}{Parameters}
{\em from\_\-cstring} & C-\/style string in \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} canonical human-\/readable. format used for initialization. \\
\hline
\end{DoxyParams}


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


Get \hyperlink{protocolthe-p}{the} uint32\_\-t raw value of this address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} value of this \hyperlink{classIPv6}{IPv6} address as a pointer to an array of 4 unsigned 32-\/bit integers. 
\end{DoxyReturn}
\hypertarget{classIPv6_a460153cc38e8714957ae355b333416f1}{
\index{IPv6@{IPv6}!addr\_\-bitlen@{addr\_\-bitlen}}
\index{addr\_\-bitlen@{addr\_\-bitlen}!IPv6@{IPv6}}
\subsubsection[{addr\_\-bitlen}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv6::addr\_\-bitlen (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv6_a460153cc38e8714957ae355b333416f1}


Get \hyperlink{protocolthe-p}{the} address bit-\/length. 

Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-bitlen = \hyperlink{classIPv6_a460153cc38e8714957ae355b333416f1}{IPv6::addr\_\-bitlen()}; uint32\_\-t my\_\-bitlen = ipv6.addr\_\-bitlen();

\begin{DoxyReturn}{Returns}
address size in number of bits. 
\end{DoxyReturn}
\hypertarget{classIPv6_a314d854f0a9882b1e0492f9f05636aff}{
\index{IPv6@{IPv6}!addr\_\-bytelen@{addr\_\-bytelen}}
\index{addr\_\-bytelen@{addr\_\-bytelen}!IPv6@{IPv6}}
\subsubsection[{addr\_\-bytelen}]{\setlength{\rightskip}{0pt plus 5cm}static size\_\-t IPv6::addr\_\-bytelen (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv6_a314d854f0a9882b1e0492f9f05636aff}


Get \hyperlink{protocolthe-p}{the} address octet-\/size. 

Note that this is a static function and can be used without a particular object. Example: size\_\-t my\_\-size = \hyperlink{classIPv6_a314d854f0a9882b1e0492f9f05636aff}{IPv6::addr\_\-bytelen()}; size\_\-t my\_\-size = ipv6.addr\_\-bytelen();

\begin{DoxyReturn}{Returns}
address size in number of octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_a03aad7afdc79471a57a7ede689812ddc}{
\index{IPv6@{IPv6}!af@{af}}
\index{af@{af}!IPv6@{IPv6}}
\subsubsection[{af}]{\setlength{\rightskip}{0pt plus 5cm}static int IPv6::af (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv6_a03aad7afdc79471a57a7ede689812ddc}


Get \hyperlink{protocolthe-p}{the} address family. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} address family of this address. 
\end{DoxyReturn}
\hypertarget{classIPv6_aa88cd469ec79edfc52767c8d83973fc5}{
\index{IPv6@{IPv6}!bit\_\-count@{bit\_\-count}}
\index{bit\_\-count@{bit\_\-count}!IPv6@{IPv6}}
\subsubsection[{bit\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv6::bit\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_aa88cd469ec79edfc52767c8d83973fc5}


Count \hyperlink{protocolthe-p}{the} number of bits that are set in this address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of bits that are set in this address. 
\end{DoxyReturn}
\hypertarget{classIPv6_ad3e9b53b6c1d9def107a49e20e1b5a05}{
\index{IPv6@{IPv6}!bits@{bits}}
\index{bits@{bits}!IPv6@{IPv6}}
\subsubsection[{bits}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv6::bits (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{lsb, }
\item[{uint32\_\-t}]{len}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_ad3e9b53b6c1d9def107a49e20e1b5a05}


Extract bits from an address. 


\begin{DoxyParams}{Parameters}
{\em lsb} & starting bit position (from \hyperlink{protocolthe-p}{the} right) to extract. \\
\hline
{\em len} & number of bits to extract. The maximum value is 32. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} first len bits starting from \hyperlink{protocolthe-p}{the} rightmost position lsb. The returned bits are in host order. 
\end{DoxyReturn}
\hypertarget{classIPv6_a4b7e0850c40111fd04cdbab7334a47e1}{
\index{IPv6@{IPv6}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv6@{IPv6}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const uint8\_\-t $\ast$}]{from\_\-uint8}
\end{DoxyParamCaption}
)}}
\label{classIPv6_a4b7e0850c40111fd04cdbab7334a47e1}


Copy a raw \hyperlink{classIPv6}{IPv6} address from specificed memory location into \hyperlink{classIPv6}{IPv6} structure. 

Copy a raw address from \hyperlink{protocolthe-p}{the} memory pointed by .


\begin{DoxyParams}{Parameters}
{\em from\_\-uint8} & \hyperlink{protocolthe-p}{the} memory address to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_a8bbf6281deb4314be3706cf3e04c80e0}{
\index{IPv6@{IPv6}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv6@{IPv6}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr \&}]{from\_\-sockaddr}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv6_a8bbf6281deb4314be3706cf3e04c80e0}


Copy a raw \hyperlink{classIPv6}{IPv6} address from a sockaddr structure into \hyperlink{classIPv6}{IPv6} structure. 

Copy a raw address from .

Note that \hyperlink{protocolthe-p}{the} address in \hyperlink{protocolthe-p}{the} sockaddr structure must be of \hyperlink{classIPv6}{IPv6} address family.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_a15081bc73264580517ba860f92974451}{
\index{IPv6@{IPv6}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv6@{IPv6}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-storage \&}]{from\_\-sockaddr\_\-storage}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv6_a15081bc73264580517ba860f92974451}


Copy a raw \hyperlink{classIPv6}{IPv6} address from a sockaddr\_\-storage structure into \hyperlink{classIPv6}{IPv6} structure. 

Copy a raw address from .

Note that \hyperlink{protocolthe-p}{the} address in \hyperlink{protocolthe-p}{the} sockaddr\_\-storage structure must be of \hyperlink{classIPv6}{IPv6} address family.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-storage} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_ab4d612efd332dee6378439c1bd24f802}{
\index{IPv6@{IPv6}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv6@{IPv6}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-in6 \&}]{from\_\-sockaddr\_\-in6}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv6_ab4d612efd332dee6378439c1bd24f802}


Copy a raw address from sockaddr\_\-in6 structure into \hyperlink{classIPv6}{IPv6} structure. 

Copy a raw address from .

Note that \hyperlink{protocolthe-p}{the} address in \hyperlink{protocolthe-p}{the} sockaddr structure must be of \hyperlink{classIPv6}{IPv6} address family.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-in6} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_ade0b0abfd0e85a8f0c539d8e3c758873}{
\index{IPv6@{IPv6}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv6@{IPv6}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const in6\_\-addr \&}]{from\_\-in6\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classIPv6_ade0b0abfd0e85a8f0c539d8e3c758873}


Copy a raw \hyperlink{classIPv6}{IPv6} address from a in6\_\-addr structure into \hyperlink{classIPv6}{IPv6} structure. 

Copy a raw address of family AF\_\-INET6 from .


\begin{DoxyParams}{Parameters}
{\em from\_\-in6\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_a18b91c3c314e913c6b1896e0b4775367}{
\index{IPv6@{IPv6}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv6@{IPv6}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr\_\-storage \&}]{to\_\-sockaddr\_\-storage}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a18b91c3c314e913c6b1896e0b4775367}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to a sockaddr\_\-storage structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPv6}{IPv6} instance to an sockaddr\_\-storage structure and assign appropriately and set fields within sockaddr\_\-storage appropriately.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr\_\-storage} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_a0a8708079f8b088c82808fe9dce27aad}{
\index{IPv6@{IPv6}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv6@{IPv6}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-out (
\begin{DoxyParamCaption}
\item[{in6\_\-addr \&}]{to\_\-in6\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a0a8708079f8b088c82808fe9dce27aad}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to an in6\_\-addr structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to .


\begin{DoxyParams}{Parameters}
{\em to\_\-in6\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_ac60114c525bbf49c15daab512f6b271b}{
\index{IPv6@{IPv6}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv6@{IPv6}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr\_\-in6 \&}]{to\_\-sockaddr\_\-in6}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_ac60114c525bbf49c15daab512f6b271b}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to a sockaddr\_\-in6 structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPv6}{IPv6} instance to a sockaddr\_\-in6 structure and assign appropriately and set fields within sockaddr\_\-in appropriately.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr\_\-in6} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_ae5c83b93cbff545518b002f420e6e1e5}{
\index{IPv6@{IPv6}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv6@{IPv6}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr \&}]{to\_\-sockaddr}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_ae5c83b93cbff545518b002f420e6e1e5}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to a sockaddr structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPv6}{IPv6} instance to an sockaddr structure and assign appropriately and set fields within sockaddr appropriately.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_a109850b66cdabbdb08d2814f48f5c6a4}{
\index{IPv6@{IPv6}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv6@{IPv6}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv6::copy\_\-out (
\begin{DoxyParamCaption}
\item[{uint8\_\-t $\ast$}]{to\_\-uint8}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a109850b66cdabbdb08d2814f48f5c6a4}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv6}{IPv6} raw address to specified memory location. 

Copy \hyperlink{protocolthe-p}{the} raw address to memory pointed by .


\begin{DoxyParams}{Parameters}
{\em } & to\_\-uint8 \hyperlink{protocolthe-p}{the} pointer to \hyperlink{protocolthe-p}{the} memory to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv6_a5644a027d93b359500e0a4ab610c4a30}{
\index{IPv6@{IPv6}!ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len@{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len@{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}!IPv6@{IPv6}}
\subsubsection[{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv6::ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv6_a5644a027d93b359500e0a4ab610c4a30}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} multicast base address. 

Note that this is a static function and can be used without a particular object. Example: size\_\-t my\_\-len = \hyperlink{classIPv6_a5644a027d93b359500e0a4ab610c4a30}{IPv6::ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len()}; size\_\-t my\_\-len = ipv6.ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len();

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} multicast base address mask\_\-len for family AF\_\-INET6. 
\end{DoxyReturn}
\hypertarget{classIPv6_a3fe11603b61e630eda816910d98cbf18}{
\index{IPv6@{IPv6}!ip\_\-version@{ip\_\-version}}
\index{ip\_\-version@{ip\_\-version}!IPv6@{IPv6}}
\subsubsection[{ip\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv6::ip\_\-version (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv6_a3fe11603b61e630eda816910d98cbf18}


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

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} IP protocol version of this address. 
\end{DoxyReturn}
\hypertarget{classIPv6_a28387f42aa9eef929e3b65b0faa3be07}{
\index{IPv6@{IPv6}!ip\_\-version\_\-str@{ip\_\-version\_\-str}}
\index{ip\_\-version\_\-str@{ip\_\-version\_\-str}!IPv6@{IPv6}}
\subsubsection[{ip\_\-version\_\-str}]{\setlength{\rightskip}{0pt plus 5cm}const string \& IPv6::ip\_\-version\_\-str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPv6_a28387f42aa9eef929e3b65b0faa3be07}


Get \hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version of this address. 
\end{DoxyReturn}
\hypertarget{classIPv6_a66c788056177d6e0f453a0817dfde90b}{
\index{IPv6@{IPv6}!is\_\-interfacelocal\_\-multicast@{is\_\-interfacelocal\_\-multicast}}
\index{is\_\-interfacelocal\_\-multicast@{is\_\-interfacelocal\_\-multicast}!IPv6@{IPv6}}
\subsubsection[{is\_\-interfacelocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::is\_\-interfacelocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a66c788056177d6e0f453a0817dfde90b}


Test if this address is a valid interface-\/local multicast address. 

Note that \char`\"{}node-\/local\char`\"{} multicast addresses were renamed to \char`\"{}interface-\/local\char`\"{} by RFC-\/3513.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is interface-\/local. 
\end{DoxyReturn}
\hypertarget{classIPv6_afc40ffb8b3214f29819a848acc018223}{
\index{IPv6@{IPv6}!is\_\-linklocal\_\-multicast@{is\_\-linklocal\_\-multicast}}
\index{is\_\-linklocal\_\-multicast@{is\_\-linklocal\_\-multicast}!IPv6@{IPv6}}
\subsubsection[{is\_\-linklocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::is\_\-linklocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_afc40ffb8b3214f29819a848acc018223}


Test if this address is a valid link-\/local multicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is link-\/local. 
\end{DoxyReturn}
\hypertarget{classIPv6_a370635f7be7b503c68b98e6bbb0ccc40}{
\index{IPv6@{IPv6}!is\_\-linklocal\_\-unicast@{is\_\-linklocal\_\-unicast}}
\index{is\_\-linklocal\_\-unicast@{is\_\-linklocal\_\-unicast}!IPv6@{IPv6}}
\subsubsection[{is\_\-linklocal\_\-unicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::is\_\-linklocal\_\-unicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a370635f7be7b503c68b98e6bbb0ccc40}


Test if this address is a valid link-\/local unicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid unicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is link-\/local. 
\end{DoxyReturn}
\hypertarget{classIPv6_a554e4c37cd7634977e7edb72b677d77c}{
\index{IPv6@{IPv6}!is\_\-loopback@{is\_\-loopback}}
\index{is\_\-loopback@{is\_\-loopback}!IPv6@{IPv6}}
\subsubsection[{is\_\-loopback}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::is\_\-loopback (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a554e4c37cd7634977e7edb72b677d77c}


Test if this address is \hyperlink{protocolthe-p}{the} loopback address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is \hyperlink{protocolthe-p}{the} loopback address. 
\end{DoxyReturn}
\hypertarget{classIPv6_acd913b2de29950a595f5b3615371da8e}{
\index{IPv6@{IPv6}!is\_\-multicast@{is\_\-multicast}}
\index{is\_\-multicast@{is\_\-multicast}!IPv6@{IPv6}}
\subsubsection[{is\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::is\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_acd913b2de29950a595f5b3615371da8e}


Test if this address is a valid multicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address. 
\end{DoxyReturn}
\hypertarget{classIPv6_a6ccf199d4cbb091d90cfb5c66281d70d}{
\index{IPv6@{IPv6}!is\_\-nodelocal\_\-multicast@{is\_\-nodelocal\_\-multicast}}
\index{is\_\-nodelocal\_\-multicast@{is\_\-nodelocal\_\-multicast}!IPv6@{IPv6}}
\subsubsection[{is\_\-nodelocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::is\_\-nodelocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a6ccf199d4cbb091d90cfb5c66281d70d}


Test if this address is a valid node-\/local multicast address. 

Note that \char`\"{}node-\/local\char`\"{} multicast addresses were renamed to \char`\"{}interface-\/local\char`\"{} by RFC-\/3513. This method is kept for backward compatibility.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is node-\/local. 
\end{DoxyReturn}
\hypertarget{classIPv6_a5bf690f4780edd9a8913e4d876820f7e}{
\index{IPv6@{IPv6}!is\_\-unicast@{is\_\-unicast}}
\index{is\_\-unicast@{is\_\-unicast}!IPv6@{IPv6}}
\subsubsection[{is\_\-unicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::is\_\-unicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a5bf690f4780edd9a8913e4d876820f7e}


Test if this address is a valid unicast address. 

Note that \hyperlink{protocolthe-p}{the} numerically zero address is excluded.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid unicast address. 
\end{DoxyReturn}
\hypertarget{classIPv6_a1fd870910d5ee3dd41a1dcb821130701}{
\index{IPv6@{IPv6}!is\_\-zero@{is\_\-zero}}
\index{is\_\-zero@{is\_\-zero}!IPv6@{IPv6}}
\subsubsection[{is\_\-zero}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::is\_\-zero (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a1fd870910d5ee3dd41a1dcb821130701}


Test if this address is numerically zero. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is numerically zero. 
\end{DoxyReturn}
\hypertarget{classIPv6_a4f950344b72d2497d02d2d660be6f8bc}{
\index{IPv6@{IPv6}!leading\_\-zero\_\-count@{leading\_\-zero\_\-count}}
\index{leading\_\-zero\_\-count@{leading\_\-zero\_\-count}!IPv6@{IPv6}}
\subsubsection[{leading\_\-zero\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv6::leading\_\-zero\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a4f950344b72d2497d02d2d660be6f8bc}


Count \hyperlink{protocolthe-p}{the} number of leading zeroes in this address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of leading zeroes in this address. 
\end{DoxyReturn}
\hypertarget{classIPv6_aba06fc9f34be1c85747b57ad4f22d391}{
\index{IPv6@{IPv6}!make\_\-prefix@{make\_\-prefix}}
\index{make\_\-prefix@{make\_\-prefix}!IPv6@{IPv6}}
\subsubsection[{make\_\-prefix}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IPv6} \& IPv6::make\_\-prefix (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{mask\_\-len}
\end{DoxyParamCaption}
)  throw ({\bf InvalidNetmaskLength})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPv6_aba06fc9f34be1c85747b57ad4f22d391}


Make an \hyperlink{classIPv6}{IPv6} mask prefix. 


\begin{DoxyParams}{Parameters}
{\em mask\_\-len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} mask to create. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \hyperlink{classIPv6}{IPv6} address that contains a mask of length \hyperlink{classIPv6_acf7349d5ae51585c1341ab1018f4b759}{mask\_\-len}. 
\end{DoxyReturn}
\hypertarget{classIPv6_aa9d9a2cbd16fd823fd44a71a3f725f75}{
\index{IPv6@{IPv6}!mask\_\-by\_\-prefix\_\-len@{mask\_\-by\_\-prefix\_\-len}}
\index{mask\_\-by\_\-prefix\_\-len@{mask\_\-by\_\-prefix\_\-len}!IPv6@{IPv6}}
\subsubsection[{mask\_\-by\_\-prefix\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} IPv6::mask\_\-by\_\-prefix\_\-len (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{prefix\_\-len}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidNetmaskLength})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_aa9d9a2cbd16fd823fd44a71a3f725f75}


Make an \hyperlink{classIPv6}{IPv6} address prefix. 


\begin{DoxyParams}{Parameters}
{\em prefix\_\-len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} mask of \hyperlink{protocolthe-p}{the} prefix to create. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \hyperlink{classIPv6}{IPv6} address created by masking this address with a mask of length prefix\_\-len. 
\end{DoxyReturn}
\hypertarget{classIPv6_acf7349d5ae51585c1341ab1018f4b759}{
\index{IPv6@{IPv6}!mask\_\-len@{mask\_\-len}}
\index{mask\_\-len@{mask\_\-len}!IPv6@{IPv6}}
\subsubsection[{mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv6::mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_acf7349d5ae51585c1341ab1018f4b759}


Get \hyperlink{protocolthe-p}{the} mask length. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} prefix length of \hyperlink{protocolthe-p}{the} contiguous mask presumably stored as an \hyperlink{classIPv6}{IPv6} address. 
\end{DoxyReturn}
\hypertarget{classIPv6_af2a8ef80324ba4fdfed86a470990e624}{
\index{IPv6@{IPv6}!operator!=@{operator!=}}
\index{operator!=@{operator!=}!IPv6@{IPv6}}
\subsubsection[{operator!=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator!= (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_af2a8ef80324ba4fdfed86a470990e624}


Non-\/equality Operator for \hyperlink{classIPv6}{IPv6} against IPv6Range operand. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv6Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand falls outside \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_ad84ea54d9b23cdb4b4ee247daa106cc1}{
\index{IPv6@{IPv6}!operator!=@{operator!=}}
\index{operator!=@{operator!=}!IPv6@{IPv6}}
\subsubsection[{operator!=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator!= (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{other}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_ad84ea54d9b23cdb4b4ee247daa106cc1}


Not-\/Equal Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically not same as \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_a619af3b3fe823609e4fabc775cfa4458}{
\index{IPv6@{IPv6}!operator\&@{operator\&}}
\index{operator\&@{operator\&}!IPv6@{IPv6}}
\subsubsection[{operator\&}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} IPv6::operator\& (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{other}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a619af3b3fe823609e4fabc775cfa4458}


AND Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to AND with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitwise AND of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPv6_a64b3cc246a4a76002c507098a2108790}{
\index{IPv6@{IPv6}!operator++@{operator++}}
\index{operator++@{operator++}!IPv6@{IPv6}}
\subsubsection[{operator++}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} \& IPv6::operator++ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classIPv6_a64b3cc246a4a76002c507098a2108790}


Increment Operator. 

The numerical value of this address is incremented by one. However, if \hyperlink{protocolthe-p}{the} address value before \hyperlink{protocolthe-p}{the} increment was all-\/1s, after \hyperlink{protocolthe-p}{the} increment its value would be all-\/0s (i.e., it will wrap-\/around).

\begin{DoxyReturn}{Returns}
a reference to this address after it was incremented by one. 
\end{DoxyReturn}
\hypertarget{classIPv6_a5ede043c716dbd8a5b4ba9f99b5fce9a}{
\index{IPv6@{IPv6}!operator-\/-\/@{operator-\/-\/}}
\index{operator-\/-\/@{operator-\/-\/}!IPv6@{IPv6}}
\subsubsection[{operator-\/-\/}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} \& IPv6::operator-\/-\/ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classIPv6_a5ede043c716dbd8a5b4ba9f99b5fce9a}


Decrement Operator. 

The numerical value of this address is decremented by one. However, if \hyperlink{protocolthe-p}{the} address value before \hyperlink{protocolthe-p}{the} decrement was all-\/0s, after \hyperlink{protocolthe-p}{the} decrement its value would be all-\/1s (i.e., it will wrap-\/around).

\begin{DoxyReturn}{Returns}
a reference to this address after it was decremented by one. 
\end{DoxyReturn}
\hypertarget{classIPv6_a6f4faecb0e4627b4ef995b80e81052d0}{
\index{IPv6@{IPv6}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!IPv6@{IPv6}}
\subsubsection[{operator$<$}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator$<$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{other}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a6f4faecb0e4627b4ef995b80e81052d0}


Less-\/Than Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically smaller than \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_a41cc8761470b84001e2390e04fbc3804}{
\index{IPv6@{IPv6}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!IPv6@{IPv6}}
\subsubsection[{operator$<$}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator$<$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a41cc8761470b84001e2390e04fbc3804}


Less-\/than comparison for \hyperlink{classIPv6}{IPv6} against IPv6Range operand. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv6Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand is bellow \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_a93bf8512dd76075cee046871c82ed136}{
\index{IPv6@{IPv6}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!IPv6@{IPv6}}
\subsubsection[{operator$<$$<$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} IPv6::operator$<$$<$ (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{left\_\-shift}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a93bf8512dd76075cee046871c82ed136}


Operator $<$$<$. 


\begin{DoxyParams}{Parameters}
{\em left\_\-shift} & \hyperlink{protocolthe-p}{the} number of bits to shift to \hyperlink{protocolthe-p}{the} left. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{classIPv6}{IPv6} address that is shift bitwise to \hyperlink{protocolthe-p}{the} left. 
\end{DoxyReturn}
\hypertarget{classIPv6_a0ebbd9b07fb81a7193082858f1e31ffa}{
\index{IPv6@{IPv6}!operator$<$=@{operator$<$=}}
\index{operator$<$=@{operator$<$=}!IPv6@{IPv6}}
\subsubsection[{operator$<$=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator$<$= (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a0ebbd9b07fb81a7193082858f1e31ffa}


Less-\/than or equal comparison for \hyperlink{classIPv6}{IPv6} against IPv6Range. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv6Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand is bellow or within \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_aa1f35750bd9f3560a3eafd8c7ca853f3}{
\index{IPv6@{IPv6}!operator==@{operator==}}
\index{operator==@{operator==}!IPv6@{IPv6}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator== (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_aa1f35750bd9f3560a3eafd8c7ca853f3}


Equality Operator for \hyperlink{classIPv6}{IPv6} against IPv6Range operand. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv6Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand falls inside \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_a8b1d53929ca1e20991d9f5830bbfa5df}{
\index{IPv6@{IPv6}!operator==@{operator==}}
\index{operator==@{operator==}!IPv6@{IPv6}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator== (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{other}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a8b1d53929ca1e20991d9f5830bbfa5df}


Equality Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically same as \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_afbd8a9def9733bcf27fd9e50c0be1450}{
\index{IPv6@{IPv6}!operator$>$@{operator$>$}}
\index{operator$>$@{operator$>$}!IPv6@{IPv6}}
\subsubsection[{operator$>$}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator$>$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_afbd8a9def9733bcf27fd9e50c0be1450}


Greater-\/than comparison for \hyperlink{classIPv6}{IPv6} against IPv6Range operand. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv6Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand is above \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_a39a2086fe522b27399e61c62b34af3dc}{
\index{IPv6@{IPv6}!operator$>$=@{operator$>$=}}
\index{operator$>$=@{operator$>$=}!IPv6@{IPv6}}
\subsubsection[{operator$>$=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv6::operator$>$= (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a39a2086fe522b27399e61c62b34af3dc}


Greater-\/than or equal comparison for \hyperlink{classIPv6}{IPv6} against IPv6Range. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv6Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand is above or within \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv6_a048dd69613045f7f20ff12438d062cc9}{
\index{IPv6@{IPv6}!operator$>$$>$@{operator$>$$>$}}
\index{operator$>$$>$@{operator$>$$>$}!IPv6@{IPv6}}
\subsubsection[{operator$>$$>$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} IPv6::operator$>$$>$ (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{right\_\-shift}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a048dd69613045f7f20ff12438d062cc9}


Operator $>$$>$ 


\begin{DoxyParams}{Parameters}
{\em right\_\-shift} & \hyperlink{protocolthe-p}{the} number of bits to shift to \hyperlink{protocolthe-p}{the} right. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{classIPv6}{IPv6} address that is shift bitwise to \hyperlink{protocolthe-p}{the} right. 
\end{DoxyReturn}
\hypertarget{classIPv6_a83f16a2ecc630d7913fa699dc6fb4b74}{
\index{IPv6@{IPv6}!operator$^\wedge$@{operator$^\wedge$}}
\index{operator$^\wedge$@{operator$^\wedge$}!IPv6@{IPv6}}
\subsubsection[{operator$^\wedge$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} IPv6::operator$^\wedge$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{other}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a83f16a2ecc630d7913fa699dc6fb4b74}


XOR Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to XOR with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitwize eXclusive-\/OR of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPv6_a7c938b5d25c511859eea3af756df34fd}{
\index{IPv6@{IPv6}!operator$|$@{operator$|$}}
\index{operator$|$@{operator$|$}!IPv6@{IPv6}}
\subsubsection[{operator$|$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} IPv6::operator$|$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{other}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a7c938b5d25c511859eea3af756df34fd}


OR Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to OR with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitwise OR of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPv6_a4f2a767b556de48141a5868ef6e0f48f}{
\index{IPv6@{IPv6}!operator$\sim$@{operator$\sim$}}
\index{operator$\sim$@{operator$\sim$}!IPv6@{IPv6}}
\subsubsection[{operator$\sim$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv6} IPv6::operator$\sim$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a4f2a767b556de48141a5868ef6e0f48f}


Bitwise-\/Negation Operator. 

\begin{DoxyReturn}{Returns}
address complement (i.e., all 0s become 1s, and vice-\/versa). 
\end{DoxyReturn}
\hypertarget{classIPv6_a33df46a1ac8b4e34bd6defbbd1571a80}{
\index{IPv6@{IPv6}!set\_\-addr@{set\_\-addr}}
\index{set\_\-addr@{set\_\-addr}!IPv6@{IPv6}}
\subsubsection[{set\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void IPv6::set\_\-addr (
\begin{DoxyParamCaption}
\item[{const uint8\_\-t $\ast$}]{from\_\-uint8}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv6_a33df46a1ac8b4e34bd6defbbd1571a80}


Set \hyperlink{protocolthe-p}{the} address value. 


\begin{DoxyParams}{Parameters}
{\em from} & \hyperlink{protocolthe-p}{the} pointer to an array of 16 8-\/bit unsigned integers with \hyperlink{protocolthe-p}{the} value to set this address to. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv6_a1c792e7ba7b0de9b6cbe288de994b935}{
\index{IPv6@{IPv6}!str@{str}}
\index{str@{str}!IPv6@{IPv6}}
\subsubsection[{str}]{\setlength{\rightskip}{0pt plus 5cm}string IPv6::str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv6_a1c792e7ba7b0de9b6cbe288de994b935}


Convert this address from binary form to presentation format. 

\begin{DoxyReturn}{Returns}
C++ string with \hyperlink{protocolthe-p}{the} human-\/readable ASCII representation of \hyperlink{protocolthe-p}{the} address. 
\end{DoxyReturn}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/ipv6.hh\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/ipv6.cc\end{DoxyCompactItemize}
