blob: 6b4da0e15819b2feb95f88fc53603f2bb2d8cc47 [file] [log] [blame]
Nick Gordonf3a9ecb2017-01-24 13:55:14 -06001\section{Link-State Advertisements}
2\label{sec:lsas}
3
4Link-State Advertisements (LSAs) represent pieces of routing information distributed by routers.
5NLSR uses three types of LSAs to distribute routing information:
6Adjacency LSAs which include neighboring node and link information,
7Coordinate LSAs which include a router's hyperbolic coordinates, and
8Name LSAs which include advertised name prefixes reachable through the router.
9All 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
14All three LSA implementations inherit from an LSA Base class, \texttt{Lsa}, which maintains information that is included in each LSA.
15The \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.
Ashlesh Gawande69903472017-06-28 13:30:46 -050020\end{itemize}
Nick Gordonf3a9ecb2017-01-24 13:55:14 -060021
22\subsection{Adjacency LSAs}
23\label{sec:adjacency-lsas}
24
25Adjacency 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
Ashlesh Gawande69903472017-06-28 13:30:46 -050030Coordinate LSAs maintain the hyperbolic angle(s) and hyperbolic radius of the origin router.
Nick Gordonf3a9ecb2017-01-24 13:55:14 -060031
32\subsection{Name LSAs}
33\label{sec:name-lsas}
34
35Name LSAs maintain a \texttt{NamePrefixList} which contains advertised name prefixes that are reachable through the origin router.