\hypertarget{classRibIpcHandler}{
\section{RibIpcHandler Class Reference}
\label{classRibIpcHandler}\index{RibIpcHandler@{RibIpcHandler}}
}
Inheritance diagram for RibIpcHandler:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classRibIpcHandler}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classRibIpcHandler_a9623763d820a730597cbb62c5de70527}{
{\bfseries RibIpcHandler} (\hyperlink{classXrlStdRouter}{XrlStdRouter} \&xrl\_\-router, \hyperlink{classBGPMain}{BGPMain} \&bgp)}
\label{classRibIpcHandler_a9623763d820a730597cbb62c5de70527}

\item 
\hypertarget{classRibIpcHandler_a8511e55ab500c260423076d63b31dbe5}{
bool \hyperlink{classRibIpcHandler_a8511e55ab500c260423076d63b31dbe5}{register\_\-ribname} (const string \&r)}
\label{classRibIpcHandler_a8511e55ab500c260423076d63b31dbe5}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} rib's name, allows for having a dummy rib or not having a \hyperlink{classRIB}{RIB} at all. \item\end{DoxyCompactList}\item 
\hypertarget{classRibIpcHandler_a4d8b4ada01814fcd723b2631a25f8b67}{
int \hyperlink{classRibIpcHandler_a4d8b4ada01814fcd723b2631a25f8b67}{start\_\-packet} ()}
\label{classRibIpcHandler_a4d8b4ada01814fcd723b2631a25f8b67}

\begin{DoxyCompactList}\small\item\em add\_\-route and delete\_\-route are called by \hyperlink{protocolthe-p}{the} plumbing to propagate a route $\ast$to$\ast$ \hyperlink{protocolthe-p}{the} peer. \item\end{DoxyCompactList}\item 
\hypertarget{classRibIpcHandler_a8a91ebdf7b5a86934c64590e565c71eb}{
int {\bfseries add\_\-route} (const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&rt, FPAList4Ref \&pa\_\-list, bool ibgp, Safi safi)}
\label{classRibIpcHandler_a8a91ebdf7b5a86934c64590e565c71eb}

\item 
\hypertarget{classRibIpcHandler_a2ba4252d608856b484529db0bff88205}{
int {\bfseries replace\_\-route} (const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&old\_\-rt, bool old\_\-ibgp, const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&new\_\-rt, bool new\_\-ibgp, FPAList4Ref \&pa\_\-list, Safi safi)}
\label{classRibIpcHandler_a2ba4252d608856b484529db0bff88205}

\item 
\hypertarget{classRibIpcHandler_a9890d997891e10ae982eea8c3b0790e9}{
int {\bfseries delete\_\-route} (const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&rt, FPAList4Ref \&pa\_\-list, bool ibgp, Safi safi)}
\label{classRibIpcHandler_a9890d997891e10ae982eea8c3b0790e9}

\item 
\hypertarget{classRibIpcHandler_a14eb4cddcb337860bed2eb4786078569}{
void {\bfseries rib\_\-command\_\-done} (const \hyperlink{classXrlError}{XrlError} \&error, const char $\ast$comment)}
\label{classRibIpcHandler_a14eb4cddcb337860bed2eb4786078569}

\item 
\hypertarget{classRibIpcHandler_abf7c5e4bbbcae5e5a14e578ece6f5f3a}{
PeerOutputState {\bfseries push\_\-packet} ()}
\label{classRibIpcHandler_abf7c5e4bbbcae5e5a14e578ece6f5f3a}

\item 
\hypertarget{classRibIpcHandler_aa896f4a42d6917d1427e6266678bc497}{
void {\bfseries set\_\-plumbing} (\hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$plumbing\_\-unicast, \hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$plumbing\_\-multicast)}
\label{classRibIpcHandler_aa896f4a42d6917d1427e6266678bc497}

\item 
bool \hyperlink{classRibIpcHandler_a9ef03ce3d9500a8a0b3388f69de9f9c8}{busy} ()
\item 
bool \hyperlink{classRibIpcHandler_ac58dd8c2a321f250e96a1863bd1a1480}{originate\_\-route} (const OriginType origin, const \hyperlink{classASPath}{ASPath} \&aspath, const \hyperlink{classIPNet}{IPv4Net} \&nlri, const \hyperlink{classIPv4}{IPv4} \&next\_\-hop, const bool \&unicast, const bool \&multicast, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)
\begin{DoxyCompactList}\small\item\em Originate an \hyperlink{classIPv4}{IPv4} route. \item\end{DoxyCompactList}\item 
bool \hyperlink{classRibIpcHandler_a0c4b0c72cd69745af7f4d84b4f34ed01}{withdraw\_\-route} (const \hyperlink{classIPNet}{IPv4Net} \&nlri, const bool \&unicast, const bool \&multicast)
\begin{DoxyCompactList}\small\item\em Withdraw an \hyperlink{classIPv4}{IPv4} route. \item\end{DoxyCompactList}\item 
virtual uint32\_\-t \hyperlink{classRibIpcHandler_a30d24fc62bfb09506ede9a375dc52336}{get\_\-unique\_\-id} () const 
\item 
const \hyperlink{classIPv4}{IPv4} \& \hyperlink{classRibIpcHandler_ad16a35875383116b64a90eb43b7afb88}{id} () const 
\item 
\hypertarget{classRibIpcHandler_a0b65b766eb2b892ef7d279a84321770b}{
virtual PeerType {\bfseries get\_\-peer\_\-type} () const }
\label{classRibIpcHandler_a0b65b766eb2b892ef7d279a84321770b}

\item 
virtual bool \hyperlink{classRibIpcHandler_a3702fdb3e15f87a147dba5c65c8d557d}{originate\_\-route\_\-handler} () const 
\begin{DoxyCompactList}\small\item\em This is \hyperlink{protocolthe-p}{the} handler that deals with originating routes. \item\end{DoxyCompactList}\item 
virtual \hyperlink{classEventLoop}{EventLoop} \& \hyperlink{classRibIpcHandler_a37d443bc9a7de642276db29d761810a2}{eventloop} () const 
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classRibIpcHandler_a273d8f2e28260ff4207654a2477895ea}{
bool \hyperlink{classRibIpcHandler_a273d8f2e28260ff4207654a2477895ea}{unregister\_\-rib} (string ribname)}
\label{classRibIpcHandler_a273d8f2e28260ff4207654a2477895ea}

\begin{DoxyCompactList}\small\item\em \hyperlink{classIPv6}{IPv6} stuff. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classRibIpcHandler_a335302d1806be333ef7a63f0427d1873}{
string {\bfseries \_\-ribname}}
\label{classRibIpcHandler_a335302d1806be333ef7a63f0427d1873}

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

\item 
\hypertarget{classRibIpcHandler_a27e3af874242a3794cd55cd871dea090}{
\hyperlink{classXrlQueue}{XrlQueue}$<$ \hyperlink{classIPv4}{IPv4} $>$ {\bfseries \_\-v4\_\-queue}}
\label{classRibIpcHandler_a27e3af874242a3794cd55cd871dea090}

\item 
\hypertarget{classRibIpcHandler_a32fd11ac2e1b9ff14595babf1fdafa58}{
const uint32\_\-t {\bfseries \_\-fake\_\-unique\_\-id}}
\label{classRibIpcHandler_a32fd11ac2e1b9ff14595babf1fdafa58}

\item 
\hypertarget{classRibIpcHandler_a7d788286c7aa52cf9897fbbefdecfc58}{
\hyperlink{classIPv4}{IPv4} {\bfseries \_\-fake\_\-id}}
\label{classRibIpcHandler_a7d788286c7aa52cf9897fbbefdecfc58}

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classRibIpcHandler_a9ef03ce3d9500a8a0b3388f69de9f9c8}{
\index{RibIpcHandler@{RibIpcHandler}!busy@{busy}}
\index{busy@{busy}!RibIpcHandler@{RibIpcHandler}}
\subsubsection[{busy}]{\setlength{\rightskip}{0pt plus 5cm}bool RibIpcHandler::busy (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classRibIpcHandler_a9ef03ce3d9500a8a0b3388f69de9f9c8}
\begin{DoxyReturn}{Returns}
true if routes are being sent to \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB}. 
\end{DoxyReturn}
\hypertarget{classRibIpcHandler_a37d443bc9a7de642276db29d761810a2}{
\index{RibIpcHandler@{RibIpcHandler}!eventloop@{eventloop}}
\index{eventloop@{eventloop}!RibIpcHandler@{RibIpcHandler}}
\subsubsection[{eventloop}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf EventLoop}\& RibIpcHandler::eventloop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classRibIpcHandler_a37d443bc9a7de642276db29d761810a2}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} main eventloop 
\end{DoxyReturn}


Reimplemented from \hyperlink{classPeerHandler}{PeerHandler}.

\hypertarget{classRibIpcHandler_a30d24fc62bfb09506ede9a375dc52336}{
\index{RibIpcHandler@{RibIpcHandler}!get\_\-unique\_\-id@{get\_\-unique\_\-id}}
\index{get\_\-unique\_\-id@{get\_\-unique\_\-id}!RibIpcHandler@{RibIpcHandler}}
\subsubsection[{get\_\-unique\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}virtual uint32\_\-t RibIpcHandler::get\_\-unique\_\-id (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classRibIpcHandler_a30d24fc62bfb09506ede9a375dc52336}
\begin{DoxyReturn}{Returns}
an ID that is unique per peer for use in decision. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classPeerHandler_a9d5bd23d01841a1e43075d06e5996e32}{PeerHandler}.

\hypertarget{classRibIpcHandler_ad16a35875383116b64a90eb43b7afb88}{
\index{RibIpcHandler@{RibIpcHandler}!id@{id}}
\index{id@{id}!RibIpcHandler@{RibIpcHandler}}
\subsubsection[{id}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IPv4}\& RibIpcHandler::id (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classRibIpcHandler_ad16a35875383116b64a90eb43b7afb88}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} neighbours BGP ID as an integer for use by decision. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classPeerHandler_a86b5e958107ea40ce7a3fb21c5162c83}{PeerHandler}.

\hypertarget{classRibIpcHandler_ac58dd8c2a321f250e96a1863bd1a1480}{
\index{RibIpcHandler@{RibIpcHandler}!originate\_\-route@{originate\_\-route}}
\index{originate\_\-route@{originate\_\-route}!RibIpcHandler@{RibIpcHandler}}
\subsubsection[{originate\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}bool RibIpcHandler::originate\_\-route (
\begin{DoxyParamCaption}
\item[{const OriginType}]{origin, }
\item[{const {\bf ASPath} \&}]{aspath, }
\item[{const {\bf IPv4Net} \&}]{nlri, }
\item[{const {\bf IPv4} \&}]{next\_\-hop, }
\item[{const bool \&}]{unicast, }
\item[{const bool \&}]{multicast, }
\item[{const {\bf PolicyTags} \&}]{policytags}
\end{DoxyParamCaption}
)}}
\label{classRibIpcHandler_ac58dd8c2a321f250e96a1863bd1a1480}


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


\begin{DoxyParams}{Parameters}
{\em origin} & of \hyperlink{protocolthe-p}{the} path information \\
\hline
{\em aspath} & \\
\hline
{\em nlri} & subnet to announce \\
\hline
{\em next\_\-hop} & to forward to \\
\hline
{\em unicast} & if true install in unicast routing table \\
\hline
{\em multicast} & if true install in multicast routing table \\
\hline
{\em policytags} & policy-\/tags associated with \hyperlink{protocolthe-p}{the} route\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classRibIpcHandler_a3702fdb3e15f87a147dba5c65c8d557d}{
\index{RibIpcHandler@{RibIpcHandler}!originate\_\-route\_\-handler@{originate\_\-route\_\-handler}}
\index{originate\_\-route\_\-handler@{originate\_\-route\_\-handler}!RibIpcHandler@{RibIpcHandler}}
\subsubsection[{originate\_\-route\_\-handler}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool RibIpcHandler::originate\_\-route\_\-handler (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classRibIpcHandler_a3702fdb3e15f87a147dba5c65c8d557d}


This is \hyperlink{protocolthe-p}{the} handler that deals with originating routes. 

\begin{DoxyReturn}{Returns}
true 
\end{DoxyReturn}


Reimplemented from \hyperlink{classPeerHandler_a901f0acb289e4fd0416ed6de5fdda5b2}{PeerHandler}.

\hypertarget{classRibIpcHandler_a0c4b0c72cd69745af7f4d84b4f34ed01}{
\index{RibIpcHandler@{RibIpcHandler}!withdraw\_\-route@{withdraw\_\-route}}
\index{withdraw\_\-route@{withdraw\_\-route}!RibIpcHandler@{RibIpcHandler}}
\subsubsection[{withdraw\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}bool RibIpcHandler::withdraw\_\-route (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Net} \&}]{nlri, }
\item[{const bool \&}]{unicast, }
\item[{const bool \&}]{multicast}
\end{DoxyParamCaption}
)}}
\label{classRibIpcHandler_a0c4b0c72cd69745af7f4d84b4f34ed01}


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


\begin{DoxyParams}{Parameters}
{\em nlri} & subnet to withdraw \\
\hline
{\em unicast} & if true withdraw from unicast routing table \\
\hline
{\em multicast} & if true withdraw from multicast routing table\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}


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