\hypertarget{classExternal}{
\section{External$<$ A $>$ Class Template Reference}
\label{classExternal}\index{External@{External}}
}


Handle AS-\/external-\/LSAs.  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classExternal_a93d737d572ad32af64721a0a39baf3ee}{
{\bfseries External} (\hyperlink{classOspf}{Ospf}$<$ A $>$ \&ospf, map$<$ \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID}, \hyperlink{classAreaRouter}{AreaRouter}$<$ A $>$ $\ast$ $>$ \&areas)}
\label{classExternal_a93d737d572ad32af64721a0a39baf3ee}

\item 
bool \hyperlink{classExternal_ab3f775b8682829cd5a68d279aecbc7ca}{announce} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, \hyperlink{classref__ptr}{Lsa::LsaRef} lsar)
\begin{DoxyCompactList}\small\item\em Candidate for announcing to other areas. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a77ee97056f8bd6906b5d54b4abc492bc}{
bool \hyperlink{classExternal_a77ee97056f8bd6906b5d54b4abc492bc}{announce\_\-complete} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)}
\label{classExternal_a77ee97056f8bd6906b5d54b4abc492bc}

\begin{DoxyCompactList}\small\item\em Called to complete a series of calls to \hyperlink{classExternal_ab3f775b8682829cd5a68d279aecbc7ca}{announce()}. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a9a84f1dac2eff6e73e7519d688d6c1a1}{
void \hyperlink{classExternal_a9a84f1dac2eff6e73e7519d688d6c1a1}{push} (\hyperlink{classAreaRouter}{AreaRouter}$<$ A $>$ $\ast$area\_\-router)}
\label{classExternal_a9a84f1dac2eff6e73e7519d688d6c1a1}

\begin{DoxyCompactList}\small\item\em Provide this area with \hyperlink{protocolthe-p}{the} stored AS-\/external-\/LSAs. \item\end{DoxyCompactList}\item 
bool \hyperlink{classExternal_aa77f6ba1e6ded91683c1a39a249f8a4e}{announce} (\hyperlink{classIPNet}{IPNet}$<$ A $>$ net, A nexthop, uint32\_\-t metric, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)
\begin{DoxyCompactList}\small\item\em A true external route redistributed from \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} (announce). \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_addf2c876e6b0d718900434af488f8205}{
bool \hyperlink{classExternal_addf2c876e6b0d718900434af488f8205}{withdraw} (const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net)}
\label{classExternal_addf2c876e6b0d718900434af488f8205}

\begin{DoxyCompactList}\small\item\em A true external route redistributed from \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} (withdraw). \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_aa029c2d179357a0d5fc5ac4a33ea660d}{
bool \hyperlink{classExternal_aa029c2d179357a0d5fc5ac4a33ea660d}{clear\_\-database} ()}
\label{classExternal_aa029c2d179357a0d5fc5ac4a33ea660d}

\begin{DoxyCompactList}\small\item\em Clear \hyperlink{protocolthe-p}{the} AS-\/external-\/LSA database. \item\end{DoxyCompactList}\item 
void \hyperlink{classExternal_abaef45f935f9f7c350f1a5345bfa1160}{suppress\_\-lsas} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area)
\begin{DoxyCompactList}\small\item\em Suppress or remove AS-\/external-\/LSAs that are originated by this router that should yield to externally generated AS-\/external-\/LSAs as described in RFC 2328 Section 12.4.4. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a969df63195833404a7a88a4d289ee61a}{
void \hyperlink{classExternal_a969df63195833404a7a88a4d289ee61a}{suppress\_\-route\_\-announce} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, \hyperlink{classIPNet}{IPNet}$<$ A $>$ net, \hyperlink{classRouteEntry}{RouteEntry}$<$ A $>$ \&rt)}
\label{classExternal_a969df63195833404a7a88a4d289ee61a}

\begin{DoxyCompactList}\small\item\em A route has just been added to \hyperlink{protocolthe-p}{the} routing table. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a8623d10e3035768ff07fbe4cf337a080}{
void \hyperlink{classExternal_a8623d10e3035768ff07fbe4cf337a080}{suppress\_\-route\_\-withdraw} (\hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID} area, \hyperlink{classIPNet}{IPNet}$<$ A $>$ net, \hyperlink{classRouteEntry}{RouteEntry}$<$ A $>$ \&rt)}
\label{classExternal_a8623d10e3035768ff07fbe4cf337a080}

\begin{DoxyCompactList}\small\item\em A route has just been withdrawn from \hyperlink{protocolthe-p}{the} routing table. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_af10cbdb2accb6ca94aceaa6d5a08cebd}{
bool \hyperlink{classExternal_af10cbdb2accb6ca94aceaa6d5a08cebd}{as\_\-boundary\_\-router\_\-p} () const }
\label{classExternal_af10cbdb2accb6ca94aceaa6d5a08cebd}

\begin{DoxyCompactList}\small\item\em Is this an AS boundary router? \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a94f339f0f97a1578144c798869632d15}{
void \hyperlink{classExternal_a94f339f0f97a1578144c798869632d15}{push\_\-routes} ()}
\label{classExternal_a94f339f0f97a1578144c798869632d15}

\begin{DoxyCompactList}\small\item\em Re-\/run \hyperlink{protocolthe-p}{the} policy filters on all routes. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classExternal_ac17d09980392b1924d4484a2a1970307}{
ASExternalDatabase::iterator \hyperlink{classExternal_ac17d09980392b1924d4484a2a1970307}{find\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_ac17d09980392b1924d4484a2a1970307}

\begin{DoxyCompactList}\small\item\em Find this LSA. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a6f25a6a3a152bced0f1a9292db14803e}{
void \hyperlink{classExternal_a6f25a6a3a152bced0f1a9292db14803e}{update\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_a6f25a6a3a152bced0f1a9292db14803e}

\begin{DoxyCompactList}\small\item\em Add this LSA to \hyperlink{protocolthe-p}{the} database if it already exists replace it with this entry. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a8461e61db90977b6a4c049d331fc8314}{
void \hyperlink{classExternal_a8461e61db90977b6a4c049d331fc8314}{delete\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_a8461e61db90977b6a4c049d331fc8314}

\begin{DoxyCompactList}\small\item\em Delete this LSA from \hyperlink{protocolthe-p}{the} database. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a484753fdf7a7172b20ecc3b0ba7fe349}{
void \hyperlink{classExternal_a484753fdf7a7172b20ecc3b0ba7fe349}{maxage\_\-reached} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_a484753fdf7a7172b20ecc3b0ba7fe349}

\begin{DoxyCompactList}\small\item\em This LSA has reached MaxAge get rid of it from \hyperlink{protocolthe-p}{the} database and flood it out of all areas. \item\end{DoxyCompactList}\item 
void \hyperlink{classExternal_ab1703501c7e2894b5c2cc35bd7825957}{unique\_\-link\_\-state\_\-id} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)
\begin{DoxyCompactList}\small\item\em Networks with same network number but different prefix lengths can generate \hyperlink{protocolthe-p}{the} same link state ID. \item\end{DoxyCompactList}\item 
ASExternalDatabase::iterator \hyperlink{classExternal_ae2c3bc59524687903b145c81ca79d8e4}{unique\_\-find\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net)
\begin{DoxyCompactList}\small\item\em Networks with same network number but different prefix lengths can generate \hyperlink{protocolthe-p}{the} same link state ID. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a49480e98022c91777084b3c662f3f154}{
void \hyperlink{classExternal_a49480e98022c91777084b3c662f3f154}{set\_\-net\_\-nexthop\_\-lsid} (\hyperlink{classASExternalLsa}{ASExternalLsa} $\ast$aselsa, \hyperlink{classIPNet}{IPNet}$<$ A $>$ net, A nexthop)}
\label{classExternal_a49480e98022c91777084b3c662f3f154}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} network, nexthop and link state ID. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a053baca1e703e8767c335131afcbc5ef}{
void \hyperlink{classExternal_a053baca1e703e8767c335131afcbc5ef}{announce\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_a053baca1e703e8767c335131afcbc5ef}

\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} this self originated LSA out. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a355ccab63dfa73b400a84dfd39b3c01d}{
bool \hyperlink{classExternal_a355ccab63dfa73b400a84dfd39b3c01d}{do\_\-filtering} (\hyperlink{classIPNet}{IPNet}$<$ A $>$ \&network, A \&nexthop, uint32\_\-t \&metric, bool \&e\_\-bit, uint32\_\-t \&tag, bool \&tag\_\-set, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)}
\label{classExternal_a355ccab63dfa73b400a84dfd39b3c01d}

\begin{DoxyCompactList}\small\item\em Pass this outbound AS-\/external-\/LSA through \hyperlink{protocolthe-p}{the} policy filter. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_aff5f84ca4cec7f2c6eb7bdee3e867561}{
void \hyperlink{classExternal_aff5f84ca4cec7f2c6eb7bdee3e867561}{start\_\-refresh\_\-timer} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_aff5f84ca4cec7f2c6eb7bdee3e867561}

\begin{DoxyCompactList}\small\item\em Start \hyperlink{protocolthe-p}{the} refresh timer. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a2cecd103eeaee600419930ed892ad01e}{
void \hyperlink{classExternal_a2cecd103eeaee600419930ed892ad01e}{refresh} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_a2cecd103eeaee600419930ed892ad01e}

\begin{DoxyCompactList}\small\item\em Called every LSRefreshTime seconds to refresh this LSA. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a045d976ad096b821a2326dc5220f6a4e}{
\hyperlink{classref__ptr}{Lsa::LsaRef} \hyperlink{classExternal_a045d976ad096b821a2326dc5220f6a4e}{clone\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_a045d976ad096b821a2326dc5220f6a4e}

\begin{DoxyCompactList}\small\item\em Clone a self orignated LSA that is about to be removed for possible later introduction. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_ab9681d2e3b3d754a92238079350df4bc}{
bool \hyperlink{classExternal_ab9681d2e3b3d754a92238079350df4bc}{suppress\_\-candidate} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar, \hyperlink{classIPNet}{IPNet}$<$ A $>$ net, A nexthop, uint32\_\-t metric)}
\label{classExternal_ab9681d2e3b3d754a92238079350df4bc}

\begin{DoxyCompactList}\small\item\em Is this a self originated AS-\/external-\/LSA a candidate for suppression? \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a33734afb27e302d40cf8132d70b0d5b0}{
void \hyperlink{classExternal_a33734afb27e302d40cf8132d70b0d5b0}{suppress\_\-self} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_a33734afb27e302d40cf8132d70b0d5b0}

\begin{DoxyCompactList}\small\item\em Should this AS-\/external-\/LSA cause a self originated LSA to be suppressed. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_abdbc5155b56d1c99631e82a0933895b7}{
bool \hyperlink{classExternal_abdbc5155b56d1c99631e82a0933895b7}{suppress\_\-self\_\-check} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_abdbc5155b56d1c99631e82a0933895b7}

\begin{DoxyCompactList}\small\item\em Should this AS-\/external-\/LSA cause a self originated LSA to be suppressed. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_afe9e0ece40c21bc813c766045cf4eb7e}{
\hyperlink{classref__ptr}{Lsa::LsaRef} \hyperlink{classExternal_afe9e0ece40c21bc813c766045cf4eb7e}{find\_\-lsa\_\-by\_\-net} (\hyperlink{classIPNet}{IPNet}$<$ A $>$ net)}
\label{classExternal_afe9e0ece40c21bc813c766045cf4eb7e}

\begin{DoxyCompactList}\small\item\em Find a self originated AS-\/external-\/LSA by network. \item\end{DoxyCompactList}\item 
void \hyperlink{classExternal_a4717e4bbbe75c5ecd8f336956c41a907}{suppress\_\-queue\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)
\begin{DoxyCompactList}\small\item\em This LSA if its advertising router is reachable matches a self origniated LSA that will be suppressed. \item\end{DoxyCompactList}\item 
void \hyperlink{classExternal_aee5d232300bb3447ff280811c8affa77}{suppress\_\-maxage} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)
\begin{DoxyCompactList}\small\item\em An AS-\/external-\/LSA has reached MaxAge and is being withdrawn. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_a5c6867ceec87aa01926b6f09debb565c}{
void \hyperlink{classExternal_a5c6867ceec87aa01926b6f09debb565c}{suppress\_\-release\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar)}
\label{classExternal_a5c6867ceec87aa01926b6f09debb565c}

\begin{DoxyCompactList}\small\item\em If this is an AS-\/external-\/LSA that is suppressing a self originated route, then release it. \item\end{DoxyCompactList}\item 
\hypertarget{classExternal_ab454ca15b4cd462290107a02497db093}{
{\footnotesize template$<$$>$ }\\void {\bfseries unique\_\-link\_\-state\_\-id} (\hyperlink{classref__ptr}{Lsa::LsaRef})}
\label{classExternal_ab454ca15b4cd462290107a02497db093}

\item 
\hypertarget{classExternal_ac87f3f576f73ec30c5f5db9a4abc2d99}{
{\footnotesize template$<$$>$ }\\ASExternalDatabase::iterator {\bfseries unique\_\-find\_\-lsa} (\hyperlink{classref__ptr}{Lsa::LsaRef} lsar, const \hyperlink{classIPNet}{IPNet}$<$ \hyperlink{classIPv6}{IPv6} $>$ \&)}
\label{classExternal_ac87f3f576f73ec30c5f5db9a4abc2d99}

\item 
\hypertarget{classExternal_abac513d69772360d1ce040236d274d8b}{
{\footnotesize template$<$$>$ }\\void {\bfseries set\_\-net\_\-nexthop\_\-lsid} (\hyperlink{classASExternalLsa}{ASExternalLsa} $\ast$aselsa, \hyperlink{classIPNet}{IPNet}$<$ \hyperlink{classIPv6}{IPv6} $>$ net, \hyperlink{classIPv6}{IPv6} nexthop)}
\label{classExternal_abac513d69772360d1ce040236d274d8b}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classExternal_a4eaaca6f2a5bf2d059352f618deb0797}{
\hyperlink{classOspf}{Ospf}$<$ A $>$ \& {\bfseries \_\-ospf}}
\label{classExternal_a4eaaca6f2a5bf2d059352f618deb0797}

\item 
\hypertarget{classExternal_a9f4ff9424e2d35801cd261859f1f8f83}{
map$<$ \hyperlink{structOspfTypes_a8276e5e81192074d7c95e445995d18c6}{OspfTypes::AreaID}, \hyperlink{classAreaRouter}{AreaRouter}$<$ A $>$ $\ast$ $>$ \& {\bfseries \_\-areas}}
\label{classExternal_a9f4ff9424e2d35801cd261859f1f8f83}

\item 
\hypertarget{classExternal_a2eaedf3a6c784c43a27c1f1d09938ad8}{
\hyperlink{classASExternalDatabase}{ASExternalDatabase} {\bfseries \_\-lsas}}
\label{classExternal_a2eaedf3a6c784c43a27c1f1d09938ad8}

\item 
\hypertarget{classExternal_a39840d857323f99599ef41a5dc87e96a}{
uint32\_\-t {\bfseries \_\-originating}}
\label{classExternal_a39840d857323f99599ef41a5dc87e96a}

\item 
\hypertarget{classExternal_a33c8e882e39029bbec568722fdef2d4f}{
uint32\_\-t {\bfseries \_\-lsid}}
\label{classExternal_a33c8e882e39029bbec568722fdef2d4f}

\item 
\hypertarget{classExternal_a319d3ce2acaf8c7f08fbdb6f9407fe6c}{
map$<$ \hyperlink{classIPNet}{IPNet}$<$ \hyperlink{classIPv6}{IPv6} $>$, uint32\_\-t $>$ {\bfseries \_\-lsmap}}
\label{classExternal_a319d3ce2acaf8c7f08fbdb6f9407fe6c}

\item 
\hypertarget{classExternal_ab8acaa090be14fa4b85555befe2fa136}{
list$<$ \hyperlink{classref__ptr}{Lsa::LsaRef} $>$ {\bfseries \_\-suppress\_\-temp}}
\label{classExternal_ab8acaa090be14fa4b85555befe2fa136}

\end{DoxyCompactItemize}


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

Handle AS-\/external-\/LSAs. 

\subsection{Member Function Documentation}
\hypertarget{classExternal_ab3f775b8682829cd5a68d279aecbc7ca}{
\index{External@{External}!announce@{announce}}
\index{announce@{announce}!External@{External}}
\subsubsection[{announce}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ bool {\bf External}$<$ A $>$::announce (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area, }
\item[{{\bf Lsa::LsaRef}}]{lsar}
\end{DoxyParamCaption}
)}}
\label{classExternal_ab3f775b8682829cd5a68d279aecbc7ca}


Candidate for announcing to other areas. 

\hyperlink{classStore}{Store} this LSA for future replay into other areas. Also arrange for \hyperlink{protocolthe-p}{the} MaxAge timer to start running.


\begin{DoxyParams}{Parameters}
{\em area} & \hyperlink{protocolthe-p}{the} AS-\/external-\/LSA came from.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if this LSA should be propogated to other areas. 
\end{DoxyReturn}
\hypertarget{classExternal_aa77f6ba1e6ded91683c1a39a249f8a4e}{
\index{External@{External}!announce@{announce}}
\index{announce@{announce}!External@{External}}
\subsubsection[{announce}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ bool {\bf External}$<$ A $>$::announce (
\begin{DoxyParamCaption}
\item[{{\bf IPNet}$<$ A $>$}]{net, }
\item[{A}]{nexthop, }
\item[{uint32\_\-t}]{metric, }
\item[{const {\bf PolicyTags} \&}]{policytags}
\end{DoxyParamCaption}
)}}
\label{classExternal_aa77f6ba1e6ded91683c1a39a249f8a4e}


A true external route redistributed from \hyperlink{protocolthe-p}{the} \hyperlink{classRIB}{RIB} (announce). 



If \hyperlink{protocolthe-p}{the} nexthop address is not configured for OSPF then it won't be reachable, so set \hyperlink{protocolthe-p}{the} nexthop to zero.

\hypertarget{classExternal_abaef45f935f9f7c350f1a5345bfa1160}{
\index{External@{External}!suppress\_\-lsas@{suppress\_\-lsas}}
\index{suppress\_\-lsas@{suppress\_\-lsas}!External@{External}}
\subsubsection[{suppress\_\-lsas}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf External}$<$ A $>$::suppress\_\-lsas (
\begin{DoxyParamCaption}
\item[{{\bf OspfTypes::AreaID}}]{area}
\end{DoxyParamCaption}
)}}
\label{classExternal_abaef45f935f9f7c350f1a5345bfa1160}


Suppress or remove AS-\/external-\/LSAs that are originated by this router that should yield to externally generated AS-\/external-\/LSAs as described in RFC 2328 Section 12.4.4. 

By time this method is called \hyperlink{protocolthe-p}{the} routing table should have been updated so it should be clear if \hyperlink{protocolthe-p}{the} other router is reachable. \hypertarget{classExternal_aee5d232300bb3447ff280811c8affa77}{
\index{External@{External}!suppress\_\-maxage@{suppress\_\-maxage}}
\index{suppress\_\-maxage@{suppress\_\-maxage}!External@{External}}
\subsubsection[{suppress\_\-maxage}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf External}$<$ A $>$::suppress\_\-maxage (
\begin{DoxyParamCaption}
\item[{{\bf Lsa::LsaRef}}]{lsar}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classExternal_aee5d232300bb3447ff280811c8affa77}


An AS-\/external-\/LSA has reached MaxAge and is being withdrawn. 

check to see if it was suppressing a self originated LSA. \hypertarget{classExternal_a4717e4bbbe75c5ecd8f336956c41a907}{
\index{External@{External}!suppress\_\-queue\_\-lsa@{suppress\_\-queue\_\-lsa}}
\index{suppress\_\-queue\_\-lsa@{suppress\_\-queue\_\-lsa}!External@{External}}
\subsubsection[{suppress\_\-queue\_\-lsa}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A $>$ void {\bf External}$<$ A $>$::suppress\_\-queue\_\-lsa (
\begin{DoxyParamCaption}
\item[{{\bf Lsa::LsaRef}}]{lsar}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classExternal_a4717e4bbbe75c5ecd8f336956c41a907}


This LSA if its advertising router is reachable matches a self origniated LSA that will be suppressed. 

\hyperlink{classStore}{Store} until \hyperlink{protocolthe-p}{the} routing computation has completed and \hyperlink{protocolthe-p}{the} routing table can be checked. \hypertarget{classExternal_ae2c3bc59524687903b145c81ca79d8e4}{
\index{External@{External}!unique\_\-find\_\-lsa@{unique\_\-find\_\-lsa}}
\index{unique\_\-find\_\-lsa@{unique\_\-find\_\-lsa}!External@{External}}
\subsubsection[{unique\_\-find\_\-lsa}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ ASExternalDatabase::iterator {\bf External}$<$ A $>$::unique\_\-find\_\-lsa (
\begin{DoxyParamCaption}
\item[{{\bf Lsa::LsaRef}}]{lsar, }
\item[{const {\bf IPNet}$<$ A $>$ \&}]{net}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classExternal_ae2c3bc59524687903b145c81ca79d8e4}


Networks with same network number but different prefix lengths can generate \hyperlink{protocolthe-p}{the} same link state ID. 

When looking for an LSA make sure that there \hyperlink{protocolthe-p}{the} lsar that matches \hyperlink{protocolthe-p}{the} net is found.


\begin{DoxyParams}{Parameters}
{\em lsar} & search for this LSA in \hyperlink{protocolthe-p}{the} database. WARNING this LSA may have its link state ID field modifed by \hyperlink{protocolthe-p}{the} search. \\
\hline
{\em net} & that must match \hyperlink{protocolthe-p}{the} LSA. \\
\hline
\end{DoxyParams}
\hypertarget{classExternal_ab1703501c7e2894b5c2cc35bd7825957}{
\index{External@{External}!unique\_\-link\_\-state\_\-id@{unique\_\-link\_\-state\_\-id}}
\index{unique\_\-link\_\-state\_\-id@{unique\_\-link\_\-state\_\-id}!External@{External}}
\subsubsection[{unique\_\-link\_\-state\_\-id}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename A$>$ void {\bf External}$<$ A $>$::unique\_\-link\_\-state\_\-id (
\begin{DoxyParamCaption}
\item[{{\bf Lsa::LsaRef}}]{lsar}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classExternal_ab1703501c7e2894b5c2cc35bd7825957}


Networks with same network number but different prefix lengths can generate \hyperlink{protocolthe-p}{the} same link state ID. 

When generating a new LSA if a collision occurs use: RFC 2328 Appendix E. An algorithm for assigning Link State IDs to resolve \hyperlink{protocolthe-p}{the} clash. 

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