\hypertarget{classBGPMain}{
\section{BGPMain Class Reference}
\label{classBGPMain}\index{BGPMain@{BGPMain}}
}
Inheritance diagram for BGPMain:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.947368cm]{classBGPMain}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classBGPMain_1_1RoutingTableToken}{RoutingTableToken}
\begin{DoxyCompactList}\small\item\em Token generator to map between unicast and multicast. \item\end{DoxyCompactList}\item 
struct \hyperlink{structBGPMain_1_1Server}{Server}
\begin{DoxyCompactList}\small\item\em \hyperlink{classStore}{Store} \hyperlink{protocolthe-p}{the} socket descriptor and iptuple together. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classBGPMain_ac8eac8065d5dafa3ac6e8ce90bbd065a}{
typedef XorpCallback2$<$ void, const string \&, bool $>$::RefPtr {\bfseries InterfaceStatusCb}}
\label{classBGPMain_ac8eac8065d5dafa3ac6e8ce90bbd065a}

\item 
\hypertarget{classBGPMain_ac97044aaa51bf1584bd9bc016aabfebc}{
typedef XorpCallback3$<$ void, const string \&, const string \&, bool $>$::RefPtr {\bfseries VifStatusCb}}
\label{classBGPMain_ac97044aaa51bf1584bd9bc016aabfebc}

\item 
\hypertarget{classBGPMain_abfcac6353e05c78e2f7ae42da5d95cde}{
typedef XorpCallback5$<$ void, const string \&, const string \&, const \hyperlink{classIPv4}{IPv4} \&, uint32\_\-t, bool $>$::RefPtr {\bfseries AddressStatus4Cb}}
\label{classBGPMain_abfcac6353e05c78e2f7ae42da5d95cde}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classBGPMain_a0e40890fb4ca011f9646aa5db6cfc4e2}{
{\bfseries BGPMain} (\hyperlink{classEventLoop}{EventLoop} \&eventloop)}
\label{classBGPMain_a0e40890fb4ca011f9646aa5db6cfc4e2}

\item 
\hypertarget{classBGPMain_a999fd03d80ae6811e9c9f0ff3ff9a235}{
ProcessStatus \hyperlink{classBGPMain_a999fd03d80ae6811e9c9f0ff3ff9a235}{status} (string \&reason)}
\label{classBGPMain_a999fd03d80ae6811e9c9f0ff3ff9a235}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} process status. \item\end{DoxyCompactList}\item 
int \hyperlink{classBGPMain_a7eba3521fba92c14c9ce4e584b9e2499}{startup} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classStartup}{Startup} operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classBGPMain_abc688835e38a28ae8278ed1ed26b8832}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} operation. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_acc79f6c1dc9fa40411c8fc59766c5155}{component\_\-up} (const string \&component\_\-name)
\begin{DoxyCompactList}\small\item\em A method that should be called when an internal subsystem comes up. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_a3c3d79cd4fd8e6e9fcc0f7386cfd3e3d}{component\_\-down} (const string \&component\_\-name)
\begin{DoxyCompactList}\small\item\em A method that should be called when an internal subsystem goes down. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a73d631098846271ec72e39b7f1f13839}{is\_\-interface\_\-enabled} (const string \&interface) const 
\begin{DoxyCompactList}\small\item\em Test whether an interface is enabled. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_ac4d169515c0a1f50dff28bcf8e783397}{is\_\-vif\_\-enabled} (const string \&interface, const string \&vif) const 
\begin{DoxyCompactList}\small\item\em Test whether an interface/vif is enabled. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_ac21f8e48e2930a085228245d7ec42fe8}{is\_\-address\_\-enabled} (const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address) const 
\begin{DoxyCompactList}\small\item\em Test whether an \hyperlink{classIPv4}{IPv4} interface/vif/address is enabled. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_a0b1bfc6c66ee5bcd6c8bffc4c13d3a78}{register\_\-interface\_\-status} (InterfaceStatusCb cb)
\begin{DoxyCompactList}\small\item\em Add a callback for tracking \hyperlink{protocolthe-p}{the} interface status. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_afec99964cc6c4a276ff5d923cbdbc9e0}{register\_\-vif\_\-status} (VifStatusCb cb)
\begin{DoxyCompactList}\small\item\em Add a callback for tracking \hyperlink{protocolthe-p}{the} interface/vif status. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_ab33bf7b4c614d6739a85331d45e8011f}{register\_\-address\_\-status} (AddressStatus4Cb cb)
\begin{DoxyCompactList}\small\item\em Add a callback for tracking \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} interface/vif/address status. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classBGPMain_a3f29216d495affb30afb71a0117ba3a2}{get\_\-prefix\_\-length} (const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address)
\begin{DoxyCompactList}\small\item\em Obtain \hyperlink{protocolthe-p}{the} subnet prefix length for an \hyperlink{classIPv4}{IPv4} interface/vif/address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classBGPMain_aab0da8e684a11b9d4f2002a23097d84a}{get\_\-mtu} (const string \&interface)
\begin{DoxyCompactList}\small\item\em Obtain \hyperlink{protocolthe-p}{the} MTU for an interface. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a2bf5a243dc877360d542034607f8e128}{
bool \hyperlink{classBGPMain_a2bf5a243dc877360d542034607f8e128}{interface\_\-address4} (const \hyperlink{classIPv4}{IPv4} \&address) const }
\label{classBGPMain_a2bf5a243dc877360d542034607f8e128}

\begin{DoxyCompactList}\small\item\em Is \hyperlink{protocolthe-p}{the} address one of this routers interface addresses? \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a8fb9053980c602a817d567301368c013}{interface\_\-address\_\-prefix\_\-len4} (const \hyperlink{classIPv4}{IPv4} \&address, uint32\_\-t \&prefix\_\-len) const 
\begin{DoxyCompactList}\small\item\em Obtain \hyperlink{protocolthe-p}{the} prefix length for a particular \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_adf698cbcc2270294b9b576270dbc3b57}{local\_\-config} (const uint32\_\-t \&as, const \hyperlink{classIPv4}{IPv4} \&id, bool use\_\-4byte\_\-asnums)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} local configuration. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a3433cff2e6dd3c837a91bda5953db438}{
void \hyperlink{classBGPMain_a3433cff2e6dd3c837a91bda5953db438}{set\_\-confederation\_\-identifier} (const uint32\_\-t \&as, bool disable)}
\label{classBGPMain_a3433cff2e6dd3c837a91bda5953db438}

\begin{DoxyCompactList}\small\item\em Set or disable \hyperlink{protocolthe-p}{the} confederation identifier. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_aa5afc768a02db6d120b68e325d231b4a}{
void \hyperlink{classBGPMain_aa5afc768a02db6d120b68e325d231b4a}{set\_\-cluster\_\-id} (const \hyperlink{classIPv4}{IPv4} \&cluster\_\-id, bool disable)}
\label{classBGPMain_aa5afc768a02db6d120b68e325d231b4a}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} cluster ID and enable or disable route reflection. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a9467119540dd88161224bf472f25d5ea}{
void \hyperlink{classBGPMain_a9467119540dd88161224bf472f25d5ea}{set\_\-damping} (uint32\_\-t half\_\-life, uint32\_\-t max\_\-suppress, uint32\_\-t reuse, uint32\_\-t suppress, bool disable)}
\label{classBGPMain_a9467119540dd88161224bf472f25d5ea}

\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} route flap damping parameters. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_a1784ca8f7f0c0ef0c67c146cef28300a}{attach\_\-peer} (\hyperlink{classBGPPeer}{BGPPeer} $\ast$p)
\begin{DoxyCompactList}\small\item\em attach peer to peerlist \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_acb6918cd7ec81f6fa9c99b6b69dfaa93}{detach\_\-peer} (\hyperlink{classBGPPeer}{BGPPeer} $\ast$p)
\begin{DoxyCompactList}\small\item\em detach peer from \hyperlink{protocolthe-p}{the} peerlist. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_a4431e486485d50b596f1accf12d712f9}{attach\_\-deleted\_\-peer} (\hyperlink{classBGPPeer}{BGPPeer} $\ast$p)
\begin{DoxyCompactList}\small\item\em attach peer to deleted peerlist \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_a6d6cac22cbb036a35e977ac42100a0f8}{detach\_\-deleted\_\-peer} (\hyperlink{classBGPPeer}{BGPPeer} $\ast$p)
\begin{DoxyCompactList}\small\item\em detach peer from \hyperlink{protocolthe-p}{the} deleted peerlist. \item\end{DoxyCompactList}\item 
\hyperlink{classBGPPeer}{BGPPeer} $\ast$ \hyperlink{classBGPMain_ab592986f7838f7130acc0f1832859e97}{find\_\-peer} (const \hyperlink{classIptuple}{Iptuple} \&search, list$<$ \hyperlink{classBGPPeer}{BGPPeer} $\ast$ $>$ \&peers)
\begin{DoxyCompactList}\small\item\em Find peer with this iptuple from \hyperlink{protocolthe-p}{the} list provided. \item\end{DoxyCompactList}\item 
\hyperlink{classBGPPeer}{BGPPeer} $\ast$ \hyperlink{classBGPMain_a735db8c7f7834cf45a4fa356bf509887}{find\_\-peer} (const \hyperlink{classIptuple}{Iptuple} \&search)
\begin{DoxyCompactList}\small\item\em Find peer with this iptuple. \item\end{DoxyCompactList}\item 
\hyperlink{classBGPPeer}{BGPPeer} $\ast$ \hyperlink{classBGPMain_a0f7341f8aa656c0dcb08049ee71a056e}{find\_\-deleted\_\-peer} (const \hyperlink{classIptuple}{Iptuple} \&search)
\begin{DoxyCompactList}\small\item\em Find peer with this iptuple on \hyperlink{protocolthe-p}{the} deleted peer list. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a91ef0c54f7ae24a89876c0164abd5822}{create\_\-peer} (\hyperlink{classBGPPeerData}{BGPPeerData} $\ast$pd)
\begin{DoxyCompactList}\small\item\em create a new peer and attach it to \hyperlink{protocolthe-p}{the} peerlist. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_aa51e08cc93d4abe1c66ef407daddb8a2}{delete\_\-peer} (const \hyperlink{classIptuple}{Iptuple} \&iptuple)
\begin{DoxyCompactList}\small\item\em delete peer tear down connection and remove for peerlist. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a0d49af03087cc268e42616c72c834842}{enable\_\-peer} (const \hyperlink{classIptuple}{Iptuple} \&iptuple)
\begin{DoxyCompactList}\small\item\em enable peer \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_ac177897ea0e8711f4c335e5722dedd5c}{disable\_\-peer} (const \hyperlink{classIptuple}{Iptuple} \&iptuple)
\begin{DoxyCompactList}\small\item\em disable peer \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_ac5d2a22ea7e1358387d044c7f36685d6}{bounce\_\-peer} (const \hyperlink{classIptuple}{Iptuple} \&iptuple)
\begin{DoxyCompactList}\small\item\em Drop this peering and if it was configured up allow it attempt a new peering. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_ab0044c89dd28fee06c9bacc666db85fe}{local\_\-ip\_\-changed} (string local\_\-address)
\begin{DoxyCompactList}\small\item\em One of \hyperlink{protocolthe-p}{the} local IP addresses of this router has changed. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a54f7b4c865e104cb7f0c05f3e72f6f93}{change\_\-tuple} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, const \hyperlink{classIptuple}{Iptuple} \&nptuple)
\begin{DoxyCompactList}\small\item\em Change one of \hyperlink{protocolthe-p}{the} tuple settings of this peering. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_ac7219dadb4249547f292e77b8f74d1be}{find\_\-tuple\_\-179} (string peer\_\-addr, \hyperlink{classIptuple}{Iptuple} \&otuple)
\begin{DoxyCompactList}\small\item\em Find \hyperlink{protocolthe-p}{the} tuple that has this peer address and both ports are 179. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a9be5cffdd60726ca99a369ae6ecedb57}{change\_\-local\_\-ip} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, const string \&local\_\-ip, const string \&local\_\-dev)
\begin{DoxyCompactList}\small\item\em Change \hyperlink{protocolthe-p}{the} local IP address of this peering. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a39eeeca05beaca349e5eb6f4f28d89b7}{change\_\-local\_\-port} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t local\_\-port)
\begin{DoxyCompactList}\small\item\em Change \hyperlink{protocolthe-p}{the} local IP port of this peering. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a5287a31c34ad2887df5875af3e2038f2}{change\_\-peer\_\-port} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t peer\_\-port)
\begin{DoxyCompactList}\small\item\em Change \hyperlink{protocolthe-p}{the} peer IP port of this peering. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a76bf671a22dc2652d52fbd8874747981}{set\_\-peer\_\-as} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t peer\_\-as)
\begin{DoxyCompactList}\small\item\em set peer as \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a0870d14262fcfd0c31db4d5c0c37548f}{set\_\-holdtime} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t holdtime)
\begin{DoxyCompactList}\small\item\em set holdtime \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a33d6d77093c75178b3ac6221f509d5b7}{set\_\-delay\_\-open\_\-time} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t delay\_\-open\_\-time)
\begin{DoxyCompactList}\small\item\em set delay open time \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a7fbf895cde1625fd23863be23689bfaa}{set\_\-route\_\-reflector\_\-client} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, bool rr)
\begin{DoxyCompactList}\small\item\em set route reflector client \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_abc93bd24ccf2704148dfd27323cdb081}{set\_\-confederation\_\-member} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, bool conf)
\begin{DoxyCompactList}\small\item\em set route confederation member \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_aca4829faa96d5a279b65b5e1dd89ee8a}{set\_\-prefix\_\-limit} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t maximum, bool state)
\begin{DoxyCompactList}\small\item\em set prefix limit \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a08b885f789f05fc3e1a22281eb26301a}{set\_\-nexthop4} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, const \hyperlink{classIPv4}{IPv4} \&next\_\-hop)
\begin{DoxyCompactList}\small\item\em set \hyperlink{classIPv4}{IPv4} next-\/hop. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a6cec0b837f400bf637dbadd355b297ab}{set\_\-peer\_\-state} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, bool state)
\begin{DoxyCompactList}\small\item\em Set peer state. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_aa9824473d6c0ad8c3e70c99cbaec2c13}{activate} (const \hyperlink{classIptuple}{Iptuple} \&iptuple)
\begin{DoxyCompactList}\small\item\em Activate peer. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a8a4f3e002c997eec301460d0b54361b4}{activate\_\-all\_\-peers} ()
\begin{DoxyCompactList}\small\item\em Activate all peers. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a94e3647bc690e9ccfec97b05d923c440}{set\_\-peer\_\-md5\_\-password} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, const string \&password)
\begin{DoxyCompactList}\small\item\em Set peer TCP-\/MD5 password. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a5d470b1e7edb414b40fe6c68f98afbda}{
bool {\bfseries next\_\-hop\_\-rewrite\_\-filter} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, const \hyperlink{classIPv4}{IPv4} \&next\_\-hop)}
\label{classBGPMain_a5d470b1e7edb414b40fe6c68f98afbda}

\item 
\hypertarget{classBGPMain_a3d34b0744b3128b3e6c5ce6ddde2a024}{
bool {\bfseries get\_\-peer\_\-list\_\-start} (uint32\_\-t \&token)}
\label{classBGPMain_a3d34b0744b3128b3e6c5ce6ddde2a024}

\item 
\hypertarget{classBGPMain_a80df0b941cd64685b2e094be2f73b74f}{
bool {\bfseries get\_\-peer\_\-list\_\-next} (const uint32\_\-t \&token, string \&local\_\-ip, uint32\_\-t \&local\_\-port, string \&peer\_\-ip, uint32\_\-t \&peer\_\-port)}
\label{classBGPMain_a80df0b941cd64685b2e094be2f73b74f}

\item 
\hypertarget{classBGPMain_ae797e01891a995f05ff3ddd99795944c}{
bool {\bfseries get\_\-peer\_\-id} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, \hyperlink{classIPv4}{IPv4} \&peer\_\-id)}
\label{classBGPMain_ae797e01891a995f05ff3ddd99795944c}

\item 
\hypertarget{classBGPMain_a586511c30b43f9dc702431b497805a27}{
bool {\bfseries get\_\-peer\_\-status} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t \&peer\_\-state, uint32\_\-t \&admin\_\-status)}
\label{classBGPMain_a586511c30b43f9dc702431b497805a27}

\item 
\hypertarget{classBGPMain_a6d8680ecf20463d2bf9e0e6422f86c4d}{
bool {\bfseries get\_\-peer\_\-negotiated\_\-version} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, int32\_\-t \&neg\_\-version)}
\label{classBGPMain_a6d8680ecf20463d2bf9e0e6422f86c4d}

\item 
\hypertarget{classBGPMain_a061bbd1474d3e0b1ca95f662130b220c}{
bool {\bfseries get\_\-peer\_\-as} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t \&peer\_\-as)}
\label{classBGPMain_a061bbd1474d3e0b1ca95f662130b220c}

\item 
\hypertarget{classBGPMain_a1f8b4ba4d2dde5b3dea0d1ee431c480e}{
bool {\bfseries get\_\-peer\_\-msg\_\-stats} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t \&in\_\-updates, uint32\_\-t \&out\_\-updates, uint32\_\-t \&in\_\-msgs, uint32\_\-t \&out\_\-msgs, uint16\_\-t \&last\_\-error, uint32\_\-t \&in\_\-update\_\-elapsed)}
\label{classBGPMain_a1f8b4ba4d2dde5b3dea0d1ee431c480e}

\item 
\hypertarget{classBGPMain_a0bb48fb1c60525d7ce7f9a74598eb973}{
bool {\bfseries get\_\-peer\_\-established\_\-stats} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t \&transitions, uint32\_\-t \&established\_\-time)}
\label{classBGPMain_a0bb48fb1c60525d7ce7f9a74598eb973}

\item 
\hypertarget{classBGPMain_aec5c6e68fd985c5d0c27dff051330c3c}{
bool {\bfseries get\_\-peer\_\-timer\_\-config} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, uint32\_\-t \&retry\_\-interval, uint32\_\-t \&hold\_\-time, uint32\_\-t \&keep\_\-alive, uint32\_\-t \&hold\_\-time\_\-configured, uint32\_\-t \&keep\_\-alive\_\-configured, uint32\_\-t \&min\_\-as\_\-origination\_\-interval, uint32\_\-t \&min\_\-route\_\-adv\_\-interval)}
\label{classBGPMain_aec5c6e68fd985c5d0c27dff051330c3c}

\item 
\hypertarget{classBGPMain_a965431aefd76c1d19a825b1e89ceacf9}{
bool {\bfseries register\_\-ribname} (const string \&name)}
\label{classBGPMain_a965431aefd76c1d19a825b1e89ceacf9}

\item 
\hypertarget{classBGPMain_ae0a9ec48316194aab97b590f5ccb6340}{
void {\bfseries main\_\-loop} ()}
\label{classBGPMain_ae0a9ec48316194aab97b590f5ccb6340}

\item 
\hypertarget{classBGPMain_a24dc2ffc7612da560c04e0da60cc12ad}{
void {\bfseries terminate} ()}
\label{classBGPMain_a24dc2ffc7612da560c04e0da60cc12ad}

\item 
\hypertarget{classBGPMain_a14d55796497b92f9e15b7c5559bc5382}{
\hyperlink{classXorpFd}{XorpFd} {\bfseries create\_\-listener} (const \hyperlink{classIptuple}{Iptuple} \&iptuple)}
\label{classBGPMain_a14d55796497b92f9e15b7c5559bc5382}

\item 
\hypertarget{classBGPMain_a27c3256ceef903087a9e3cb9dabcd098}{
\hyperlink{classLocalData}{LocalData} $\ast$ {\bfseries get\_\-local\_\-data} ()}
\label{classBGPMain_a27c3256ceef903087a9e3cb9dabcd098}

\item 
\hypertarget{classBGPMain_aee5ed99b831345580bcb03aa95d1d84e}{
void {\bfseries start\_\-server} (const \hyperlink{classIptuple}{Iptuple} \&iptuple)}
\label{classBGPMain_aee5ed99b831345580bcb03aa95d1d84e}

\item 
\hypertarget{classBGPMain_a57cc5a9cac5c55c08f5b77386296c0d6}{
void {\bfseries stop\_\-server} (const \hyperlink{classIptuple}{Iptuple} \&iptuple)}
\label{classBGPMain_a57cc5a9cac5c55c08f5b77386296c0d6}

\item 
\hypertarget{classBGPMain_a7327c746e56a062de6b0144a9e20bd20}{
void \hyperlink{classBGPMain_a7327c746e56a062de6b0144a9e20bd20}{stop\_\-all\_\-servers} ()}
\label{classBGPMain_a7327c746e56a062de6b0144a9e20bd20}

\begin{DoxyCompactList}\small\item\em Stop listening for incoming connections. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_a9dd94a15bac7dbcc4dae9e47787b09b4}{originate\_\-route} (const \hyperlink{classIPNet}{IPv4Net} \&nlri, const \hyperlink{classIPv4}{IPv4} \&next\_\-hop, const bool \&unicast, const bool \&multicast, const \hyperlink{classPolicyTags}{PolicyTags} \&policytags)
\begin{DoxyCompactList}\small\item\em Originate an \hyperlink{classIPv4}{IPv4} route. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_ace02b531a31660c4ee2482b4099d046c}{withdraw\_\-route} (const \hyperlink{classIPNet}{IPv4Net} \&nlri, const bool \&unicast, const bool \&multicast) const 
\begin{DoxyCompactList}\small\item\em Withdraw an \hyperlink{classIPv4}{IPv4} route. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a578da52cb08efc403785e819bf0e6fc6}{
{\footnotesize template$<$typename A $>$ }\\bool {\bfseries get\_\-route\_\-list\_\-start} (uint32\_\-t \&token, const \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&prefix, const bool \&unicast, const bool \&multicast)}
\label{classBGPMain_a578da52cb08efc403785e819bf0e6fc6}

\item 
\hypertarget{classBGPMain_a1df45a7f08c7928465a0637eb37ab2e8}{
{\footnotesize template$<$typename A $>$ }\\bool {\bfseries get\_\-route\_\-list\_\-next} (const uint32\_\-t \&token, \hyperlink{classIPv4}{IPv4} \&peer\_\-id, \hyperlink{classIPNet}{IPNet}$<$ A $>$ \&net, uint32\_\-t \&origin, vector$<$ uint8\_\-t $>$ \&aspath, A \&nexthop, int32\_\-t \&med, int32\_\-t \&localpref, int32\_\-t \&atomic\_\-agg, vector$<$ uint8\_\-t $>$ \&aggregator, int32\_\-t \&calc\_\-localpref, vector$<$ uint8\_\-t $>$ \&attr\_\-unknown, bool \&best, bool \&unicast, bool \&multicast)}
\label{classBGPMain_a1df45a7f08c7928465a0637eb37ab2e8}

\item 
\hypertarget{classBGPMain_a61e2d2977a1b457e1644ea6fb2dfae4f}{
bool {\bfseries rib\_\-client\_\-route\_\-info\_\-changed4} (const \hyperlink{classIPv4}{IPv4} \&addr, const uint32\_\-t \&prefix\_\-len, const \hyperlink{classIPv4}{IPv4} \&nexthop, const uint32\_\-t \&metric)}
\label{classBGPMain_a61e2d2977a1b457e1644ea6fb2dfae4f}

\item 
\hypertarget{classBGPMain_a0a6161f9615b3dfc0a9e8e8f568fa856}{
bool {\bfseries rib\_\-client\_\-route\_\-info\_\-invalid4} (const \hyperlink{classIPv4}{IPv4} \&addr, const uint32\_\-t \&prefix\_\-len)}
\label{classBGPMain_a0a6161f9615b3dfc0a9e8e8f568fa856}

\item 
bool \hyperlink{classBGPMain_a24001672f79bc7ab1ab76991913bd771}{set\_\-parameter} (const \hyperlink{classIptuple}{Iptuple} \&iptuple, const string \&parameter, const bool toggle)
\begin{DoxyCompactList}\small\item\em set parameter \item\end{DoxyCompactList}\item 
\hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$ \hyperlink{classBGPMain_af0d736a2a793e41803e5ca34d22a1813}{plumbing\_\-unicast} () const 
\begin{DoxyCompactList}\small\item\em Originally inserted for testing. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_adb8f557ae769f990126e24da9e62f80b}{
\hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$ {\bfseries plumbing\_\-multicast} () const }
\label{classBGPMain_adb8f557ae769f990126e24da9e62f80b}

\item 
\hypertarget{classBGPMain_a4d18b6b83192f632a63dae56d09bb88f}{
\hyperlink{classXrlStdRouter}{XrlStdRouter} $\ast$ {\bfseries get\_\-router} ()}
\label{classBGPMain_a4d18b6b83192f632a63dae56d09bb88f}

\item 
\hypertarget{classBGPMain_a9c79c3ef15b4a4af8c4d9e4ec879b77d}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries eventloop} ()}
\label{classBGPMain_a9c79c3ef15b4a4af8c4d9e4ec879b77d}

\item 
\hypertarget{classBGPMain_ae1ef1a1e5182bf2d345e42f2c7cc5403}{
\hyperlink{classXrlBgpTarget}{XrlBgpTarget} $\ast$ {\bfseries get\_\-xrl\_\-target} ()}
\label{classBGPMain_ae1ef1a1e5182bf2d345e42f2c7cc5403}

\item 
void \hyperlink{classBGPMain_a0c0c2924b58d310fd7f8a8453e3ffe64}{notify\_\-birth} (const string \&target\_\-class, const string \&target\_\-instance)
\begin{DoxyCompactList}\small\item\em Call via \hyperlink{classXrlBgpTarget}{XrlBgpTarget} when \hyperlink{protocolthe-p}{the} finder reports that a process has started. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_aa3f12ddb3b1c5479fe96e221b9913cd9}{notify\_\-death} (const string \&target\_\-class, const string \&target\_\-instance)
\begin{DoxyCompactList}\small\item\em Call via \hyperlink{classXrlBgpTarget}{XrlBgpTarget} when \hyperlink{protocolthe-p}{the} finder reports that a process has terminated. \item\end{DoxyCompactList}\item 
bool \hyperlink{classBGPMain_ab41bcf41e3e9fe377ca11e9db82e8a5f}{processes\_\-ready} ()
\item 
string \hyperlink{classBGPMain_a409057a8dc5d48c0d0de9d1d3f8954b0}{bgp\_\-mib\_\-name} () const 
\item 
\hypertarget{classBGPMain_a38954e9049b9ae20457fc28f0f235216}{
bool \hyperlink{classBGPMain_a38954e9049b9ae20457fc28f0f235216}{do\_\-snmp\_\-trap} () const }
\label{classBGPMain_a38954e9049b9ae20457fc28f0f235216}

\begin{DoxyCompactList}\small\item\em Check to see if \hyperlink{protocolthe-p}{the} bgp snmp entity is running. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a77c1bfc34d220a92f7488e60dd230131}{
void \hyperlink{classBGPMain_a77c1bfc34d220a92f7488e60dd230131}{finder\_\-death} (const char $\ast$file, const int lineno)}
\label{classBGPMain_a77c1bfc34d220a92f7488e60dd230131}

\begin{DoxyCompactList}\small\item\em To be called when \hyperlink{protocolthe-p}{the} finder dies. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_af682a6a269c33efc4c6977c9ad7f525e}{configure\_\-filter} (const uint32\_\-t \&filter, const string \&conf)
\begin{DoxyCompactList}\small\item\em Configure a policy filter. \item\end{DoxyCompactList}\item 
void \hyperlink{classBGPMain_a3a746ee2c8be97f9856e478957491781}{reset\_\-filter} (const uint32\_\-t \&filter)
\begin{DoxyCompactList}\small\item\em Reset a policy filter. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a4b1687b37f98ad639fbe6af914e56e83}{
void \hyperlink{classBGPMain_a4b1687b37f98ad639fbe6af914e56e83}{push\_\-routes} ()}
\label{classBGPMain_a4b1687b37f98ad639fbe6af914e56e83}

\begin{DoxyCompactList}\small\item\em \hyperlink{classPush}{Push} routes through policy filters for re-\/filtering. \item\end{DoxyCompactList}\item 
\hyperlink{classProfile}{Profile} \& \hyperlink{classBGPMain_a302f105eaa805c8a7c7eb9dda390c056}{profile} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classIPv6}{IPv6} stuff. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classBGPMain_a63e8009af684c8bdce219ab6cf4458e6}{status\_\-change} (\hyperlink{classServiceBase}{ServiceBase} $\ast$service, ServiceStatus old\_\-status, ServiceStatus new\_\-status)
\begin{DoxyCompactList}\small\item\em A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. \item\end{DoxyCompactList}\item 
const \hyperlink{classServiceBase}{ServiceBase} $\ast$ \hyperlink{classBGPMain_a4af28a7b3149cd028c15ee430076f4f5}{ifmgr\_\-mirror\_\-service\_\-base} () const 
\begin{DoxyCompactList}\small\item\em Obtain a pointer to \hyperlink{protocolthe-p}{the} interface manager service base. \item\end{DoxyCompactList}\item 
const \hyperlink{classIfMgrIfTree}{IfMgrIfTree} \& \hyperlink{classBGPMain_a5cdc5864d461613d62d82a800311a84a}{ifmgr\_\-iftree} () const 
\begin{DoxyCompactList}\small\item\em Obtain a reference to \hyperlink{protocolthe-p}{the} interface manager's interface tree. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a9528846cba98ef4359d960472d8d6420}{
void \hyperlink{classBGPMain_a9528846cba98ef4359d960472d8d6420}{tree\_\-complete} ()}
\label{classBGPMain_a9528846cba98ef4359d960472d8d6420}

\begin{DoxyCompactList}\small\item\em An \hyperlink{classIfMgrHintObserver}{IfMgrHintObserver} method invoked when \hyperlink{protocolthe-p}{the} initial interface tree information has been received. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_adefd699299c885beb5e43aa598105805}{
void \hyperlink{classBGPMain_adefd699299c885beb5e43aa598105805}{updates\_\-made} ()}
\label{classBGPMain_adefd699299c885beb5e43aa598105805}

\begin{DoxyCompactList}\small\item\em An \hyperlink{classIfMgrHintObserver}{IfMgrHintObserver} method invoked whenever \hyperlink{protocolthe-p}{the} interface tree information has been changed. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a7c90feeeace7d7cc9d72529dd2ec808d}{
void \hyperlink{classBGPMain_a7c90feeeace7d7cc9d72529dd2ec808d}{address\_\-status\_\-change4} (const string \&interface, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&source, uint32\_\-t prefix\_\-len, bool state)}
\label{classBGPMain_a7c90feeeace7d7cc9d72529dd2ec808d}

\begin{DoxyCompactList}\small\item\em Callback method that is invoked when \hyperlink{protocolthe-p}{the} status of an address changes. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a6242e12bd8689545327984ca268eb3a5}{
void \hyperlink{classBGPMain_a6242e12bd8689545327984ca268eb3a5}{connect\_\-attempt} (\hyperlink{classXorpFd}{XorpFd} fd, IoEventType type, string laddr, uint16\_\-t lport)}
\label{classBGPMain_a6242e12bd8689545327984ca268eb3a5}

\begin{DoxyCompactList}\small\item\em Callback method called when a connection attempt is made. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a2eee653eeaf7cfa9ce143934f41f0174}{
{\footnotesize template$<$typename A $>$ }\\void {\bfseries extract\_\-attributes} (\hyperlink{classPAListRef}{PAListRef}$<$ A $>$ attributes, uint32\_\-t \&origin, vector$<$ uint8\_\-t $>$ \&aspath, A \&nexthop, int32\_\-t \&med, int32\_\-t \&localpref, int32\_\-t \&atomic\_\-agg, vector$<$ uint8\_\-t $>$ \&aggregator, int32\_\-t \&calc\_\-localpref, vector$<$ uint8\_\-t $>$ \&attr\_\-unknown)}
\label{classBGPMain_a2eee653eeaf7cfa9ce143934f41f0174}

\item 
\hypertarget{classBGPMain_af785e5f6925d220d01df8524978565c2}{
{\footnotesize template$<$typename A $>$ }\\\hyperlink{classBGPMain_1_1RoutingTableToken}{RoutingTableToken}$<$ A $>$ \& {\bfseries get\_\-token\_\-table} ()}
\label{classBGPMain_af785e5f6925d220d01df8524978565c2}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classBGPMain_a917396d61ab2d61e85756594629d2223}{
list$<$ \hyperlink{structBGPMain_1_1Server}{Server} $>$ {\bfseries \_\-serverfds}}
\label{classBGPMain_a917396d61ab2d61e85756594629d2223}

\item 
\hypertarget{classBGPMain_abb7b2235abf6ac497ca5f2d9c749b6aa}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classBGPMain_abb7b2235abf6ac497ca5f2d9c749b6aa}

\item 
\hypertarget{classBGPMain_a2f24442f02657d396b331ab9fec36435}{
bool {\bfseries \_\-exit\_\-loop}}
\label{classBGPMain_a2f24442f02657d396b331ab9fec36435}

\item 
\hypertarget{classBGPMain_a56903db6c27438712f45159e378c4ec0}{
\hyperlink{classBGPPeerList}{BGPPeerList} $\ast$ {\bfseries \_\-peerlist}}
\label{classBGPMain_a56903db6c27438712f45159e378c4ec0}

\item 
\hypertarget{classBGPMain_a9c50aa892735b3480cfa0e3846b51072}{
\hyperlink{classBGPPeerList}{BGPPeerList} $\ast$ {\bfseries \_\-deleted\_\-peerlist}}
\label{classBGPMain_a9c50aa892735b3480cfa0e3846b51072}

\item 
\hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$ \hyperlink{classBGPMain_aea985ed2ea70f64ac92735450eb8050e}{\_\-plumbing\_\-unicast}
\begin{DoxyCompactList}\small\item\em Unicast \hyperlink{classRouting}{Routing} Table. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_af23189fee8d8d342f32ca28adac997ed}{
\hyperlink{classNextHopResolver}{NextHopResolver}$<$ \hyperlink{classIPv4}{IPv4} $>$ $\ast$ {\bfseries \_\-next\_\-hop\_\-resolver\_\-ipv4}}
\label{classBGPMain_af23189fee8d8d342f32ca28adac997ed}

\item 
\hyperlink{classBGPPlumbing}{BGPPlumbing} $\ast$ \hyperlink{classBGPMain_a44e15398454c7f02f0e25a1c261f5763}{\_\-plumbing\_\-multicast}
\begin{DoxyCompactList}\small\item\em Multicast \hyperlink{classRouting}{Routing} Table. \item\end{DoxyCompactList}\item 
\hypertarget{classBGPMain_a975ee326209f29e9492c75ef605e966c}{
\hyperlink{classBGPMain_1_1RoutingTableToken}{RoutingTableToken}$<$ \hyperlink{classIPv4}{IPv4} $>$ {\bfseries \_\-table\_\-ipv4}}
\label{classBGPMain_a975ee326209f29e9492c75ef605e966c}

\item 
\hypertarget{classBGPMain_a68c14930b5fcb7bd4e94b0495c3dd23e}{
\hyperlink{classXrlBgpTarget}{XrlBgpTarget} $\ast$ {\bfseries \_\-xrl\_\-target}}
\label{classBGPMain_a68c14930b5fcb7bd4e94b0495c3dd23e}

\item 
\hypertarget{classBGPMain_a6c6d9066d64458b30750e577f3673204}{
\hyperlink{classRibIpcHandler}{RibIpcHandler} $\ast$ {\bfseries \_\-rib\_\-ipc\_\-handler}}
\label{classBGPMain_a6c6d9066d64458b30750e577f3673204}

\item 
\hypertarget{classBGPMain_a3bd03723e6f48dec7bf7728a1282bb03}{
\hyperlink{classAggregationHandler}{AggregationHandler} $\ast$ {\bfseries \_\-aggregation\_\-handler}}
\label{classBGPMain_a3bd03723e6f48dec7bf7728a1282bb03}

\item 
\hypertarget{classBGPMain_ae2f7a5877726a6cf1fd94b67cfaa6228}{
\hyperlink{classLocalData}{LocalData} $\ast$ {\bfseries \_\-local\_\-data}}
\label{classBGPMain_ae2f7a5877726a6cf1fd94b67cfaa6228}

\item 
\hypertarget{classBGPMain_a157cac39532c00a50b7ef98a913ad95f}{
\hyperlink{classXrlStdRouter}{XrlStdRouter} $\ast$ {\bfseries \_\-xrl\_\-router}}
\label{classBGPMain_a157cac39532c00a50b7ef98a913ad95f}

\item 
\hypertarget{classBGPMain_ac84b210b7b37e22fe21188a83a25a510}{
\hyperlink{classProcessWatch}{ProcessWatch} $\ast$ {\bfseries \_\-process\_\-watch}}
\label{classBGPMain_ac84b210b7b37e22fe21188a83a25a510}

\item 
\hypertarget{classBGPMain_af028f662ff0f6e0212554867797ced47}{
\hyperlink{classVersionFilters}{VersionFilters} {\bfseries \_\-policy\_\-filters}}
\label{classBGPMain_af028f662ff0f6e0212554867797ced47}

\item 
\hypertarget{classBGPMain_a000ce00e645e7ed940c39d9f4f9f3242}{
\hyperlink{classProfile}{Profile} {\bfseries \_\-profile}}
\label{classBGPMain_a000ce00e645e7ed940c39d9f4f9f3242}

\item 
\hypertarget{classBGPMain_a6500754bec1bfa3e001505b5648d6ccf}{
size\_\-t {\bfseries \_\-component\_\-count}}
\label{classBGPMain_a6500754bec1bfa3e001505b5648d6ccf}

\item 
\hypertarget{classBGPMain_a983b6db71d86dfda4bd4c18d41ba77e6}{
\hyperlink{classIfMgrXrlMirror}{IfMgrXrlMirror} $\ast$ {\bfseries \_\-ifmgr}}
\label{classBGPMain_a983b6db71d86dfda4bd4c18d41ba77e6}

\item 
\hypertarget{classBGPMain_a1cdd65f23ba5a8bbc55fca730402a631}{
bool {\bfseries \_\-is\_\-ifmgr\_\-ready}}
\label{classBGPMain_a1cdd65f23ba5a8bbc55fca730402a631}

\item 
\hypertarget{classBGPMain_afba5110439b2bdfaef0f19b98e79d237}{
\hyperlink{classIfMgrIfTree}{IfMgrIfTree} {\bfseries \_\-iftree}}
\label{classBGPMain_afba5110439b2bdfaef0f19b98e79d237}

\item 
\hypertarget{classBGPMain_aad0d5fe2bd564ba0e72cfd0c6df35f07}{
InterfaceStatusCb {\bfseries \_\-interface\_\-status\_\-cb}}
\label{classBGPMain_aad0d5fe2bd564ba0e72cfd0c6df35f07}

\item 
\hypertarget{classBGPMain_a5dd9b3933183622dffae69bc02b0c606}{
VifStatusCb {\bfseries \_\-vif\_\-status\_\-cb}}
\label{classBGPMain_a5dd9b3933183622dffae69bc02b0c606}

\item 
\hypertarget{classBGPMain_a79596f17e6db42683c39ec8cfd251094}{
AddressStatus4Cb {\bfseries \_\-address\_\-status4\_\-cb}}
\label{classBGPMain_a79596f17e6db42683c39ec8cfd251094}

\item 
\hypertarget{classBGPMain_a7f52e7b890a4366b770d88a0e1509c21}{
map$<$ \hyperlink{classIPv4}{IPv4}, uint32\_\-t $>$ {\bfseries \_\-interfaces\_\-ipv4}}
\label{classBGPMain_a7f52e7b890a4366b770d88a0e1509c21}

\item 
\hypertarget{classBGPMain_a4fddb48dcb312e8ab2a25427a54eadfc}{
bool {\bfseries \_\-first\_\-policy\_\-push}}
\label{classBGPMain_a4fddb48dcb312e8ab2a25427a54eadfc}

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classBGPMain_aa9824473d6c0ad8c3e70c99cbaec2c13}{
\index{BGPMain@{BGPMain}!activate@{activate}}
\index{activate@{activate}!BGPMain@{BGPMain}}
\subsubsection[{activate}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::activate (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_aa9824473d6c0ad8c3e70c99cbaec2c13}


Activate peer. 

Enable \hyperlink{protocolthe-p}{the} peering based on \hyperlink{protocolthe-p}{the} peer state.


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple.\\
\hline
\end{DoxyParams}
@ return true on success. \hypertarget{classBGPMain_a8a4f3e002c997eec301460d0b54361b4}{
\index{BGPMain@{BGPMain}!activate\_\-all\_\-peers@{activate\_\-all\_\-peers}}
\index{activate\_\-all\_\-peers@{activate\_\-all\_\-peers}!BGPMain@{BGPMain}}
\subsubsection[{activate\_\-all\_\-peers}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::activate\_\-all\_\-peers (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a8a4f3e002c997eec301460d0b54361b4}


Activate all peers. 

\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a4431e486485d50b596f1accf12d712f9}{
\index{BGPMain@{BGPMain}!attach\_\-deleted\_\-peer@{attach\_\-deleted\_\-peer}}
\index{attach\_\-deleted\_\-peer@{attach\_\-deleted\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{attach\_\-deleted\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::attach\_\-deleted\_\-peer (
\begin{DoxyParamCaption}
\item[{{\bf BGPPeer} $\ast$}]{p}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a4431e486485d50b596f1accf12d712f9}


attach peer to deleted peerlist 


\begin{DoxyParams}{Parameters}
{\em p} & BGP peer. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_a1784ca8f7f0c0ef0c67c146cef28300a}{
\index{BGPMain@{BGPMain}!attach\_\-peer@{attach\_\-peer}}
\index{attach\_\-peer@{attach\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{attach\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::attach\_\-peer (
\begin{DoxyParamCaption}
\item[{{\bf BGPPeer} $\ast$}]{p}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a1784ca8f7f0c0ef0c67c146cef28300a}


attach peer to peerlist 


\begin{DoxyParams}{Parameters}
{\em p} & BGP peer. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_a409057a8dc5d48c0d0de9d1d3f8954b0}{
\index{BGPMain@{BGPMain}!bgp\_\-mib\_\-name@{bgp\_\-mib\_\-name}}
\index{bgp\_\-mib\_\-name@{bgp\_\-mib\_\-name}!BGPMain@{BGPMain}}
\subsubsection[{bgp\_\-mib\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}string BGPMain::bgp\_\-mib\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_a409057a8dc5d48c0d0de9d1d3f8954b0}
\begin{DoxyReturn}{Returns}
Return \hyperlink{protocolthe-p}{the} bgp mib name. 
\end{DoxyReturn}
\hypertarget{classBGPMain_ac5d2a22ea7e1358387d044c7f36685d6}{
\index{BGPMain@{BGPMain}!bounce\_\-peer@{bounce\_\-peer}}
\index{bounce\_\-peer@{bounce\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{bounce\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::bounce\_\-peer (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_ac5d2a22ea7e1358387d044c7f36685d6}


Drop this peering and if it was configured up allow it attempt a new peering. 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a9be5cffdd60726ca99a369ae6ecedb57}{
\index{BGPMain@{BGPMain}!change\_\-local\_\-ip@{change\_\-local\_\-ip}}
\index{change\_\-local\_\-ip@{change\_\-local\_\-ip}!BGPMain@{BGPMain}}
\subsubsection[{change\_\-local\_\-ip}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::change\_\-local\_\-ip (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{const string \&}]{local\_\-ip, }
\item[{const string \&}]{local\_\-dev}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a9be5cffdd60726ca99a369ae6ecedb57}


Change \hyperlink{protocolthe-p}{the} local IP address of this peering. 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em local\_\-ip} & new IP value \\
\hline
{\em local\_\-dev} & new Interface value.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a39eeeca05beaca349e5eb6f4f28d89b7}{
\index{BGPMain@{BGPMain}!change\_\-local\_\-port@{change\_\-local\_\-port}}
\index{change\_\-local\_\-port@{change\_\-local\_\-port}!BGPMain@{BGPMain}}
\subsubsection[{change\_\-local\_\-port}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::change\_\-local\_\-port (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{uint32\_\-t}]{local\_\-port}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a39eeeca05beaca349e5eb6f4f28d89b7}


Change \hyperlink{protocolthe-p}{the} local IP port of this peering. 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em local\_\-port} & new value.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a5287a31c34ad2887df5875af3e2038f2}{
\index{BGPMain@{BGPMain}!change\_\-peer\_\-port@{change\_\-peer\_\-port}}
\index{change\_\-peer\_\-port@{change\_\-peer\_\-port}!BGPMain@{BGPMain}}
\subsubsection[{change\_\-peer\_\-port}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::change\_\-peer\_\-port (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{uint32\_\-t}]{peer\_\-port}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a5287a31c34ad2887df5875af3e2038f2}


Change \hyperlink{protocolthe-p}{the} peer IP port of this peering. 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em peer\_\-port} & new value.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a54f7b4c865e104cb7f0c05f3e72f6f93}{
\index{BGPMain@{BGPMain}!change\_\-tuple@{change\_\-tuple}}
\index{change\_\-tuple@{change\_\-tuple}!BGPMain@{BGPMain}}
\subsubsection[{change\_\-tuple}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::change\_\-tuple (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{const {\bf Iptuple} \&}]{nptuple}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a54f7b4c865e104cb7f0c05f3e72f6f93}


Change one of \hyperlink{protocolthe-p}{the} tuple settings of this peering. 


\begin{DoxyParams}{Parameters}
{\em iptuple} & original tuple. \\
\hline
{\em iptuple} & new tuple.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a3c3d79cd4fd8e6e9fcc0f7386cfd3e3d}{
\index{BGPMain@{BGPMain}!component\_\-down@{component\_\-down}}
\index{component\_\-down@{component\_\-down}!BGPMain@{BGPMain}}
\subsubsection[{component\_\-down}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::component\_\-down (
\begin{DoxyParamCaption}
\item[{const string \&}]{component\_\-name}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a3c3d79cd4fd8e6e9fcc0f7386cfd3e3d}


A method that should be called when an internal subsystem goes down. 


\begin{DoxyParams}{Parameters}
{\em component\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} component. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_acc79f6c1dc9fa40411c8fc59766c5155}{
\index{BGPMain@{BGPMain}!component\_\-up@{component\_\-up}}
\index{component\_\-up@{component\_\-up}!BGPMain@{BGPMain}}
\subsubsection[{component\_\-up}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::component\_\-up (
\begin{DoxyParamCaption}
\item[{const string \&}]{component\_\-name}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_acc79f6c1dc9fa40411c8fc59766c5155}


A method that should be called when an internal subsystem comes up. 


\begin{DoxyParams}{Parameters}
{\em component\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} component. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_af682a6a269c33efc4c6977c9ad7f525e}{
\index{BGPMain@{BGPMain}!configure\_\-filter@{configure\_\-filter}}
\index{configure\_\-filter@{configure\_\-filter}!BGPMain@{BGPMain}}
\subsubsection[{configure\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::configure\_\-filter (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{filter, }
\item[{const string \&}]{conf}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_af682a6a269c33efc4c6977c9ad7f525e}


Configure a policy filter. 


\begin{DoxyParams}{Parameters}
{\em filter} & Id of filter to configure. \\
\hline
{\em conf} & \hyperlink{classConfiguration}{Configuration} of filter. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_a91ef0c54f7ae24a89876c0164abd5822}{
\index{BGPMain@{BGPMain}!create\_\-peer@{create\_\-peer}}
\index{create\_\-peer@{create\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{create\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::create\_\-peer (
\begin{DoxyParamCaption}
\item[{{\bf BGPPeerData} $\ast$}]{pd}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a91ef0c54f7ae24a89876c0164abd5822}


create a new peer and attach it to \hyperlink{protocolthe-p}{the} peerlist. 


\begin{DoxyParams}{Parameters}
{\em pd} & BGP peer data.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_aa51e08cc93d4abe1c66ef407daddb8a2}{
\index{BGPMain@{BGPMain}!delete\_\-peer@{delete\_\-peer}}
\index{delete\_\-peer@{delete\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{delete\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::delete\_\-peer (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_aa51e08cc93d4abe1c66ef407daddb8a2}


delete peer tear down connection and remove for peerlist. 

\hyperlink{classXrlBgpTarget}{XrlBgpTarget} xbt(bgp.get\_\-router(), bgp);


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a6d6cac22cbb036a35e977ac42100a0f8}{
\index{BGPMain@{BGPMain}!detach\_\-deleted\_\-peer@{detach\_\-deleted\_\-peer}}
\index{detach\_\-deleted\_\-peer@{detach\_\-deleted\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{detach\_\-deleted\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::detach\_\-deleted\_\-peer (
\begin{DoxyParamCaption}
\item[{{\bf BGPPeer} $\ast$}]{p}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a6d6cac22cbb036a35e977ac42100a0f8}


detach peer from \hyperlink{protocolthe-p}{the} deleted peerlist. 


\begin{DoxyParams}{Parameters}
{\em p} & BGP peer. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_acb6918cd7ec81f6fa9c99b6b69dfaa93}{
\index{BGPMain@{BGPMain}!detach\_\-peer@{detach\_\-peer}}
\index{detach\_\-peer@{detach\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{detach\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::detach\_\-peer (
\begin{DoxyParamCaption}
\item[{{\bf BGPPeer} $\ast$}]{p}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_acb6918cd7ec81f6fa9c99b6b69dfaa93}


detach peer from \hyperlink{protocolthe-p}{the} peerlist. 


\begin{DoxyParams}{Parameters}
{\em p} & BGP peer. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_ac177897ea0e8711f4c335e5722dedd5c}{
\index{BGPMain@{BGPMain}!disable\_\-peer@{disable\_\-peer}}
\index{disable\_\-peer@{disable\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{disable\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::disable\_\-peer (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_ac177897ea0e8711f4c335e5722dedd5c}


disable peer 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a0d49af03087cc268e42616c72c834842}{
\index{BGPMain@{BGPMain}!enable\_\-peer@{enable\_\-peer}}
\index{enable\_\-peer@{enable\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{enable\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::enable\_\-peer (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a0d49af03087cc268e42616c72c834842}


enable peer 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a0f7341f8aa656c0dcb08049ee71a056e}{
\index{BGPMain@{BGPMain}!find\_\-deleted\_\-peer@{find\_\-deleted\_\-peer}}
\index{find\_\-deleted\_\-peer@{find\_\-deleted\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{find\_\-deleted\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BGPPeer} $\ast$ BGPMain::find\_\-deleted\_\-peer (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{search}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a0f7341f8aa656c0dcb08049ee71a056e}


Find peer with this iptuple on \hyperlink{protocolthe-p}{the} deleted peer list. 


\begin{DoxyParams}{Parameters}
{\em search} & iptuple.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to a peer if one is found NULL otherwise. 
\end{DoxyReturn}
\hypertarget{classBGPMain_ab592986f7838f7130acc0f1832859e97}{
\index{BGPMain@{BGPMain}!find\_\-peer@{find\_\-peer}}
\index{find\_\-peer@{find\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{find\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BGPPeer} $\ast$ BGPMain::find\_\-peer (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{search, }
\item[{list$<$ {\bf BGPPeer} $\ast$ $>$ \&}]{peers}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_ab592986f7838f7130acc0f1832859e97}


Find peer with this iptuple from \hyperlink{protocolthe-p}{the} list provided. 


\begin{DoxyParams}{Parameters}
{\em search} & iptuple. \\
\hline
{\em peers} & list to search.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to a peer if one is found NULL otherwise. 
\end{DoxyReturn}
\hypertarget{classBGPMain_a735db8c7f7834cf45a4fa356bf509887}{
\index{BGPMain@{BGPMain}!find\_\-peer@{find\_\-peer}}
\index{find\_\-peer@{find\_\-peer}!BGPMain@{BGPMain}}
\subsubsection[{find\_\-peer}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BGPPeer} $\ast$ BGPMain::find\_\-peer (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{search}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a735db8c7f7834cf45a4fa356bf509887}


Find peer with this iptuple. 


\begin{DoxyParams}{Parameters}
{\em search} & iptuple.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to a peer if one is found NULL otherwise. 
\end{DoxyReturn}
\hypertarget{classBGPMain_ac7219dadb4249547f292e77b8f74d1be}{
\index{BGPMain@{BGPMain}!find\_\-tuple\_\-179@{find\_\-tuple\_\-179}}
\index{find\_\-tuple\_\-179@{find\_\-tuple\_\-179}!BGPMain@{BGPMain}}
\subsubsection[{find\_\-tuple\_\-179}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::find\_\-tuple\_\-179 (
\begin{DoxyParamCaption}
\item[{string}]{peer\_\-addr, }
\item[{{\bf Iptuple} \&}]{otuple}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_ac7219dadb4249547f292e77b8f74d1be}


Find \hyperlink{protocolthe-p}{the} tuple that has this peer address and both ports are 179. 

This is a hack as at \hyperlink{protocolthe-p}{the} moment of writing \hyperlink{protocolthe-p}{the} rtrmgr can't send both \hyperlink{protocolthe-p}{the} old and new state of a variable.


\begin{DoxyParams}{Parameters}
{\em peer\_\-addr} & of tuple. \\
\hline
{\em otuple} & \hyperlink{protocolthe-p}{the} tuple if one is found.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if a tuple is matched. 
\end{DoxyReturn}
\hypertarget{classBGPMain_aab0da8e684a11b9d4f2002a23097d84a}{
\index{BGPMain@{BGPMain}!get\_\-mtu@{get\_\-mtu}}
\index{get\_\-mtu@{get\_\-mtu}!BGPMain@{BGPMain}}
\subsubsection[{get\_\-mtu}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t BGPMain::get\_\-mtu (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_aab0da8e684a11b9d4f2002a23097d84a}


Obtain \hyperlink{protocolthe-p}{the} MTU for an interface. 


\begin{DoxyParams}{Parameters}
{\em \hyperlink{protocolthe-p}{the}} & name of \hyperlink{protocolthe-p}{the} interface. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} mtu for \hyperlink{protocolthe-p}{the} interface. 
\end{DoxyReturn}
\hypertarget{classBGPMain_a3f29216d495affb30afb71a0117ba3a2}{
\index{BGPMain@{BGPMain}!get\_\-prefix\_\-length@{get\_\-prefix\_\-length}}
\index{get\_\-prefix\_\-length@{get\_\-prefix\_\-length}!BGPMain@{BGPMain}}
\subsubsection[{get\_\-prefix\_\-length}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t BGPMain::get\_\-prefix\_\-length (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const {\bf IPv4} \&}]{address}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a3f29216d495affb30afb71a0117ba3a2}


Obtain \hyperlink{protocolthe-p}{the} subnet prefix length for an \hyperlink{classIPv4}{IPv4} interface/vif/address. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif. \\
\hline
{\em address} & \hyperlink{protocolthe-p}{the} address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} subnet prefix length for \hyperlink{protocolthe-p}{the} address. 
\end{DoxyReturn}
\hypertarget{classBGPMain_a5cdc5864d461613d62d82a800311a84a}{
\index{BGPMain@{BGPMain}!ifmgr\_\-iftree@{ifmgr\_\-iftree}}
\index{ifmgr\_\-iftree@{ifmgr\_\-iftree}!BGPMain@{BGPMain}}
\subsubsection[{ifmgr\_\-iftree}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf IfMgrIfTree}\& BGPMain::ifmgr\_\-iftree (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classBGPMain_a5cdc5864d461613d62d82a800311a84a}


Obtain a reference to \hyperlink{protocolthe-p}{the} interface manager's interface tree. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} interface manager's interface tree. 
\end{DoxyReturn}
\hypertarget{classBGPMain_a4af28a7b3149cd028c15ee430076f4f5}{
\index{BGPMain@{BGPMain}!ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}}
\index{ifmgr\_\-mirror\_\-service\_\-base@{ifmgr\_\-mirror\_\-service\_\-base}!BGPMain@{BGPMain}}
\subsubsection[{ifmgr\_\-mirror\_\-service\_\-base}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf ServiceBase}$\ast$ BGPMain::ifmgr\_\-mirror\_\-service\_\-base (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classBGPMain_a4af28a7b3149cd028c15ee430076f4f5}


Obtain a pointer to \hyperlink{protocolthe-p}{the} interface manager service base. 

\begin{DoxyReturn}{Returns}
a pointer to \hyperlink{protocolthe-p}{the} interface manager service base. 
\end{DoxyReturn}
\hypertarget{classBGPMain_a8fb9053980c602a817d567301368c013}{
\index{BGPMain@{BGPMain}!interface\_\-address\_\-prefix\_\-len4@{interface\_\-address\_\-prefix\_\-len4}}
\index{interface\_\-address\_\-prefix\_\-len4@{interface\_\-address\_\-prefix\_\-len4}!BGPMain@{BGPMain}}
\subsubsection[{interface\_\-address\_\-prefix\_\-len4}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::interface\_\-address\_\-prefix\_\-len4 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{address, }
\item[{uint32\_\-t \&}]{prefix\_\-len}
\end{DoxyParamCaption}
) const}}
\label{classBGPMain_a8fb9053980c602a817d567301368c013}


Obtain \hyperlink{protocolthe-p}{the} prefix length for a particular \hyperlink{classIPv4}{IPv4} address. 


\begin{DoxyParams}{Parameters}
{\em address} & \hyperlink{protocolthe-p}{the} address to search for. \\
\hline
{\em prefix\_\-len} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference prefix length for address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address belongs to this router, otherwise false. 
\end{DoxyReturn}
\hypertarget{classBGPMain_ac21f8e48e2930a085228245d7ec42fe8}{
\index{BGPMain@{BGPMain}!is\_\-address\_\-enabled@{is\_\-address\_\-enabled}}
\index{is\_\-address\_\-enabled@{is\_\-address\_\-enabled}!BGPMain@{BGPMain}}
\subsubsection[{is\_\-address\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::is\_\-address\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif, }
\item[{const {\bf IPv4} \&}]{address}
\end{DoxyParamCaption}
) const}}
\label{classBGPMain_ac21f8e48e2930a085228245d7ec42fe8}


Test whether an \hyperlink{classIPv4}{IPv4} interface/vif/address is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to test. \\
\hline
{\em address} & \hyperlink{protocolthe-p}{the} address to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}
\hypertarget{classBGPMain_a73d631098846271ec72e39b7f1f13839}{
\index{BGPMain@{BGPMain}!is\_\-interface\_\-enabled@{is\_\-interface\_\-enabled}}
\index{is\_\-interface\_\-enabled@{is\_\-interface\_\-enabled}!BGPMain@{BGPMain}}
\subsubsection[{is\_\-interface\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::is\_\-interface\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface}
\end{DoxyParamCaption}
) const}}
\label{classBGPMain_a73d631098846271ec72e39b7f1f13839}


Test whether an interface is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}
\hypertarget{classBGPMain_ac4d169515c0a1f50dff28bcf8e783397}{
\index{BGPMain@{BGPMain}!is\_\-vif\_\-enabled@{is\_\-vif\_\-enabled}}
\index{is\_\-vif\_\-enabled@{is\_\-vif\_\-enabled}!BGPMain@{BGPMain}}
\subsubsection[{is\_\-vif\_\-enabled}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::is\_\-vif\_\-enabled (
\begin{DoxyParamCaption}
\item[{const string \&}]{interface, }
\item[{const string \&}]{vif}
\end{DoxyParamCaption}
) const}}
\label{classBGPMain_ac4d169515c0a1f50dff28bcf8e783397}


Test whether an interface/vif is enabled. 


\begin{DoxyParams}{Parameters}
{\em interface} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to test. \\
\hline
{\em vif} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if it exists and is enabled, otherwise false. 
\end{DoxyReturn}
\hypertarget{classBGPMain_adf698cbcc2270294b9b576270dbc3b57}{
\index{BGPMain@{BGPMain}!local\_\-config@{local\_\-config}}
\index{local\_\-config@{local\_\-config}!BGPMain@{BGPMain}}
\subsubsection[{local\_\-config}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::local\_\-config (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{as, }
\item[{const {\bf IPv4} \&}]{id, }
\item[{bool}]{use\_\-4byte\_\-asnums}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_adf698cbcc2270294b9b576270dbc3b57}


Set \hyperlink{protocolthe-p}{the} local configuration. 


\begin{DoxyParams}{Parameters}
{\em as} & as number.\\
\hline
{\em id} & router id.\\
\hline
{\em use\_\-4byte\_\-asnums} & indicates we should send 4 byte AS numbers to all peers that are 4byte capable. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_ab0044c89dd28fee06c9bacc666db85fe}{
\index{BGPMain@{BGPMain}!local\_\-ip\_\-changed@{local\_\-ip\_\-changed}}
\index{local\_\-ip\_\-changed@{local\_\-ip\_\-changed}!BGPMain@{BGPMain}}
\subsubsection[{local\_\-ip\_\-changed}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::local\_\-ip\_\-changed (
\begin{DoxyParamCaption}
\item[{string}]{local\_\-address}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_ab0044c89dd28fee06c9bacc666db85fe}


One of \hyperlink{protocolthe-p}{the} local IP addresses of this router has changed. 

Where a change can be an addition or removal or a change in \hyperlink{protocolthe-p}{the} link status. If \hyperlink{protocolthe-p}{the} provided address matches any of \hyperlink{protocolthe-p}{the} local ip addresses of any of \hyperlink{protocolthe-p}{the} peerings unconditionally bounce \hyperlink{protocolthe-p}{the} peering. Unconditional bouncing of \hyperlink{protocolthe-p}{the} peering is all that is required if a link has gone down \hyperlink{protocolthe-p}{the} old session will be dropped and \hyperlink{protocolthe-p}{the} new one will fail. If \hyperlink{protocolthe-p}{the} link has just come up then a session will be made. \hypertarget{classBGPMain_a0c0c2924b58d310fd7f8a8453e3ffe64}{
\index{BGPMain@{BGPMain}!notify\_\-birth@{notify\_\-birth}}
\index{notify\_\-birth@{notify\_\-birth}!BGPMain@{BGPMain}}
\subsubsection[{notify\_\-birth}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::notify\_\-birth (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class, }
\item[{const string \&}]{target\_\-instance}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_a0c0c2924b58d310fd7f8a8453e3ffe64}


Call via \hyperlink{classXrlBgpTarget}{XrlBgpTarget} when \hyperlink{protocolthe-p}{the} finder reports that a process has started. 


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & Class of process that has started. \\
\hline
{\em target\_\-instance} & Instance name of process that has started. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_aa3f12ddb3b1c5479fe96e221b9913cd9}{
\index{BGPMain@{BGPMain}!notify\_\-death@{notify\_\-death}}
\index{notify\_\-death@{notify\_\-death}!BGPMain@{BGPMain}}
\subsubsection[{notify\_\-death}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::notify\_\-death (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class, }
\item[{const string \&}]{target\_\-instance}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_aa3f12ddb3b1c5479fe96e221b9913cd9}


Call via \hyperlink{classXrlBgpTarget}{XrlBgpTarget} when \hyperlink{protocolthe-p}{the} finder reports that a process has terminated. 


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & Class of process that has terminated. \\
\hline
{\em target\_\-instance} & Instance name of process that has terminated. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_a9dd94a15bac7dbcc4dae9e47787b09b4}{
\index{BGPMain@{BGPMain}!originate\_\-route@{originate\_\-route}}
\index{originate\_\-route@{originate\_\-route}!BGPMain@{BGPMain}}
\subsubsection[{originate\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::originate\_\-route (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Net} \&}]{nlri, }
\item[{const {\bf IPv4} \&}]{next\_\-hop, }
\item[{const bool \&}]{unicast, }
\item[{const bool \&}]{multicast, }
\item[{const {\bf PolicyTags} \&}]{policytags}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a9dd94a15bac7dbcc4dae9e47787b09b4}


Originate an \hyperlink{classIPv4}{IPv4} route. 


\begin{DoxyParams}{Parameters}
{\em nlri} & subnet to announce \\
\hline
{\em next\_\-hop} & to forward to \\
\hline
{\em unicast} & if true install in unicast routing table \\
\hline
{\em multicast} & if true install in multicast routing table \\
\hline
{\em policytags} & policy-\/tags associated with route.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_af0d736a2a793e41803e5ca34d22a1813}{
\index{BGPMain@{BGPMain}!plumbing\_\-unicast@{plumbing\_\-unicast}}
\index{plumbing\_\-unicast@{plumbing\_\-unicast}!BGPMain@{BGPMain}}
\subsubsection[{plumbing\_\-unicast}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BGPPlumbing}$\ast$ BGPMain::plumbing\_\-unicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_af0d736a2a793e41803e5ca34d22a1813}


Originally inserted for testing. 

However, now used by all \hyperlink{protocolthe-p}{the} \char`\"{}rib\_\-client\_\-route\_\-info\_\-$\ast$\char`\"{} methods. \hypertarget{classBGPMain_ab41bcf41e3e9fe377ca11e9db82e8a5f}{
\index{BGPMain@{BGPMain}!processes\_\-ready@{processes\_\-ready}}
\index{processes\_\-ready@{processes\_\-ready}!BGPMain@{BGPMain}}
\subsubsection[{processes\_\-ready}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::processes\_\-ready (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_ab41bcf41e3e9fe377ca11e9db82e8a5f}
\begin{DoxyReturn}{Returns}
Return true when all \hyperlink{protocolthe-p}{the} processes that BGP is dependent on are ready. 
\end{DoxyReturn}
\hypertarget{classBGPMain_a302f105eaa805c8a7c7eb9dda390c056}{
\index{BGPMain@{BGPMain}!profile@{profile}}
\index{profile@{profile}!BGPMain@{BGPMain}}
\subsubsection[{profile}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Profile}\& BGPMain::profile (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_a302f105eaa805c8a7c7eb9dda390c056}


\hyperlink{classIPv6}{IPv6} stuff. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} profiler. 
\end{DoxyReturn}
\hypertarget{classBGPMain_ab33bf7b4c614d6739a85331d45e8011f}{
\index{BGPMain@{BGPMain}!register\_\-address\_\-status@{register\_\-address\_\-status}}
\index{register\_\-address\_\-status@{register\_\-address\_\-status}!BGPMain@{BGPMain}}
\subsubsection[{register\_\-address\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::register\_\-address\_\-status (
\begin{DoxyParamCaption}
\item[{AddressStatus4Cb}]{cb}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_ab33bf7b4c614d6739a85331d45e8011f}


Add a callback for tracking \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} interface/vif/address status. 

The callback will be invoked whenever \hyperlink{protocolthe-p}{the} status of \hyperlink{protocolthe-p}{the} tuple (interface, vif, address) is changed from disabled to enabled or vice-\/versa.


\begin{DoxyParams}{Parameters}
{\em cb} & \hyperlink{protocolthe-p}{the} callback to register. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_a0b1bfc6c66ee5bcd6c8bffc4c13d3a78}{
\index{BGPMain@{BGPMain}!register\_\-interface\_\-status@{register\_\-interface\_\-status}}
\index{register\_\-interface\_\-status@{register\_\-interface\_\-status}!BGPMain@{BGPMain}}
\subsubsection[{register\_\-interface\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::register\_\-interface\_\-status (
\begin{DoxyParamCaption}
\item[{InterfaceStatusCb}]{cb}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_a0b1bfc6c66ee5bcd6c8bffc4c13d3a78}


Add a callback for tracking \hyperlink{protocolthe-p}{the} interface status. 

The callback will be invoked whenever \hyperlink{protocolthe-p}{the} status of \hyperlink{protocolthe-p}{the} interface is changed from disabled to enabled or vice-\/versa.


\begin{DoxyParams}{Parameters}
{\em cb} & \hyperlink{protocolthe-p}{the} callback to register. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_afec99964cc6c4a276ff5d923cbdbc9e0}{
\index{BGPMain@{BGPMain}!register\_\-vif\_\-status@{register\_\-vif\_\-status}}
\index{register\_\-vif\_\-status@{register\_\-vif\_\-status}!BGPMain@{BGPMain}}
\subsubsection[{register\_\-vif\_\-status}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::register\_\-vif\_\-status (
\begin{DoxyParamCaption}
\item[{VifStatusCb}]{cb}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBGPMain_afec99964cc6c4a276ff5d923cbdbc9e0}


Add a callback for tracking \hyperlink{protocolthe-p}{the} interface/vif status. 

The callback will be invoked whenever \hyperlink{protocolthe-p}{the} status of \hyperlink{protocolthe-p}{the} interface/vif is changed from disabled to enabled or vice-\/versa.


\begin{DoxyParams}{Parameters}
{\em cb} & \hyperlink{protocolthe-p}{the} callback to register. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_a3a746ee2c8be97f9856e478957491781}{
\index{BGPMain@{BGPMain}!reset\_\-filter@{reset\_\-filter}}
\index{reset\_\-filter@{reset\_\-filter}!BGPMain@{BGPMain}}
\subsubsection[{reset\_\-filter}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::reset\_\-filter (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{filter}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a3a746ee2c8be97f9856e478957491781}


Reset a policy filter. 


\begin{DoxyParams}{Parameters}
{\em filter} & Id of filter to reset. \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_abc93bd24ccf2704148dfd27323cdb081}{
\index{BGPMain@{BGPMain}!set\_\-confederation\_\-member@{set\_\-confederation\_\-member}}
\index{set\_\-confederation\_\-member@{set\_\-confederation\_\-member}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-confederation\_\-member}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-confederation\_\-member (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{bool}]{conf}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_abc93bd24ccf2704148dfd27323cdb081}


set route confederation member 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em conf} & true if this peer is a confederation member.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a33d6d77093c75178b3ac6221f509d5b7}{
\index{BGPMain@{BGPMain}!set\_\-delay\_\-open\_\-time@{set\_\-delay\_\-open\_\-time}}
\index{set\_\-delay\_\-open\_\-time@{set\_\-delay\_\-open\_\-time}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-delay\_\-open\_\-time}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-delay\_\-open\_\-time (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{uint32\_\-t}]{delay\_\-open\_\-time}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a33d6d77093c75178b3ac6221f509d5b7}


set delay open time 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em delay\_\-open\_\-time} & new value.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a0870d14262fcfd0c31db4d5c0c37548f}{
\index{BGPMain@{BGPMain}!set\_\-holdtime@{set\_\-holdtime}}
\index{set\_\-holdtime@{set\_\-holdtime}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-holdtime}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-holdtime (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{uint32\_\-t}]{holdtime}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a0870d14262fcfd0c31db4d5c0c37548f}


set holdtime 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em holdtime} & new value.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a08b885f789f05fc3e1a22281eb26301a}{
\index{BGPMain@{BGPMain}!set\_\-nexthop4@{set\_\-nexthop4}}
\index{set\_\-nexthop4@{set\_\-nexthop4}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-nexthop4}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-nexthop4 (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{const {\bf IPv4} \&}]{next\_\-hop}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a08b885f789f05fc3e1a22281eb26301a}


set \hyperlink{classIPv4}{IPv4} next-\/hop. 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em next-\/hop} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a24001672f79bc7ab1ab76991913bd771}{
\index{BGPMain@{BGPMain}!set\_\-parameter@{set\_\-parameter}}
\index{set\_\-parameter@{set\_\-parameter}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-parameter}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-parameter (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{const string \&}]{parameter, }
\item[{const bool}]{toggle}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a24001672f79bc7ab1ab76991913bd771}


set parameter 

Typically called via XRL's to set which parameters we support per peer.


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple \\
\hline
{\em parameter} & \\
\hline
{\em toggle} & enable or disable parameter \\
\hline
\end{DoxyParams}
\hypertarget{classBGPMain_a76bf671a22dc2652d52fbd8874747981}{
\index{BGPMain@{BGPMain}!set\_\-peer\_\-as@{set\_\-peer\_\-as}}
\index{set\_\-peer\_\-as@{set\_\-peer\_\-as}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-peer\_\-as}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-peer\_\-as (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{uint32\_\-t}]{peer\_\-as}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a76bf671a22dc2652d52fbd8874747981}


set peer as 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em peer\_\-as} & new value.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a94e3647bc690e9ccfec97b05d923c440}{
\index{BGPMain@{BGPMain}!set\_\-peer\_\-md5\_\-password@{set\_\-peer\_\-md5\_\-password}}
\index{set\_\-peer\_\-md5\_\-password@{set\_\-peer\_\-md5\_\-password}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-peer\_\-md5\_\-password}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-peer\_\-md5\_\-password (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{const string \&}]{password}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a94e3647bc690e9ccfec97b05d923c440}


Set peer TCP-\/MD5 password. 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em password} & The password to use for TCP-\/MD5 authentication; if this is \hyperlink{protocolthe-p}{the} empty string, then authentication will be disabled.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success. 
\end{DoxyReturn}
\hypertarget{classBGPMain_a6cec0b837f400bf637dbadd355b297ab}{
\index{BGPMain@{BGPMain}!set\_\-peer\_\-state@{set\_\-peer\_\-state}}
\index{set\_\-peer\_\-state@{set\_\-peer\_\-state}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-peer\_\-state}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-peer\_\-state (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{bool}]{state}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a6cec0b837f400bf637dbadd355b297ab}


Set peer state. 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em state} & should \hyperlink{protocolthe-p}{the} peering be enable or disabled.\\
\hline
\end{DoxyParams}
@ return true on success. \hypertarget{classBGPMain_aca4829faa96d5a279b65b5e1dd89ee8a}{
\index{BGPMain@{BGPMain}!set\_\-prefix\_\-limit@{set\_\-prefix\_\-limit}}
\index{set\_\-prefix\_\-limit@{set\_\-prefix\_\-limit}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-prefix\_\-limit}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-prefix\_\-limit (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{uint32\_\-t}]{maximum, }
\item[{bool}]{state}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_aca4829faa96d5a279b65b5e1dd89ee8a}


set prefix limit 


\begin{DoxyParams}{Parameters}
{\em maximum} & number of prefixes \\
\hline
{\em state} & true if \hyperlink{protocolthe-p}{the} prefix limit is being enforced\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_a7fbf895cde1625fd23863be23689bfaa}{
\index{BGPMain@{BGPMain}!set\_\-route\_\-reflector\_\-client@{set\_\-route\_\-reflector\_\-client}}
\index{set\_\-route\_\-reflector\_\-client@{set\_\-route\_\-reflector\_\-client}!BGPMain@{BGPMain}}
\subsubsection[{set\_\-route\_\-reflector\_\-client}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::set\_\-route\_\-reflector\_\-client (
\begin{DoxyParamCaption}
\item[{const {\bf Iptuple} \&}]{iptuple, }
\item[{bool}]{rr}
\end{DoxyParamCaption}
)}}
\label{classBGPMain_a7fbf895cde1625fd23863be23689bfaa}


set route reflector client 


\begin{DoxyParams}{Parameters}
{\em iptuple} & iptuple. \\
\hline
{\em rr} & true if this peer is a route reflector client.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}
\hypertarget{classBGPMain_abc688835e38a28ae8278ed1ed26b8832}{
\index{BGPMain@{BGPMain}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!BGPMain@{BGPMain}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}int BGPMain::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classBGPMain_abc688835e38a28ae8278ed1ed26b8832}


\hyperlink{classShutdown}{Shutdown} operation. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classServiceBase_a6ad34506fd5a446d5667abcb2e1b593b}{ServiceBase}.

\hypertarget{classBGPMain_a7eba3521fba92c14c9ce4e584b9e2499}{
\index{BGPMain@{BGPMain}!startup@{startup}}
\index{startup@{startup}!BGPMain@{BGPMain}}
\subsubsection[{startup}]{\setlength{\rightskip}{0pt plus 5cm}int BGPMain::startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classBGPMain_a7eba3521fba92c14c9ce4e584b9e2499}


\hyperlink{classStartup}{Startup} operation. 

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classServiceBase_a791755872b2056ddd82a2f00904c7d2b}{ServiceBase}.

\hypertarget{classBGPMain_a63e8009af684c8bdce219ab6cf4458e6}{
\index{BGPMain@{BGPMain}!status\_\-change@{status\_\-change}}
\index{status\_\-change@{status\_\-change}!BGPMain@{BGPMain}}
\subsubsection[{status\_\-change}]{\setlength{\rightskip}{0pt plus 5cm}void BGPMain::status\_\-change (
\begin{DoxyParamCaption}
\item[{{\bf ServiceBase} $\ast$}]{service, }
\item[{ServiceStatus}]{old\_\-status, }
\item[{ServiceStatus}]{new\_\-status}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classBGPMain_a63e8009af684c8bdce219ab6cf4458e6}


A method invoked when \hyperlink{protocolthe-p}{the} status of a service changes. 


\begin{DoxyParams}{Parameters}
{\em service} & \hyperlink{protocolthe-p}{the} service whose status has changed. \\
\hline
{\em old\_\-status} & \hyperlink{protocolthe-p}{the} old status. \\
\hline
{\em new\_\-status} & \hyperlink{protocolthe-p}{the} new status. \\
\hline
\end{DoxyParams}


Implements \hyperlink{classServiceChangeObserverBase}{ServiceChangeObserverBase}.

\hypertarget{classBGPMain_ace02b531a31660c4ee2482b4099d046c}{
\index{BGPMain@{BGPMain}!withdraw\_\-route@{withdraw\_\-route}}
\index{withdraw\_\-route@{withdraw\_\-route}!BGPMain@{BGPMain}}
\subsubsection[{withdraw\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}bool BGPMain::withdraw\_\-route (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Net} \&}]{nlri, }
\item[{const bool \&}]{unicast, }
\item[{const bool \&}]{multicast}
\end{DoxyParamCaption}
) const}}
\label{classBGPMain_ace02b531a31660c4ee2482b4099d046c}


Withdraw an \hyperlink{classIPv4}{IPv4} route. 


\begin{DoxyParams}{Parameters}
{\em nlri} & subnet to withdraw \\
\hline
{\em unicast} & if true withdraw from unicast routing table \\
\hline
{\em multicast} & if true withdraw from multicast routing table\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success 
\end{DoxyReturn}


\subsection{Member Data Documentation}
\hypertarget{classBGPMain_a44e15398454c7f02f0e25a1c261f5763}{
\index{BGPMain@{BGPMain}!\_\-plumbing\_\-multicast@{\_\-plumbing\_\-multicast}}
\index{\_\-plumbing\_\-multicast@{\_\-plumbing\_\-multicast}!BGPMain@{BGPMain}}
\subsubsection[{\_\-plumbing\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BGPPlumbing}$\ast$ {\bf BGPMain::\_\-plumbing\_\-multicast}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classBGPMain_a44e15398454c7f02f0e25a1c261f5763}


Multicast \hyperlink{classRouting}{Routing} Table. 

SAFI = 2. \hypertarget{classBGPMain_aea985ed2ea70f64ac92735450eb8050e}{
\index{BGPMain@{BGPMain}!\_\-plumbing\_\-unicast@{\_\-plumbing\_\-unicast}}
\index{\_\-plumbing\_\-unicast@{\_\-plumbing\_\-unicast}!BGPMain@{BGPMain}}
\subsubsection[{\_\-plumbing\_\-unicast}]{\setlength{\rightskip}{0pt plus 5cm}{\bf BGPPlumbing}$\ast$ {\bf BGPMain::\_\-plumbing\_\-unicast}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classBGPMain_aea985ed2ea70f64ac92735450eb8050e}


Unicast \hyperlink{classRouting}{Routing} Table. 

SAFI = 1. 

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