\hypertarget{classVlink}{
\section{Vlink$<$ A $>$ Class Template Reference}
\label{classVlink}\index{Vlink@{Vlink}}
}


Manage all \hyperlink{protocolthe-p}{the} state for virtual links.  




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

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structVlink_1_1Vstate}{Vstate}
\begin{DoxyCompactList}\small\item\em State about each virtual link. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classVlink_ad01abc10b14bace37e8d4f8a10eb0f5a}{
bool \hyperlink{classVlink_ad01abc10b14bace37e8d4f8a10eb0f5a}{create\_\-vlink} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid)}
\label{classVlink_ad01abc10b14bace37e8d4f8a10eb0f5a}

\begin{DoxyCompactList}\small\item\em Add a virtual link router ID to \hyperlink{protocolthe-p}{the} database. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_ab6bb6d7fe1493b3966e953154af479a3}{
bool \hyperlink{classVlink_ab6bb6d7fe1493b3966e953154af479a3}{delete\_\-vlink} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid)}
\label{classVlink_ab6bb6d7fe1493b3966e953154af479a3}

\begin{DoxyCompactList}\small\item\em Remove this router ID from \hyperlink{protocolthe-p}{the} database. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a7491b8e2a48ff7d817f5d87f0c38e4e4}{
bool \hyperlink{classVlink_a7491b8e2a48ff7d817f5d87f0c38e4e4}{set\_\-transit\_\-area} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} transit\_\-area)}
\label{classVlink_a7491b8e2a48ff7d817f5d87f0c38e4e4}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} transmit area through which \hyperlink{protocolthe-p}{the} virtual link is formed. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a61dec6234942c7dfb48b31211b753a6a}{
bool \hyperlink{classVlink_a61dec6234942c7dfb48b31211b753a6a}{get\_\-transit\_\-area} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} \&transit\_\-area) const }
\label{classVlink_a61dec6234942c7dfb48b31211b753a6a}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} transmit area information. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a4df66f9bcee11608ea8daf853ac67be8}{
bool \hyperlink{classVlink_a4df66f9bcee11608ea8daf853ac67be8}{set\_\-transit\_\-area\_\-notified} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, bool state)}
\label{classVlink_a4df66f9bcee11608ea8daf853ac67be8}

\begin{DoxyCompactList}\small\item\em Set state to know if \hyperlink{protocolthe-p}{the} area has been notified about this virtual link. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_ac63185aa4ea048e08bd7cf9848aa6913}{
bool \hyperlink{classVlink_ac63185aa4ea048e08bd7cf9848aa6913}{get\_\-transit\_\-area\_\-notified} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid) const }
\label{classVlink_ac63185aa4ea048e08bd7cf9848aa6913}

\begin{DoxyCompactList}\small\item\em Has \hyperlink{protocolthe-p}{the} area been notified? \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a4add88be8aedc54ba7136e7652dc2dc1}{
bool \hyperlink{classVlink_a4add88be8aedc54ba7136e7652dc2dc1}{add\_\-address} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, A source, A destination)}
\label{classVlink_a4add88be8aedc54ba7136e7652dc2dc1}

\begin{DoxyCompactList}\small\item\em Associate \hyperlink{protocolthe-p}{the} endpoint addresses with this virtual link. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a3430ececd0001496b5202629adbf924b}{
bool \hyperlink{classVlink_a3430ececd0001496b5202629adbf924b}{get\_\-address} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, A \&source, A \&destination)}
\label{classVlink_a3430ececd0001496b5202629adbf924b}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} endpoint addresses of this virtual link. \item\end{DoxyCompactList}\item 
bool \hyperlink{classVlink_acf04f0b316318cba93ec90a3ddd78e6d}{get\_\-interface\_\-vif} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, string \&interface, string \&vif) const 
\begin{DoxyCompactList}\small\item\em Provide an interface and vif for this router ID. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a7e3a8d60cef854da0f7b049e0fb9027e}{
bool \hyperlink{classVlink_a7e3a8d60cef854da0f7b049e0fb9027e}{add\_\-peerid} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, \hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{OspfTypes::PeerID} peerid)}
\label{classVlink_a7e3a8d60cef854da0f7b049e0fb9027e}

\begin{DoxyCompactList}\small\item\em \hyperlink{classSave}{Save} \hyperlink{protocolthe-p}{the} peerid that has been allocted to this virtual link. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a237a67ce0da335608d7225f84df5b74f}{
\hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{OspfTypes::PeerID} \hyperlink{classVlink_a237a67ce0da335608d7225f84df5b74f}{get\_\-peerid} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid) const }
\label{classVlink_a237a67ce0da335608d7225f84df5b74f}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} associated peerid. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a01c2130def4110d75df857b0b68f4d87}{
bool \hyperlink{classVlink_a01c2130def4110d75df857b0b68f4d87}{set\_\-physical\_\-interface\_\-vif} (\hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, string \&interface, string \&vif)}
\label{classVlink_a01c2130def4110d75df857b0b68f4d87}

\begin{DoxyCompactList}\small\item\em The phyical interface and vif that should be used for transmission. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a5b1d8fb07ace26cbabccd541aa896b3d}{
bool \hyperlink{classVlink_a5b1d8fb07ace26cbabccd541aa896b3d}{get\_\-physical\_\-interface\_\-vif} (A source, A destination, string \&interface, string \&vif) const }
\label{classVlink_a5b1d8fb07ace26cbabccd541aa896b3d}

\begin{DoxyCompactList}\small\item\em Given \hyperlink{protocolthe-p}{the} source and destination addresses return \hyperlink{protocolthe-p}{the} interface and vif. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a65a72fd3fa55a33cff130ac1aef10277}{
\hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{OspfTypes::PeerID} \hyperlink{classVlink_a65a72fd3fa55a33cff130ac1aef10277}{get\_\-peerid} (A source, A destination) const }
\label{classVlink_a65a72fd3fa55a33cff130ac1aef10277}

\begin{DoxyCompactList}\small\item\em Given \hyperlink{protocolthe-p}{the} source and destination address find \hyperlink{protocolthe-p}{the} PeerID of \hyperlink{protocolthe-p}{the} relevant virtual link. \item\end{DoxyCompactList}\item 
\hypertarget{classVlink_a6c3d342bac2ac37ea08aa2969ba529a3}{
void \hyperlink{classVlink_a6c3d342bac2ac37ea08aa2969ba529a3}{get\_\-router\_\-ids} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} transit\_\-area, list$<$ \hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} $>$ \&rids) const }
\label{classVlink_a6c3d342bac2ac37ea08aa2969ba529a3}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} list of virtual links (router ids) that flow through this area. \item\end{DoxyCompactList}\item 
void \hyperlink{classVlink_a52d1e5dfbf666f422081ec085bc2d038}{area\_\-removed} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)
\begin{DoxyCompactList}\small\item\em This area has been removed mark all \hyperlink{protocolthe-p}{the} notified for this area to false. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classVlink_a28f8eaa9299f20b615c3813c553fcf68}{
map$<$ \hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID}, \hyperlink{structVlink_1_1Vstate}{Vstate} $>$ {\bfseries \_\-vlinks}}
\label{classVlink_a28f8eaa9299f20b615c3813c553fcf68}

\end{DoxyCompactItemize}


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

Manage all \hyperlink{protocolthe-p}{the} state for virtual links. 

\subsection{Member Function Documentation}
\hypertarget{classVlink_a52d1e5dfbf666f422081ec085bc2d038}{
\index{Vlink@{Vlink}!area\_\-removed@{area\_\-removed}}
\index{area\_\-removed@{area\_\-removed}!Vlink@{Vlink}}
\subsubsection[{area\_\-removed}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf Vlink}$<$ A $>$::area\_\-removed (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area}
\end{DoxyParamCaption}
)}}
\label{classVlink_a52d1e5dfbf666f422081ec085bc2d038}


This area has been removed mark all \hyperlink{protocolthe-p}{the} notified for this area to false. 

Allowing an area to be removed and then brought back. \hypertarget{classVlink_acf04f0b316318cba93ec90a3ddd78e6d}{
\index{Vlink@{Vlink}!get\_\-interface\_\-vif@{get\_\-interface\_\-vif}}
\index{get\_\-interface\_\-vif@{get\_\-interface\_\-vif}!Vlink@{Vlink}}
\subsubsection[{get\_\-interface\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf Vlink}$<$ A $>$::get\_\-interface\_\-vif (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::RouterID}}]{rid, }
\item[{string \&}]{interface, }
\item[{string \&}]{vif}
\end{DoxyParamCaption}
) const}}
\label{classVlink_acf04f0b316318cba93ec90a3ddd78e6d}


Provide an interface and vif for this router ID. 

Must not be called before \hyperlink{protocolthe-p}{the} address information has been provided. 

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