\section{Ad-hoc On-Demand Distance Vector Routing (AODV)}


AODV is a reactive routing protocol for mobile ad-hoc networks
(MANETs). Its best fit are especially ultra-low power radio networks, 
or those RF topologies where sporadic traffic between a small specific set
of nodes is foreseen.
In order to create a route, one node must explicitly start the communication
towards a remote node, and the route is created ad-hoc upon the demand
for a specific network path.
AODV guarantees that the traffic generated by each node in order to create
and maintain routes is kept as low as possible.

\subsection{pico\_aodv\_add}

\subsubsection*{Description}
This function will add the target device to the AODV mechanism on the machine, 
meaning that it will be possible to advertise and collect routing information 
using Ad-hoc On-Demand Distance Vector Routing, as described in RFC3561, through the
target device.

In order to use multiple devices in the AODV system, this function needs to be called
multiple times, once per device.

\subsubsection*{Function prototype}
\texttt{pico\_aodv\_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_aodv_add(dev);

\end{verbatim}

