Nick Gordon | f3a9ecb | 2017-01-24 13:55:14 -0600 | [diff] [blame] | 1 | \section{Link-State Advertisements} |
| 2 | \label{sec:lsas} |
| 3 | |
| 4 | Link-State Advertisements (LSAs) represent pieces of routing information distributed by routers. |
Nick Gordon | f3a9ecb | 2017-01-24 13:55:14 -0600 | [diff] [blame] | 5 | |
| 6 | \subsection{LSA Base Class} |
| 7 | \label{sec:lsa-base-class} |
| 8 | |
| 9 | All three LSA implementations inherit from an LSA Base class, \texttt{Lsa}, which maintains information that is included in each LSA. |
| 10 | The \texttt{LSA} class contains the following member variables: |
| 11 | \begin{itemize} |
Nick Gordon | 221531c | 2017-06-08 11:44:45 -0500 | [diff] [blame] | 12 | \item \textbf{Origin Router} - the router that advertised the LSA. Specifically, this is a name prefix that follows the NLSR convention of router naming. |
| 13 | \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. |
| 14 | \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). |
Ashlesh Gawande | 6990347 | 2017-06-28 13:30:46 -0500 | [diff] [blame] | 15 | \end{itemize} |
Nick Gordon | f3a9ecb | 2017-01-24 13:55:14 -0600 | [diff] [blame] | 16 | |
| 17 | \subsection{Adjacency LSAs} |
| 18 | \label{sec:adjacency-lsas} |
| 19 | |
Nick Gordon | 221531c | 2017-06-08 11:44:45 -0500 | [diff] [blame] | 20 | 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. |
Nick Gordon | f3a9ecb | 2017-01-24 13:55:14 -0600 | [diff] [blame] | 21 | |
| 22 | \subsection{Coordinate LSAs} |
| 23 | \label{sec:coordinate-lsas} |
| 24 | |
Ashlesh Gawande | 6990347 | 2017-06-28 13:30:46 -0500 | [diff] [blame] | 25 | Coordinate LSAs maintain the hyperbolic angle(s) and hyperbolic radius of the origin router. |
Nick Gordon | f3a9ecb | 2017-01-24 13:55:14 -0600 | [diff] [blame] | 26 | |
| 27 | \subsection{Name LSAs} |
| 28 | \label{sec:name-lsas} |
| 29 | |
Nick Gordon | 221531c | 2017-06-08 11:44:45 -0500 | [diff] [blame] | 30 | Name LSAs maintain a \texttt{NamePrefixList} which contains the name prefixes that are reachable at the origin router. |