\hypertarget{classBGPPlumbing}{
\section{BGPPlumbing Class Reference}
\label{classBGPPlumbing}\index{BGPPlumbing@{BGPPlumbing}}
}
Inheritance diagram for BGPPlumbing:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classBGPPlumbing}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classBGPPlumbing_abaadf9317247041ff7048db9faf293d0}{
{\bfseries BGPPlumbing} (const Safi safi, \hyperlink{classRibIpcHandler}{RibIpcHandler} $\ast$rib\_\-handler, \hyperlink{classAggregationHandler}{AggregationHandler} $\ast$aggr\_\-handler, \hyperlink{classNextHopResolver}{NextHopResolver}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&, \hyperlink{classPolicyFilters}{PolicyFilters} \&, \hyperlink{classBGPMain}{BGPMain} \&bgp)}
\label{classBGPPlumbing_abaadf9317247041ff7048db9faf293d0}

\item 
\hypertarget{classBGPPlumbing_a39f6e396fe637f16bbd5b98e36a942c9}{
int {\bfseries add\_\-peering} (\hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a39f6e396fe637f16bbd5b98e36a942c9}

\item 
\hypertarget{classBGPPlumbing_a38565e02115230b3037618e82434f79a}{
int {\bfseries stop\_\-peering} (\hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a38565e02115230b3037618e82434f79a}

\item 
\hypertarget{classBGPPlumbing_a3de5cff0cef82ac1338cab62c7bcfe9d}{
int {\bfseries peering\_\-went\_\-down} (\hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a3de5cff0cef82ac1338cab62c7bcfe9d}

\item 
\hypertarget{classBGPPlumbing_a445e27a2bce8a8ecdeb81977c1a8b67b}{
int {\bfseries peering\_\-came\_\-up} (\hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a445e27a2bce8a8ecdeb81977c1a8b67b}

\item 
\hypertarget{classBGPPlumbing_a89395f596abe599379cda398314598a0}{
int {\bfseries delete\_\-peering} (\hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a89395f596abe599379cda398314598a0}

\item 
\hypertarget{classBGPPlumbing_a45139e2b6ebeeeb47257cfbf07b3b604}{
void {\bfseries flush} (\hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a45139e2b6ebeeeb47257cfbf07b3b604}

\item 
\hypertarget{classBGPPlumbing_a05c6c12689bb4a7205133aad86eb2221}{
int {\bfseries add\_\-route} (const \hyperlink{classIPNet}{IPv4Net} \&net, FPAList4Ref \&pa\_\-list, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags, \hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a05c6c12689bb4a7205133aad86eb2221}

\item 
\hypertarget{classBGPPlumbing_a5d0a51fff186aaac27e5374ac89a5606}{
int {\bfseries delete\_\-route} (\hyperlink{classInternalMessage}{InternalMessage}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&rtmsg, \hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a5d0a51fff186aaac27e5374ac89a5606}

\item 
\hypertarget{classBGPPlumbing_a2c95c6e933faf51911bee4f203a5d606}{
int {\bfseries delete\_\-route} (const \hyperlink{classIPNet}{IPNet}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&net, \hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a2c95c6e933faf51911bee4f203a5d606}

\item 
\hypertarget{classBGPPlumbing_ac2e3dab53b19be67fcf211efaa3f767d}{
{\footnotesize template$<$class A $>$ }\\void {\bfseries push} (\hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_ac2e3dab53b19be67fcf211efaa3f767d}

\item 
\hypertarget{classBGPPlumbing_a6b64d81c74f5f257d72cdc9b6341b504}{
void {\bfseries output\_\-no\_\-longer\_\-busy} (\hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)}
\label{classBGPPlumbing_a6b64d81c74f5f257d72cdc9b6341b504}

\item 
\hypertarget{classBGPPlumbing_a1a150e272bdd397e4884a323769d19ca}{
const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ \hyperlink{classIPv4}{IPv4} $>$ $\ast$ {\bfseries lookup\_\-route} (const \hyperlink{classIPNet}{IPNet}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&net) const }
\label{classBGPPlumbing_a1a150e272bdd397e4884a323769d19ca}

\item 
uint32\_\-t \hyperlink{classBGPPlumbing_abf562aa62aeedd218d034431eeec7fdc}{get\_\-prefix\_\-count} (const \hyperlink{classPeerHandler}{PeerHandler} $\ast$peer\_\-handler)
\item 
\hypertarget{classBGPPlumbing_acb70602e7e700d7186cf2160f2d1d83b}{
\hyperlink{classRibIpcHandler}{RibIpcHandler} $\ast$ {\bfseries rib\_\-handler} () const }
\label{classBGPPlumbing_acb70602e7e700d7186cf2160f2d1d83b}

\item 
\hypertarget{classBGPPlumbing_a8a115824d189df0bc018fba08c0cacd2}{
\hyperlink{classAggregationHandler}{AggregationHandler} $\ast$ {\bfseries aggr\_\-handler} () const }
\label{classBGPPlumbing_a8a115824d189df0bc018fba08c0cacd2}

\item 
\hypertarget{classBGPPlumbing_ac16c3c0030162992ffddb634292d2958}{
\hyperlink{classBGPPlumbingAF}{BGPPlumbingAF}$<$ \hyperlink{classIPv4}{IPv4} $>$ \& {\bfseries plumbing\_\-ipv4} ()}
\label{classBGPPlumbing_ac16c3c0030162992ffddb634292d2958}

\item 
\hypertarget{classBGPPlumbing_a97b225ddb8100923d15969f001c54f95}{
{\footnotesize template$<$typename A $>$ }\\uint32\_\-t {\bfseries create\_\-route\_\-table\_\-reader} (const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&prefix)}
\label{classBGPPlumbing_a97b225ddb8100923d15969f001c54f95}

\item 
\hypertarget{classBGPPlumbing_adadc4c8edf1de7d7c48dac6386a6cd5f}{
bool {\bfseries read\_\-next\_\-route} (uint32\_\-t token, const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ \hyperlink{classIPv4}{IPv4} $>$ $\ast$\&route, \hyperlink{classIPv4}{IPv4} \&peer\_\-id)}
\label{classBGPPlumbing_adadc4c8edf1de7d7c48dac6386a6cd5f}

\item 
bool \hyperlink{classBGPPlumbing_ae7f9796ceff29644366c72cfe798182e}{status} (string \&reason) const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} status of \hyperlink{protocolthe-p}{the} Plumbing. \item\end{DoxyCompactList}\item 
Safi \hyperlink{classBGPPlumbing_a52e039d3af611399ac33741a6bee3f20}{safi} () const 
\item 
\hyperlink{classBGPMain}{BGPMain} \& \hyperlink{classBGPPlumbing_a9e008f72beef9e7d5f238bc0b39afc66}{main} () const 
\item 
\hypertarget{classBGPPlumbing_a2fb7aa3151dcff22c8162dab9e8698e6}{
void \hyperlink{classBGPPlumbing_a2fb7aa3151dcff22c8162dab9e8698e6}{push\_\-routes} ()}
\label{classBGPPlumbing_a2fb7aa3151dcff22c8162dab9e8698e6}

\begin{DoxyCompactList}\small\item\em \hyperlink{classPush}{Push} routes through policy filters for re-\/filtering. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPPlumbing_af2175ef2453e3a58fb3433b1bcd46bac}{
\hyperlink{classPolicyFilters}{PolicyFilters} \& {\bfseries policy\_\-filters} ()}
\label{classBGPPlumbing_af2175ef2453e3a58fb3433b1bcd46bac}

\item 
\hypertarget{classBGPPlumbing_abaf18e4cb3500d8b22a4097f39db562b}{
{\footnotesize template$<$$>$ }\\uint32\_\-t {\bfseries create\_\-route\_\-table\_\-reader} (const \hyperlink{classIPNet}{IPNet}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&prefix)}
\label{classBGPPlumbing_abaf18e4cb3500d8b22a4097f39db562b}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classBGPPlumbing_a427edea872bd913f7aa186a05783ccac}{
\hyperlink{classBGPMain}{BGPMain} \& \hyperlink{classBGPPlumbing_a427edea872bd913f7aa186a05783ccac}{\_\-bgp}}
\label{classBGPPlumbing_a427edea872bd913f7aa186a05783ccac}

\begin{DoxyCompactList}\small\item\em \hyperlink{classIPv6}{IPv6} stuff. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPPlumbing_a45cf913c79929852994b6f6449c49216}{
\hyperlink{classRibIpcHandler}{RibIpcHandler} $\ast$ {\bfseries \_\-rib\_\-handler}}
\label{classBGPPlumbing_a45cf913c79929852994b6f6449c49216}

\item 
\hypertarget{classBGPPlumbing_ae78d00fa9310bb2319d4d12230670d05}{
\hyperlink{classAggregationHandler}{AggregationHandler} $\ast$ {\bfseries \_\-aggr\_\-handler}}
\label{classBGPPlumbing_ae78d00fa9310bb2319d4d12230670d05}

\item 
\hypertarget{classBGPPlumbing_af757a401f3325fb681a816ff4d584044}{
\hyperlink{classNextHopResolver}{NextHopResolver}$<$ \hyperlink{classIPv4}{IPv4} $>$ \& {\bfseries \_\-next\_\-hop\_\-resolver\_\-ipv4}}
\label{classBGPPlumbing_af757a401f3325fb681a816ff4d584044}

\item 
\hypertarget{classBGPPlumbing_a8347fd521a42bc29d3e7ee282c6b0c46}{
const Safi {\bfseries \_\-safi}}
\label{classBGPPlumbing_a8347fd521a42bc29d3e7ee282c6b0c46}

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

\item 
\hypertarget{classBGPPlumbing_a78f293cb5c961756b6a24c2fb4b2ec42}{
\hyperlink{classBGPPlumbingAF}{BGPPlumbingAF}$<$ \hyperlink{classIPv4}{IPv4} $>$ {\bfseries \_\-plumbing\_\-ipv4}}
\label{classBGPPlumbing_a78f293cb5c961756b6a24c2fb4b2ec42}

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classBGPPlumbing_abf562aa62aeedd218d034431eeec7fdc}{
\index{BGPPlumbing@{BGPPlumbing}!get\_\-prefix\_\-count@{get\_\-prefix\_\-count}}
\index{get\_\-prefix\_\-count@{get\_\-prefix\_\-count}!BGPPlumbing@{BGPPlumbing}}
\subsubsection[{get\_\-prefix\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t BGPPlumbing::get\_\-prefix\_\-count (
\begin{DoxyParamCaption}
\item[{const {\bf PeerHandler} $\ast$}]{peer\_\-handler}
\end{DoxyParamCaption}
)}}
\label{classBGPPlumbing_abf562aa62aeedd218d034431eeec7fdc}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of prefixes in \hyperlink{protocolthe-p}{the} RIB-\/IN. 
\end{DoxyReturn}
\hypertarget{classBGPPlumbing_a9e008f72beef9e7d5f238bc0b39afc66}{
\index{BGPPlumbing@{BGPPlumbing}!main@{main}}
\index{main@{main}!BGPPlumbing@{BGPPlumbing}}
\subsubsection[{main}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BGPMain}\& BGPPlumbing::main (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPPlumbing_a9e008f72beef9e7d5f238bc0b39afc66}
\begin{DoxyReturn}{Returns}
Reference to \hyperlink{protocolthe-p}{the} main bgp class. 
\end{DoxyReturn}
\hypertarget{classBGPPlumbing_a52e039d3af611399ac33741a6bee3f20}{
\index{BGPPlumbing@{BGPPlumbing}!safi@{safi}}
\index{safi@{safi}!BGPPlumbing@{BGPPlumbing}}
\subsubsection[{safi}]{\setlength{\rightskip}{0pt plus 5cm}Safi BGPPlumbing::safi (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPPlumbing_a52e039d3af611399ac33741a6bee3f20}
\begin{DoxyReturn}{Returns}
Safi of this plumb. 
\end{DoxyReturn}
\hypertarget{classBGPPlumbing_ae7f9796ceff29644366c72cfe798182e}{
\index{BGPPlumbing@{BGPPlumbing}!status@{status}}
\index{status@{status}!BGPPlumbing@{BGPPlumbing}}
\subsubsection[{status}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPPlumbing::status (
\begin{DoxyParamCaption}
\item[{string \&}]{reason}
\end{DoxyParamCaption}
) const}}
\label{classBGPPlumbing_ae7f9796ceff29644366c72cfe798182e}


Get \hyperlink{protocolthe-p}{the} status of \hyperlink{protocolthe-p}{the} Plumbing. 


\begin{DoxyParams}{Parameters}
{\em reason} & \hyperlink{protocolthe-p}{the} human-\/readable reason for any failure\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
false if Plumbing has suffered a fatal error, true otherwise 
\end{DoxyReturn}


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