\hypertarget{classAS4Path}{
\section{AS4Path Class Reference}
\label{classAS4Path}\index{AS4Path@{AS4Path}}
}
Inheritance diagram for AS4Path:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classAS4Path}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classAS4Path_a6f6a74b1f7de62385f14639a4c5c76e4}{
\hyperlink{classAS4Path_a6f6a74b1f7de62385f14639a4c5c76e4}{AS4Path} (const uint8\_\-t $\ast$d, size\_\-t len)  throw (CorruptMessage)}
\label{classAS4Path_a6f6a74b1f7de62385f14639a4c5c76e4}

\begin{DoxyCompactList}\small\item\em Construct from received data from 4-\/byte peer. \item\end{DoxyCompactList}\item 
\hypertarget{classAS4Path_a317c64bc4f620d4dc8e567a00a5e6605}{
\hyperlink{classAS4Path_a317c64bc4f620d4dc8e567a00a5e6605}{AS4Path} (const char $\ast$as\_\-path)  throw (InvalidString)}
\label{classAS4Path_a317c64bc4f620d4dc8e567a00a5e6605}

\begin{DoxyCompactList}\small\item\em Initialize from a string in \hyperlink{protocolthe-p}{the} format 3.1,2,(3,10.4,5),6,7,8,(9,10,11),12,13. \item\end{DoxyCompactList}\item 
const uint8\_\-t $\ast$ \hyperlink{classAS4Path_a5db6015fbfafc0f8141a31144fc79ac5}{encode} (size\_\-t \&len, uint8\_\-t $\ast$buf) const 
\begin{DoxyCompactList}\small\item\em Convert from internal to external representation, with \hyperlink{protocolthe-p}{the} correct representation for \hyperlink{protocolthe-p}{the} original AS4\_\-PATH attribute. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classAS4Path_a798a1a9ed962b2f5eb597160e7a415ab}{wire\_\-size} () const 
\item 
void \hyperlink{classAS4Path_a5fa0110aadc5235451203db0c7a6700d}{cross\_\-validate} (const \hyperlink{classASPath}{ASPath} \&as\_\-path)
\begin{DoxyCompactList}\small\item\em \hyperlink{protocolthe-p}{the} AS\_\-PATH attribute may have had new ASes added since \hyperlink{protocolthe-p}{the} AS4\_\-PATH was last updated. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classAS4Path_a3e562fe9cee697f9dd39355f4437384b}{decode} (const uint8\_\-t $\ast$d, size\_\-t len)  throw (CorruptMessage)
\begin{DoxyCompactList}\small\item\em populate an \hyperlink{classASPath}{ASPath} from received data. \item\end{DoxyCompactList}\item 
\hypertarget{classAS4Path_a2d4499535275ca57881a24383db19e65}{
void {\bfseries pad\_\-segment} (const \hyperlink{classASSegment}{ASSegment} \&old\_\-seg, \hyperlink{classASSegment}{ASSegment} \&new\_\-seg)}
\label{classAS4Path_a2d4499535275ca57881a24383db19e65}

\item 
\hypertarget{classAS4Path_a292591fab6c3c07fe06a5abb63d714e4}{
void {\bfseries do\_\-patchup} (const \hyperlink{classASPath}{ASPath} \&as\_\-path)}
\label{classAS4Path_a292591fab6c3c07fe06a5abb63d714e4}

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classAS4Path_a5fa0110aadc5235451203db0c7a6700d}{
\index{AS4Path@{AS4Path}!cross\_\-validate@{cross\_\-validate}}
\index{cross\_\-validate@{cross\_\-validate}!AS4Path@{AS4Path}}
\subsubsection[{cross\_\-validate}]{\setlength{\rightskip}{0pt plus 5cm}void AS4Path::cross\_\-validate (
\begin{DoxyParamCaption}
\item[{const {\bf ASPath} \&}]{as\_\-path}
\end{DoxyParamCaption}
)}}
\label{classAS4Path_a5fa0110aadc5235451203db0c7a6700d}


\hyperlink{protocolthe-p}{the} AS\_\-PATH attribute may have had new ASes added since \hyperlink{protocolthe-p}{the} AS4\_\-PATH was last updated. 

We need to copy across anything that is missing \hypertarget{classAS4Path_a3e562fe9cee697f9dd39355f4437384b}{
\index{AS4Path@{AS4Path}!decode@{decode}}
\index{decode@{decode}!AS4Path@{AS4Path}}
\subsubsection[{decode}]{\setlength{\rightskip}{0pt plus 5cm}void AS4Path::decode (
\begin{DoxyParamCaption}
\item[{const uint8\_\-t $\ast$}]{d, }
\item[{size\_\-t}]{len}
\end{DoxyParamCaption}
)  throw ({\bf CorruptMessage})\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classAS4Path_a3e562fe9cee697f9dd39355f4437384b}


populate an \hyperlink{classASPath}{ASPath} from received data. 

populate a \hyperlink{classASPath}{ASPath} from \hyperlink{protocolthe-p}{the} received data representation from a AS4\_\-PATH attribute.

Only used in \hyperlink{protocolthe-p}{the} constructor. 

Reimplemented from \hyperlink{classASPath_a7e0bb77fa48865fdee926cc270a6a970}{ASPath}.

\hypertarget{classAS4Path_a5db6015fbfafc0f8141a31144fc79ac5}{
\index{AS4Path@{AS4Path}!encode@{encode}}
\index{encode@{encode}!AS4Path@{AS4Path}}
\subsubsection[{encode}]{\setlength{\rightskip}{0pt plus 5cm}const uint8\_\-t $\ast$ AS4Path::encode (
\begin{DoxyParamCaption}
\item[{size\_\-t \&}]{len, }
\item[{uint8\_\-t $\ast$}]{buf}
\end{DoxyParamCaption}
) const}}
\label{classAS4Path_a5db6015fbfafc0f8141a31144fc79ac5}


Convert from internal to external representation, with \hyperlink{protocolthe-p}{the} correct representation for \hyperlink{protocolthe-p}{the} original AS4\_\-PATH attribute. 

If we do not pass a buffer (buf = 0), then \hyperlink{protocolthe-p}{the} routine will allocate a new one; otherwise, len indicates \hyperlink{protocolthe-p}{the} size of \hyperlink{protocolthe-p}{the} input buffer, which must be large enough to store \hyperlink{protocolthe-p}{the} encoding. \begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} pointer to \hyperlink{protocolthe-p}{the} buffer, len is \hyperlink{protocolthe-p}{the} actual size. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classASPath_a4d0f732b6f520de59d19120067e48226}{ASPath}.

\hypertarget{classAS4Path_a798a1a9ed962b2f5eb597160e7a415ab}{
\index{AS4Path@{AS4Path}!wire\_\-size@{wire\_\-size}}
\index{wire\_\-size@{wire\_\-size}!AS4Path@{AS4Path}}
\subsubsection[{wire\_\-size}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t AS4Path::wire\_\-size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classAS4Path_a798a1a9ed962b2f5eb597160e7a415ab}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} size of \hyperlink{protocolthe-p}{the} list on \hyperlink{protocolthe-p}{the} wire. XXX this should be made more efficient. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classASPath_aaa74300bf1584a07c971dba25a281cef}{ASPath}.



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