\hypertarget{classIfTreeInterface}{
\section{IfTreeInterface Class Reference}
\label{classIfTreeInterface}\index{IfTreeInterface@{IfTreeInterface}}
}


FEA class for holding physical interface state.  




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

Inheritance diagram for IfTreeInterface:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classIfTreeInterface}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfTreeInterface_aa41e62abf706b85777e9a9a7c60ff11c}{
typedef map$<$ string, \hyperlink{classIfTreeVif}{IfTreeVif} $\ast$ $>$ {\bfseries VifMap}}
\label{classIfTreeInterface_aa41e62abf706b85777e9a9a7c60ff11c}

\item 
\hypertarget{classIfTreeInterface_aace117060340b575aae124e7288c0e90}{
typedef set$<$ \hyperlink{classMac}{Mac} $>$ {\bfseries MacSet}}
\label{classIfTreeInterface_aace117060340b575aae124e7288c0e90}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfTreeInterface_a218a17caccfdedbbb4b6b4d4bf819b94}{
{\bfseries IfTreeInterface} (\hyperlink{classIfTree}{IfTree} \&iftree, const string \&ifname)}
\label{classIfTreeInterface_a218a17caccfdedbbb4b6b4d4bf819b94}

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

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

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

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

\item 
\hypertarget{classIfTreeInterface_a04d3f25cd56d36cc8c8259f7dc0c9cff}{
virtual int {\bfseries mark} (State st)}
\label{classIfTreeInterface_a04d3f25cd56d36cc8c8259f7dc0c9cff}

\item 
\hypertarget{classIfTreeInterface_aa9d837f3d2a03f72dc70445e6b968931}{
bool {\bfseries cr\_\-by\_\-xorp} () const }
\label{classIfTreeInterface_aa9d837f3d2a03f72dc70445e6b968931}

\item 
\hypertarget{classIfTreeInterface_aeca40778152bb0d5d0a4cc68a93098b9}{
void {\bfseries set\_\-cr\_\-by\_\-xorp} (bool b)}
\label{classIfTreeInterface_aeca40778152bb0d5d0a4cc68a93098b9}

\item 
\hypertarget{classIfTreeInterface_a13aad83999a399f538c953c9d3ac0f2f}{
bool {\bfseries probed\_\-vlan} () const }
\label{classIfTreeInterface_a13aad83999a399f538c953c9d3ac0f2f}

\item 
\hypertarget{classIfTreeInterface_a1ecd809e2370999c95f6c649a74921c6}{
void {\bfseries set\_\-probed\_\-vlan} (bool b)}
\label{classIfTreeInterface_a1ecd809e2370999c95f6c649a74921c6}

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

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

\item 
\hypertarget{classIfTreeInterface_a7205cc66e593cf0992aaeb3c423e3dee}{
uint32\_\-t {\bfseries mtu} () const }
\label{classIfTreeInterface_a7205cc66e593cf0992aaeb3c423e3dee}

\item 
\hypertarget{classIfTreeInterface_aa077483b1afbe5da551d51f78f8178fd}{
void {\bfseries set\_\-mtu} (uint32\_\-t mtu)}
\label{classIfTreeInterface_aa077483b1afbe5da551d51f78f8178fd}

\item 
\hypertarget{classIfTreeInterface_a571b33e29a9071ecb0272cf869e8d9d3}{
const \hyperlink{classMac}{Mac} \& {\bfseries mac} () const }
\label{classIfTreeInterface_a571b33e29a9071ecb0272cf869e8d9d3}

\item 
\hypertarget{classIfTreeInterface_a2139a4129dcb52ce3308fb596992dbd7}{
void {\bfseries set\_\-mac} (const \hyperlink{classMac}{Mac} \&mac)}
\label{classIfTreeInterface_a2139a4129dcb52ce3308fb596992dbd7}

\item 
\hypertarget{classIfTreeInterface_ac1a7f9ac80f7998e0f2e0ea7cbb1c747}{
MacSet \& {\bfseries macs} ()}
\label{classIfTreeInterface_ac1a7f9ac80f7998e0f2e0ea7cbb1c747}

\item 
\hypertarget{classIfTreeInterface_a420d553963d43e44597661ff9f603db7}{
const MacSet \& {\bfseries macs} () const }
\label{classIfTreeInterface_a420d553963d43e44597661ff9f603db7}

\item 
\hypertarget{classIfTreeInterface_a6cdd81c1748a20064f036e9fa573ee93}{
bool {\bfseries no\_\-carrier} () const }
\label{classIfTreeInterface_a6cdd81c1748a20064f036e9fa573ee93}

\item 
\hypertarget{classIfTreeInterface_a6f0f80db9a4c91593375b4b9fb089545}{
void {\bfseries set\_\-no\_\-carrier} (bool v)}
\label{classIfTreeInterface_a6f0f80db9a4c91593375b4b9fb089545}

\item 
\hypertarget{classIfTreeInterface_a5d0df40d2abf553a881f0af987716dd9}{
uint64\_\-t {\bfseries baudrate} () const }
\label{classIfTreeInterface_a5d0df40d2abf553a881f0af987716dd9}

\item 
\hypertarget{classIfTreeInterface_a856f9d8f8f306e53f6c44a7a8e73100b}{
void {\bfseries set\_\-baudrate} (uint64\_\-t v)}
\label{classIfTreeInterface_a856f9d8f8f306e53f6c44a7a8e73100b}

\item 
\hypertarget{classIfTreeInterface_a32672ed0092350afdce2c8b0576653f6}{
const string \& {\bfseries parent\_\-ifname} () const }
\label{classIfTreeInterface_a32672ed0092350afdce2c8b0576653f6}

\item 
\hypertarget{classIfTreeInterface_adf62eee13e0d2357f8cf165995542d59}{
void {\bfseries set\_\-parent\_\-ifname} (string \&v)}
\label{classIfTreeInterface_adf62eee13e0d2357f8cf165995542d59}

\item 
\hypertarget{classIfTreeInterface_aa557da832a8aaba875cd9879ad5ab9c4}{
bool {\bfseries is\_\-vlan} () const }
\label{classIfTreeInterface_aa557da832a8aaba875cd9879ad5ab9c4}

\item 
\hypertarget{classIfTreeInterface_a7f96744882197c14715d0c50209f91b2}{
const string \& {\bfseries iface\_\-type} () const }
\label{classIfTreeInterface_a7f96744882197c14715d0c50209f91b2}

\item 
\hypertarget{classIfTreeInterface_a3b13fe9de33a587016eb25fe0cd726fc}{
void {\bfseries set\_\-iface\_\-type} (string \&v)}
\label{classIfTreeInterface_a3b13fe9de33a587016eb25fe0cd726fc}

\item 
\hypertarget{classIfTreeInterface_a02c16099c54dd18273d1c7f018a8f7cf}{
const string \& {\bfseries vid} () const }
\label{classIfTreeInterface_a02c16099c54dd18273d1c7f018a8f7cf}

\item 
\hypertarget{classIfTreeInterface_a86f4f44e6b559c473a8a2627dd3ddcd8}{
void {\bfseries set\_\-vid} (string \&v)}
\label{classIfTreeInterface_a86f4f44e6b559c473a8a2627dd3ddcd8}

\item 
\hypertarget{classIfTreeInterface_abb1c2108f213e8e7e7f6163de374b095}{
bool {\bfseries discard} () const }
\label{classIfTreeInterface_abb1c2108f213e8e7e7f6163de374b095}

\item 
\hypertarget{classIfTreeInterface_a1933e81df78f031b488c9e82a05ff9e5}{
void {\bfseries set\_\-discard} (bool discard)}
\label{classIfTreeInterface_a1933e81df78f031b488c9e82a05ff9e5}

\item 
\hypertarget{classIfTreeInterface_ac720279e4e01c17384adaeddf258043d}{
bool {\bfseries unreachable} () const }
\label{classIfTreeInterface_ac720279e4e01c17384adaeddf258043d}

\item 
\hypertarget{classIfTreeInterface_abfb72bac437c5c2add50c9f6901f152c}{
void {\bfseries set\_\-unreachable} (bool v)}
\label{classIfTreeInterface_abfb72bac437c5c2add50c9f6901f152c}

\item 
\hypertarget{classIfTreeInterface_a407d0a7b6c60821736c009dd98ed6bc2}{
bool {\bfseries management} () const }
\label{classIfTreeInterface_a407d0a7b6c60821736c009dd98ed6bc2}

\item 
\hypertarget{classIfTreeInterface_a47c5112ec028654c8fca4489622c6e8f}{
void {\bfseries set\_\-management} (bool v)}
\label{classIfTreeInterface_a47c5112ec028654c8fca4489622c6e8f}

\item 
\hypertarget{classIfTreeInterface_ac1860b473a495316f51dd67f853a3bd5}{
bool {\bfseries default\_\-system\_\-config} () const }
\label{classIfTreeInterface_ac1860b473a495316f51dd67f853a3bd5}

\item 
\hypertarget{classIfTreeInterface_a1745f847e7e77fcc73bc3a73f360e3ff}{
void {\bfseries set\_\-default\_\-system\_\-config} (bool v)}
\label{classIfTreeInterface_a1745f847e7e77fcc73bc3a73f360e3ff}

\item 
uint32\_\-t \hyperlink{classIfTreeInterface_ad9abfef2acc321ce0128a3fa1378a362}{interface\_\-flags} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} system-\/specific interface flags. \item\end{DoxyCompactList}\item 
void \hyperlink{classIfTreeInterface_ae3f0682b908c98ec9bb6aaee6f5dec16}{set\_\-interface\_\-flags} (uint32\_\-t v)
\begin{DoxyCompactList}\small\item\em \hyperlink{classStore}{Store} \hyperlink{protocolthe-p}{the} system-\/specific interface flags. \item\end{DoxyCompactList}\item 
\hypertarget{classIfTreeInterface_ae980d38136fc7ecad81039526282637b}{
const VifMap \& {\bfseries vifs} () const }
\label{classIfTreeInterface_ae980d38136fc7ecad81039526282637b}

\item 
\hypertarget{classIfTreeInterface_a129efe2c3c1e04ee80654f1a1bb36494}{
VifMap \& {\bfseries vifs} ()}
\label{classIfTreeInterface_a129efe2c3c1e04ee80654f1a1bb36494}

\item 
void \hyperlink{classIfTreeInterface_a0566170480a4c5c6a8cf49f81ba99e04}{add\_\-recursive\_\-vif} (const \hyperlink{classIfTreeVif}{IfTreeVif} \&other\_\-vif, bool mark\_\-state)
\begin{DoxyCompactList}\small\item\em Add recursively a new vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classIfTreeInterface_a9b3e64e36ca1c7b168519bac6e38cdbb}{add\_\-vif} (const string \&vifname)
\begin{DoxyCompactList}\small\item\em Create a new vif. \item\end{DoxyCompactList}\item 
int \hyperlink{classIfTreeInterface_a301e46987f5338fd6af08670a712154c}{remove\_\-vif} (const string \&vifname)
\begin{DoxyCompactList}\small\item\em Label vif as ready for deletion. \item\end{DoxyCompactList}\item 
\hyperlink{classIfTreeVif}{IfTreeVif} $\ast$ \hyperlink{classIfTreeInterface_a803654d6d573c3eadf1162ce96caca56}{find\_\-vif} (const string \&vifname)
\begin{DoxyCompactList}\small\item\em Find a vif. \item\end{DoxyCompactList}\item 
const \hyperlink{classIfTreeVif}{IfTreeVif} $\ast$ \hyperlink{classIfTreeInterface_a3ca9bcf1147d2b855d59f60d7a9a71c4}{find\_\-vif} (const string \&vifname) const 
\begin{DoxyCompactList}\small\item\em Find a const vif. \item\end{DoxyCompactList}\item 
\hyperlink{classIfTreeVif}{IfTreeVif} $\ast$ \hyperlink{classIfTreeInterface_a70f23717ba0801ed331d1f68b641d0ff}{find\_\-vif} (uint32\_\-t pif\_\-index)
\begin{DoxyCompactList}\small\item\em Find a vif for a given physical index. \item\end{DoxyCompactList}\item 
const \hyperlink{classIfTreeVif}{IfTreeVif} $\ast$ \hyperlink{classIfTreeInterface_a0d660a645d4fb5ec5d06112c0c40abee}{find\_\-vif} (uint32\_\-t pif\_\-index) const 
\begin{DoxyCompactList}\small\item\em Find a const vif for a given physical index. \item\end{DoxyCompactList}\item 
\hyperlink{classIfTreeAddr4}{IfTreeAddr4} $\ast$ \hyperlink{classIfTreeInterface_abf242f79fef4bc174436be6feaead0b7}{find\_\-addr} (const string \&vifname, 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{classIfTreeInterface_a7c207a4ae7934dc1416a99f18ba72038}{find\_\-addr} (const string \&vifname, 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{classIfTreeInterface_a849504eb1d9f0a7274af67db19d053a8}{find\_\-addr} (const string \&vifname, 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{classIfTreeInterface_aa4628b6ad6d64877a0c2f508cbfd27c7}{find\_\-addr} (const string \&vifname, const \hyperlink{classIPv6}{IPv6} \&addr) const 
\begin{DoxyCompactList}\small\item\em Find a const \hyperlink{classIPv6}{IPv6} address. \item\end{DoxyCompactList}\item 
void \hyperlink{classIfTreeInterface_ad8d6eaebae57a8fe1e1af49627b0d40d}{copy\_\-state} (const \hyperlink{classIfTreeInterface}{IfTreeInterface} \&o, bool copy\_\-user\_\-config)
\begin{DoxyCompactList}\small\item\em Copy state of internal variables from another \hyperlink{classIfTreeInterface}{IfTreeInterface}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIfTreeInterface_af1a1851ade823fe6cb77c89a4ed659f6}{is\_\-same\_\-state} (const \hyperlink{classIfTreeInterface}{IfTreeInterface} \&o)
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} interface-\/specific internal state is same. \item\end{DoxyCompactList}\item 
\hypertarget{classIfTreeInterface_a37a7913c5301be1a7feb1f69dcb04d6b}{
void \hyperlink{classIfTreeInterface_a37a7913c5301be1a7feb1f69dcb04d6b}{finalize\_\-state} ()}
\label{classIfTreeInterface_a37a7913c5301be1a7feb1f69dcb04d6b}

\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{classIfTreeInterface_af6582215aa8474390fbce335272d968f}{
string {\bfseries str} () const }
\label{classIfTreeInterface_af6582215aa8474390fbce335272d968f}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIfTreeInterface_a7b79a9ed247eaf20b4dd74c1c278baca}{
\hyperlink{classIfTree}{IfTree} \& {\bfseries \_\-iftree}}
\label{classIfTreeInterface_a7b79a9ed247eaf20b4dd74c1c278baca}

\item 
\hypertarget{classIfTreeInterface_a1bc37139d4385d1c6ec3d5095dce811b}{
const string {\bfseries \_\-ifname}}
\label{classIfTreeInterface_a1bc37139d4385d1c6ec3d5095dce811b}

\item 
\hypertarget{classIfTreeInterface_ab958c75a9b5ba736a79a9e05c4826fa6}{
string {\bfseries \_\-parent\_\-ifname}}
\label{classIfTreeInterface_ab958c75a9b5ba736a79a9e05c4826fa6}

\item 
\hypertarget{classIfTreeInterface_aa6de36368efb62b88514063672d945eb}{
string {\bfseries \_\-iface\_\-type}}
\label{classIfTreeInterface_aa6de36368efb62b88514063672d945eb}

\item 
\hypertarget{classIfTreeInterface_a1f7a3a71bfe8b670df90f56fb52eca4a}{
string {\bfseries \_\-vid}}
\label{classIfTreeInterface_a1f7a3a71bfe8b670df90f56fb52eca4a}

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

\item 
\hypertarget{classIfTreeInterface_a51e07adc5d7ad13f24e47c3dd14f2a70}{
bool {\bfseries \_\-created\_\-by\_\-xorp}}
\label{classIfTreeInterface_a51e07adc5d7ad13f24e47c3dd14f2a70}

\item 
\hypertarget{classIfTreeInterface_a2f825601c6663f12dbc9b3143dd1d726}{
bool {\bfseries \_\-probed\_\-vlan}}
\label{classIfTreeInterface_a2f825601c6663f12dbc9b3143dd1d726}

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

\item 
\hypertarget{classIfTreeInterface_acf42eb01f2bfae3840a3c55619850b84}{
bool {\bfseries \_\-discard}}
\label{classIfTreeInterface_acf42eb01f2bfae3840a3c55619850b84}

\item 
\hypertarget{classIfTreeInterface_abf60751c6ae54e1f8d7439914bfe235d}{
bool {\bfseries \_\-unreachable}}
\label{classIfTreeInterface_abf60751c6ae54e1f8d7439914bfe235d}

\item 
\hypertarget{classIfTreeInterface_a34758bb24ffafb2137f91c8451733e5b}{
bool {\bfseries \_\-management}}
\label{classIfTreeInterface_a34758bb24ffafb2137f91c8451733e5b}

\item 
\hypertarget{classIfTreeInterface_a8241213adbcd59a55d20336133adb5f5}{
bool {\bfseries \_\-default\_\-system\_\-config}}
\label{classIfTreeInterface_a8241213adbcd59a55d20336133adb5f5}

\item 
\hypertarget{classIfTreeInterface_a88950bb5bd7ebbff338b5ccb21ebdf8e}{
uint32\_\-t {\bfseries \_\-mtu}}
\label{classIfTreeInterface_a88950bb5bd7ebbff338b5ccb21ebdf8e}

\item 
\hypertarget{classIfTreeInterface_ad3a0e86b6c2ad626a2837b5a1916af7f}{
\hyperlink{classMac}{Mac} {\bfseries \_\-mac}}
\label{classIfTreeInterface_ad3a0e86b6c2ad626a2837b5a1916af7f}

\item 
\hypertarget{classIfTreeInterface_a86cb9e8fccf632b2bb6051b81cfcc609}{
bool {\bfseries \_\-no\_\-carrier}}
\label{classIfTreeInterface_a86cb9e8fccf632b2bb6051b81cfcc609}

\item 
\hypertarget{classIfTreeInterface_a3fa772ae5d0a9fb9935c5b7e6b73fa6e}{
uint64\_\-t {\bfseries \_\-baudrate}}
\label{classIfTreeInterface_a3fa772ae5d0a9fb9935c5b7e6b73fa6e}

\item 
\hypertarget{classIfTreeInterface_a1cbb15c9bc7de1829702230ae7997a6a}{
uint32\_\-t {\bfseries \_\-interface\_\-flags}}
\label{classIfTreeInterface_a1cbb15c9bc7de1829702230ae7997a6a}

\item 
\hypertarget{classIfTreeInterface_aa0394035df2e2952b8242d65ee123832}{
VifMap {\bfseries \_\-vifs}}
\label{classIfTreeInterface_aa0394035df2e2952b8242d65ee123832}

\item 
\hypertarget{classIfTreeInterface_a57adecad831ce3e1c8a5b654b0439e5c}{
MacSet {\bfseries \_\-macs}}
\label{classIfTreeInterface_a57adecad831ce3e1c8a5b654b0439e5c}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
FEA class for holding physical interface state. 

\subsection{Member Function Documentation}
\hypertarget{classIfTreeInterface_a0566170480a4c5c6a8cf49f81ba99e04}{
\index{IfTreeInterface@{IfTreeInterface}!add\_\-recursive\_\-vif@{add\_\-recursive\_\-vif}}
\index{add\_\-recursive\_\-vif@{add\_\-recursive\_\-vif}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{add\_\-recursive\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}void IfTreeInterface::add\_\-recursive\_\-vif (
\begin{DoxyParamCaption}
\item[{const {\bf IfTreeVif} \&}]{other\_\-vif, }
\item[{bool}]{mark\_\-state}
\end{DoxyParamCaption}
)}}
\label{classIfTreeInterface_a0566170480a4c5c6a8cf49f81ba99e04}


Add recursively a new vif. 


\begin{DoxyParams}{Parameters}
{\em other\_\-vif} & \hyperlink{protocolthe-p}{the} vif 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 vif, otherwise \hyperlink{protocolthe-p}{the} state will be CREATED. \\
\hline
\end{DoxyParams}
\hypertarget{classIfTreeInterface_a9b3e64e36ca1c7b168519bac6e38cdbb}{
\index{IfTreeInterface@{IfTreeInterface}!add\_\-vif@{add\_\-vif}}
\index{add\_\-vif@{add\_\-vif}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{add\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}int IfTreeInterface::add\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname}
\end{DoxyParamCaption}
)}}
\label{classIfTreeInterface_a9b3e64e36ca1c7b168519bac6e38cdbb}


Create a new vif. 


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} vif name. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classIfTreeInterface_ad8d6eaebae57a8fe1e1af49627b0d40d}{
\index{IfTreeInterface@{IfTreeInterface}!copy\_\-state@{copy\_\-state}}
\index{copy\_\-state@{copy\_\-state}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{copy\_\-state}]{\setlength{\rightskip}{0pt plus 5cm}void IfTreeInterface::copy\_\-state (
\begin{DoxyParamCaption}
\item[{const {\bf IfTreeInterface} \&}]{o, }
\item[{bool}]{copy\_\-user\_\-config}
\end{DoxyParamCaption}
)}}
\label{classIfTreeInterface_ad8d6eaebae57a8fe1e1af49627b0d40d}


Copy state of internal variables from another \hyperlink{classIfTreeInterface}{IfTreeInterface}. 


\begin{DoxyParams}{Parameters}
{\em o} & \hyperlink{protocolthe-p}{the} interface to copy from. \\
\hline
{\em copy\_\-user\_\-config} & if true then copy \hyperlink{protocolthe-p}{the} flags from \hyperlink{protocolthe-p}{the} user's configuration. \\
\hline
\end{DoxyParams}
\hypertarget{classIfTreeInterface_aa4628b6ad6d64877a0c2f508cbfd27c7}{
\index{IfTreeInterface@{IfTreeInterface}!find\_\-addr@{find\_\-addr}}
\index{find\_\-addr@{find\_\-addr}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{find\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IfTreeAddr6} $\ast$ IfTreeInterface::find\_\-addr (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv6} \&}]{addr}
\end{DoxyParamCaption}
) const}}
\label{classIfTreeInterface_aa4628b6ad6d64877a0c2f508cbfd27c7}


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


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} vif name to search for. \\
\hline
{\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{classIfTreeInterface_a7c207a4ae7934dc1416a99f18ba72038}{
\index{IfTreeInterface@{IfTreeInterface}!find\_\-addr@{find\_\-addr}}
\index{find\_\-addr@{find\_\-addr}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{find\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IfTreeAddr4} $\ast$ IfTreeInterface::find\_\-addr (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
) const}}
\label{classIfTreeInterface_a7c207a4ae7934dc1416a99f18ba72038}


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


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} vif name to search for. \\
\hline
{\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{classIfTreeInterface_a849504eb1d9f0a7274af67db19d053a8}{
\index{IfTreeInterface@{IfTreeInterface}!find\_\-addr@{find\_\-addr}}
\index{find\_\-addr@{find\_\-addr}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{find\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IfTreeAddr6} $\ast$ IfTreeInterface::find\_\-addr (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv6} \&}]{addr}
\end{DoxyParamCaption}
)}}
\label{classIfTreeInterface_a849504eb1d9f0a7274af67db19d053a8}


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


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} vif name to search for. \\
\hline
{\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{classIfTreeInterface_abf242f79fef4bc174436be6feaead0b7}{
\index{IfTreeInterface@{IfTreeInterface}!find\_\-addr@{find\_\-addr}}
\index{find\_\-addr@{find\_\-addr}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{find\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IfTreeAddr4} $\ast$ IfTreeInterface::find\_\-addr (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4} \&}]{addr}
\end{DoxyParamCaption}
)}}
\label{classIfTreeInterface_abf242f79fef4bc174436be6feaead0b7}


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


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} vif name to search for. \\
\hline
{\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{classIfTreeInterface_a0d660a645d4fb5ec5d06112c0c40abee}{
\index{IfTreeInterface@{IfTreeInterface}!find\_\-vif@{find\_\-vif}}
\index{find\_\-vif@{find\_\-vif}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{find\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IfTreeVif} $\ast$ IfTreeInterface::find\_\-vif (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{pif\_\-index}
\end{DoxyParamCaption}
) const}}
\label{classIfTreeInterface_a0d660a645d4fb5ec5d06112c0c40abee}


Find a const vif for a given physical index. 


\begin{DoxyParams}{Parameters}
{\em pif\_\-index} & \hyperlink{protocolthe-p}{the} physical interface index to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a const pointer to \hyperlink{protocolthe-p}{the} interface (\hyperlink{classIfTreeVif}{IfTreeVif}) or NULL if not found. 
\end{DoxyReturn}
\hypertarget{classIfTreeInterface_a803654d6d573c3eadf1162ce96caca56}{
\index{IfTreeInterface@{IfTreeInterface}!find\_\-vif@{find\_\-vif}}
\index{find\_\-vif@{find\_\-vif}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{find\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IfTreeVif} $\ast$ IfTreeInterface::find\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname}
\end{DoxyParamCaption}
)}}
\label{classIfTreeInterface_a803654d6d573c3eadf1162ce96caca56}


Find a vif. 


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


Find a const vif. 


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} vif name to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a const pointer to \hyperlink{protocolthe-p}{the} vif (\hyperlink{classIfTreeVif}{IfTreeVif}) or NULL if not found. 
\end{DoxyReturn}
\hypertarget{classIfTreeInterface_a70f23717ba0801ed331d1f68b641d0ff}{
\index{IfTreeInterface@{IfTreeInterface}!find\_\-vif@{find\_\-vif}}
\index{find\_\-vif@{find\_\-vif}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{find\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IfTreeVif} $\ast$ IfTreeInterface::find\_\-vif (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{pif\_\-index}
\end{DoxyParamCaption}
)}}
\label{classIfTreeInterface_a70f23717ba0801ed331d1f68b641d0ff}


Find a vif for a given physical index. 


\begin{DoxyParams}{Parameters}
{\em pif\_\-index} & \hyperlink{protocolthe-p}{the} physical interface index to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} interface (\hyperlink{classIfTreeVif}{IfTreeVif}) or NULL if not found. 
\end{DoxyReturn}
\hypertarget{classIfTreeInterface_ad9abfef2acc321ce0128a3fa1378a362}{
\index{IfTreeInterface@{IfTreeInterface}!interface\_\-flags@{interface\_\-flags}}
\index{interface\_\-flags@{interface\_\-flags}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{interface\_\-flags}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IfTreeInterface::interface\_\-flags (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIfTreeInterface_ad9abfef2acc321ce0128a3fa1378a362}


Get \hyperlink{protocolthe-p}{the} system-\/specific interface 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 interface flags. 
\end{DoxyReturn}
\hypertarget{classIfTreeInterface_af1a1851ade823fe6cb77c89a4ed659f6}{
\index{IfTreeInterface@{IfTreeInterface}!is\_\-same\_\-state@{is\_\-same\_\-state}}
\index{is\_\-same\_\-state@{is\_\-same\_\-state}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{is\_\-same\_\-state}]{\setlength{\rightskip}{0pt plus 5cm}bool IfTreeInterface::is\_\-same\_\-state (
\begin{DoxyParamCaption}
\item[{const {\bf IfTreeInterface} \&}]{o}
\end{DoxyParamCaption}
)}}
\label{classIfTreeInterface_af1a1851ade823fe6cb77c89a4ed659f6}


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


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


Label vif as ready for deletion. 

Deletion does not occur until \hyperlink{classIfTreeInterface_a37a7913c5301be1a7feb1f69dcb04d6b}{finalize\_\-state()} is called.


\begin{DoxyParams}{Parameters}
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to be labelled. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classIfTreeInterface_ae3f0682b908c98ec9bb6aaee6f5dec16}{
\index{IfTreeInterface@{IfTreeInterface}!set\_\-interface\_\-flags@{set\_\-interface\_\-flags}}
\index{set\_\-interface\_\-flags@{set\_\-interface\_\-flags}!IfTreeInterface@{IfTreeInterface}}
\subsubsection[{set\_\-interface\_\-flags}]{\setlength{\rightskip}{0pt plus 5cm}void IfTreeInterface::set\_\-interface\_\-flags (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIfTreeInterface_ae3f0682b908c98ec9bb6aaee6f5dec16}


\hyperlink{classStore}{Store} \hyperlink{protocolthe-p}{the} system-\/specific interface 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 interface flags to store. \\
\hline
\end{DoxyParams}


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}
