\hypertarget{classDampingTable}{
\section{DampingTable$<$ A $>$ Class Template Reference}
\label{classDampingTable}\index{DampingTable@{DampingTable}}
}


Manage \hyperlink{protocolthe-p}{the} damping of routes.  




{\ttfamily \#include $<$route\_\-table\_\-damping.hh$>$}

Inheritance diagram for DampingTable$<$ A $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classDampingTable}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classDampingTable_ad163c8fd1155e4742e4a639aaae38e72}{
{\bfseries DampingTable} (string tablename, Safi safi, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$parent, const \hyperlink{classPeerHandler}{PeerHandler} $\ast$peer, \hyperlink{classDamping}{Damping} \&damping)}
\label{classDampingTable_ad163c8fd1155e4742e4a639aaae38e72}

\item 
\hypertarget{classDampingTable_a2d5a0e8a04069e064c2d2ac2be9130bf}{
int {\bfseries add\_\-route} (\hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&rtmsg, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller)}
\label{classDampingTable_a2d5a0e8a04069e064c2d2ac2be9130bf}

\item 
\hypertarget{classDampingTable_a63fe74586089e93b03e17548388053a3}{
int {\bfseries replace\_\-route} (\hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&old\_\-rtmsg, \hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&new\_\-rtmsg, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller)}
\label{classDampingTable_a63fe74586089e93b03e17548388053a3}

\item 
\hypertarget{classDampingTable_a0535101bbafadf6945a76d51161164ed}{
int {\bfseries delete\_\-route} (\hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&rtmsg, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller)}
\label{classDampingTable_a0535101bbafadf6945a76d51161164ed}

\item 
\hypertarget{classDampingTable_a5187a57a60e2565d8742c7dbde022cf1}{
int {\bfseries push} (\hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller)}
\label{classDampingTable_a5187a57a60e2565d8742c7dbde022cf1}

\item 
\hypertarget{classDampingTable_a8038cc9189c1789ef850dc2d606b141c}{
int {\bfseries route\_\-dump} (\hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&rtmsg, \hyperlink{classBGPRouteTable}{BGPRouteTable}$<$ A $>$ $\ast$caller, const \hyperlink{classPeerHandler}{PeerHandler} $\ast$dump\_\-peer)}
\label{classDampingTable_a8038cc9189c1789ef850dc2d606b141c}

\item 
\hypertarget{classDampingTable_a22f3f66ce523f8672d58e1d60577e902}{
const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ A $>$ $\ast$ {\bfseries lookup\_\-route} (const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net, uint32\_\-t \&genid, FPAListRef \&pa\_\-list) const }
\label{classDampingTable_a22f3f66ce523f8672d58e1d60577e902}

\item 
\hypertarget{classDampingTable_ae55be161d55997f71f55c330c9a4973b}{
void {\bfseries route\_\-used} (const \hyperlink{classSubnetRoute}{SubnetRoute}$<$ A $>$ $\ast$route, bool in\_\-use)}
\label{classDampingTable_ae55be161d55997f71f55c330c9a4973b}

\item 
\hypertarget{classDampingTable_a3eb8425517b2d8d9deeda38d8ae674b1}{
RouteTableType {\bfseries type} () const }
\label{classDampingTable_a3eb8425517b2d8d9deeda38d8ae674b1}

\item 
\hypertarget{classDampingTable_a020589ae38ab000481bda2681635b068}{
string {\bfseries str} () const }
\label{classDampingTable_a020589ae38ab000481bda2681635b068}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classDampingTable_a8a93dba8446420aca64fb58857851123}{
bool {\bfseries damping} () const }
\label{classDampingTable_a8a93dba8446420aca64fb58857851123}

\item 
\hypertarget{classDampingTable_a6a4054da599966fd46da66467f70b5dc}{
bool {\bfseries damping\_\-global} () const }
\label{classDampingTable_a6a4054da599966fd46da66467f70b5dc}

\item 
bool \hyperlink{classDampingTable_acb8489620c33188ba7add9b6591e0f76}{update\_\-figure\_\-of\_\-merit} (\hyperlink{classDamp}{Damp} \&damp, const \hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&rtmsg)
\begin{DoxyCompactList}\small\item\em Update \hyperlink{protocolthe-p}{the} figure of merit for this route. \item\end{DoxyCompactList}\item 
\hypertarget{classDampingTable_a1f0946e58b899ea57dbb80c305c901ce}{
bool \hyperlink{classDampingTable_a1f0946e58b899ea57dbb80c305c901ce}{is\_\-this\_\-route\_\-damped} (const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net) const }
\label{classDampingTable_a1f0946e58b899ea57dbb80c305c901ce}

\begin{DoxyCompactList}\small\item\em Is this route being damped. \item\end{DoxyCompactList}\item 
\hypertarget{classDampingTable_afa63ca371a9d589f81cbc99c26cbc5ab}{
void \hyperlink{classDampingTable_afa63ca371a9d589f81cbc99c26cbc5ab}{undamp} (\hyperlink{classIPNet}{IPNet}$<$ A $>$ net)}
\label{classDampingTable_afa63ca371a9d589f81cbc99c26cbc5ab}

\begin{DoxyCompactList}\small\item\em Callback method called to release damped route. \item\end{DoxyCompactList}\item 
\hypertarget{classDampingTable_aadd698ebc4e8d3dfd89bacdef44df1b9}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries eventloop} () const }
\label{classDampingTable_aadd698ebc4e8d3dfd89bacdef44df1b9}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classDampingTable_a7d0fc507919bc4526958c03626dc2a9e}{
const \hyperlink{classPeerHandler}{PeerHandler} $\ast$ {\bfseries \_\-peer}}
\label{classDampingTable_a7d0fc507919bc4526958c03626dc2a9e}

\item 
\hypertarget{classDampingTable_a41a433a71ece34446963092d12794eea}{
\hyperlink{classDamping}{Damping} \& {\bfseries \_\-damping}}
\label{classDampingTable_a41a433a71ece34446963092d12794eea}

\item 
\hypertarget{classDampingTable_a1995b196925fdf57f6f03e2ce79e411b}{
\hyperlink{classTrie}{Trie}$<$ A, \hyperlink{classDamp}{Damp} $>$ {\bfseries \_\-damp}}
\label{classDampingTable_a1995b196925fdf57f6f03e2ce79e411b}

\item 
\hypertarget{classDampingTable_af5a9d612d8771a2e79f448637ac4237e}{
\hyperlink{classRefTrie}{RefTrie}$<$ A, \hyperlink{classDampRoute}{DampRoute}$<$ A $>$ $>$ {\bfseries \_\-damped}}
\label{classDampingTable_af5a9d612d8771a2e79f448637ac4237e}

\item 
\hypertarget{classDampingTable_acd9324622a791a35eea8d69f1bc11b22}{
uint32\_\-t {\bfseries \_\-damp\_\-count}}
\label{classDampingTable_acd9324622a791a35eea8d69f1bc11b22}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class A$>$ class DampingTable$<$ A $>$}

Manage \hyperlink{protocolthe-p}{the} damping of routes. NOTE: If damping was enabled and is then disabled it is possible that some routes may be damped. While damped routes exist \hyperlink{protocolthe-p}{the} damping code is entered, no more routes are damped but routes are only released as \hyperlink{protocolthe-p}{the} timers fire. 

\subsection{Member Function Documentation}
\hypertarget{classDampingTable_acb8489620c33188ba7add9b6591e0f76}{
\index{DampingTable@{DampingTable}!update\_\-figure\_\-of\_\-merit@{update\_\-figure\_\-of\_\-merit}}
\index{update\_\-figure\_\-of\_\-merit@{update\_\-figure\_\-of\_\-merit}!DampingTable@{DampingTable}}
\subsubsection[{update\_\-figure\_\-of\_\-merit}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A $>$ bool {\bf DampingTable}$<$ A $>$::update\_\-figure\_\-of\_\-merit (
\begin{DoxyParamCaption}
\item[{{\bf Damp} \&}]{damp, }
\item[{const {\bf InternalMessage}$<$ A $>$ \&}]{rtmsg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classDampingTable_acb8489620c33188ba7add9b6591e0f76}


Update \hyperlink{protocolthe-p}{the} figure of merit for this route. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} route should be damped. 
\end{DoxyReturn}


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