\hypertarget{classFib2mribNode}{
\section{Fib2mribNode Class Reference}
\label{classFib2mribNode}\index{Fib2mribNode@{Fib2mribNode}}
}


The Fib2mrib node class.  




{\ttfamily \#include $<$fib2mrib\_\-node.hh$>$}

Inheritance diagram for Fib2mribNode:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.929825cm]{classFib2mribNode}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classFib2mribNode_a49d455aa192d92c673032ebe466958af}{Fib2mribNode} (\hyperlink{classEventLoop}{EventLoop} \&eventloop)
\begin{DoxyCompactList}\small\item\em Constructor for a given event loop. \item\end{DoxyCompactList}\item 
\hypertarget{classFib2mribNode_a9f8459d1689b23fd3d07cbef7493a9e1}{
virtual \hyperlink{classFib2mribNode_a9f8459d1689b23fd3d07cbef7493a9e1}{$\sim$Fib2mribNode} ()}
\label{classFib2mribNode_a9f8459d1689b23fd3d07cbef7493a9e1}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
\hyperlink{classEventLoop}{EventLoop} \& \hyperlink{classFib2mribNode_a8497fe7fe7e4a64d73d9fb2828543d2b}{eventloop} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} event loop this node is added to. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classFib2mribNode_a4b4c05053d5dd682ac1510ea9d443978}{protocol\_\-name} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} protocol name. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a876a14b8d8d08e1a769770658c680391}{startup} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classStartup}{Startup} \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a4bf9931df9521a0019a0b25c73a92e51}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
ProcessStatus \hyperlink{classFib2mribNode_a372c3a1ccd213830687c187b74260c86}{node\_\-status} (string \&reason\_\-msg)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} node status (see ProcessStatus). \item\end{DoxyCompactList}\item 
bool \hyperlink{classFib2mribNode_aaa53069627df7165d13267f1f72db84d}{is\_\-done} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} node processing is done. \item\end{DoxyCompactList}\item 
bool \hyperlink{classFib2mribNode_adbd481bcf721f87cc083407386f9153e}{is\_\-enabled} () const 
\begin{DoxyCompactList}\small\item\em Test whether \hyperlink{protocolthe-p}{the} node operation is enabled. \item\end{DoxyCompactList}\item 
void \hyperlink{classFib2mribNode_ac8b03ed79de45c374eb6ffd86c1d1c88}{set\_\-enabled} (bool enable)
\begin{DoxyCompactList}\small\item\em Enable/disable node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a48a056cc083bb65aea1e49d6c1cfd763}{add\_\-route4} (const \hyperlink{classIPNet}{IPv4Net} \&network, const \hyperlink{classIPv4}{IPv4} \&nexthop, const string \&ifname, const string \&vifname, uint32\_\-t metric, uint32\_\-t admin\_\-distance, const string \&protocol\_\-origin, bool xorp\_\-route, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add an \hyperlink{classIPv4}{IPv4} route. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a90c08625b40ebdc582f61953b0255ced}{add\_\-route6} (const \hyperlink{classIPNet}{IPv6Net} \&network, const \hyperlink{classIPv6}{IPv6} \&nexthop, const string \&ifname, const string \&vifname, uint32\_\-t metric, uint32\_\-t admin\_\-distance, const string \&protocol\_\-origin, bool xorp\_\-route, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add an \hyperlink{classIPv6}{IPv6} route. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_af68e1fd1f09c4f12011ff0fe6501945d}{replace\_\-route4} (const \hyperlink{classIPNet}{IPv4Net} \&network, const \hyperlink{classIPv4}{IPv4} \&nexthop, const string \&ifname, const string \&vifname, uint32\_\-t metric, uint32\_\-t admin\_\-distance, const string \&protocol\_\-origin, bool xorp\_\-route, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Replace an \hyperlink{classIPv4}{IPv4} route. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a62bbb4dcd71a82f77bc82a955abf4c44}{replace\_\-route6} (const \hyperlink{classIPNet}{IPv6Net} \&network, const \hyperlink{classIPv6}{IPv6} \&nexthop, const string \&ifname, const string \&vifname, uint32\_\-t metric, uint32\_\-t admin\_\-distance, const string \&protocol\_\-origin, bool xorp\_\-route, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Replace an \hyperlink{classIPv6}{IPv6} route. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a7f365f25c3749fe17512c43ee0ee2493}{delete\_\-route4} (const \hyperlink{classIPNet}{IPv4Net} \&network, const string \&ifname, const string \&vifname, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete an \hyperlink{classIPv4}{IPv4} route. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a5f82d23448ca9ac7f5edafa1917bd0e3}{delete\_\-route6} (const \hyperlink{classIPNet}{IPv6Net} \&network, const string \&ifname, const string \&vifname, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete an \hyperlink{classIPv6}{IPv6} route. \item\end{DoxyCompactList}\item 
bool \hyperlink{classFib2mribNode_ae4d9f9ac2b572fa841565a3d887890e4}{is\_\-log\_\-trace} () const 
\begin{DoxyCompactList}\small\item\em Test if trace log is enabled. \item\end{DoxyCompactList}\item 
void \hyperlink{classFib2mribNode_a8476a4c23eefad7da7576a25b5612e15}{set\_\-log\_\-trace} (bool is\_\-enabled)
\begin{DoxyCompactList}\small\item\em Enable/disable trace log. \item\end{DoxyCompactList}\item 
void \hyperlink{classFib2mribNode_a3c9512993e36e05ffa66fd84a4b8f688}{configure\_\-filter} (const uint32\_\-t \&filter, const string \&conf)
\begin{DoxyCompactList}\small\item\em Configure a policy filter. \item\end{DoxyCompactList}\item 
void \hyperlink{classFib2mribNode_af4a13d706ef2015ed879b9994450e091}{reset\_\-filter} (const uint32\_\-t \&filter)
\begin{DoxyCompactList}\small\item\em Reset a policy filter. \item\end{DoxyCompactList}\item 
\hypertarget{classFib2mribNode_a26d2c80e990d4e4e440320c7fb5360cf}{
void \hyperlink{classFib2mribNode_a26d2c80e990d4e4e440320c7fb5360cf}{push\_\-routes} ()}
\label{classFib2mribNode_a26d2c80e990d4e4e440320c7fb5360cf}

\begin{DoxyCompactList}\small\item\em \hyperlink{classPush}{Push} all \hyperlink{protocolthe-p}{the} routes through \hyperlink{protocolthe-p}{the} policy filters for re-\/filtering. \item\end{DoxyCompactList}\item 
void \hyperlink{classFib2mribNode_a3997a4119b94adfb4f1b9b87f82128d9}{push\_\-pull\_\-rib\_\-routes} (bool is\_\-push)
\begin{DoxyCompactList}\small\item\em \hyperlink{classPush}{Push} or pull all \hyperlink{protocolthe-p}{the} routes to/from \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFib2mribNode_a18ba8d30012d9ac1121dd08774c72cd5}{
void {\bfseries tree\_\-complete} ()}
\label{classFib2mribNode_a18ba8d30012d9ac1121dd08774c72cd5}

\item 
\hypertarget{classFib2mribNode_a276a9d2de2d9fdd267c6f6e782ccad28}{
void {\bfseries updates\_\-made} ()}
\label{classFib2mribNode_a276a9d2de2d9fdd267c6f6e782ccad28}

\item 
\hypertarget{classFib2mribNode_a74458b38d6ce549334139052f58f0794}{
void {\bfseries incr\_\-startup\_\-requests\_\-n} ()}
\label{classFib2mribNode_a74458b38d6ce549334139052f58f0794}

\item 
\hypertarget{classFib2mribNode_a874d0a3f17f22ddd67922a3943d38800}{
void {\bfseries decr\_\-startup\_\-requests\_\-n} ()}
\label{classFib2mribNode_a874d0a3f17f22ddd67922a3943d38800}

\item 
\hypertarget{classFib2mribNode_a9ae567870055d7a178226dadadc2521e}{
void {\bfseries incr\_\-shutdown\_\-requests\_\-n} ()}
\label{classFib2mribNode_a9ae567870055d7a178226dadadc2521e}

\item 
\hypertarget{classFib2mribNode_a34eda39eb566944771ccb3ddb3e93230}{
void {\bfseries decr\_\-shutdown\_\-requests\_\-n} ()}
\label{classFib2mribNode_a34eda39eb566944771ccb3ddb3e93230}

\item 
\hypertarget{classFib2mribNode_a306c8fa08008f652ebf0c1c98d4bb7ee}{
void {\bfseries update\_\-status} ()}
\label{classFib2mribNode_a306c8fa08008f652ebf0c1c98d4bb7ee}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classFib2mribNode_a740a7c70b9ce30d032d1723aff298a00}{status\_\-change} (\hyperlink{classServiceBase}{ServiceBase} $\ast$service, ServiceStatus old\_\-status, ServiceStatus new\_\-status)
\begin{DoxyCompactList}\small\item\em A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. \item\end{DoxyCompactList}\item 
virtual const \hyperlink{classServiceBase}{ServiceBase} $\ast$ \hyperlink{classFib2mribNode_a0ecaa089b4f34ee4eb2d2ece1d0b4069}{ifmgr\_\-mirror\_\-service\_\-base} () const =0
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. \item\end{DoxyCompactList}\item 
virtual const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \& \hyperlink{classFib2mribNode_abcf1b7c595d64c1f812a41aaa5460874}{ifmgr\_\-iftree} () const =0
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} interface manager tree. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classFib2mribNode_afbc683fd449c529f01664c387ba71f95}{fea\_\-register\_\-startup} ()=0
\begin{DoxyCompactList}\small\item\em Initiate registration with \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classFib2mribNode_af20fe1201f48f5924a8031e4116c38ed}{fea\_\-register\_\-shutdown} ()=0
\begin{DoxyCompactList}\small\item\em Initiate de-\/registration with \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classFib2mribNode_a97ce2caaa03789b81456101d9189cf6d}{rib\_\-register\_\-startup} ()=0
\begin{DoxyCompactList}\small\item\em Initiate registration with \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classFib2mribNode_a565ef7e9e83537aafaf4d2fa9829045d}{rib\_\-register\_\-shutdown} ()=0
\begin{DoxyCompactList}\small\item\em Initiate de-\/registration with \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a40bdb7cf37a73573fcdb550b01ccf09f}{add\_\-route} (const \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&fib2mrib\_\-route, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add an \hyperlink{classIPvX}{IPvX} route. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_aba308b54703ccfc35ce1552c46a6b9a8}{replace\_\-route} (const \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&fib2mrib\_\-route, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Replace a Fib2mrib \hyperlink{classIPvX}{IPvX} route. \item\end{DoxyCompactList}\item 
int \hyperlink{classFib2mribNode_a8c11939e03e4d0a09af3a40376ae6a65}{delete\_\-route} (const \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&fib2mrib\_\-route, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete a Fib2mrib \hyperlink{classIPvX}{IPvX} route. \item\end{DoxyCompactList}\item 
void \hyperlink{classFib2mribNode_ab02d7cc902dc2636996d061d8c07ae03}{prepare\_\-route\_\-for\_\-transmission} (\hyperlink{classFib2mribRoute}{Fib2mribRoute} \&orig\_\-route, \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&copy\_\-route)
\begin{DoxyCompactList}\small\item\em Prepare a copy of a route for transmission to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classFib2mribNode_ac6fac28f8a891dedd8239535e8c151d4}{inform\_\-rib\_\-route\_\-change} (const \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&fib2mrib\_\-route)=0
\begin{DoxyCompactList}\small\item\em Inform \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} about a route change. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classFib2mribNode_aee0f8a6d081a7b5d45a94fc11f91a149}{cancel\_\-rib\_\-route\_\-change} (const \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&fib2mrib\_\-route)=0
\begin{DoxyCompactList}\small\item\em Cancel a pending request to inform \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} about a route change. \item\end{DoxyCompactList}\item 
bool \hyperlink{classFib2mribNode_a652e0749f0d04c1321d080e7c449a77c}{update\_\-route} (const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \&iftree, \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&route)
\begin{DoxyCompactList}\small\item\em Update a route received from \hyperlink{protocolthe-p}{the} FEA. \item\end{DoxyCompactList}\item 
bool \hyperlink{classFib2mribNode_a6566c6315225bea4103a961271d9d13d}{do\_\-filtering} (\hyperlink{classFib2mribRoute}{Fib2mribRoute} \&route)
\begin{DoxyCompactList}\small\item\em Do policy filtering on a route. \item\end{DoxyCompactList}\item 
bool \hyperlink{classFib2mribNode_affc0e9923994e03df1878f137f9aafb3}{is\_\-accepted\_\-by\_\-nexthop} (const \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&route) const 
\begin{DoxyCompactList}\small\item\em Test whether a route is accepted based on its next-\/hop information. \item\end{DoxyCompactList}\item 
void \hyperlink{classFib2mribNode_a2654bbfc9d87da19410f2329a3a2ee66}{inform\_\-rib} (const \hyperlink{classFib2mribRoute}{Fib2mribRoute} \&r)
\begin{DoxyCompactList}\small\item\em Inform \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} about a route. \item\end{DoxyCompactList}\item 
void \hyperlink{classFib2mribNode_a69480b259128098259c39c2b7c194c07}{set\_\-node\_\-status} (ProcessStatus v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} node status. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFib2mribNode_ac656439062414605e3845fd54ae66086}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classFib2mribNode_ac656439062414605e3845fd54ae66086}

\item 
\hypertarget{classFib2mribNode_a5484822ae20bd4e1de14e0f45e8cc168}{
ProcessStatus {\bfseries \_\-node\_\-status}}
\label{classFib2mribNode_a5484822ae20bd4e1de14e0f45e8cc168}

\item 
\hypertarget{classFib2mribNode_ac90a1c561e8babed958ea7f1e47e04dd}{
const string {\bfseries \_\-protocol\_\-name}}
\label{classFib2mribNode_ac90a1c561e8babed958ea7f1e47e04dd}

\item 
\hypertarget{classFib2mribNode_a522f5ff1be4d29db7b0c1ea8759fba2f}{
bool {\bfseries \_\-is\_\-enabled}}
\label{classFib2mribNode_a522f5ff1be4d29db7b0c1ea8759fba2f}

\item 
\hypertarget{classFib2mribNode_aa21d88637cfbb87989e120f57f6faaa8}{
multimap$<$ \hyperlink{classIPvXNet}{IPvXNet}, \hyperlink{classFib2mribRoute}{Fib2mribRoute} $>$ {\bfseries \_\-fib2mrib\_\-routes}}
\label{classFib2mribNode_aa21d88637cfbb87989e120f57f6faaa8}

\item 
\hypertarget{classFib2mribNode_a8d3a5e5e4a651e09f765828d8a1979cd}{
size\_\-t {\bfseries \_\-startup\_\-requests\_\-n}}
\label{classFib2mribNode_a8d3a5e5e4a651e09f765828d8a1979cd}

\item 
\hypertarget{classFib2mribNode_a5969d888bcb24ccda622189bf5c2b0ca}{
size\_\-t {\bfseries \_\-shutdown\_\-requests\_\-n}}
\label{classFib2mribNode_a5969d888bcb24ccda622189bf5c2b0ca}

\item 
\hypertarget{classFib2mribNode_a555c888266ac93c2d37a25bc86ac69a4}{
\hyperlink{classIfMgrIfTree}{IfMgrIfTree} {\bfseries \_\-iftree}}
\label{classFib2mribNode_a555c888266ac93c2d37a25bc86ac69a4}

\item 
\hypertarget{classFib2mribNode_ab7722555d1218789fe9d5dba7b8789d4}{
bool {\bfseries \_\-is\_\-log\_\-trace}}
\label{classFib2mribNode_ab7722555d1218789fe9d5dba7b8789d4}

\item 
\hypertarget{classFib2mribNode_a16bbf61fbbdac27c9ec31fcdb7e9539b}{
\hyperlink{classPolicyFilters}{PolicyFilters} {\bfseries \_\-policy\_\-filters}}
\label{classFib2mribNode_a16bbf61fbbdac27c9ec31fcdb7e9539b}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
The Fib2mrib node class. There should be one node per Fib2mrib instance. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classFib2mribNode_a49d455aa192d92c673032ebe466958af}{
\index{Fib2mribNode@{Fib2mribNode}!Fib2mribNode@{Fib2mribNode}}
\index{Fib2mribNode@{Fib2mribNode}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{Fib2mribNode}]{\setlength{\rightskip}{0pt plus 5cm}Fib2mribNode::Fib2mribNode (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a49d455aa192d92c673032ebe466958af}


Constructor for a given event loop. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & \hyperlink{protocolthe-p}{the} event loop to use. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classFib2mribNode_a40bdb7cf37a73573fcdb550b01ccf09f}{
\index{Fib2mribNode@{Fib2mribNode}!add\_\-route@{add\_\-route}}
\index{add\_\-route@{add\_\-route}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{add\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::add\_\-route (
\begin{DoxyParamCaption}
\item[{const {\bf Fib2mribRoute} \&}]{fib2mrib\_\-route, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFib2mribNode_a40bdb7cf37a73573fcdb550b01ccf09f}


Add an \hyperlink{classIPvX}{IPvX} route. 


\begin{DoxyParams}{Parameters}
{\em fib2mrib\_\-route} & \hyperlink{protocolthe-p}{the} route to add. \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{classFib2mribRoute}{Fib2mribRoute} 
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a48a056cc083bb65aea1e49d6c1cfd763}{
\index{Fib2mribNode@{Fib2mribNode}!add\_\-route4@{add\_\-route4}}
\index{add\_\-route4@{add\_\-route4}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{add\_\-route4}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::add\_\-route4 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Net} \&}]{network, }
\item[{const {\bf IPv4} \&}]{nexthop, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{uint32\_\-t}]{metric, }
\item[{uint32\_\-t}]{admin\_\-distance, }
\item[{const string \&}]{protocol\_\-origin, }
\item[{bool}]{xorp\_\-route, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a48a056cc083bb65aea1e49d6c1cfd763}


Add an \hyperlink{classIPv4}{IPv4} route. 


\begin{DoxyParams}{Parameters}
{\em network} & \hyperlink{protocolthe-p}{the} network address prefix this route applies to. \\
\hline
{\em nexthop} & \hyperlink{protocolthe-p}{the} address of \hyperlink{protocolthe-p}{the} next-\/hop router for this route. \\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} virtual interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em metric} & \hyperlink{protocolthe-p}{the} routing metric for this route. \\
\hline
{\em admin\_\-distance} & \hyperlink{protocolthe-p}{the} administratively defined distance for this route. \\
\hline
{\em protocol\_\-origin} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} protocol that originated this route. \\
\hline
{\em xorp\_\-route} & true if this route was installed by XORP. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a90c08625b40ebdc582f61953b0255ced}{
\index{Fib2mribNode@{Fib2mribNode}!add\_\-route6@{add\_\-route6}}
\index{add\_\-route6@{add\_\-route6}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{add\_\-route6}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::add\_\-route6 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Net} \&}]{network, }
\item[{const {\bf IPv6} \&}]{nexthop, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{uint32\_\-t}]{metric, }
\item[{uint32\_\-t}]{admin\_\-distance, }
\item[{const string \&}]{protocol\_\-origin, }
\item[{bool}]{xorp\_\-route, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a90c08625b40ebdc582f61953b0255ced}


Add an \hyperlink{classIPv6}{IPv6} route. 


\begin{DoxyParams}{Parameters}
{\em network} & \hyperlink{protocolthe-p}{the} network address prefix this route applies to. \\
\hline
{\em nexthop} & \hyperlink{protocolthe-p}{the} address of \hyperlink{protocolthe-p}{the} next-\/hop router for this route. \\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} virtual interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em metric} & \hyperlink{protocolthe-p}{the} routing metric for this route. \\
\hline
{\em admin\_\-distance} & \hyperlink{protocolthe-p}{the} administratively defined distance for this route. \\
\hline
{\em protocol\_\-origin} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} protocol that originated this route. \\
\hline
{\em xorp\_\-route} & true if this route was installed by XORP. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_aee0f8a6d081a7b5d45a94fc11f91a149}{
\index{Fib2mribNode@{Fib2mribNode}!cancel\_\-rib\_\-route\_\-change@{cancel\_\-rib\_\-route\_\-change}}
\index{cancel\_\-rib\_\-route\_\-change@{cancel\_\-rib\_\-route\_\-change}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{cancel\_\-rib\_\-route\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Fib2mribNode::cancel\_\-rib\_\-route\_\-change (
\begin{DoxyParamCaption}
\item[{const {\bf Fib2mribRoute} \&}]{fib2mrib\_\-route}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classFib2mribNode_aee0f8a6d081a7b5d45a94fc11f91a149}


Cancel a pending request to inform \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} about a route change. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em fib2mrib\_\-route} & \hyperlink{protocolthe-p}{the} route with \hyperlink{protocolthe-p}{the} request that would be canceled. \\
\hline
\end{DoxyParams}


Implemented in \hyperlink{classXrlFib2mribNode_a8e90216134af579fe4f17eefd4460a05}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_a3c9512993e36e05ffa66fd84a4b8f688}{
\index{Fib2mribNode@{Fib2mribNode}!configure\_\-filter@{configure\_\-filter}}
\index{configure\_\-filter@{configure\_\-filter}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{configure\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::configure\_\-filter (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{filter, }
\item[{const string \&}]{conf}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a3c9512993e36e05ffa66fd84a4b8f688}


Configure a policy filter. 

Will throw an exception on error.

Export filter is not supported by fib2mrib routes.


\begin{DoxyParams}{Parameters}
{\em filter} & identifier of filter to configure. \\
\hline
{\em conf} & configuration of \hyperlink{protocolthe-p}{the} filter. \\
\hline
\end{DoxyParams}
\hypertarget{classFib2mribNode_a8c11939e03e4d0a09af3a40376ae6a65}{
\index{Fib2mribNode@{Fib2mribNode}!delete\_\-route@{delete\_\-route}}
\index{delete\_\-route@{delete\_\-route}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{delete\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::delete\_\-route (
\begin{DoxyParamCaption}
\item[{const {\bf Fib2mribRoute} \&}]{fib2mrib\_\-route, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFib2mribNode_a8c11939e03e4d0a09af3a40376ae6a65}


Delete a Fib2mrib \hyperlink{classIPvX}{IPvX} route. 

Delete an \hyperlink{classIPvX}{IPvX} route.


\begin{DoxyParams}{Parameters}
{\em fib2mrib\_\-route} & \hyperlink{protocolthe-p}{the} route to delete. \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{classFib2mribRoute}{Fib2mribRoute} 
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a7f365f25c3749fe17512c43ee0ee2493}{
\index{Fib2mribNode@{Fib2mribNode}!delete\_\-route4@{delete\_\-route4}}
\index{delete\_\-route4@{delete\_\-route4}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{delete\_\-route4}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::delete\_\-route4 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Net} \&}]{network, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a7f365f25c3749fe17512c43ee0ee2493}


Delete an \hyperlink{classIPv4}{IPv4} route. 


\begin{DoxyParams}{Parameters}
{\em network} & \hyperlink{protocolthe-p}{the} network address prefix this route applies to. \\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} virtual interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a5f82d23448ca9ac7f5edafa1917bd0e3}{
\index{Fib2mribNode@{Fib2mribNode}!delete\_\-route6@{delete\_\-route6}}
\index{delete\_\-route6@{delete\_\-route6}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{delete\_\-route6}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::delete\_\-route6 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Net} \&}]{network, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a5f82d23448ca9ac7f5edafa1917bd0e3}


Delete an \hyperlink{classIPv6}{IPv6} route. 


\begin{DoxyParams}{Parameters}
{\em network} & \hyperlink{protocolthe-p}{the} network address prefix this route applies to. \\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} virtual interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a6566c6315225bea4103a961271d9d13d}{
\index{Fib2mribNode@{Fib2mribNode}!do\_\-filtering@{do\_\-filtering}}
\index{do\_\-filtering@{do\_\-filtering}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{do\_\-filtering}]{\setlength{\rightskip}{0pt plus 5cm}bool Fib2mribNode::do\_\-filtering (
\begin{DoxyParamCaption}
\item[{{\bf Fib2mribRoute} \&}]{route}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFib2mribNode_a6566c6315225bea4103a961271d9d13d}


Do policy filtering on a route. 


\begin{DoxyParams}{Parameters}
{\em route} & route to filter. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if route was accepted by policy filter, otherwise false. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a8497fe7fe7e4a64d73d9fb2828543d2b}{
\index{Fib2mribNode@{Fib2mribNode}!eventloop@{eventloop}}
\index{eventloop@{eventloop}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{eventloop}]{\setlength{\rightskip}{0pt plus 5cm}{\bf EventLoop}\& Fib2mribNode::eventloop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFib2mribNode_a8497fe7fe7e4a64d73d9fb2828543d2b}


Get \hyperlink{protocolthe-p}{the} event loop this node is added to. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} event loop this node is added to. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_af20fe1201f48f5924a8031e4116c38ed}{
\index{Fib2mribNode@{Fib2mribNode}!fea\_\-register\_\-shutdown@{fea\_\-register\_\-shutdown}}
\index{fea\_\-register\_\-shutdown@{fea\_\-register\_\-shutdown}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{fea\_\-register\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Fib2mribNode::fea\_\-register\_\-shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classFib2mribNode_af20fe1201f48f5924a8031e4116c38ed}


Initiate de-\/registration with \hyperlink{protocolthe-p}{the} FEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlFib2mribNode_a5712b109c11dec70af469ca96ab7018b}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_afbc683fd449c529f01664c387ba71f95}{
\index{Fib2mribNode@{Fib2mribNode}!fea\_\-register\_\-startup@{fea\_\-register\_\-startup}}
\index{fea\_\-register\_\-startup@{fea\_\-register\_\-startup}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{fea\_\-register\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Fib2mribNode::fea\_\-register\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classFib2mribNode_afbc683fd449c529f01664c387ba71f95}


Initiate registration with \hyperlink{protocolthe-p}{the} FEA. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlFib2mribNode_a001e91d3892a19ac589ea41ccdfa94d7}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_abcf1b7c595d64c1f812a41aaa5460874}{
\index{Fib2mribNode@{Fib2mribNode}!ifmgr\_\-iftree@{ifmgr\_\-iftree}}
\index{ifmgr\_\-iftree@{ifmgr\_\-iftree}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{ifmgr\_\-iftree}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf IfMgrIfTree}\& Fib2mribNode::ifmgr\_\-iftree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classFib2mribNode_abcf1b7c595d64c1f812a41aaa5460874}


Get a reference to \hyperlink{protocolthe-p}{the} interface manager tree. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} interface manager tree. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlFib2mribNode_a637dd2143038186dc3f5895e60cf0795}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_a0ecaa089b4f34ee4eb2d2ece1d0b4069}{
\index{Fib2mribNode@{Fib2mribNode}!ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}}
\index{ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{ifmgr\_\-mirror\_\-service\_\-base}]{\setlength{\rightskip}{0pt plus 5cm}virtual const {\bf ServiceBase}$\ast$ Fib2mribNode::ifmgr\_\-mirror\_\-service\_\-base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classFib2mribNode_a0ecaa089b4f34ee4eb2d2ece1d0b4069}


Get a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} service base of \hyperlink{protocolthe-p}{the} interface manager. 
\end{DoxyReturn}


Implemented in \hyperlink{classXrlFib2mribNode_a5c3674db7f4dead8962054d925d3579f}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_a2654bbfc9d87da19410f2329a3a2ee66}{
\index{Fib2mribNode@{Fib2mribNode}!inform\_\-rib@{inform\_\-rib}}
\index{inform\_\-rib@{inform\_\-rib}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{inform\_\-rib}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::inform\_\-rib (
\begin{DoxyParamCaption}
\item[{const {\bf Fib2mribRoute} \&}]{r}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFib2mribNode_a2654bbfc9d87da19410f2329a3a2ee66}


Inform \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} about a route. 


\begin{DoxyParams}{Parameters}
{\em r} & route which should be updated in \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \\
\hline
\end{DoxyParams}
\hypertarget{classFib2mribNode_ac6fac28f8a891dedd8239535e8c151d4}{
\index{Fib2mribNode@{Fib2mribNode}!inform\_\-rib\_\-route\_\-change@{inform\_\-rib\_\-route\_\-change}}
\index{inform\_\-rib\_\-route\_\-change@{inform\_\-rib\_\-route\_\-change}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{inform\_\-rib\_\-route\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Fib2mribNode::inform\_\-rib\_\-route\_\-change (
\begin{DoxyParamCaption}
\item[{const {\bf Fib2mribRoute} \&}]{fib2mrib\_\-route}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classFib2mribNode_ac6fac28f8a891dedd8239535e8c151d4}


Inform \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} about a route change. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em fib2mrib\_\-route} & \hyperlink{protocolthe-p}{the} route with \hyperlink{protocolthe-p}{the} information about \hyperlink{protocolthe-p}{the} change. \\
\hline
\end{DoxyParams}


Implemented in \hyperlink{classXrlFib2mribNode_a6baa95467dc995b52328823b1df324d6}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_affc0e9923994e03df1878f137f9aafb3}{
\index{Fib2mribNode@{Fib2mribNode}!is\_\-accepted\_\-by\_\-nexthop@{is\_\-accepted\_\-by\_\-nexthop}}
\index{is\_\-accepted\_\-by\_\-nexthop@{is\_\-accepted\_\-by\_\-nexthop}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{is\_\-accepted\_\-by\_\-nexthop}]{\setlength{\rightskip}{0pt plus 5cm}bool Fib2mribNode::is\_\-accepted\_\-by\_\-nexthop (
\begin{DoxyParamCaption}
\item[{const {\bf Fib2mribRoute} \&}]{route}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFib2mribNode_affc0e9923994e03df1878f137f9aafb3}


Test whether a route is accepted based on its next-\/hop information. 


\begin{DoxyParams}{Parameters}
{\em route} & \hyperlink{protocolthe-p}{the} route to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} route is accepted based on its next-\/hop information, otherwise false. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_aaa53069627df7165d13267f1f72db84d}{
\index{Fib2mribNode@{Fib2mribNode}!is\_\-done@{is\_\-done}}
\index{is\_\-done@{is\_\-done}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{is\_\-done}]{\setlength{\rightskip}{0pt plus 5cm}bool Fib2mribNode::is\_\-done (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFib2mribNode_aaa53069627df7165d13267f1f72db84d}


Test if \hyperlink{protocolthe-p}{the} node processing is done. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} node processing is done, otherwise false. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_adbd481bcf721f87cc083407386f9153e}{
\index{Fib2mribNode@{Fib2mribNode}!is\_\-enabled@{is\_\-enabled}}
\index{is\_\-enabled@{is\_\-enabled}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{is\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}bool Fib2mribNode::is\_\-enabled (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFib2mribNode_adbd481bcf721f87cc083407386f9153e}


Test whether \hyperlink{protocolthe-p}{the} node operation is enabled. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} node operation is enabled, otherwise false. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_ae4d9f9ac2b572fa841565a3d887890e4}{
\index{Fib2mribNode@{Fib2mribNode}!is\_\-log\_\-trace@{is\_\-log\_\-trace}}
\index{is\_\-log\_\-trace@{is\_\-log\_\-trace}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{is\_\-log\_\-trace}]{\setlength{\rightskip}{0pt plus 5cm}bool Fib2mribNode::is\_\-log\_\-trace (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFib2mribNode_ae4d9f9ac2b572fa841565a3d887890e4}


Test if trace log is enabled. 

This method is used to test whether to output trace log debug messges.

\begin{DoxyReturn}{Returns}
true if trace log is enabled, otherwise false. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a372c3a1ccd213830687c187b74260c86}{
\index{Fib2mribNode@{Fib2mribNode}!node\_\-status@{node\_\-status}}
\index{node\_\-status@{node\_\-status}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{node\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}ProcessStatus Fib2mribNode::node\_\-status (
\begin{DoxyParamCaption}
\item[{string \&}]{reason\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a372c3a1ccd213830687c187b74260c86}


Get \hyperlink{protocolthe-p}{the} node status (see ProcessStatus). 


\begin{DoxyParams}{Parameters}
{\em reason\_\-msg} & return-\/by-\/reference string that contains human-\/readable information about \hyperlink{protocolthe-p}{the} status. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} node status (see ProcessStatus). 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_ab02d7cc902dc2636996d061d8c07ae03}{
\index{Fib2mribNode@{Fib2mribNode}!prepare\_\-route\_\-for\_\-transmission@{prepare\_\-route\_\-for\_\-transmission}}
\index{prepare\_\-route\_\-for\_\-transmission@{prepare\_\-route\_\-for\_\-transmission}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{prepare\_\-route\_\-for\_\-transmission}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::prepare\_\-route\_\-for\_\-transmission (
\begin{DoxyParamCaption}
\item[{{\bf Fib2mribRoute} \&}]{orig\_\-route, }
\item[{{\bf Fib2mribRoute} \&}]{copy\_\-route}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFib2mribNode_ab02d7cc902dc2636996d061d8c07ae03}


Prepare a copy of a route for transmission to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. 

Note that \hyperlink{protocolthe-p}{the} original route will be modified as appropriate.


\begin{DoxyParams}{Parameters}
{\em orig\_\-route} & \hyperlink{protocolthe-p}{the} original route to prepare. \\
\hline
{\em copy\_\-route} & \hyperlink{protocolthe-p}{the} copy of \hyperlink{protocolthe-p}{the} original route prepared for transmission to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. \\
\hline
\end{DoxyParams}
\hypertarget{classFib2mribNode_a4b4c05053d5dd682ac1510ea9d443978}{
\index{Fib2mribNode@{Fib2mribNode}!protocol\_\-name@{protocol\_\-name}}
\index{protocol\_\-name@{protocol\_\-name}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{protocol\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}const string\& Fib2mribNode::protocol\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFib2mribNode_a4b4c05053d5dd682ac1510ea9d443978}


Get \hyperlink{protocolthe-p}{the} protocol name. 

\begin{DoxyReturn}{Returns}
a string with \hyperlink{protocolthe-p}{the} protocol name. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a3997a4119b94adfb4f1b9b87f82128d9}{
\index{Fib2mribNode@{Fib2mribNode}!push\_\-pull\_\-rib\_\-routes@{push\_\-pull\_\-rib\_\-routes}}
\index{push\_\-pull\_\-rib\_\-routes@{push\_\-pull\_\-rib\_\-routes}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{push\_\-pull\_\-rib\_\-routes}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::push\_\-pull\_\-rib\_\-routes (
\begin{DoxyParamCaption}
\item[{bool}]{is\_\-push}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a3997a4119b94adfb4f1b9b87f82128d9}


\hyperlink{classPush}{Push} or pull all \hyperlink{protocolthe-p}{the} routes to/from \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. 


\begin{DoxyParams}{Parameters}
{\em is\_\-push} & if true, then push \hyperlink{protocolthe-p}{the} routes, otherwise pull them \\
\hline
\end{DoxyParams}
\hypertarget{classFib2mribNode_aba308b54703ccfc35ce1552c46a6b9a8}{
\index{Fib2mribNode@{Fib2mribNode}!replace\_\-route@{replace\_\-route}}
\index{replace\_\-route@{replace\_\-route}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{replace\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::replace\_\-route (
\begin{DoxyParamCaption}
\item[{const {\bf Fib2mribRoute} \&}]{fib2mrib\_\-route, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFib2mribNode_aba308b54703ccfc35ce1552c46a6b9a8}


Replace a Fib2mrib \hyperlink{classIPvX}{IPvX} route. 

Replace an \hyperlink{classIPvX}{IPvX} route.


\begin{DoxyParams}{Parameters}
{\em fib2mrib\_\-route} & \hyperlink{protocolthe-p}{the} replacement route. \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{classFib2mribRoute}{Fib2mribRoute} 
\end{DoxySeeAlso}

\begin{DoxyParams}{Parameters}
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_af68e1fd1f09c4f12011ff0fe6501945d}{
\index{Fib2mribNode@{Fib2mribNode}!replace\_\-route4@{replace\_\-route4}}
\index{replace\_\-route4@{replace\_\-route4}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{replace\_\-route4}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::replace\_\-route4 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Net} \&}]{network, }
\item[{const {\bf IPv4} \&}]{nexthop, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{uint32\_\-t}]{metric, }
\item[{uint32\_\-t}]{admin\_\-distance, }
\item[{const string \&}]{protocol\_\-origin, }
\item[{bool}]{xorp\_\-route, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_af68e1fd1f09c4f12011ff0fe6501945d}


Replace an \hyperlink{classIPv4}{IPv4} route. 


\begin{DoxyParams}{Parameters}
{\em network} & \hyperlink{protocolthe-p}{the} network address prefix this route applies to. \\
\hline
{\em nexthop} & \hyperlink{protocolthe-p}{the} address of \hyperlink{protocolthe-p}{the} next-\/hop router for this route. \\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} virtual interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em metric} & \hyperlink{protocolthe-p}{the} routing metric for this route. \\
\hline
{\em admin\_\-distance} & \hyperlink{protocolthe-p}{the} administratively defined distance for this route. \\
\hline
{\em protocol\_\-origin} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} protocol that originated this route. \\
\hline
{\em xorp\_\-route} & true if this route was installed by XORP. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_a62bbb4dcd71a82f77bc82a955abf4c44}{
\index{Fib2mribNode@{Fib2mribNode}!replace\_\-route6@{replace\_\-route6}}
\index{replace\_\-route6@{replace\_\-route6}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{replace\_\-route6}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::replace\_\-route6 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6Net} \&}]{network, }
\item[{const {\bf IPv6} \&}]{nexthop, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{uint32\_\-t}]{metric, }
\item[{uint32\_\-t}]{admin\_\-distance, }
\item[{const string \&}]{protocol\_\-origin, }
\item[{bool}]{xorp\_\-route, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_a62bbb4dcd71a82f77bc82a955abf4c44}


Replace an \hyperlink{classIPv6}{IPv6} route. 


\begin{DoxyParams}{Parameters}
{\em network} & \hyperlink{protocolthe-p}{the} network address prefix this route applies to. \\
\hline
{\em nexthop} & \hyperlink{protocolthe-p}{the} address of \hyperlink{protocolthe-p}{the} next-\/hop router for this route. \\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} virtual interface toward \hyperlink{protocolthe-p}{the} destination. \\
\hline
{\em metric} & \hyperlink{protocolthe-p}{the} routing metric for this route. \\
\hline
{\em admin\_\-distance} & \hyperlink{protocolthe-p}{the} administratively defined distance for this route. \\
\hline
{\em protocol\_\-origin} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} protocol that originated this route. \\
\hline
{\em xorp\_\-route} & true if this route was installed by XORP. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classFib2mribNode_af4a13d706ef2015ed879b9994450e091}{
\index{Fib2mribNode@{Fib2mribNode}!reset\_\-filter@{reset\_\-filter}}
\index{reset\_\-filter@{reset\_\-filter}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{reset\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::reset\_\-filter (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{filter}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_af4a13d706ef2015ed879b9994450e091}


Reset a policy filter. 


\begin{DoxyParams}{Parameters}
{\em filter} & identifier of filter to reset. \\
\hline
\end{DoxyParams}
\hypertarget{classFib2mribNode_a565ef7e9e83537aafaf4d2fa9829045d}{
\index{Fib2mribNode@{Fib2mribNode}!rib\_\-register\_\-shutdown@{rib\_\-register\_\-shutdown}}
\index{rib\_\-register\_\-shutdown@{rib\_\-register\_\-shutdown}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{rib\_\-register\_\-shutdown}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Fib2mribNode::rib\_\-register\_\-shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classFib2mribNode_a565ef7e9e83537aafaf4d2fa9829045d}


Initiate de-\/registration with \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlFib2mribNode_a75a7f39cebc44a5cc5a650ebfa349605}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_a97ce2caaa03789b81456101d9189cf6d}{
\index{Fib2mribNode@{Fib2mribNode}!rib\_\-register\_\-startup@{rib\_\-register\_\-startup}}
\index{rib\_\-register\_\-startup@{rib\_\-register\_\-startup}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{rib\_\-register\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Fib2mribNode::rib\_\-register\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, pure virtual\mbox{]}}}}
\label{classFib2mribNode_a97ce2caaa03789b81456101d9189cf6d}


Initiate registration with \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class. 

Implemented in \hyperlink{classXrlFib2mribNode_a4c73244c2958049661c1eab926c28ac9}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_ac8b03ed79de45c374eb6ffd86c1d1c88}{
\index{Fib2mribNode@{Fib2mribNode}!set\_\-enabled@{set\_\-enabled}}
\index{set\_\-enabled@{set\_\-enabled}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{set\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::set\_\-enabled (
\begin{DoxyParamCaption}
\item[{bool}]{enable}
\end{DoxyParamCaption}
)}}
\label{classFib2mribNode_ac8b03ed79de45c374eb6ffd86c1d1c88}


Enable/disable node operation. 

Note that for \hyperlink{protocolthe-p}{the} time being it affects only whether \hyperlink{protocolthe-p}{the} routes are installed into \hyperlink{classRIB}{RIB}. In \hyperlink{protocolthe-p}{the} future it may affect \hyperlink{protocolthe-p}{the} interaction with other modules as well.


\begin{DoxyParams}{Parameters}
{\em enable} & if true then enable node operation, otherwise disable it. \\
\hline
\end{DoxyParams}
\hypertarget{classFib2mribNode_a8476a4c23eefad7da7576a25b5612e15}{
\index{Fib2mribNode@{Fib2mribNode}!set\_\-log\_\-trace@{set\_\-log\_\-trace}}
\index{set\_\-log\_\-trace@{set\_\-log\_\-trace}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{set\_\-log\_\-trace}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::set\_\-log\_\-trace (
\begin{DoxyParamCaption}
\item[{bool}]{is\_\-enabled}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classFib2mribNode_a8476a4c23eefad7da7576a25b5612e15}


Enable/disable trace log. 

This method is used to enable/disable trace log debug messages output.


\begin{DoxyParams}{Parameters}
{\em is\_\-enabled} & if true, trace log is enabled, otherwise is disabled. \\
\hline
\end{DoxyParams}
\hypertarget{classFib2mribNode_a69480b259128098259c39c2b7c194c07}{
\index{Fib2mribNode@{Fib2mribNode}!set\_\-node\_\-status@{set\_\-node\_\-status}}
\index{set\_\-node\_\-status@{set\_\-node\_\-status}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{set\_\-node\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::set\_\-node\_\-status (
\begin{DoxyParamCaption}
\item[{ProcessStatus}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classFib2mribNode_a69480b259128098259c39c2b7c194c07}


Set \hyperlink{protocolthe-p}{the} node status. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} new node status. \\
\hline
\end{DoxyParams}
\hypertarget{classFib2mribNode_a4bf9931df9521a0019a0b25c73a92e51}{
\index{Fib2mribNode@{Fib2mribNode}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFib2mribNode_a4bf9931df9521a0019a0b25c73a92e51}


\hyperlink{classShutdown}{Shutdown} \hyperlink{protocolthe-p}{the} node operation. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classServiceBase_a6ad34506fd5a446d5667abcb2e1b593b}{ServiceBase}.



Reimplemented in \hyperlink{classXrlFib2mribNode_ac674d5dff381c9adbbb38541487f3a51}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_a876a14b8d8d08e1a769770658c680391}{
\index{Fib2mribNode@{Fib2mribNode}!startup@{startup}}
\index{startup@{startup}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{startup}]{\setlength{\rightskip}{0pt plus 5cm}int Fib2mribNode::startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classFib2mribNode_a876a14b8d8d08e1a769770658c680391}


\hyperlink{classStartup}{Startup} \hyperlink{protocolthe-p}{the} node operation. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classServiceBase_a791755872b2056ddd82a2f00904c7d2b}{ServiceBase}.



Reimplemented in \hyperlink{classXrlFib2mribNode_a97b094cd05c5f0eb2a0e7edc1e8c89a2}{XrlFib2mribNode}.

\hypertarget{classFib2mribNode_a740a7c70b9ce30d032d1723aff298a00}{
\index{Fib2mribNode@{Fib2mribNode}!status\_\-change@{status\_\-change}}
\index{status\_\-change@{status\_\-change}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{status\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}void Fib2mribNode::status\_\-change (
\begin{DoxyParamCaption}
\item[{{\bf ServiceBase} $\ast$}]{service, }
\item[{ServiceStatus}]{old\_\-status, }
\item[{ServiceStatus}]{new\_\-status}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classFib2mribNode_a740a7c70b9ce30d032d1723aff298a00}


A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. 


\begin{DoxyParams}{Parameters}
{\em service} & \hyperlink{protocolthe-p}{the} service whose status has changed. \\
\hline
{\em old\_\-status} & \hyperlink{protocolthe-p}{the} old status. \\
\hline
{\em new\_\-status} & \hyperlink{protocolthe-p}{the} new status. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classServiceChangeObserverBase}{ServiceChangeObserverBase}.

\hypertarget{classFib2mribNode_a652e0749f0d04c1321d080e7c449a77c}{
\index{Fib2mribNode@{Fib2mribNode}!update\_\-route@{update\_\-route}}
\index{update\_\-route@{update\_\-route}!Fib2mribNode@{Fib2mribNode}}
\subsubsection[{update\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}bool Fib2mribNode::update\_\-route (
\begin{DoxyParamCaption}
\item[{const {\bf IfMgrIfTree} \&}]{iftree, }
\item[{{\bf Fib2mribRoute} \&}]{route}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classFib2mribNode_a652e0749f0d04c1321d080e7c449a77c}


Update a route received from \hyperlink{protocolthe-p}{the} FEA. 

This method is needed as a work-\/around of FEA-\/related problems with \hyperlink{protocolthe-p}{the} routes \hyperlink{protocolthe-p}{the} FEA sends to interested parties such as FIB2MRIB. A route is updated with interface-\/related information or next-\/hop address.

The routes received from \hyperlink{protocolthe-p}{the} FEA for \hyperlink{protocolthe-p}{the} directly-\/connected subnets may not contain next-\/hop information and network interface information. If \hyperlink{protocolthe-p}{the} route is for a directly-\/connected subnet, and if it is missing that information, then add \hyperlink{protocolthe-p}{the} interface and next-\/hop router information. Furthermore, on startup, \hyperlink{protocolthe-p}{the} routes received from \hyperlink{protocolthe-p}{the} FEA may contain interface-\/related information, but later updates of those routes may be missing this information. This may create a mismatch, therefore all routes are updated (if possible) to contain interface-\/related information.


\begin{DoxyParams}{Parameters}
{\em iftree} & \hyperlink{protocolthe-p}{the} tree with \hyperlink{protocolthe-p}{the} interface state to update \hyperlink{protocolthe-p}{the} route. \\
\hline
{\em route} & \hyperlink{protocolthe-p}{the} route to update. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} route was updated, otherwise false.
\end{DoxyReturn}
This method is needed as a work-\/around of FEA-\/related problems with \hyperlink{protocolthe-p}{the} routes \hyperlink{protocolthe-p}{the} FEA sends to interested parties such as FIB2MRIB. A route is updated with interface-\/related information or next-\/hop address.

This method is needed as a work-\/around of FEA-\/related problems with \hyperlink{protocolthe-p}{the} routes \hyperlink{protocolthe-p}{the} FEA sends to interested parties such as FIB2MRIB.

The routes received from \hyperlink{protocolthe-p}{the} FEA for \hyperlink{protocolthe-p}{the} directly-\/connected subnets may not contain next-\/hop information and network interface information. If \hyperlink{protocolthe-p}{the} route is for a directly-\/connected subnet, and if it is missing that information, then add \hyperlink{protocolthe-p}{the} interface and next-\/hop router information. Furthermore, on startup, \hyperlink{protocolthe-p}{the} routes received from \hyperlink{protocolthe-p}{the} FEA may contain interface-\/related information, but later updates of those routes may be missing this information. This may create a mismatch, therefore all routes are updated (if possible) to contain interface-\/related information.


\begin{DoxyParams}{Parameters}
{\em iftree} & \hyperlink{protocolthe-p}{the} tree with \hyperlink{protocolthe-p}{the} interface state to update \hyperlink{protocolthe-p}{the} route. \\
\hline
{\em route} & \hyperlink{protocolthe-p}{the} route to update. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} route was updated, otherwise false. 
\end{DoxyReturn}


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