\hypertarget{classFace}{
\section{Face Class Reference}
\label{classFace}\index{Face@{Face}}
}


An OLSR interface.  




{\ttfamily \#include $<$face.hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFace_a7801d641443fe7e717940b88893ecf26}{
{\bfseries Face} (\hyperlink{classOlsr}{Olsr} \&olsr, \hyperlink{classFaceManager}{FaceManager} \&fm, \hyperlink{classNeighborhood}{Neighborhood} $\ast$nh, \hyperlink{classMessageDecoder}{MessageDecoder} \&md, const string \&interface, const string \&vif, \hyperlink{structOlsrTypes_a0be5017ad053311658089d9a795c63ac}{OlsrTypes::FaceID} id)}
\label{classFace_a7801d641443fe7e717940b88893ecf26}

\item 
\hyperlink{structOlsrTypes_a0be5017ad053311658089d9a795c63ac}{OlsrTypes::FaceID} \hyperlink{classFace_a7edc7c9428d9137fe61fb8558e18e188}{id} () const 
\item 
string \hyperlink{classFace_a5b81003944ab1a4606d8e116f62fadba}{interface} () const 
\item 
string \hyperlink{classFace_ae2d006446eadcc28b0a347ccf2408184}{vif} () const 
\item 
\hyperlink{classFaceCounters}{FaceCounters} \& \hyperlink{classFace_a22e6e001d052ee4bdd5a2f0bf5243b12}{counters} ()
\item 
const \hyperlink{classFaceCounters}{FaceCounters} \& \hyperlink{classFace_a159422c6e88f1da26120c12773f88557}{counters} () const 
\item 
uint32\_\-t \hyperlink{classFace_a0f765dbbfd1ab84977cf884e17376393}{mtu} () const 
\item 
\hypertarget{classFace_af450737b643182e22be89cc5af994247}{
void \hyperlink{classFace_af450737b643182e22be89cc5af994247}{set\_\-mtu} (const uint32\_\-t mtu)}
\label{classFace_af450737b643182e22be89cc5af994247}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} MTU of this interface. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classFace_ad016bd93bc8c8e670b29784e37146128}{get\_\-pkt\_\-seqno} ()
\item 
bool \hyperlink{classFace_a509fb4cc6abb7a8f0a0a4d70f540d44c}{enabled} () const 
\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classFace_abcf6ec56e635a4f7d019e88104c6ea95}{all\_\-nodes\_\-addr} () const 
\item 
uint16\_\-t \hyperlink{classFace_ab8ca1b2f62893b46871d5b0df2cc0d67}{all\_\-nodes\_\-port} () const 
\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classFace_a1970f4a0dc194665c80be9336a5a0ff5}{local\_\-addr} () const 
\item 
uint16\_\-t \hyperlink{classFace_aeb442338dc3f3c61774a2d18d5db4fc8}{local\_\-port} () const 
\item 
int \hyperlink{classFace_a08af576978b7779c7780e0e6fcdfcbf5}{cost} () const 
\item 
void \hyperlink{classFace_a45d41a57cc79d563cfca090fa473de33}{set\_\-enabled} (bool value)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} \char`\"{}administratively up\char`\"{} state of an OLSR interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classFace_a5f0eb37e337ed26e1106bdbefb735517}{set\_\-all\_\-nodes\_\-addr} (const \hyperlink{classIPv4}{IPv4} \&all\_\-nodes\_\-addr)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} \char`\"{}all nodes\char`\"{} address for this OLSR interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classFace_ade02fb881cd75cd9e47f918d1b6e84af}{set\_\-all\_\-nodes\_\-port} (const uint16\_\-t all\_\-nodes\_\-port)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} \char`\"{}all nodes\char`\"{} UDP port for this OLSR interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classFace_a892961714fa54eb30706646928cbd30f}{set\_\-local\_\-addr} (const \hyperlink{classIPv4}{IPv4} \&local\_\-addr)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} local address for this OLSR interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classFace_ac7cfb2a13c89a795ed77906870273a01}{set\_\-local\_\-port} (const uint16\_\-t local\_\-port)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} UDP local port for this OLSR interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classFace_af5a31970fa70735510f78c5b81a9705b}{set\_\-cost} (int cost)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} shortest path tree cost for this OLSR interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classFace_a0a51a83b0db0fd082efab75f18c3dc70}{transmit} (uint8\_\-t $\ast$data, const uint32\_\-t \&len)
\begin{DoxyCompactList}\small\item\em \hyperlink{classTransmit}{Transmit} a datagram on this \hyperlink{classFace}{Face}. \item\end{DoxyCompactList}\item 
void \hyperlink{classFace_afc96f4ec471d2db1abd8ae82d12be6ec}{originate\_\-hello} ()
\begin{DoxyCompactList}\small\item\em Originate a HELLO message on this interface. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFace_a195fae6de7baba76d8709443aea139d7}{
\hyperlink{classOlsr}{Olsr} \& {\bfseries \_\-olsr}}
\label{classFace_a195fae6de7baba76d8709443aea139d7}

\item 
\hypertarget{classFace_a2f47868a7b92a5de2ca60d9fbf7cd34c}{
\hyperlink{classFaceManager}{FaceManager} \& {\bfseries \_\-fm}}
\label{classFace_a2f47868a7b92a5de2ca60d9fbf7cd34c}

\item 
\hypertarget{classFace_a8ffd282b5dc90fa00ae2aea241639cf2}{
\hyperlink{classNeighborhood}{Neighborhood} $\ast$ {\bfseries \_\-nh}}
\label{classFace_a8ffd282b5dc90fa00ae2aea241639cf2}

\item 
\hypertarget{classFace_adfc2353df8fc600105f99eb645bea3eb}{
\hyperlink{classMessageDecoder}{MessageDecoder} \& {\bfseries \_\-md}}
\label{classFace_adfc2353df8fc600105f99eb645bea3eb}

\item 
\hypertarget{classFace_a471e851e6d815f125b3a86656eff79c9}{
\hyperlink{classFaceCounters}{FaceCounters} \hyperlink{classFace_a471e851e6d815f125b3a86656eff79c9}{\_\-counters}}
\label{classFace_a471e851e6d815f125b3a86656eff79c9}

\begin{DoxyCompactList}\small\item\em Counters for this \hyperlink{classFace}{Face}. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a0f2225b9fe22525010fbcf496d483108}{
\hyperlink{structOlsrTypes_a0be5017ad053311658089d9a795c63ac}{OlsrTypes::FaceID} \hyperlink{classFace_a0f2225b9fe22525010fbcf496d483108}{\_\-id}}
\label{classFace_a0f2225b9fe22525010fbcf496d483108}

\begin{DoxyCompactList}\small\item\em A unique identifier for this \hyperlink{classFace}{Face}. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a28eaa28e735657a6b80f6d0de8538869}{
bool \hyperlink{classFace_a28eaa28e735657a6b80f6d0de8538869}{\_\-enabled}}
\label{classFace_a28eaa28e735657a6b80f6d0de8538869}

\begin{DoxyCompactList}\small\item\em true if this \hyperlink{classFace}{Face} is enabled for routing. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a0c204633ac318541bc66d79228b8e1a6}{
string \hyperlink{classFace_a0c204633ac318541bc66d79228b8e1a6}{\_\-interface}}
\label{classFace_a0c204633ac318541bc66d79228b8e1a6}

\begin{DoxyCompactList}\small\item\em The name of \hyperlink{protocolthe-p}{the} interface with which this \hyperlink{classFace}{Face} is associated. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a72d0eb463bad8a89444cbea3fbe8b207}{
string \hyperlink{classFace_a72d0eb463bad8a89444cbea3fbe8b207}{\_\-vif}}
\label{classFace_a72d0eb463bad8a89444cbea3fbe8b207}

\begin{DoxyCompactList}\small\item\em The name of \hyperlink{protocolthe-p}{the} \hyperlink{classVif}{Vif} with which this \hyperlink{classFace}{Face} is associated. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a301bb40862c907f245b16bdd65184ea8}{
uint32\_\-t \hyperlink{classFace_a301bb40862c907f245b16bdd65184ea8}{\_\-mtu}}
\label{classFace_a301bb40862c907f245b16bdd65184ea8}

\begin{DoxyCompactList}\small\item\em The MTU for this interface. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a2e284880fbb11f93009828671de08fe8}{
\hyperlink{classIPv4}{IPv4} \hyperlink{classFace_a2e284880fbb11f93009828671de08fe8}{\_\-local\_\-addr}}
\label{classFace_a2e284880fbb11f93009828671de08fe8}

\begin{DoxyCompactList}\small\item\em Local address to use for transmitting OLSR protocol messages in UDP. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a49fc66c2c5d45d76b4340875ab4b2704}{
uint16\_\-t \hyperlink{classFace_a49fc66c2c5d45d76b4340875ab4b2704}{\_\-local\_\-port}}
\label{classFace_a49fc66c2c5d45d76b4340875ab4b2704}

\begin{DoxyCompactList}\small\item\em Local port to use for transmitting OLSR protocol messages. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a212769478ead097f78d5f2bdde6c7d4c}{
\hyperlink{classIPv4}{IPv4} \hyperlink{classFace_a212769478ead097f78d5f2bdde6c7d4c}{\_\-all\_\-nodes\_\-addr}}
\label{classFace_a212769478ead097f78d5f2bdde6c7d4c}

\begin{DoxyCompactList}\small\item\em The \char`\"{}all nodes\char`\"{} address to use on this \hyperlink{classFace}{Face} for sending protocol messages. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_ab58a3b99b6193d66292f5eb9aa8bd97f}{
uint16\_\-t \hyperlink{classFace_ab58a3b99b6193d66292f5eb9aa8bd97f}{\_\-all\_\-nodes\_\-port}}
\label{classFace_ab58a3b99b6193d66292f5eb9aa8bd97f}

\begin{DoxyCompactList}\small\item\em The \char`\"{}all nodes\char`\"{} port to use on this \hyperlink{classFace}{Face} for sending protocol messages. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_a4a66bb386d477394b007ba9ae4bb662e}{
int \hyperlink{classFace_a4a66bb386d477394b007ba9ae4bb662e}{\_\-cost}}
\label{classFace_a4a66bb386d477394b007ba9ae4bb662e}

\begin{DoxyCompactList}\small\item\em A fixed cost for \hyperlink{protocolthe-p}{the} interface, used in route calculation. \item\end{DoxyCompactList}\item 
\hypertarget{classFace_af7fca3dc92710dfaa4f2d505f5af0ff3}{
uint32\_\-t \hyperlink{classFace_af7fca3dc92710dfaa4f2d505f5af0ff3}{\_\-next\_\-pkt\_\-seqno}}
\label{classFace_af7fca3dc92710dfaa4f2d505f5af0ff3}

\begin{DoxyCompactList}\small\item\em The sequence number of \hyperlink{protocolthe-p}{the} next packet sent from this \hyperlink{classFace}{Face}. \item\end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
An OLSR interface. There is one \hyperlink{classFace}{Face} per physical if/vif which OLSR is configured to run on.

Whilst an \hyperlink{classIPv4}{IPv4} interface may have multiple addresses, OLSR uses \hyperlink{classIPv4}{IPv4} addresses as primary keys in \hyperlink{protocolthe-p}{the} protocol. Therefore it is necessary to track \hyperlink{protocolthe-p}{the} first configured address on each vif, and use that as \hyperlink{protocolthe-p}{the} Face's address. This happens in \hyperlink{protocolthe-p}{the} absence of any \hyperlink{classIPv4}{IPv4} link-\/scope addresses as \hyperlink{protocolthe-p}{the} system does not have any concept of such things. This may be considered \hyperlink{protocolthe-p}{the} same limitation as IGMP has.

The analogue in XORP's OSPF implementation is class \hyperlink{classPeer}{Peer}. Unlike OSPF, we do not split \hyperlink{classFace}{Face} in \hyperlink{protocolthe-p}{the} same way as Peer/PeerOut are split, as there is no concept of Areas in version 1 of OLSR.

A face is associated with \hyperlink{classLinks}{Links} to each \hyperlink{classNeighbor}{Neighbor}. An instance of \hyperlink{classOlsr}{Olsr} must have at least one \hyperlink{classFace}{Face} configured to run \hyperlink{classOlsr}{Olsr}, otherwise, it isn't an \hyperlink{classOlsr}{Olsr} router. If no Faces exist, OLSR is not active. If only one \hyperlink{classFace}{Face} exists, only a subset of \hyperlink{protocolthe-p}{the} full OLSR protocol is used. 

\subsection{Member Function Documentation}
\hypertarget{classFace_abcf6ec56e635a4f7d019e88104c6ea95}{
\index{Face@{Face}!all\_\-nodes\_\-addr@{all\_\-nodes\_\-addr}}
\index{all\_\-nodes\_\-addr@{all\_\-nodes\_\-addr}!Face@{Face}}
\subsubsection[{all\_\-nodes\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} Face::all\_\-nodes\_\-addr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_abcf6ec56e635a4f7d019e88104c6ea95}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} \char`\"{}all nodes\char`\"{} address configured for this OLSR interface. 
\end{DoxyReturn}
\hypertarget{classFace_ab8ca1b2f62893b46871d5b0df2cc0d67}{
\index{Face@{Face}!all\_\-nodes\_\-port@{all\_\-nodes\_\-port}}
\index{all\_\-nodes\_\-port@{all\_\-nodes\_\-port}!Face@{Face}}
\subsubsection[{all\_\-nodes\_\-port}]{\setlength{\rightskip}{0pt plus 5cm}uint16\_\-t Face::all\_\-nodes\_\-port (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_ab8ca1b2f62893b46871d5b0df2cc0d67}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} \char`\"{}all nodes\char`\"{} UDP port configured for this OLSR interface. 
\end{DoxyReturn}
\hypertarget{classFace_a08af576978b7779c7780e0e6fcdfcbf5}{
\index{Face@{Face}!cost@{cost}}
\index{cost@{cost}!Face@{Face}}
\subsubsection[{cost}]{\setlength{\rightskip}{0pt plus 5cm}int Face::cost (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a08af576978b7779c7780e0e6fcdfcbf5}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} default cost of transiting this OLSR interface. Used by \hyperlink{protocolthe-p}{the} shortest path algorithm. 
\end{DoxyReturn}
\hypertarget{classFace_a22e6e001d052ee4bdd5a2f0bf5243b12}{
\index{Face@{Face}!counters@{counters}}
\index{counters@{counters}!Face@{Face}}
\subsubsection[{counters}]{\setlength{\rightskip}{0pt plus 5cm}{\bf FaceCounters}\& Face::counters (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a22e6e001d052ee4bdd5a2f0bf5243b12}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} protocol counters for this OLSR interface. 
\end{DoxyReturn}
\hypertarget{classFace_a159422c6e88f1da26120c12773f88557}{
\index{Face@{Face}!counters@{counters}}
\index{counters@{counters}!Face@{Face}}
\subsubsection[{counters}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf FaceCounters}\& Face::counters (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a159422c6e88f1da26120c12773f88557}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} protocol counters for this OLSR interface. 
\end{DoxyReturn}
\hypertarget{classFace_a509fb4cc6abb7a8f0a0a4d70f540d44c}{
\index{Face@{Face}!enabled@{enabled}}
\index{enabled@{enabled}!Face@{Face}}
\subsubsection[{enabled}]{\setlength{\rightskip}{0pt plus 5cm}bool Face::enabled (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a509fb4cc6abb7a8f0a0a4d70f540d44c}
\begin{DoxyReturn}{Returns}
true if this OLSR interface is administratively up. 
\end{DoxyReturn}
\hypertarget{classFace_ad016bd93bc8c8e670b29784e37146128}{
\index{Face@{Face}!get\_\-pkt\_\-seqno@{get\_\-pkt\_\-seqno}}
\index{get\_\-pkt\_\-seqno@{get\_\-pkt\_\-seqno}!Face@{Face}}
\subsubsection[{get\_\-pkt\_\-seqno}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Face::get\_\-pkt\_\-seqno (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_ad016bd93bc8c8e670b29784e37146128}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} next available sequence number for a \hyperlink{classPacket}{Packet} to be sent from this OLSR interface. 
\end{DoxyReturn}
\hypertarget{classFace_a7edc7c9428d9137fe61fb8558e18e188}{
\index{Face@{Face}!id@{id}}
\index{id@{id}!Face@{Face}}
\subsubsection[{id}]{\setlength{\rightskip}{0pt plus 5cm}{\bf OlsrTypes::FaceID} Face::id (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a7edc7c9428d9137fe61fb8558e18e188}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} internal ID of this OLSR interface. 
\end{DoxyReturn}
\hypertarget{classFace_a5b81003944ab1a4606d8e116f62fadba}{
\index{Face@{Face}!interface@{interface}}
\index{interface@{interface}!Face@{Face}}
\subsubsection[{interface}]{\setlength{\rightskip}{0pt plus 5cm}string Face::interface (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a5b81003944ab1a4606d8e116f62fadba}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} name of this OLSR interface as known to \hyperlink{protocolthe-p}{the} FEA. 
\end{DoxyReturn}
\hypertarget{classFace_a1970f4a0dc194665c80be9336a5a0ff5}{
\index{Face@{Face}!local\_\-addr@{local\_\-addr}}
\index{local\_\-addr@{local\_\-addr}!Face@{Face}}
\subsubsection[{local\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} Face::local\_\-addr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a1970f4a0dc194665c80be9336a5a0ff5}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} source address configured for this OLSR interface. 
\end{DoxyReturn}
\hypertarget{classFace_aeb442338dc3f3c61774a2d18d5db4fc8}{
\index{Face@{Face}!local\_\-port@{local\_\-port}}
\index{local\_\-port@{local\_\-port}!Face@{Face}}
\subsubsection[{local\_\-port}]{\setlength{\rightskip}{0pt plus 5cm}uint16\_\-t Face::local\_\-port (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_aeb442338dc3f3c61774a2d18d5db4fc8}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} UDP source port configured for this OLSR interface. 
\end{DoxyReturn}
\hypertarget{classFace_a0f765dbbfd1ab84977cf884e17376393}{
\index{Face@{Face}!mtu@{mtu}}
\index{mtu@{mtu}!Face@{Face}}
\subsubsection[{mtu}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Face::mtu (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a0f765dbbfd1ab84977cf884e17376393}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} MTU of this interface. 
\end{DoxyReturn}
\hypertarget{classFace_afc96f4ec471d2db1abd8ae82d12be6ec}{
\index{Face@{Face}!originate\_\-hello@{originate\_\-hello}}
\index{originate\_\-hello@{originate\_\-hello}!Face@{Face}}
\subsubsection[{originate\_\-hello}]{\setlength{\rightskip}{0pt plus 5cm}void Face::originate\_\-hello (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classFace_afc96f4ec471d2db1abd8ae82d12be6ec}


Originate a HELLO message on this interface. 

The message thus originated will be filled out appropriately, containing \hyperlink{protocolthe-p}{the} relevant OLSR protocol state as seen from this \hyperlink{classFace}{Face}.

TODO: Perform MTU-\/based message segmentation. \hypertarget{classFace_a5f0eb37e337ed26e1106bdbefb735517}{
\index{Face@{Face}!set\_\-all\_\-nodes\_\-addr@{set\_\-all\_\-nodes\_\-addr}}
\index{set\_\-all\_\-nodes\_\-addr@{set\_\-all\_\-nodes\_\-addr}!Face@{Face}}
\subsubsection[{set\_\-all\_\-nodes\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void Face::set\_\-all\_\-nodes\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{all\_\-nodes\_\-addr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a5f0eb37e337ed26e1106bdbefb735517}


Set \hyperlink{protocolthe-p}{the} \char`\"{}all nodes\char`\"{} address for this OLSR interface. 


\begin{DoxyParams}{Parameters}
{\em all\_\-nodes\_\-addr} & \hyperlink{protocolthe-p}{the} \char`\"{}all nodes\char`\"{} address to set. \\
\hline
\end{DoxyParams}
\hypertarget{classFace_ade02fb881cd75cd9e47f918d1b6e84af}{
\index{Face@{Face}!set\_\-all\_\-nodes\_\-port@{set\_\-all\_\-nodes\_\-port}}
\index{set\_\-all\_\-nodes\_\-port@{set\_\-all\_\-nodes\_\-port}!Face@{Face}}
\subsubsection[{set\_\-all\_\-nodes\_\-port}]{\setlength{\rightskip}{0pt plus 5cm}void Face::set\_\-all\_\-nodes\_\-port (
\begin{DoxyParamCaption}
\item[{const uint16\_\-t}]{all\_\-nodes\_\-port}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_ade02fb881cd75cd9e47f918d1b6e84af}


Set \hyperlink{protocolthe-p}{the} \char`\"{}all nodes\char`\"{} UDP port for this OLSR interface. 


\begin{DoxyParams}{Parameters}
{\em all\_\-nodes\_\-port} & \hyperlink{protocolthe-p}{the} \char`\"{}all nodes\char`\"{} port to set. \\
\hline
\end{DoxyParams}
\hypertarget{classFace_af5a31970fa70735510f78c5b81a9705b}{
\index{Face@{Face}!set\_\-cost@{set\_\-cost}}
\index{set\_\-cost@{set\_\-cost}!Face@{Face}}
\subsubsection[{set\_\-cost}]{\setlength{\rightskip}{0pt plus 5cm}void Face::set\_\-cost (
\begin{DoxyParamCaption}
\item[{int}]{cost}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_af5a31970fa70735510f78c5b81a9705b}


Set \hyperlink{protocolthe-p}{the} shortest path tree cost for this OLSR interface. 


\begin{DoxyParams}{Parameters}
{\em cost} & \hyperlink{protocolthe-p}{the} cost to set. \\
\hline
\end{DoxyParams}
\hypertarget{classFace_a45d41a57cc79d563cfca090fa473de33}{
\index{Face@{Face}!set\_\-enabled@{set\_\-enabled}}
\index{set\_\-enabled@{set\_\-enabled}!Face@{Face}}
\subsubsection[{set\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}void Face::set\_\-enabled (
\begin{DoxyParamCaption}
\item[{bool}]{value}
\end{DoxyParamCaption}
)}}
\label{classFace_a45d41a57cc79d563cfca090fa473de33}


Set \hyperlink{protocolthe-p}{the} \char`\"{}administratively up\char`\"{} state of an OLSR interface. 


\begin{DoxyParams}{Parameters}
{\em value} & true if this interface is enabled for OLSR, otherwise false. \\
\hline
\end{DoxyParams}
\hypertarget{classFace_a892961714fa54eb30706646928cbd30f}{
\index{Face@{Face}!set\_\-local\_\-addr@{set\_\-local\_\-addr}}
\index{set\_\-local\_\-addr@{set\_\-local\_\-addr}!Face@{Face}}
\subsubsection[{set\_\-local\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void Face::set\_\-local\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{local\_\-addr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_a892961714fa54eb30706646928cbd30f}


Set \hyperlink{protocolthe-p}{the} local address for this OLSR interface. 


\begin{DoxyParams}{Parameters}
{\em local\_\-addr} & \hyperlink{protocolthe-p}{the} local address to set. \\
\hline
\end{DoxyParams}
\hypertarget{classFace_ac7cfb2a13c89a795ed77906870273a01}{
\index{Face@{Face}!set\_\-local\_\-port@{set\_\-local\_\-port}}
\index{set\_\-local\_\-port@{set\_\-local\_\-port}!Face@{Face}}
\subsubsection[{set\_\-local\_\-port}]{\setlength{\rightskip}{0pt plus 5cm}void Face::set\_\-local\_\-port (
\begin{DoxyParamCaption}
\item[{const uint16\_\-t}]{local\_\-port}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_ac7cfb2a13c89a795ed77906870273a01}


Set \hyperlink{protocolthe-p}{the} UDP local port for this OLSR interface. 


\begin{DoxyParams}{Parameters}
{\em local\_\-port} & \hyperlink{protocolthe-p}{the} local port to set. \\
\hline
\end{DoxyParams}
\hypertarget{classFace_a0a51a83b0db0fd082efab75f18c3dc70}{
\index{Face@{Face}!transmit@{transmit}}
\index{transmit@{transmit}!Face@{Face}}
\subsubsection[{transmit}]{\setlength{\rightskip}{0pt plus 5cm}bool Face::transmit (
\begin{DoxyParamCaption}
\item[{uint8\_\-t $\ast$}]{data, }
\item[{const uint32\_\-t \&}]{len}
\end{DoxyParamCaption}
)}}
\label{classFace_a0a51a83b0db0fd082efab75f18c3dc70}


\hyperlink{classTransmit}{Transmit} a datagram on this \hyperlink{classFace}{Face}. 


\begin{DoxyParams}{Parameters}
{\em data} & \hyperlink{protocolthe-p}{the} datagram to be sent. \\
\hline
{\em len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} datagram to be sent. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} datagram was successfully transmitted. 
\end{DoxyReturn}
\hypertarget{classFace_ae2d006446eadcc28b0a347ccf2408184}{
\index{Face@{Face}!vif@{vif}}
\index{vif@{vif}!Face@{Face}}
\subsubsection[{vif}]{\setlength{\rightskip}{0pt plus 5cm}string Face::vif (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFace_ae2d006446eadcc28b0a347ccf2408184}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} name of this OLSR interface's vif as known to \hyperlink{protocolthe-p}{the} FEA. 
\end{DoxyReturn}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/olsr/face.hh\item 
/home/greearb/git/xorp.ct.github/xorp/contrib/olsr/face.cc\end{DoxyCompactItemize}
