\hypertarget{classPeerOut}{
\section{PeerOut$<$ A $>$ Class Template Reference}
\label{classPeerOut}\index{PeerOut@{PeerOut}}
}


In OSPF terms this class represents an interface/link; interface is too overloaded a term.  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPeerOut_a7f420c0e60189f740376956fae22d8de}{
{\bfseries PeerOut} (\hyperlink{classOspf}{Ospf}$<$ A $>$ \&ospf, const string interface, const string vif, \hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{OspfTypes::PeerID} peerid, const A source, \hyperlink{structOspfTypes_aa80e314cde7a3e8b749d3252c228f281}{OspfTypes::LinkType} linktype, \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, \hyperlink{structOspfTypes_acbef6a08bc1aea6981897f45d61dae9e}{OspfTypes::AreaType} area\_\-type)}
\label{classPeerOut_a7f420c0e60189f740376956fae22d8de}

\item 
\hypertarget{classPeerOut_ae032648d7a7a638db7c9395b017f8836}{
string \hyperlink{classPeerOut_ae032648d7a7a638db7c9395b017f8836}{get\_\-if\_\-name} () const }
\label{classPeerOut_ae032648d7a7a638db7c9395b017f8836}

\begin{DoxyCompactList}\small\item\em For debugging only printable rendition of this interface/vif. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ace91ed56c5d2ecd7f46099685ad2a621}{
bool \hyperlink{classPeerOut_ace91ed56c5d2ecd7f46099685ad2a621}{match} (A source, string \&interface, string \&vif)}
\label{classPeerOut_ace91ed56c5d2ecd7f46099685ad2a621}

\begin{DoxyCompactList}\small\item\em If \hyperlink{protocolthe-p}{the} source address matches \hyperlink{protocolthe-p}{the} interface address return \hyperlink{protocolthe-p}{the} interface and vif. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a8290020cb9eb4bd3e3a3c9c8eb73880e}{
\hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{OspfTypes::PeerID} \hyperlink{classPeerOut_a8290020cb9eb4bd3e3a3c9c8eb73880e}{get\_\-peerid} () const }
\label{classPeerOut_a8290020cb9eb4bd3e3a3c9c8eb73880e}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{classPeer}{Peer} ID. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a196135474695f0910c679247be0067c4}{
bool \hyperlink{classPeerOut_a196135474695f0910c679247be0067c4}{set\_\-interface\_\-address} (A interface\_\-address)}
\label{classPeerOut_a196135474695f0910c679247be0067c4}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} address of this interface/vif. \item\end{DoxyCompactList}\item 
A \hyperlink{classPeerOut_a82a80c7daa710260f85ca9b397fe5827}{get\_\-interface\_\-address} () const 
\begin{DoxyCompactList}\small\item\em \hyperlink{structAddress}{Address} of this interface/vif. \item\end{DoxyCompactList}\item 
uint16\_\-t \hyperlink{classPeerOut_ad83d7b45b9268b93b5bb36ed13f70a88}{get\_\-interface\_\-prefix\_\-length} () const 
\item 
uint16\_\-t \hyperlink{classPeerOut_a1815c6eb1a5e31de97d6a50d7a4e5387}{get\_\-interface\_\-mtu} () const 
\item 
uint16\_\-t \hyperlink{classPeerOut_a65e85eaa35eb7f09c80db938b0b07f73}{get\_\-frame\_\-size} () const 
\begin{DoxyCompactList}\small\item\em The maximum size of an OSPF frame, \hyperlink{protocolthe-p}{the} MTU minus \hyperlink{protocolthe-p}{the} IP header. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a74240f3d48709c86400baf93d43ac3b7}{
void \hyperlink{classPeerOut_a74240f3d48709c86400baf93d43ac3b7}{join\_\-multicast\_\-group} (A address)}
\label{classPeerOut_a74240f3d48709c86400baf93d43ac3b7}

\begin{DoxyCompactList}\small\item\em Join multicast group on this interface/vif. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ab1b2aaebd46c164dfb204100e40ca388}{
void \hyperlink{classPeerOut_ab1b2aaebd46c164dfb204100e40ca388}{leave\_\-multicast\_\-group} (A address)}
\label{classPeerOut_ab1b2aaebd46c164dfb204100e40ca388}

\begin{DoxyCompactList}\small\item\em Leave multicast group on this interface/vif. \item\end{DoxyCompactList}\item 
uint16\_\-t \hyperlink{classPeerOut_a8424f2ad33285ca881960848ca8297ab}{get\_\-interface\_\-cost} () const 
\item 
uint16\_\-t \hyperlink{classPeerOut_a129bbd8f61de7f79967c58a3c1261e32}{get\_\-inftransdelay} () const 
\item 
\hypertarget{classPeerOut_a8222f9736783bac0ca3e5296a3217152}{
bool \hyperlink{classPeerOut_a8222f9736783bac0ca3e5296a3217152}{get\_\-areas} (list$<$ \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} $>$ \&areas) const }
\label{classPeerOut_a8222f9736783bac0ca3e5296a3217152}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} list of areas associated with this peer. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ae59ec0dba6feeacfbf59ac9dc7233bf5}{
bool \hyperlink{classPeerOut_ae59ec0dba6feeacfbf59ac9dc7233bf5}{add\_\-area} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, \hyperlink{structOspfTypes_acbef6a08bc1aea6981897f45d61dae9e}{OspfTypes::AreaType} area\_\-type)}
\label{classPeerOut_ae59ec0dba6feeacfbf59ac9dc7233bf5}

\begin{DoxyCompactList}\small\item\em Add another Area for this peer to be in, should only be allowed for OSPFv3. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a78940900b31a2993d5b1edbd8c355adf}{
bool \hyperlink{classPeerOut_a78940900b31a2993d5b1edbd8c355adf}{change\_\-area\_\-router\_\-type} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, \hyperlink{structOspfTypes_acbef6a08bc1aea6981897f45d61dae9e}{OspfTypes::AreaType} area\_\-type)}
\label{classPeerOut_a78940900b31a2993d5b1edbd8c355adf}

\begin{DoxyCompactList}\small\item\em Change \hyperlink{protocolthe-p}{the} type of this area. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_a33f38f49ad50144107d017f57b4bd73a}{remove\_\-area} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)
\begin{DoxyCompactList}\small\item\em This area is being removed. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ad968c6482a42be66b8dc92d7b2900c6e}{
bool \hyperlink{classPeerOut_ad968c6482a42be66b8dc92d7b2900c6e}{add\_\-neighbour} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, A neighbour\_\-address, \hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID})}
\label{classPeerOut_ad968c6482a42be66b8dc92d7b2900c6e}

\begin{DoxyCompactList}\small\item\em Add a neighbour to \hyperlink{protocolthe-p}{the} peer. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a7f30ed0edf2ed1c391b18bb6c33b08e1}{
bool \hyperlink{classPeerOut_a7f30ed0edf2ed1c391b18bb6c33b08e1}{remove\_\-neighbour} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, A neighbour\_\-address, \hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid)}
\label{classPeerOut_a7f30ed0edf2ed1c391b18bb6c33b08e1}

\begin{DoxyCompactList}\small\item\em Remove a neighbour from \hyperlink{protocolthe-p}{the} peer. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a41b8ad17c0a540c2a32dc34e2b34f3e8}{
void \hyperlink{classPeerOut_a41b8ad17c0a540c2a32dc34e2b34f3e8}{set\_\-state} (bool state)}
\label{classPeerOut_a41b8ad17c0a540c2a32dc34e2b34f3e8}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} state of this peer. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a387f64db4a5e3cd1d661b5c6029aa60e}{
bool \hyperlink{classPeerOut_a387f64db4a5e3cd1d661b5c6029aa60e}{get\_\-state} () const }
\label{classPeerOut_a387f64db4a5e3cd1d661b5c6029aa60e}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} state of this peer. \item\end{DoxyCompactList}\item 
void \hyperlink{classPeerOut_a68dc5f524c655002e5608bbb349b3868}{set\_\-link\_\-status} (bool status, const char $\ast$dbg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} link status. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ad552cd97d0c53c8a06e4846c4bfcba96}{
void \hyperlink{classPeerOut_ad552cd97d0c53c8a06e4846c4bfcba96}{peer\_\-change} ()}
\label{classPeerOut_ad552cd97d0c53c8a06e4846c4bfcba96}

\begin{DoxyCompactList}\small\item\em Dependent on \hyperlink{protocolthe-p}{the} configured peer status and \hyperlink{protocolthe-p}{the} link status decide if \hyperlink{protocolthe-p}{the} peer should be brought up or taken down. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a635946e5de07bf463df9c6a33d90806f}{
bool \hyperlink{classPeerOut_a635946e5de07bf463df9c6a33d90806f}{transmit} (typename \hyperlink{classTransmit}{Transmit}$<$ A $>$::TransmitRef tr)}
\label{classPeerOut_a635946e5de07bf463df9c6a33d90806f}

\begin{DoxyCompactList}\small\item\em Used by external and internal entities to transmit packets. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_acb2fc58cdfe875a569a244797658f2b1}{
bool \hyperlink{classPeerOut_acb2fc58cdfe875a569a244797658f2b1}{receive} (A dst, A src, \hyperlink{classPacket}{Packet} $\ast$packet)  throw (BadPeer)}
\label{classPeerOut_acb2fc58cdfe875a569a244797658f2b1}

\begin{DoxyCompactList}\small\item\em Packets for this peer are received here. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_a38a891ead4bb67f680f33dee4b6510d6}{send\_\-lsa} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, const \hyperlink{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{OspfTypes::NeighbourID} nid, \hyperlink{classref__ptr}{Lsa::LsaRef} lsar)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} this LSA directly to \hyperlink{protocolthe-p}{the} neighbour. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_aad0f9e24522695d7d1789a2ced48a512}{queue\_\-lsa} (\hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{OspfTypes::PeerID} peerid, \hyperlink{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{OspfTypes::NeighbourID} nid, \hyperlink{classref__ptr}{Lsa::LsaRef} lsar, bool \&multicast\_\-on\_\-peer) const 
\begin{DoxyCompactList}\small\item\em Queue an LSA for transmission. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a3700578b8e9ee0df558a6c88d5c3678c}{
bool \hyperlink{classPeerOut_a3700578b8e9ee0df558a6c88d5c3678c}{push\_\-lsas} (const char $\ast$message)}
\label{classPeerOut_a3700578b8e9ee0df558a6c88d5c3678c}

\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} (push) any queued LSAs. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_aaf85efab5bf44da7b8dfb34b9ff5b856}{neighbours\_\-exchange\_\-or\_\-loading} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)
\begin{DoxyCompactList}\small\item\em Are any of \hyperlink{protocolthe-p}{the} neighbours of this peer in \hyperlink{protocolthe-p}{the} state exchange or loading. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_abb33629cc5d29f27ab3fdd73781fec5d}{neighbour\_\-at\_\-least\_\-two\_\-way} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, \hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, bool \&twoway)
\begin{DoxyCompactList}\small\item\em Is \hyperlink{protocolthe-p}{the} state of \hyperlink{protocolthe-p}{the} neighbour with \hyperlink{protocolthe-p}{the} specified Router ID at least 2-\/Way. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_a89685630aeaaa59129388ce9c00868a1}{get\_\-neighbour\_\-address} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, \hyperlink{structOspfTypes_a8fc36f0cbcee50cfdb0d10b192aaa53a}{OspfTypes::RouterID} rid, uint32\_\-t interface\_\-id, A \&neighbour\_\-address)
\begin{DoxyCompactList}\small\item\em Neighbour's source address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_ae17de125b115e45a1e64a2cf31f4b590}{on\_\-link\_\-state\_\-request\_\-list} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, const \hyperlink{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{OspfTypes::NeighbourID} nid, \hyperlink{classref__ptr}{Lsa::LsaRef} lsar)
\begin{DoxyCompactList}\small\item\em Is this LSA on this neighbours link state request list. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_aaabfe3704910dde3506d9f5fcf7bbf4f}{event\_\-bad\_\-link\_\-state\_\-request} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, const \hyperlink{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{OspfTypes::NeighbourID} nid)
\begin{DoxyCompactList}\small\item\em Generate a BadLSReq event. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_a6bb8e5cd21f85f6ac7b9a9b1cabbb62f}{virtual\_\-link\_\-endpoint} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)
\begin{DoxyCompactList}\small\item\em Are any of neighbours of this peer a virtual link endpoint. \item\end{DoxyCompactList}\item 
\hyperlink{structOspfTypes_aa80e314cde7a3e8b749d3252c228f281}{OspfTypes::LinkType} \hyperlink{classPeerOut_ae1f45b04dabf9aebfe7ff14d42a6941b}{get\_\-linktype} () const 
\item 
\hypertarget{classPeerOut_a64874761459df73ddf951ae4451a678e}{
void \hyperlink{classPeerOut_a64874761459df73ddf951ae4451a678e}{router\_\-id\_\-changing} ()}
\label{classPeerOut_a64874761459df73ddf951ae4451a678e}

\begin{DoxyCompactList}\small\item\em The router ID is about to change. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ae8e945cf784ae668c9d95e8f45778308}{
bool \hyperlink{classPeerOut_ae8e945cf784ae668c9d95e8f45778308}{set\_\-interface\_\-id} (uint32\_\-t interface\_\-id)}
\label{classPeerOut_ae8e945cf784ae668c9d95e8f45778308}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} interface ID OSPFv3 only. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a56fdc2223074cf48b4424ee7069c1a9e}{
uint32\_\-t \hyperlink{classPeerOut_a56fdc2223074cf48b4424ee7069c1a9e}{get\_\-interface\_\-id} () const }
\label{classPeerOut_a56fdc2223074cf48b4424ee7069c1a9e}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} interface ID OSPFv3 only. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a14518fc19d07e496aa41fb2345a926d4}{
bool \hyperlink{classPeerOut_a14518fc19d07e496aa41fb2345a926d4}{get\_\-attached\_\-routers} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, list$<$ \hyperlink{structRouterInfo}{RouterInfo} $>$ \&routes)}
\label{classPeerOut_a14518fc19d07e496aa41fb2345a926d4}

\begin{DoxyCompactList}\small\item\em Return a list of \hyperlink{protocolthe-p}{the} fully adjacent routers. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a179f23d40a644fad7f960536e368a119}{
bool \hyperlink{classPeerOut_a179f23d40a644fad7f960536e368a119}{add\_\-advertise\_\-net} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, A addr, uint32\_\-t prefix)}
\label{classPeerOut_a179f23d40a644fad7f960536e368a119}

\begin{DoxyCompactList}\small\item\em Set a network to advertise OSPFv3 only. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_aa1dbb70c331d26ed2fe7291febdf7a72}{
bool \hyperlink{classPeerOut_aa1dbb70c331d26ed2fe7291febdf7a72}{remove\_\-all\_\-nets} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)}
\label{classPeerOut_aa1dbb70c331d26ed2fe7291febdf7a72}

\begin{DoxyCompactList}\small\item\em Remove all \hyperlink{protocolthe-p}{the} networks that are being advertised OSPFv3 only. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_afae85a7276fd0c623eb295ca9d7dedcd}{
bool \hyperlink{classPeerOut_afae85a7276fd0c623eb295ca9d7dedcd}{update\_\-nets} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)}
\label{classPeerOut_afae85a7276fd0c623eb295ca9d7dedcd}

\begin{DoxyCompactList}\small\item\em Calls to \hyperlink{classPeerOut_a179f23d40a644fad7f960536e368a119}{add\_\-advertise\_\-net()} and \hyperlink{classPeerOut_aa1dbb70c331d26ed2fe7291febdf7a72}{remove\_\-all\_\-nets()} must be followed by a call to update nets to force a new Link-\/LSA to be sent out OSPFv3 only. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a7f3f88134445fb2edf46f35cd332beed}{
bool \hyperlink{classPeerOut_a7f3f88134445fb2edf46f35cd332beed}{set\_\-hello\_\-interval} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, uint16\_\-t hello\_\-interval)}
\label{classPeerOut_a7f3f88134445fb2edf46f35cd332beed}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} hello interval in seconds. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a2fb77926170e949a4f0d8a2f710026e5}{
bool \hyperlink{classPeerOut_a2fb77926170e949a4f0d8a2f710026e5}{set\_\-options} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, uint32\_\-t options)}
\label{classPeerOut_a2fb77926170e949a4f0d8a2f710026e5}

\begin{DoxyCompactList}\small\item\em Set options. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ad876e6cdf6484ce6e1a33e688615443b}{
bool \hyperlink{classPeerOut_ad876e6cdf6484ce6e1a33e688615443b}{set\_\-router\_\-priority} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, uint8\_\-t priority)}
\label{classPeerOut_ad876e6cdf6484ce6e1a33e688615443b}

\begin{DoxyCompactList}\small\item\em Set router priority. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_aaab9288c805cafb1ef7ddbab729d36c5}{
bool \hyperlink{classPeerOut_aaab9288c805cafb1ef7ddbab729d36c5}{set\_\-router\_\-dead\_\-interval} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, uint32\_\-t router\_\-dead\_\-interval)}
\label{classPeerOut_aaab9288c805cafb1ef7ddbab729d36c5}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} router dead interval in seconds. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_ada9c6f9b11cc908d82c17eddd69500fa}{set\_\-simple\_\-authentication\_\-key} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, const string \&password, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set a simple password authentication key. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_aeeb9e708b3d0016477d3ed25c7029a2d}{delete\_\-simple\_\-authentication\_\-key} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete a simple password authentication key. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_aea9b090eeab0c07f093ea9741f9a4507}{set\_\-md5\_\-authentication\_\-key} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, uint8\_\-t key\_\-id, const string \&password, const \hyperlink{classTimeVal}{TimeVal} \&start\_\-timeval, const \hyperlink{classTimeVal}{TimeVal} \&end\_\-timeval, const \hyperlink{classTimeVal}{TimeVal} \&max\_\-time\_\-drift, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set an MD5 authentication key. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_a3e10e409b536a84406df850f765fb972}{delete\_\-md5\_\-authentication\_\-key} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, uint8\_\-t key\_\-id, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Delete an MD5 authentication key. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_aba9c3e3e7dd8e2397e36be451c52a8a9}{
bool \hyperlink{classPeerOut_aba9c3e3e7dd8e2397e36be451c52a8a9}{set\_\-passive} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, bool passive, bool host)}
\label{classPeerOut_aba9c3e3e7dd8e2397e36be451c52a8a9}

\begin{DoxyCompactList}\small\item\em Toggle \hyperlink{protocolthe-p}{the} passive status of an interface. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ae18b31f7a902e78e02ca21f5a6d16bbc}{
bool \hyperlink{classPeerOut_ae18b31f7a902e78e02ca21f5a6d16bbc}{set\_\-interface\_\-cost} (uint16\_\-t interface\_\-cost)}
\label{classPeerOut_ae18b31f7a902e78e02ca21f5a6d16bbc}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} interface cost. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a9541aabdce56a3f7c1cc8ef877463238}{
bool \hyperlink{classPeerOut_a9541aabdce56a3f7c1cc8ef877463238}{set\_\-retransmit\_\-interval} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, uint16\_\-t retransmit\_\-interval)}
\label{classPeerOut_a9541aabdce56a3f7c1cc8ef877463238}

\begin{DoxyCompactList}\small\item\em Set RxmtInterval. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a6e997823cdde58b86b678e2b1b8df385}{
bool \hyperlink{classPeerOut_a6e997823cdde58b86b678e2b1b8df385}{set\_\-inftransdelay} (uint16\_\-t inftransdelay)}
\label{classPeerOut_a6e997823cdde58b86b678e2b1b8df385}

\begin{DoxyCompactList}\small\item\em Set InfTransDelay. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a2dfc0acc8039bec6fced412902824596}{
bool \hyperlink{classPeerOut_a2dfc0acc8039bec6fced412902824596}{get\_\-neighbour\_\-list} (list$<$ \hyperlink{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{OspfTypes::NeighbourID} $>$ \&neighbours) const }
\label{classPeerOut_a2dfc0acc8039bec6fced412902824596}

\begin{DoxyCompactList}\small\item\em Get a list of all \hyperlink{protocolthe-p}{the} neighbours. \item\end{DoxyCompactList}\item 
bool \hyperlink{classPeerOut_a80f28f40a7b1611c33b07eaa1d5a16c9}{get\_\-neighbour\_\-info} (\hyperlink{structOspfTypes_ab410d0371b8456f91ff133e6edf9da3f}{OspfTypes::NeighbourID} nid, \hyperlink{structNeighbourInfo}{NeighbourInfo} \&ninfo) const 
\begin{DoxyCompactList}\small\item\em Get state information about this neighbour. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a1eb600e77c3a3bbfdc308e35e192a998}{
set$<$ \hyperlink{structAddressInfo}{AddressInfo}$<$ A $>$ $>$ \& \hyperlink{classPeerOut_a1eb600e77c3a3bbfdc308e35e192a998}{get\_\-address\_\-info} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)}
\label{classPeerOut_a1eb600e77c3a3bbfdc308e35e192a998}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} set of addresses that should be advertised OSPFv3 only. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_afe90ba13a6cd2792cabcf2c92ddd3b0e}{
void \hyperlink{classPeerOut_afe90ba13a6cd2792cabcf2c92ddd3b0e}{start\_\-receiving\_\-packets} ()}
\label{classPeerOut_afe90ba13a6cd2792cabcf2c92ddd3b0e}

\begin{DoxyCompactList}\small\item\em Enable receiving packets on this interface. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_ad58a8a0b6ae158ef87ddc461804eb813}{
void \hyperlink{classPeerOut_ad58a8a0b6ae158ef87ddc461804eb813}{stop\_\-receiving\_\-packets} ()}
\label{classPeerOut_ad58a8a0b6ae158ef87ddc461804eb813}

\begin{DoxyCompactList}\small\item\em Disable receiving packets on this interface. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a7ced73addd5b834d14b5fc7ee49e64be}{
{\footnotesize template$<$$>$ }\\bool {\bfseries match} (\hyperlink{classIPv6}{IPv6} source, string \&interface, string \&vif)}
\label{classPeerOut_a7ced73addd5b834d14b5fc7ee49e64be}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPeerOut_a312e5cb929683c3e82dca313228e2c52}{
void \hyperlink{classPeerOut_a312e5cb929683c3e82dca313228e2c52}{set\_\-mask} (\hyperlink{classPeer}{Peer}$<$ A $>$ $\ast$peer)}
\label{classPeerOut_a312e5cb929683c3e82dca313228e2c52}

\begin{DoxyCompactList}\small\item\em If this \hyperlink{classIPv4}{IPv4} then set \hyperlink{protocolthe-p}{the} mask in \hyperlink{protocolthe-p}{the} hello packet. \item\end{DoxyCompactList}\item 
\hypertarget{classPeerOut_a08a50914b797496033a97a334ca9b393}{
bool {\bfseries bring\_\-up\_\-peering} ()}
\label{classPeerOut_a08a50914b797496033a97a334ca9b393}

\item 
\hypertarget{classPeerOut_af3c7baaff8fede602791fb818e9ba846}{
void {\bfseries take\_\-down\_\-peering} ()}
\label{classPeerOut_af3c7baaff8fede602791fb818e9ba846}

\item 
\hypertarget{classPeerOut_a7d1b58560459486ecc5aa345997dc663}{
bool \hyperlink{classPeerOut_a7d1b58560459486ecc5aa345997dc663}{get\_\-passive} ()}
\label{classPeerOut_a7d1b58560459486ecc5aa345997dc663}

\begin{DoxyCompactList}\small\item\em Are all \hyperlink{protocolthe-p}{the} peers in a passive state. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classPeerOut_a00ffea33b010617d4983bb01d946df82}{
\hyperlink{classOspf}{Ospf}$<$ A $>$ \& {\bfseries \_\-ospf}}
\label{classPeerOut_a00ffea33b010617d4983bb01d946df82}

\item 
\hypertarget{classPeerOut_a8c47cd652936bfed188999f0febf4e0c}{
const string {\bfseries \_\-interface}}
\label{classPeerOut_a8c47cd652936bfed188999f0febf4e0c}

\item 
\hypertarget{classPeerOut_a1bd1fb4aae4003335ce12fad3f1c269f}{
const string {\bfseries \_\-vif}}
\label{classPeerOut_a1bd1fb4aae4003335ce12fad3f1c269f}

\item 
\hypertarget{classPeerOut_a2e4c9cad845f1692db2ee02231c536f1}{
const \hyperlink{structOspfTypes_a7b2f7f140158710a1b85588be80ca64d}{OspfTypes::PeerID} {\bfseries \_\-peerid}}
\label{classPeerOut_a2e4c9cad845f1692db2ee02231c536f1}

\item 
\hypertarget{classPeerOut_aef6ac56d609f451bb008c7d20ae1cd2c}{
uint32\_\-t {\bfseries \_\-interface\_\-id}}
\label{classPeerOut_aef6ac56d609f451bb008c7d20ae1cd2c}

\item 
\hypertarget{classPeerOut_a5cff3335d750be24207f7bf19da0c005}{
A {\bfseries \_\-interface\_\-address}}
\label{classPeerOut_a5cff3335d750be24207f7bf19da0c005}

\item 
\hypertarget{classPeerOut_a477f4eb0115dadbdebee8b6524b51236}{
uint16\_\-t {\bfseries \_\-interface\_\-prefix\_\-length}}
\label{classPeerOut_a477f4eb0115dadbdebee8b6524b51236}

\item 
\hypertarget{classPeerOut_ac8caaa366ff918c6997a322a541bd252}{
uint16\_\-t {\bfseries \_\-interface\_\-mtu}}
\label{classPeerOut_ac8caaa366ff918c6997a322a541bd252}

\item 
\hypertarget{classPeerOut_af55e86aa99d4510339d73d564508d1d7}{
uint16\_\-t {\bfseries \_\-interface\_\-cost}}
\label{classPeerOut_af55e86aa99d4510339d73d564508d1d7}

\item 
\hypertarget{classPeerOut_a187905e98c67b6dd78df85357adc3669}{
uint16\_\-t {\bfseries \_\-inftransdelay}}
\label{classPeerOut_a187905e98c67b6dd78df85357adc3669}

\item 
\hypertarget{classPeerOut_ade7c2a8e5a052d24574ff53fd8d487d0}{
const \hyperlink{structOspfTypes_aa80e314cde7a3e8b749d3252c228f281}{OspfTypes::LinkType} {\bfseries \_\-linktype}}
\label{classPeerOut_ade7c2a8e5a052d24574ff53fd8d487d0}

\item 
\hypertarget{classPeerOut_af29885ffc9ef6b00acf5b6c4940014c2}{
map$<$ \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID}, \hyperlink{classPeer}{Peer}$<$ A $>$ $\ast$ $>$ {\bfseries \_\-areas}}
\label{classPeerOut_af29885ffc9ef6b00acf5b6c4940014c2}

\item 
\hypertarget{classPeerOut_a4645e48bc876efdb012213561fafc176}{
bool {\bfseries \_\-running}}
\label{classPeerOut_a4645e48bc876efdb012213561fafc176}

\item 
\hypertarget{classPeerOut_a8e1db8c69de547ec4bc64d5e19a345d6}{
bool {\bfseries \_\-link\_\-status}}
\label{classPeerOut_a8e1db8c69de547ec4bc64d5e19a345d6}

\item 
\hypertarget{classPeerOut_a616f2117352f245a62371133e5fc96a9}{
bool {\bfseries \_\-status}}
\label{classPeerOut_a616f2117352f245a62371133e5fc96a9}

\item 
\hypertarget{classPeerOut_a20bcfd04c0e5d14629c063175bd81535}{
set$<$ \hyperlink{structAddressInfo}{AddressInfo}$<$ A $>$ $>$ {\bfseries \_\-dummy}}
\label{classPeerOut_a20bcfd04c0e5d14629c063175bd81535}

\item 
\hypertarget{classPeerOut_a3121a1d39f6da1a0f4f160b862ac6ef7}{
bool {\bfseries \_\-receiving}}
\label{classPeerOut_a3121a1d39f6da1a0f4f160b862ac6ef7}

\item 
\hypertarget{classPeerOut_a508e610380aef06ab89e9c138bc76a13}{
queue$<$ typename \hyperlink{classTransmit}{Transmit}$<$ A $>$::TransmitRef $>$ {\bfseries \_\-transmit\_\-queue}}
\label{classPeerOut_a508e610380aef06ab89e9c138bc76a13}

\end{DoxyCompactItemize}


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

In OSPF terms this class represents an interface/link; interface is too overloaded a term. The \hyperlink{classPeer}{Peer} class is also associated with an area. In OSPFv2 there is a one-\/to-\/one correspondence. In OSPFv3 an interface/link can belong to multiple areas.

Responsibilities: 1) \hyperlink{classPacket}{Packet} transmission; \hyperlink{protocolthe-p}{the} outgoing queue lives here. 2) Exchange Hello packets. 3) Bring up adjacency, synchronize databases. 4) Elect designated and backup router. 

\subsection{Member Function Documentation}
\hypertarget{classPeerOut_a3e10e409b536a84406df850f765fb972}{
\index{PeerOut@{PeerOut}!delete\_\-md5\_\-authentication\_\-key@{delete\_\-md5\_\-authentication\_\-key}}
\index{delete\_\-md5\_\-authentication\_\-key@{delete\_\-md5\_\-authentication\_\-key}!PeerOut@{PeerOut}}
\subsubsection[{delete\_\-md5\_\-authentication\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::delete\_\-md5\_\-authentication\_\-key (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{uint8\_\-t}]{key\_\-id, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_a3e10e409b536a84406df850f765fb972}


Delete an MD5 authentication key. 

Note that after \hyperlink{protocolthe-p}{the} deletion if there are no more valid MD5 keys, \hyperlink{protocolthe-p}{the} MD5 authentication handler is replaced with a Null authentication handler.


\begin{DoxyParams}{Parameters}
{\em area} & \hyperlink{protocolthe-p}{the} area ID. \\
\hline
{\em key\_\-id} & \hyperlink{protocolthe-p}{the} ID of \hyperlink{protocolthe-p}{the} key to delete. \\
\hline
{\em \hyperlink{protocolthe-p}{the}} & error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, otherwise false. 
\end{DoxyReturn}
\hypertarget{classPeerOut_aeeb9e708b3d0016477d3ed25c7029a2d}{
\index{PeerOut@{PeerOut}!delete\_\-simple\_\-authentication\_\-key@{delete\_\-simple\_\-authentication\_\-key}}
\index{delete\_\-simple\_\-authentication\_\-key@{delete\_\-simple\_\-authentication\_\-key}!PeerOut@{PeerOut}}
\subsubsection[{delete\_\-simple\_\-authentication\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::delete\_\-simple\_\-authentication\_\-key (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_aeeb9e708b3d0016477d3ed25c7029a2d}


Delete a simple password authentication key. 

Note that after \hyperlink{protocolthe-p}{the} deletion \hyperlink{protocolthe-p}{the} simple password authentication handler is replaced with a Null authentication handler.


\begin{DoxyParams}{Parameters}
{\em area} & \hyperlink{protocolthe-p}{the} area ID. \\
\hline
{\em \hyperlink{protocolthe-p}{the}} & error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, otherwise false. 
\end{DoxyReturn}
\hypertarget{classPeerOut_aaabfe3704910dde3506d9f5fcf7bbf4f}{
\index{PeerOut@{PeerOut}!event\_\-bad\_\-link\_\-state\_\-request@{event\_\-bad\_\-link\_\-state\_\-request}}
\index{event\_\-bad\_\-link\_\-state\_\-request@{event\_\-bad\_\-link\_\-state\_\-request}!PeerOut@{PeerOut}}
\subsubsection[{event\_\-bad\_\-link\_\-state\_\-request}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::event\_\-bad\_\-link\_\-state\_\-request (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{const {\bf OspfTypes::NeighbourID}}]{nid}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_aaabfe3704910dde3506d9f5fcf7bbf4f}


Generate a BadLSReq event. 


\begin{DoxyParams}{Parameters}
{\em area} & \\
\hline
{\em nid} & \\
\hline
\end{DoxyParams}
\hypertarget{classPeerOut_a65e85eaa35eb7f09c80db938b0b07f73}{
\index{PeerOut@{PeerOut}!get\_\-frame\_\-size@{get\_\-frame\_\-size}}
\index{get\_\-frame\_\-size@{get\_\-frame\_\-size}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-frame\_\-size}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ uint16\_\-t {\bf PeerOut}$<$ A $>$::get\_\-frame\_\-size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classPeerOut_a65e85eaa35eb7f09c80db938b0b07f73}


The maximum size of an OSPF frame, \hyperlink{protocolthe-p}{the} MTU minus \hyperlink{protocolthe-p}{the} IP header. 

\begin{DoxyReturn}{Returns}
maximum frame size. 
\end{DoxyReturn}
\hypertarget{classPeerOut_a129bbd8f61de7f79967c58a3c1261e32}{
\index{PeerOut@{PeerOut}!get\_\-inftransdelay@{get\_\-inftransdelay}}
\index{get\_\-inftransdelay@{get\_\-inftransdelay}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-inftransdelay}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ uint16\_\-t {\bf PeerOut}$<$ A $>$::get\_\-inftransdelay (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPeerOut_a129bbd8f61de7f79967c58a3c1261e32}
\begin{DoxyReturn}{Returns}
InfTransDelay 
\end{DoxyReturn}
\hypertarget{classPeerOut_a82a80c7daa710260f85ca9b397fe5827}{
\index{PeerOut@{PeerOut}!get\_\-interface\_\-address@{get\_\-interface\_\-address}}
\index{get\_\-interface\_\-address@{get\_\-interface\_\-address}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-interface\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ A {\bf PeerOut}$<$ A $>$::get\_\-interface\_\-address (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPeerOut_a82a80c7daa710260f85ca9b397fe5827}


\hyperlink{structAddress}{Address} of this interface/vif. 

\begin{DoxyReturn}{Returns}
interface/vif address. 
\end{DoxyReturn}
\hypertarget{classPeerOut_a8424f2ad33285ca881960848ca8297ab}{
\index{PeerOut@{PeerOut}!get\_\-interface\_\-cost@{get\_\-interface\_\-cost}}
\index{get\_\-interface\_\-cost@{get\_\-interface\_\-cost}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-interface\_\-cost}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ uint16\_\-t {\bf PeerOut}$<$ A $>$::get\_\-interface\_\-cost (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPeerOut_a8424f2ad33285ca881960848ca8297ab}
\begin{DoxyReturn}{Returns}
cost of this interface. 
\end{DoxyReturn}
\hypertarget{classPeerOut_a1815c6eb1a5e31de97d6a50d7a4e5387}{
\index{PeerOut@{PeerOut}!get\_\-interface\_\-mtu@{get\_\-interface\_\-mtu}}
\index{get\_\-interface\_\-mtu@{get\_\-interface\_\-mtu}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-interface\_\-mtu}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ uint16\_\-t {\bf PeerOut}$<$ A $>$::get\_\-interface\_\-mtu (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPeerOut_a1815c6eb1a5e31de97d6a50d7a4e5387}
\begin{DoxyReturn}{Returns}
mtu of this interface. 
\end{DoxyReturn}
\hypertarget{classPeerOut_ad83d7b45b9268b93b5bb36ed13f70a88}{
\index{PeerOut@{PeerOut}!get\_\-interface\_\-prefix\_\-length@{get\_\-interface\_\-prefix\_\-length}}
\index{get\_\-interface\_\-prefix\_\-length@{get\_\-interface\_\-prefix\_\-length}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-interface\_\-prefix\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ uint16\_\-t {\bf PeerOut}$<$ A $>$::get\_\-interface\_\-prefix\_\-length (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classPeerOut_ad83d7b45b9268b93b5bb36ed13f70a88}
\begin{DoxyReturn}{Returns}
prefix length of this interface. 
\end{DoxyReturn}
\hypertarget{classPeerOut_ae1f45b04dabf9aebfe7ff14d42a6941b}{
\index{PeerOut@{PeerOut}!get\_\-linktype@{get\_\-linktype}}
\index{get\_\-linktype@{get\_\-linktype}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-linktype}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ {\bf OspfTypes::LinkType} {\bf PeerOut}$<$ A $>$::get\_\-linktype (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classPeerOut_ae1f45b04dabf9aebfe7ff14d42a6941b}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} link type. 
\end{DoxyReturn}
\hypertarget{classPeerOut_a89685630aeaaa59129388ce9c00868a1}{
\index{PeerOut@{PeerOut}!get\_\-neighbour\_\-address@{get\_\-neighbour\_\-address}}
\index{get\_\-neighbour\_\-address@{get\_\-neighbour\_\-address}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-neighbour\_\-address}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf PeerOut}$<$ A $>$::get\_\-neighbour\_\-address (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{{\bf OspfTypes::RouterID}}]{rid, }
\item[{uint32\_\-t}]{interface\_\-id, }
\item[{A \&}]{neighbour\_\-address}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_a89685630aeaaa59129388ce9c00868a1}


Neighbour's source address. 


\begin{DoxyParams}{Parameters}
{\em area} & \\
\hline
{\em rid} & Router ID \\
\hline
{\em interface\_\-id} & Interface ID. \\
\hline
{\em neighbour\_\-address} & set if neighbour is found.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} neighbour is found. 
\end{DoxyReturn}
\hypertarget{classPeerOut_a80f28f40a7b1611c33b07eaa1d5a16c9}{
\index{PeerOut@{PeerOut}!get\_\-neighbour\_\-info@{get\_\-neighbour\_\-info}}
\index{get\_\-neighbour\_\-info@{get\_\-neighbour\_\-info}!PeerOut@{PeerOut}}
\subsubsection[{get\_\-neighbour\_\-info}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::get\_\-neighbour\_\-info (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::NeighbourID}}]{nid, }
\item[{{\bf NeighbourInfo} \&}]{ninfo}
\end{DoxyParamCaption}
) const}}
\label{classPeerOut_a80f28f40a7b1611c33b07eaa1d5a16c9}


Get state information about this neighbour. 


\begin{DoxyParams}{Parameters}
{\em nid} & neighbour information is being request about. \\
\hline
{\em ninfo} & if neighbour is found its information. \\
\hline
\end{DoxyParams}
\hypertarget{classPeerOut_abb33629cc5d29f27ab3fdd73781fec5d}{
\index{PeerOut@{PeerOut}!neighbour\_\-at\_\-least\_\-two\_\-way@{neighbour\_\-at\_\-least\_\-two\_\-way}}
\index{neighbour\_\-at\_\-least\_\-two\_\-way@{neighbour\_\-at\_\-least\_\-two\_\-way}!PeerOut@{PeerOut}}
\subsubsection[{neighbour\_\-at\_\-least\_\-two\_\-way}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::neighbour\_\-at\_\-least\_\-two\_\-way (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{{\bf OspfTypes::RouterID}}]{rid, }
\item[{bool \&}]{twoway}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_abb33629cc5d29f27ab3fdd73781fec5d}


Is \hyperlink{protocolthe-p}{the} state of \hyperlink{protocolthe-p}{the} neighbour with \hyperlink{protocolthe-p}{the} specified Router ID at least 2-\/Way. 


\begin{DoxyParams}{Parameters}
{\em area} & \\
\hline
{\em rid} & Router ID \\
\hline
{\em twoway} & if \hyperlink{protocolthe-p}{the} neighbour is found true means \hyperlink{protocolthe-p}{the} neighbour is at least twoway.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} neighbour is found. 
\end{DoxyReturn}
\hypertarget{classPeerOut_aaf85efab5bf44da7b8dfb34b9ff5b856}{
\index{PeerOut@{PeerOut}!neighbours\_\-exchange\_\-or\_\-loading@{neighbours\_\-exchange\_\-or\_\-loading}}
\index{neighbours\_\-exchange\_\-or\_\-loading@{neighbours\_\-exchange\_\-or\_\-loading}!PeerOut@{PeerOut}}
\subsubsection[{neighbours\_\-exchange\_\-or\_\-loading}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::neighbours\_\-exchange\_\-or\_\-loading (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_aaf85efab5bf44da7b8dfb34b9ff5b856}


Are any of \hyperlink{protocolthe-p}{the} neighbours of this peer in \hyperlink{protocolthe-p}{the} state exchange or loading. 


\begin{DoxyParams}{Parameters}
{\em area} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if any of \hyperlink{protocolthe-p}{the} neighbours are in state exchange or loading. 
\end{DoxyReturn}
\hypertarget{classPeerOut_ae17de125b115e45a1e64a2cf31f4b590}{
\index{PeerOut@{PeerOut}!on\_\-link\_\-state\_\-request\_\-list@{on\_\-link\_\-state\_\-request\_\-list}}
\index{on\_\-link\_\-state\_\-request\_\-list@{on\_\-link\_\-state\_\-request\_\-list}!PeerOut@{PeerOut}}
\subsubsection[{on\_\-link\_\-state\_\-request\_\-list}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::on\_\-link\_\-state\_\-request\_\-list (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{const {\bf OspfTypes::NeighbourID}}]{nid, }
\item[{{\bf Lsa::LsaRef}}]{lsar}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_ae17de125b115e45a1e64a2cf31f4b590}


Is this LSA on this neighbours link state request list. 


\begin{DoxyParams}{Parameters}
{\em nid} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it is. 
\end{DoxyReturn}
\hypertarget{classPeerOut_aad0f9e24522695d7d1789a2ced48a512}{
\index{PeerOut@{PeerOut}!queue\_\-lsa@{queue\_\-lsa}}
\index{queue\_\-lsa@{queue\_\-lsa}!PeerOut@{PeerOut}}
\subsubsection[{queue\_\-lsa}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::queue\_\-lsa (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::PeerID}}]{peerid, }
\item[{{\bf OspfTypes::NeighbourID}}]{nid, }
\item[{{\bf Lsa::LsaRef}}]{lsar, }
\item[{bool \&}]{multicast\_\-on\_\-peer}
\end{DoxyParamCaption}
) const}}
\label{classPeerOut_aad0f9e24522695d7d1789a2ced48a512}


Queue an LSA for transmission. 


\begin{DoxyParams}{Parameters}
{\em peer} & \hyperlink{protocolthe-p}{the} LSA arrived on. \\
\hline
{\em nid} & \hyperlink{protocolthe-p}{the} LSA arrived on. \\
\hline
{\em lsar} & \hyperlink{protocolthe-p}{the} lsa \\
\hline
{\em multicast\_\-on\_\-peer} & Did this LSA get multicast on this peer.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success. 
\end{DoxyReturn}
\hypertarget{classPeerOut_a33f38f49ad50144107d017f57b4bd73a}{
\index{PeerOut@{PeerOut}!remove\_\-area@{remove\_\-area}}
\index{remove\_\-area@{remove\_\-area}!PeerOut@{PeerOut}}
\subsubsection[{remove\_\-area}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::remove\_\-area (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_a33f38f49ad50144107d017f57b4bd73a}


This area is being removed. 

\begin{DoxyReturn}{Returns}
true if this peer is no longer associated with any areas. Allowing \hyperlink{protocolthe-p}{the} caller to delete this peer. 
\end{DoxyReturn}
\hypertarget{classPeerOut_a38a891ead4bb67f680f33dee4b6510d6}{
\index{PeerOut@{PeerOut}!send\_\-lsa@{send\_\-lsa}}
\index{send\_\-lsa@{send\_\-lsa}!PeerOut@{PeerOut}}
\subsubsection[{send\_\-lsa}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::send\_\-lsa (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{const {\bf OspfTypes::NeighbourID}}]{nid, }
\item[{{\bf Lsa::LsaRef}}]{lsar}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_a38a891ead4bb67f680f33dee4b6510d6}


\hyperlink{structSend}{Send} this LSA directly to \hyperlink{protocolthe-p}{the} neighbour. 

Do not place on retransmission list.


\begin{DoxyParams}{Parameters}
{\em area} & \\
\hline
{\em nid} & \\
\hline
{\em lsar} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classPeerOut_a68dc5f524c655002e5608bbb349b3868}{
\index{PeerOut@{PeerOut}!set\_\-link\_\-status@{set\_\-link\_\-status}}
\index{set\_\-link\_\-status@{set\_\-link\_\-status}!PeerOut@{PeerOut}}
\subsubsection[{set\_\-link\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf PeerOut}$<$ A $>$::set\_\-link\_\-status (
\begin{DoxyParamCaption}
\item[{bool}]{status, }
\item[{const char $\ast$}]{dbg}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_a68dc5f524c655002e5608bbb349b3868}


Set \hyperlink{protocolthe-p}{the} link status. 

This is not only \hyperlink{protocolthe-p}{the} link status but is \hyperlink{protocolthe-p}{the} interface/vif/address configured up. \hypertarget{classPeerOut_aea9b090eeab0c07f093ea9741f9a4507}{
\index{PeerOut@{PeerOut}!set\_\-md5\_\-authentication\_\-key@{set\_\-md5\_\-authentication\_\-key}}
\index{set\_\-md5\_\-authentication\_\-key@{set\_\-md5\_\-authentication\_\-key}!PeerOut@{PeerOut}}
\subsubsection[{set\_\-md5\_\-authentication\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::set\_\-md5\_\-authentication\_\-key (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{uint8\_\-t}]{key\_\-id, }
\item[{const string \&}]{password, }
\item[{const {\bf TimeVal} \&}]{start\_\-timeval, }
\item[{const {\bf TimeVal} \&}]{end\_\-timeval, }
\item[{const {\bf TimeVal} \&}]{max\_\-time\_\-drift, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_aea9b090eeab0c07f093ea9741f9a4507}


Set an MD5 authentication key. 

Note that \hyperlink{protocolthe-p}{the} current authentication handler is replaced with an MD5 authentication handler.


\begin{DoxyParams}{Parameters}
{\em area} & \hyperlink{protocolthe-p}{the} area ID. \\
\hline
{\em key\_\-id} & unique ID associated with key. \\
\hline
{\em password} & phrase used for MD5 digest computation. \\
\hline
{\em start\_\-timeval} & start time when key becomes valid. \\
\hline
{\em end\_\-timeval} & end time when key becomes invalid. \\
\hline
{\em max\_\-time\_\-drift} & \hyperlink{protocolthe-p}{the} maximum time drift among all routers. \\
\hline
{\em \hyperlink{protocolthe-p}{the}} & error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, otherwise false. 
\end{DoxyReturn}
\hypertarget{classPeerOut_ada9c6f9b11cc908d82c17eddd69500fa}{
\index{PeerOut@{PeerOut}!set\_\-simple\_\-authentication\_\-key@{set\_\-simple\_\-authentication\_\-key}}
\index{set\_\-simple\_\-authentication\_\-key@{set\_\-simple\_\-authentication\_\-key}!PeerOut@{PeerOut}}
\subsubsection[{set\_\-simple\_\-authentication\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::set\_\-simple\_\-authentication\_\-key (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{const string \&}]{password, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_ada9c6f9b11cc908d82c17eddd69500fa}


Set a simple password authentication key. 

Note that \hyperlink{protocolthe-p}{the} current authentication handler is replaced with a simple password authentication handler.


\begin{DoxyParams}{Parameters}
{\em area} & \hyperlink{protocolthe-p}{the} area ID. \\
\hline
{\em password} & \hyperlink{protocolthe-p}{the} password to set. \\
\hline
{\em \hyperlink{protocolthe-p}{the}} & error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, otherwise false. 
\end{DoxyReturn}
\hypertarget{classPeerOut_a6bb8e5cd21f85f6ac7b9a9b1cabbb62f}{
\index{PeerOut@{PeerOut}!virtual\_\-link\_\-endpoint@{virtual\_\-link\_\-endpoint}}
\index{virtual\_\-link\_\-endpoint@{virtual\_\-link\_\-endpoint}!PeerOut@{PeerOut}}
\subsubsection[{virtual\_\-link\_\-endpoint}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf PeerOut}$<$ A $>$::virtual\_\-link\_\-endpoint (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area}
\end{DoxyParamCaption}
)}}
\label{classPeerOut_a6bb8e5cd21f85f6ac7b9a9b1cabbb62f}


Are any of neighbours of this peer a virtual link endpoint. 

\begin{DoxyReturn}{Returns}
true if any are. 
\end{DoxyReturn}


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