\hypertarget{classFilterVersion}{
\section{FilterVersion$<$ A $>$ Class Template Reference}
\label{classFilterVersion}\index{FilterVersion@{FilterVersion}}
}


specific version of a static route filter  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFilterVersion_a1a21a8bf41be322adbb2c1081e9e974d}{
{\bfseries FilterVersion} (\hyperlink{classNextHopResolver}{NextHopResolver}$<$ A $>$ \&next\_\-hop\_\-resolver)}
\label{classFilterVersion_a1a21a8bf41be322adbb2c1081e9e974d}

\item 
\hypertarget{classFilterVersion_ae5efdeb5ea3311700a1e94f15b92b176}{
void {\bfseries set\_\-genid} (uint32\_\-t genid)}
\label{classFilterVersion_ae5efdeb5ea3311700a1e94f15b92b176}

\item 
\hypertarget{classFilterVersion_a810670fc45a0767a4f32f00f7fb7cbdb}{
int {\bfseries add\_\-aggregation\_\-filter} (bool is\_\-ibgp)}
\label{classFilterVersion_a810670fc45a0767a4f32f00f7fb7cbdb}

\item 
\hypertarget{classFilterVersion_a89119840e82fad5f383a29a8f62c5778}{
int {\bfseries add\_\-simple\_\-AS\_\-filter} (const \hyperlink{classAsNum}{AsNum} \&asn)}
\label{classFilterVersion_a89119840e82fad5f383a29a8f62c5778}

\item 
\hypertarget{classFilterVersion_ab3cca928fa957341bd5ca69ec5dc9f09}{
int {\bfseries add\_\-route\_\-reflector\_\-input\_\-filter} (\hyperlink{classIPv4}{IPv4} bgp\_\-id, \hyperlink{classIPv4}{IPv4} cluster\_\-id)}
\label{classFilterVersion_ab3cca928fa957341bd5ca69ec5dc9f09}

\item 
\hypertarget{classFilterVersion_ab42acc9bc4b9dd36c85cb0b115cae3c4}{
int {\bfseries add\_\-AS\_\-prepend\_\-filter} (const \hyperlink{classAsNum}{AsNum} \&asn, bool is\_\-confederation\_\-peer)}
\label{classFilterVersion_ab42acc9bc4b9dd36c85cb0b115cae3c4}

\item 
\hypertarget{classFilterVersion_a76d6af3dd9ff7ab5a6c19683c43167f8}{
int {\bfseries add\_\-nexthop\_\-rewrite\_\-filter} (const A \&nexthop, bool directly\_\-connected, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&subnet)}
\label{classFilterVersion_a76d6af3dd9ff7ab5a6c19683c43167f8}

\item 
\hypertarget{classFilterVersion_a0dbad0e5fb85c834f4858ccfc09bd863}{
int {\bfseries add\_\-nexthop\_\-peer\_\-check\_\-filter} (const A \&nexthop, const A \&peer\_\-address)}
\label{classFilterVersion_a0dbad0e5fb85c834f4858ccfc09bd863}

\item 
\hypertarget{classFilterVersion_a6c8b67fa96b9013bf7359c8fff5f4987}{
int {\bfseries add\_\-ibgp\_\-loop\_\-filter} ()}
\label{classFilterVersion_a6c8b67fa96b9013bf7359c8fff5f4987}

\item 
\hypertarget{classFilterVersion_ac0e4891e6d8af49291dfb30db36dac86}{
int {\bfseries add\_\-route\_\-reflector\_\-ibgp\_\-loop\_\-filter} (bool client, \hyperlink{classIPv4}{IPv4} bgp\_\-id, \hyperlink{classIPv4}{IPv4} cluster\_\-id)}
\label{classFilterVersion_ac0e4891e6d8af49291dfb30db36dac86}

\item 
\hypertarget{classFilterVersion_ab1f05add366a5d133ee64dde210776c0}{
int {\bfseries add\_\-route\_\-reflector\_\-purge\_\-filter} ()}
\label{classFilterVersion_ab1f05add366a5d133ee64dde210776c0}

\item 
\hypertarget{classFilterVersion_a7010ff58de45fc75fb0b67a3e09ec853}{
int {\bfseries add\_\-localpref\_\-insertion\_\-filter} (uint32\_\-t default\_\-local\_\-pref)}
\label{classFilterVersion_a7010ff58de45fc75fb0b67a3e09ec853}

\item 
\hypertarget{classFilterVersion_aa0d24ce709cdd4060495b25a70fd2c42}{
int {\bfseries add\_\-localpref\_\-removal\_\-filter} ()}
\label{classFilterVersion_aa0d24ce709cdd4060495b25a70fd2c42}

\item 
\hypertarget{classFilterVersion_a1ef9234f6d9e109b1d78459529df0784}{
int {\bfseries add\_\-med\_\-insertion\_\-filter} ()}
\label{classFilterVersion_a1ef9234f6d9e109b1d78459529df0784}

\item 
\hypertarget{classFilterVersion_a894d308a3b3dbb2aba109fcb630b03cc}{
int {\bfseries add\_\-med\_\-removal\_\-filter} ()}
\label{classFilterVersion_a894d308a3b3dbb2aba109fcb630b03cc}

\item 
\hypertarget{classFilterVersion_a4ff9fe430004ba901d6dd58180a03d08}{
int {\bfseries add\_\-known\_\-community\_\-filter} (PeerType peer\_\-type)}
\label{classFilterVersion_a4ff9fe430004ba901d6dd58180a03d08}

\item 
\hypertarget{classFilterVersion_a4be151a36ca0eac1122df6840e2ad045}{
int {\bfseries add\_\-unknown\_\-filter} ()}
\label{classFilterVersion_a4be151a36ca0eac1122df6840e2ad045}

\item 
\hypertarget{classFilterVersion_a8a05d3dfdc91ee4d41124cc192b63f9b}{
int {\bfseries add\_\-originate\_\-route\_\-filter} (const \hyperlink{classAsNum}{AsNum} \&asn, PeerType peer\_\-type)}
\label{classFilterVersion_a8a05d3dfdc91ee4d41124cc192b63f9b}

\item 
\hypertarget{classFilterVersion_a85638cd943608b4994b18fb4b7f41371}{
bool {\bfseries apply\_\-filters} (\hyperlink{classInternalMessage}{InternalMessage}$<$ A $>$ \&rtmsg, int ref\_\-change)}
\label{classFilterVersion_a85638cd943608b4994b18fb4b7f41371}

\item 
\hypertarget{classFilterVersion_aaaaf21633bf1d7e0ad82b04a89c6b593}{
int {\bfseries ref\_\-count} () const }
\label{classFilterVersion_aaaaf21633bf1d7e0ad82b04a89c6b593}

\item 
\hypertarget{classFilterVersion_a3e802849b5fd97c7746c4122d0a73d13}{
uint32\_\-t {\bfseries genid} () const }
\label{classFilterVersion_a3e802849b5fd97c7746c4122d0a73d13}

\item 
\hypertarget{classFilterVersion_ad431c9377d8eeb8a82b1527cb27b0571}{
bool {\bfseries used} () const }
\label{classFilterVersion_ad431c9377d8eeb8a82b1527cb27b0571}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classFilterVersion_aeb41c0a835dd575e7e02771c196e0492}{
uint32\_\-t {\bfseries \_\-genid}}
\label{classFilterVersion_aeb41c0a835dd575e7e02771c196e0492}

\item 
\hypertarget{classFilterVersion_a9b25b99abb29818413370a98d86ad94f}{
bool {\bfseries \_\-used}}
\label{classFilterVersion_a9b25b99abb29818413370a98d86ad94f}

\item 
\hypertarget{classFilterVersion_ad77ef37e3656ec2631c4747b3cc6f511}{
list$<$ \hyperlink{classBGPRouteFilter}{BGPRouteFilter}$<$ A $>$ $\ast$ $>$ {\bfseries \_\-filters}}
\label{classFilterVersion_ad77ef37e3656ec2631c4747b3cc6f511}

\item 
\hypertarget{classFilterVersion_a583b6892fa8e9ce4733cbd894ee587c5}{
int {\bfseries \_\-ref\_\-count}}
\label{classFilterVersion_a583b6892fa8e9ce4733cbd894ee587c5}

\item 
\hypertarget{classFilterVersion_a4ac2845b3a500954d3d5444c998887c9}{
\hyperlink{classNextHopResolver}{NextHopResolver}$<$ A $>$ \& {\bfseries \_\-next\_\-hop\_\-resolver}}
\label{classFilterVersion_a4ac2845b3a500954d3d5444c998887c9}

\end{DoxyCompactItemize}


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

specific version of a static route filter When a peering is reconfigured, we need to change \hyperlink{protocolthe-p}{the} filter, but still maintain consistency for downstream tables. We keep \hyperlink{protocolthe-p}{the} old filter around until there are no more routes that need it, and only then delete it. \hyperlink{classFilterVersion}{FilterVersion} holds a specific version of a static route filter bank. 

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