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. |
| 5 | NLSR uses three types of LSAs to distribute routing information: |
| 6 | Adjacency LSAs which include neighboring node and link information, |
| 7 | Coordinate LSAs which include a router's hyperbolic coordinates, and |
| 8 | Name LSAs which include advertised name prefixes reachable through the router. |
| 9 | All of the LSAs received by the router are maintained by the LSDB module (Section~\ref{sec:lsdb}). |
| 10 | |
| 11 | \subsection{LSA Base Class} |
| 12 | \label{sec:lsa-base-class} |
| 13 | |
| 14 | All three LSA implementations inherit from an LSA Base class, \texttt{Lsa}, which maintains information that is included in each LSA. |
| 15 | The \texttt{LSA} class contains the following member variables: |
| 16 | \begin{itemize} |
| 17 | \item \textbf{Origin Router} - the router that advertised the LSA. |
| 18 | \item \textbf{Sequence Number} - a number used to indicate the LSAs version as well as its ordering compared to other LSAs received from the same router. |
| 19 | \item \textbf{Expiration Time Point} - a time point indicating when the LSA is no longer valid. |
| 20 | \end{itemize} |
| 21 | |
| 22 | \subsection{Adjacency LSAs} |
| 23 | \label{sec:adjacency-lsas} |
| 24 | |
| 25 | Adjacency LSAs maintain an \texttt{AdjacencyList} which contains all the currently \texttt{ACTIVE} neighbors of the origin router. |
| 26 | |
| 27 | \subsection{Coordinate LSAs} |
| 28 | \label{sec:coordinate-lsas} |
| 29 | |
| 30 | Coordinate LSAs maintains the hyperbolic angle and hyperbolic radius of the origin router. |
| 31 | |
| 32 | \subsection{Name LSAs} |
| 33 | \label{sec:name-lsas} |
| 34 | |
| 35 | Name LSAs maintain a \texttt{NamePrefixList} which contains advertised name prefixes that are reachable through the origin router. |