\hypertarget{classIfTreeVif}{
\section{IfTreeVif Class Reference}
\label{classIfTreeVif}\index{IfTreeVif@{IfTreeVif}}
}


FEA class for virtual (logical) interface state.  




{\ttfamily \#include $<$iftree.hh$>$}

Inheritance diagram for IfTreeVif:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classIfTreeVif}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfTreeVif_a629e6c68f921ec1f22610a91377db0de}{
typedef map$<$ \hyperlink{classIPv4}{IPv4}, \hyperlink{classIfTreeAddr4}{IfTreeAddr4} $\ast$ $>$ {\bfseries IPv4Map}}
\label{classIfTreeVif_a629e6c68f921ec1f22610a91377db0de}

\item 
\hypertarget{classIfTreeVif_aa2f533e8ddb1746580cd598e31116e45}{
typedef map$<$ \hyperlink{classIPv6}{IPv6}, \hyperlink{classIfTreeAddr6}{IfTreeAddr6} $\ast$ $>$ {\bfseries IPv6Map}}
\label{classIfTreeVif_aa2f533e8ddb1746580cd598e31116e45}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfTreeVif_ad77353ee980c4099078a057effb95251}{
{\bfseries IfTreeVif} (\hyperlink{classIfTreeInterface}{IfTreeInterface} \&iface, const string \&vifname)}
\label{classIfTreeVif_ad77353ee980c4099078a057effb95251}

\item 
\hypertarget{classIfTreeVif_abbccce7e3e9029cc809da05894aa5b6f}{
\hyperlink{classIfTree}{IfTree} \& {\bfseries iftree} ()}
\label{classIfTreeVif_abbccce7e3e9029cc809da05894aa5b6f}

\item 
\hypertarget{classIfTreeVif_a974c1fbe8610249bdefb430b673a2467}{
const string \& {\bfseries ifname} () const }
\label{classIfTreeVif_a974c1fbe8610249bdefb430b673a2467}

\item 
\hypertarget{classIfTreeVif_aa8a286eb7791e1498cdb266f237e7068}{
const string \& {\bfseries vifname} () const }
\label{classIfTreeVif_aa8a286eb7791e1498cdb266f237e7068}

\item 
\hypertarget{classIfTreeVif_a47c85dbc4187c682d0e4a44e517ae64f}{
uint32\_\-t {\bfseries pif\_\-index} () const }
\label{classIfTreeVif_a47c85dbc4187c682d0e4a44e517ae64f}

\item 
\hypertarget{classIfTreeVif_a0e6a05424147a730147be3738196296b}{
void {\bfseries set\_\-pif\_\-index} (uint32\_\-t v)}
\label{classIfTreeVif_a0e6a05424147a730147be3738196296b}

\item 
\hypertarget{classIfTreeVif_aebc58470816c3c913e6465931194526f}{
uint32\_\-t {\bfseries vif\_\-index} () const }
\label{classIfTreeVif_aebc58470816c3c913e6465931194526f}

\item 
\hypertarget{classIfTreeVif_a66ad3e1bdbfc7c089ec1baa55b8af61b}{
void {\bfseries set\_\-vif\_\-index} (uint32\_\-t v)}
\label{classIfTreeVif_a66ad3e1bdbfc7c089ec1baa55b8af61b}

\item 
\hypertarget{classIfTreeVif_aba4aaafaa861413166476864a8e3477b}{
bool {\bfseries enabled} () const }
\label{classIfTreeVif_aba4aaafaa861413166476864a8e3477b}

\item 
\hypertarget{classIfTreeVif_adceed0e28997facd60ebd9d2bbe65034}{
bool {\bfseries broadcast} () const }
\label{classIfTreeVif_adceed0e28997facd60ebd9d2bbe65034}

\item 
\hypertarget{classIfTreeVif_ae93cba13b4c9fb72a96a27db284038cb}{
bool {\bfseries loopback} () const }
\label{classIfTreeVif_ae93cba13b4c9fb72a96a27db284038cb}

\item 
\hypertarget{classIfTreeVif_a1c2cd8b083543ea79eed45e31612e1fd}{
bool {\bfseries point\_\-to\_\-point} () const }
\label{classIfTreeVif_a1c2cd8b083543ea79eed45e31612e1fd}

\item 
\hypertarget{classIfTreeVif_a1cd55274e5de0c3df7b17fe0a47e3e73}{
bool {\bfseries multicast} () const }
\label{classIfTreeVif_a1cd55274e5de0c3df7b17fe0a47e3e73}

\item 
\hypertarget{classIfTreeVif_abe0c3e1de5a5f260011d854bc7395e43}{
bool {\bfseries pim\_\-register} () const }
\label{classIfTreeVif_abe0c3e1de5a5f260011d854bc7395e43}

\item 
\hypertarget{classIfTreeVif_afdc37197b623dd823f40baa758292294}{
void {\bfseries set\_\-enabled} (bool en)}
\label{classIfTreeVif_afdc37197b623dd823f40baa758292294}

\item 
\hypertarget{classIfTreeVif_a5284d5e760d3227d67662cbc42987bf3}{
void {\bfseries set\_\-broadcast} (bool v)}
\label{classIfTreeVif_a5284d5e760d3227d67662cbc42987bf3}

\item 
\hypertarget{classIfTreeVif_a9c3d4be87b31340a6fb2e1cdef117841}{
void {\bfseries set\_\-loopback} (bool v)}
\label{classIfTreeVif_a9c3d4be87b31340a6fb2e1cdef117841}

\item 
\hypertarget{classIfTreeVif_a29482eebc8b93b0aac07d8c1e8cecec2}{
void {\bfseries set\_\-point\_\-to\_\-point} (bool v)}
\label{classIfTreeVif_a29482eebc8b93b0aac07d8c1e8cecec2}

\item 
\hypertarget{classIfTreeVif_ac63e432767d1a32a9fc90641b1f98639}{
void {\bfseries set\_\-multicast} (bool v)}
\label{classIfTreeVif_ac63e432767d1a32a9fc90641b1f98639}

\item 
\hypertarget{classIfTreeVif_ab292f576b2c73e69a20ae6ebbcc82d32}{
void {\bfseries set\_\-pim\_\-register} (bool v)}
\label{classIfTreeVif_ab292f576b2c73e69a20ae6ebbcc82d32}

\item 
uint32\_\-t \hyperlink{classIfTreeVif_a13424bfd9f6d81bdf3688bb26e99fabc}{vif\_\-flags} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} system-\/specific vif flags. \item\end{DoxyCompactList}\item 
void \hyperlink{classIfTreeVif_a19555b254e315cdb9db732c159c21772}{set\_\-vif\_\-flags} (uint32\_\-t v)
\begin{DoxyCompactList}\small\item\em \hyperlink{classStore}{Store} \hyperlink{protocolthe-p}{the} system-\/specific vif flags. \item\end{DoxyCompactList}\item 
\hypertarget{classIfTreeVif_acafb95894666983d0c1c5a7e49849592}{
const IPv4Map \& {\bfseries ipv4addrs} () const }
\label{classIfTreeVif_acafb95894666983d0c1c5a7e49849592}

\item 
\hypertarget{classIfTreeVif_a3b907947f435de72fea3b5d71c6b939e}{
IPv4Map \& {\bfseries ipv4addrs} ()}
\label{classIfTreeVif_a3b907947f435de72fea3b5d71c6b939e}

\item 
\hypertarget{classIfTreeVif_a199638fbbccb4497c73739378b011c39}{
const IPv6Map \& {\bfseries ipv6addrs} () const }
\label{classIfTreeVif_a199638fbbccb4497c73739378b011c39}

\item 
\hypertarget{classIfTreeVif_a2d5a394e70b93042f2d69c8eb108adda}{
IPv6Map \& {\bfseries ipv6addrs} ()}
\label{classIfTreeVif_a2d5a394e70b93042f2d69c8eb108adda}

\item 
void \hyperlink{classIfTreeVif_af8bd492343b6dcde767b39d2adac86ba}{copy\_\-recursive\_\-vif} (const \hyperlink{classIfTreeVif}{IfTreeVif} \&other\_\-vif)
\begin{DoxyCompactList}\small\item\em Copy recursively from another vif. \item\end{DoxyCompactList}\item 
void \hyperlink{classIfTreeVif_abdd7819554a51e92e00a552977a87a83}{add\_\-recursive\_\-addr} (const \hyperlink{classIfTreeAddr4}{IfTreeAddr4} \&other\_\-addr, bool mark\_\-state)
\begin{DoxyCompactList}\small\item\em Add recursively a new \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
void \hyperlink{classIfTreeVif_aa66209e0f2ad12d24e2cd3471cdc2c85}{add\_\-recursive\_\-addr} (const \hyperlink{classIfTreeAddr6}{IfTreeAddr6} \&other\_\-addr, bool mark\_\-state)
\begin{DoxyCompactList}\small\item\em Add recursively a new \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
int \hyperlink{classIfTreeVif_a0b20986d8328f3e79bd18803a6ebc196}{add\_\-addr} (const \hyperlink{classIPv4}{IPv4} \&addr)
\begin{DoxyCompactList}\small\item\em Add \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
int \hyperlink{classIfTreeVif_a122a7e421c0c91ed64c39bdbea91969d}{remove\_\-addr} (const \hyperlink{classIPv4}{IPv4} \&addr)
\begin{DoxyCompactList}\small\item\em Mark \hyperlink{classIPv4}{IPv4} address as DELETED. \item\end{DoxyCompactList}\item 
int \hyperlink{classIfTreeVif_a142448ae4099d374f4cc4b4c52711e81}{add\_\-addr} (const \hyperlink{classIPv6}{IPv6} \&addr)
\begin{DoxyCompactList}\small\item\em Add \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
int \hyperlink{classIfTreeVif_a9c643efa45c94675cb9b3652254812d3}{remove\_\-addr} (const \hyperlink{classIPv6}{IPv6} \&addr)
\begin{DoxyCompactList}\small\item\em Mark \hyperlink{classIPv6}{IPv6} address as DELETED. \item\end{DoxyCompactList}\item 
\hyperlink{classIfTreeAddr4}{IfTreeAddr4} $\ast$ \hyperlink{classIfTreeVif_aafab94ac1eddb0c10042970ac2da7a98}{find\_\-addr} (const \hyperlink{classIPv4}{IPv4} \&addr)
\begin{DoxyCompactList}\small\item\em Find an \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
const \hyperlink{classIfTreeAddr4}{IfTreeAddr4} $\ast$ \hyperlink{classIfTreeVif_a41f6d2e53460fc086fb3cc98da73e775}{find\_\-addr} (const \hyperlink{classIPv4}{IPv4} \&addr) const 
\begin{DoxyCompactList}\small\item\em Find a const \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
\hyperlink{classIfTreeAddr6}{IfTreeAddr6} $\ast$ \hyperlink{classIfTreeVif_a11ad469ff35ce08320a97b04ca356abe}{find\_\-addr} (const \hyperlink{classIPv6}{IPv6} \&addr)
\begin{DoxyCompactList}\small\item\em Find an \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
const \hyperlink{classIfTreeAddr6}{IfTreeAddr6} $\ast$ \hyperlink{classIfTreeVif_ad78d815bbc28433e6aab30ffc00659b9}{find\_\-addr} (const \hyperlink{classIPv6}{IPv6} \&addr) const 
\begin{DoxyCompactList}\small\item\em Find a const \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
\hypertarget{classIfTreeVif_a137b49a8d33a1ba27a7aeb17543f3050}{
void \hyperlink{classIfTreeVif_a137b49a8d33a1ba27a7aeb17543f3050}{propagate\_\-flags\_\-to\_\-addresses} ()}
\label{classIfTreeVif_a137b49a8d33a1ba27a7aeb17543f3050}

\begin{DoxyCompactList}\small\item\em Propagate vif flags to \hyperlink{protocolthe-p}{the} addresses. \item\end{DoxyCompactList}\item 
\hypertarget{classIfTreeVif_afc0e7003fa5bf4f4d9966ffdb4cee884}{
void \hyperlink{classIfTreeVif_afc0e7003fa5bf4f4d9966ffdb4cee884}{copy\_\-state} (const \hyperlink{classIfTreeVif}{IfTreeVif} \&o)}
\label{classIfTreeVif_afc0e7003fa5bf4f4d9966ffdb4cee884}

\begin{DoxyCompactList}\small\item\em Copy state of internal variables from another \hyperlink{classIfTreeVif}{IfTreeVif}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIfTreeVif_a99b2a7a96f16650dc96c2fb7fd48f551}{is\_\-same\_\-state} (const \hyperlink{classIfTreeVif}{IfTreeVif} \&o)
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} vif-\/specific internal state is same. \item\end{DoxyCompactList}\item 
\hypertarget{classIfTreeVif_ad0454a6804ee7397d14104a89406b8d1}{
void \hyperlink{classIfTreeVif_ad0454a6804ee7397d14104a89406b8d1}{finalize\_\-state} ()}
\label{classIfTreeVif_ad0454a6804ee7397d14104a89406b8d1}

\begin{DoxyCompactList}\small\item\em Virtual method to be implemented to flush out state associated objects, ie if an object is marked CREATED or CHANGED it should be marked NO\_\-CHANGE, if an object is marked DELETED, it should be removed from \hyperlink{protocolthe-p}{the} relevant container and destructed. \item\end{DoxyCompactList}\item 
\hypertarget{classIfTreeVif_ac27b80947e2e1f7f6458c628f52ccbf9}{
string {\bfseries str} () const }
\label{classIfTreeVif_ac27b80947e2e1f7f6458c628f52ccbf9}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfTreeVif_a1942026f1b9acd7c19b9b934abeccc71}{
\hyperlink{classIfTreeInterface}{IfTreeInterface} \& {\bfseries \_\-iface}}
\label{classIfTreeVif_a1942026f1b9acd7c19b9b934abeccc71}

\item 
\hypertarget{classIfTreeVif_a2f5d222853d1218414853b9224dae16b}{
const string {\bfseries \_\-vifname}}
\label{classIfTreeVif_a2f5d222853d1218414853b9224dae16b}

\item 
\hypertarget{classIfTreeVif_a125fc63a64e4e51197b8074c7c468f81}{
uint32\_\-t {\bfseries \_\-pif\_\-index}}
\label{classIfTreeVif_a125fc63a64e4e51197b8074c7c468f81}

\item 
\hypertarget{classIfTreeVif_a172c7ea187a40a8dc97ca655b8900890}{
uint32\_\-t {\bfseries \_\-vif\_\-index}}
\label{classIfTreeVif_a172c7ea187a40a8dc97ca655b8900890}

\item 
\hypertarget{classIfTreeVif_acfce79803bc1843521d9f34f150f1615}{
bool {\bfseries \_\-enabled}}
\label{classIfTreeVif_acfce79803bc1843521d9f34f150f1615}

\item 
\hypertarget{classIfTreeVif_a9e5f789c1fda14a2c6b5f20ebe3a34e5}{
bool {\bfseries \_\-broadcast}}
\label{classIfTreeVif_a9e5f789c1fda14a2c6b5f20ebe3a34e5}

\item 
\hypertarget{classIfTreeVif_a50f32a069c119534d492748bf65a3135}{
bool {\bfseries \_\-loopback}}
\label{classIfTreeVif_a50f32a069c119534d492748bf65a3135}

\item 
\hypertarget{classIfTreeVif_a0321bf6d7ef750f5ecffe0583016d935}{
bool {\bfseries \_\-point\_\-to\_\-point}}
\label{classIfTreeVif_a0321bf6d7ef750f5ecffe0583016d935}

\item 
\hypertarget{classIfTreeVif_a6c6879bfae5b48080da7236d164eaa66}{
bool {\bfseries \_\-multicast}}
\label{classIfTreeVif_a6c6879bfae5b48080da7236d164eaa66}

\item 
\hypertarget{classIfTreeVif_ac6d2d9a8a6fea027c9eb0237fbaa9459}{
bool {\bfseries \_\-pim\_\-register}}
\label{classIfTreeVif_ac6d2d9a8a6fea027c9eb0237fbaa9459}

\item 
\hypertarget{classIfTreeVif_a6e9e0e716dddfcef1fc67c5a14291ac6}{
uint32\_\-t {\bfseries \_\-vif\_\-flags}}
\label{classIfTreeVif_a6e9e0e716dddfcef1fc67c5a14291ac6}

\item 
\hypertarget{classIfTreeVif_a789404dbc985ad2439e56fef923940af}{
IPv4Map {\bfseries \_\-ipv4addrs}}
\label{classIfTreeVif_a789404dbc985ad2439e56fef923940af}

\item 
\hypertarget{classIfTreeVif_a74be2eccd6efd24a4f3eb364e30a811c}{
IPv6Map {\bfseries \_\-ipv6addrs}}
\label{classIfTreeVif_a74be2eccd6efd24a4f3eb364e30a811c}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
FEA class for virtual (logical) interface state. 

\subsection{Member Function Documentation}
\hypertarget{classIfTreeVif_a0b20986d8328f3e79bd18803a6ebc196}{
\index{IfTreeVif@{IfTreeVif}!add\_\-addr@{add\_\-addr}}
\index{add\_\-addr@{add\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{add\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}int IfTreeVif::add\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_a0b20986d8328f3e79bd18803a6ebc196}


Add \hyperlink{classIPv4}{IPv4} address. 


\begin{DoxyParams}{Parameters}
{\em addr} & address to be added. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_a142448ae4099d374f4cc4b4c52711e81}{
\index{IfTreeVif@{IfTreeVif}!add\_\-addr@{add\_\-addr}}
\index{add\_\-addr@{add\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{add\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}int IfTreeVif::add\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{addr}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_a142448ae4099d374f4cc4b4c52711e81}


Add \hyperlink{classIPv6}{IPv6} address. 


\begin{DoxyParams}{Parameters}
{\em addr} & address to be added. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_abdd7819554a51e92e00a552977a87a83}{
\index{IfTreeVif@{IfTreeVif}!add\_\-recursive\_\-addr@{add\_\-recursive\_\-addr}}
\index{add\_\-recursive\_\-addr@{add\_\-recursive\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{add\_\-recursive\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void IfTreeVif::add\_\-recursive\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IfTreeAddr4} \&}]{other\_\-addr, }
\item[{bool}]{mark\_\-state}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_abdd7819554a51e92e00a552977a87a83}


Add recursively a new \hyperlink{classIPv4}{IPv4} address. 


\begin{DoxyParams}{Parameters}
{\em other\_\-addr} & \hyperlink{protocolthe-p}{the} address to add recursively. \\
\hline
{\em mark\_\-state} & if true, then mark \hyperlink{protocolthe-p}{the} state same as \hyperlink{protocolthe-p}{the} state from \hyperlink{protocolthe-p}{the} other address, otherwise \hyperlink{protocolthe-p}{the} state will be CREATED. \\
\hline
\end{DoxyParams}
\hypertarget{classIfTreeVif_aa66209e0f2ad12d24e2cd3471cdc2c85}{
\index{IfTreeVif@{IfTreeVif}!add\_\-recursive\_\-addr@{add\_\-recursive\_\-addr}}
\index{add\_\-recursive\_\-addr@{add\_\-recursive\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{add\_\-recursive\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void IfTreeVif::add\_\-recursive\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IfTreeAddr6} \&}]{other\_\-addr, }
\item[{bool}]{mark\_\-state}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_aa66209e0f2ad12d24e2cd3471cdc2c85}


Add recursively a new \hyperlink{classIPv6}{IPv6} address. 


\begin{DoxyParams}{Parameters}
{\em other\_\-addr} & \hyperlink{protocolthe-p}{the} address to add recursively. \\
\hline
{\em mark\_\-state} & if true, then mark \hyperlink{protocolthe-p}{the} state same as \hyperlink{protocolthe-p}{the} state from \hyperlink{protocolthe-p}{the} other address, otherwise \hyperlink{protocolthe-p}{the} state will be CREATED. \\
\hline
\end{DoxyParams}
\hypertarget{classIfTreeVif_af8bd492343b6dcde767b39d2adac86ba}{
\index{IfTreeVif@{IfTreeVif}!copy\_\-recursive\_\-vif@{copy\_\-recursive\_\-vif}}
\index{copy\_\-recursive\_\-vif@{copy\_\-recursive\_\-vif}!IfTreeVif@{IfTreeVif}}
\subsubsection[{copy\_\-recursive\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}void IfTreeVif::copy\_\-recursive\_\-vif (
\begin{DoxyParamCaption}
\item[{const {\bf IfTreeVif} \&}]{other\_\-vif}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_af8bd492343b6dcde767b39d2adac86ba}


Copy recursively from another vif. 


\begin{DoxyParams}{Parameters}
{\em other\_\-vif} & \hyperlink{protocolthe-p}{the} vif to copy recursively from. \\
\hline
\end{DoxyParams}
\hypertarget{classIfTreeVif_a41f6d2e53460fc086fb3cc98da73e775}{
\index{IfTreeVif@{IfTreeVif}!find\_\-addr@{find\_\-addr}}
\index{find\_\-addr@{find\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{find\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IfTreeAddr4} $\ast$ IfTreeVif::find\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
) const}}
\label{classIfTreeVif_a41f6d2e53460fc086fb3cc98da73e775}


Find a const \hyperlink{classIPv4}{IPv4} address. 


\begin{DoxyParams}{Parameters}
{\em addr} & \hyperlink{protocolthe-p}{the} address to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a const pointer to \hyperlink{protocolthe-p}{the} vif (\hyperlink{classIfTreeAddr4}{IfTreeAddr4}) or NULL if not found. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_a11ad469ff35ce08320a97b04ca356abe}{
\index{IfTreeVif@{IfTreeVif}!find\_\-addr@{find\_\-addr}}
\index{find\_\-addr@{find\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{find\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IfTreeAddr6} $\ast$ IfTreeVif::find\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{addr}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_a11ad469ff35ce08320a97b04ca356abe}


Find an \hyperlink{classIPv6}{IPv6} address. 


\begin{DoxyParams}{Parameters}
{\em addr} & \hyperlink{protocolthe-p}{the} address to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} vif (\hyperlink{classIfTreeAddr6}{IfTreeAddr6}) or NULL if not found. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_aafab94ac1eddb0c10042970ac2da7a98}{
\index{IfTreeVif@{IfTreeVif}!find\_\-addr@{find\_\-addr}}
\index{find\_\-addr@{find\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{find\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IfTreeAddr4} $\ast$ IfTreeVif::find\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_aafab94ac1eddb0c10042970ac2da7a98}


Find an \hyperlink{classIPv4}{IPv4} address. 


\begin{DoxyParams}{Parameters}
{\em addr} & \hyperlink{protocolthe-p}{the} address to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} vif (\hyperlink{classIfTreeAddr4}{IfTreeAddr4}) or NULL if not found. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_ad78d815bbc28433e6aab30ffc00659b9}{
\index{IfTreeVif@{IfTreeVif}!find\_\-addr@{find\_\-addr}}
\index{find\_\-addr@{find\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{find\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IfTreeAddr6} $\ast$ IfTreeVif::find\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{addr}
\end{DoxyParamCaption}
) const}}
\label{classIfTreeVif_ad78d815bbc28433e6aab30ffc00659b9}


Find a const \hyperlink{classIPv6}{IPv6} address. 


\begin{DoxyParams}{Parameters}
{\em addr} & \hyperlink{protocolthe-p}{the} address to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} vif (\hyperlink{classIfTreeAddr6}{IfTreeAddr6}) or NULL if not found. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_a99b2a7a96f16650dc96c2fb7fd48f551}{
\index{IfTreeVif@{IfTreeVif}!is\_\-same\_\-state@{is\_\-same\_\-state}}
\index{is\_\-same\_\-state@{is\_\-same\_\-state}!IfTreeVif@{IfTreeVif}}
\subsubsection[{is\_\-same\_\-state}]{\setlength{\rightskip}{0pt plus 5cm}bool IfTreeVif::is\_\-same\_\-state (
\begin{DoxyParamCaption}
\item[{const {\bf IfTreeVif} \&}]{o}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIfTreeVif_a99b2a7a96f16650dc96c2fb7fd48f551}


Test if \hyperlink{protocolthe-p}{the} vif-\/specific internal state is same. 


\begin{DoxyParams}{Parameters}
{\em o} & \hyperlink{protocolthe-p}{the} \hyperlink{classIfTreeVif}{IfTreeVif} to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} vif-\/specific internal state is same. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_a9c643efa45c94675cb9b3652254812d3}{
\index{IfTreeVif@{IfTreeVif}!remove\_\-addr@{remove\_\-addr}}
\index{remove\_\-addr@{remove\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{remove\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}int IfTreeVif::remove\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv6} \&}]{addr}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_a9c643efa45c94675cb9b3652254812d3}


Mark \hyperlink{classIPv6}{IPv6} address as DELETED. 

Deletion occurs when finalize\_\-state is called.


\begin{DoxyParams}{Parameters}
{\em addr} & address to labelled. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_a122a7e421c0c91ed64c39bdbea91969d}{
\index{IfTreeVif@{IfTreeVif}!remove\_\-addr@{remove\_\-addr}}
\index{remove\_\-addr@{remove\_\-addr}!IfTreeVif@{IfTreeVif}}
\subsubsection[{remove\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}int IfTreeVif::remove\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
)}}
\label{classIfTreeVif_a122a7e421c0c91ed64c39bdbea91969d}


Mark \hyperlink{classIPv4}{IPv4} address as DELETED. 

Deletion occurs when finalize\_\-state is called.


\begin{DoxyParams}{Parameters}
{\em addr} & address to labelled. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classIfTreeVif_a19555b254e315cdb9db732c159c21772}{
\index{IfTreeVif@{IfTreeVif}!set\_\-vif\_\-flags@{set\_\-vif\_\-flags}}
\index{set\_\-vif\_\-flags@{set\_\-vif\_\-flags}!IfTreeVif@{IfTreeVif}}
\subsubsection[{set\_\-vif\_\-flags}]{\setlength{\rightskip}{0pt plus 5cm}void IfTreeVif::set\_\-vif\_\-flags (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIfTreeVif_a19555b254e315cdb9db732c159c21772}


\hyperlink{classStore}{Store} \hyperlink{protocolthe-p}{the} system-\/specific vif flags. 

Typically, this value is read from \hyperlink{protocolthe-p}{the} underlying system, and is used only for internal purpose.


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} system-\/specific vif flags to store. \\
\hline
\end{DoxyParams}
\hypertarget{classIfTreeVif_a13424bfd9f6d81bdf3688bb26e99fabc}{
\index{IfTreeVif@{IfTreeVif}!vif\_\-flags@{vif\_\-flags}}
\index{vif\_\-flags@{vif\_\-flags}!IfTreeVif@{IfTreeVif}}
\subsubsection[{vif\_\-flags}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IfTreeVif::vif\_\-flags (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIfTreeVif_a13424bfd9f6d81bdf3688bb26e99fabc}


Get \hyperlink{protocolthe-p}{the} system-\/specific vif flags. 

Typically, this value is read from \hyperlink{protocolthe-p}{the} underlying system, and is used only for internal purpose.

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} system-\/specific vif flags. 
\end{DoxyReturn}


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