| \section{Link-State Advertisements} |
| \label{sec:lsas} |
| |
| Link-State Advertisements (LSAs) represent pieces of routing information distributed by routers. |
| |
| \subsection{LSA Base Class} |
| \label{sec:lsa-base-class} |
| |
| All three LSA implementations inherit from an LSA Base class, \texttt{Lsa}, which maintains information that is included in each LSA. |
| The \texttt{LSA} class contains the following member variables: |
| \begin{itemize} |
| \item \textbf{Origin Router} - the router that advertised the LSA. Specifically, this is a name prefix that follows the NLSR convention of router naming. |
| \item \textbf{Sequence Number} - a number used to indicate the LSA's version. Because sequence numbers are preserved between NLSR restarts, a higher sequence number also always indicates a \emph{newer} LSA. |
| \item \textbf{Expiration Time Point} - a time point indicating when the LSA is no longer valid. This currently is represented as a Unix timestamp (i.e. seconds since Jan 1, 1970). |
| \end{itemize} |
| |
| \subsection{Adjacency LSAs} |
| \label{sec:adjacency-lsas} |
| |
| Adjacency LSAs maintain an \texttt{AdjacencyList} which contains information about all the currently \texttt{ACTIVE} neighbors of the origin router. It also includes the number of active routers, not just the list itself. This aids in serialization. |
| |
| \subsection{Coordinate LSAs} |
| \label{sec:coordinate-lsas} |
| |
| Coordinate LSAs maintain the hyperbolic angle(s) and hyperbolic radius of the origin router. |
| |
| \subsection{Name LSAs} |
| \label{sec:name-lsas} |
| |
| Name LSAs maintain a \texttt{NamePrefixList} which contains the name prefixes that are reachable at the origin router. |