\hypertarget{classVif}{
\section{Vif Class Reference}
\label{classVif}\index{Vif@{Vif}}
}


Virtual Interface class.  




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

Inheritance diagram for Vif:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classVif}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \{ {\bfseries VIF\_\-INDEX\_\-INVALID} =  ((uint32\_\-t)$\sim$0), 
{\bfseries VIF\_\-INDEX\_\-MAX} =  ((uint32\_\-t)$\sim$0)
 \}
\begin{DoxyCompactList}\small\item\em Various vif\_\-index related values. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classVif_a494f4cf98e7860f0f3a5d1643fc22bc2}{Vif} (const string \&vifname, const string \&ifname=string(\char`\"{}\char`\"{}))
\begin{DoxyCompactList}\small\item\em Constructor for a given virtual interface name. \item\end{DoxyCompactList}\item 
\hyperlink{classVif_a4f572fb053f8169a0dce7b6bf68df55d}{Vif} (const \hyperlink{classVif}{Vif} \&vif)
\begin{DoxyCompactList}\small\item\em Constructor to clone a \hyperlink{classVif}{Vif}. \item\end{DoxyCompactList}\item 
\hypertarget{classVif_aa86d802efc08aee77c376ed6c2e00b09}{
virtual \hyperlink{classVif_aa86d802efc08aee77c376ed6c2e00b09}{$\sim$Vif} ()}
\label{classVif_aa86d802efc08aee77c376ed6c2e00b09}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
string \hyperlink{classVif_aeb8f37dbd577080b5f179c5c88c9a862}{str} () const 
\begin{DoxyCompactList}\small\item\em Convert this \hyperlink{classVif}{Vif} from binary form to presentation format. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_aa0c0c97f49e92bcd1a7513cc0203920a}{operator==} (const \hyperlink{classVif}{Vif} \&other) const 
\begin{DoxyCompactList}\small\item\em Equality Operator. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classVif_a84889f5b67d0de3aa7414639bb4bc540}{name} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} vif name. \item\end{DoxyCompactList}\item 
const string \& \hyperlink{classVif_a24234971b629d82bb3ea06fa100a15f5}{ifname} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface associated with vif. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_a098eed6ef3f3bbf082660092b16eb690}{set\_\-ifname} (const string \&ifname)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface associated with vif. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classVif_a5044b1d23d2c9406aa63b8224383b2ce}{pif\_\-index} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} physical interface index. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_aa42466b6c5975af5be341d1ee3e45f7c}{set\_\-pif\_\-index} (uint32\_\-t v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} physical interface index. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classVif_a537278192c9d839c63122527dad79cf2}{vif\_\-index} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} virtual interface index. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_a4e3bb259efc465c03d36b4590699b9e5}{set\_\-vif\_\-index} (uint32\_\-t v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} virtual interface index. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a2f35b5947b9ca5c47091fe2dd1ef498d}{is\_\-pim\_\-register} () const 
\begin{DoxyCompactList}\small\item\em Test if this vif is a PIM Register interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a060238fecb2236a7149a20cfd1500e82}{is\_\-p2p} () const 
\begin{DoxyCompactList}\small\item\em Test if this vif is a point-\/to-\/point interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_ab67df6824e1daa71ff5ed3232283f979}{is\_\-loopback} () const 
\begin{DoxyCompactList}\small\item\em Test if this vif is a loopback interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a30e4aaa7aa262ea5a4dc57e6638f5263}{is\_\-discard} () const 
\begin{DoxyCompactList}\small\item\em Test if this vif is a discard interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a014ec2876d3b095cb05395b8b5041ce1}{is\_\-unreachable} () const 
\begin{DoxyCompactList}\small\item\em Test if this vif is an unreachable interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a0b7273ea5106fa71181d4232c2e560d8}{is\_\-management} () const 
\begin{DoxyCompactList}\small\item\em Test if this vif is a management interface. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a95a41e2c84ad8a88a99aaf14388f657c}{is\_\-multicast\_\-capable} () const 
\begin{DoxyCompactList}\small\item\em Test if this vif is multicast capable. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a4628c66d86e92c24aa2b269b125b962b}{is\_\-broadcast\_\-capable} () const 
\begin{DoxyCompactList}\small\item\em Test if this vif is broadcast capable. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_afcd79fb537012befc7b37dbfd48a2e70}{is\_\-underlying\_\-vif\_\-up} () const 
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} underlying vif is UP. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classVif_a91351e3f6331645ff02454fd746d9999}{mtu} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_a3f1458aa2c59e1265df49a96aa2d8d86}{set\_\-pim\_\-register} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} vif as a PIM Register interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_a56ef1139924ac0dbd1fc4dc33adcaa45}{set\_\-p2p} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} vif as a point-\/to-\/point interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_a4dc406fb57eb4d2719f8648a89d501cd}{set\_\-loopback} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} vif as a loopback interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_ac58bc0109fc7714d02bc63bca9dfdf61}{set\_\-discard} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} vif as a discard interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_ad41bbc18cf21a7996b913b5265716616}{set\_\-unreachable} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} vif as an unreachable interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_aa4ed13fd1434a178ef34a642d1769ada}{set\_\-management} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} vif as a management interface. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_ae4af0c94481ec59ac1c8bd5d090529eb}{set\_\-multicast\_\-capable} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} vif as multicast capable. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_ae64599923784899397d0c8c02be09228}{set\_\-broadcast\_\-capable} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} vif as broadcast capable. \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_a74964eba9fa09f2c75fac573636635ce}{set\_\-underlying\_\-vif\_\-up} (bool v)
\begin{DoxyCompactList}\small\item\em Set/reset \hyperlink{protocolthe-p}{the} underlying vif status (when applicable). \item\end{DoxyCompactList}\item 
void \hyperlink{classVif_aee2a33ed82d743bbc36d33068ae20acc}{set\_\-mtu} (uint32\_\-t v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. \item\end{DoxyCompactList}\item 
const list$<$ \hyperlink{classVifAddr}{VifAddr} $>$ \& \hyperlink{classVif_a7e42818802a8e19e0edd532562749bd1}{addr\_\-list} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} list of all addresses for this vif. \item\end{DoxyCompactList}\item 
const \hyperlink{classIPvX}{IPvX} $\ast$ \hyperlink{classVif_a74f5d66f9dfbd136ee7cef1522c31acd}{addr\_\-ptr} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} first vif address. \item\end{DoxyCompactList}\item 
int \hyperlink{classVif_a86365640431a07d1f9661d9a682c503f}{add\_\-address} (const \hyperlink{classVifAddr}{VifAddr} \&vif\_\-addr)
\begin{DoxyCompactList}\small\item\em Add a \hyperlink{classVifAddr}{VifAddr} address to \hyperlink{protocolthe-p}{the} interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classVif_a912fd99c53706caff4532fff9b7c606e}{add\_\-address} (const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-addr, const \hyperlink{classIPvXNet}{IPvXNet} \&ipvxnet\_\-subnet\_\-addr, const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-broadcast\_\-addr, const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-peer\_\-addr)
\begin{DoxyCompactList}\small\item\em Add an \hyperlink{classIPvX}{IPvX} address and all related information to \hyperlink{protocolthe-p}{the} interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classVif_aae7ed6ffa0b35592c034654b7062ba3d}{add\_\-address} (const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-addr)
\begin{DoxyCompactList}\small\item\em Add an \hyperlink{classIPvX}{IPvX} address to \hyperlink{protocolthe-p}{the} interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classVif_a510585b6694bab88274aa8b3602ed0b7}{delete\_\-address} (const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-addr)
\begin{DoxyCompactList}\small\item\em Delete an \hyperlink{classIPvX}{IPvX} address from \hyperlink{protocolthe-p}{the} interface. \item\end{DoxyCompactList}\item 
\hyperlink{classVifAddr}{VifAddr} $\ast$ \hyperlink{classVif_abdaf49a2aa56228fdb3f3dda90fb5b4a}{find\_\-address} (const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-addr)
\begin{DoxyCompactList}\small\item\em Find a \hyperlink{classVifAddr}{VifAddr} that corresponds to an \hyperlink{classIPvX}{IPvX} address. \item\end{DoxyCompactList}\item 
const \hyperlink{classVifAddr}{VifAddr} $\ast$ \hyperlink{classVif_a1032ed167fa8b73e19706f85cdb928b4}{find\_\-address} (const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Find a const \hyperlink{classVifAddr}{VifAddr} that corresponds to an \hyperlink{classIPvX}{IPvX} address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_abc5ee3eddb6cdd42a194cee6bce9170c}{is\_\-my\_\-addr} (const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Test if an \hyperlink{classIPvX}{IPvX} address belongs to this vif. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a7930f837cf67405d0f62dac81ab9d9fa}{is\_\-my\_\-vif\_\-addr} (const \hyperlink{classVifAddr}{VifAddr} \&vif\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Test if an \hyperlink{classVifAddr}{VifAddr} is belongs to this vif. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a286dc64830ad6b889b00c087b26c8b34}{is\_\-same\_\-subnet} (const \hyperlink{classIPvXNet}{IPvXNet} \&ipvxnet) const 
\begin{DoxyCompactList}\small\item\em Test if a given subnet address is a subset of one of \hyperlink{protocolthe-p}{the} subnet addresses of this vif. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a219a23f12484738dbd5392e9848642b9}{is\_\-same\_\-subnet} (const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Test if a given address belongs to one of \hyperlink{protocolthe-p}{the} subnet addresses of this vif. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVif_a6ad5b40c7abf44e2ee2a29ab89eb9eb4}{is\_\-same\_\-p2p} (const \hyperlink{classIPvX}{IPvX} \&ipvx\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Test if a given address belongs to \hyperlink{protocolthe-p}{the} same point-\/to-\/point link as this vif. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classVif_a8f2d40655f0f27f080317a35096ea2f8}{
string {\bfseries \_\-name}}
\label{classVif_a8f2d40655f0f27f080317a35096ea2f8}

\item 
\hypertarget{classVif_a4ef904b97f7fa9bd098f626b1e89ecea}{
string {\bfseries \_\-ifname}}
\label{classVif_a4ef904b97f7fa9bd098f626b1e89ecea}

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

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

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

\item 
\hypertarget{classVif_ae66ebf69b15170f89a59bf59632a128c}{
bool {\bfseries \_\-is\_\-p2p}}
\label{classVif_ae66ebf69b15170f89a59bf59632a128c}

\item 
\hypertarget{classVif_a60a67caded31742f60284b88e95b5ed0}{
bool {\bfseries \_\-is\_\-loopback}}
\label{classVif_a60a67caded31742f60284b88e95b5ed0}

\item 
\hypertarget{classVif_ab9b4757d6c4a9145420035314d09382b}{
bool {\bfseries \_\-is\_\-discard}}
\label{classVif_ab9b4757d6c4a9145420035314d09382b}

\item 
\hypertarget{classVif_a77ec4d11450983a290928b3635b0963b}{
bool {\bfseries \_\-is\_\-unreachable}}
\label{classVif_a77ec4d11450983a290928b3635b0963b}

\item 
\hypertarget{classVif_af1b827ce4d7a1f5cc44a46dc104ed509}{
bool {\bfseries \_\-is\_\-management}}
\label{classVif_af1b827ce4d7a1f5cc44a46dc104ed509}

\item 
\hypertarget{classVif_af5d40eb2f67225491ba4ceee28c41173}{
bool {\bfseries \_\-is\_\-multicast\_\-capable}}
\label{classVif_af5d40eb2f67225491ba4ceee28c41173}

\item 
\hypertarget{classVif_a9b4ce2e01e211f9dd68bb36c29fd447b}{
bool {\bfseries \_\-is\_\-broadcast\_\-capable}}
\label{classVif_a9b4ce2e01e211f9dd68bb36c29fd447b}

\item 
\hypertarget{classVif_a7325c4717139d6fed69116494e58e1c5}{
bool {\bfseries \_\-is\_\-underlying\_\-vif\_\-up}}
\label{classVif_a7325c4717139d6fed69116494e58e1c5}

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

\item 
\hypertarget{classVif_aaa388933fa21c20bae9bee1ac4b475f4}{
list$<$ \hyperlink{classVifAddr}{VifAddr} $>$ {\bfseries \_\-addr\_\-list}}
\label{classVif_aaa388933fa21c20bae9bee1ac4b475f4}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Virtual Interface class. \hyperlink{classVif}{Vif} holds information about a virtual interface. A \hyperlink{classVif}{Vif} may represent a physical interface, or may represent more abstract entities such as \hyperlink{protocolthe-p}{the} Discard or Unreachable interface, or a VLAN on a physical interface. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classVif_a494f4cf98e7860f0f3a5d1643fc22bc2}{
\index{Vif@{Vif}!Vif@{Vif}}
\index{Vif@{Vif}!Vif@{Vif}}
\subsubsection[{Vif}]{\setlength{\rightskip}{0pt plus 5cm}Vif::Vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vifname, }
\item[{const string \&}]{ifname = {\ttfamily string(\char`\"{}\char`\"{})}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}explicit\mbox{]}}}}
\label{classVif_a494f4cf98e7860f0f3a5d1643fc22bc2}


Constructor for a given virtual interface name. 


\begin{DoxyParams}{Parameters}
{\em vifname} & string representation of \hyperlink{protocolthe-p}{the} virtual interface (e.g., \char`\"{}port 0\char`\"{}). \\
\hline
{\em ifname} & string representation of associated interface. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_a4f572fb053f8169a0dce7b6bf68df55d}{
\index{Vif@{Vif}!Vif@{Vif}}
\index{Vif@{Vif}!Vif@{Vif}}
\subsubsection[{Vif}]{\setlength{\rightskip}{0pt plus 5cm}Vif::Vif (
\begin{DoxyParamCaption}
\item[{const {\bf Vif} \&}]{vif}
\end{DoxyParamCaption}
)}}
\label{classVif_a4f572fb053f8169a0dce7b6bf68df55d}


Constructor to clone a \hyperlink{classVif}{Vif}. 


\begin{DoxyParams}{Parameters}
{\em vif} & \hyperlink{protocolthe-p}{the} virtual interface to clone. \\
\hline
\end{DoxyParams}


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


Add a \hyperlink{classVifAddr}{VifAddr} address to \hyperlink{protocolthe-p}{the} interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-addr} & \hyperlink{protocolthe-p}{the} \hyperlink{classVifAddr}{VifAddr} (\hyperlink{classVifAddr}{VifAddr}) to add to \hyperlink{protocolthe-p}{the} list of addresses for this vif.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK if a new address, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classVif_a912fd99c53706caff4532fff9b7c606e}{
\index{Vif@{Vif}!add\_\-address@{add\_\-address}}
\index{add\_\-address@{add\_\-address}!Vif@{Vif}}
\subsubsection[{add\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}int Vif::add\_\-address (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{ipvx\_\-addr, }
\item[{const {\bf IPvXNet} \&}]{ipvxnet\_\-subnet\_\-addr, }
\item[{const {\bf IPvX} \&}]{ipvx\_\-broadcast\_\-addr, }
\item[{const {\bf IPvX} \&}]{ipvx\_\-peer\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classVif_a912fd99c53706caff4532fff9b7c606e}


Add an \hyperlink{classIPvX}{IPvX} address and all related information to \hyperlink{protocolthe-p}{the} interface. 


\begin{DoxyParams}{Parameters}
{\em ipvx\_\-addr} & \hyperlink{protocolthe-p}{the} interface address. \\
\hline
{\em ipvxnet\_\-subnet\_\-addr} & \hyperlink{protocolthe-p}{the} subnet address. \\
\hline
{\em ipvx\_\-broadcast\_\-addr} & \hyperlink{protocolthe-p}{the} broadcast address. \\
\hline
{\em ipvx\_\-peer\_\-addr} & \hyperlink{protocolthe-p}{the} peer address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK if a new address, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classVif_aae7ed6ffa0b35592c034654b7062ba3d}{
\index{Vif@{Vif}!add\_\-address@{add\_\-address}}
\index{add\_\-address@{add\_\-address}!Vif@{Vif}}
\subsubsection[{add\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}int Vif::add\_\-address (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{ipvx\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classVif_aae7ed6ffa0b35592c034654b7062ba3d}


Add an \hyperlink{classIPvX}{IPvX} address to \hyperlink{protocolthe-p}{the} interface. 


\begin{DoxyParams}{Parameters}
{\em ipvx\_\-addr} & \hyperlink{protocolthe-p}{the} interface address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK if a new address, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classVif_a7e42818802a8e19e0edd532562749bd1}{
\index{Vif@{Vif}!addr\_\-list@{addr\_\-list}}
\index{addr\_\-list@{addr\_\-list}!Vif@{Vif}}
\subsubsection[{addr\_\-list}]{\setlength{\rightskip}{0pt plus 5cm}const list$<${\bf VifAddr}$>$\& Vif::addr\_\-list (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a7e42818802a8e19e0edd532562749bd1}


Get \hyperlink{protocolthe-p}{the} list of all addresses for this vif. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} list of all addresses for this vif (\hyperlink{classVifAddr}{VifAddr}). 
\end{DoxyReturn}
\hypertarget{classVif_a74f5d66f9dfbd136ee7cef1522c31acd}{
\index{Vif@{Vif}!addr\_\-ptr@{addr\_\-ptr}}
\index{addr\_\-ptr@{addr\_\-ptr}!Vif@{Vif}}
\subsubsection[{addr\_\-ptr}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IPvX} $\ast$ Vif::addr\_\-ptr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classVif_a74f5d66f9dfbd136ee7cef1522c31acd}


Get \hyperlink{protocolthe-p}{the} first vif address. 

\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} first valid interface address of this vif, or NULL if no addresses. 
\end{DoxyReturn}
\hypertarget{classVif_a510585b6694bab88274aa8b3602ed0b7}{
\index{Vif@{Vif}!delete\_\-address@{delete\_\-address}}
\index{delete\_\-address@{delete\_\-address}!Vif@{Vif}}
\subsubsection[{delete\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}int Vif::delete\_\-address (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{ipvx\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classVif_a510585b6694bab88274aa8b3602ed0b7}


Delete an \hyperlink{classIPvX}{IPvX} address from \hyperlink{protocolthe-p}{the} interface. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classVif_abdaf49a2aa56228fdb3f3dda90fb5b4a}{
\index{Vif@{Vif}!find\_\-address@{find\_\-address}}
\index{find\_\-address@{find\_\-address}!Vif@{Vif}}
\subsubsection[{find\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}{\bf VifAddr} $\ast$ Vif::find\_\-address (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{ipvx\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classVif_abdaf49a2aa56228fdb3f3dda90fb5b4a}


Find a \hyperlink{classVifAddr}{VifAddr} that corresponds to an \hyperlink{classIPvX}{IPvX} address. 


\begin{DoxyParams}{Parameters}
{\em ipvx\_\-addr} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} address to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} \hyperlink{classVifAddr}{VifAddr} for address ipvx\_\-addr if found, otherwise NULL. 
\end{DoxyReturn}
\hypertarget{classVif_a1032ed167fa8b73e19706f85cdb928b4}{
\index{Vif@{Vif}!find\_\-address@{find\_\-address}}
\index{find\_\-address@{find\_\-address}!Vif@{Vif}}
\subsubsection[{find\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf VifAddr} $\ast$ Vif::find\_\-address (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{ipvx\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classVif_a1032ed167fa8b73e19706f85cdb928b4}


Find a const \hyperlink{classVifAddr}{VifAddr} that corresponds to an \hyperlink{classIPvX}{IPvX} address. 


\begin{DoxyParams}{Parameters}
{\em ipvx\_\-addr} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} address to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a const pointer to \hyperlink{protocolthe-p}{the} \hyperlink{classVifAddr}{VifAddr} for address ipvx\_\-addr if found, otherwise NULL. 
\end{DoxyReturn}
\hypertarget{classVif_a24234971b629d82bb3ea06fa100a15f5}{
\index{Vif@{Vif}!ifname@{ifname}}
\index{ifname@{ifname}!Vif@{Vif}}
\subsubsection[{ifname}]{\setlength{\rightskip}{0pt plus 5cm}const string\& Vif::ifname (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a24234971b629d82bb3ea06fa100a15f5}


Get \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface associated with vif. 

\begin{DoxyReturn}{Returns}
string representation of interface name. 
\end{DoxyReturn}
\hypertarget{classVif_a4628c66d86e92c24aa2b269b125b962b}{
\index{Vif@{Vif}!is\_\-broadcast\_\-capable@{is\_\-broadcast\_\-capable}}
\index{is\_\-broadcast\_\-capable@{is\_\-broadcast\_\-capable}!Vif@{Vif}}
\subsubsection[{is\_\-broadcast\_\-capable}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-broadcast\_\-capable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a4628c66d86e92c24aa2b269b125b962b}


Test if this vif is broadcast capable. 

\begin{DoxyReturn}{Returns}
true if this vif is broadcast capable, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a30e4aaa7aa262ea5a4dc57e6638f5263}{
\index{Vif@{Vif}!is\_\-discard@{is\_\-discard}}
\index{is\_\-discard@{is\_\-discard}!Vif@{Vif}}
\subsubsection[{is\_\-discard}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-discard (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a30e4aaa7aa262ea5a4dc57e6638f5263}


Test if this vif is a discard interface. 

\begin{DoxyReturn}{Returns}
true if this vif is a discard interface, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_ab67df6824e1daa71ff5ed3232283f979}{
\index{Vif@{Vif}!is\_\-loopback@{is\_\-loopback}}
\index{is\_\-loopback@{is\_\-loopback}!Vif@{Vif}}
\subsubsection[{is\_\-loopback}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-loopback (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_ab67df6824e1daa71ff5ed3232283f979}


Test if this vif is a loopback interface. 

\begin{DoxyReturn}{Returns}
true if this vif is a loopback interface, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a0b7273ea5106fa71181d4232c2e560d8}{
\index{Vif@{Vif}!is\_\-management@{is\_\-management}}
\index{is\_\-management@{is\_\-management}!Vif@{Vif}}
\subsubsection[{is\_\-management}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-management (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a0b7273ea5106fa71181d4232c2e560d8}


Test if this vif is a management interface. 

\begin{DoxyReturn}{Returns}
true if this vif is a management interface, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a95a41e2c84ad8a88a99aaf14388f657c}{
\index{Vif@{Vif}!is\_\-multicast\_\-capable@{is\_\-multicast\_\-capable}}
\index{is\_\-multicast\_\-capable@{is\_\-multicast\_\-capable}!Vif@{Vif}}
\subsubsection[{is\_\-multicast\_\-capable}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-multicast\_\-capable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a95a41e2c84ad8a88a99aaf14388f657c}


Test if this vif is multicast capable. 

\begin{DoxyReturn}{Returns}
true if this vif is multicast capable, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_abc5ee3eddb6cdd42a194cee6bce9170c}{
\index{Vif@{Vif}!is\_\-my\_\-addr@{is\_\-my\_\-addr}}
\index{is\_\-my\_\-addr@{is\_\-my\_\-addr}!Vif@{Vif}}
\subsubsection[{is\_\-my\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-my\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{ipvx\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classVif_abc5ee3eddb6cdd42a194cee6bce9170c}


Test if an \hyperlink{classIPvX}{IPvX} address belongs to this vif. 


\begin{DoxyParams}{Parameters}
{\em ipvx\_\-addr} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPvX}{IPvX} address to test whether belongs to this vif. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if ipvx\_\-addr belongs to this vif, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a7930f837cf67405d0f62dac81ab9d9fa}{
\index{Vif@{Vif}!is\_\-my\_\-vif\_\-addr@{is\_\-my\_\-vif\_\-addr}}
\index{is\_\-my\_\-vif\_\-addr@{is\_\-my\_\-vif\_\-addr}!Vif@{Vif}}
\subsubsection[{is\_\-my\_\-vif\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-my\_\-vif\_\-addr (
\begin{DoxyParamCaption}
\item[{const {\bf VifAddr} \&}]{vif\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classVif_a7930f837cf67405d0f62dac81ab9d9fa}


Test if an \hyperlink{classVifAddr}{VifAddr} is belongs to this vif. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-addr} & \hyperlink{protocolthe-p}{the} \hyperlink{classVifAddr}{VifAddr} address to test whether belongs to this vif. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if vif\_\-addr belongs to this vif, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a060238fecb2236a7149a20cfd1500e82}{
\index{Vif@{Vif}!is\_\-p2p@{is\_\-p2p}}
\index{is\_\-p2p@{is\_\-p2p}!Vif@{Vif}}
\subsubsection[{is\_\-p2p}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-p2p (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a060238fecb2236a7149a20cfd1500e82}


Test if this vif is a point-\/to-\/point interface. 

\begin{DoxyReturn}{Returns}
true if this vif is a point-\/to-\/point interface, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a2f35b5947b9ca5c47091fe2dd1ef498d}{
\index{Vif@{Vif}!is\_\-pim\_\-register@{is\_\-pim\_\-register}}
\index{is\_\-pim\_\-register@{is\_\-pim\_\-register}!Vif@{Vif}}
\subsubsection[{is\_\-pim\_\-register}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-pim\_\-register (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a2f35b5947b9ca5c47091fe2dd1ef498d}


Test if this vif is a PIM Register interface. 

\begin{DoxyReturn}{Returns}
true if this vif is a PIM Register interface, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a6ad5b40c7abf44e2ee2a29ab89eb9eb4}{
\index{Vif@{Vif}!is\_\-same\_\-p2p@{is\_\-same\_\-p2p}}
\index{is\_\-same\_\-p2p@{is\_\-same\_\-p2p}!Vif@{Vif}}
\subsubsection[{is\_\-same\_\-p2p}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-same\_\-p2p (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{ipvx\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classVif_a6ad5b40c7abf44e2ee2a29ab89eb9eb4}


Test if a given address belongs to \hyperlink{protocolthe-p}{the} same point-\/to-\/point link as this vif. 


\begin{DoxyParams}{Parameters}
{\em ipvx\_\-addr} & \hyperlink{protocolthe-p}{the} address to test against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if ipvx\_\-addr belongs to \hyperlink{protocolthe-p}{the} same point-\/to-\/point link as this vif, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a219a23f12484738dbd5392e9848642b9}{
\index{Vif@{Vif}!is\_\-same\_\-subnet@{is\_\-same\_\-subnet}}
\index{is\_\-same\_\-subnet@{is\_\-same\_\-subnet}!Vif@{Vif}}
\subsubsection[{is\_\-same\_\-subnet}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-same\_\-subnet (
\begin{DoxyParamCaption}
\item[{const {\bf IPvX} \&}]{ipvx\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classVif_a219a23f12484738dbd5392e9848642b9}


Test if a given address belongs to one of \hyperlink{protocolthe-p}{the} subnet addresses of this vif. 


\begin{DoxyParams}{Parameters}
{\em ipvx\_\-addr} & \hyperlink{protocolthe-p}{the} address to test against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if ipvx\_\-addr belongs to one of \hyperlink{protocolthe-p}{the} subnet addresses of this vif, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a286dc64830ad6b889b00c087b26c8b34}{
\index{Vif@{Vif}!is\_\-same\_\-subnet@{is\_\-same\_\-subnet}}
\index{is\_\-same\_\-subnet@{is\_\-same\_\-subnet}!Vif@{Vif}}
\subsubsection[{is\_\-same\_\-subnet}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-same\_\-subnet (
\begin{DoxyParamCaption}
\item[{const {\bf IPvXNet} \&}]{ipvxnet}
\end{DoxyParamCaption}
) const}}
\label{classVif_a286dc64830ad6b889b00c087b26c8b34}


Test if a given subnet address is a subset of one of \hyperlink{protocolthe-p}{the} subnet addresses of this vif. 


\begin{DoxyParams}{Parameters}
{\em ipvxnet} & \hyperlink{protocolthe-p}{the} subnet address to test against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if ipvxnet is a subset of one of \hyperlink{protocolthe-p}{the} subnet addresses of this vif, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_afcd79fb537012befc7b37dbfd48a2e70}{
\index{Vif@{Vif}!is\_\-underlying\_\-vif\_\-up@{is\_\-underlying\_\-vif\_\-up}}
\index{is\_\-underlying\_\-vif\_\-up@{is\_\-underlying\_\-vif\_\-up}!Vif@{Vif}}
\subsubsection[{is\_\-underlying\_\-vif\_\-up}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-underlying\_\-vif\_\-up (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_afcd79fb537012befc7b37dbfd48a2e70}


Test if \hyperlink{protocolthe-p}{the} underlying vif is UP. 

An example of an underlying vif is \hyperlink{protocolthe-p}{the} corresponding interface inside \hyperlink{protocolthe-p}{the} kernel, or \hyperlink{protocolthe-p}{the} MFEA interface which a PIM interface matches to.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} underlying vif is UP (when applicable), otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a014ec2876d3b095cb05395b8b5041ce1}{
\index{Vif@{Vif}!is\_\-unreachable@{is\_\-unreachable}}
\index{is\_\-unreachable@{is\_\-unreachable}!Vif@{Vif}}
\subsubsection[{is\_\-unreachable}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::is\_\-unreachable (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a014ec2876d3b095cb05395b8b5041ce1}


Test if this vif is an unreachable interface. 

\begin{DoxyReturn}{Returns}
true if this vif is an unreachable interface, otherwise false. 
\end{DoxyReturn}
\hypertarget{classVif_a91351e3f6331645ff02454fd746d9999}{
\index{Vif@{Vif}!mtu@{mtu}}
\index{mtu@{mtu}!Vif@{Vif}}
\subsubsection[{mtu}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Vif::mtu (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a91351e3f6331645ff02454fd746d9999}


Get \hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. 
\end{DoxyReturn}
\hypertarget{classVif_a84889f5b67d0de3aa7414639bb4bc540}{
\index{Vif@{Vif}!name@{name}}
\index{name@{name}!Vif@{Vif}}
\subsubsection[{name}]{\setlength{\rightskip}{0pt plus 5cm}const string\& Vif::name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a84889f5b67d0de3aa7414639bb4bc540}


Get \hyperlink{protocolthe-p}{the} vif name. 

\begin{DoxyReturn}{Returns}
a string representation of \hyperlink{protocolthe-p}{the} vif name. 
\end{DoxyReturn}
\hypertarget{classVif_aa0c0c97f49e92bcd1a7513cc0203920a}{
\index{Vif@{Vif}!operator==@{operator==}}
\index{operator==@{operator==}!Vif@{Vif}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}bool Vif::operator== (
\begin{DoxyParamCaption}
\item[{const {\bf Vif} \&}]{other}
\end{DoxyParamCaption}
) const}}
\label{classVif_aa0c0c97f49e92bcd1a7513cc0203920a}


Equality Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically same as \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classVif_a5044b1d23d2c9406aa63b8224383b2ce}{
\index{Vif@{Vif}!pif\_\-index@{pif\_\-index}}
\index{pif\_\-index@{pif\_\-index}!Vif@{Vif}}
\subsubsection[{pif\_\-index}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Vif::pif\_\-index (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a5044b1d23d2c9406aa63b8224383b2ce}


Get \hyperlink{protocolthe-p}{the} physical interface index. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} physical interface index (if applicable). 
\end{DoxyReturn}
\hypertarget{classVif_ae64599923784899397d0c8c02be09228}{
\index{Vif@{Vif}!set\_\-broadcast\_\-capable@{set\_\-broadcast\_\-capable}}
\index{set\_\-broadcast\_\-capable@{set\_\-broadcast\_\-capable}!Vif@{Vif}}
\subsubsection[{set\_\-broadcast\_\-capable}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-broadcast\_\-capable (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_ae64599923784899397d0c8c02be09228}


Set/reset \hyperlink{protocolthe-p}{the} vif as broadcast capable. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set this vif as broadcast capable, otherwise reset it. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_ac58bc0109fc7714d02bc63bca9dfdf61}{
\index{Vif@{Vif}!set\_\-discard@{set\_\-discard}}
\index{set\_\-discard@{set\_\-discard}!Vif@{Vif}}
\subsubsection[{set\_\-discard}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-discard (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_ac58bc0109fc7714d02bc63bca9dfdf61}


Set/reset \hyperlink{protocolthe-p}{the} vif as a discard interface. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set this vif as a discard interface, otherwise reset it. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_a098eed6ef3f3bbf082660092b16eb690}{
\index{Vif@{Vif}!set\_\-ifname@{set\_\-ifname}}
\index{set\_\-ifname@{set\_\-ifname}!Vif@{Vif}}
\subsubsection[{set\_\-ifname}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-ifname (
\begin{DoxyParamCaption}
\item[{const string \&}]{ifname}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a098eed6ef3f3bbf082660092b16eb690}


Set \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface associated with vif. 


\begin{DoxyParams}{Parameters}
{\em ifname} & \\
\hline
\end{DoxyParams}
\hypertarget{classVif_a4dc406fb57eb4d2719f8648a89d501cd}{
\index{Vif@{Vif}!set\_\-loopback@{set\_\-loopback}}
\index{set\_\-loopback@{set\_\-loopback}!Vif@{Vif}}
\subsubsection[{set\_\-loopback}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-loopback (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a4dc406fb57eb4d2719f8648a89d501cd}


Set/reset \hyperlink{protocolthe-p}{the} vif as a loopback interface. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set this vif as a loopback interface, otherwise reset it. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_aa4ed13fd1434a178ef34a642d1769ada}{
\index{Vif@{Vif}!set\_\-management@{set\_\-management}}
\index{set\_\-management@{set\_\-management}!Vif@{Vif}}
\subsubsection[{set\_\-management}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-management (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_aa4ed13fd1434a178ef34a642d1769ada}


Set/reset \hyperlink{protocolthe-p}{the} vif as a management interface. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set this vif as a management interface, otherwise reset it. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_aee2a33ed82d743bbc36d33068ae20acc}{
\index{Vif@{Vif}!set\_\-mtu@{set\_\-mtu}}
\index{set\_\-mtu@{set\_\-mtu}!Vif@{Vif}}
\subsubsection[{set\_\-mtu}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-mtu (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_aee2a33ed82d743bbc36d33068ae20acc}


Set \hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} MTU of \hyperlink{protocolthe-p}{the} vif. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_ae4af0c94481ec59ac1c8bd5d090529eb}{
\index{Vif@{Vif}!set\_\-multicast\_\-capable@{set\_\-multicast\_\-capable}}
\index{set\_\-multicast\_\-capable@{set\_\-multicast\_\-capable}!Vif@{Vif}}
\subsubsection[{set\_\-multicast\_\-capable}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-multicast\_\-capable (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_ae4af0c94481ec59ac1c8bd5d090529eb}


Set/reset \hyperlink{protocolthe-p}{the} vif as multicast capable. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set this vif as multicast capable, otherwise reset it. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_a56ef1139924ac0dbd1fc4dc33adcaa45}{
\index{Vif@{Vif}!set\_\-p2p@{set\_\-p2p}}
\index{set\_\-p2p@{set\_\-p2p}!Vif@{Vif}}
\subsubsection[{set\_\-p2p}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-p2p (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a56ef1139924ac0dbd1fc4dc33adcaa45}


Set/reset \hyperlink{protocolthe-p}{the} vif as a point-\/to-\/point interface. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set this vif as a point-\/to-\/point interface, otherwise reset it. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_aa42466b6c5975af5be341d1ee3e45f7c}{
\index{Vif@{Vif}!set\_\-pif\_\-index@{set\_\-pif\_\-index}}
\index{set\_\-pif\_\-index@{set\_\-pif\_\-index}!Vif@{Vif}}
\subsubsection[{set\_\-pif\_\-index}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-pif\_\-index (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_aa42466b6c5975af5be341d1ee3e45f7c}


Set \hyperlink{protocolthe-p}{the} physical interface index. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} physical interface index to set to. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_a3f1458aa2c59e1265df49a96aa2d8d86}{
\index{Vif@{Vif}!set\_\-pim\_\-register@{set\_\-pim\_\-register}}
\index{set\_\-pim\_\-register@{set\_\-pim\_\-register}!Vif@{Vif}}
\subsubsection[{set\_\-pim\_\-register}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-pim\_\-register (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a3f1458aa2c59e1265df49a96aa2d8d86}


Set/reset \hyperlink{protocolthe-p}{the} vif as a PIM Register interface. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set this vif as a PIM Register interface, otherwise reset it. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_a74964eba9fa09f2c75fac573636635ce}{
\index{Vif@{Vif}!set\_\-underlying\_\-vif\_\-up@{set\_\-underlying\_\-vif\_\-up}}
\index{set\_\-underlying\_\-vif\_\-up@{set\_\-underlying\_\-vif\_\-up}!Vif@{Vif}}
\subsubsection[{set\_\-underlying\_\-vif\_\-up}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-underlying\_\-vif\_\-up (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a74964eba9fa09f2c75fac573636635ce}


Set/reset \hyperlink{protocolthe-p}{the} underlying vif status (when applicable). 

An example of an underlying vif is \hyperlink{protocolthe-p}{the} corresponding interface inside \hyperlink{protocolthe-p}{the} kernel, or \hyperlink{protocolthe-p}{the} MFEA interface which a PIM interface matches to.


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set \hyperlink{protocolthe-p}{the} underlying vif status as UP, otherwise \hyperlink{protocolthe-p}{the} underlying vif status is set to DOWN. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_ad41bbc18cf21a7996b913b5265716616}{
\index{Vif@{Vif}!set\_\-unreachable@{set\_\-unreachable}}
\index{set\_\-unreachable@{set\_\-unreachable}!Vif@{Vif}}
\subsubsection[{set\_\-unreachable}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-unreachable (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_ad41bbc18cf21a7996b913b5265716616}


Set/reset \hyperlink{protocolthe-p}{the} vif as an unreachable interface. 


\begin{DoxyParams}{Parameters}
{\em v} & if true, then set this vif as an unreachable interface, otherwise reset it. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_a4e3bb259efc465c03d36b4590699b9e5}{
\index{Vif@{Vif}!set\_\-vif\_\-index@{set\_\-vif\_\-index}}
\index{set\_\-vif\_\-index@{set\_\-vif\_\-index}!Vif@{Vif}}
\subsubsection[{set\_\-vif\_\-index}]{\setlength{\rightskip}{0pt plus 5cm}void Vif::set\_\-vif\_\-index (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a4e3bb259efc465c03d36b4590699b9e5}


Set \hyperlink{protocolthe-p}{the} virtual interface index. 


\begin{DoxyParams}{Parameters}
{\em v} & \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} virtual interface index to set to. \\
\hline
\end{DoxyParams}
\hypertarget{classVif_aeb8f37dbd577080b5f179c5c88c9a862}{
\index{Vif@{Vif}!str@{str}}
\index{str@{str}!Vif@{Vif}}
\subsubsection[{str}]{\setlength{\rightskip}{0pt plus 5cm}string Vif::str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classVif_aeb8f37dbd577080b5f179c5c88c9a862}


Convert this \hyperlink{classVif}{Vif} from binary form to presentation format. 

\begin{DoxyReturn}{Returns}
C++ string with \hyperlink{protocolthe-p}{the} human-\/readable ASCII representation of \hyperlink{protocolthe-p}{the} \hyperlink{classVif}{Vif}. 
\end{DoxyReturn}
\hypertarget{classVif_a537278192c9d839c63122527dad79cf2}{
\index{Vif@{Vif}!vif\_\-index@{vif\_\-index}}
\index{vif\_\-index@{vif\_\-index}!Vif@{Vif}}
\subsubsection[{vif\_\-index}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t Vif::vif\_\-index (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classVif_a537278192c9d839c63122527dad79cf2}


Get \hyperlink{protocolthe-p}{the} virtual interface index. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} virtual interface index. 
\end{DoxyReturn}


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