\section{Introduction}
\label{sec:intro}

The Named-data Link State Routing protocol (NLSR) is an intra-domain routing protocol for Named Data Networking (NDN).
It is an application level protocol similar to many IP routing protocols, but NLSR uses NDN's Interest/Data packets to disseminate routing updates.
Although NLSR is designed in the context of a single domain, its design patterns may offer a useful reference for future development of inter-domain routing protocols.

NLSR supports name-based routing in NDN, computes routing ranks for all policy-compliant next-hops which provides a name-based multi-path routing table for NDN's forwarding strategy,
and ensures that routers can originate only their own routing updates using a hierarchical trust model.

\subsection{NLSR Modules and Data Structures}
\label{sec:modules}
NLSR contains multiple modules that each contribute to the total realization of the protocol.
Many of the modules interact with one another to trigger some behavior or to modify information in data structures.
NLSR uses the following modules:
\begin{itemize}
\item \textbf{Hello Protocol} (Section~\ref{sec:hello-protocol}) - determines the status of neighboring routers using periodic Hello Interests and notifies other modules when neighbors' statuses change.
\item \textbf{ChronoSync} - provides network-wide synchronization of NLSR LSDBs.~\cite{chronosync}
\item \textbf{Sync Logic Handler} (Section~\ref{sec:sync-logic}) - handles sync update notifications from NSync by retrieving updated LSAs.
\item \textbf{LSAs} (Section~\ref{sec:lsas}) - represent routing information published by the router.
\item \textbf{LSDB} (Section~\ref{sec:lsdb}) - stores the LSA information distributed by other routers in the network.
\item \textbf{Routing Table} (Section~\ref{sec:routing-table}) - calculates and maintains a list of next hops for each router in the network.
\item \textbf{Name Prefix Table} (Section~\ref{sec:npt}) - stores all advertised name prefixes and their next hops.
\item \textbf{FIB} (Section~\ref{sec:fib}) - maintains a shadow FIB which represents the intended state of NFD's FIB~\cite{NFD}.
\item \textbf{Prefix Update Processor} (Section~\ref{sec:prefix-update}) - listens for dynamic prefix announcements to advertise or withdraw name prefixes.
\item \textbf{NFD RIB Command Processor} (Section~\ref{sec:nfd-rib-commands}) - listens for readvertise-to-NLSR commands to advertise or withdraw name prefixes that were inserted into NFD.
\end{itemize}

\subsection{Protocol Overview}
\label{sec:protocol-overview}

NLSR is designed to accomplish three main tasks: (1) discover adjacent
neighbors; (2) disseminate and synchronize topology, name prefix, and
hyperbolic routing information; and (3) calculate a routing table and
populate NFD's FIB.  The entire protocol is described in detail in the
NLSR paper~\cite{NlsrTr}.

\subsubsection{Discovering Neighbors}

NLSR determines the adjacency status of neighboring routers using the Hello Protocol module (Section~\ref{sec:hello-protocol}).
When the Hello Protocol detects a status change for a neighbor, it will ask the LSDB module (Section~\ref{sec:lsdb}) to update the router's advertised adjacency information.

Additionally, NLSR discovers the infrastructure for communicating with
neighbors by querying NFD, which maintains a dataset of all
information for its Faces.

\subsubsection{Disseminating Routing Information}

When a router's LSAs (Section~\ref{sec:lsas}) changes, the information of this change should be distributed to every other router in the network.
The Sync Logic Handler module (Section~\ref{sec:sync-logic}) is used to notify the synchronization protocol of changes to the router's own LSAs as well as to learn of LSA changes from other routers in the network;
the Sync Logic Handler module interfaces with ChronoSync to perform the two tasks.

When the Sync Logic Handler module learns of a new LSA, it will inform the LSDB module.
The LSDB module will attempt to fetch the new LSA and will store it in the LSDB module's database if it can be retrieved.
If the newly fetched LSA informs the router of previously unknown routing information, the LSDB module will inform other modules depending on the type of routing information:
\begin{itemize}
  \item \textbf{Change in network topology} - the LSDB module will ask the Routing Table module (Section~\ref{sec:routing-table}) to recalculate paths in the network
\item \textbf{Change in name prefix advertisement} - the LSDB module will inform the Name Prefix Table module (Section~\ref{sec:npt}), which will in turn notify the FIB module (Section~\ref{sec:fib}) in order to add or remove the changed name prefixes.
\item \textbf{Change in hyperbolic coordinates} - the LSDB module will inform the Routing Table module (Section~\ref{sec:routing-table}), so the Routing Table module can calculate an up-to-date routing table.
\end{itemize}

\subsubsection{Calculating the Routing Table and Populating NFD's FIB}

When the routing table is calculated by the Routing Table module, the computed next hops are passed to the Name Prefix Table module.
The Name Prefix Table module will then further pass the next hops to the FIB module to update NLSR's expected state of NFD's FIB.
The FIB module will then perform the registrations or unregistrations with NFD's FIB.\\

A simplified diagram of NLSR's actions when receiving new routing information is shown in Figure~\ref{fig:system-interaction}.
The remainder of this documentation will describe the purpose of and interaction between each module in more detail.

\begin{figure}
\center
\includegraphics[width=\linewidth]{figures/system-interaction.pdf}
\caption{Simplified Diagram of the Actions of NLSR's Modules}
\label{fig:system-interaction}
\end{figure}

\subsection{Dispatcher}
\label{sec:dispatcher}

NLSR takes advantage of a variety of ndn-cxx convenience
mechanisms. Among these is the dispatcher. The dispatcher provides
facilities for receiving and decoding ControlCommands, which
simplifies the processing workflow. The dispatcher itself is
\href{http://named-data.net/doc/ndn-cxx/current/doxygen/de/d34/classndn_1_1mgmt_1_1Dispatcher.html}{well-documented},
so we will only give a brief overview here.

\begin{itemize}
\item Any prefixes that are registered, such as ``prefix/register'',
  \emph{must} be registered before top-level prefixes. All prefix
  registrations should go in \texttt{Nlsr::registerLocalhostPrefix}.
\item The dispatcher can be used to accept incoming ControlCommands
  and respond to requests for datasets. Currently NLSR uses the
  dispatcher only for accepting incoming ControlCommands.
\item Top-level prefixes cannot overlap. For example, you cannot
  register ``/localhost/nlsr'' and then ``/localhost/nlsr/fib''. The
  second registration must be done as a sub-prefix of the first,
  i.e. the first prefix, and then ``fib''.
\end{itemize}
