\hypertarget{classPeerHandler}{
\section{PeerHandler Class Reference}
\label{classPeerHandler}\index{PeerHandler@{PeerHandler}}
}


PeerHandler's job is primarily format conversion.  




{\ttfamily \#include $<$peer\_\-handler.hh$>$}

Inheritance diagram for PeerHandler:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classPeerHandler}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPeerHandler_abe440e900e8babfd1f971458a159ad16}{
{\bfseries PeerHandler} (const string \&peername, \hyperlink{classBGPPeer}{BGPPeer} $\ast$peer, \hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$plumbing\_\-unicast, \hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$plumbing\_\-multicast)}
\label{classPeerHandler_abe440e900e8babfd1f971458a159ad16}

\item 
\hypertarget{classPeerHandler_a5b5a20ccf56b2018e4e1cd84ea5eb7bf}{
void {\bfseries stop} ()}
\label{classPeerHandler_a5b5a20ccf56b2018e4e1cd84ea5eb7bf}

\item 
\hypertarget{classPeerHandler_a4207df0500ff76c0096026424248e48a}{
void {\bfseries peering\_\-went\_\-down} ()}
\label{classPeerHandler_a4207df0500ff76c0096026424248e48a}

\item 
\hypertarget{classPeerHandler_af3b40c78af09b7a14b5cb6f263f4a459}{
void {\bfseries peering\_\-came\_\-up} ()}
\label{classPeerHandler_af3b40c78af09b7a14b5cb6f263f4a459}

\item 
\hypertarget{classPeerHandler_a9c187ba2469a145eb61295c9c68dd305}{
bool {\bfseries peering\_\-is\_\-up} () const }
\label{classPeerHandler_a9c187ba2469a145eb61295c9c68dd305}

\item 
\hypertarget{classPeerHandler_a8b0eea3fddebf0fa6261a415f7d52a0a}{
int \hyperlink{classPeerHandler_a8b0eea3fddebf0fa6261a415f7d52a0a}{process\_\-update\_\-packet} (\hyperlink{classUpdatePacket}{UpdatePacket} $\ast$p)}
\label{classPeerHandler_a8b0eea3fddebf0fa6261a415f7d52a0a}

\begin{DoxyCompactList}\small\item\em process\_\-update\_\-packet is called when an update packet has been received by this peer \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename A $>$ }\\bool \hyperlink{classPeerHandler_a09e91ded415c1a1b6c8857009cdffbf9}{add} (const \hyperlink{classUpdatePacket}{UpdatePacket} $\ast$p, \hyperlink{classref__ptr}{ref\_\-ptr}$<$ \hyperlink{classFastPathAttributeList}{FastPathAttributeList}$<$ \hyperlink{classIPv4}{IPv4} $>$ $>$ \&original\_\-pa\_\-list, \hyperlink{classref__ptr}{ref\_\-ptr}$<$ \hyperlink{classFastPathAttributeList}{FastPathAttributeList}$<$ A $>$ $>$ \&pa\_\-list, Safi safi)
\begin{DoxyCompactList}\small\item\em Given an update packet find all \hyperlink{protocolthe-p}{the} NLRIs with $<$AFI,SAFI$>$ specified and inject one by one into \hyperlink{protocolthe-p}{the} plumbing. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename A $>$ }\\bool \hyperlink{classPeerHandler_a14b07f1bc9cab8b45142a21d63b12e1c}{withdraw} (const \hyperlink{classUpdatePacket}{UpdatePacket} $\ast$p, \hyperlink{classref__ptr}{ref\_\-ptr}$<$ \hyperlink{classFastPathAttributeList}{FastPathAttributeList}$<$ \hyperlink{classIPv4}{IPv4} $>$ $>$ \&original\_\-pa\_\-list, Safi safi)
\begin{DoxyCompactList}\small\item\em Given an update packet find all \hyperlink{protocolthe-p}{the} WITHDRAWs with $<$AFI,SAFI$>$ specified and inject one by on into \hyperlink{protocolthe-p}{the} plumbing. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerHandler_a7635e1162ace5bb17417151c3892a954}{
{\footnotesize template$<$typename A $>$ }\\bool {\bfseries multiprotocol} (Safi safi, \hyperlink{classBGPPeerData_a5548b924bc1529136131642d32872421}{BGPPeerData::Direction} d) const }
\label{classPeerHandler_a7635e1162ace5bb17417151c3892a954}

\item 
\hypertarget{classPeerHandler_afa7cd810db57ce73641cf81bf1e28069}{
virtual int \hyperlink{classPeerHandler_afa7cd810db57ce73641cf81bf1e28069}{start\_\-packet} ()}
\label{classPeerHandler_afa7cd810db57ce73641cf81bf1e28069}

\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{classPeerHandler_a8e7f33131137357eba7be634b79e4dd1}{
virtual int {\bfseries add\_\-route} (const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&rt, FPAList4Ref \&pa\_\-list, bool ibgp, Safi safi)}
\label{classPeerHandler_a8e7f33131137357eba7be634b79e4dd1}

\item 
\hypertarget{classPeerHandler_a4356faeea042972eb508469bac59732a}{
virtual 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{classPeerHandler_a4356faeea042972eb508469bac59732a}

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

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

\item 
\hypertarget{classPeerHandler_adb67373c01d457ef15b1e03f040e6635}{
virtual void {\bfseries output\_\-no\_\-longer\_\-busy} ()}
\label{classPeerHandler_adb67373c01d457ef15b1e03f040e6635}

\item 
\hypertarget{classPeerHandler_a2f0ce01ac8a999ec8e415c183a8a369b}{
\hyperlink{classAsNum}{AsNum} \hyperlink{classPeerHandler_a2f0ce01ac8a999ec8e415c183a8a369b}{my\_\-AS\_\-number} () const }
\label{classPeerHandler_a2f0ce01ac8a999ec8e415c183a8a369b}

\begin{DoxyCompactList}\small\item\em The AS number of this router. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerHandler_a506a349035525a805368b25292044554}{
\hyperlink{classAsNum}{AsNum} \hyperlink{classPeerHandler_a506a349035525a805368b25292044554}{AS\_\-number} () const }
\label{classPeerHandler_a506a349035525a805368b25292044554}

\begin{DoxyCompactList}\small\item\em The AS number of \hyperlink{protocolthe-p}{the} peer router. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerHandler_a021163d2c346ce3ae1fcfa12668eba37}{
bool \hyperlink{classPeerHandler_a021163d2c346ce3ae1fcfa12668eba37}{use\_\-4byte\_\-asnums} () const }
\label{classPeerHandler_a021163d2c346ce3ae1fcfa12668eba37}

\begin{DoxyCompactList}\small\item\em Do we use 4-\/byte AS numbers with this peer? \item\end{DoxyCompactList}\item 
\hypertarget{classPeerHandler_a0cc5dd905ce609c7fae08aaa916b164f}{
virtual PeerType {\bfseries get\_\-peer\_\-type} () const }
\label{classPeerHandler_a0cc5dd905ce609c7fae08aaa916b164f}

\item 
\hypertarget{classPeerHandler_ae91274c0467d83568b2c18b64007da13}{
const string \& {\bfseries peername} () const }
\label{classPeerHandler_ae91274c0467d83568b2c18b64007da13}

\item 
\hypertarget{classPeerHandler_a4e0afaf15da898d7100fb77521b83ff9}{
bool {\bfseries ibgp} () const }
\label{classPeerHandler_a4e0afaf15da898d7100fb77521b83ff9}

\item 
virtual bool \hyperlink{classPeerHandler_a901f0acb289e4fd0416ed6de5fdda5b2}{originate\_\-route\_\-handler} () const 
\item 
virtual uint32\_\-t \hyperlink{classPeerHandler_a9d5bd23d01841a1e43075d06e5996e32}{get\_\-unique\_\-id} () const 
\item 
virtual const \hyperlink{classIPv4}{IPv4} \& \hyperlink{classPeerHandler_a86b5e958107ea40ce7a3fb21c5162c83}{id} () const 
\item 
uint32\_\-t \hyperlink{classPeerHandler_a6b4ddea35888386041453ed5df0fe09e}{neighbour\_\-address} () const 
\item 
\hypertarget{classPeerHandler_ac97baa330d94b3900bfd9758f9e46592}{
const \hyperlink{classIPv4}{IPv4} \& {\bfseries my\_\-v4\_\-nexthop} () const }
\label{classPeerHandler_ac97baa330d94b3900bfd9758f9e46592}

\item 
\hypertarget{classPeerHandler_a5a57821f72604916bad2c05c357aa3a5}{
string \hyperlink{classPeerHandler_a5a57821f72604916bad2c05c357aa3a5}{get\_\-local\_\-addr} () const }
\label{classPeerHandler_a5a57821f72604916bad2c05c357aa3a5}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} local address as a string in numeric form. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerHandler_a148e2146f5fb67bfc820ef503db308c1}{
string \hyperlink{classPeerHandler_a148e2146f5fb67bfc820ef503db308c1}{get\_\-peer\_\-addr} () const }
\label{classPeerHandler_a148e2146f5fb67bfc820ef503db308c1}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} peer address as a string in numeric form. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerHandler_a41bb020f80fa70b4a592dd93fcd47334}{get\_\-peer\_\-addr} (\hyperlink{classIPv4}{IPv4} \&addr) const 
\item 
uint32\_\-t \hyperlink{classPeerHandler_a4ff24e727238b2058d4c5def9e5c8701}{get\_\-prefix\_\-count} () const 
\item 
\hypertarget{classPeerHandler_a7966e28adb7261e99e9a65be58c0559f}{
virtual \hyperlink{classEventLoop}{EventLoop} \& {\bfseries eventloop} () const }
\label{classPeerHandler_a7966e28adb7261e99e9a65be58c0559f}

\item 
\hypertarget{classPeerHandler_ad335d8af81e1543ec7ad84bf224ca3d8}{
{\footnotesize template$<$$>$ }\\bool {\bfseries add} (const \hyperlink{classUpdatePacket}{UpdatePacket} $\ast$p, \hyperlink{classref__ptr}{ref\_\-ptr}$<$ \hyperlink{classFastPathAttributeList}{FastPathAttributeList}$<$ \hyperlink{classIPv4}{IPv4} $>$ $>$ \&original\_\-pa\_\-list, \hyperlink{classref__ptr}{ref\_\-ptr}$<$ \hyperlink{classFastPathAttributeList}{FastPathAttributeList}$<$ \hyperlink{classIPv4}{IPv4} $>$ $>$ \&pa\_\-list, Safi safi)}
\label{classPeerHandler_ad335d8af81e1543ec7ad84bf224ca3d8}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPeerHandler_ab99321c424d81a2060ec03ab7dc39c5d}{
\hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$ {\bfseries \_\-plumbing\_\-unicast}}
\label{classPeerHandler_ab99321c424d81a2060ec03ab7dc39c5d}

\item 
\hypertarget{classPeerHandler_a977c25609e00857e106ab9e64b948400}{
\hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$ {\bfseries \_\-plumbing\_\-multicast}}
\label{classPeerHandler_a977c25609e00857e106ab9e64b948400}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPeerHandler_a04e677eefdba39fc77508aff7e78fe5a}{
string {\bfseries \_\-peername}}
\label{classPeerHandler_a04e677eefdba39fc77508aff7e78fe5a}

\item 
\hypertarget{classPeerHandler_ac09512e742c720a8068b20f9f7df3a85}{
\hyperlink{classBGPPeer}{BGPPeer} $\ast$ {\bfseries \_\-peer}}
\label{classPeerHandler_ac09512e742c720a8068b20f9f7df3a85}

\item 
\hypertarget{classPeerHandler_a78cf331b04a7edf70f758e4337b0140d}{
bool {\bfseries \_\-peering\_\-is\_\-up}}
\label{classPeerHandler_a78cf331b04a7edf70f758e4337b0140d}

\item 
\hypertarget{classPeerHandler_aff49c0bbe170633ead657395d8061697}{
\hyperlink{classUpdatePacket}{UpdatePacket} $\ast$ {\bfseries \_\-packet}}
\label{classPeerHandler_aff49c0bbe170633ead657395d8061697}

\item 
\hypertarget{classPeerHandler_a5edbcf6b8aa1b2bfa84e73b21322baa1}{
uint32\_\-t {\bfseries \_\-nlri\_\-total}}
\label{classPeerHandler_a5edbcf6b8aa1b2bfa84e73b21322baa1}

\item 
\hypertarget{classPeerHandler_a199dd475439f81aafb6f4c810064d654}{
uint32\_\-t {\bfseries \_\-packets}}
\label{classPeerHandler_a199dd475439f81aafb6f4c810064d654}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
PeerHandler's job is primarily format conversion. But it also servers as a handle to tie together \hyperlink{protocolthe-p}{the} input and output sides of a \hyperlink{classRIB}{RIB}. 

\subsection{Member Function Documentation}
\hypertarget{classPeerHandler_a09e91ded415c1a1b6c8857009cdffbf9}{
\index{PeerHandler@{PeerHandler}!add@{add}}
\index{add@{add}!PeerHandler@{PeerHandler}}
\subsubsection[{add}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool PeerHandler::add (
\begin{DoxyParamCaption}
\item[{const {\bf UpdatePacket} $\ast$}]{p, }
\item[{{\bf ref\_\-ptr}$<$ {\bf FastPathAttributeList}$<$ {\bf IPv4} $>$ $>$ \&}]{original\_\-pa\_\-list, }
\item[{{\bf ref\_\-ptr}$<$ {\bf FastPathAttributeList}$<$ A $>$ $>$ \&}]{pa\_\-list, }
\item[{Safi}]{safi}
\end{DoxyParamCaption}
)}}
\label{classPeerHandler_a09e91ded415c1a1b6c8857009cdffbf9}


Given an update packet find all \hyperlink{protocolthe-p}{the} NLRIs with $<$AFI,SAFI$>$ specified and inject one by one into \hyperlink{protocolthe-p}{the} plumbing. 


\begin{DoxyParams}{Parameters}
{\em p} & -\/ packet to tease apart \\
\hline
{\em safi} & -\/ Subsequent address family identifier\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if an $<$AFI,SAFI$>$ was found. 
\end{DoxyReturn}
\hypertarget{classPeerHandler_a41bb020f80fa70b4a592dd93fcd47334}{
\index{PeerHandler@{PeerHandler}!get\_\-peer\_\-addr@{get\_\-peer\_\-addr}}
\index{get\_\-peer\_\-addr@{get\_\-peer\_\-addr}!PeerHandler@{PeerHandler}}
\subsubsection[{get\_\-peer\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}bool PeerHandler::get\_\-peer\_\-addr (
\begin{DoxyParamCaption}
\item[{{\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPeerHandler_a41bb020f80fa70b4a592dd93fcd47334}

\begin{DoxyParams}{Parameters}
{\em addr} & fill in \hyperlink{protocolthe-p}{the} address if this is \hyperlink{classIPv4}{IPv4}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} peer address is \hyperlink{classIPv4}{IPv4}. 
\end{DoxyReturn}
\hypertarget{classPeerHandler_a4ff24e727238b2058d4c5def9e5c8701}{
\index{PeerHandler@{PeerHandler}!get\_\-prefix\_\-count@{get\_\-prefix\_\-count}}
\index{get\_\-prefix\_\-count@{get\_\-prefix\_\-count}!PeerHandler@{PeerHandler}}
\subsubsection[{get\_\-prefix\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t PeerHandler::get\_\-prefix\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classPeerHandler_a4ff24e727238b2058d4c5def9e5c8701}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of prefixes in \hyperlink{protocolthe-p}{the} RIB-\/IN. 
\end{DoxyReturn}
\hypertarget{classPeerHandler_a9d5bd23d01841a1e43075d06e5996e32}{
\index{PeerHandler@{PeerHandler}!get\_\-unique\_\-id@{get\_\-unique\_\-id}}
\index{get\_\-unique\_\-id@{get\_\-unique\_\-id}!PeerHandler@{PeerHandler}}
\subsubsection[{get\_\-unique\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}virtual uint32\_\-t PeerHandler::get\_\-unique\_\-id (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classPeerHandler_a9d5bd23d01841a1e43075d06e5996e32}
\begin{DoxyReturn}{Returns}
an ID that is unique per peer for use in decision. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classRibIpcHandler_a30d24fc62bfb09506ede9a375dc52336}{RibIpcHandler}, and \hyperlink{classAggregationHandler_a45d1fdc93c50b0afd46e75afb02e6edd}{AggregationHandler}.

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


Reimplemented in \hyperlink{classRibIpcHandler_ad16a35875383116b64a90eb43b7afb88}{RibIpcHandler}.

\hypertarget{classPeerHandler_a6b4ddea35888386041453ed5df0fe09e}{
\index{PeerHandler@{PeerHandler}!neighbour\_\-address@{neighbour\_\-address}}
\index{neighbour\_\-address@{neighbour\_\-address}!PeerHandler@{PeerHandler}}
\subsubsection[{neighbour\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t PeerHandler::neighbour\_\-address (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPeerHandler_a6b4ddea35888386041453ed5df0fe09e}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} neighbours IP address an as integer for use by decision. 
\end{DoxyReturn}
\hypertarget{classPeerHandler_a901f0acb289e4fd0416ed6de5fdda5b2}{
\index{PeerHandler@{PeerHandler}!originate\_\-route\_\-handler@{originate\_\-route\_\-handler}}
\index{originate\_\-route\_\-handler@{originate\_\-route\_\-handler}!PeerHandler@{PeerHandler}}
\subsubsection[{originate\_\-route\_\-handler}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool PeerHandler::originate\_\-route\_\-handler (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classPeerHandler_a901f0acb289e4fd0416ed6de5fdda5b2}
\begin{DoxyReturn}{Returns}
true if this is \hyperlink{protocolthe-p}{the} originate route handler. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classRibIpcHandler_a3702fdb3e15f87a147dba5c65c8d557d}{RibIpcHandler}, and \hyperlink{classAggregationHandler_ab9bf0c0a586faec5a67c1a7349f2c280}{AggregationHandler}.

\hypertarget{classPeerHandler_a14b07f1bc9cab8b45142a21d63b12e1c}{
\index{PeerHandler@{PeerHandler}!withdraw@{withdraw}}
\index{withdraw@{withdraw}!PeerHandler@{PeerHandler}}
\subsubsection[{withdraw}]{\setlength{\rightskip}{0pt plus 5cm}bool PeerHandler::withdraw$<$ {\bf IPv4} $>$ (
\begin{DoxyParamCaption}
\item[{const {\bf UpdatePacket} $\ast$}]{p, }
\item[{{\bf ref\_\-ptr}$<$ {\bf FastPathAttributeList}$<$ {\bf IPv4} $>$ $>$ \&}]{original\_\-pa\_\-list, }
\item[{Safi}]{safi}
\end{DoxyParamCaption}
)}}
\label{classPeerHandler_a14b07f1bc9cab8b45142a21d63b12e1c}


Given an update packet find all \hyperlink{protocolthe-p}{the} WITHDRAWs with $<$AFI,SAFI$>$ specified and inject one by on into \hyperlink{protocolthe-p}{the} plumbing. 


\begin{DoxyParams}{Parameters}
{\em p} & -\/ packet to tease apart \\
\hline
{\em safi} & -\/ Subsequent address family identifier\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if an $<$AFI,SAFI$>$ was found. 
\end{DoxyReturn}


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