\hypertarget{classXrlFeaTarget}{
\section{XrlFeaTarget Class Reference}
\label{classXrlFeaTarget}\index{XrlFeaTarget@{XrlFeaTarget}}
}


FEA (Forwarding Engine Abstraction) XRL target class.  




{\ttfamily \#include $<$xrl\_\-fea\_\-target.hh$>$}

Inheritance diagram for XrlFeaTarget:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classXrlFeaTarget}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classXrlFeaTarget_ade6f5352ff2136fb2e8fabd4e70845bb}{XrlFeaTarget} (\hyperlink{classEventLoop}{EventLoop} \&eventloop, \hyperlink{classFeaNode}{FeaNode} \&fea\_\-node, \hyperlink{classXrlRouter}{XrlRouter} \&xrl\_\-router, \hyperlink{classProfile}{Profile} \&profile, \hyperlink{classXrlFibClientManager}{XrlFibClientManager} \&xrl\_\-fib\_\-client\_\-manager, \hyperlink{classLibFeaClientBridge}{LibFeaClientBridge} \&lib\_\-fea\_\-client\_\-bridge)
\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlFeaTarget_a3c7efa804e586eeb5e6668c441b1b8a8}{
virtual \hyperlink{classXrlFeaTarget_a3c7efa804e586eeb5e6668c441b1b8a8}{$\sim$XrlFeaTarget} ()}
\label{classXrlFeaTarget_a3c7efa804e586eeb5e6668c441b1b8a8}

\begin{DoxyCompactList}\small\item\em Destructor. \item\end{DoxyCompactList}\item 
int \hyperlink{classXrlFeaTarget_af5608127f3961eede72116055f16f7f7}{startup} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classStartup}{Startup} \hyperlink{protocolthe-p}{the} service operation. \item\end{DoxyCompactList}\item 
int \hyperlink{classXrlFeaTarget_abe65502c80083ca06b8f9951e421b71e}{shutdown} ()
\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} \hyperlink{protocolthe-p}{the} service operation. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlFeaTarget_a0a8402c086d3e7eb8f5d679831fa29d5}{is\_\-running} () const 
\begin{DoxyCompactList}\small\item\em Test whether \hyperlink{protocolthe-p}{the} service is running. \item\end{DoxyCompactList}\item 
bool \hyperlink{classXrlFeaTarget_a55ab3553bb889cb3387a01d9bc865ac8}{is\_\-shutdown\_\-received} () const 
\begin{DoxyCompactList}\small\item\em Test whether a shutdown XRL request has been received. \item\end{DoxyCompactList}\item 
\hyperlink{classEventLoop}{EventLoop} \& \hyperlink{classXrlFeaTarget_a5dd825f74a9fe063dc025b1918cb187d}{eventloop} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} event loop this service is added to. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a5701c65410da0f5bce84f4859dedd303}{common\_\-0\_\-1\_\-get\_\-target\_\-name} (string \&name)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_af45f8747d5e2622cbdfba68211e186fc}{common\_\-0\_\-1\_\-get\_\-version} (string \&version)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hypertarget{classXrlFeaTarget_a3aab50b81ae16f77b4332dd2009c0845}{
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3aab50b81ae16f77b4332dd2009c0845}{common\_\-0\_\-1\_\-get\_\-status} (uint32\_\-t \&status, string \&reason)}
\label{classXrlFeaTarget_a3aab50b81ae16f77b4332dd2009c0845}

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

\begin{DoxyCompactList}\small\item\em \hyperlink{classShutdown}{Shutdown} FEA cleanly. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a4e3340d5354c32c2a45d0232e5c98139}{common\_\-0\_\-1\_\-startup} ()
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
virtual \hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a5eb5d55e7e8e0c2ff27d9f2c75c7176b}{ifmgr\_\-0\_\-1\_\-startup\_\-ifmgr} ()
\begin{DoxyCompactList}\small\item\em Does nothing, but allows us to have rtrmgr verify startup. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a97b765f43dedcccb5081271d25ae862a}{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{classXrlFeaTarget_aa6208efb5891504e03e35631b7cc005f}{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{classXrlFeaTarget_a141c34f678af3a22fd5227d295fa4b89}{fea\_\-fib\_\-0\_\-1\_\-add\_\-fib\_\-client4} (const string \&client\_\-target\_\-name, const bool \&send\_\-updates, const bool \&send\_\-resolves)
\begin{DoxyCompactList}\small\item\em Add a FIB client. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a490783ba0824163dea917f8e416de659}{fea\_\-fib\_\-0\_\-1\_\-delete\_\-fib\_\-client4} (const string \&client\_\-target\_\-name)
\begin{DoxyCompactList}\small\item\em Delete a FIB client. \item\end{DoxyCompactList}\item 
virtual \hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a99381f6996a8bbab0e85a72c52c6d939}{fea\_\-firewall\_\-0\_\-1\_\-startup\_\-firewall} ()
\begin{DoxyCompactList}\small\item\em Does nothing, but allows us to have rtrmgr verify startup. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a61bd457b73030883a0facc122ab66242}{fea\_\-firewall\_\-0\_\-1\_\-start\_\-transaction} (uint32\_\-t \&tid)
\begin{DoxyCompactList}\small\item\em Start firewall configuration transaction. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a51ff88070b22144ae050a4735c2eebf5}{fea\_\-firewall\_\-0\_\-1\_\-commit\_\-transaction} (const uint32\_\-t \&tid)
\begin{DoxyCompactList}\small\item\em Commit firewall configuration transaction. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a4c6777bfa949a58e0dea93417a686359}{fea\_\-firewall\_\-0\_\-1\_\-abort\_\-transaction} (const uint32\_\-t \&tid)
\begin{DoxyCompactList}\small\item\em Abort firewall configuration transaction. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_adc339ab83fa2e1822ddf0d244bc1a334}{fea\_\-firewall\_\-0\_\-1\_\-add\_\-entry4} (const uint32\_\-t \&tid, const uint32\_\-t \&rule\_\-number, const string \&ifname, const string \&vifname, const \hyperlink{classIPNet}{IPv4Net} \&src\_\-network, const \hyperlink{classIPNet}{IPv4Net} \&dst\_\-network, const uint32\_\-t \&ip\_\-protocol, const uint32\_\-t \&src\_\-port\_\-begin, const uint32\_\-t \&src\_\-port\_\-end, const uint32\_\-t \&dst\_\-port\_\-begin, const uint32\_\-t \&dst\_\-port\_\-end, const string \&action)
\begin{DoxyCompactList}\small\item\em Add an \hyperlink{classIPv4}{IPv4} firewall entry. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ac3c0819bd102892064ad87f024b86946}{fea\_\-firewall\_\-0\_\-1\_\-replace\_\-entry4} (const uint32\_\-t \&tid, const uint32\_\-t \&rule\_\-number, const string \&ifname, const string \&vifname, const \hyperlink{classIPNet}{IPv4Net} \&src\_\-network, const \hyperlink{classIPNet}{IPv4Net} \&dst\_\-network, const uint32\_\-t \&ip\_\-protocol, const uint32\_\-t \&src\_\-port\_\-begin, const uint32\_\-t \&src\_\-port\_\-end, const uint32\_\-t \&dst\_\-port\_\-begin, const uint32\_\-t \&dst\_\-port\_\-end, const string \&action)
\begin{DoxyCompactList}\small\item\em Replace an \hyperlink{classIPv4}{IPv4} firewall entry. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ae3e4c67ec8ef9bab0735f95e9fecb780}{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-entry4} (const uint32\_\-t \&tid, const uint32\_\-t \&rule\_\-number, const string \&ifname, const string \&vifname, const \hyperlink{classIPNet}{IPv4Net} \&src\_\-network, const \hyperlink{classIPNet}{IPv4Net} \&dst\_\-network, const uint32\_\-t \&ip\_\-protocol, const uint32\_\-t \&src\_\-port\_\-begin, const uint32\_\-t \&src\_\-port\_\-end, const uint32\_\-t \&dst\_\-port\_\-begin, const uint32\_\-t \&dst\_\-port\_\-end)
\begin{DoxyCompactList}\small\item\em Delete an \hyperlink{classIPv4}{IPv4} firewall entry. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ae01920745aaeccd75f74a71baea9b4fe}{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-all\_\-entries4} (const uint32\_\-t \&tid)
\begin{DoxyCompactList}\small\item\em Delete all \hyperlink{classIPv4}{IPv4} firewall entries. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3dbb83836c0b1370c377a431cdd501d4}{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-start4} (uint32\_\-t \&token, bool \&more)
\begin{DoxyCompactList}\small\item\em Get a token for a list of \hyperlink{classIPv4}{IPv4} firewall entries. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ab6f53d34f41f211be3c7dc71d0ef7fc6}{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-next4} (const uint32\_\-t \&token, uint32\_\-t \&rule\_\-number, string \&ifname, string \&vifname, \hyperlink{classIPNet}{IPv4Net} \&src\_\-network, \hyperlink{classIPNet}{IPv4Net} \&dst\_\-network, uint32\_\-t \&ip\_\-protocol, uint32\_\-t \&src\_\-port\_\-begin, uint32\_\-t \&src\_\-port\_\-end, uint32\_\-t \&dst\_\-port\_\-begin, uint32\_\-t \&dst\_\-port\_\-end, string \&action, bool \&more)
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} next item in a list of \hyperlink{classIPv4}{IPv4} firewall entries. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlFeaTarget_a51c377d943d726583f176b74b93910b8}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-restore\_\-original\_\-config\_\-on\_\-shutdown} (const bool \&enable)}
\label{classXrlFeaTarget_a51c377d943d726583f176b74b93910b8}

\item 
\hypertarget{classXrlFeaTarget_ad2c269e9b993251ffe91db0e89899f02}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-interface\_\-names} (\hyperlink{classXrlAtomList}{XrlAtomList} \&ifnames)}
\label{classXrlFeaTarget_ad2c269e9b993251ffe91db0e89899f02}

\item 
\hypertarget{classXrlFeaTarget_a587a6aaba38a9c944e10970e988e17a3}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-vif\_\-names} (const string \&ifname, \hyperlink{classXrlAtomList}{XrlAtomList} \&vifs)}
\label{classXrlFeaTarget_a587a6aaba38a9c944e10970e988e17a3}

\item 
\hypertarget{classXrlFeaTarget_ab4645eb22f7bfedbc3b0a19a4f77132f}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-vif\_\-flags} (const string \&ifname, const string \&vif, bool \&enabled, bool \&broadcast, bool \&loopback, bool \&point\_\-to\_\-point, bool \&multicast)}
\label{classXrlFeaTarget_ab4645eb22f7bfedbc3b0a19a4f77132f}

\item 
\hypertarget{classXrlFeaTarget_ab172840a92b462166c08a2cad0c95f44}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-vif\_\-pif\_\-index} (const string \&ifname, const string \&vif, uint32\_\-t \&pif\_\-index)}
\label{classXrlFeaTarget_ab172840a92b462166c08a2cad0c95f44}

\item 
\hypertarget{classXrlFeaTarget_a7b8c7b5d33cf5e18f538f88dae124150}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-start\_\-transaction} (uint32\_\-t \&tid)}
\label{classXrlFeaTarget_a7b8c7b5d33cf5e18f538f88dae124150}

\item 
\hypertarget{classXrlFeaTarget_a2393de544b990167c98d5ebd72be92c8}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-commit\_\-transaction} (const uint32\_\-t \&tid)}
\label{classXrlFeaTarget_a2393de544b990167c98d5ebd72be92c8}

\item 
\hypertarget{classXrlFeaTarget_ad64c2bed16abf6c53120a998e4cf492d}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-abort\_\-transaction} (const uint32\_\-t \&tid)}
\label{classXrlFeaTarget_ad64c2bed16abf6c53120a998e4cf492d}

\item 
\hypertarget{classXrlFeaTarget_aba829bdce6ac7fa338de62853895995a}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-create\_\-interface} (const uint32\_\-t \&tid, const string \&ifname)}
\label{classXrlFeaTarget_aba829bdce6ac7fa338de62853895995a}

\item 
\hypertarget{classXrlFeaTarget_adb69ed6a77bf7a3ff66c16fe86a938e5}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-delete\_\-interface} (const uint32\_\-t \&tid, const string \&ifname)}
\label{classXrlFeaTarget_adb69ed6a77bf7a3ff66c16fe86a938e5}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_afb66770b9ef4ad14754d3ebe65c828d7}{ifmgr\_\-0\_\-1\_\-configure\_\-all\_\-interfaces\_\-from\_\-system} (const uint32\_\-t \&tid, const bool \&enable)
\begin{DoxyCompactList}\small\item\em Implicitly configure all interfaces within \hyperlink{protocolthe-p}{the} FEA by using information from \hyperlink{protocolthe-p}{the} underlying system. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a9064cfdbaf11c56c9c063052b98d9a19}{ifmgr\_\-0\_\-1\_\-configure\_\-interface\_\-from\_\-system} (const uint32\_\-t \&tid, const string \&ifname, const bool \&enable)
\begin{DoxyCompactList}\small\item\em Implicitly configure an interface within \hyperlink{protocolthe-p}{the} FEA by using information from \hyperlink{protocolthe-p}{the} underlying system. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlFeaTarget_a1628a591bd12868e04af48952d89da44}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-interface\_\-enabled} (const uint32\_\-t \&tid, const string \&ifname, const bool \&enabled)}
\label{classXrlFeaTarget_a1628a591bd12868e04af48952d89da44}

\item 
\hypertarget{classXrlFeaTarget_a9783f392754769b060974b3947a6fa92}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-interface\_\-enabled} (const string \&ifname, bool \&enabled)}
\label{classXrlFeaTarget_a9783f392754769b060974b3947a6fa92}

\item 
\hypertarget{classXrlFeaTarget_a124c7968b332d2353b3c1b40d2a7de43}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-interface\_\-discard} (const uint32\_\-t \&tid, const string \&ifname, const bool \&discard)}
\label{classXrlFeaTarget_a124c7968b332d2353b3c1b40d2a7de43}

\item 
\hypertarget{classXrlFeaTarget_a4ed69895f156d35a45fb43a45c0c2722}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-interface\_\-discard} (const string \&ifname, bool \&discard)}
\label{classXrlFeaTarget_a4ed69895f156d35a45fb43a45c0c2722}

\item 
\hypertarget{classXrlFeaTarget_afbc50f901e8943ca48ee8455eb160bb7}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-interface\_\-unreachable} (const uint32\_\-t \&tid, const string \&ifname, const bool \&unreachable)}
\label{classXrlFeaTarget_afbc50f901e8943ca48ee8455eb160bb7}

\item 
\hypertarget{classXrlFeaTarget_ac33bc1195114140b73a8d3d701ba246f}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-interface\_\-unreachable} (const string \&ifname, bool \&unreachable)}
\label{classXrlFeaTarget_ac33bc1195114140b73a8d3d701ba246f}

\item 
\hypertarget{classXrlFeaTarget_aa7e4dea81d7cc94953ece0d0953c6749}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-interface\_\-management} (const uint32\_\-t \&tid, const string \&ifname, const bool \&management)}
\label{classXrlFeaTarget_aa7e4dea81d7cc94953ece0d0953c6749}

\item 
\hypertarget{classXrlFeaTarget_a93ce6b8483126a3291ab71b50eb212bd}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-interface\_\-management} (const string \&ifname, bool \&management)}
\label{classXrlFeaTarget_a93ce6b8483126a3291ab71b50eb212bd}

\item 
\hypertarget{classXrlFeaTarget_a4de940a2b6e2cfe3ae162ca6cdea008a}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-mac} (const uint32\_\-t \&tid, const string \&ifname, const \hyperlink{classMac}{Mac} \&mac)}
\label{classXrlFeaTarget_a4de940a2b6e2cfe3ae162ca6cdea008a}

\item 
\hypertarget{classXrlFeaTarget_acf9d725b84c7a732af3153dc1d3ad9d4}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-create\_\-mac} (const string \&ifname, const \hyperlink{classMac}{Mac} \&mac)}
\label{classXrlFeaTarget_acf9d725b84c7a732af3153dc1d3ad9d4}

\item 
\hypertarget{classXrlFeaTarget_acc45e8c7967a5a5782adff6679087baa}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-create\_\-address\_\-atomic} (const string \&ifname, const string \&vifname, const \hyperlink{classIPv4}{IPv4} \&ip, const uint32\_\-t \&prefix\_\-length)}
\label{classXrlFeaTarget_acc45e8c7967a5a5782adff6679087baa}

\item 
\hypertarget{classXrlFeaTarget_a045721c59520924cfcfcbaa158f0996f}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-delete\_\-address\_\-atomic} (const string \&ifname, const string \&vifname, const \hyperlink{classIPv4}{IPv4} \&ip)}
\label{classXrlFeaTarget_a045721c59520924cfcfcbaa158f0996f}

\item 
\hypertarget{classXrlFeaTarget_afa338a5671ca6fb953fb593946af99f4}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-delete\_\-mac} (const string \&ifname, const \hyperlink{classMac}{Mac} \&mac)}
\label{classXrlFeaTarget_afa338a5671ca6fb953fb593946af99f4}

\item 
\hypertarget{classXrlFeaTarget_aaecd3d026a467a81dfd8f736366369ba}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-restore\_\-original\_\-mac} (const uint32\_\-t \&tid, const string \&ifname)}
\label{classXrlFeaTarget_aaecd3d026a467a81dfd8f736366369ba}

\item 
\hypertarget{classXrlFeaTarget_a0bfbefa5092aa3023bf6ca706b9380de}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-mac} (const string \&ifname, \hyperlink{classMac}{Mac} \&mac)}
\label{classXrlFeaTarget_a0bfbefa5092aa3023bf6ca706b9380de}

\item 
\hypertarget{classXrlFeaTarget_aa6ab0d0d2cf74e03dd126ecf94dc649b}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-mtu} (const uint32\_\-t \&tid, const string \&ifname, const uint32\_\-t \&mtu)}
\label{classXrlFeaTarget_aa6ab0d0d2cf74e03dd126ecf94dc649b}

\item 
\hypertarget{classXrlFeaTarget_a8106ba053172781aad8c8013e5dee22b}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-restore\_\-original\_\-mtu} (const uint32\_\-t \&tid, const string \&ifname)}
\label{classXrlFeaTarget_a8106ba053172781aad8c8013e5dee22b}

\item 
\hypertarget{classXrlFeaTarget_a29a279232355fa1cf47a7fb89a915ade}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-mtu} (const string \&ifname, uint32\_\-t \&mtu)}
\label{classXrlFeaTarget_a29a279232355fa1cf47a7fb89a915ade}

\item 
\hypertarget{classXrlFeaTarget_a384eadb783f145b5e679e97a349a54ef}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-no\_\-carrier} (const string \&ifname, bool \&no\_\-carrier)}
\label{classXrlFeaTarget_a384eadb783f145b5e679e97a349a54ef}

\item 
\hypertarget{classXrlFeaTarget_ac029e469b33303435846849651bd3c85}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-baudrate} (const string \&ifname, uint64\_\-t \&baudrate)}
\label{classXrlFeaTarget_ac029e469b33303435846849651bd3c85}

\item 
\hypertarget{classXrlFeaTarget_a1a219a8e40b3a7ef2a9760a694bb6cd4}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-address\_\-flags4} (const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, bool \&up, bool \&broadcast, bool \&loopback, bool \&point\_\-to\_\-point, bool \&multicast)}
\label{classXrlFeaTarget_a1a219a8e40b3a7ef2a9760a694bb6cd4}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a516f4f478ccc9da827294040ef31b008}{ifmgr\_\-0\_\-1\_\-create\_\-vif} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hypertarget{classXrlFeaTarget_aea26ad8d2075741ddadb6d906018845b}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-delete\_\-vif} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif)}
\label{classXrlFeaTarget_aea26ad8d2075741ddadb6d906018845b}

\item 
\hypertarget{classXrlFeaTarget_a09b73c0c4573ace0fa98484506e180c6}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-vif\_\-enabled} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif, const bool \&enabled)}
\label{classXrlFeaTarget_a09b73c0c4573ace0fa98484506e180c6}

\item 
\hypertarget{classXrlFeaTarget_a246e5fb6746e5b1b5ba5d6e7585eb97d}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-vif\_\-enabled} (const string \&ifname, const string \&vif, bool \&enabled)}
\label{classXrlFeaTarget_a246e5fb6746e5b1b5ba5d6e7585eb97d}

\item 
\hypertarget{classXrlFeaTarget_a6fc663fdbc41ec48f0d84339e001d5f6}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-vif\_\-addresses4} (const string \&ifname, const string \&vif, \hyperlink{classXrlAtomList}{XrlAtomList} \&addresses)}
\label{classXrlFeaTarget_a6fc663fdbc41ec48f0d84339e001d5f6}

\item 
\hypertarget{classXrlFeaTarget_a993893478aad3f79f0d0e1688f9c83bf}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-parent\_\-ifname} (const uint32\_\-t \&tid, const string \&ifname, const string \&parent\_\-ifname)}
\label{classXrlFeaTarget_a993893478aad3f79f0d0e1688f9c83bf}

\item 
\hypertarget{classXrlFeaTarget_a5592f464c4d6d457b1851156bca4c02a}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-iface\_\-type} (const uint32\_\-t \&tid, const string \&ifname, const string \&iface\_\-type)}
\label{classXrlFeaTarget_a5592f464c4d6d457b1851156bca4c02a}

\item 
\hypertarget{classXrlFeaTarget_a9408ed5f7e145c5e2e91a0e2972d534f}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-vid} (const uint32\_\-t \&tid, const string \&ifname, const string \&vid)}
\label{classXrlFeaTarget_a9408ed5f7e145c5e2e91a0e2972d534f}

\item 
\hypertarget{classXrlFeaTarget_abf65ce431a4feac8dcd062cd6e5cfbf0}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-create\_\-address4} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address)}
\label{classXrlFeaTarget_abf65ce431a4feac8dcd062cd6e5cfbf0}

\item 
\hypertarget{classXrlFeaTarget_a6aea18c6a73ff7cdb0e31129968308f9}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-delete\_\-address4} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address)}
\label{classXrlFeaTarget_a6aea18c6a73ff7cdb0e31129968308f9}

\item 
\hypertarget{classXrlFeaTarget_ad59c1070a7d0738cfd7164c523a71e1b}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-address4} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address)}
\label{classXrlFeaTarget_ad59c1070a7d0738cfd7164c523a71e1b}

\item 
\hypertarget{classXrlFeaTarget_a25637bbd565eade82773844a6de917bf}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-address\_\-enabled4} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, const bool \&enabled)}
\label{classXrlFeaTarget_a25637bbd565eade82773844a6de917bf}

\item 
\hypertarget{classXrlFeaTarget_a4213d05df306dc75a0aa441967414b2c}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-address\_\-enabled4} (const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, bool \&enabled)}
\label{classXrlFeaTarget_a4213d05df306dc75a0aa441967414b2c}

\item 
\hypertarget{classXrlFeaTarget_a1e335b49bb12529bb43c510fa33b3612}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-prefix4} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, const uint32\_\-t \&prefix\_\-len)}
\label{classXrlFeaTarget_a1e335b49bb12529bb43c510fa33b3612}

\item 
\hypertarget{classXrlFeaTarget_a1e66f6f4031f124feb968ac36d7f3d7e}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-prefix4} (const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, uint32\_\-t \&prefix\_\-len)}
\label{classXrlFeaTarget_a1e66f6f4031f124feb968ac36d7f3d7e}

\item 
\hypertarget{classXrlFeaTarget_a18794fcb5e36cf9014500bb31ba35a8b}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-broadcast4} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, const \hyperlink{classIPv4}{IPv4} \&broadcast)}
\label{classXrlFeaTarget_a18794fcb5e36cf9014500bb31ba35a8b}

\item 
\hypertarget{classXrlFeaTarget_aa300fee9ce16bf1ef4068284c96e35fd}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-broadcast4} (const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, \hyperlink{classIPv4}{IPv4} \&broadcast)}
\label{classXrlFeaTarget_aa300fee9ce16bf1ef4068284c96e35fd}

\item 
\hypertarget{classXrlFeaTarget_aaa467857021a0f6efe75d6a66ff153d5}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-set\_\-endpoint4} (const uint32\_\-t \&tid, const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, const \hyperlink{classIPv4}{IPv4} \&endpoint)}
\label{classXrlFeaTarget_aaa467857021a0f6efe75d6a66ff153d5}

\item 
\hypertarget{classXrlFeaTarget_aa322f09c0ecc54f988e34bf419adf8a1}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries ifmgr\_\-0\_\-1\_\-get\_\-configured\_\-endpoint4} (const string \&ifname, const string \&vif, const \hyperlink{classIPv4}{IPv4} \&address, \hyperlink{classIPv4}{IPv4} \&endpoint)}
\label{classXrlFeaTarget_aa322f09c0ecc54f988e34bf419adf8a1}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a09511f8aa3f95dc0625ada2c63314f98}{ifmgr\_\-replicator\_\-0\_\-1\_\-register\_\-ifmgr\_\-mirror} (const string \&clientname)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ada28fb6a7a9ae71d1f2ee6c7f3cf5bd6}{ifmgr\_\-replicator\_\-0\_\-1\_\-unregister\_\-ifmgr\_\-mirror} (const string \&clientname)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_aa22356c4d8ef39015afbb3d271a46c8e}{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-dest4} (const \hyperlink{classIPv4}{IPv4} \&host, \hyperlink{classIPNet}{IPv4Net} \&netmask, \hyperlink{classIPv4}{IPv4} \&nexthop, string \&ifname, string \&vifname, uint32\_\-t \&metric, uint32\_\-t \&admin\_\-distance, string \&protocol\_\-origin)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a70053eb70b0642ae6d062aa5c7d09b6c}{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-network4} (const \hyperlink{classIPNet}{IPv4Net} \&dst, \hyperlink{classIPv4}{IPv4} \&nexthop, string \&ifname, string \&vifname, uint32\_\-t \&metric, uint32\_\-t \&admin\_\-distance, string \&protocol\_\-origin)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ab6e86b50b51076ba58d06ad426443af3}{fti\_\-0\_\-2\_\-have\_\-ipv4} (bool \&result)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a66c49689444f59aa9c48d0755c330e6b}{fti\_\-0\_\-2\_\-get\_\-unicast\_\-forwarding\_\-enabled4} (bool \&enabled)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a1680d54a0f26a478565cf2ee1a42226f}{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-enabled4} (const bool \&enabled)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a45731e307859c554197c4e132c2041ae}{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-startup4} (const bool \&retain)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding engine whether to retain existing XORP forwarding entries on startup. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a0966a3f88fc52b32d8b89e15a89fb2cd}{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-shutdown4} (const bool \&retain)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding engine whether to retain existing XORP forwarding entries on shutdown. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ae1472d3d0f044e8ef6c698c03b73c35a}{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-table\_\-id4} (const bool \&is\_\-configured, const uint32\_\-t \&table\_\-id)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding table ID to be used. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ab68c1983e318d6e52b5519c7731a6fb4}{redist\_\-transaction4\_\-0\_\-1\_\-start\_\-transaction} (uint32\_\-t \&tid)
\begin{DoxyCompactList}\small\item\em Start transaction. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a30e4b811a06ae718dcb1485edc83b42d}{redist\_\-transaction4\_\-0\_\-1\_\-commit\_\-transaction} (const uint32\_\-t \&tid)
\begin{DoxyCompactList}\small\item\em Commit transaction. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a38a5ce6d51d17cdc98217239ecc7dd00}{redist\_\-transaction4\_\-0\_\-1\_\-abort\_\-transaction} (const uint32\_\-t \&tid)
\begin{DoxyCompactList}\small\item\em Abort transaction. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ac20ee61c8ea37cc9a99912ca8a661ee3}{redist\_\-transaction4\_\-0\_\-1\_\-add\_\-route} (const uint32\_\-t \&tid, const \hyperlink{classIPNet}{IPv4Net} \&dst, const \hyperlink{classIPv4}{IPv4} \&nexthop, const string \&ifname, const string \&vifname, const uint32\_\-t \&metric, const uint32\_\-t \&admin\_\-distance, const string \&cookie, const string \&protocol\_\-origin)
\begin{DoxyCompactList}\small\item\em Add/delete a routing entry. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlFeaTarget_a2880578f0fff1a3ebbfd597028106658}{
\hyperlink{structXrlCmdError}{XrlCmdError} {\bfseries redist\_\-transaction4\_\-0\_\-1\_\-delete\_\-route} (const uint32\_\-t \&tid, const \hyperlink{classIPNet}{IPv4Net} \&dst, const \hyperlink{classIPv4}{IPv4} \&nexthop, const string \&ifname, const string \&vifname, const uint32\_\-t \&metric, const uint32\_\-t \&admin\_\-distance, const string \&cookie, const string \&protocol\_\-origin)}
\label{classXrlFeaTarget_a2880578f0fff1a3ebbfd597028106658}

\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a645fc00174f41071ad140656949076e8}{redist\_\-transaction4\_\-0\_\-1\_\-delete\_\-all\_\-routes} (const uint32\_\-t \&tid, const string \&cookie)
\begin{DoxyCompactList}\small\item\em Delete all routing entries. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a775172463650f31a85507f5e34bbfe64}{raw\_\-link\_\-0\_\-1\_\-send} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classMac}{Mac} \&src\_\-address, const \hyperlink{classMac}{Mac} \&dst\_\-address, const uint32\_\-t \&ether\_\-type, const vector$<$ uint8\_\-t $>$ \&payload)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} a raw link-\/level packet on an interface. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ae8fd7db1cab6021e33489b5779a87eb3}{raw\_\-link\_\-0\_\-1\_\-register\_\-receiver} (const string \&xrl\_\-target\_\-instance\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ether\_\-type, const string \&filter\_\-program, const bool \&enable\_\-multicast\_\-loopback)
\begin{DoxyCompactList}\small\item\em Register to receive raw link-\/level packets. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3e81e9ac33d3797d2a5a9870f6a7eadb}{raw\_\-link\_\-0\_\-1\_\-unregister\_\-receiver} (const string \&xrl\_\-target\_\-instance\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ether\_\-type, const string \&filter\_\-program)
\begin{DoxyCompactList}\small\item\em Unregister to receive raw link-\/level packets. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3cc7757eabd53dfaace04aad19a8a099}{raw\_\-link\_\-0\_\-1\_\-join\_\-multicast\_\-group} (const string \&xrl\_\-target\_\-instance\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ether\_\-type, const string \&filter\_\-program, const \hyperlink{classMac}{Mac} \&group\_\-address)
\begin{DoxyCompactList}\small\item\em Join a MAC multicast group. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ac956131784b8d53c7d7dd47783205eb8}{raw\_\-link\_\-0\_\-1\_\-leave\_\-multicast\_\-group} (const string \&xrl\_\-target\_\-instance\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ether\_\-type, const string \&filter\_\-program, const \hyperlink{classMac}{Mac} \&group\_\-address)
\begin{DoxyCompactList}\small\item\em Leave a MAC multicast group. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a8fee091e2083e4a2d357739c3bf76833}{raw\_\-packet4\_\-0\_\-1\_\-send} (const string \&if\_\-name, const string \&vif\_\-name, const \hyperlink{classIPv4}{IPv4} \&src\_\-address, const \hyperlink{classIPv4}{IPv4} \&dst\_\-address, const uint32\_\-t \&ip\_\-protocol, const int32\_\-t \&ip\_\-ttl, const int32\_\-t \&ip\_\-tos, const bool \&ip\_\-router\_\-alert, const bool \&ip\_\-internet\_\-control, const vector$<$ uint8\_\-t $>$ \&payload)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} an \hyperlink{classIPv4}{IPv4} packet on a raw socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ae250ef6ff8461c7a1562547a7cec9383}{raw\_\-packet4\_\-0\_\-1\_\-register\_\-receiver} (const string \&xrl\_\-target\_\-instance\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ip\_\-protocol, const bool \&enable\_\-multicast\_\-loopback)
\begin{DoxyCompactList}\small\item\em Register to receive \hyperlink{classIPv4}{IPv4} packets. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ada841a164127a75f33a51028d33b279a}{raw\_\-packet4\_\-0\_\-1\_\-unregister\_\-receiver} (const string \&xrl\_\-target\_\-instance\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ip\_\-protocol)
\begin{DoxyCompactList}\small\item\em Unregister to receive \hyperlink{classIPv4}{IPv4} packets. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a87d89687a602aba204e85d10e3a18cd9}{raw\_\-packet4\_\-0\_\-1\_\-join\_\-multicast\_\-group} (const string \&xrl\_\-target\_\-instance\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ip\_\-protocol, const \hyperlink{classIPv4}{IPv4} \&group\_\-address)
\begin{DoxyCompactList}\small\item\em Join an \hyperlink{classIPv4}{IPv4} multicast group. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3214d1433d9e273dbb061f2033b6b1e3}{raw\_\-packet4\_\-0\_\-1\_\-leave\_\-multicast\_\-group} (const string \&xrl\_\-target\_\-instance\_\-name, const string \&if\_\-name, const string \&vif\_\-name, const uint32\_\-t \&ip\_\-protocol, const \hyperlink{classIPv4}{IPv4} \&group\_\-address)
\begin{DoxyCompactList}\small\item\em Leave an \hyperlink{classIPv4}{IPv4} multicast group. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a200181b22f95aecd68165d9045cd1f00}{socket4\_\-0\_\-1\_\-tcp\_\-open} (const string \&creator, string \&sockid)
\begin{DoxyCompactList}\small\item\em Open a TCP socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a9ef0384419accc880c54d930bb05ba36}{socket4\_\-0\_\-1\_\-udp\_\-open} (const string \&creator, string \&sockid)
\begin{DoxyCompactList}\small\item\em Open an UDP socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_afdd2ec835918e9134cd3fab0b5632b4e}{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-and\_\-bind} (const string \&creator, const \hyperlink{classIPv4}{IPv4} \&local\_\-addr, const uint32\_\-t \&local\_\-port, string \&sockid)
\begin{DoxyCompactList}\small\item\em Create a bound TCP socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a66ff833617329d4e09bef9463ac11d01}{socket4\_\-0\_\-1\_\-udp\_\-open\_\-and\_\-bind} (const string \&creator, const \hyperlink{classIPv4}{IPv4} \&local\_\-addr, const uint32\_\-t \&local\_\-port, const string \&local\_\-dev, const uint32\_\-t \&reuse, string \&sockid)
\begin{DoxyCompactList}\small\item\em Create a bound UDP socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a10a220cc712c36299038e4cc406b99a0}{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-join} (const string \&creator, const \hyperlink{classIPv4}{IPv4} \&local\_\-addr, const uint32\_\-t \&local\_\-port, const \hyperlink{classIPv4}{IPv4} \&mcast\_\-addr, const uint32\_\-t \&ttl, const bool \&reuse, string \&sockid)
\begin{DoxyCompactList}\small\item\em Create a bound UDP multicast socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3bc1926fa0ca27d3722fac3f04d52772}{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-bind\_\-connect} (const string \&creator, const \hyperlink{classIPv4}{IPv4} \&local\_\-addr, const uint32\_\-t \&local\_\-port, const \hyperlink{classIPv4}{IPv4} \&remote\_\-addr, const uint32\_\-t \&remote\_\-port, string \&sockid)
\begin{DoxyCompactList}\small\item\em Create a bound and connected TCP socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3ce7a821cc219fcbb917f32778cfbdf6}{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-connect} (const string \&creator, const \hyperlink{classIPv4}{IPv4} \&local\_\-addr, const uint32\_\-t \&local\_\-port, const \hyperlink{classIPv4}{IPv4} \&remote\_\-addr, const uint32\_\-t \&remote\_\-port, string \&sockid)
\begin{DoxyCompactList}\small\item\em Create a bound and connected UDP socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3f905ae45cd7046bb659e17060d28358}{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-broadcast} (const string \&creator, const string \&ifname, const string \&vifname, const uint32\_\-t \&local\_\-port, const uint32\_\-t \&remote\_\-port, const bool \&reuse, const bool \&limited, const bool \&connected, string \&sockid)
\begin{DoxyCompactList}\small\item\em Create a bound and connected UDP broadcast socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a024036e557c1e77ed330845d090ff581}{socket4\_\-0\_\-1\_\-bind} (const string \&sockid, const \hyperlink{classIPv4}{IPv4} \&local\_\-addr, const uint32\_\-t \&local\_\-port)
\begin{DoxyCompactList}\small\item\em Bind a socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_adfc5270eb2df38c9878f1700dcc7f182}{socket4\_\-0\_\-1\_\-udp\_\-join\_\-group} (const string \&sockid, const \hyperlink{classIPv4}{IPv4} \&mcast\_\-addr, const \hyperlink{classIPv4}{IPv4} \&join\_\-if\_\-addr)
\begin{DoxyCompactList}\small\item\em Join multicast group on already bound socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a29a3d5161cf14b7e79b181c9a2037e98}{socket4\_\-0\_\-1\_\-udp\_\-leave\_\-group} (const string \&sockid, const \hyperlink{classIPv4}{IPv4} \&mcast\_\-addr, const \hyperlink{classIPv4}{IPv4} \&leave\_\-if\_\-addr)
\begin{DoxyCompactList}\small\item\em Leave multicast group on already bound socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ac25ef26866c7e42ce5f803cda1049fb7}{socket4\_\-0\_\-1\_\-close} (const string \&sockid)
\begin{DoxyCompactList}\small\item\em Close socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a0da15e3058a0b007772649918e978541}{socket4\_\-0\_\-1\_\-tcp\_\-listen} (const string \&sockid, const uint32\_\-t \&backlog)
\begin{DoxyCompactList}\small\item\em Listen for inbound connections on socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_ab4b1f88fb3545006a9fb8e88ef2cc2fe}{socket4\_\-0\_\-1\_\-udp\_\-enable\_\-recv} (const string \&sockid)
\begin{DoxyCompactList}\small\item\em Enable a UDP socket for datagram reception. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a83a8461165e1e6992c5cae67b8f5f2f8}{socket4\_\-0\_\-1\_\-send} (const string \&sockid, const vector$<$ uint8\_\-t $>$ \&data)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} data on socket. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a87aa33cd72e66f2bc564e5df39e80103}{socket4\_\-0\_\-1\_\-send\_\-to} (const string \&sockid, const \hyperlink{classIPv4}{IPv4} \&remote\_\-addr, const uint32\_\-t \&remote\_\-port, const vector$<$ uint8\_\-t $>$ \&data)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} data on socket to a given destination. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a3a4a7c79ae2e5823148f000a3430c087}{socket4\_\-0\_\-1\_\-send\_\-from\_\-multicast\_\-if} (const string \&sockid, const \hyperlink{classIPv4}{IPv4} \&group\_\-addr, const uint32\_\-t \&group\_\-port, const \hyperlink{classIPv4}{IPv4} \&ifaddr, const vector$<$ uint8\_\-t $>$ \&data)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} data on socket to a given multicast group from a given interface. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_aebb27036310c645c1fabde02becbb236}{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option} (const string \&sockid, const string \&optname, const uint32\_\-t \&optval)
\begin{DoxyCompactList}\small\item\em Set a named socket option with an integer value. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a0d23b4bb69f86f3fd660edb72bf408da}{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option\_\-txt} (const string \&sockid, const string \&optname, const string \&optval)
\begin{DoxyCompactList}\small\item\em Set a named socket option with a text value. \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a96154ac047b83947839b70041fa30866}{profile\_\-0\_\-1\_\-enable} (const string \&pname)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a499b10124c7a36deae3aa56ad70fda1f}{profile\_\-0\_\-1\_\-disable} (const string \&pname)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_aec71109a7cc5a979bd27999ee6b35741}{profile\_\-0\_\-1\_\-get\_\-entries} (const string \&pname, const string \&instance\_\-name)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a71f621df206703eb38cf5a07caf71bc2}{profile\_\-0\_\-1\_\-clear} (const string \&pname)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\item 
\hyperlink{structXrlCmdError}{XrlCmdError} \hyperlink{classXrlFeaTarget_a5fb8a5ad655f219ed8d515a9d19d987d}{profile\_\-0\_\-1\_\-list} (string \&info)
\begin{DoxyCompactList}\small\item\em Pure-\/virtual function that needs to be implemented to: \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{classXrlFeaTarget_a4dc61153d6a8b4ca5bc855270d38465f}{add\_\-remove\_\-mac} (bool add, const string \&ifname, const \hyperlink{classMac}{Mac} \&mac, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add/remove a multicast MAC address on an interface. \item\end{DoxyCompactList}\item 
int \hyperlink{classXrlFeaTarget_a76f2a3a0e7c86b59319414bb8458f761}{set\_\-mac} (const string \&ifname, const \hyperlink{classMac}{Mac} \&mac, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} MAC address on an interface. \item\end{DoxyCompactList}\item 
\hypertarget{classXrlFeaTarget_a3d2456c222ec24a6f708a281210c22de}{
int {\bfseries add\_\-remove\_\-address} (bool add, const string \&ifname, const string \&vifname, const \hyperlink{classIPv4}{IPv4} \&ip, uint32\_\-t prefix, string \&error\_\-msg)}
\label{classXrlFeaTarget_a3d2456c222ec24a6f708a281210c22de}

\item 
int \hyperlink{classXrlFeaTarget_a4c510945987a77fee9edb7daf4b7d992}{send\_\-gratuitous\_\-arps} (const string \&ifname, const \hyperlink{classMac}{Mac} \&mac, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em \hyperlink{structSend}{Send} gratuitous ARP packets for all IP addresses on on an interface. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classXrlFeaTarget_a215d87c6df5188fb7c84540cc75668ca}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classXrlFeaTarget_a215d87c6df5188fb7c84540cc75668ca}

\item 
\hypertarget{classXrlFeaTarget_aec8ddbeeb52c8f31b31c8e3b49c3b479}{
\hyperlink{classFeaNode}{FeaNode} \& {\bfseries \_\-fea\_\-node}}
\label{classXrlFeaTarget_aec8ddbeeb52c8f31b31c8e3b49c3b479}

\item 
\hypertarget{classXrlFeaTarget_aef85f3c0011764c0df2787b54c12c15a}{
\hyperlink{classXrlRouter}{XrlRouter} \& {\bfseries \_\-xrl\_\-router}}
\label{classXrlFeaTarget_aef85f3c0011764c0df2787b54c12c15a}

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

\item 
\hypertarget{classXrlFeaTarget_aff454a83a20ef1b457ed16b9ef97755f}{
\hyperlink{classXrlFibClientManager}{XrlFibClientManager} \& {\bfseries \_\-xrl\_\-fib\_\-client\_\-manager}}
\label{classXrlFeaTarget_aff454a83a20ef1b457ed16b9ef97755f}

\item 
\hypertarget{classXrlFeaTarget_a6368ed8fa1b6fdd5cb562b0425cedabc}{
\hyperlink{classIfConfig}{IfConfig} \& {\bfseries \_\-ifconfig}}
\label{classXrlFeaTarget_a6368ed8fa1b6fdd5cb562b0425cedabc}

\item 
\hypertarget{classXrlFeaTarget_a29afb15a9bd60e53cd7be8a5af1b7afa}{
\hyperlink{classFirewallManager}{FirewallManager} \& {\bfseries \_\-firewall\_\-manager}}
\label{classXrlFeaTarget_a29afb15a9bd60e53cd7be8a5af1b7afa}

\item 
\hypertarget{classXrlFeaTarget_a31491eafc44bb918c29d1807f2189aea}{
\hyperlink{classFibConfig}{FibConfig} \& {\bfseries \_\-fibconfig}}
\label{classXrlFeaTarget_a31491eafc44bb918c29d1807f2189aea}

\item 
\hypertarget{classXrlFeaTarget_a717fb7ff6685c5d9fdf97131e4e932b1}{
\hyperlink{classIoLinkManager}{IoLinkManager} \& {\bfseries \_\-io\_\-link\_\-manager}}
\label{classXrlFeaTarget_a717fb7ff6685c5d9fdf97131e4e932b1}

\item 
\hypertarget{classXrlFeaTarget_a1782e980c334a1f4116e8ebce800c3bf}{
\hyperlink{classIoIpManager}{IoIpManager} \& {\bfseries \_\-io\_\-ip\_\-manager}}
\label{classXrlFeaTarget_a1782e980c334a1f4116e8ebce800c3bf}

\item 
\hypertarget{classXrlFeaTarget_a80a6f21631aa3597bc8d8557542b1e97}{
\hyperlink{classIoTcpUdpManager}{IoTcpUdpManager} \& {\bfseries \_\-io\_\-tcpudp\_\-manager}}
\label{classXrlFeaTarget_a80a6f21631aa3597bc8d8557542b1e97}

\item 
\hypertarget{classXrlFeaTarget_a6e32d8920ea536a1be05619c1d5f2116}{
\hyperlink{classLibFeaClientBridge}{LibFeaClientBridge} \& {\bfseries \_\-lib\_\-fea\_\-client\_\-bridge}}
\label{classXrlFeaTarget_a6e32d8920ea536a1be05619c1d5f2116}

\item 
\hypertarget{classXrlFeaTarget_a56733273298b4ef49ccb4bb3452f9955}{
bool {\bfseries \_\-is\_\-running}}
\label{classXrlFeaTarget_a56733273298b4ef49ccb4bb3452f9955}

\item 
\hypertarget{classXrlFeaTarget_ad4cfb4d5318e6f8548981f32bbcd19f3}{
bool {\bfseries \_\-is\_\-shutdown\_\-received}}
\label{classXrlFeaTarget_ad4cfb4d5318e6f8548981f32bbcd19f3}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
FEA (Forwarding Engine Abstraction) XRL target class. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classXrlFeaTarget_ade6f5352ff2136fb2e8fabd4e70845bb}{
\index{XrlFeaTarget@{XrlFeaTarget}!XrlFeaTarget@{XrlFeaTarget}}
\index{XrlFeaTarget@{XrlFeaTarget}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{XrlFeaTarget}]{\setlength{\rightskip}{0pt plus 5cm}XrlFeaTarget::XrlFeaTarget (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop, }
\item[{{\bf FeaNode} \&}]{fea\_\-node, }
\item[{{\bf XrlRouter} \&}]{xrl\_\-router, }
\item[{{\bf Profile} \&}]{profile, }
\item[{{\bf XrlFibClientManager} \&}]{xrl\_\-fib\_\-client\_\-manager, }
\item[{{\bf LibFeaClientBridge} \&}]{lib\_\-fea\_\-client\_\-bridge}
\end{DoxyParamCaption}
)}}
\label{classXrlFeaTarget_ade6f5352ff2136fb2e8fabd4e70845bb}


Constructor. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & \hyperlink{protocolthe-p}{the} event loop to use. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classXrlFeaTarget_a4dc61153d6a8b4ca5bc855270d38465f}{
\index{XrlFeaTarget@{XrlFeaTarget}!add\_\-remove\_\-mac@{add\_\-remove\_\-mac}}
\index{add\_\-remove\_\-mac@{add\_\-remove\_\-mac}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{add\_\-remove\_\-mac}]{\setlength{\rightskip}{0pt plus 5cm}int XrlFeaTarget::add\_\-remove\_\-mac (
\begin{DoxyParamCaption}
\item[{bool}]{add, }
\item[{const string \&}]{ifname, }
\item[{const {\bf Mac} \&}]{mac, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlFeaTarget_a4dc61153d6a8b4ca5bc855270d38465f}


Add/remove a multicast MAC address on an interface. 


\begin{DoxyParams}{Parameters}
{\em add} & if true, then add \hyperlink{protocolthe-p}{the} address, otherwise remove it. \\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} interface name. \\
\hline
{\em mac} & \hyperlink{protocolthe-p}{the} address to add/remove. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classXrlFeaTarget_a5701c65410da0f5bce84f4859dedd303}{
\index{XrlFeaTarget@{XrlFeaTarget}!common\_\-0\_\-1\_\-get\_\-target\_\-name@{common\_\-0\_\-1\_\-get\_\-target\_\-name}}
\index{common\_\-0\_\-1\_\-get\_\-target\_\-name@{common\_\-0\_\-1\_\-get\_\-target\_\-name}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{common\_\-0\_\-1\_\-get\_\-target\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::common\_\-0\_\-1\_\-get\_\-target\_\-name (
\begin{DoxyParamCaption}
\item[{string \&}]{name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a5701c65410da0f5bce84f4859dedd303}


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

Get name of \hyperlink{classXrl}{Xrl} Target 

Implements \hyperlink{structXrlFeaTargetBase_a6b410643bfd7c40c1384660a29f5e04d}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_af45f8747d5e2622cbdfba68211e186fc}{
\index{XrlFeaTarget@{XrlFeaTarget}!common\_\-0\_\-1\_\-get\_\-version@{common\_\-0\_\-1\_\-get\_\-version}}
\index{common\_\-0\_\-1\_\-get\_\-version@{common\_\-0\_\-1\_\-get\_\-version}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{common\_\-0\_\-1\_\-get\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::common\_\-0\_\-1\_\-get\_\-version (
\begin{DoxyParamCaption}
\item[{string \&}]{version}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_af45f8747d5e2622cbdfba68211e186fc}


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

Get version string from \hyperlink{classXrl}{Xrl} Target 

Implements \hyperlink{structXrlFeaTargetBase_ae64adb501737e63ac8b3d1e4b3cbbee3}{XrlFeaTargetBase}.

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


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

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

Implements \hyperlink{structXrlFeaTargetBase_a44d65a78de0200de3a059433ce9bab4a}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a5dd825f74a9fe063dc025b1918cb187d}{
\index{XrlFeaTarget@{XrlFeaTarget}!eventloop@{eventloop}}
\index{eventloop@{eventloop}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{eventloop}]{\setlength{\rightskip}{0pt plus 5cm}{\bf EventLoop}\& XrlFeaTarget::eventloop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classXrlFeaTarget_a5dd825f74a9fe063dc025b1918cb187d}


Get \hyperlink{protocolthe-p}{the} event loop this service is added to. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} event loop this service is added to. 
\end{DoxyReturn}
\hypertarget{classXrlFeaTarget_a141c34f678af3a22fd5227d295fa4b89}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-fib\_\-0\_\-1\_\-add\_\-fib\_\-client4@{fea\_\-fib\_\-0\_\-1\_\-add\_\-fib\_\-client4}}
\index{fea\_\-fib\_\-0\_\-1\_\-add\_\-fib\_\-client4@{fea\_\-fib\_\-0\_\-1\_\-add\_\-fib\_\-client4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-fib\_\-0\_\-1\_\-add\_\-fib\_\-client4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-fib\_\-0\_\-1\_\-add\_\-fib\_\-client4 (
\begin{DoxyParamCaption}
\item[{const string \&}]{client\_\-target\_\-name, }
\item[{const bool \&}]{send\_\-updates, }
\item[{const bool \&}]{send\_\-resolves}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a141c34f678af3a22fd5227d295fa4b89}


Add a FIB client. 


\begin{DoxyParams}{Parameters}
{\em client\_\-target\_\-name} & \hyperlink{protocolthe-p}{the} target name of \hyperlink{protocolthe-p}{the} FIB client to add. \\
\hline
{\em send\_\-updates} & whether updates should be sent. \\
\hline
{\em send\_\-resolves} & whether resolve requests should be sent.\\
\hline
{\em target\_\-name} & \hyperlink{protocolthe-p}{the} target name of \hyperlink{protocolthe-p}{the} FIB client to add. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a329db2fb6f7dad6576fa1f7f8118bf62}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a490783ba0824163dea917f8e416de659}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-fib\_\-0\_\-1\_\-delete\_\-fib\_\-client4@{fea\_\-fib\_\-0\_\-1\_\-delete\_\-fib\_\-client4}}
\index{fea\_\-fib\_\-0\_\-1\_\-delete\_\-fib\_\-client4@{fea\_\-fib\_\-0\_\-1\_\-delete\_\-fib\_\-client4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-fib\_\-0\_\-1\_\-delete\_\-fib\_\-client4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-fib\_\-0\_\-1\_\-delete\_\-fib\_\-client4 (
\begin{DoxyParamCaption}
\item[{const string \&}]{client\_\-target\_\-name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a490783ba0824163dea917f8e416de659}


Delete a FIB client. 


\begin{DoxyParams}{Parameters}
{\em target\_\-name} & \hyperlink{protocolthe-p}{the} target name of \hyperlink{protocolthe-p}{the} FIB client to delete. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a69d92da3997df8205024d684d16f3ffd}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a4c6777bfa949a58e0dea93417a686359}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-abort\_\-transaction@{fea\_\-firewall\_\-0\_\-1\_\-abort\_\-transaction}}
\index{fea\_\-firewall\_\-0\_\-1\_\-abort\_\-transaction@{fea\_\-firewall\_\-0\_\-1\_\-abort\_\-transaction}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-abort\_\-transaction}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-abort\_\-transaction (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a4c6777bfa949a58e0dea93417a686359}


Abort firewall configuration transaction. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID for this operation. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a3a29dd9bdef00b49703c66a1210510be}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_adc339ab83fa2e1822ddf0d244bc1a334}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-add\_\-entry4@{fea\_\-firewall\_\-0\_\-1\_\-add\_\-entry4}}
\index{fea\_\-firewall\_\-0\_\-1\_\-add\_\-entry4@{fea\_\-firewall\_\-0\_\-1\_\-add\_\-entry4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-add\_\-entry4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-add\_\-entry4 (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid, }
\item[{const uint32\_\-t \&}]{rule\_\-number, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4Net} \&}]{src\_\-network, }
\item[{const {\bf IPv4Net} \&}]{dst\_\-network, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol, }
\item[{const uint32\_\-t \&}]{src\_\-port\_\-begin, }
\item[{const uint32\_\-t \&}]{src\_\-port\_\-end, }
\item[{const uint32\_\-t \&}]{dst\_\-port\_\-begin, }
\item[{const uint32\_\-t \&}]{dst\_\-port\_\-end, }
\item[{const string \&}]{action}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_adc339ab83fa2e1822ddf0d244bc1a334}


Add an \hyperlink{classIPv4}{IPv4} firewall entry. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID for this operation.\\
\hline
{\em rule\_\-number} & \hyperlink{protocolthe-p}{the} rule number for this entry.\\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface where this filter is to be applied.\\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif where this filter is to be applied.\\
\hline
{\em src\_\-network} & \hyperlink{protocolthe-p}{the} source \hyperlink{classIPv4}{IPv4} network address prefix.\\
\hline
{\em dst\_\-network} & \hyperlink{protocolthe-p}{the} destination \hyperlink{classIPv4}{IPv4} network address prefix.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number (1-\/255, or 0 if wildcard).\\
\hline
{\em src\_\-port\_\-begin} & \hyperlink{protocolthe-p}{the} source TCP/UDP begin port (0-\/65535).\\
\hline
{\em src\_\-port\_\-end} & \hyperlink{protocolthe-p}{the} source TCP/UDP end port (0-\/65535).\\
\hline
{\em dst\_\-port\_\-begin} & \hyperlink{protocolthe-p}{the} destination TCP/UDP begin port (0-\/65535).\\
\hline
{\em dst\_\-port\_\-end} & \hyperlink{protocolthe-p}{the} destination TCP/UDP end port (0-\/65535).\\
\hline
{\em action} & \hyperlink{protocolthe-p}{the} action to be taken when this filter is matched. It is one of \hyperlink{protocolthe-p}{the} following keywords: \char`\"{}none\char`\"{}, \char`\"{}pass\char`\"{}, \char`\"{}drop\char`\"{}, \char`\"{}reject\char`\"{}. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a4989110503b46ed92966296794a714c2}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a51ff88070b22144ae050a4735c2eebf5}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-commit\_\-transaction@{fea\_\-firewall\_\-0\_\-1\_\-commit\_\-transaction}}
\index{fea\_\-firewall\_\-0\_\-1\_\-commit\_\-transaction@{fea\_\-firewall\_\-0\_\-1\_\-commit\_\-transaction}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-commit\_\-transaction}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-commit\_\-transaction (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a51ff88070b22144ae050a4735c2eebf5}


Commit firewall configuration transaction. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID for this operation. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a5ff47f34d4bc3b1b2d82677ff8eb1265}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ae01920745aaeccd75f74a71baea9b4fe}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-delete\_\-all\_\-entries4@{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-all\_\-entries4}}
\index{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-all\_\-entries4@{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-all\_\-entries4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-all\_\-entries4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-delete\_\-all\_\-entries4 (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ae01920745aaeccd75f74a71baea9b4fe}


Delete all \hyperlink{classIPv4}{IPv4} firewall entries. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID for this operation. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_ac5456c7971383598bbb86ba5653f734d}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ae3e4c67ec8ef9bab0735f95e9fecb780}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-delete\_\-entry4@{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-entry4}}
\index{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-entry4@{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-entry4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-delete\_\-entry4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-delete\_\-entry4 (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid, }
\item[{const uint32\_\-t \&}]{rule\_\-number, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4Net} \&}]{src\_\-network, }
\item[{const {\bf IPv4Net} \&}]{dst\_\-network, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol, }
\item[{const uint32\_\-t \&}]{src\_\-port\_\-begin, }
\item[{const uint32\_\-t \&}]{src\_\-port\_\-end, }
\item[{const uint32\_\-t \&}]{dst\_\-port\_\-begin, }
\item[{const uint32\_\-t \&}]{dst\_\-port\_\-end}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ae3e4c67ec8ef9bab0735f95e9fecb780}


Delete an \hyperlink{classIPv4}{IPv4} firewall entry. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID for this operation.\\
\hline
{\em rule\_\-number} & \hyperlink{protocolthe-p}{the} rule number for this entry.\\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface where this filter is to be deleted.\\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif where this filter is to be deleted.\\
\hline
{\em src\_\-network} & \hyperlink{protocolthe-p}{the} source \hyperlink{classIPv4}{IPv4} network address prefix.\\
\hline
{\em dst\_\-network} & \hyperlink{protocolthe-p}{the} destination \hyperlink{classIPv4}{IPv4} network address prefix.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number (1-\/255, or 0 if wildcard).\\
\hline
{\em src\_\-port\_\-begin} & \hyperlink{protocolthe-p}{the} source TCP/UDP begin port (0-\/65535).\\
\hline
{\em src\_\-port\_\-end} & \hyperlink{protocolthe-p}{the} source TCP/UDP end port (0-\/65535).\\
\hline
{\em dst\_\-port\_\-begin} & \hyperlink{protocolthe-p}{the} destination TCP/UDP begin port (0-\/65535).\\
\hline
{\em dst\_\-port\_\-end} & \hyperlink{protocolthe-p}{the} destination TCP/UDP end port (0-\/65535). \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_ae7f3542a797b359639dd713e4772fa9d}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ab6f53d34f41f211be3c7dc71d0ef7fc6}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-next4@{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-next4}}
\index{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-next4@{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-next4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-next4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-next4 (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{token, }
\item[{uint32\_\-t \&}]{rule\_\-number, }
\item[{string \&}]{ifname, }
\item[{string \&}]{vifname, }
\item[{{\bf IPv4Net} \&}]{src\_\-network, }
\item[{{\bf IPv4Net} \&}]{dst\_\-network, }
\item[{uint32\_\-t \&}]{ip\_\-protocol, }
\item[{uint32\_\-t \&}]{src\_\-port\_\-begin, }
\item[{uint32\_\-t \&}]{src\_\-port\_\-end, }
\item[{uint32\_\-t \&}]{dst\_\-port\_\-begin, }
\item[{uint32\_\-t \&}]{dst\_\-port\_\-end, }
\item[{string \&}]{action, }
\item[{bool \&}]{more}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ab6f53d34f41f211be3c7dc71d0ef7fc6}


Get \hyperlink{protocolthe-p}{the} next item in a list of \hyperlink{classIPv4}{IPv4} firewall entries. 


\begin{DoxyParams}{Parameters}
{\em token} & returned by a previous call to get\_\-entry\_\-list\_\-start4.\\
\hline
{\em rule\_\-number} & \hyperlink{protocolthe-p}{the} rule number for this entry.\\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface where this filter exists.\\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif where this filter exists.\\
\hline
{\em src\_\-network} & \hyperlink{protocolthe-p}{the} source \hyperlink{classIPv4}{IPv4} network address prefix.\\
\hline
{\em dst\_\-network} & \hyperlink{protocolthe-p}{the} destination \hyperlink{classIPv4}{IPv4} network address prefix.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number (1-\/255, or 0 if wildcard).\\
\hline
{\em src\_\-port\_\-begin} & \hyperlink{protocolthe-p}{the} source TCP/UDP begin port (0-\/65535).\\
\hline
{\em src\_\-port\_\-end} & \hyperlink{protocolthe-p}{the} source TCP/UDP end port (0-\/65535).\\
\hline
{\em dst\_\-port\_\-begin} & \hyperlink{protocolthe-p}{the} destination TCP/UDP begin port (0-\/65535).\\
\hline
{\em dst\_\-port\_\-end} & \hyperlink{protocolthe-p}{the} destination TCP/UDP end port (0-\/65535).\\
\hline
{\em action} & \hyperlink{protocolthe-p}{the} action taken when this filter is matched. It is one of \hyperlink{protocolthe-p}{the} following keywords: \char`\"{}none\char`\"{}, \char`\"{}pass\char`\"{}, \char`\"{}drop\char`\"{}, \char`\"{}reject\char`\"{}.\\
\hline
{\em more} & true if \hyperlink{protocolthe-p}{the} list has more items remaining. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a03e2117933750579bb48a2ef7c94aee2}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a3dbb83836c0b1370c377a431cdd501d4}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-start4@{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-start4}}
\index{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-start4@{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-start4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-start4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-get\_\-entry\_\-list\_\-start4 (
\begin{DoxyParamCaption}
\item[{uint32\_\-t \&}]{token, }
\item[{bool \&}]{more}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a3dbb83836c0b1370c377a431cdd501d4}


Get a token for a list of \hyperlink{classIPv4}{IPv4} firewall entries. 


\begin{DoxyParams}{Parameters}
{\em token} & to be provided when calling get\_\-entry\_\-list\_\-next4.\\
\hline
{\em more} & true if \hyperlink{protocolthe-p}{the} list is not empty. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_af72900e3bd09e02a2cbaaf6cc4947610}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ac3c0819bd102892064ad87f024b86946}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-replace\_\-entry4@{fea\_\-firewall\_\-0\_\-1\_\-replace\_\-entry4}}
\index{fea\_\-firewall\_\-0\_\-1\_\-replace\_\-entry4@{fea\_\-firewall\_\-0\_\-1\_\-replace\_\-entry4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-replace\_\-entry4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-replace\_\-entry4 (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid, }
\item[{const uint32\_\-t \&}]{rule\_\-number, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{const {\bf IPv4Net} \&}]{src\_\-network, }
\item[{const {\bf IPv4Net} \&}]{dst\_\-network, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol, }
\item[{const uint32\_\-t \&}]{src\_\-port\_\-begin, }
\item[{const uint32\_\-t \&}]{src\_\-port\_\-end, }
\item[{const uint32\_\-t \&}]{dst\_\-port\_\-begin, }
\item[{const uint32\_\-t \&}]{dst\_\-port\_\-end, }
\item[{const string \&}]{action}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ac3c0819bd102892064ad87f024b86946}


Replace an \hyperlink{classIPv4}{IPv4} firewall entry. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID for this operation.\\
\hline
{\em rule\_\-number} & \hyperlink{protocolthe-p}{the} rule number for this entry.\\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface where this filter is to be applied.\\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} vif where this filter is to be applied.\\
\hline
{\em src\_\-network} & \hyperlink{protocolthe-p}{the} source \hyperlink{classIPv4}{IPv4} network address prefix.\\
\hline
{\em dst\_\-network} & \hyperlink{protocolthe-p}{the} destination \hyperlink{classIPv4}{IPv4} network address prefix.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number (1-\/255, or 0 if wildcard).\\
\hline
{\em src\_\-port\_\-begin} & \hyperlink{protocolthe-p}{the} source TCP/UDP begin port (0-\/65535).\\
\hline
{\em src\_\-port\_\-end} & \hyperlink{protocolthe-p}{the} source TCP/UDP end port (0-\/65535).\\
\hline
{\em dst\_\-port\_\-begin} & \hyperlink{protocolthe-p}{the} destination TCP/UDP begin port (0-\/65535).\\
\hline
{\em dst\_\-port\_\-end} & \hyperlink{protocolthe-p}{the} destination TCP/UDP end port (0-\/65535).\\
\hline
{\em action} & \hyperlink{protocolthe-p}{the} action to be taken when this filter is matched. It is one of \hyperlink{protocolthe-p}{the} following keywords: \char`\"{}none\char`\"{}, \char`\"{}pass\char`\"{}, \char`\"{}drop\char`\"{}, \char`\"{}reject\char`\"{}. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_ab5a9916f54908c7d9f546874822c2c4f}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a61bd457b73030883a0facc122ab66242}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-start\_\-transaction@{fea\_\-firewall\_\-0\_\-1\_\-start\_\-transaction}}
\index{fea\_\-firewall\_\-0\_\-1\_\-start\_\-transaction@{fea\_\-firewall\_\-0\_\-1\_\-start\_\-transaction}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-start\_\-transaction}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-start\_\-transaction (
\begin{DoxyParamCaption}
\item[{uint32\_\-t \&}]{tid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a61bd457b73030883a0facc122ab66242}


Start firewall configuration transaction. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID returned by this operation. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_ab962066142e46a4d4114ec0e6c3da07f}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a99381f6996a8bbab0e85a72c52c6d939}{
\index{XrlFeaTarget@{XrlFeaTarget}!fea\_\-firewall\_\-0\_\-1\_\-startup\_\-firewall@{fea\_\-firewall\_\-0\_\-1\_\-startup\_\-firewall}}
\index{fea\_\-firewall\_\-0\_\-1\_\-startup\_\-firewall@{fea\_\-firewall\_\-0\_\-1\_\-startup\_\-firewall}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fea\_\-firewall\_\-0\_\-1\_\-startup\_\-firewall}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fea\_\-firewall\_\-0\_\-1\_\-startup\_\-firewall (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a99381f6996a8bbab0e85a72c52c6d939}


Does nothing, but allows us to have rtrmgr verify startup. 



Implements \hyperlink{structXrlFeaTargetBase}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a97b765f43dedcccb5081271d25ae862a}{
\index{XrlFeaTarget@{XrlFeaTarget}!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}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-birth}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::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{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a97b765f43dedcccb5081271d25ae862a}


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{structXrlFeaTargetBase_aae9a472322abcabf1587ca4e4c27d560}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_aa6208efb5891504e03e35631b7cc005f}{
\index{XrlFeaTarget@{XrlFeaTarget}!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}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{finder\_\-event\_\-observer\_\-0\_\-1\_\-xrl\_\-target\_\-death}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::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{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_aa6208efb5891504e03e35631b7cc005f}


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{structXrlFeaTargetBase_afb92ddea17b82370358d777186ec918b}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a66c49689444f59aa9c48d0755c330e6b}{
\index{XrlFeaTarget@{XrlFeaTarget}!fti\_\-0\_\-2\_\-get\_\-unicast\_\-forwarding\_\-enabled4@{fti\_\-0\_\-2\_\-get\_\-unicast\_\-forwarding\_\-enabled4}}
\index{fti\_\-0\_\-2\_\-get\_\-unicast\_\-forwarding\_\-enabled4@{fti\_\-0\_\-2\_\-get\_\-unicast\_\-forwarding\_\-enabled4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fti\_\-0\_\-2\_\-get\_\-unicast\_\-forwarding\_\-enabled4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fti\_\-0\_\-2\_\-get\_\-unicast\_\-forwarding\_\-enabled4 (
\begin{DoxyParamCaption}
\item[{bool \&}]{enabled}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a66c49689444f59aa9c48d0755c330e6b}


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

Test whether \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding engine is enabled or disabled to forward packets.


\begin{DoxyParams}{Parameters}
{\em enabled} & if true, then \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding is enabled, otherwise is disabled. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a8cc62407d4fe9823ba2af6d9322c5606}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ab6e86b50b51076ba58d06ad426443af3}{
\index{XrlFeaTarget@{XrlFeaTarget}!fti\_\-0\_\-2\_\-have\_\-ipv4@{fti\_\-0\_\-2\_\-have\_\-ipv4}}
\index{fti\_\-0\_\-2\_\-have\_\-ipv4@{fti\_\-0\_\-2\_\-have\_\-ipv4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fti\_\-0\_\-2\_\-have\_\-ipv4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fti\_\-0\_\-2\_\-have\_\-ipv4 (
\begin{DoxyParamCaption}
\item[{bool \&}]{result}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ab6e86b50b51076ba58d06ad426443af3}


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

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


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


Implements \hyperlink{structXrlFeaTargetBase_a68732be89d2bb3182af9b67598909b83}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_aa22356c4d8ef39015afbb3d271a46c8e}{
\index{XrlFeaTarget@{XrlFeaTarget}!fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-dest4@{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-dest4}}
\index{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-dest4@{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-dest4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-dest4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-dest4 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{dst, }
\item[{{\bf IPv4Net} \&}]{netmask, }
\item[{{\bf IPv4} \&}]{nexthop, }
\item[{string \&}]{ifname, }
\item[{string \&}]{vifname, }
\item[{uint32\_\-t \&}]{metric, }
\item[{uint32\_\-t \&}]{admin\_\-distance, }
\item[{string \&}]{protocol\_\-origin}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_aa22356c4d8ef39015afbb3d271a46c8e}


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

Lookup a route for a destination host address.


\begin{DoxyParams}{Parameters}
{\em dst} & \hyperlink{protocolthe-p}{the} destination host address to lookup.\\
\hline
{\em nexthop} & \hyperlink{protocolthe-p}{the} address of \hyperlink{protocolthe-p}{the} next-\/hop router toward dst.\\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface toward dst.\\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} virtual interface toward dst.\\
\hline
{\em metric} & \hyperlink{protocolthe-p}{the} routing metric toward dst.\\
\hline
{\em admin\_\-distance} & \hyperlink{protocolthe-p}{the} administratively defined distance toward dst.\\
\hline
{\em protocol\_\-origin} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} protocol that originated this routing entry. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_ab683456ff54c12235312ffc3e29c2850}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a70053eb70b0642ae6d062aa5c7d09b6c}{
\index{XrlFeaTarget@{XrlFeaTarget}!fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-network4@{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-network4}}
\index{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-network4@{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-network4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-network4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fti\_\-0\_\-2\_\-lookup\_\-route\_\-by\_\-network4 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Net} \&}]{dst, }
\item[{{\bf IPv4} \&}]{nexthop, }
\item[{string \&}]{ifname, }
\item[{string \&}]{vifname, }
\item[{uint32\_\-t \&}]{metric, }
\item[{uint32\_\-t \&}]{admin\_\-distance, }
\item[{string \&}]{protocol\_\-origin}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a70053eb70b0642ae6d062aa5c7d09b6c}


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

Lookup a route for a destination subnet address.


\begin{DoxyParams}{Parameters}
{\em dst} & \hyperlink{protocolthe-p}{the} destination subnet address to lookup.\\
\hline
{\em nexthop} & \hyperlink{protocolthe-p}{the} address of \hyperlink{protocolthe-p}{the} next-\/hop router toward dst.\\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface toward dst.\\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} virtual interface toward dst.\\
\hline
{\em metric} & \hyperlink{protocolthe-p}{the} routing metric toward dst.\\
\hline
{\em admin\_\-distance} & \hyperlink{protocolthe-p}{the} administratively defined distance toward dst.\\
\hline
{\em protocol\_\-origin} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} protocol that originated this routing entry. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a251bea8f1cab3767ce1fc8f2bdc5600d}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a1680d54a0f26a478565cf2ee1a42226f}{
\index{XrlFeaTarget@{XrlFeaTarget}!fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-enabled4@{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-enabled4}}
\index{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-enabled4@{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-enabled4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-enabled4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-enabled4 (
\begin{DoxyParamCaption}
\item[{const bool \&}]{enabled}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a1680d54a0f26a478565cf2ee1a42226f}


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

Set \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding engine to enable or disable forwarding of packets.


\begin{DoxyParams}{Parameters}
{\em enabled} & if true, then enable \hyperlink{classIPv4}{IPv4} unicast forwarding, otherwise disable it. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_aa5b621ca86d2732ae24d7a2f095d0f7d}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a0966a3f88fc52b32d8b89e15a89fb2cd}{
\index{XrlFeaTarget@{XrlFeaTarget}!fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-shutdown4@{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-shutdown4}}
\index{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-shutdown4@{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-shutdown4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-shutdown4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-shutdown4 (
\begin{DoxyParamCaption}
\item[{const bool \&}]{retain}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a0966a3f88fc52b32d8b89e15a89fb2cd}


Set \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding engine whether to retain existing XORP forwarding entries on shutdown. 


\begin{DoxyParams}{Parameters}
{\em retain} & if true, then retain \hyperlink{protocolthe-p}{the} XORP forwarding entries, otherwise delete them. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a47e9226bc762924218e29825217796cf}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a45731e307859c554197c4e132c2041ae}{
\index{XrlFeaTarget@{XrlFeaTarget}!fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-startup4@{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-startup4}}
\index{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-startup4@{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-startup4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-startup4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-entries\_\-retain\_\-on\_\-startup4 (
\begin{DoxyParamCaption}
\item[{const bool \&}]{retain}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a45731e307859c554197c4e132c2041ae}


Set \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding engine whether to retain existing XORP forwarding entries on startup. 


\begin{DoxyParams}{Parameters}
{\em retain} & if true, then retain \hyperlink{protocolthe-p}{the} XORP forwarding entries, otherwise delete them. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a474f555d560b5d5fcd4476e6f73a7ad4}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ae1472d3d0f044e8ef6c698c03b73c35a}{
\index{XrlFeaTarget@{XrlFeaTarget}!fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-table\_\-id4@{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-table\_\-id4}}
\index{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-table\_\-id4@{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-table\_\-id4}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-table\_\-id4}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::fti\_\-0\_\-2\_\-set\_\-unicast\_\-forwarding\_\-table\_\-id4 (
\begin{DoxyParamCaption}
\item[{const bool \&}]{is\_\-configured, }
\item[{const uint32\_\-t \&}]{table\_\-id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ae1472d3d0f044e8ef6c698c03b73c35a}


Set \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding table ID to be used. 


\begin{DoxyParams}{Parameters}
{\em is\_\-configured} & if true, \hyperlink{protocolthe-p}{the} forwarding table ID is configured, otherwise \hyperlink{protocolthe-p}{the} default table should be used.\\
\hline
{\em table\_\-id} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} unicast forwarding table ID to be used. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a283aecb08cdfa22e780c440fc144d427}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_afb66770b9ef4ad14754d3ebe65c828d7}{
\index{XrlFeaTarget@{XrlFeaTarget}!ifmgr\_\-0\_\-1\_\-configure\_\-all\_\-interfaces\_\-from\_\-system@{ifmgr\_\-0\_\-1\_\-configure\_\-all\_\-interfaces\_\-from\_\-system}}
\index{ifmgr\_\-0\_\-1\_\-configure\_\-all\_\-interfaces\_\-from\_\-system@{ifmgr\_\-0\_\-1\_\-configure\_\-all\_\-interfaces\_\-from\_\-system}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{ifmgr\_\-0\_\-1\_\-configure\_\-all\_\-interfaces\_\-from\_\-system}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::ifmgr\_\-0\_\-1\_\-configure\_\-all\_\-interfaces\_\-from\_\-system (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid, }
\item[{const bool \&}]{enable}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_afb66770b9ef4ad14754d3ebe65c828d7}


Implicitly configure all interfaces within \hyperlink{protocolthe-p}{the} FEA by using information from \hyperlink{protocolthe-p}{the} underlying system. 


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


Implements \hyperlink{structXrlFeaTargetBase_aab402c7cf400c9ca5380ffa0b813f4a5}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a9064cfdbaf11c56c9c063052b98d9a19}{
\index{XrlFeaTarget@{XrlFeaTarget}!ifmgr\_\-0\_\-1\_\-configure\_\-interface\_\-from\_\-system@{ifmgr\_\-0\_\-1\_\-configure\_\-interface\_\-from\_\-system}}
\index{ifmgr\_\-0\_\-1\_\-configure\_\-interface\_\-from\_\-system@{ifmgr\_\-0\_\-1\_\-configure\_\-interface\_\-from\_\-system}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{ifmgr\_\-0\_\-1\_\-configure\_\-interface\_\-from\_\-system}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::ifmgr\_\-0\_\-1\_\-configure\_\-interface\_\-from\_\-system (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid, }
\item[{const string \&}]{ifname, }
\item[{const bool \&}]{enable}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a9064cfdbaf11c56c9c063052b98d9a19}


Implicitly configure an interface within \hyperlink{protocolthe-p}{the} FEA by using information from \hyperlink{protocolthe-p}{the} underlying system. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID. \\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} interface to configure. \\
\hline
{\em enable} & if true, then enable \hyperlink{protocolthe-p}{the} implicit configuration, otherwise disable it. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a1b1654290a665d8f58daa13379c932e3}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a516f4f478ccc9da827294040ef31b008}{
\index{XrlFeaTarget@{XrlFeaTarget}!ifmgr\_\-0\_\-1\_\-create\_\-vif@{ifmgr\_\-0\_\-1\_\-create\_\-vif}}
\index{ifmgr\_\-0\_\-1\_\-create\_\-vif@{ifmgr\_\-0\_\-1\_\-create\_\-vif}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{ifmgr\_\-0\_\-1\_\-create\_\-vif}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::ifmgr\_\-0\_\-1\_\-create\_\-vif (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vif}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a516f4f478ccc9da827294040ef31b008}


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

Create a vif.


\begin{DoxyParams}{Parameters}
{\em ifname} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} physical interface associated with \hyperlink{protocolthe-p}{the} new vif.\\
\hline
{\em vif} & name for new vif, must be unique across all \hyperlink{protocolthe-p}{the} vifs in \hyperlink{protocolthe-p}{the} system. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a2ec7fb821287853f925dd90a11ef44ab}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a5eb5d55e7e8e0c2ff27d9f2c75c7176b}{
\index{XrlFeaTarget@{XrlFeaTarget}!ifmgr\_\-0\_\-1\_\-startup\_\-ifmgr@{ifmgr\_\-0\_\-1\_\-startup\_\-ifmgr}}
\index{ifmgr\_\-0\_\-1\_\-startup\_\-ifmgr@{ifmgr\_\-0\_\-1\_\-startup\_\-ifmgr}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{ifmgr\_\-0\_\-1\_\-startup\_\-ifmgr}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::ifmgr\_\-0\_\-1\_\-startup\_\-ifmgr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a5eb5d55e7e8e0c2ff27d9f2c75c7176b}


Does nothing, but allows us to have rtrmgr verify startup. 



Implements \hyperlink{structXrlFeaTargetBase}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a09511f8aa3f95dc0625ada2c63314f98}{
\index{XrlFeaTarget@{XrlFeaTarget}!ifmgr\_\-replicator\_\-0\_\-1\_\-register\_\-ifmgr\_\-mirror@{ifmgr\_\-replicator\_\-0\_\-1\_\-register\_\-ifmgr\_\-mirror}}
\index{ifmgr\_\-replicator\_\-0\_\-1\_\-register\_\-ifmgr\_\-mirror@{ifmgr\_\-replicator\_\-0\_\-1\_\-register\_\-ifmgr\_\-mirror}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{ifmgr\_\-replicator\_\-0\_\-1\_\-register\_\-ifmgr\_\-mirror}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::ifmgr\_\-replicator\_\-0\_\-1\_\-register\_\-ifmgr\_\-mirror (
\begin{DoxyParamCaption}
\item[{const string \&}]{clientname}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a09511f8aa3f95dc0625ada2c63314f98}


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

Register remote mirror of interface state. 

Implements \hyperlink{structXrlFeaTargetBase_a87899a034d71c998bb323f9ffde4c76a}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ada28fb6a7a9ae71d1f2ee6c7f3cf5bd6}{
\index{XrlFeaTarget@{XrlFeaTarget}!ifmgr\_\-replicator\_\-0\_\-1\_\-unregister\_\-ifmgr\_\-mirror@{ifmgr\_\-replicator\_\-0\_\-1\_\-unregister\_\-ifmgr\_\-mirror}}
\index{ifmgr\_\-replicator\_\-0\_\-1\_\-unregister\_\-ifmgr\_\-mirror@{ifmgr\_\-replicator\_\-0\_\-1\_\-unregister\_\-ifmgr\_\-mirror}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{ifmgr\_\-replicator\_\-0\_\-1\_\-unregister\_\-ifmgr\_\-mirror}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::ifmgr\_\-replicator\_\-0\_\-1\_\-unregister\_\-ifmgr\_\-mirror (
\begin{DoxyParamCaption}
\item[{const string \&}]{clientname}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ada28fb6a7a9ae71d1f2ee6c7f3cf5bd6}


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

Register remote mirror of interface state. 

Implements \hyperlink{structXrlFeaTargetBase_a4246e8b5390231e56bc7d296427b723f}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a0a8402c086d3e7eb8f5d679831fa29d5}{
\index{XrlFeaTarget@{XrlFeaTarget}!is\_\-running@{is\_\-running}}
\index{is\_\-running@{is\_\-running}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{is\_\-running}]{\setlength{\rightskip}{0pt plus 5cm}bool XrlFeaTarget::is\_\-running (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classXrlFeaTarget_a0a8402c086d3e7eb8f5d679831fa29d5}


Test whether \hyperlink{protocolthe-p}{the} service is running. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} service is still running, otherwise false. 
\end{DoxyReturn}
\hypertarget{classXrlFeaTarget_a55ab3553bb889cb3387a01d9bc865ac8}{
\index{XrlFeaTarget@{XrlFeaTarget}!is\_\-shutdown\_\-received@{is\_\-shutdown\_\-received}}
\index{is\_\-shutdown\_\-received@{is\_\-shutdown\_\-received}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{is\_\-shutdown\_\-received}]{\setlength{\rightskip}{0pt plus 5cm}bool XrlFeaTarget::is\_\-shutdown\_\-received (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classXrlFeaTarget_a55ab3553bb889cb3387a01d9bc865ac8}


Test whether a shutdown XRL request has been received. 

\begin{DoxyReturn}{Returns}
true if shutdown XRL request has been received, otherwise false. 
\end{DoxyReturn}
\hypertarget{classXrlFeaTarget_a71f621df206703eb38cf5a07caf71bc2}{
\index{XrlFeaTarget@{XrlFeaTarget}!profile\_\-0\_\-1\_\-clear@{profile\_\-0\_\-1\_\-clear}}
\index{profile\_\-0\_\-1\_\-clear@{profile\_\-0\_\-1\_\-clear}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{profile\_\-0\_\-1\_\-clear}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::profile\_\-0\_\-1\_\-clear (
\begin{DoxyParamCaption}
\item[{const string \&}]{pname}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a71f621df206703eb38cf5a07caf71bc2}


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

Clear \hyperlink{protocolthe-p}{the} profiling entries


\begin{DoxyParams}{Parameters}
{\em pname} & profile variable \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a850d3774859af81503b3fd52d43c1688}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a499b10124c7a36deae3aa56ad70fda1f}{
\index{XrlFeaTarget@{XrlFeaTarget}!profile\_\-0\_\-1\_\-disable@{profile\_\-0\_\-1\_\-disable}}
\index{profile\_\-0\_\-1\_\-disable@{profile\_\-0\_\-1\_\-disable}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{profile\_\-0\_\-1\_\-disable}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::profile\_\-0\_\-1\_\-disable (
\begin{DoxyParamCaption}
\item[{const string \&}]{pname}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a499b10124c7a36deae3aa56ad70fda1f}


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

Disable profiling


\begin{DoxyParams}{Parameters}
{\em pname} & profile variable \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a206d8930882120390af4836ebe23c9e0}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a96154ac047b83947839b70041fa30866}{
\index{XrlFeaTarget@{XrlFeaTarget}!profile\_\-0\_\-1\_\-enable@{profile\_\-0\_\-1\_\-enable}}
\index{profile\_\-0\_\-1\_\-enable@{profile\_\-0\_\-1\_\-enable}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{profile\_\-0\_\-1\_\-enable}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::profile\_\-0\_\-1\_\-enable (
\begin{DoxyParamCaption}
\item[{const string \&}]{pname}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a96154ac047b83947839b70041fa30866}


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

Enable profiling


\begin{DoxyParams}{Parameters}
{\em pname} & profile variable \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_af63e69d8bf95ae289047ca553e787520}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_aec71109a7cc5a979bd27999ee6b35741}{
\index{XrlFeaTarget@{XrlFeaTarget}!profile\_\-0\_\-1\_\-get\_\-entries@{profile\_\-0\_\-1\_\-get\_\-entries}}
\index{profile\_\-0\_\-1\_\-get\_\-entries@{profile\_\-0\_\-1\_\-get\_\-entries}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{profile\_\-0\_\-1\_\-get\_\-entries}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::profile\_\-0\_\-1\_\-get\_\-entries (
\begin{DoxyParamCaption}
\item[{const string \&}]{pname, }
\item[{const string \&}]{instance\_\-name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_aec71109a7cc5a979bd27999ee6b35741}


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

Get log entries.


\begin{DoxyParams}{Parameters}
{\em pname} & profile variable\\
\hline
{\em instance\_\-name} & to send \hyperlink{protocolthe-p}{the} profiling info to. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_af30b0aaee7b54ebcbe172f17c989a67d}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a5fb8a5ad655f219ed8d515a9d19d987d}{
\index{XrlFeaTarget@{XrlFeaTarget}!profile\_\-0\_\-1\_\-list@{profile\_\-0\_\-1\_\-list}}
\index{profile\_\-0\_\-1\_\-list@{profile\_\-0\_\-1\_\-list}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{profile\_\-0\_\-1\_\-list}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::profile\_\-0\_\-1\_\-list (
\begin{DoxyParamCaption}
\item[{string \&}]{info}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a5fb8a5ad655f219ed8d515a9d19d987d}


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

List all \hyperlink{protocolthe-p}{the} profiling variables registered with this target. 

Implements \hyperlink{structXrlFeaTargetBase_ab11a7e602a1cb785ce404f33b13e1918}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a3cc7757eabd53dfaace04aad19a8a099}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-link\_\-0\_\-1\_\-join\_\-multicast\_\-group@{raw\_\-link\_\-0\_\-1\_\-join\_\-multicast\_\-group}}
\index{raw\_\-link\_\-0\_\-1\_\-join\_\-multicast\_\-group@{raw\_\-link\_\-0\_\-1\_\-join\_\-multicast\_\-group}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-link\_\-0\_\-1\_\-join\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-link\_\-0\_\-1\_\-join\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-instance\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ether\_\-type, }
\item[{const string \&}]{filter\_\-program, }
\item[{const {\bf Mac} \&}]{group\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a3cc7757eabd53dfaace04aad19a8a099}


Join a MAC multicast group. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} receiver's XRL target instance name.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should be accepted.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should be accepted.\\
\hline
{\em ether\_\-type} & \hyperlink{protocolthe-p}{the} EtherType protocol number or \hyperlink{protocolthe-p}{the} Destination SAP that \hyperlink{protocolthe-p}{the} receiver is interested in. It must be between 1536 and 65535 to specify \hyperlink{protocolthe-p}{the} EtherType, or between 1 and 255 to specify \hyperlink{protocolthe-p}{the} Destination SAP for IEEE 802.2 LLC frames. A protocol number of 0 is used to specify all protocols.\\
\hline
{\em filter\_\-program} & \hyperlink{protocolthe-p}{the} filter program to be applied on \hyperlink{protocolthe-p}{the} received packets. The program uses tcpdump(1) style expression.\\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} multicast group address to join. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a29b35d0a3dee7598a27a29c0c7c4591e}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ac956131784b8d53c7d7dd47783205eb8}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-link\_\-0\_\-1\_\-leave\_\-multicast\_\-group@{raw\_\-link\_\-0\_\-1\_\-leave\_\-multicast\_\-group}}
\index{raw\_\-link\_\-0\_\-1\_\-leave\_\-multicast\_\-group@{raw\_\-link\_\-0\_\-1\_\-leave\_\-multicast\_\-group}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-link\_\-0\_\-1\_\-leave\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-link\_\-0\_\-1\_\-leave\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-instance\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ether\_\-type, }
\item[{const string \&}]{filter\_\-program, }
\item[{const {\bf Mac} \&}]{group\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ac956131784b8d53c7d7dd47783205eb8}


Leave a MAC multicast group. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} receiver's XRL target instance name.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should not be accepted.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should not be accepted.\\
\hline
{\em ether\_\-type} & \hyperlink{protocolthe-p}{the} EtherType protocol number or \hyperlink{protocolthe-p}{the} Destination SAP that \hyperlink{protocolthe-p}{the} receiver is not interested in anymore. It must be between 1536 and 65535 to specify \hyperlink{protocolthe-p}{the} EtherType, or between 1 and 255 to specify \hyperlink{protocolthe-p}{the} Destination SAP for IEEE 802.2 LLC frames. A protocol number of 0 is used to specify all protocols.\\
\hline
{\em filter\_\-program} & \hyperlink{protocolthe-p}{the} filter program that was applied on \hyperlink{protocolthe-p}{the} received packets. The program uses tcpdump(1) style expression.\\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} multicast group address to leave. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_acd94da09bb187793da1ba34f87266a59}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ae8fd7db1cab6021e33489b5779a87eb3}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-link\_\-0\_\-1\_\-register\_\-receiver@{raw\_\-link\_\-0\_\-1\_\-register\_\-receiver}}
\index{raw\_\-link\_\-0\_\-1\_\-register\_\-receiver@{raw\_\-link\_\-0\_\-1\_\-register\_\-receiver}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-link\_\-0\_\-1\_\-register\_\-receiver}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-link\_\-0\_\-1\_\-register\_\-receiver (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-instance\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ether\_\-type, }
\item[{const string \&}]{filter\_\-program, }
\item[{const bool \&}]{enable\_\-multicast\_\-loopback}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ae8fd7db1cab6021e33489b5779a87eb3}


Register to receive raw link-\/level packets. 

The receiver is expected to support raw\_\-link\_\-client/0.1 interface.


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} receiver's XRL target instance name.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should be accepted.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should be accepted.\\
\hline
{\em ether\_\-type} & \hyperlink{protocolthe-p}{the} EtherType protocol number or \hyperlink{protocolthe-p}{the} Destination SAP that \hyperlink{protocolthe-p}{the} receiver is interested in. It must be between 1536 and 65535 to specify \hyperlink{protocolthe-p}{the} EtherType, or between 1 and 255 to specify \hyperlink{protocolthe-p}{the} Destination SAP for IEEE 802.2 LLC frames. A protocol number of 0 is used to specify all protocols.\\
\hline
{\em filter\_\-program} & \hyperlink{protocolthe-p}{the} filter program to be applied on \hyperlink{protocolthe-p}{the} received packets. The program uses tcpdump(1) style expression.\\
\hline
{\em enable\_\-multicast\_\-loopback} & if true then enable delivering of multicast datagrams back to this host (assuming \hyperlink{protocolthe-p}{the} host is a member of \hyperlink{protocolthe-p}{the} same multicast group). \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a1ea975ae0c94e192dbd77a668105c5c0}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a775172463650f31a85507f5e34bbfe64}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-link\_\-0\_\-1\_\-send@{raw\_\-link\_\-0\_\-1\_\-send}}
\index{raw\_\-link\_\-0\_\-1\_\-send@{raw\_\-link\_\-0\_\-1\_\-send}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-link\_\-0\_\-1\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-link\_\-0\_\-1\_\-send (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf Mac} \&}]{src\_\-address, }
\item[{const {\bf Mac} \&}]{dst\_\-address, }
\item[{const uint32\_\-t \&}]{ether\_\-type, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{payload}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a775172463650f31a85507f5e34bbfe64}


\hyperlink{structSend}{Send} a raw link-\/level packet on an interface. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface to send \hyperlink{protocolthe-p}{the} packet on.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif to send \hyperlink{protocolthe-p}{the} packet on.\\
\hline
{\em src\_\-address} & \hyperlink{protocolthe-p}{the} MAC source address.\\
\hline
{\em dst\_\-address} & \hyperlink{protocolthe-p}{the} MAC destination address.\\
\hline
{\em ether\_\-type} & \hyperlink{protocolthe-p}{the} EtherType protocol type or \hyperlink{protocolthe-p}{the} Destination SAP. It must be between 1536 and 65535 to specify \hyperlink{protocolthe-p}{the} EtherType, or between 1 and 255 to specify \hyperlink{protocolthe-p}{the} Destination SAP IEEE 802.2 LLC frames.\\
\hline
{\em payload} & \hyperlink{protocolthe-p}{the} payload, everything after \hyperlink{protocolthe-p}{the} MAC header. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_adf698192f74b0b9eb6fa4ca8b56dd34a}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a3e81e9ac33d3797d2a5a9870f6a7eadb}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-link\_\-0\_\-1\_\-unregister\_\-receiver@{raw\_\-link\_\-0\_\-1\_\-unregister\_\-receiver}}
\index{raw\_\-link\_\-0\_\-1\_\-unregister\_\-receiver@{raw\_\-link\_\-0\_\-1\_\-unregister\_\-receiver}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-link\_\-0\_\-1\_\-unregister\_\-receiver}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-link\_\-0\_\-1\_\-unregister\_\-receiver (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-instance\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ether\_\-type, }
\item[{const string \&}]{filter\_\-program}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a3e81e9ac33d3797d2a5a9870f6a7eadb}


Unregister to receive raw link-\/level packets. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} receiver's XRL target instance name.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should not be accepted.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should not be accepted.\\
\hline
{\em ether\_\-type} & \hyperlink{protocolthe-p}{the} EtherType protocol number or \hyperlink{protocolthe-p}{the} Destination SAP that \hyperlink{protocolthe-p}{the} receiver is not interested in anymore. It must be between 1536 and 65535 to specify \hyperlink{protocolthe-p}{the} EtherType, or between 1 and 255 to specify \hyperlink{protocolthe-p}{the} Destination SAP for IEEE 802.2 LLC frames. A protocol number of 0 is used to specify all protocols.\\
\hline
{\em filter\_\-program} & \hyperlink{protocolthe-p}{the} filter program that was applied on \hyperlink{protocolthe-p}{the} received packets. The program uses tcpdump(1) style expression. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_abb74f9192d944632bab41ce7a5acad37}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a87d89687a602aba204e85d10e3a18cd9}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-packet4\_\-0\_\-1\_\-join\_\-multicast\_\-group@{raw\_\-packet4\_\-0\_\-1\_\-join\_\-multicast\_\-group}}
\index{raw\_\-packet4\_\-0\_\-1\_\-join\_\-multicast\_\-group@{raw\_\-packet4\_\-0\_\-1\_\-join\_\-multicast\_\-group}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-packet4\_\-0\_\-1\_\-join\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-packet4\_\-0\_\-1\_\-join\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-instance\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol, }
\item[{const {\bf IPv4} \&}]{group\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a87d89687a602aba204e85d10e3a18cd9}


Join an \hyperlink{classIPv4}{IPv4} multicast group. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} receiver's XRL target instance name.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should be accepted.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should be accepted.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.\\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} multicast group address to join. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_af3171f082c50533eda982e1158b290b6}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a3214d1433d9e273dbb061f2033b6b1e3}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-packet4\_\-0\_\-1\_\-leave\_\-multicast\_\-group@{raw\_\-packet4\_\-0\_\-1\_\-leave\_\-multicast\_\-group}}
\index{raw\_\-packet4\_\-0\_\-1\_\-leave\_\-multicast\_\-group@{raw\_\-packet4\_\-0\_\-1\_\-leave\_\-multicast\_\-group}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-packet4\_\-0\_\-1\_\-leave\_\-multicast\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-packet4\_\-0\_\-1\_\-leave\_\-multicast\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-instance\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol, }
\item[{const {\bf IPv4} \&}]{group\_\-address}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a3214d1433d9e273dbb061f2033b6b1e3}


Leave an \hyperlink{classIPv4}{IPv4} multicast group. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} receiver's XRL target instance name.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should not be accepted.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should not be accepted.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.\\
\hline
{\em group\_\-address} & \hyperlink{protocolthe-p}{the} multicast group address to leave. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a5351dd8f0acec6ef295d180845c4a754}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ae250ef6ff8461c7a1562547a7cec9383}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-packet4\_\-0\_\-1\_\-register\_\-receiver@{raw\_\-packet4\_\-0\_\-1\_\-register\_\-receiver}}
\index{raw\_\-packet4\_\-0\_\-1\_\-register\_\-receiver@{raw\_\-packet4\_\-0\_\-1\_\-register\_\-receiver}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-packet4\_\-0\_\-1\_\-register\_\-receiver}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-packet4\_\-0\_\-1\_\-register\_\-receiver (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-instance\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol, }
\item[{const bool \&}]{enable\_\-multicast\_\-loopback}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ae250ef6ff8461c7a1562547a7cec9383}


Register to receive \hyperlink{classIPv4}{IPv4} packets. 

The receiver is expected to support raw\_\-packet4\_\-client/0.1 interface.


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} receiver's XRL target instance name.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should be accepted.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should be accepted.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number that \hyperlink{protocolthe-p}{the} receiver is interested in. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols.\\
\hline
{\em enable\_\-multicast\_\-loopback} & if true then enable delivering of multicast datagrams back to this host (assuming \hyperlink{protocolthe-p}{the} host is a member of \hyperlink{protocolthe-p}{the} same multicast group. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a2519e704122b6373eaf0732aeb8ebb54}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a8fee091e2083e4a2d357739c3bf76833}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-packet4\_\-0\_\-1\_\-send@{raw\_\-packet4\_\-0\_\-1\_\-send}}
\index{raw\_\-packet4\_\-0\_\-1\_\-send@{raw\_\-packet4\_\-0\_\-1\_\-send}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-packet4\_\-0\_\-1\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-packet4\_\-0\_\-1\_\-send (
\begin{DoxyParamCaption}
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const {\bf IPv4} \&}]{src\_\-address, }
\item[{const {\bf IPv4} \&}]{dst\_\-address, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol, }
\item[{const int32\_\-t \&}]{ip\_\-ttl, }
\item[{const int32\_\-t \&}]{ip\_\-tos, }
\item[{const bool \&}]{ip\_\-router\_\-alert, }
\item[{const bool \&}]{ip\_\-internet\_\-control, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{payload}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a8fee091e2083e4a2d357739c3bf76833}


\hyperlink{structSend}{Send} an \hyperlink{classIPv4}{IPv4} packet on a raw socket. 


\begin{DoxyParams}{Parameters}
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface to send \hyperlink{protocolthe-p}{the} packet on. It is essential for multicast. In \hyperlink{protocolthe-p}{the} unicast case this field may be empty.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif to send \hyperlink{protocolthe-p}{the} packet on. It is essential for multicast. In \hyperlink{protocolthe-p}{the} unicast case this field may be empty.\\
\hline
{\em src\_\-address} & \hyperlink{protocolthe-p}{the} IP source address.\\
\hline
{\em dst\_\-address} & \hyperlink{protocolthe-p}{the} IP destination address.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP protocol number. It must be between 1 and 255.\\
\hline
{\em ip\_\-ttl} & \hyperlink{protocolthe-p}{the} IP TTL (hop-\/limit). If it has a negative value, \hyperlink{protocolthe-p}{the} TTL will be set internally before transmission.\\
\hline
{\em ip\_\-tos} & \hyperlink{protocolthe-p}{the} Type Of Service (Diffserv/ECN bits for \hyperlink{classIPv4}{IPv4}). If it has a negative value, \hyperlink{protocolthe-p}{the} TOS will be set internally before transmission.\\
\hline
{\em ip\_\-router\_\-alert} & if true, then add \hyperlink{protocolthe-p}{the} IP Router Alert option to \hyperlink{protocolthe-p}{the} IP packet.\\
\hline
{\em ip\_\-internet\_\-control} & if true, then this is IP control traffic.\\
\hline
{\em payload} & \hyperlink{protocolthe-p}{the} payload, everything after \hyperlink{protocolthe-p}{the} IP header and options. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_aee3c7243f4ad502851f21d85b6046135}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ada841a164127a75f33a51028d33b279a}{
\index{XrlFeaTarget@{XrlFeaTarget}!raw\_\-packet4\_\-0\_\-1\_\-unregister\_\-receiver@{raw\_\-packet4\_\-0\_\-1\_\-unregister\_\-receiver}}
\index{raw\_\-packet4\_\-0\_\-1\_\-unregister\_\-receiver@{raw\_\-packet4\_\-0\_\-1\_\-unregister\_\-receiver}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{raw\_\-packet4\_\-0\_\-1\_\-unregister\_\-receiver}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::raw\_\-packet4\_\-0\_\-1\_\-unregister\_\-receiver (
\begin{DoxyParamCaption}
\item[{const string \&}]{xrl\_\-target\_\-instance\_\-name, }
\item[{const string \&}]{if\_\-name, }
\item[{const string \&}]{vif\_\-name, }
\item[{const uint32\_\-t \&}]{ip\_\-protocol}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ada841a164127a75f33a51028d33b279a}


Unregister to receive \hyperlink{classIPv4}{IPv4} packets. 


\begin{DoxyParams}{Parameters}
{\em xrl\_\-target\_\-instance\_\-name} & \hyperlink{protocolthe-p}{the} receiver's XRL target instance name.\\
\hline
{\em if\_\-name} & \hyperlink{protocolthe-p}{the} interface through which packets should not be accepted.\\
\hline
{\em vif\_\-name} & \hyperlink{protocolthe-p}{the} vif through which packets should not be accepted.\\
\hline
{\em ip\_\-protocol} & \hyperlink{protocolthe-p}{the} IP \hyperlink{classProtocol}{Protocol} number that \hyperlink{protocolthe-p}{the} receiver is not interested in anymore. It must be between 0 and 255. A protocol number of 0 is used to specify all protocols. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a2da38c08c664b82e7cfc85710ace76df}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a38a5ce6d51d17cdc98217239ecc7dd00}{
\index{XrlFeaTarget@{XrlFeaTarget}!redist\_\-transaction4\_\-0\_\-1\_\-abort\_\-transaction@{redist\_\-transaction4\_\-0\_\-1\_\-abort\_\-transaction}}
\index{redist\_\-transaction4\_\-0\_\-1\_\-abort\_\-transaction@{redist\_\-transaction4\_\-0\_\-1\_\-abort\_\-transaction}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{redist\_\-transaction4\_\-0\_\-1\_\-abort\_\-transaction}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::redist\_\-transaction4\_\-0\_\-1\_\-abort\_\-transaction (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a38a5ce6d51d17cdc98217239ecc7dd00}


Abort transaction. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID of this transaction. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a7cb05cd4a9032aaf0aeeacad62566d6a}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ac20ee61c8ea37cc9a99912ca8a661ee3}{
\index{XrlFeaTarget@{XrlFeaTarget}!redist\_\-transaction4\_\-0\_\-1\_\-add\_\-route@{redist\_\-transaction4\_\-0\_\-1\_\-add\_\-route}}
\index{redist\_\-transaction4\_\-0\_\-1\_\-add\_\-route@{redist\_\-transaction4\_\-0\_\-1\_\-add\_\-route}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{redist\_\-transaction4\_\-0\_\-1\_\-add\_\-route}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::redist\_\-transaction4\_\-0\_\-1\_\-add\_\-route (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid, }
\item[{const {\bf IPv4Net} \&}]{dst, }
\item[{const {\bf IPv4} \&}]{nexthop, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{const uint32\_\-t \&}]{metric, }
\item[{const uint32\_\-t \&}]{admin\_\-distance, }
\item[{const string \&}]{cookie, }
\item[{const string \&}]{protocol\_\-origin}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ac20ee61c8ea37cc9a99912ca8a661ee3}


Add/delete a routing entry. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID of this transaction.\\
\hline
{\em dst} & destination network.\\
\hline
{\em nexthop} & nexthop router address.\\
\hline
{\em ifname} & interface name associated with nexthop.\\
\hline
{\em vifname} & virtual interface name with nexthop.\\
\hline
{\em metric} & origin routing protocol metric for route.\\
\hline
{\em admin\_\-distance} & administrative distance of origin routing protocol.\\
\hline
{\em cookie} & value set by \hyperlink{protocolthe-p}{the} requestor to identify redistribution source. Typical value is \hyperlink{protocolthe-p}{the} originating protocol name.\\
\hline
{\em protocol\_\-origin} & \hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} protocol that originated this routing entry. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a8957d3c9e6f77d3c806d456ae21f57d0}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a30e4b811a06ae718dcb1485edc83b42d}{
\index{XrlFeaTarget@{XrlFeaTarget}!redist\_\-transaction4\_\-0\_\-1\_\-commit\_\-transaction@{redist\_\-transaction4\_\-0\_\-1\_\-commit\_\-transaction}}
\index{redist\_\-transaction4\_\-0\_\-1\_\-commit\_\-transaction@{redist\_\-transaction4\_\-0\_\-1\_\-commit\_\-transaction}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{redist\_\-transaction4\_\-0\_\-1\_\-commit\_\-transaction}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::redist\_\-transaction4\_\-0\_\-1\_\-commit\_\-transaction (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a30e4b811a06ae718dcb1485edc83b42d}


Commit transaction. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID of this transaction. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a8e824a08e30bb85272a0feb303e1af3b}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a645fc00174f41071ad140656949076e8}{
\index{XrlFeaTarget@{XrlFeaTarget}!redist\_\-transaction4\_\-0\_\-1\_\-delete\_\-all\_\-routes@{redist\_\-transaction4\_\-0\_\-1\_\-delete\_\-all\_\-routes}}
\index{redist\_\-transaction4\_\-0\_\-1\_\-delete\_\-all\_\-routes@{redist\_\-transaction4\_\-0\_\-1\_\-delete\_\-all\_\-routes}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{redist\_\-transaction4\_\-0\_\-1\_\-delete\_\-all\_\-routes}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::redist\_\-transaction4\_\-0\_\-1\_\-delete\_\-all\_\-routes (
\begin{DoxyParamCaption}
\item[{const uint32\_\-t \&}]{tid, }
\item[{const string \&}]{cookie}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a645fc00174f41071ad140656949076e8}


Delete all routing entries. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID of this transaction.\\
\hline
{\em cookie} & value set by \hyperlink{protocolthe-p}{the} requestor to identify redistribution source. Typical value is \hyperlink{protocolthe-p}{the} originating protocol name. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_aa53d8cc8499a9126e9f0044d4c23ad24}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ab68c1983e318d6e52b5519c7731a6fb4}{
\index{XrlFeaTarget@{XrlFeaTarget}!redist\_\-transaction4\_\-0\_\-1\_\-start\_\-transaction@{redist\_\-transaction4\_\-0\_\-1\_\-start\_\-transaction}}
\index{redist\_\-transaction4\_\-0\_\-1\_\-start\_\-transaction@{redist\_\-transaction4\_\-0\_\-1\_\-start\_\-transaction}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{redist\_\-transaction4\_\-0\_\-1\_\-start\_\-transaction}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::redist\_\-transaction4\_\-0\_\-1\_\-start\_\-transaction (
\begin{DoxyParamCaption}
\item[{uint32\_\-t \&}]{tid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ab68c1983e318d6e52b5519c7731a6fb4}


Start transaction. 


\begin{DoxyParams}{Parameters}
{\em tid} & \hyperlink{protocolthe-p}{the} transaction ID to use for this transaction. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a3f7a2405f05001d5422347c2f457f25c}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a4c510945987a77fee9edb7daf4b7d992}{
\index{XrlFeaTarget@{XrlFeaTarget}!send\_\-gratuitous\_\-arps@{send\_\-gratuitous\_\-arps}}
\index{send\_\-gratuitous\_\-arps@{send\_\-gratuitous\_\-arps}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{send\_\-gratuitous\_\-arps}]{\setlength{\rightskip}{0pt plus 5cm}int XrlFeaTarget::send\_\-gratuitous\_\-arps (
\begin{DoxyParamCaption}
\item[{const string \&}]{ifname, }
\item[{const {\bf Mac} \&}]{mac, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlFeaTarget_a4c510945987a77fee9edb7daf4b7d992}


\hyperlink{structSend}{Send} gratuitous ARP packets for all IP addresses on on an interface. 


\begin{DoxyParams}{Parameters}
{\em ifname} & \hyperlink{protocolthe-p}{the} interface name. \\
\hline
{\em mac} & \hyperlink{protocolthe-p}{the} MAC address that is to be updated. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classXrlFeaTarget_a76f2a3a0e7c86b59319414bb8458f761}{
\index{XrlFeaTarget@{XrlFeaTarget}!set\_\-mac@{set\_\-mac}}
\index{set\_\-mac@{set\_\-mac}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{set\_\-mac}]{\setlength{\rightskip}{0pt plus 5cm}int XrlFeaTarget::set\_\-mac (
\begin{DoxyParamCaption}
\item[{const string \&}]{ifname, }
\item[{const {\bf Mac} \&}]{mac, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classXrlFeaTarget_a76f2a3a0e7c86b59319414bb8458f761}


Set \hyperlink{protocolthe-p}{the} MAC address on an interface. 


\begin{DoxyParams}{Parameters}
{\em ifname} & \hyperlink{protocolthe-p}{the} interface name. \\
\hline
{\em mac} & \hyperlink{protocolthe-p}{the} address to set. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classXrlFeaTarget_abe65502c80083ca06b8f9951e421b71e}{
\index{XrlFeaTarget@{XrlFeaTarget}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}int XrlFeaTarget::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classXrlFeaTarget_abe65502c80083ca06b8f9951e421b71e}


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

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\end{DoxyReturn}
\hypertarget{classXrlFeaTarget_a024036e557c1e77ed330845d090ff581}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-bind@{socket4\_\-0\_\-1\_\-bind}}
\index{socket4\_\-0\_\-1\_\-bind@{socket4\_\-0\_\-1\_\-bind}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-bind}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-bind (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const {\bf IPv4} \&}]{local\_\-addr, }
\item[{const uint32\_\-t \&}]{local\_\-port}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a024036e557c1e77ed330845d090ff581}


Bind a socket. 


\begin{DoxyParams}{Parameters}
{\em sockid} & \hyperlink{protocolthe-p}{the} socket ID of \hyperlink{protocolthe-p}{the} socket to bind.\\
\hline
{\em local\_\-addr} & \hyperlink{protocolthe-p}{the} interface address to bind socket to.\\
\hline
{\em local\_\-port} & \hyperlink{protocolthe-p}{the} port to bind socket to. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a0666f974fc04458596f8f342cbf82b1b}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ac25ef26866c7e42ce5f803cda1049fb7}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-close@{socket4\_\-0\_\-1\_\-close}}
\index{socket4\_\-0\_\-1\_\-close@{socket4\_\-0\_\-1\_\-close}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-close}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-close (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ac25ef26866c7e42ce5f803cda1049fb7}


Close socket. 


\begin{DoxyParams}{Parameters}
{\em sockid} & unique socket ID of socket to be closed. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a0ca1f1b57cd9d2571e3a6bada214b90c}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a83a8461165e1e6992c5cae67b8f5f2f8}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-send@{socket4\_\-0\_\-1\_\-send}}
\index{socket4\_\-0\_\-1\_\-send@{socket4\_\-0\_\-1\_\-send}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-send (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{data}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a83a8461165e1e6992c5cae67b8f5f2f8}


\hyperlink{structSend}{Send} data on socket. 


\begin{DoxyParams}{Parameters}
{\em sockid} & unique socket ID.\\
\hline
{\em data} & block of data to be sent. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a4e3d0096702c67105a0bba8d5535a0ba}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a3a4a7c79ae2e5823148f000a3430c087}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-send\_\-from\_\-multicast\_\-if@{socket4\_\-0\_\-1\_\-send\_\-from\_\-multicast\_\-if}}
\index{socket4\_\-0\_\-1\_\-send\_\-from\_\-multicast\_\-if@{socket4\_\-0\_\-1\_\-send\_\-from\_\-multicast\_\-if}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-send\_\-from\_\-multicast\_\-if}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-send\_\-from\_\-multicast\_\-if (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const {\bf IPv4} \&}]{group\_\-addr, }
\item[{const uint32\_\-t \&}]{group\_\-port, }
\item[{const {\bf IPv4} \&}]{ifaddr, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{data}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a3a4a7c79ae2e5823148f000a3430c087}


\hyperlink{structSend}{Send} data on socket to a given multicast group from a given interface. 


\begin{DoxyParams}{Parameters}
{\em sockid} & unique socket ID.\\
\hline
{\em group\_\-addr} & destination address for data.\\
\hline
{\em group\_\-port} & destination port for data.\\
\hline
{\em ifaddr} & interface address \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a5523b86f45330192abab076f91aaaeee}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a87aa33cd72e66f2bc564e5df39e80103}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-send\_\-to@{socket4\_\-0\_\-1\_\-send\_\-to}}
\index{socket4\_\-0\_\-1\_\-send\_\-to@{socket4\_\-0\_\-1\_\-send\_\-to}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-send\_\-to}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-send\_\-to (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const {\bf IPv4} \&}]{remote\_\-addr, }
\item[{const uint32\_\-t \&}]{remote\_\-port, }
\item[{const vector$<$ uint8\_\-t $>$ \&}]{data}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a87aa33cd72e66f2bc564e5df39e80103}


\hyperlink{structSend}{Send} data on socket to a given destination. 

The packet is not routed as \hyperlink{protocolthe-p}{the} forwarding engine sending \hyperlink{protocolthe-p}{the} packet may not have access to \hyperlink{protocolthe-p}{the} full routing table.


\begin{DoxyParams}{Parameters}
{\em sockid} & unique socket ID.\\
\hline
{\em remote\_\-addr} & destination address for data.\\
\hline
{\em remote\_\-port} & destination port for data.\\
\hline
{\em data} & block of data to be sent. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a1360faf4c8e1521b4ebe3b14045da47b}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_aebb27036310c645c1fabde02becbb236}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-set\_\-socket\_\-option@{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option}}
\index{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option@{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-set\_\-socket\_\-option (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const string \&}]{optname, }
\item[{const uint32\_\-t \&}]{optval}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_aebb27036310c645c1fabde02becbb236}


Set a named socket option with an integer value. 


\begin{DoxyParams}{Parameters}
{\em sockid} & unique socket ID.\\
\hline
{\em optname} & name of option to be set. Valid values are: \char`\"{}onesbcast\char`\"{} \char`\"{}receive\_\-broadcast\char`\"{} \char`\"{}reuseport\char`\"{} \char`\"{}send\_\-broadcast\char`\"{} \char`\"{}tos\char`\"{} \char`\"{}ttl\char`\"{} \char`\"{}multicast\_\-loopback\char`\"{} \char`\"{}multicast\_\-ttl\char`\"{}\\
\hline
{\em optval} & value of option to be set. If value is logically boolean then zero represents false and any non-\/zero value true. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a8289659c7ceb7a9a6a7be2117756ef44}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a0d23b4bb69f86f3fd660edb72bf408da}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-set\_\-socket\_\-option\_\-txt@{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option\_\-txt}}
\index{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option\_\-txt@{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option\_\-txt}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-set\_\-socket\_\-option\_\-txt}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-set\_\-socket\_\-option\_\-txt (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const string \&}]{optname, }
\item[{const string \&}]{optval}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a0d23b4bb69f86f3fd660edb72bf408da}


Set a named socket option with a text value. 

XXX: The \char`\"{}bindtodevice\char`\"{} option exists to workaround an architectural issue in \hyperlink{protocolthe-p}{the} Linux Ipv4 stack. It SHOULD NOT be used for new code.


\begin{DoxyParams}{Parameters}
{\em sockid} & unique socket ID.\\
\hline
{\em optname} & name of option to be set. Valid values are: \char`\"{}bindtodevice\char`\"{}\\
\hline
{\em optval} & value of option to be set. If value is logically boolean then zero represents false and any non-\/zero value true. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a5b12c379e5624b45051b71246a596833}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a0da15e3058a0b007772649918e978541}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-tcp\_\-listen@{socket4\_\-0\_\-1\_\-tcp\_\-listen}}
\index{socket4\_\-0\_\-1\_\-tcp\_\-listen@{socket4\_\-0\_\-1\_\-tcp\_\-listen}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-tcp\_\-listen}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-tcp\_\-listen (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const uint32\_\-t \&}]{backlog}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a0da15e3058a0b007772649918e978541}


Listen for inbound connections on socket. 

When a connection request received \hyperlink{protocolthe-p}{the} socket creator will receive notification through socket4\_\-user/0.1/connect\_\-event.


\begin{DoxyParams}{Parameters}
{\em sockid} & \hyperlink{protocolthe-p}{the} unique socket ID of \hyperlink{protocolthe-p}{the} socket to perform listen.\\
\hline
{\em backlog} & \hyperlink{protocolthe-p}{the} maximum number of pending connections. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a47282c8b38ac3a66f0db89c24d294969}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a200181b22f95aecd68165d9045cd1f00}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-tcp\_\-open@{socket4\_\-0\_\-1\_\-tcp\_\-open}}
\index{socket4\_\-0\_\-1\_\-tcp\_\-open@{socket4\_\-0\_\-1\_\-tcp\_\-open}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-tcp\_\-open}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-tcp\_\-open (
\begin{DoxyParamCaption}
\item[{const string \&}]{creator, }
\item[{string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a200181b22f95aecd68165d9045cd1f00}


Open a TCP socket. 


\begin{DoxyParams}{Parameters}
{\em creator} & \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} Target instance name of \hyperlink{protocolthe-p}{the} socket creator. The named target must implement socket4\_\-user/0.1.\\
\hline
{\em sockid} & return parameter that contains unique socket ID when socket instantiation is successful. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a75bd67d96a356e4087687203c47b4a61}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_afdd2ec835918e9134cd3fab0b5632b4e}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-tcp\_\-open\_\-and\_\-bind@{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-and\_\-bind}}
\index{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-and\_\-bind@{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-and\_\-bind}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-and\_\-bind}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-tcp\_\-open\_\-and\_\-bind (
\begin{DoxyParamCaption}
\item[{const string \&}]{creator, }
\item[{const {\bf IPv4} \&}]{local\_\-addr, }
\item[{const uint32\_\-t \&}]{local\_\-port, }
\item[{string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_afdd2ec835918e9134cd3fab0b5632b4e}


Create a bound TCP socket. 


\begin{DoxyParams}{Parameters}
{\em creator} & \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} Target instance name of \hyperlink{protocolthe-p}{the} socket creator. The named target must implement socket4\_\-user/0.1.\\
\hline
{\em local\_\-addr} & \hyperlink{protocolthe-p}{the} interface address to bind socket to.\\
\hline
{\em local\_\-port} & \hyperlink{protocolthe-p}{the} port to bind socket to.\\
\hline
{\em sockid} & return parameter that contains unique socket ID when socket instantiation is successful. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a239ab5a8fb8bf306a0b466cb017002c2}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a3bc1926fa0ca27d3722fac3f04d52772}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-tcp\_\-open\_\-bind\_\-connect@{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-bind\_\-connect}}
\index{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-bind\_\-connect@{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-bind\_\-connect}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-tcp\_\-open\_\-bind\_\-connect}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-tcp\_\-open\_\-bind\_\-connect (
\begin{DoxyParamCaption}
\item[{const string \&}]{creator, }
\item[{const {\bf IPv4} \&}]{local\_\-addr, }
\item[{const uint32\_\-t \&}]{local\_\-port, }
\item[{const {\bf IPv4} \&}]{remote\_\-addr, }
\item[{const uint32\_\-t \&}]{remote\_\-port, }
\item[{string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a3bc1926fa0ca27d3722fac3f04d52772}


Create a bound and connected TCP socket. 


\begin{DoxyParams}{Parameters}
{\em creator} & \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} Target instance name of \hyperlink{protocolthe-p}{the} socket creator. The named target must implement socket4\_\-user/0.1.\\
\hline
{\em local\_\-addr} & \hyperlink{protocolthe-p}{the} interface address to bind socket to.\\
\hline
{\em local\_\-port} & \hyperlink{protocolthe-p}{the} port to bind socket to.\\
\hline
{\em remote\_\-addr} & \hyperlink{protocolthe-p}{the} address to connect to.\\
\hline
{\em remote\_\-port} & \hyperlink{protocolthe-p}{the} remote port to connect to.\\
\hline
{\em sockid} & return parameter that contains unique socket ID when socket instantiation is successful. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a298fb1f79c07dabf5832277bf18f1bc9}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_ab4b1f88fb3545006a9fb8e88ef2cc2fe}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-udp\_\-enable\_\-recv@{socket4\_\-0\_\-1\_\-udp\_\-enable\_\-recv}}
\index{socket4\_\-0\_\-1\_\-udp\_\-enable\_\-recv@{socket4\_\-0\_\-1\_\-udp\_\-enable\_\-recv}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-udp\_\-enable\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-udp\_\-enable\_\-recv (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_ab4b1f88fb3545006a9fb8e88ef2cc2fe}


Enable a UDP socket for datagram reception. 

If a UDP socket has been created without using \hyperlink{protocolthe-p}{the} usual convenience XRLs, it is necessary to hook up its FEA internal input path by calling this XRL. It is similar in intent to tcp\_\-listen, but named differently as it never uses \hyperlink{protocolthe-p}{the} listen() socket API.


\begin{DoxyParams}{Parameters}
{\em sockid} & \hyperlink{protocolthe-p}{the} unique socket ID of \hyperlink{protocolthe-p}{the} socket to enable for datagram reception. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_ab2ec436af2e0cccf9e204b0c187dd014}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_adfc5270eb2df38c9878f1700dcc7f182}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-udp\_\-join\_\-group@{socket4\_\-0\_\-1\_\-udp\_\-join\_\-group}}
\index{socket4\_\-0\_\-1\_\-udp\_\-join\_\-group@{socket4\_\-0\_\-1\_\-udp\_\-join\_\-group}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-udp\_\-join\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-udp\_\-join\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const {\bf IPv4} \&}]{mcast\_\-addr, }
\item[{const {\bf IPv4} \&}]{join\_\-if\_\-addr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_adfc5270eb2df38c9878f1700dcc7f182}


Join multicast group on already bound socket. 


\begin{DoxyParams}{Parameters}
{\em sockid} & unique socket ID.\\
\hline
{\em mcast\_\-addr} & group to join.\\
\hline
{\em join\_\-if\_\-addr} & interface address to perform join on. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a3a9a4a8be571820d053ab1a305c7c8be}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a29a3d5161cf14b7e79b181c9a2037e98}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-udp\_\-leave\_\-group@{socket4\_\-0\_\-1\_\-udp\_\-leave\_\-group}}
\index{socket4\_\-0\_\-1\_\-udp\_\-leave\_\-group@{socket4\_\-0\_\-1\_\-udp\_\-leave\_\-group}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-udp\_\-leave\_\-group}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-udp\_\-leave\_\-group (
\begin{DoxyParamCaption}
\item[{const string \&}]{sockid, }
\item[{const {\bf IPv4} \&}]{mcast\_\-addr, }
\item[{const {\bf IPv4} \&}]{leave\_\-if\_\-addr}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a29a3d5161cf14b7e79b181c9a2037e98}


Leave multicast group on already bound socket. 


\begin{DoxyParams}{Parameters}
{\em sockid} & unique socket ID.\\
\hline
{\em mcast\_\-addr} & group to leave.\\
\hline
{\em leave\_\-if\_\-addr} & interface address to perform leave on. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a18e6fa4fa6d8e0bcb80b9a5ef335e367}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a9ef0384419accc880c54d930bb05ba36}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-udp\_\-open@{socket4\_\-0\_\-1\_\-udp\_\-open}}
\index{socket4\_\-0\_\-1\_\-udp\_\-open@{socket4\_\-0\_\-1\_\-udp\_\-open}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-udp\_\-open}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-udp\_\-open (
\begin{DoxyParamCaption}
\item[{const string \&}]{creator, }
\item[{string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a9ef0384419accc880c54d930bb05ba36}


Open an UDP socket. 


\begin{DoxyParams}{Parameters}
{\em creator} & \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} Target instance name of \hyperlink{protocolthe-p}{the} socket creator. The named target must implement socket4\_\-user/0.1.\\
\hline
{\em sockid} & return parameter that contains unique socket ID when socket instantiation is successful. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a917eb4dbc0cc7a0deb217be2444db6ab}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a66ff833617329d4e09bef9463ac11d01}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-udp\_\-open\_\-and\_\-bind@{socket4\_\-0\_\-1\_\-udp\_\-open\_\-and\_\-bind}}
\index{socket4\_\-0\_\-1\_\-udp\_\-open\_\-and\_\-bind@{socket4\_\-0\_\-1\_\-udp\_\-open\_\-and\_\-bind}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-udp\_\-open\_\-and\_\-bind}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-udp\_\-open\_\-and\_\-bind (
\begin{DoxyParamCaption}
\item[{const string \&}]{creator, }
\item[{const {\bf IPv4} \&}]{local\_\-addr, }
\item[{const uint32\_\-t \&}]{local\_\-port, }
\item[{const string \&}]{local\_\-dev, }
\item[{const uint32\_\-t \&}]{reuse, }
\item[{string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a66ff833617329d4e09bef9463ac11d01}


Create a bound UDP socket. 


\begin{DoxyParams}{Parameters}
{\em creator} & \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} Target instance name of \hyperlink{protocolthe-p}{the} socket creator. The named target must implement socket4\_\-user/0.1.\\
\hline
{\em local\_\-addr} & \hyperlink{protocolthe-p}{the} interface address to bind socket to.\\
\hline
{\em local\_\-port} & \hyperlink{protocolthe-p}{the} port to bind socket to.\\
\hline
{\em sockid} & return parameter that contains unique socket ID when socket instantiation is successful. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a3e68ea187de95a5a962551d4738ee205}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a3f905ae45cd7046bb659e17060d28358}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-broadcast@{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-broadcast}}
\index{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-broadcast@{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-broadcast}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-broadcast}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-broadcast (
\begin{DoxyParamCaption}
\item[{const string \&}]{creator, }
\item[{const string \&}]{ifname, }
\item[{const string \&}]{vifname, }
\item[{const uint32\_\-t \&}]{local\_\-port, }
\item[{const uint32\_\-t \&}]{remote\_\-port, }
\item[{const bool \&}]{reuse, }
\item[{const bool \&}]{limited, }
\item[{const bool \&}]{connected, }
\item[{string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a3f905ae45cd7046bb659e17060d28358}


Create a bound and connected UDP broadcast socket. 

This socket may be used for sending and receiving \hyperlink{classIPv4}{IPv4} broadcasts on a named if/vif. The TTL is always set to 1 on creation. The creator must specify if this socket is to be used for limited broadcasts (255.255.255.255) as this is a special case on many platforms.


\begin{DoxyParams}{Parameters}
{\em creator} & \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} Target instance name of \hyperlink{protocolthe-p}{the} socket creator. The named target must implement socket4\_\-user/0.1.\\
\hline
{\em ifname} & \hyperlink{protocolthe-p}{the} interface name to bind socket to.\\
\hline
{\em vifname} & \hyperlink{protocolthe-p}{the} vif to bind socket to.\\
\hline
{\em local\_\-port} & \hyperlink{protocolthe-p}{the} port to bind socket to.\\
\hline
{\em remote\_\-port} & \hyperlink{protocolthe-p}{the} remote port to connect to.\\
\hline
{\em reuse} & allow other sockets to bind to same port.\\
\hline
{\em limited} & set \hyperlink{protocolthe-p}{the} socket up for transmission to \hyperlink{protocolthe-p}{the} limited broadcast address 255.255.255.255.\\
\hline
{\em connected} & connect \hyperlink{protocolthe-p}{the} socket for use with send() not sendto().\\
\hline
{\em sockid} & return parameter that contains unique socket ID when socket instantiation is successful. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a7402950f021c1d26b4159c63e7efa334}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a3ce7a821cc219fcbb917f32778cfbdf6}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-connect@{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-connect}}
\index{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-connect@{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-connect}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-connect}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-connect (
\begin{DoxyParamCaption}
\item[{const string \&}]{creator, }
\item[{const {\bf IPv4} \&}]{local\_\-addr, }
\item[{const uint32\_\-t \&}]{local\_\-port, }
\item[{const {\bf IPv4} \&}]{remote\_\-addr, }
\item[{const uint32\_\-t \&}]{remote\_\-port, }
\item[{string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a3ce7a821cc219fcbb917f32778cfbdf6}


Create a bound and connected UDP socket. 


\begin{DoxyParams}{Parameters}
{\em creator} & \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} Target instance name of \hyperlink{protocolthe-p}{the} socket creator. The named target must implement socket4\_\-user/0.1.\\
\hline
{\em local\_\-addr} & \hyperlink{protocolthe-p}{the} interface address to bind socket to.\\
\hline
{\em local\_\-port} & \hyperlink{protocolthe-p}{the} port to bind socket to.\\
\hline
{\em remote\_\-addr} & \hyperlink{protocolthe-p}{the} address to connect to.\\
\hline
{\em remote\_\-port} & \hyperlink{protocolthe-p}{the} remote port to connect to.\\
\hline
{\em sockid} & return parameter that contains unique socket ID when socket instantiation is successful. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_a927f86024376678bcc03cbeb832fe4f4}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_a10a220cc712c36299038e4cc406b99a0}{
\index{XrlFeaTarget@{XrlFeaTarget}!socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-join@{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-join}}
\index{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-join@{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-join}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-join}]{\setlength{\rightskip}{0pt plus 5cm}{\bf XrlCmdError} XrlFeaTarget::socket4\_\-0\_\-1\_\-udp\_\-open\_\-bind\_\-join (
\begin{DoxyParamCaption}
\item[{const string \&}]{creator, }
\item[{const {\bf IPv4} \&}]{local\_\-addr, }
\item[{const uint32\_\-t \&}]{local\_\-port, }
\item[{const {\bf IPv4} \&}]{mcast\_\-addr, }
\item[{const uint32\_\-t \&}]{ttl, }
\item[{const bool \&}]{reuse, }
\item[{string \&}]{sockid}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classXrlFeaTarget_a10a220cc712c36299038e4cc406b99a0}


Create a bound UDP multicast socket. 


\begin{DoxyParams}{Parameters}
{\em creator} & \hyperlink{protocolthe-p}{the} \hyperlink{classXrl}{Xrl} Target instance name of \hyperlink{protocolthe-p}{the} socket creator. The named target must implement socket4\_\-user/0.1.\\
\hline
{\em local\_\-addr} & \hyperlink{protocolthe-p}{the} interface address to bind socket to.\\
\hline
{\em local\_\-port} & \hyperlink{protocolthe-p}{the} port to bind socket to.\\
\hline
{\em mcast\_\-addr} & \hyperlink{protocolthe-p}{the} multicast group address to join.\\
\hline
{\em ttl} & \hyperlink{protocolthe-p}{the} TTL to use for this multicast socket.\\
\hline
{\em reuse} & allow other sockets to bind to same multicast group.\\
\hline
{\em sockid} & return parameter that contains unique socket ID when socket instantiation is successful. \\
\hline
\end{DoxyParams}


Implements \hyperlink{structXrlFeaTargetBase_ab2f4948249b37db18bf747b33fb75f4f}{XrlFeaTargetBase}.

\hypertarget{classXrlFeaTarget_af5608127f3961eede72116055f16f7f7}{
\index{XrlFeaTarget@{XrlFeaTarget}!startup@{startup}}
\index{startup@{startup}!XrlFeaTarget@{XrlFeaTarget}}
\subsubsection[{startup}]{\setlength{\rightskip}{0pt plus 5cm}int XrlFeaTarget::startup (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classXrlFeaTarget_af5608127f3961eede72116055f16f7f7}


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

\begin{DoxyReturn}{Returns}
XORP\_\-OK on success, otherwise XORP\_\-ERROR. 
\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\_\-fea\_\-target.hh\item 
/home/greearb/git/xorp.ct.github/xorp/fea/xrl\_\-fea\_\-target.cc\end{DoxyCompactItemize}
