\section{Optimized Link State Routing (OLSR) Module} OLSR is a proactive routing protocol for mobile ad-hoc networks (MANETs). It is well suited to large and dense mobile networks, as the optimization achieved using the MPRs works well in this context. The larger and more dense a network, the more optimization can be achieved as compared to the classic link state algorithm. OLSR uses hop-by-hop routing, i.e., each node uses its local information to route packets. OLSR is well suited for networks, where the traffic is random and sporadic between a larger set of nodes rather than being almost exclusively between a small specific set of nodes. As a proactive protocol, OLSR is also suitable for scenarios where the communicating pairs change over time: no additional control traffic is generated in this situation since routes are maintained for all known destinations at all times. -- cfr. RFC3626 \subsection{pico\_olsr\_add} \subsubsection*{Description} This function will add the target device to the OLSR mechanism on the machine, meaning that it will be possible to advertise and collect routing information using Optimized Link State Routing protocol, as described in RFC3626, through the target device. In order to use multiple devices in the OLSR system, this function needs to be called multiple times, once per device. \subsubsection*{Function prototype} \texttt{pico\_olsr\_add(struct pico\_device *dev);} \subsubsection*{Parameters} \begin{itemize}[noitemsep] \item \texttt{dev} - a pointer to a struct \texttt{pico\_device} specifying the target interface. \end{itemize} \subsubsection*{Return value} 0 returned if the device is successfully added. \subsubsection*{Example} \begin{verbatim} ret = pico_olsr_add(dev); \end{verbatim}