\hypertarget{classXrlMfeaNode}{
\section{XrlMfeaNode Class Reference}
\label{classXrlMfeaNode}\index{XrlMfeaNode@{XrlMfeaNode}}
}
Inheritance diagram for XrlMfeaNode:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.438596cm]{classXrlMfeaNode}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlMfeaNode_af48aff214160583b4884e081732c2a5c}{
{\bfseries XrlMfeaNode} (\hyperlink{classFeaNode}{FeaNode} \&fea\_\-node, int family, xorp\_\-module\_\-id module\_\-id, \hyperlink{classEventLoop}{EventLoop} \&eventloop, const string \&class\_\-name, const string \&finder\_\-hostname, uint16\_\-t finder\_\-port, const string \&finder\_\-target)}
\label{classXrlMfeaNode_af48aff214160583b4884e081732c2a5c}

\item 
int \hyperlink{classXrlMfeaNode_a26cb964309cefe5e46b70cbd706ac754}{startup} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classStartup}{Startup} \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classXrlMfeaNode_afc037034880b4793b289ba8338894e7f}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} \hyperlink{protocolthe-p}{the} node operation. \item\end{DoxyCompactList}\item 
\hyperlink{classXrlRouter}{XrlRouter} \& \hyperlink{classXrlMfeaNode_ab2242833a48c5b0420a067693ead0ef0}{xrl\_\-router} ()
\begin{DoxyCompactList}\small\item\em Get a reference to \hyperlink{protocolthe-p}{the} \hyperlink{classXrlRouter}{XrlRouter} instance. \item\end{DoxyCompactList}\item 
const \hyperlink{classXrlRouter}{XrlRouter} \& \hyperlink{classXrlMfeaNode_ae6396110038ac2172b97b3873d9abd63}{xrl\_\-router} () const 
\begin{DoxyCompactList}\small\item\em Get a const reference to \hyperlink{protocolthe-p}{the} \hyperlink{classXrlRouter}{XrlRouter} instance. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_afd7b1d1331fbb820708b728af7b656ed}{
int {\bfseries enable\_\-cli} ()}
\label{classXrlMfeaNode_afd7b1d1331fbb820708b728af7b656ed}

\item 
\hypertarget{classXrlMfeaNode_a0337a49acd11e675f5e98fc6d91422e4}{
int {\bfseries disable\_\-cli} ()}
\label{classXrlMfeaNode_a0337a49acd11e675f5e98fc6d91422e4}

\item 
\hypertarget{classXrlMfeaNode_ad3b384084c2d1c101646af14d0664a3b}{
int {\bfseries start\_\-cli} ()}
\label{classXrlMfeaNode_ad3b384084c2d1c101646af14d0664a3b}

\item 
\hypertarget{classXrlMfeaNode_ab5683dc96eb94d054ef4759c636d6479}{
int {\bfseries stop\_\-cli} ()}
\label{classXrlMfeaNode_ab5683dc96eb94d054ef4759c636d6479}

\item 
\hypertarget{classXrlMfeaNode_ad440663626af536a11191b35cd2090bf}{
int {\bfseries enable\_\-mfea} ()}
\label{classXrlMfeaNode_ad440663626af536a11191b35cd2090bf}

\item 
\hypertarget{classXrlMfeaNode_afdaf5cbe77b3bc79110c465bf746eba4}{
int {\bfseries disable\_\-mfea} ()}
\label{classXrlMfeaNode_afdaf5cbe77b3bc79110c465bf746eba4}

\item 
\hypertarget{classXrlMfeaNode_a3acc5ffbf716f6517d3f7dc0ff6da46d}{
int {\bfseries start\_\-mfea} ()}
\label{classXrlMfeaNode_a3acc5ffbf716f6517d3f7dc0ff6da46d}

\item 
\hypertarget{classXrlMfeaNode_a4b50018ea8e038c9673a5df275f45687}{
int {\bfseries stop\_\-mfea} ()}
\label{classXrlMfeaNode_a4b50018ea8e038c9673a5df275f45687}

\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlMfeaNode_aaf238629197f790744dabd6673572072}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_aaf238629197f790744dabd6673572072}{common\_\-0\_\-1\_\-get\_\-target\_\-name} (string \&name)}
\label{classXrlMfeaNode_aaf238629197f790744dabd6673572072}

\begin{DoxyCompactList}\small\item\em Get name of \hyperlink{classXrl}{Xrl} Target. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a08d1f11fc4fc999bff372c46d6fab409}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a08d1f11fc4fc999bff372c46d6fab409}{common\_\-0\_\-1\_\-get\_\-version} (string \&version)}
\label{classXrlMfeaNode_a08d1f11fc4fc999bff372c46d6fab409}

\begin{DoxyCompactList}\small\item\em Get version string from \hyperlink{classXrl}{Xrl} Target. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_afb4ef309dd7d0213bed6b1c6d6d2894b}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_afb4ef309dd7d0213bed6b1c6d6d2894b}{common\_\-0\_\-1\_\-get\_\-status} (uint32\_\-t \&status, string \&reason)}
\label{classXrlMfeaNode_afb4ef309dd7d0213bed6b1c6d6d2894b}

\begin{DoxyCompactList}\small\item\em Get status from \hyperlink{classXrl}{Xrl} Target. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a71aba06efb7b97c04a64f2834f8b29dc}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a71aba06efb7b97c04a64f2834f8b29dc}{common\_\-0\_\-1\_\-shutdown} ()}
\label{classXrlMfeaNode_a71aba06efb7b97c04a64f2834f8b29dc}

\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} cleanly. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a4d5a3521205bbece5c5adf7536607768}{common\_\-0\_\-1\_\-startup} ()
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a7eda26d016efd5d13c5d9c66c280f5a1}{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth} (const string \&target\_\-class, const string \&target\_\-instance)
\begin{DoxyCompactList}\small\item\em Announce target birth to observer. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a5726d1296420ab01fd4b9d17eb69acb0}{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death} (const string \&target\_\-class, const string \&target\_\-instance)
\begin{DoxyCompactList}\small\item\em Announce target death to observer. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_ae02adcf7222bb81acc5c977605a9babc}{cli\_\-processor\_\-0\_\-1\_\-process\_\-command} (const string \&processor\_\-name, const string \&cli\_\-term\_\-name, const uint32\_\-t \&cli\_\-session\_\-id, const string \&command\_\-name, const string \&command\_\-args, string \&ret\_\-processor\_\-name, string \&ret\_\-cli\_\-term\_\-name, uint32\_\-t \&ret\_\-cli\_\-session\_\-id, string \&ret\_\-command\_\-output)
\begin{DoxyCompactList}\small\item\em Process a CLI command. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a90b4b9dcf92e0b94d4cf8b247a3d7389}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a90b4b9dcf92e0b94d4cf8b247a3d7389}{ifmgr\_\-replicator\_\-0\_\-1\_\-register\_\-ifmgr\_\-mirror} (const string \&clientname)}
\label{classXrlMfeaNode_a90b4b9dcf92e0b94d4cf8b247a3d7389}

\begin{DoxyCompactList}\small\item\em Register remote mirror of interface state. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_abc94457cf24239f808e98c4686222e3a}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_abc94457cf24239f808e98c4686222e3a}{ifmgr\_\-replicator\_\-0\_\-1\_\-unregister\_\-ifmgr\_\-mirror} (const string \&clientname)}
\label{classXrlMfeaNode_abc94457cf24239f808e98c4686222e3a}

\begin{DoxyCompactList}\small\item\em Register remote mirror of interface state. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a5a1ce37acbf3f709990281d4e62c0a2a}{mfea\_\-0\_\-1\_\-have\_\-multicast\_\-routing4} (bool \&result)
\begin{DoxyCompactList}\small\item\em Test if \hyperlink{protocolthe-p}{the} underlying system supports \hyperlink{classIPv4}{IPv4} multicast routing. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a694efaa2bf8255f0b377a05f4aba5be9}{mfea\_\-0\_\-1\_\-register\_\-protocol4} (const string \&xrl\_\-sender\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ip\_\-protocol)
\begin{DoxyCompactList}\small\item\em Register a protocol on an interface in \hyperlink{protocolthe-p}{the} Multicast FEA. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a106c3deac9bb744bae72555b192b8645}{mfea\_\-0\_\-1\_\-unregister\_\-protocol4} (const string \&xrl\_\-sender\_\-name, const string \&if\_\-name, const string \&vif\_\-name)
\begin{DoxyCompactList}\small\item\em Unregister a protocol on an interface in \hyperlink{protocolthe-p}{the} Multicast FEA. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_af4205f18940757e0067240ed94c8ed5a}{mfea\_\-0\_\-1\_\-add\_\-mfc4} (const string \&xrl\_\-sender\_\-name, const \hyperlink{classIPv4}{IPv4} \&source\_\-address, const \hyperlink{classIPv4}{IPv4} \&group\_\-address, const uint32\_\-t \&iif\_\-vif\_\-index, const vector$<$ uint8\_\-t $>$ \&oiflist, const vector$<$ uint8\_\-t $>$ \&oiflist\_\-disable\_\-wrongvif, const uint32\_\-t \&max\_\-vifs\_\-oiflist, const \hyperlink{classIPv4}{IPv4} \&rp\_\-address)
\begin{DoxyCompactList}\small\item\em Add/delete a Multicast Forwarding Cache with \hyperlink{protocolthe-p}{the} kernel. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a7e769225641c54831ad874753928e6b9}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-delete\_\-mfc4} (const string \&xrl\_\-sender\_\-name, const \hyperlink{classIPv4}{IPv4} \&source\_\-address, const \hyperlink{classIPv4}{IPv4} \&group\_\-address)}
\label{classXrlMfeaNode_a7e769225641c54831ad874753928e6b9}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_ad46fce7802c085b90081995c0eb905cc}{mfea\_\-0\_\-1\_\-add\_\-dataflow\_\-monitor4} (const string \&xrl\_\-sender\_\-name, const \hyperlink{classIPv4}{IPv4} \&source\_\-address, const \hyperlink{classIPv4}{IPv4} \&group\_\-address, const uint32\_\-t \&threshold\_\-interval\_\-sec, const uint32\_\-t \&threshold\_\-interval\_\-usec, const uint32\_\-t \&threshold\_\-packets, const uint32\_\-t \&threshold\_\-bytes, const bool \&is\_\-threshold\_\-in\_\-packets, const bool \&is\_\-threshold\_\-in\_\-bytes, const bool \&is\_\-geq\_\-upcall, const bool \&is\_\-leq\_\-upcall)
\begin{DoxyCompactList}\small\item\em Add/delete a dataflow monitor with \hyperlink{protocolthe-p}{the} MFEA. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_ac070f4b6e5e95febf08b1db9aa48724b}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-delete\_\-dataflow\_\-monitor4} (const string \&xrl\_\-sender\_\-name, const \hyperlink{classIPv4}{IPv4} \&source\_\-address, const \hyperlink{classIPv4}{IPv4} \&group\_\-address, const uint32\_\-t \&threshold\_\-interval\_\-sec, const uint32\_\-t \&threshold\_\-interval\_\-usec, const uint32\_\-t \&threshold\_\-packets, const uint32\_\-t \&threshold\_\-bytes, const bool \&is\_\-threshold\_\-in\_\-packets, const bool \&is\_\-threshold\_\-in\_\-bytes, const bool \&is\_\-geq\_\-upcall, const bool \&is\_\-leq\_\-upcall)}
\label{classXrlMfeaNode_ac070f4b6e5e95febf08b1db9aa48724b}

\item 
\hypertarget{classXrlMfeaNode_a48c89fc13206d99d3d5afd7943b6e1b5}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-delete\_\-all\_\-dataflow\_\-monitor4} (const string \&xrl\_\-sender\_\-name, const \hyperlink{classIPv4}{IPv4} \&source\_\-address, const \hyperlink{classIPv4}{IPv4} \&group\_\-address)}
\label{classXrlMfeaNode_a48c89fc13206d99d3d5afd7943b6e1b5}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a0bd54296a69cf985525201a234badd2e}{mfea\_\-0\_\-1\_\-enable\_\-vif} (const string \&vif\_\-name, const bool \&enable)
\begin{DoxyCompactList}\small\item\em Enable/disable/start/stop a MFEA vif interface. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_aff6ed7b5515f2906a670edead9b1d6b0}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-start\_\-vif} (const string \&vif\_\-name)}
\label{classXrlMfeaNode_aff6ed7b5515f2906a670edead9b1d6b0}

\item 
\hypertarget{classXrlMfeaNode_a9cde362904f78f753a50ed0f1f9cff10}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-stop\_\-vif} (const string \&vif\_\-name)}
\label{classXrlMfeaNode_a9cde362904f78f753a50ed0f1f9cff10}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a0557294dd9cc933d32a3bc67a5ed32ac}{mfea\_\-0\_\-1\_\-enable\_\-all\_\-vifs} (const bool \&enable)
\begin{DoxyCompactList}\small\item\em Enable/disable/start/stop all MFEA vif interfaces. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_ab439e8a7bc07fe1e95be590b8be39116}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-start\_\-all\_\-vifs} ()}
\label{classXrlMfeaNode_ab439e8a7bc07fe1e95be590b8be39116}

\item 
\hypertarget{classXrlMfeaNode_a55f0c9632b580920e3f2d0221ca042cb}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-stop\_\-all\_\-vifs} ()}
\label{classXrlMfeaNode_a55f0c9632b580920e3f2d0221ca042cb}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_af561baffcedcc55b1cbfd741722f33d0}{mfea\_\-0\_\-1\_\-enable\_\-mfea} (const bool \&enable)
\begin{DoxyCompactList}\small\item\em Enable/disable/start/stop \hyperlink{protocolthe-p}{the} MFEA. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a504862d6176e5b2b86f763f0296bced3}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-start\_\-mfea} ()}
\label{classXrlMfeaNode_a504862d6176e5b2b86f763f0296bced3}

\item 
\hypertarget{classXrlMfeaNode_aec2a1eab1048a03a6a0962703c589d86}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-stop\_\-mfea} ()}
\label{classXrlMfeaNode_aec2a1eab1048a03a6a0962703c589d86}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a36a413ba63bf19145dcf1dcbadae7a15}{mfea\_\-0\_\-1\_\-enable\_\-cli} (const bool \&enable)
\begin{DoxyCompactList}\small\item\em Enable/disable/start/stop \hyperlink{protocolthe-p}{the} MFEA CLI access. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a64607b4f4e2bef72beb2069513f11cbc}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-start\_\-cli} ()}
\label{classXrlMfeaNode_a64607b4f4e2bef72beb2069513f11cbc}

\item 
\hypertarget{classXrlMfeaNode_a97341967f7d93877b64e4eaf5da3c124}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries mfea\_\-0\_\-1\_\-stop\_\-cli} ()}
\label{classXrlMfeaNode_a97341967f7d93877b64e4eaf5da3c124}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlMfeaNode_a86aba28386ce9e7bbd576f122d4a2c3d}{mfea\_\-0\_\-1\_\-log\_\-trace\_\-all} (const bool \&enable)
\begin{DoxyCompactList}\small\item\em Enable/disable \hyperlink{protocolthe-p}{the} MFEA trace log for all operations. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classXrlMfeaNode_a2aad86b4efc5e7b4b27f5ef1994ff258}{finder\_\-connect\_\-event} ()
\begin{DoxyCompactList}\small\item\em Called when \hyperlink{classFinder}{Finder} connection is established. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{classXrlMfeaNode_a2f8dee8ecbe0504b461ed0bca4848c46}{finder\_\-disconnect\_\-event} ()
\begin{DoxyCompactList}\small\item\em Called when \hyperlink{classFinder}{Finder} disconnect occurs. \item\end{DoxyCompactList}\item 
int \hyperlink{classXrlMfeaNode_a393256ec54016497c5bf30f1103ebe4a}{signal\_\-message\_\-send} (const string \&dst\_\-module\_\-instance\_\-name, int message\_\-type, uint32\_\-t vif\_\-index, const \hyperlink{classIPvX}{IPvX} \&src, const \hyperlink{classIPvX}{IPvX} \&dst, const uint8\_\-t $\ast$rcvbuf, size\_\-t rcvlen)
\begin{DoxyCompactList}\small\item\em \hyperlink{classXrlMfeaNode_a393256ec54016497c5bf30f1103ebe4a}{XrlMfeaNode::signal\_\-message\_\-send}:  name: The name of \hyperlink{protocolthe-p}{the} protocol instance-\/destination of \hyperlink{protocolthe-p}{the} message. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_ae1ef768e991119272f99c764bd54abe5}{
void {\bfseries mfea\_\-client\_\-client\_\-send\_\-recv\_\-kernel\_\-signal\_\-message\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error)}
\label{classXrlMfeaNode_ae1ef768e991119272f99c764bd54abe5}

\item 
int \hyperlink{classXrlMfeaNode_a01bc4f712d9ac3430fca7f30e49375fb}{dataflow\_\-signal\_\-send} (const string \&dst\_\-module\_\-instance\_\-name, const \hyperlink{classIPvX}{IPvX} \&source\_\-addr, const \hyperlink{classIPvX}{IPvX} \&group\_\-addr, uint32\_\-t threshold\_\-interval\_\-sec, uint32\_\-t threshold\_\-interval\_\-usec, uint32\_\-t measured\_\-interval\_\-sec, uint32\_\-t measured\_\-interval\_\-usec, uint32\_\-t threshold\_\-packets, uint32\_\-t threshold\_\-bytes, uint32\_\-t measured\_\-packets, uint32\_\-t measured\_\-bytes, bool is\_\-threshold\_\-in\_\-packets, bool is\_\-threshold\_\-in\_\-bytes, bool is\_\-geq\_\-upcall, bool is\_\-leq\_\-upcall)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} a signal that a dataflow-\/related pre-\/condition is true. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a05f87505a7af0850fc73d464c775a0fc}{
void {\bfseries mfea\_\-client\_\-client\_\-send\_\-recv\_\-dataflow\_\-signal\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error)}
\label{classXrlMfeaNode_a05f87505a7af0850fc73d464c775a0fc}

\item 
int \hyperlink{classXrlMfeaNode_a34352f12d8a3601bafa9856bd1d5b6c9}{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager} (const char $\ast$command\_\-name, const char $\ast$command\_\-help, bool is\_\-command\_\-cd, const char $\ast$command\_\-cd\_\-prompt, bool is\_\-command\_\-processor)
\begin{DoxyCompactList}\small\item\em Add a CLI command to \hyperlink{protocolthe-p}{the} CLI manager. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a808e4242167ea6251ae36984341ab66a}{
void {\bfseries cli\_\-manager\_\-client\_\-send\_\-add\_\-cli\_\-command\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error)}
\label{classXrlMfeaNode_a808e4242167ea6251ae36984341ab66a}

\item 
int \hyperlink{classXrlMfeaNode_a7b6111dac3438577c9935c60b66773f0}{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager} (const char $\ast$command\_\-name)
\begin{DoxyCompactList}\small\item\em Delete a CLI command from \hyperlink{protocolthe-p}{the} CLI manager. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlMfeaNode_a147bf37adb82a40c5f6df8066f896b43}{
void {\bfseries cli\_\-manager\_\-client\_\-send\_\-delete\_\-cli\_\-command\_\-cb} (const \hyperlink{classXrlError}{XrlError} \&xrl\_\-error)}
\label{classXrlMfeaNode_a147bf37adb82a40c5f6df8066f896b43}

\item 
int \hyperlink{classXrlMfeaNode_a9e7937cabe583558aec40b4d59ec12c6}{family} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address family. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlMfeaNode_a4e9046ad5bbd24e18187de776f2118f0}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classXrlMfeaNode_a4e9046ad5bbd24e18187de776f2118f0}

\item 
\hypertarget{classXrlMfeaNode_a65d06ea67fb350617c27afd580a218b9}{
const string {\bfseries \_\-finder\_\-target}}
\label{classXrlMfeaNode_a65d06ea67fb350617c27afd580a218b9}

\item 
\hypertarget{classXrlMfeaNode_a219ae8231173fbf8df8289fbd6b89437}{
\hyperlink{classXrlMfeaClientV0p1Client}{XrlMfeaClientV0p1Client} {\bfseries \_\-xrl\_\-mfea\_\-client\_\-client}}
\label{classXrlMfeaNode_a219ae8231173fbf8df8289fbd6b89437}

\item 
\hypertarget{classXrlMfeaNode_acb9ebe09df7c373e3fbcad8e44b5bb4d}{
\hyperlink{classXrlCliManagerV0p1Client}{XrlCliManagerV0p1Client} {\bfseries \_\-xrl\_\-cli\_\-manager\_\-client}}
\label{classXrlMfeaNode_acb9ebe09df7c373e3fbcad8e44b5bb4d}

\item 
\hypertarget{classXrlMfeaNode_aed0150384b92559813a8cde2cbfec671}{
\hyperlink{classXrlFinderEventNotifierV0p1Client}{XrlFinderEventNotifierV0p1Client} {\bfseries \_\-xrl\_\-finder\_\-client}}
\label{classXrlMfeaNode_aed0150384b92559813a8cde2cbfec671}

\item 
\hypertarget{classXrlMfeaNode_a3d34078beb0d3888c35a1a69aa9ceee1}{
\hyperlink{classLibFeaClientBridge}{LibFeaClientBridge} {\bfseries \_\-lib\_\-mfea\_\-client\_\-bridge}}
\label{classXrlMfeaNode_a3d34078beb0d3888c35a1a69aa9ceee1}

\item 
\hypertarget{classXrlMfeaNode_a4de13f65eb3ab62ddbc0aac3f8adea0b}{
bool {\bfseries \_\-is\_\-finder\_\-alive}}
\label{classXrlMfeaNode_a4de13f65eb3ab62ddbc0aac3f8adea0b}

\end{DoxyCompactItemize}


\subsection{Member Function Documentation}
\hypertarget{classXrlMfeaNode_a34352f12d8a3601bafa9856bd1d5b6c9}{
\index{XrlMfeaNode@{XrlMfeaNode}!add\_\-cli\_\-command\_\-to\_\-cli\_\-manager@{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager}}
\index{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager@{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{add\_\-cli\_\-command\_\-to\_\-cli\_\-manager}]{\setlength{\rightskip}{0pt plus 5cm}int XrlMfeaNode::add\_\-cli\_\-command\_\-to\_\-cli\_\-manager (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{command\_\-name, }
\item[{const char $\ast$}]{command\_\-help, }
\item[{bool}]{is\_\-command\_\-cd, }
\item[{const char $\ast$}]{command\_\-cd\_\-prompt, }
\item[{bool}]{is\_\-command\_\-processor}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a34352f12d8a3601bafa9856bd1d5b6c9}


Add a CLI command to \hyperlink{protocolthe-p}{the} CLI manager. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} particular protocol node class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em command\_\-name} & \hyperlink{protocolthe-p}{the} command name to add. \\
\hline
{\em command\_\-help} & \hyperlink{protocolthe-p}{the} help message for \hyperlink{protocolthe-p}{the} command. \\
\hline
{\em is\_\-command\_\-cd} & if true, this is a directory level that allows user to \char`\"{}cd\char`\"{} to that directory. \\
\hline
{\em command\_\-cd\_\-prompt} & if this is a directory user can \char`\"{}cd\char`\"{} to it, \hyperlink{protocolthe-p}{the} prompt to appear after \hyperlink{protocolthe-p}{the} \char`\"{}cd\char`\"{}. \\
\hline
{\em is\_\-command\_\-processor} & if true, this is an oridinary command that can be invoked for processing rather than a directory level. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classProtoNodeCli_af8654cc4c5c9add14dd19cac67db20a2}{ProtoNodeCli}.

\hypertarget{classXrlMfeaNode_ae02adcf7222bb81acc5c977605a9babc}{
\index{XrlMfeaNode@{XrlMfeaNode}!cli\_\-processor\_\-0\_\-1\_\-process\_\-command@{cli\_\-processor\_\-0\_\-1\_\-process\_\-command}}
\index{cli\_\-processor\_\-0\_\-1\_\-process\_\-command@{cli\_\-processor\_\-0\_\-1\_\-process\_\-command}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{cli\_\-processor\_\-0\_\-1\_\-process\_\-command}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::cli\_\-processor\_\-0\_\-1\_\-process\_\-command (
\begin{DoxyParamCaption}
\item[{const string \&}]{processor\_\-name, }
\item[{const string \&}]{cli\_\-term\_\-name, }
\item[{const uint32\_\-t \&}]{cli\_\-session\_\-id, }
\item[{const string \&}]{command\_\-name, }
\item[{const string \&}]{command\_\-args, }
\item[{string \&}]{ret\_\-processor\_\-name, }
\item[{string \&}]{ret\_\-cli\_\-term\_\-name, }
\item[{uint32\_\-t \&}]{ret\_\-cli\_\-session\_\-id, }
\item[{string \&}]{ret\_\-command\_\-output}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_ae02adcf7222bb81acc5c977605a9babc}


Process a CLI command. 


\begin{DoxyParams}{Parameters}
{\em processor\_\-name} & \hyperlink{protocolthe-p}{the} processor name for this command.\\
\hline
{\em cli\_\-term\_\-name} & \hyperlink{protocolthe-p}{the} terminal name \hyperlink{protocolthe-p}{the} command was entered from.\\
\hline
{\em cli\_\-session\_\-id} & \hyperlink{protocolthe-p}{the} CLI session ID \hyperlink{protocolthe-p}{the} command was entered from.\\
\hline
{\em command\_\-name} & \hyperlink{protocolthe-p}{the} command name to process.\\
\hline
{\em command\_\-args} & \hyperlink{protocolthe-p}{the} command arguments to process.\\
\hline
{\em ret\_\-processor\_\-name} & \hyperlink{protocolthe-p}{the} processor name to return back to \hyperlink{protocolthe-p}{the} CLI.\\
\hline
{\em ret\_\-cli\_\-term\_\-name} & \hyperlink{protocolthe-p}{the} terminal name to return back.\\
\hline
{\em ret\_\-cli\_\-session\_\-id} & \hyperlink{protocolthe-p}{the} CLI session ID to return back.\\
\hline
{\em ret\_\-command\_\-output} & \hyperlink{protocolthe-p}{the} command output to return back. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_adf0c8cc787ac45df5cd98c6e2cdd1c59}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a4d5a3521205bbece5c5adf7536607768}{
\index{XrlMfeaNode@{XrlMfeaNode}!common\_\-0\_\-1\_\-startup@{common\_\-0\_\-1\_\-startup}}
\index{common\_\-0\_\-1\_\-startup@{common\_\-0\_\-1\_\-startup}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{common\_\-0\_\-1\_\-startup}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::common\_\-0\_\-1\_\-startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a4d5a3521205bbece5c5adf7536607768}


Pure-\/virtual function that needs to be implemented to: 

Request a startup of \hyperlink{classXrl}{Xrl} Target 

Implements \hyperlink{structXrlMfeaTargetBase_a6afa9b701ec9648f487f305a15f6b08e}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a01bc4f712d9ac3430fca7f30e49375fb}{
\index{XrlMfeaNode@{XrlMfeaNode}!dataflow\_\-signal\_\-send@{dataflow\_\-signal\_\-send}}
\index{dataflow\_\-signal\_\-send@{dataflow\_\-signal\_\-send}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{dataflow\_\-signal\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int XrlMfeaNode::dataflow\_\-signal\_\-send (
\begin{DoxyParamCaption}
\item[{const string \&}]{dst\_\-module\_\-instance\_\-name, }
\item[{const {\bf IPvX} \&}]{source\_\-addr, }
\item[{const {\bf IPvX} \&}]{group\_\-addr, }
\item[{uint32\_\-t}]{threshold\_\-interval\_\-sec, }
\item[{uint32\_\-t}]{threshold\_\-interval\_\-usec, }
\item[{uint32\_\-t}]{measured\_\-interval\_\-sec, }
\item[{uint32\_\-t}]{measured\_\-interval\_\-usec, }
\item[{uint32\_\-t}]{threshold\_\-packets, }
\item[{uint32\_\-t}]{threshold\_\-bytes, }
\item[{uint32\_\-t}]{measured\_\-packets, }
\item[{uint32\_\-t}]{measured\_\-bytes, }
\item[{bool}]{is\_\-threshold\_\-in\_\-packets, }
\item[{bool}]{is\_\-threshold\_\-in\_\-bytes, }
\item[{bool}]{is\_\-geq\_\-upcall, }
\item[{bool}]{is\_\-leq\_\-upcall}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a01bc4f712d9ac3430fca7f30e49375fb}


\hyperlink{structSend}{Send} a signal that a dataflow-\/related pre-\/condition is true. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} communication-\/wrapper class that inherits this base class.

Note: either is\_\-threshold\_\-in\_\-packets or is\_\-threshold\_\-in\_\-bytes (or both) must be true. Note: either is\_\-geq\_\-upcall or is\_\-leq\_\-upcall (but not both) must be true.


\begin{DoxyParams}{Parameters}
{\em dst\_\-module\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} module instance name of \hyperlink{protocolthe-p}{the} module-\/recepient of \hyperlink{protocolthe-p}{the} message.\\
\hline
{\em source\_\-addr} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} dataflow.\\
\hline
{\em group\_\-addr} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} dataflow.\\
\hline
{\em threshold\_\-interval\_\-sec} & \hyperlink{protocolthe-p}{the} number of seconds in \hyperlink{protocolthe-p}{the} interval requested for measurement.\\
\hline
{\em threshold\_\-interval\_\-usec} & \hyperlink{protocolthe-p}{the} number of microseconds in \hyperlink{protocolthe-p}{the} interval requested for measurement.\\
\hline
{\em measured\_\-interval\_\-sec} & \hyperlink{protocolthe-p}{the} number of seconds in \hyperlink{protocolthe-p}{the} last measured interval that has triggered \hyperlink{protocolthe-p}{the} signal.\\
\hline
{\em measured\_\-interval\_\-usec} & \hyperlink{protocolthe-p}{the} number of microseconds in \hyperlink{protocolthe-p}{the} last measured interval that has triggered \hyperlink{protocolthe-p}{the} signal.\\
\hline
{\em threshold\_\-packets} & \hyperlink{protocolthe-p}{the} threshold value to trigger a signal (in number of packets).\\
\hline
{\em threshold\_\-bytes} & \hyperlink{protocolthe-p}{the} threshold value to trigger a signal (in bytes).\\
\hline
{\em measured\_\-packets} & \hyperlink{protocolthe-p}{the} number of packets measured within \hyperlink{protocolthe-p}{the} measured\_\-interval.\\
\hline
{\em measured\_\-bytes} & \hyperlink{protocolthe-p}{the} number of bytes measured within \hyperlink{protocolthe-p}{the} measured\_\-interval.\\
\hline
{\em is\_\-threshold\_\-in\_\-packets} & if true, threshold\_\-packets is valid.\\
\hline
{\em is\_\-threshold\_\-in\_\-bytes} & if true, threshold\_\-bytes is valid.\\
\hline
{\em is\_\-geq\_\-upcall} & if true, \hyperlink{protocolthe-p}{the} operation for comparison is \char`\"{}$>$=\char`\"{}.\\
\hline
{\em is\_\-leq\_\-upcall} & if true, \hyperlink{protocolthe-p}{the} operation for comparison is \char`\"{}$<$=\char`\"{}.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classMfeaNode_ab6132e6437fc436f67d269133cbe70a0}{MfeaNode}.

\hypertarget{classXrlMfeaNode_a7b6111dac3438577c9935c60b66773f0}{
\index{XrlMfeaNode@{XrlMfeaNode}!delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager@{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager}}
\index{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager@{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager}]{\setlength{\rightskip}{0pt plus 5cm}int XrlMfeaNode::delete\_\-cli\_\-command\_\-from\_\-cli\_\-manager (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{command\_\-name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a7b6111dac3438577c9935c60b66773f0}


Delete a CLI command from \hyperlink{protocolthe-p}{the} CLI manager. 

This is a pure virtual function, and it must be implemented by \hyperlink{protocolthe-p}{the} particular protocol node class that inherits this base class.


\begin{DoxyParams}{Parameters}
{\em command\_\-name} & \hyperlink{protocolthe-p}{the} command name to delete. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}


Implements \hyperlink{classProtoNodeCli_a4ec12bc88a4cac74cbb0bb7e73f344bc}{ProtoNodeCli}.

\hypertarget{classXrlMfeaNode_a9e7937cabe583558aec40b4d59ec12c6}{
\index{XrlMfeaNode@{XrlMfeaNode}!family@{family}}
\index{family@{family}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{family}]{\setlength{\rightskip}{0pt plus 5cm}int XrlMfeaNode::family (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, private\mbox{]}}}}
\label{classXrlMfeaNode_a9e7937cabe583558aec40b4d59ec12c6}


Get \hyperlink{protocolthe-p}{the} address family. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} address family (e.g., AF\_\-INET or AF\_\-INET6 for \hyperlink{classIPv4}{IPv4} and \hyperlink{classIPv6}{IPv6} respectively). 
\end{DoxyReturn}


Reimplemented from \hyperlink{classProtoUnit_a955a2dfb148d0d546c7de9f0f684025c}{ProtoUnit}.

\hypertarget{classXrlMfeaNode_a2aad86b4efc5e7b4b27f5ef1994ff258}{
\index{XrlMfeaNode@{XrlMfeaNode}!finder\_\-connect\_\-event@{finder\_\-connect\_\-event}}
\index{finder\_\-connect\_\-event@{finder\_\-connect\_\-event}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{finder\_\-connect\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}void XrlMfeaNode::finder\_\-connect\_\-event (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a2aad86b4efc5e7b4b27f5ef1994ff258}


Called when \hyperlink{classFinder}{Finder} connection is established. 

Note that this method overwrites an \hyperlink{classXrlRouter}{XrlRouter} virtual method. 

Reimplemented from \hyperlink{classXrlRouter_a27bd1d3e253f4cd00d48376cbeab2320}{XrlRouter}.

\hypertarget{classXrlMfeaNode_a2f8dee8ecbe0504b461ed0bca4848c46}{
\index{XrlMfeaNode@{XrlMfeaNode}!finder\_\-disconnect\_\-event@{finder\_\-disconnect\_\-event}}
\index{finder\_\-disconnect\_\-event@{finder\_\-disconnect\_\-event}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{finder\_\-disconnect\_\-event}]{\setlength{\rightskip}{0pt plus 5cm}void XrlMfeaNode::finder\_\-disconnect\_\-event (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a2f8dee8ecbe0504b461ed0bca4848c46}


Called when \hyperlink{classFinder}{Finder} disconnect occurs. 

Note that this method overwrites an \hyperlink{classXrlRouter}{XrlRouter} virtual method. 

Reimplemented from \hyperlink{classXrlRouter_ac10ae311195fd0d8c350f9d8172602f9}{XrlRouter}.

\hypertarget{classXrlMfeaNode_a7eda26d016efd5d13c5d9c66c280f5a1}{
\index{XrlMfeaNode@{XrlMfeaNode}!finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth@{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth}}
\index{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth@{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class, }
\item[{const string \&}]{target\_\-instance}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a7eda26d016efd5d13c5d9c66c280f5a1}


Announce target birth to observer. 


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & \hyperlink{protocolthe-p}{the} target class name.\\
\hline
{\em target\_\-instance} & \hyperlink{protocolthe-p}{the} target instance name. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a9aa16c0eb541723ee315cffea192f0bc}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a5726d1296420ab01fd4b9d17eb69acb0}{
\index{XrlMfeaNode@{XrlMfeaNode}!finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death@{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death}}
\index{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death@{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death (
\begin{DoxyParamCaption}
\item[{const string \&}]{target\_\-class, }
\item[{const string \&}]{target\_\-instance}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a5726d1296420ab01fd4b9d17eb69acb0}


Announce target death to observer. 


\begin{DoxyParams}{Parameters}
{\em target\_\-class} & \hyperlink{protocolthe-p}{the} target class name.\\
\hline
{\em target\_\-instance} & \hyperlink{protocolthe-p}{the} target instance name. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a182d0a3a2ab46a8526c810cc5961c243}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_ad46fce7802c085b90081995c0eb905cc}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-add\_\-dataflow\_\-monitor4@{mfea\_\-0\_\-1\_\-add\_\-dataflow\_\-monitor4}}
\index{mfea\_\-0\_\-1\_\-add\_\-dataflow\_\-monitor4@{mfea\_\-0\_\-1\_\-add\_\-dataflow\_\-monitor4}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-add\_\-dataflow\_\-monitor4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-add\_\-dataflow\_\-monitor4 (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-sender\_\-name, }
\item[{const {\bf IPv4} \&}]{source\_\-address, }
\item[{const {\bf IPv4} \&}]{group\_\-address, }
\item[{const uint32\_\-t \&}]{threshold\_\-interval\_\-sec, }
\item[{const uint32\_\-t \&}]{threshold\_\-interval\_\-usec, }
\item[{const uint32\_\-t \&}]{threshold\_\-packets, }
\item[{const uint32\_\-t \&}]{threshold\_\-bytes, }
\item[{const bool \&}]{is\_\-threshold\_\-in\_\-packets, }
\item[{const bool \&}]{is\_\-threshold\_\-in\_\-bytes, }
\item[{const bool \&}]{is\_\-geq\_\-upcall, }
\item[{const bool \&}]{is\_\-leq\_\-upcall}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_ad46fce7802c085b90081995c0eb905cc}


Add/delete a dataflow monitor with \hyperlink{protocolthe-p}{the} MFEA. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-sender\_\-name} & \hyperlink{protocolthe-p}{the} XRL name of \hyperlink{protocolthe-p}{the} originator of this XRL.\\
\hline
{\em source\_\-address} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} dataflow to start/stop monitoring.\\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} dataflow to start/stop monitoring.\\
\hline
{\em threshold\_\-interval\_\-sec} & \hyperlink{protocolthe-p}{the} number of seconds in \hyperlink{protocolthe-p}{the} interval to measure.\\
\hline
{\em threshold\_\-interval\_\-usec} & \hyperlink{protocolthe-p}{the} number of microseconds in \hyperlink{protocolthe-p}{the} interval to measure.\\
\hline
{\em threshold\_\-packets} & \hyperlink{protocolthe-p}{the} threshold (in number of packets) to compare against.\\
\hline
{\em threshold\_\-bytes} & \hyperlink{protocolthe-p}{the} threshold (in number of bytes) to compare against.\\
\hline
{\em is\_\-threshold\_\-in\_\-packets} & if true, threshold\_\-packets is valid.\\
\hline
{\em is\_\-threshold\_\-in\_\-bytes} & if true, threshold\_\-bytes is valid.\\
\hline
{\em is\_\-geq\_\-upcall} & if true, \hyperlink{protocolthe-p}{the} operation for comparison is \char`\"{}$>$=\char`\"{}.\\
\hline
{\em is\_\-leq\_\-upcall} & if true, \hyperlink{protocolthe-p}{the} operation for comparison is \char`\"{}$<$=\char`\"{}. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a53db746135f34983c88d3f575041e974}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_af4205f18940757e0067240ed94c8ed5a}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-add\_\-mfc4@{mfea\_\-0\_\-1\_\-add\_\-mfc4}}
\index{mfea\_\-0\_\-1\_\-add\_\-mfc4@{mfea\_\-0\_\-1\_\-add\_\-mfc4}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-add\_\-mfc4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-add\_\-mfc4 (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-sender\_\-name, }
\item[{const {\bf IPv4} \&}]{source\_\-address, }
\item[{const {\bf IPv4} \&}]{group\_\-address, }
\item[{const uint32\_\-t \&}]{iif\_\-vif\_\-index, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{oiflist, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{oiflist\_\-disable\_\-wrongvif, }
\item[{const uint32\_\-t \&}]{max\_\-vifs\_\-oiflist, }
\item[{const {\bf IPv4} \&}]{rp\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_af4205f18940757e0067240ed94c8ed5a}


Add/delete a Multicast Forwarding Cache with \hyperlink{protocolthe-p}{the} kernel. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-sender\_\-name} & \hyperlink{protocolthe-p}{the} XRL name of \hyperlink{protocolthe-p}{the} originator of this XRL.\\
\hline
{\em source\_\-address} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} MFC to add/delete.\\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} group address of \hyperlink{protocolthe-p}{the} MFC to add/delete.\\
\hline
{\em iif\_\-vif\_\-index} & \hyperlink{protocolthe-p}{the} index of \hyperlink{protocolthe-p}{the} vif that is \hyperlink{protocolthe-p}{the} incoming interface.\\
\hline
{\em oiflist} & \hyperlink{protocolthe-p}{the} bit-\/vector with \hyperlink{protocolthe-p}{the} set of outgoing interfaces.\\
\hline
{\em oiflist\_\-disable\_\-wrongvif} & \hyperlink{protocolthe-p}{the} bit-\/vector with \hyperlink{protocolthe-p}{the} set of outgoing interfaces to disable WRONGVIF kernel signal.\\
\hline
{\em max\_\-vifs\_\-oiflist} & \hyperlink{protocolthe-p}{the} number of vifs covered by oiflist or oiflist\_\-disable\_\-wrongvif .\\
\hline
{\em rp\_\-address} & \hyperlink{protocolthe-p}{the} RP address of \hyperlink{protocolthe-p}{the} MFC to add. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_acc76d7ca62995d7dd4a4b5f4bd598965}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a0557294dd9cc933d32a3bc67a5ed32ac}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-enable\_\-all\_\-vifs@{mfea\_\-0\_\-1\_\-enable\_\-all\_\-vifs}}
\index{mfea\_\-0\_\-1\_\-enable\_\-all\_\-vifs@{mfea\_\-0\_\-1\_\-enable\_\-all\_\-vifs}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-enable\_\-all\_\-vifs}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-enable\_\-all\_\-vifs (
\begin{DoxyParamCaption}
\item[{const bool \&}]{enable}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a0557294dd9cc933d32a3bc67a5ed32ac}


Enable/disable/start/stop all MFEA vif interfaces. 


\begin{DoxyParams}{Parameters}
{\em enable} & if true, then enable \hyperlink{protocolthe-p}{the} vifs, otherwise disable them. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a0544aa9943e266fa014be96c88894015}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a36a413ba63bf19145dcf1dcbadae7a15}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-enable\_\-cli@{mfea\_\-0\_\-1\_\-enable\_\-cli}}
\index{mfea\_\-0\_\-1\_\-enable\_\-cli@{mfea\_\-0\_\-1\_\-enable\_\-cli}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-enable\_\-cli}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-enable\_\-cli (
\begin{DoxyParamCaption}
\item[{const bool \&}]{enable}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a36a413ba63bf19145dcf1dcbadae7a15}


Enable/disable/start/stop \hyperlink{protocolthe-p}{the} MFEA CLI access. 


\begin{DoxyParams}{Parameters}
{\em enable} & if true, then enable \hyperlink{protocolthe-p}{the} MFEA CLI access, otherwise disable it. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a6f7e513bcd6ea1cb85731dafa3e22eca}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_af561baffcedcc55b1cbfd741722f33d0}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-enable\_\-mfea@{mfea\_\-0\_\-1\_\-enable\_\-mfea}}
\index{mfea\_\-0\_\-1\_\-enable\_\-mfea@{mfea\_\-0\_\-1\_\-enable\_\-mfea}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-enable\_\-mfea}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-enable\_\-mfea (
\begin{DoxyParamCaption}
\item[{const bool \&}]{enable}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_af561baffcedcc55b1cbfd741722f33d0}


Enable/disable/start/stop \hyperlink{protocolthe-p}{the} MFEA. 


\begin{DoxyParams}{Parameters}
{\em enable} & if true, then enable \hyperlink{protocolthe-p}{the} MFEA, otherwise disable it. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a80a245abcce48eec2655c62b4745267f}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a0bd54296a69cf985525201a234badd2e}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-enable\_\-vif@{mfea\_\-0\_\-1\_\-enable\_\-vif}}
\index{mfea\_\-0\_\-1\_\-enable\_\-vif@{mfea\_\-0\_\-1\_\-enable\_\-vif}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-enable\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-enable\_\-vif (
\begin{DoxyParamCaption}
\item[{const string \&}]{vif\_\-name, }
\item[{const bool \&}]{enable}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a0bd54296a69cf985525201a234badd2e}


Enable/disable/start/stop a MFEA vif interface. 


\begin{DoxyParams}{Parameters}
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to enable/disable/start/stop.\\
\hline
{\em enable} & if true, then enable \hyperlink{protocolthe-p}{the} vif, otherwise disable it. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a79a79a8681af5fe92808ed00b94e24c6}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a5a1ce37acbf3f709990281d4e62c0a2a}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-have\_\-multicast\_\-routing4@{mfea\_\-0\_\-1\_\-have\_\-multicast\_\-routing4}}
\index{mfea\_\-0\_\-1\_\-have\_\-multicast\_\-routing4@{mfea\_\-0\_\-1\_\-have\_\-multicast\_\-routing4}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-have\_\-multicast\_\-routing4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-have\_\-multicast\_\-routing4 (
\begin{DoxyParamCaption}
\item[{bool \&}]{result}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a5a1ce37acbf3f709990281d4e62c0a2a}


Test if \hyperlink{protocolthe-p}{the} underlying system supports \hyperlink{classIPv4}{IPv4} multicast routing. 


\begin{DoxyParams}{Parameters}
{\em result} & true if \hyperlink{protocolthe-p}{the} underlying system supports \hyperlink{classIPv4}{IPv4} multicast routing, otherwise false. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a2a7e88e265fd0eac6b8cb74650ff3994}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a86aba28386ce9e7bbd576f122d4a2c3d}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-log\_\-trace\_\-all@{mfea\_\-0\_\-1\_\-log\_\-trace\_\-all}}
\index{mfea\_\-0\_\-1\_\-log\_\-trace\_\-all@{mfea\_\-0\_\-1\_\-log\_\-trace\_\-all}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-log\_\-trace\_\-all}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-log\_\-trace\_\-all (
\begin{DoxyParamCaption}
\item[{const bool \&}]{enable}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a86aba28386ce9e7bbd576f122d4a2c3d}


Enable/disable \hyperlink{protocolthe-p}{the} MFEA trace log for all operations. 


\begin{DoxyParams}{Parameters}
{\em enable} & if true, then enable \hyperlink{protocolthe-p}{the} trace log, otherwise disable it. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a35bc39bc06ef965ebd672648457842e4}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a694efaa2bf8255f0b377a05f4aba5be9}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-register\_\-protocol4@{mfea\_\-0\_\-1\_\-register\_\-protocol4}}
\index{mfea\_\-0\_\-1\_\-register\_\-protocol4@{mfea\_\-0\_\-1\_\-register\_\-protocol4}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-register\_\-protocol4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-register\_\-protocol4 (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-sender\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a694efaa2bf8255f0b377a05f4aba5be9}


Register a protocol on an interface in \hyperlink{protocolthe-p}{the} Multicast FEA. 

There could be only one registered protocol per interface/vif.


\begin{DoxyParams}{Parameters}
{\em xrl\_\-sender\_\-name} & \hyperlink{protocolthe-p}{the} XRL name of \hyperlink{protocolthe-p}{the} originator of this XRL.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to register for \hyperlink{protocolthe-p}{the} particular protocol.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to register for \hyperlink{protocolthe-p}{the} particular protocol.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number. It must be between 1 and 255. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a3b75f0f72a360096e96c6a2ebdf8e346}{XrlMfeaTargetBase}.

\hypertarget{classXrlMfeaNode_a106c3deac9bb744bae72555b192b8645}{
\index{XrlMfeaNode@{XrlMfeaNode}!mfea\_\-0\_\-1\_\-unregister\_\-protocol4@{mfea\_\-0\_\-1\_\-unregister\_\-protocol4}}
\index{mfea\_\-0\_\-1\_\-unregister\_\-protocol4@{mfea\_\-0\_\-1\_\-unregister\_\-protocol4}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{mfea\_\-0\_\-1\_\-unregister\_\-protocol4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlMfeaNode::mfea\_\-0\_\-1\_\-unregister\_\-protocol4 (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-sender\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}protected, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a106c3deac9bb744bae72555b192b8645}


Unregister a protocol on an interface in \hyperlink{protocolthe-p}{the} Multicast FEA. 

There could be only one registered protocol per interface/vif.


\begin{DoxyParams}{Parameters}
{\em xrl\_\-sender\_\-name} & \hyperlink{protocolthe-p}{the} XRL name of \hyperlink{protocolthe-p}{the} originator of this XRL.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to unregister for \hyperlink{protocolthe-p}{the} particular protocol.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif to unregister for \hyperlink{protocolthe-p}{the} particular protocol. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlMfeaTargetBase_a54104b95f549c3ded93a96aa801e85dc}{XrlMfeaTargetBase}.

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


\hyperlink{classShutdown}{Shutdown} \hyperlink{protocolthe-p}{the} node operation. 

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


Reimplemented from \hyperlink{classProtoState_a125aaf4996706748d991679b61508bc7}{ProtoState}.

\hypertarget{classXrlMfeaNode_a393256ec54016497c5bf30f1103ebe4a}{
\index{XrlMfeaNode@{XrlMfeaNode}!signal\_\-message\_\-send@{signal\_\-message\_\-send}}
\index{signal\_\-message\_\-send@{signal\_\-message\_\-send}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{signal\_\-message\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}int XrlMfeaNode::signal\_\-message\_\-send (
\begin{DoxyParamCaption}
\item[{const string \&}]{dst\_\-module\_\-instance\_\-name, }
\item[{int}]{message\_\-type, }
\item[{uint32\_\-t}]{vif\_\-index, }
\item[{const {\bf IPvX} \&}]{src, }
\item[{const {\bf IPvX} \&}]{dst, }
\item[{const uint8\_\-t $\ast$}]{sndbuf, }
\item[{size\_\-t}]{sndlen}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private, virtual\mbox{]}}}}
\label{classXrlMfeaNode_a393256ec54016497c5bf30f1103ebe4a}


\hyperlink{classXrlMfeaNode_a393256ec54016497c5bf30f1103ebe4a}{XrlMfeaNode::signal\_\-message\_\-send}:  name: The name of \hyperlink{protocolthe-p}{the} protocol instance-\/destination of \hyperlink{protocolthe-p}{the} message. 

: The message type of \hyperlink{protocolthe-p}{the} kernel signal. At this moment, one of \hyperlink{protocolthe-p}{the} following: MFEA\_\-KERNEL\_\-MESSAGE\_\-NOCACHE (if a cache-\/miss in \hyperlink{protocolthe-p}{the} kernel) MFEA\_\-KERNEL\_\-MESSAGE\_\-WRONGVIF (multicast packet received on wrong vif) MFEA\_\-KERNEL\_\-MESSAGE\_\-WHOLEPKT (typically, a packet that should be encapsulated as a PIM-\/Register). MFEA\_\-KERNEL\_\-MESSAGE\_\-BW\_\-UPCALL (\hyperlink{protocolthe-p}{the} bandwidth of a predefined source-\/group flow is above or below a given threshold). (XXX: The above types correspond to IGMPMSG\_\-$\ast$ or MRT6MSG\_\-$\ast$). : The vif index of \hyperlink{protocolthe-p}{the} related interface (message-\/specific relation). : The source address in \hyperlink{protocolthe-p}{the} message. : The destination address in \hyperlink{protocolthe-p}{the} message. : The data buffer with \hyperlink{protocolthe-p}{the} additional information in \hyperlink{protocolthe-p}{the} message. : The data length in .

\hyperlink{structSend}{Send} a kernel signal to an user-\/level protocol that expects it.

Return value: XORP\_\-OK on success, otherwise XORP\_\-ERROR. 

Implements \hyperlink{classProtoNode_aa54395d5f261926f403b9ff5323716b8}{ProtoNode$<$ MfeaVif $>$}.

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


\hyperlink{classStartup}{Startup} \hyperlink{protocolthe-p}{the} node operation. 

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


Reimplemented from \hyperlink{classProtoState_acd5b3d7a1b37e45893012210943926df}{ProtoState}.

\hypertarget{classXrlMfeaNode_ae6396110038ac2172b97b3873d9abd63}{
\index{XrlMfeaNode@{XrlMfeaNode}!xrl\_\-router@{xrl\_\-router}}
\index{xrl\_\-router@{xrl\_\-router}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{xrl\_\-router}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf XrlRouter}\& XrlMfeaNode::xrl\_\-router (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classXrlMfeaNode_ae6396110038ac2172b97b3873d9abd63}


Get a const reference to \hyperlink{protocolthe-p}{the} \hyperlink{classXrlRouter}{XrlRouter} instance. 

\begin{DoxyReturn}{Returns}
a const reference to \hyperlink{protocolthe-p}{the} \hyperlink{classXrlRouter}{XrlRouter} (\hyperlink{classXrlRouter}{XrlRouter}) instance. 
\end{DoxyReturn}
\hypertarget{classXrlMfeaNode_ab2242833a48c5b0420a067693ead0ef0}{
\index{XrlMfeaNode@{XrlMfeaNode}!xrl\_\-router@{xrl\_\-router}}
\index{xrl\_\-router@{xrl\_\-router}!XrlMfeaNode@{XrlMfeaNode}}
\subsubsection[{xrl\_\-router}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlRouter}\& XrlMfeaNode::xrl\_\-router (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classXrlMfeaNode_ab2242833a48c5b0420a067693ead0ef0}


Get a reference to \hyperlink{protocolthe-p}{the} \hyperlink{classXrlRouter}{XrlRouter} instance. 

\begin{DoxyReturn}{Returns}
a reference to \hyperlink{protocolthe-p}{the} \hyperlink{classXrlRouter}{XrlRouter} (\hyperlink{classXrlRouter}{XrlRouter}) instance. 
\end{DoxyReturn}


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