\hypertarget{structOspfTypes}{
\section{OspfTypes Struct Reference}
\label{structOspfTypes}\index{OspfTypes@{OspfTypes}}
}


OSPF Types.  




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

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{structOspfTypes_a60eb031df0c10af753789ae76b185ec2}{Version} \{ {\bfseries V2} =  2, 
{\bfseries V3} =  3
 \}
\begin{DoxyCompactList}\small\item\em The OSPF version. \item\end{DoxyCompactList}\item 
enum \hyperlink{structOspfTypes_aa80e314cde7a3e8b749d3252c228f281}{LinkType} \{ \par
{\bfseries PointToPoint}, 
{\bfseries BROADCAST}, 
{\bfseries NBMA}, 
{\bfseries PointToMultiPoint}, 
\par
{\bfseries VirtualLink}
 \}
\begin{DoxyCompactList}\small\item\em Link Type. \item\end{DoxyCompactList}\item 
enum \hyperlink{structOspfTypes_acbef6a08bc1aea6981897f45d61dae9e}{AreaType} \{ {\bfseries NORMAL}, 
{\bfseries STUB}, 
{\bfseries NSSA}
 \}
\begin{DoxyCompactList}\small\item\em Area Type. \item\end{DoxyCompactList}\item 
enum \hyperlink{structOspfTypes_a286fe55f20721d44a78924810daf2c59}{VertexType} \{ {\bfseries Router}, 
{\bfseries Network}
 \}
\begin{DoxyCompactList}\small\item\em \hyperlink{classRouting}{Routing} Entry Type. \item\end{DoxyCompactList}\item 
enum \hyperlink{structOspfTypes_ad792211096f3ab02bc3cb0c8f27b30e9}{NSSATranslatorRole} \{ {\bfseries ALWAYS}, 
{\bfseries CANDIDATE}
 \}
\begin{DoxyCompactList}\small\item\em NSSA Translator Role. \item\end{DoxyCompactList}\item 
enum \hyperlink{structOspfTypes_a15174585b9f22bf3facbf5ba7ea2524b}{NSSATranslatorState} \{ {\bfseries ENABLED}, 
{\bfseries ELECTED}, 
{\bfseries DISABLED}
 \}
\begin{DoxyCompactList}\small\item\em NSSA Translator State. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_abe52a1f48e880751028d473f6a9f780d}{
typedef uint16\_\-t \hyperlink{structOspfTypes_abe52a1f48e880751028d473f6a9f780d}{Type}}
\label{structOspfTypes_abe52a1f48e880751028d473f6a9f780d}

\begin{DoxyCompactList}\small\item\em The type of an OSPF packet. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{
typedef uint32\_\-t \hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{RouterID}}
\label{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}

\begin{DoxyCompactList}\small\item\em Router ID. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{
typedef uint32\_\-t \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{AreaID}}
\label{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}

\begin{DoxyCompactList}\small\item\em Area ID. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_aa9ff5527ceed0789d66d95912c1bdf52}{
typedef uint16\_\-t \hyperlink{structOspfTypes_aa9ff5527ceed0789d66d95912c1bdf52}{AuType}}
\label{structOspfTypes_aa9ff5527ceed0789d66d95912c1bdf52}

\begin{DoxyCompactList}\small\item\em Authentication type: OSPFv2 standard header. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{
typedef uint32\_\-t \hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{PeerID}}
\label{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}

\begin{DoxyCompactList}\small\item\em An opaque handle that identifies a peer. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{
typedef uint32\_\-t \hyperlink{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{NeighbourID}}
\label{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}

\begin{DoxyCompactList}\small\item\em An opaque handle that identifies a neighbour. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{structOspfTypes_a4f21521455f09af31499d1df1aaded01}{
static const \hyperlink{structOspfTypes_aa9ff5527ceed0789d66d95912c1bdf52}{AuType} {\bfseries NULL\_\-AUTHENTICATION} = 0}
\label{structOspfTypes_a4f21521455f09af31499d1df1aaded01}

\item 
\hypertarget{structOspfTypes_a507635352c3ca33d19d1e08c02b19fd4}{
static const \hyperlink{structOspfTypes_aa9ff5527ceed0789d66d95912c1bdf52}{AuType} {\bfseries SIMPLE\_\-PASSWORD} = 1}
\label{structOspfTypes_a507635352c3ca33d19d1e08c02b19fd4}

\item 
\hypertarget{structOspfTypes_afb64a0d7ffa388297c245ff81c45da98}{
static const \hyperlink{structOspfTypes_aa9ff5527ceed0789d66d95912c1bdf52}{AuType} {\bfseries CRYPTOGRAPHIC\_\-AUTHENTICATION} = 2}
\label{structOspfTypes_afb64a0d7ffa388297c245ff81c45da98}

\item 
\hypertarget{structOspfTypes_a96b5a377779ed69dd66709e21487bb66}{
static const \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{AreaID} \hyperlink{structOspfTypes_a96b5a377779ed69dd66709e21487bb66}{BACKBONE} = 0}
\label{structOspfTypes_a96b5a377779ed69dd66709e21487bb66}

\begin{DoxyCompactList}\small\item\em The AreaID for \hyperlink{protocolthe-p}{the} backbone area. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_ac3472aebcf50a1728ecf00766a36a49c}{
static const uint16\_\-t \hyperlink{structOspfTypes_ac3472aebcf50a1728ecf00766a36a49c}{IP\_\-PROTOCOL\_\-NUMBER} = 89}
\label{structOspfTypes_ac3472aebcf50a1728ecf00766a36a49c}

\begin{DoxyCompactList}\small\item\em The IP protocol number used by OSPF. \item\end{DoxyCompactList}\item 
static const \hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{PeerID} \hyperlink{structOspfTypes_a26dab4d6e5dc59899ac98f559b3bc964}{ALLPEERS} = 0
\begin{DoxyCompactList}\small\item\em An identifier meaning all peers. \item\end{DoxyCompactList}\item 
static const \hyperlink{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{NeighbourID} \hyperlink{structOspfTypes_a8f1099d67092e176a321f74ed14d5e49}{ALLNEIGHBOURS} = 0
\begin{DoxyCompactList}\small\item\em An identifier meaning all neighbours. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_a0479600f15b670f9e7536064838d6155}{
static const uint32\_\-t \hyperlink{structOspfTypes_a0479600f15b670f9e7536064838d6155}{UNUSED\_\-INTERFACE\_\-ID} = 0}
\label{structOspfTypes_a0479600f15b670f9e7536064838d6155}

\begin{DoxyCompactList}\small\item\em An interface ID that will never be allocated OSPFv3 only. \item\end{DoxyCompactList}\item 
static const uint32\_\-t \hyperlink{structOspfTypes_a6d3cf35a51b35d5f133e51d8d2aa31fe}{LSRefreshTime} = 30 $\ast$ 60
\begin{DoxyCompactList}\small\item\em The maximum time between distinct originations of any particular LSA. \item\end{DoxyCompactList}\item 
static const uint32\_\-t \hyperlink{structOspfTypes_ab413215669befd609e1bf48e2c937505}{MinLSInterval} = 5
\begin{DoxyCompactList}\small\item\em The minimum time between distinct originations of any particular LSA. \item\end{DoxyCompactList}\item 
static const uint32\_\-t \hyperlink{structOspfTypes_a68cff6536c2636254ac60917866fa7d6}{MinLSArrival} = 1
\begin{DoxyCompactList}\small\item\em For any particular LSA, \hyperlink{protocolthe-p}{the} minimum time that must elapse between reception of new LSA instances during flooding. \item\end{DoxyCompactList}\item 
static const uint32\_\-t \hyperlink{structOspfTypes_ac22e36e03204089cd29ee6ccfe2aff7c}{MaxAge} = 60 $\ast$ 60
\begin{DoxyCompactList}\small\item\em The maximum age that an LSA can attain. \item\end{DoxyCompactList}\item 
static const uint32\_\-t \hyperlink{structOspfTypes_ae57fbdfd72a03a6e48d261177f909495}{CheckAge} = 5 $\ast$ 60
\begin{DoxyCompactList}\small\item\em When \hyperlink{protocolthe-p}{the} age of an LSA in \hyperlink{protocolthe-p}{the} link state database hits a multiple of CheckAge, \hyperlink{protocolthe-p}{the} LSA's checksum is verified. \item\end{DoxyCompactList}\item 
\hypertarget{structOspfTypes_aee5abe3e25b3cf439da90a3902ebfd3f}{
static const int32\_\-t {\bfseries MaxAgeDiff} = 15 $\ast$ 60}
\label{structOspfTypes_aee5abe3e25b3cf439da90a3902ebfd3f}

\item 
\hypertarget{structOspfTypes_ae9d394f52a3ff231d0de6108dc34574e}{
static const uint32\_\-t {\bfseries LSInfinity} = 0xffffff}
\label{structOspfTypes_ae9d394f52a3ff231d0de6108dc34574e}

\item 
\hypertarget{structOspfTypes_a3b28a6be94ddda67dfa2ab5ca0f132f4}{
static const uint32\_\-t {\bfseries DefaultDestination} = 0}
\label{structOspfTypes_a3b28a6be94ddda67dfa2ab5ca0f132f4}

\item 
\hypertarget{structOspfTypes_ad43bfd01e17c268407cb959f304e6c50}{
static const int32\_\-t {\bfseries InitialSequenceNumber} = 0x80000001}
\label{structOspfTypes_ad43bfd01e17c268407cb959f304e6c50}

\item 
\hypertarget{structOspfTypes_ab1740e3a307468ee315ca9cc03461d71}{
static const int32\_\-t {\bfseries MaxSequenceNumber} = 0x7fffffff}
\label{structOspfTypes_ab1740e3a307468ee315ca9cc03461d71}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
OSPF Types. 

\subsection{Member Data Documentation}
\hypertarget{structOspfTypes_a8f1099d67092e176a321f74ed14d5e49}{
\index{OspfTypes@{OspfTypes}!ALLNEIGHBOURS@{ALLNEIGHBOURS}}
\index{ALLNEIGHBOURS@{ALLNEIGHBOURS}!OspfTypes@{OspfTypes}}
\subsubsection[{ALLNEIGHBOURS}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf NeighbourID} {\bf OspfTypes::ALLNEIGHBOURS} = 0\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{structOspfTypes_a8f1099d67092e176a321f74ed14d5e49}


An identifier meaning all neighbours. 

No single neighbour can have this identifier. \hypertarget{structOspfTypes_a26dab4d6e5dc59899ac98f559b3bc964}{
\index{OspfTypes@{OspfTypes}!ALLPEERS@{ALLPEERS}}
\index{ALLPEERS@{ALLPEERS}!OspfTypes@{OspfTypes}}
\subsubsection[{ALLPEERS}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf PeerID} {\bf OspfTypes::ALLPEERS} = 0\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{structOspfTypes_a26dab4d6e5dc59899ac98f559b3bc964}


An identifier meaning all peers. 

No single peer can have this identifier. \hypertarget{structOspfTypes_ae57fbdfd72a03a6e48d261177f909495}{
\index{OspfTypes@{OspfTypes}!CheckAge@{CheckAge}}
\index{CheckAge@{CheckAge}!OspfTypes@{OspfTypes}}
\subsubsection[{CheckAge}]{\setlength{\rightskip}{0pt plus 5cm}const uint32\_\-t {\bf OspfTypes::CheckAge} = 5 $\ast$ 60\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{structOspfTypes_ae57fbdfd72a03a6e48d261177f909495}


When \hyperlink{protocolthe-p}{the} age of an LSA in \hyperlink{protocolthe-p}{the} link state database hits a multiple of CheckAge, \hyperlink{protocolthe-p}{the} LSA's checksum is verified. 

An incorrect checksum at this time indicates a serious error. The value of CheckAge is set to 5 minutes. \hypertarget{structOspfTypes_a6d3cf35a51b35d5f133e51d8d2aa31fe}{
\index{OspfTypes@{OspfTypes}!LSRefreshTime@{LSRefreshTime}}
\index{LSRefreshTime@{LSRefreshTime}!OspfTypes@{OspfTypes}}
\subsubsection[{LSRefreshTime}]{\setlength{\rightskip}{0pt plus 5cm}const uint32\_\-t {\bf OspfTypes::LSRefreshTime} = 30 $\ast$ 60\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{structOspfTypes_a6d3cf35a51b35d5f133e51d8d2aa31fe}


The maximum time between distinct originations of any particular LSA. 

If \hyperlink{protocolthe-p}{the} LS age field of one of \hyperlink{protocolthe-p}{the} router's self-\/originated LSAs reaches \hyperlink{protocolthe-p}{the} value LSRefreshTime, a new instance of \hyperlink{protocolthe-p}{the} LSA is originated, even though \hyperlink{protocolthe-p}{the} contents of \hyperlink{protocolthe-p}{the} LSA (apart from \hyperlink{protocolthe-p}{the} LSA header) will be \hyperlink{protocolthe-p}{the} same. The value of LSRefreshTime is set to 30 minutes. \hypertarget{structOspfTypes_ac22e36e03204089cd29ee6ccfe2aff7c}{
\index{OspfTypes@{OspfTypes}!MaxAge@{MaxAge}}
\index{MaxAge@{MaxAge}!OspfTypes@{OspfTypes}}
\subsubsection[{MaxAge}]{\setlength{\rightskip}{0pt plus 5cm}const uint32\_\-t {\bf OspfTypes::MaxAge} = 60 $\ast$ 60\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{structOspfTypes_ac22e36e03204089cd29ee6ccfe2aff7c}


The maximum age that an LSA can attain. 

When an LSA's LS age field reaches MaxAge, it is reflooded in an attempt to flush \hyperlink{protocolthe-p}{the} LSA from \hyperlink{protocolthe-p}{the} routing domain. LSAs of age MaxAge are not used in \hyperlink{protocolthe-p}{the} routing table calculation. The value of MaxAge is set to 1 hour. \hypertarget{structOspfTypes_a68cff6536c2636254ac60917866fa7d6}{
\index{OspfTypes@{OspfTypes}!MinLSArrival@{MinLSArrival}}
\index{MinLSArrival@{MinLSArrival}!OspfTypes@{OspfTypes}}
\subsubsection[{MinLSArrival}]{\setlength{\rightskip}{0pt plus 5cm}const uint32\_\-t {\bf OspfTypes::MinLSArrival} = 1\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{structOspfTypes_a68cff6536c2636254ac60917866fa7d6}


For any particular LSA, \hyperlink{protocolthe-p}{the} minimum time that must elapse between reception of new LSA instances during flooding. 

LSA instances received at higher frequencies are discarded. The value of MinLSArrival is set to 1 second. \hypertarget{structOspfTypes_ab413215669befd609e1bf48e2c937505}{
\index{OspfTypes@{OspfTypes}!MinLSInterval@{MinLSInterval}}
\index{MinLSInterval@{MinLSInterval}!OspfTypes@{OspfTypes}}
\subsubsection[{MinLSInterval}]{\setlength{\rightskip}{0pt plus 5cm}const uint32\_\-t {\bf OspfTypes::MinLSInterval} = 5\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{structOspfTypes_ab413215669befd609e1bf48e2c937505}


The minimum time between distinct originations of any particular LSA. 

The value of MinLSInterval is set to 5 seconds. 

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