\hypertarget{classRibManager}{
\section{RibManager Class Reference}
\label{classRibManager}\index{RibManager@{RibManager}}
}


Main top-\/level class containing RIBs and main eventloop.  




{\ttfamily \#include $<$rib\_\-manager.hh$>$}

Inheritance diagram for RibManager:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{classRibManager}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classRibManager_a60fc5bf7679ecfc83877ed4e611c0eaa}{RibManager} (\hyperlink{classEventLoop}{EventLoop} \&eventloop, \hyperlink{classXrlStdRouter}{XrlStdRouter} \&xrl\_\-std\_\-router, const string \&fea\_\-target)
\begin{DoxyCompactList}\small\item\em \hyperlink{classRibManager}{RibManager} constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classRibManager_ac725b1c1f1b20fbfd920b45367784f83}{
\hyperlink{classRibManager_ac725b1c1f1b20fbfd920b45367784f83}{$\sim$RibManager} ()}
\label{classRibManager_ac725b1c1f1b20fbfd920b45367784f83}

\begin{DoxyCompactList}\small\item\em \hyperlink{classRibManager}{RibManager} destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_a968592b27d8fc8e02d295eafe474e1ab}{start} ()
\begin{DoxyCompactList}\small\item\em Start operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_ac0ee816c7b33c059ff7f95965014475a}{stop} ()
\begin{DoxyCompactList}\small\item\em Stop operation. \item\end{DoxyCompactList}\item 
bool \hyperlink{classRibManager_a91ee588bf018fe279f49a808944a5c92}{status\_\-updater} ()
\begin{DoxyCompactList}\small\item\em Periodic Status Update. \item\end{DoxyCompactList}\item 
ProcessStatus \hyperlink{classRibManager_a80de4afdc72127e57a21da2a38827272}{status} (string \&reason) const 
\begin{DoxyCompactList}\small\item\em Check status of \hyperlink{classRIB}{RIB} process. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_adfe1e0358c89dd5ef9a83944206667ed}{new\_\-vif} (const string \&vifname, const \hyperlink{classVif}{Vif} \&vif, string \&err)
\begin{DoxyCompactList}\small\item\em new\_\-vif is called to inform all \hyperlink{protocolthe-p}{the} RIBs that a new virtual interface has been created. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_a6cd55a93edb9aa154232e99ff33cb662}{delete\_\-vif} (const string \&vifname, string \&err)
\begin{DoxyCompactList}\small\item\em delete\_\-vif is called to inform all \hyperlink{protocolthe-p}{the} RIBs that a virtual interface that they previously knew about has been deleted. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_a09ff2ed19ab81ce4e21bd1d93f57e15f}{set\_\-vif\_\-flags} (const string \&vifname, bool is\_\-p2p, bool is\_\-loopback, bool is\_\-multicast, bool is\_\-broadcast, bool is\_\-up, uint32\_\-t mtu, string \&err)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} vif flags of a configured vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_a48dc40561c0ac3dac2bed67a07a37d72}{add\_\-vif\_\-address} (const string \&vifname, const \hyperlink{classIPv4}{IPv4} \&addr, const \hyperlink{classIPNet}{IPv4Net} \&subnet, const \hyperlink{classIPv4}{IPv4} \&broadcast\_\-addr, const \hyperlink{classIPv4}{IPv4} \&peer\_\-addr, string \&err)
\begin{DoxyCompactList}\small\item\em add\_\-vif\_\-address is called to inform all \hyperlink{protocolthe-p}{the} RIBs that a new \hyperlink{classIPv4}{IPv4} address has been added to a virtual interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_aecfde21284be61d4c5ea3b1b44f45e0d}{delete\_\-vif\_\-address} (const string \&vifname, const \hyperlink{classIPv4}{IPv4} \&addr, string \&err)
\begin{DoxyCompactList}\small\item\em delete\_\-vif\_\-address is called to inform all \hyperlink{protocolthe-p}{the} RIBs that an \hyperlink{classIPv4}{IPv4} address that they previously know about has been deleted from a specific VIF. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_aad6e764494626ee7d5e42c54b767e213}{make\_\-errors\_\-fatal} ()
\begin{DoxyCompactList}\small\item\em Make some errors we'd normally mask fatal. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_a07516cb0c32baa68907993dff23a5eb7}{register\_\-interest\_\-in\_\-target} (const string \&target\_\-class)
\begin{DoxyCompactList}\small\item\em Register Interest in an XRL target so we can monitor process births and deaths and clean up appropriately when things die. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_ae9bd4bca313aa39827a04a90e3311c07}{register\_\-interest\_\-in\_\-target\_\-done} (const \hyperlink{classXrlError}{XrlError} \&e)
\begin{DoxyCompactList}\small\item\em Called in response to registering interest in an XRL target. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_ad1b9a330f3b2bbcdcb376fe8f6716a07}{deregister\_\-interest\_\-in\_\-target} (const string \&target\_\-class)
\begin{DoxyCompactList}\small\item\em Deregister Interest in an XRL target so we can stop monitor process births and deaths. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_a04989b94dc0554cc77b153d34de655fc}{deregister\_\-interest\_\-in\_\-target\_\-done} (const \hyperlink{classXrlError}{XrlError} \&e)
\begin{DoxyCompactList}\small\item\em Called in response to deregistering interest in an XRL target. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_aa34fe2de9378c85f1929061b7e4f4d5a}{target\_\-death} (const string \&target\_\-class, const string \&target\_\-instance)
\begin{DoxyCompactList}\small\item\em Target Death is called when an XRL target that we've registered an interest in dies. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_ab8001a2e26e5c727ed67f750d2cc166b}{add\_\-redist\_\-xrl\_\-output4} (const string \&target\_\-name, const string \&from\_\-protocol, bool unicast, bool multicast, const \hyperlink{classIPNet}{IPv4Net} \&network\_\-prefix, const string \&cookie, bool is\_\-xrl\_\-transaction\_\-output)
\begin{DoxyCompactList}\small\item\em Add \hyperlink{classRoute}{Route} \hyperlink{classRedistributor}{Redistributor} that generates updates with redist4 XRL interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classRibManager_a952b7ed323c6cce3321d0cf6ebd8f9b9}{delete\_\-redist\_\-xrl\_\-output4} (const string \&target\_\-name, const string \&from\_\-protocol, bool unicast, bool multicast, const string \&cookie, bool is\_\-xrl\_\-transaction\_\-output)
\begin{DoxyCompactList}\small\item\em Remove \hyperlink{classRoute}{Route} \hyperlink{classRedistributor}{Redistributor} that generates updates with redist4 XRL interface. \item\end{DoxyCompactList}\item 
\hypertarget{classRibManager_a86afa2ff832710ef46fa144d7bb1404f}{
\hyperlink{classXrlStdRouter}{XrlStdRouter} \& {\bfseries xrl\_\-router} ()}
\label{classRibManager_a86afa2ff832710ef46fa144d7bb1404f}

\item 
\hypertarget{classRibManager_a7784eef5e086617240adcc7c7a73c8fb}{
void \hyperlink{classRibManager_a7784eef5e086617240adcc7c7a73c8fb}{push\_\-routes} ()}
\label{classRibManager_a7784eef5e086617240adcc7c7a73c8fb}

\begin{DoxyCompactList}\small\item\em \hyperlink{classPush}{Push} \hyperlink{protocolthe-p}{the} connected routes through \hyperlink{protocolthe-p}{the} policy filter for re-\/filtering. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_a53788e79ec1b394d8eb1de9a37892fa7}{configure\_\-filter} (const uint32\_\-t \&filter, const string \&conf)
\begin{DoxyCompactList}\small\item\em Configure a policy filter. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_aef63ec11db6e396cd0e604fafc1db277}{reset\_\-filter} (const uint32\_\-t \&filter)
\begin{DoxyCompactList}\small\item\em Reset a policy filter. \item\end{DoxyCompactList}\item 
\hyperlink{classPolicyFilters}{PolicyFilters} \& \hyperlink{classRibManager_a2f2d8fe80a4ece588c81dcd44cf390a6}{policy\_\-filters} ()
\item 
\hyperlink{classPolicyRedistMap}{PolicyRedistMap} \& \hyperlink{classRibManager_a7a1bd7b901c94187c6efeb09a98c7972}{policy\_\-redist\_\-map} ()
\item 
void \hyperlink{classRibManager_a60a775667c8a949354ad285de356cc89}{insert\_\-policy\_\-redist\_\-tags} (const string \&protocol, const \hyperlink{classPolicyTags}{PolicyTags} \&tags)
\begin{DoxyCompactList}\small\item\em Insert \mbox{[}old ones are kept\mbox{]} policy-\/tags for a protocol. \item\end{DoxyCompactList}\item 
void \hyperlink{classRibManager_a5c5bec0071b4d1c45366e1896bdcdb3f}{reset\_\-policy\_\-redist\_\-tags} ()
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} policy redistribution map. \item\end{DoxyCompactList}\item 
\hyperlink{classProfile}{Profile} \& \hyperlink{classRibManager_aec6d09e8301f0fa0f0f9d0625489eb44}{profile} ()
\item 
\hyperlink{classRIB}{RIB}$<$ \hyperlink{classIPv4}{IPv4} $>$ \& \hyperlink{classRibManager_a2743b8d1a76479e05b42f3e784471117}{urib4} ()
\item 
\hyperlink{classRIB}{RIB}$<$ \hyperlink{classIPv4}{IPv4} $>$ \& \hyperlink{classRibManager_a0ad3760a8bd9a1ad5b8cefd9844a075a}{mrib4} ()
\item 
\hyperlink{classXrlRibTarget}{XrlRibTarget} \& \hyperlink{classRibManager_a4ef44e696ee1c5ffadd426ccd3273ec1}{xrl\_\-rib\_\-target} ()
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classRibManager_a39e13418b08ddaba7d4b58cdd673f874}{
ProcessStatus {\bfseries \_\-status\_\-code}}
\label{classRibManager_a39e13418b08ddaba7d4b58cdd673f874}

\item 
\hypertarget{classRibManager_ae568a063c13ebdee9806dfc3d5ee578d}{
string {\bfseries \_\-status\_\-reason}}
\label{classRibManager_ae568a063c13ebdee9806dfc3d5ee578d}

\item 
\hypertarget{classRibManager_ade00e664640360109ab9d5f36e043528}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classRibManager_ade00e664640360109ab9d5f36e043528}

\item 
\hypertarget{classRibManager_ae39202bc570707131094842d8ada748d}{
\hyperlink{classXrlStdRouter}{XrlStdRouter} \& {\bfseries \_\-xrl\_\-router}}
\label{classRibManager_ae39202bc570707131094842d8ada748d}

\item 
\hypertarget{classRibManager_a7e6e9c180bab4ac37e7082e32453ae02}{
\hyperlink{classRegisterServer}{RegisterServer} {\bfseries \_\-register\_\-server}}
\label{classRibManager_a7e6e9c180bab4ac37e7082e32453ae02}

\item 
\hypertarget{classRibManager_ac9367557e9a93eb79d0192d2bc28e45d}{
\hyperlink{classRIB}{RIB}$<$ \hyperlink{classIPv4}{IPv4} $>$ {\bfseries \_\-urib4}}
\label{classRibManager_ac9367557e9a93eb79d0192d2bc28e45d}

\item 
\hypertarget{classRibManager_abe6ee6fa92206f050b12d88b05b94d1e}{
\hyperlink{classRIB}{RIB}$<$ \hyperlink{classIPv4}{IPv4} $>$ {\bfseries \_\-mrib4}}
\label{classRibManager_abe6ee6fa92206f050b12d88b05b94d1e}

\item 
\hypertarget{classRibManager_a34ee03c55117be75f67d51b041644b86}{
\hyperlink{classVifManager}{VifManager} {\bfseries \_\-vif\_\-manager}}
\label{classRibManager_a34ee03c55117be75f67d51b041644b86}

\item 
\hypertarget{classRibManager_a936c6f133fecfd0badfac65a8e588b7d}{
\hyperlink{classXrlRibTarget}{XrlRibTarget} {\bfseries \_\-xrl\_\-rib\_\-target}}
\label{classRibManager_a936c6f133fecfd0badfac65a8e588b7d}

\item 
\hypertarget{classRibManager_a21f1c466024ace30bd4929dbffa5cef6}{
set$<$ string $>$ {\bfseries \_\-targets\_\-of\_\-interest}}
\label{classRibManager_a21f1c466024ace30bd4929dbffa5cef6}

\item 
\hypertarget{classRibManager_ae56d2dd18447b2a1417d2926e37c6097}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-status\_\-update\_\-timer}}
\label{classRibManager_ae56d2dd18447b2a1417d2926e37c6097}

\item 
\hypertarget{classRibManager_a8b63beba814e8cdd17231d13899ead51}{
const string {\bfseries \_\-fea\_\-target}}
\label{classRibManager_a8b63beba814e8cdd17231d13899ead51}

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

\item 
\hypertarget{classRibManager_a4bacdd69b55137d1d9ce4a7dcaa790d1}{
\hyperlink{classPolicyRedistMap}{PolicyRedistMap} {\bfseries \_\-policy\_\-redist\_\-map}}
\label{classRibManager_a4bacdd69b55137d1d9ce4a7dcaa790d1}

\item 
\hypertarget{classRibManager_aacbb127323bdb6473b95406074b94f96}{
\hyperlink{classProfile}{Profile} {\bfseries \_\-profile}}
\label{classRibManager_aacbb127323bdb6473b95406074b94f96}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Main top-\/level class containing RIBs and main eventloop. The single \hyperlink{classRibManager}{RibManager} class instance is \hyperlink{protocolthe-p}{the} top-\/level class in \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} process from which everything else is built and run. It contains \hyperlink{protocolthe-p}{the} four RIBs for \hyperlink{classIPv4}{IPv4} unicast routes, \hyperlink{classIPv4}{IPv4} multicast routes, \hyperlink{classIPv6}{IPv6} unicast routes and \hyperlink{classIPv6}{IPv6} multicast routes. It also contains \hyperlink{protocolthe-p}{the} RIB's main eventloop. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classRibManager_a60fc5bf7679ecfc83877ed4e611c0eaa}{
\index{RibManager@{RibManager}!RibManager@{RibManager}}
\index{RibManager@{RibManager}!RibManager@{RibManager}}
\subsubsection[{RibManager}]{\setlength{\rightskip}{0pt plus 5cm}RibManager::RibManager (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop, }
\item[{{\bf XrlStdRouter} \&}]{xrl\_\-std\_\-router, }
\item[{const string \&}]{fea\_\-target}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a60fc5bf7679ecfc83877ed4e611c0eaa}


\hyperlink{classRibManager}{RibManager} constructor. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & \hyperlink{protocolthe-p}{the} event loop to user. \\
\hline
{\em xrl\_\-std\_\-router} & \hyperlink{protocolthe-p}{the} XRL router to use. \\
\hline
{\em fea\_\-target} & \hyperlink{protocolthe-p}{the} FEA XRL target name. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classRibManager_ab8001a2e26e5c727ed67f750d2cc166b}{
\index{RibManager@{RibManager}!add\_\-redist\_\-xrl\_\-output4@{add\_\-redist\_\-xrl\_\-output4}}
\index{add\_\-redist\_\-xrl\_\-output4@{add\_\-redist\_\-xrl\_\-output4}!RibManager@{RibManager}}
\subsubsection[{add\_\-redist\_\-xrl\_\-output4}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::add\_\-redist\_\-xrl\_\-output4 (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-name, }
\item[{const string \&}]{from\_\-protocol, }
\item[{bool}]{unicast, }
\item[{bool}]{multicast, }
\item[{const {\bf IPv4Net} \&}]{network\_\-prefix, }
\item[{const string \&}]{cookie, }
\item[{bool}]{is\_\-xrl\_\-transaction\_\-output}
\end{DoxyParamCaption}
)}}
\label{classRibManager_ab8001a2e26e5c727ed67f750d2cc166b}


Add \hyperlink{classRoute}{Route} \hyperlink{classRedistributor}{Redistributor} that generates updates with redist4 XRL interface. 


\begin{DoxyParams}{Parameters}
{\em target\_\-name} & XRL target to receive redistributed routes. \\
\hline
{\em from\_\-protocol} & protocol routes are redistributed from. \\
\hline
{\em unicast} & apply to unicast rib. \\
\hline
{\em multicast} & apply to multicast rib. \\
\hline
{\em network\_\-prefix} & redistribite only \hyperlink{protocolthe-p}{the} routes that fall into this prefix address. \\
\hline
{\em cookie} & cookie passed in route redistribution XRLs. \\
\hline
{\em is\_\-xrl\_\-transaction\_\-output} & if true \hyperlink{protocolthe-p}{the} add/delete route XRLs are grouped into transactions.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, XORP\_\-ERROR on failure. 
\end{DoxyReturn}
\hypertarget{classRibManager_a48dc40561c0ac3dac2bed67a07a37d72}{
\index{RibManager@{RibManager}!add\_\-vif\_\-address@{add\_\-vif\_\-address}}
\index{add\_\-vif\_\-address@{add\_\-vif\_\-address}!RibManager@{RibManager}}
\subsubsection[{add\_\-vif\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::add\_\-vif\_\-address (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4} \&}]{addr, }
\item[{const {\bf IPv4Net} \&}]{subnet, }
\item[{const {\bf IPv4} \&}]{broadcast\_\-addr, }
\item[{const {\bf IPv4} \&}]{peer\_\-addr, }
\item[{string \&}]{err}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a48dc40561c0ac3dac2bed67a07a37d72}


add\_\-vif\_\-address is called to inform all \hyperlink{protocolthe-p}{the} RIBs that a new \hyperlink{classIPv4}{IPv4} address has been added to a virtual interface. 


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} VIF that \hyperlink{protocolthe-p}{the} address was added to. \\
\hline
{\em addr} & \hyperlink{protocolthe-p}{the} new address. \\
\hline
{\em subnet} & \hyperlink{protocolthe-p}{the} subnet (masked address) that \hyperlink{protocolthe-p}{the} new address resides on. \\
\hline
{\em broadcast} & \hyperlink{protocolthe-p}{the} broadcast address to add. \\
\hline
{\em peer} & \hyperlink{protocolthe-p}{the} peer address to add. \\
\hline
{\em err} & reference to string in which to store \hyperlink{protocolthe-p}{the} human-\/readable error message in case anything goes wrong. Used for debugging purposes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classRibManager_a53788e79ec1b394d8eb1de9a37892fa7}{
\index{RibManager@{RibManager}!configure\_\-filter@{configure\_\-filter}}
\index{configure\_\-filter@{configure\_\-filter}!RibManager@{RibManager}}
\subsubsection[{configure\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::configure\_\-filter (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{filter, }
\item[{const string \&}]{conf}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a53788e79ec1b394d8eb1de9a37892fa7}


Configure a policy filter. 

Will throw an exception on error.

In this case \hyperlink{protocolthe-p}{the} source match filter of connected routes will be configured.


\begin{DoxyParams}{Parameters}
{\em filter} & Identifier of filter to configure. \\
\hline
{\em conf} & \hyperlink{classConfiguration}{Configuration} of \hyperlink{protocolthe-p}{the} filter. \\
\hline
\end{DoxyParams}
\hypertarget{classRibManager_a952b7ed323c6cce3321d0cf6ebd8f9b9}{
\index{RibManager@{RibManager}!delete\_\-redist\_\-xrl\_\-output4@{delete\_\-redist\_\-xrl\_\-output4}}
\index{delete\_\-redist\_\-xrl\_\-output4@{delete\_\-redist\_\-xrl\_\-output4}!RibManager@{RibManager}}
\subsubsection[{delete\_\-redist\_\-xrl\_\-output4}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::delete\_\-redist\_\-xrl\_\-output4 (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-name, }
\item[{const string \&}]{from\_\-protocol, }
\item[{bool}]{unicast, }
\item[{bool}]{multicast, }
\item[{const string \&}]{cookie, }
\item[{bool}]{is\_\-xrl\_\-transaction\_\-output}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a952b7ed323c6cce3321d0cf6ebd8f9b9}


Remove \hyperlink{classRoute}{Route} \hyperlink{classRedistributor}{Redistributor} that generates updates with redist4 XRL interface. 


\begin{DoxyParams}{Parameters}
{\em target\_\-name} & XRL target to receive redistributed routes. \\
\hline
{\em from\_\-protocol} & protocol routes are redistributed from. \\
\hline
{\em unicast} & apply to unicast rib. \\
\hline
{\em multicast} & apply to multicast rib. \\
\hline
{\em cookie} & cookie passed in route redistribution XRLs. \\
\hline
{\em is\_\-xrl\_\-transaction\_\-output} & if true \hyperlink{protocolthe-p}{the} add/delete route XRLs are grouped into transactions.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, XORP\_\-ERROR on failure. 
\end{DoxyReturn}
\hypertarget{classRibManager_a6cd55a93edb9aa154232e99ff33cb662}{
\index{RibManager@{RibManager}!delete\_\-vif@{delete\_\-vif}}
\index{delete\_\-vif@{delete\_\-vif}!RibManager@{RibManager}}
\subsubsection[{delete\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::delete\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{string \&}]{err}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a6cd55a93edb9aa154232e99ff33cb662}


delete\_\-vif is called to inform all \hyperlink{protocolthe-p}{the} RIBs that a virtual interface that they previously knew about has been deleted. 


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} VIF that was deleted. \\
\hline
{\em err} & reference to string in which to store \hyperlink{protocolthe-p}{the} human-\/readable error message in case anything goes wrong. Used for debugging purposes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classRibManager_aecfde21284be61d4c5ea3b1b44f45e0d}{
\index{RibManager@{RibManager}!delete\_\-vif\_\-address@{delete\_\-vif\_\-address}}
\index{delete\_\-vif\_\-address@{delete\_\-vif\_\-address}!RibManager@{RibManager}}
\subsubsection[{delete\_\-vif\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::delete\_\-vif\_\-address (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4} \&}]{addr, }
\item[{string \&}]{err}
\end{DoxyParamCaption}
)}}
\label{classRibManager_aecfde21284be61d4c5ea3b1b44f45e0d}


delete\_\-vif\_\-address is called to inform all \hyperlink{protocolthe-p}{the} RIBs that an \hyperlink{classIPv4}{IPv4} address that they previously know about has been deleted from a specific VIF. 


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} VIF that \hyperlink{protocolthe-p}{the} address was deleted from. \\
\hline
{\em addr} & \hyperlink{protocolthe-p}{the} address that was deleted. \\
\hline
{\em err} & reference to string in which to store \hyperlink{protocolthe-p}{the} human-\/readable error message in case anything goes wrong. Used for debugging purposes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classRibManager_ad1b9a330f3b2bbcdcb376fe8f6716a07}{
\index{RibManager@{RibManager}!deregister\_\-interest\_\-in\_\-target@{deregister\_\-interest\_\-in\_\-target}}
\index{deregister\_\-interest\_\-in\_\-target@{deregister\_\-interest\_\-in\_\-target}!RibManager@{RibManager}}
\subsubsection[{deregister\_\-interest\_\-in\_\-target}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::deregister\_\-interest\_\-in\_\-target (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class}
\end{DoxyParamCaption}
)}}
\label{classRibManager_ad1b9a330f3b2bbcdcb376fe8f6716a07}


Deregister Interest in an XRL target so we can stop monitor process births and deaths. 


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & \hyperlink{protocolthe-p}{the} XRL Target Class we're deregistering interested in. \\
\hline
\end{DoxyParams}
\hypertarget{classRibManager_a04989b94dc0554cc77b153d34de655fc}{
\index{RibManager@{RibManager}!deregister\_\-interest\_\-in\_\-target\_\-done@{deregister\_\-interest\_\-in\_\-target\_\-done}}
\index{deregister\_\-interest\_\-in\_\-target\_\-done@{deregister\_\-interest\_\-in\_\-target\_\-done}!RibManager@{RibManager}}
\subsubsection[{deregister\_\-interest\_\-in\_\-target\_\-done}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::deregister\_\-interest\_\-in\_\-target\_\-done (
\begin{DoxyParamCaption}
\item[{const {\bf XrlError} \&}]{e}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a04989b94dc0554cc77b153d34de655fc}


Called in response to deregistering interest in an XRL target. 


\begin{DoxyParams}{Parameters}
{\em e} & XRL Response code. \\
\hline
\end{DoxyParams}
\hypertarget{classRibManager_a60a775667c8a949354ad285de356cc89}{
\index{RibManager@{RibManager}!insert\_\-policy\_\-redist\_\-tags@{insert\_\-policy\_\-redist\_\-tags}}
\index{insert\_\-policy\_\-redist\_\-tags@{insert\_\-policy\_\-redist\_\-tags}!RibManager@{RibManager}}
\subsubsection[{insert\_\-policy\_\-redist\_\-tags}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::insert\_\-policy\_\-redist\_\-tags (
\begin{DoxyParamCaption}
\item[{const string \&}]{protocol, }
\item[{const {\bf PolicyTags} \&}]{tags}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a60a775667c8a949354ad285de356cc89}


Insert \mbox{[}old ones are kept\mbox{]} policy-\/tags for a protocol. 

All routes which contain at least one of these tags, will be redistributed to \hyperlink{protocolthe-p}{the} protocol.


\begin{DoxyParams}{Parameters}
{\em protocol} & Destination protocol for redistribution. \\
\hline
{\em tags} & Policy-\/tags of routes which need to be redistributed. \\
\hline
\end{DoxyParams}
\hypertarget{classRibManager_aad6e764494626ee7d5e42c54b767e213}{
\index{RibManager@{RibManager}!make\_\-errors\_\-fatal@{make\_\-errors\_\-fatal}}
\index{make\_\-errors\_\-fatal@{make\_\-errors\_\-fatal}!RibManager@{RibManager}}
\subsubsection[{make\_\-errors\_\-fatal}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::make\_\-errors\_\-fatal (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classRibManager_aad6e764494626ee7d5e42c54b767e213}


Make some errors we'd normally mask fatal. 

Should be used for testing only. \hypertarget{classRibManager_a0ad3760a8bd9a1ad5b8cefd9844a075a}{
\index{RibManager@{RibManager}!mrib4@{mrib4}}
\index{mrib4@{mrib4}!RibManager@{RibManager}}
\subsubsection[{mrib4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf RIB}$<${\bf IPv4}$>$\& RibManager::mrib4 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classRibManager_a0ad3760a8bd9a1ad5b8cefd9844a075a}
\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} multicast \hyperlink{classRIB}{RIB}. 
\end{DoxyReturn}
\hypertarget{classRibManager_adfe1e0358c89dd5ef9a83944206667ed}{
\index{RibManager@{RibManager}!new\_\-vif@{new\_\-vif}}
\index{new\_\-vif@{new\_\-vif}!RibManager@{RibManager}}
\subsubsection[{new\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::new\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{const {\bf Vif} \&}]{vif, }
\item[{string \&}]{err}
\end{DoxyParamCaption}
)}}
\label{classRibManager_adfe1e0358c89dd5ef9a83944206667ed}


new\_\-vif is called to inform all \hyperlink{protocolthe-p}{the} RIBs that a new virtual interface has been created. 


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} new VIF. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} \hyperlink{classVif}{Vif} class instance holding information about \hyperlink{protocolthe-p}{the} new VIF. \\
\hline
{\em err} & reference to string in which to store \hyperlink{protocolthe-p}{the} human-\/readable error message in case anything goes wrong. Used for debugging purposes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classRibManager_a2f2d8fe80a4ece588c81dcd44cf390a6}{
\index{RibManager@{RibManager}!policy\_\-filters@{policy\_\-filters}}
\index{policy\_\-filters@{policy\_\-filters}!RibManager@{RibManager}}
\subsubsection[{policy\_\-filters}]{\setlength{\rightskip}{0pt plus 5cm}{\bf PolicyFilters}\& RibManager::policy\_\-filters (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classRibManager_a2f2d8fe80a4ece588c81dcd44cf390a6}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} global instance of policy filters. 
\end{DoxyReturn}
\hypertarget{classRibManager_a7a1bd7b901c94187c6efeb09a98c7972}{
\index{RibManager@{RibManager}!policy\_\-redist\_\-map@{policy\_\-redist\_\-map}}
\index{policy\_\-redist\_\-map@{policy\_\-redist\_\-map}!RibManager@{RibManager}}
\subsubsection[{policy\_\-redist\_\-map}]{\setlength{\rightskip}{0pt plus 5cm}{\bf PolicyRedistMap}\& RibManager::policy\_\-redist\_\-map (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classRibManager_a7a1bd7b901c94187c6efeb09a98c7972}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} global instance of \hyperlink{protocolthe-p}{the} policy redistribution map. 
\end{DoxyReturn}
\hypertarget{classRibManager_aec6d09e8301f0fa0f0f9d0625489eb44}{
\index{RibManager@{RibManager}!profile@{profile}}
\index{profile@{profile}!RibManager@{RibManager}}
\subsubsection[{profile}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Profile}\& RibManager::profile (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classRibManager_aec6d09e8301f0fa0f0f9d0625489eb44}
\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} profiler. 
\end{DoxyReturn}
\hypertarget{classRibManager_a07516cb0c32baa68907993dff23a5eb7}{
\index{RibManager@{RibManager}!register\_\-interest\_\-in\_\-target@{register\_\-interest\_\-in\_\-target}}
\index{register\_\-interest\_\-in\_\-target@{register\_\-interest\_\-in\_\-target}!RibManager@{RibManager}}
\subsubsection[{register\_\-interest\_\-in\_\-target}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::register\_\-interest\_\-in\_\-target (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a07516cb0c32baa68907993dff23a5eb7}


Register Interest in an XRL target so we can monitor process births and deaths and clean up appropriately when things die. 


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & \hyperlink{protocolthe-p}{the} XRL Target Class we're interested in. \\
\hline
\end{DoxyParams}
\hypertarget{classRibManager_ae9bd4bca313aa39827a04a90e3311c07}{
\index{RibManager@{RibManager}!register\_\-interest\_\-in\_\-target\_\-done@{register\_\-interest\_\-in\_\-target\_\-done}}
\index{register\_\-interest\_\-in\_\-target\_\-done@{register\_\-interest\_\-in\_\-target\_\-done}!RibManager@{RibManager}}
\subsubsection[{register\_\-interest\_\-in\_\-target\_\-done}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::register\_\-interest\_\-in\_\-target\_\-done (
\begin{DoxyParamCaption}
\item[{const {\bf XrlError} \&}]{e}
\end{DoxyParamCaption}
)}}
\label{classRibManager_ae9bd4bca313aa39827a04a90e3311c07}


Called in response to registering interest in an XRL target. 


\begin{DoxyParams}{Parameters}
{\em e} & XRL Response code. \\
\hline
\end{DoxyParams}
\hypertarget{classRibManager_aef63ec11db6e396cd0e604fafc1db277}{
\index{RibManager@{RibManager}!reset\_\-filter@{reset\_\-filter}}
\index{reset\_\-filter@{reset\_\-filter}!RibManager@{RibManager}}
\subsubsection[{reset\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::reset\_\-filter (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{filter}
\end{DoxyParamCaption}
)}}
\label{classRibManager_aef63ec11db6e396cd0e604fafc1db277}


Reset a policy filter. 


\begin{DoxyParams}{Parameters}
{\em filter} & Identifier of filter to reset. \\
\hline
\end{DoxyParams}
\hypertarget{classRibManager_a5c5bec0071b4d1c45366e1896bdcdb3f}{
\index{RibManager@{RibManager}!reset\_\-policy\_\-redist\_\-tags@{reset\_\-policy\_\-redist\_\-tags}}
\index{reset\_\-policy\_\-redist\_\-tags@{reset\_\-policy\_\-redist\_\-tags}!RibManager@{RibManager}}
\subsubsection[{reset\_\-policy\_\-redist\_\-tags}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::reset\_\-policy\_\-redist\_\-tags (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a5c5bec0071b4d1c45366e1896bdcdb3f}


Reset \hyperlink{protocolthe-p}{the} policy redistribution map. 

This map allows policy redistribution to occur by directing routes with specific policy-\/tags to specific protocols. \hypertarget{classRibManager_a09ff2ed19ab81ce4e21bd1d93f57e15f}{
\index{RibManager@{RibManager}!set\_\-vif\_\-flags@{set\_\-vif\_\-flags}}
\index{set\_\-vif\_\-flags@{set\_\-vif\_\-flags}!RibManager@{RibManager}}
\subsubsection[{set\_\-vif\_\-flags}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::set\_\-vif\_\-flags (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{bool}]{is\_\-p2p, }
\item[{bool}]{is\_\-loopback, }
\item[{bool}]{is\_\-multicast, }
\item[{bool}]{is\_\-broadcast, }
\item[{bool}]{is\_\-up, }
\item[{uint32\_\-t}]{mtu, }
\item[{string \&}]{err}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a09ff2ed19ab81ce4e21bd1d93f57e15f}


Set \hyperlink{protocolthe-p}{the} vif flags of a configured vif. 


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em is\_\-pim\_\-register} & true if \hyperlink{protocolthe-p}{the} vif is a PIM Register interface. \\
\hline
{\em is\_\-p2p} & true if \hyperlink{protocolthe-p}{the} vif is point-\/to-\/point interface. \\
\hline
{\em is\_\-loopback} & true if \hyperlink{protocolthe-p}{the} vif is a loopback interface. \\
\hline
{\em is\_\-multicast} & true if \hyperlink{protocolthe-p}{the} vif is multicast capable. \\
\hline
{\em is\_\-broadcast} & true if \hyperlink{protocolthe-p}{the} vif is broadcast capable. \\
\hline
{\em is\_\-up} & true if \hyperlink{protocolthe-p}{the} underlying vif is UP. \\
\hline
{\em mtu} & \hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em err} & reference to string in which to store \hyperlink{protocolthe-p}{the} human-\/readable error message in case anything goes wrong. Used for debugging purposes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classRibManager_a968592b27d8fc8e02d295eafe474e1ab}{
\index{RibManager@{RibManager}!start@{start}}
\index{start@{start}!RibManager@{RibManager}}
\subsubsection[{start}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::start (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a968592b27d8fc8e02d295eafe474e1ab}


Start operation. 

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


Reimplemented from \hyperlink{classProtoState_a5a0cf7fc68b9db681ce8b8fca9635e07}{ProtoState}.

\hypertarget{classRibManager_a80de4afdc72127e57a21da2a38827272}{
\index{RibManager@{RibManager}!status@{status}}
\index{status@{status}!RibManager@{RibManager}}
\subsubsection[{status}]{\setlength{\rightskip}{0pt plus 5cm}ProcessStatus RibManager::status (
\begin{DoxyParamCaption}
\item[{string \&}]{reason}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classRibManager_a80de4afdc72127e57a21da2a38827272}


Check status of \hyperlink{classRIB}{RIB} process. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} process status code. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
ProcessStatus. 
\end{DoxySeeAlso}
\hypertarget{classRibManager_a91ee588bf018fe279f49a808944a5c92}{
\index{RibManager@{RibManager}!status\_\-updater@{status\_\-updater}}
\index{status\_\-updater@{status\_\-updater}!RibManager@{RibManager}}
\subsubsection[{status\_\-updater}]{\setlength{\rightskip}{0pt plus 5cm}bool RibManager::status\_\-updater (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classRibManager_a91ee588bf018fe279f49a808944a5c92}


Periodic Status Update. 

\begin{DoxyReturn}{Returns}
true to reschedule next status check. 
\end{DoxyReturn}
\hypertarget{classRibManager_ac0ee816c7b33c059ff7f95965014475a}{
\index{RibManager@{RibManager}!stop@{stop}}
\index{stop@{stop}!RibManager@{RibManager}}
\subsubsection[{stop}]{\setlength{\rightskip}{0pt plus 5cm}int RibManager::stop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classRibManager_ac0ee816c7b33c059ff7f95965014475a}


Stop operation. 

Gracefully stop \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}.

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


Reimplemented from \hyperlink{classProtoState_a00a8d35d02b0ce61a6b012326e81878c}{ProtoState}.

\hypertarget{classRibManager_aa34fe2de9378c85f1929061b7e4f4d5a}{
\index{RibManager@{RibManager}!target\_\-death@{target\_\-death}}
\index{target\_\-death@{target\_\-death}!RibManager@{RibManager}}
\subsubsection[{target\_\-death}]{\setlength{\rightskip}{0pt plus 5cm}void RibManager::target\_\-death (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class, }
\item[{const string \&}]{target\_\-instance}
\end{DoxyParamCaption}
)}}
\label{classRibManager_aa34fe2de9378c85f1929061b7e4f4d5a}


Target Death is called when an XRL target that we've registered an interest in dies. 


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & \hyperlink{protocolthe-p}{the} XRL Class of \hyperlink{protocolthe-p}{the} target that died. \\
\hline
{\em target\_\-instance} & \hyperlink{protocolthe-p}{the} XRL Class Instance of \hyperlink{protocolthe-p}{the} target that died. \\
\hline
\end{DoxyParams}
\hypertarget{classRibManager_a2743b8d1a76479e05b42f3e784471117}{
\index{RibManager@{RibManager}!urib4@{urib4}}
\index{urib4@{urib4}!RibManager@{RibManager}}
\subsubsection[{urib4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf RIB}$<${\bf IPv4}$>$\& RibManager::urib4 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classRibManager_a2743b8d1a76479e05b42f3e784471117}
\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast \hyperlink{classRIB}{RIB}. 
\end{DoxyReturn}
\hypertarget{classRibManager_a4ef44e696ee1c5ffadd426ccd3273ec1}{
\index{RibManager@{RibManager}!xrl\_\-rib\_\-target@{xrl\_\-rib\_\-target}}
\index{xrl\_\-rib\_\-target@{xrl\_\-rib\_\-target}!RibManager@{RibManager}}
\subsubsection[{xrl\_\-rib\_\-target}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlRibTarget}\& RibManager::xrl\_\-rib\_\-target (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classRibManager_a4ef44e696ee1c5ffadd426ccd3273ec1}
\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} XRL \hyperlink{classRIB}{RIB} target. 
\end{DoxyReturn}


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