\hypertarget{classPolicyConnectedTable}{
\section{PolicyConnectedTable$<$ A $>$ Class Template Reference}
\label{classPolicyConnectedTable}\index{PolicyConnectedTable@{PolicyConnectedTable}}
}


This table will filter connected routes.  




{\ttfamily \#include $<$rt\_\-tab\_\-pol\_\-conn.hh$>$}

Inheritance diagram for PolicyConnectedTable$<$ A $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classPolicyConnectedTable}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classPolicyConnectedTable_a3bf6c2dc11dad951726e8b47f4ff9348}{PolicyConnectedTable} (\hyperlink{classRouteTable}{RouteTable}$<$ A $>$ $\ast$parent, \hyperlink{classPolicyFilters}{PolicyFilters} \&pfs)
\item 
\hypertarget{classPolicyConnectedTable_a2e69965ebe22e06aeaa9b79d7893b5bf}{
int {\bfseries add\_\-route} (const \hyperlink{classIPRouteEntry}{IPRouteEntry}$<$ A $>$ \&route, \hyperlink{classRouteTable}{RouteTable}$<$ A $>$ $\ast$caller)}
\label{classPolicyConnectedTable_a2e69965ebe22e06aeaa9b79d7893b5bf}

\item 
\hypertarget{classPolicyConnectedTable_a6ec558db63b60d1cf2d13aefe503a199}{
int {\bfseries delete\_\-route} (const \hyperlink{classIPRouteEntry}{IPRouteEntry}$<$ A $>$ $\ast$route, \hyperlink{classRouteTable}{RouteTable}$<$ A $>$ $\ast$caller)}
\label{classPolicyConnectedTable_a6ec558db63b60d1cf2d13aefe503a199}

\item 
\hypertarget{classPolicyConnectedTable_a0375dceb89beb201741a867f3684dfb9}{
const \hyperlink{classIPRouteEntry}{IPRouteEntry}$<$ A $>$ $\ast$ {\bfseries lookup\_\-route} (const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net) const }
\label{classPolicyConnectedTable_a0375dceb89beb201741a867f3684dfb9}

\item 
\hypertarget{classPolicyConnectedTable_a6b8a1182b6280bc9bc9b69cd7b6c8ca1}{
const \hyperlink{classIPRouteEntry}{IPRouteEntry}$<$ A $>$ $\ast$ {\bfseries lookup\_\-route} (const A \&addr) const }
\label{classPolicyConnectedTable_a6b8a1182b6280bc9bc9b69cd7b6c8ca1}

\item 
\hypertarget{classPolicyConnectedTable_a96c4b26ac6d8157d6c71221f5acd838c}{
\hyperlink{classRouteRange}{RouteRange}$<$ A $>$ $\ast$ {\bfseries lookup\_\-route\_\-range} (const A \&addr) const }
\label{classPolicyConnectedTable_a96c4b26ac6d8157d6c71221f5acd838c}

\item 
\hypertarget{classPolicyConnectedTable_a739e5b3b2d50b1bba673bc9f5e1f9108}{
TableType {\bfseries type} () const }
\label{classPolicyConnectedTable_a739e5b3b2d50b1bba673bc9f5e1f9108}

\item 
\hypertarget{classPolicyConnectedTable_a1e672cb784facb51d553af357fff5511}{
\hyperlink{classRouteTable}{RouteTable}$<$ A $>$ $\ast$ {\bfseries parent} ()}
\label{classPolicyConnectedTable_a1e672cb784facb51d553af357fff5511}

\item 
\hypertarget{classPolicyConnectedTable_a14ad01cc71cd7fd64ebbb32ab6985adf}{
void {\bfseries replumb} (\hyperlink{classRouteTable}{RouteTable}$<$ A $>$ $\ast$old\_\-parent, \hyperlink{classRouteTable}{RouteTable}$<$ A $>$ $\ast$new\_\-parent)}
\label{classPolicyConnectedTable_a14ad01cc71cd7fd64ebbb32ab6985adf}

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

\item 
\hypertarget{classPolicyConnectedTable_a3d423fa02b44ee4702434990a44173d3}{
void \hyperlink{classPolicyConnectedTable_a3d423fa02b44ee4702434990a44173d3}{push\_\-routes} ()}
\label{classPolicyConnectedTable_a3d423fa02b44ee4702434990a44173d3}

\begin{DoxyCompactList}\small\item\em \hyperlink{classPush}{Push} all \hyperlink{protocolthe-p}{the} routes through \hyperlink{protocolthe-p}{the} filter again. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPolicyConnectedTable_a4be27a674c0154b5f835f9aa59ab0016}{
static const string {\bfseries table\_\-name} = \char`\"{}policy-\/connected-\/table\char`\"{}}
\label{classPolicyConnectedTable_a4be27a674c0154b5f835f9aa59ab0016}

\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPolicyConnectedTable_a3ca90c288018478d7a3bef1b183b5172}{
typedef \hyperlink{classTrie}{Trie}$<$ A, const \hyperlink{classIPRouteEntry}{IPRouteEntry}$<$ A $>$ $\ast$ $>$ {\bfseries RouteContainer}}
\label{classPolicyConnectedTable_a3ca90c288018478d7a3bef1b183b5172}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classPolicyConnectedTable_a8521985226a8d3ce78af920a9e92044d}{do\_\-filtering} (\hyperlink{classIPRouteEntry}{IPRouteEntry}$<$ A $>$ \&r)
\begin{DoxyCompactList}\small\item\em \hyperlink{classRoute}{Route} may be modified \mbox{[}its policy tags\mbox{]}. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPolicyConnectedTable_a8363814332eecead9b2fc30149ed46ea}{
\hyperlink{classRouteTable}{RouteTable}$<$ A $>$ $\ast$ {\bfseries \_\-parent}}
\label{classPolicyConnectedTable_a8363814332eecead9b2fc30149ed46ea}

\item 
\hypertarget{classPolicyConnectedTable_af35e6c213b803bbe989d8394e66eac4b}{
\hyperlink{classTrie}{RouteContainer} {\bfseries \_\-route\_\-table}}
\label{classPolicyConnectedTable_af35e6c213b803bbe989d8394e66eac4b}

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

\end{DoxyCompactItemize}


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

This table will filter connected routes. This table stores all routes it receives from \hyperlink{protocolthe-p}{the} origin table. It then filters them modifying only policytags. It has \hyperlink{protocolthe-p}{the} ability to push routes through \hyperlink{protocolthe-p}{the} filter again, causing only policytags on routes to be updated \mbox{[}no route deletion / replacement\mbox{]}. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classPolicyConnectedTable_a3bf6c2dc11dad951726e8b47f4ff9348}{
\index{PolicyConnectedTable@{PolicyConnectedTable}!PolicyConnectedTable@{PolicyConnectedTable}}
\index{PolicyConnectedTable@{PolicyConnectedTable}!PolicyConnectedTable@{PolicyConnectedTable}}
\subsubsection[{PolicyConnectedTable}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A $>$ {\bf PolicyConnectedTable}$<$ A $>$::{\bf PolicyConnectedTable} (
\begin{DoxyParamCaption}
\item[{{\bf RouteTable}$<$ A $>$ $\ast$}]{parent, }
\item[{{\bf PolicyFilters} \&}]{pfs}
\end{DoxyParamCaption}
)}}
\label{classPolicyConnectedTable_a3bf6c2dc11dad951726e8b47f4ff9348}

\begin{DoxyParams}{Parameters}
{\em parent} & parent table. \\
\hline
{\em pfs} & \hyperlink{protocolthe-p}{the} connected routes policy filters. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classPolicyConnectedTable_a8521985226a8d3ce78af920a9e92044d}{
\index{PolicyConnectedTable@{PolicyConnectedTable}!do\_\-filtering@{do\_\-filtering}}
\index{do\_\-filtering@{do\_\-filtering}!PolicyConnectedTable@{PolicyConnectedTable}}
\subsubsection[{do\_\-filtering}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class A $>$ void {\bf PolicyConnectedTable}$<$ A $>$::do\_\-filtering (
\begin{DoxyParamCaption}
\item[{{\bf IPRouteEntry}$<$ A $>$ \&}]{r}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classPolicyConnectedTable_a8521985226a8d3ce78af920a9e92044d}


\hyperlink{classRoute}{Route} may be modified \mbox{[}its policy tags\mbox{]}. 

No need to check for route being accepted / rejected -\/-\/ it is always accepted \mbox{[}only source match filtering\mbox{]}.


\begin{DoxyParams}{Parameters}
{\em r} & route to filter. \\
\hline
\end{DoxyParams}


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