\doxysection{RTR socket}
\hypertarget{group__mod__rtr__h}{}\label{group__mod__rtr__h}\index{RTR socket@{RTR socket}}


An RTR socket implements the RPKI-\/\+RTR protocol scheme.  


\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}}
\begin{DoxyCompactList}\small\item\em A RTR socket. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__h_ga71ec6263b63ee7fa9d1758b43a67dad8}{rtr\+\_\+connection\+\_\+state\+\_\+fp}}) (const struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}\mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}}, const enum \mbox{\hyperlink{group__mod__rtr__h_ga62bcc901355906dd300e2b62c9278cbc}{rtr\+\_\+socket\+\_\+state}} state, void \texorpdfstring{$\ast$}{*}connection\+\_\+state\+\_\+fp\+\_\+param\+\_\+config, void \texorpdfstring{$\ast$}{*}connection\+\_\+state\+\_\+fp\+\_\+param\+\_\+group)
\begin{DoxyCompactList}\small\item\em A function pointer that is called if the state of the rtr socket has changed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__mod__rtr__h_gaa67c38ea4f2832d0da2bb3ec40e691d8}{rtr\+\_\+rtvals}} \{ \mbox{\hyperlink{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8a12b247f6dd6f92d7957f237d5d3e21bc}{RTR\+\_\+\+SUCCESS}} = 0
, \mbox{\hyperlink{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8a5650aecaafb21d145060a2885e395eb1}{RTR\+\_\+\+ERROR}} = -\/1
, \mbox{\hyperlink{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8abd30dc1e6e32b5b6f0014cf8c83946d6}{RTR\+\_\+\+INVALID\+\_\+\+PARAM}} = -\/2
 \}
\item 
enum \mbox{\hyperlink{group__mod__rtr__h_ga31b1bb66cb95ac21f7108440e7506b38}{rtr\+\_\+interval\+\_\+mode}} \{ \mbox{\hyperlink{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38ab2d73bf198395e845d6ba207e264f6eb}{RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+IGNORE\+\_\+\+ANY}}
, \mbox{\hyperlink{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38abef109b4282a231bdbeec27117fa2ce3}{RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+ACCEPT\+\_\+\+ANY}}
, \mbox{\hyperlink{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38a00460bd1c4f2db207a0b1ebefc354a50}{RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+DEFAULT\+\_\+\+MIN\+\_\+\+MAX}}
, \mbox{\hyperlink{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38ab876811b811add0171f8fb637236f070}{RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+IGNORE\+\_\+\+ON\+\_\+\+FAILURE}}
 \}
\begin{DoxyCompactList}\small\item\em These modes let the user configure how received intervals should be handled. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{group__mod__rtr__h_ga62bcc901355906dd300e2b62c9278cbc}{rtr\+\_\+socket\+\_\+state}} \{ \newline
\mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca5a8bbe8c0e848043d5707a9d70004c5a}{RTR\+\_\+\+CONNECTING}}
, \mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcad884689742a432e75a457e716e77b086}{RTR\+\_\+\+ESTABLISHED}}
, \mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca036ce764a49435c826d21a5df1be8e7e}{RTR\+\_\+\+RESET}}
, \mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca3367cb5bc6343cfe13c6dd276235b2ea}{RTR\+\_\+\+SYNC}}
, \newline
\mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca88fc4369bd2cd94d68545a0822afaf09}{RTR\+\_\+\+FAST\+\_\+\+RECONNECT}}
, \mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcaa5b13b46d42c0beefd37431b21424d1f}{RTR\+\_\+\+ERROR\+\_\+\+NO\+\_\+\+DATA\+\_\+\+AVAIL}}
, \mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcad8dd32ab133cc01546ece546fcd0c7e4}{RTR\+\_\+\+ERROR\+\_\+\+NO\+\_\+\+INCR\+\_\+\+UPDATE\+\_\+\+AVAIL}}
, \mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca33bdf094610a6a16cbe2bad496115077}{RTR\+\_\+\+ERROR\+\_\+\+FATAL}}
, \newline
\mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcaaf42f891672acd81b0a01fa7455aafa3}{RTR\+\_\+\+ERROR\+\_\+\+TRANSPORT}}
, \mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcae4cecebbe31c18cc87a3179b7d638585}{RTR\+\_\+\+SHUTDOWN}}
, \mbox{\hyperlink{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcac817bc30f7e29396ecae0a47fec69590}{RTR\+\_\+\+CLOSED}}
 \}
\begin{DoxyCompactList}\small\item\em States of the RTR socket. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__h_ga65aa9655f85c354a8ad3d33c961d1a57}{rtr\+\_\+state\+\_\+to\+\_\+str}} (enum \mbox{\hyperlink{group__mod__rtr__h_ga62bcc901355906dd300e2b62c9278cbc}{rtr\+\_\+socket\+\_\+state}} state)
\begin{DoxyCompactList}\small\item\em Converts a rtr\+\_\+socket\+\_\+state to a String. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__rtr__h_ga77552d7d8f4d41774cb6b000b18bbf17}{rtr\+\_\+set\+\_\+interval\+\_\+mode}} (struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}\mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}}, enum \mbox{\hyperlink{group__mod__rtr__h_ga31b1bb66cb95ac21f7108440e7506b38}{rtr\+\_\+interval\+\_\+mode}} option)
\begin{DoxyCompactList}\small\item\em Set the interval option to the desired one. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{group__mod__rtr__h_ga31b1bb66cb95ac21f7108440e7506b38}{rtr\+\_\+interval\+\_\+mode}} \mbox{\hyperlink{group__mod__rtr__h_ga8b3673db716238adbb49b1537a316bfa}{rtr\+\_\+get\+\_\+interval\+\_\+mode}} (struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}\mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}})
\begin{DoxyCompactList}\small\item\em Get the current interval mode. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
An RTR socket implements the RPKI-\/\+RTR protocol scheme. 

One \doxylink{structrtr__socket}{rtr\+\_\+socket} communicates with a single RPKI-\/\+RTR server. 

\doxysubsection{Typedef Documentation}
\Hypertarget{group__mod__rtr__h_ga71ec6263b63ee7fa9d1758b43a67dad8}\label{group__mod__rtr__h_ga71ec6263b63ee7fa9d1758b43a67dad8} 
\index{RTR socket@{RTR socket}!rtr\_connection\_state\_fp@{rtr\_connection\_state\_fp}}
\index{rtr\_connection\_state\_fp@{rtr\_connection\_state\_fp}!RTR socket@{RTR socket}}
\doxysubsubsection{\texorpdfstring{rtr\_connection\_state\_fp}{rtr\_connection\_state\_fp}}
{\footnotesize\ttfamily typedef void(\texorpdfstring{$\ast$}{*} rtr\+\_\+connection\+\_\+state\+\_\+fp) (const struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}\mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}}, const enum \mbox{\hyperlink{group__mod__rtr__h_ga62bcc901355906dd300e2b62c9278cbc}{rtr\+\_\+socket\+\_\+state}} state, void \texorpdfstring{$\ast$}{*}connection\+\_\+state\+\_\+fp\+\_\+param\+\_\+config, void \texorpdfstring{$\ast$}{*}connection\+\_\+state\+\_\+fp\+\_\+param\+\_\+group)}



{\ttfamily \#include $<$\mbox{\hyperlink{rtr_8h}{rtrlib/rtr/rtr.\+h}}$>$}



A function pointer that is called if the state of the rtr socket has changed. 



\doxysubsection{Enumeration Type Documentation}
\Hypertarget{group__mod__rtr__h_ga31b1bb66cb95ac21f7108440e7506b38}\label{group__mod__rtr__h_ga31b1bb66cb95ac21f7108440e7506b38} 
\index{RTR socket@{RTR socket}!rtr\_interval\_mode@{rtr\_interval\_mode}}
\index{rtr\_interval\_mode@{rtr\_interval\_mode}!RTR socket@{RTR socket}}
\doxysubsubsection{\texorpdfstring{rtr\_interval\_mode}{rtr\_interval\_mode}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__mod__rtr__h_ga31b1bb66cb95ac21f7108440e7506b38}{rtr\+\_\+interval\+\_\+mode}}}



{\ttfamily \#include $<$\mbox{\hyperlink{rtr_8h}{rtrlib/rtr/rtr.\+h}}$>$}



These modes let the user configure how received intervals should be handled. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_INTERVAL\_MODE\_IGNORE\_ANY@{RTR\_INTERVAL\_MODE\_IGNORE\_ANY}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_INTERVAL\_MODE\_IGNORE\_ANY@{RTR\_INTERVAL\_MODE\_IGNORE\_ANY}}}\Hypertarget{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38ab2d73bf198395e845d6ba207e264f6eb}\label{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38ab2d73bf198395e845d6ba207e264f6eb} 
RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+IGNORE\+\_\+\+ANY&Ignore appliance of interval values at all. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_INTERVAL\_MODE\_ACCEPT\_ANY@{RTR\_INTERVAL\_MODE\_ACCEPT\_ANY}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_INTERVAL\_MODE\_ACCEPT\_ANY@{RTR\_INTERVAL\_MODE\_ACCEPT\_ANY}}}\Hypertarget{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38abef109b4282a231bdbeec27117fa2ce3}\label{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38abef109b4282a231bdbeec27117fa2ce3} 
RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+ACCEPT\+\_\+\+ANY&Accept any interval values, even if outside of range. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_INTERVAL\_MODE\_DEFAULT\_MIN\_MAX@{RTR\_INTERVAL\_MODE\_DEFAULT\_MIN\_MAX}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_INTERVAL\_MODE\_DEFAULT\_MIN\_MAX@{RTR\_INTERVAL\_MODE\_DEFAULT\_MIN\_MAX}}}\Hypertarget{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38a00460bd1c4f2db207a0b1ebefc354a50}\label{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38a00460bd1c4f2db207a0b1ebefc354a50} 
RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+DEFAULT\+\_\+\+MIN\+\_\+\+MAX&If interval value is outside of range, apply min (if below range) or max (if above range). \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_INTERVAL\_MODE\_IGNORE\_ON\_FAILURE@{RTR\_INTERVAL\_MODE\_IGNORE\_ON\_FAILURE}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_INTERVAL\_MODE\_IGNORE\_ON\_FAILURE@{RTR\_INTERVAL\_MODE\_IGNORE\_ON\_FAILURE}}}\Hypertarget{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38ab876811b811add0171f8fb637236f070}\label{group__mod__rtr__h_gga31b1bb66cb95ac21f7108440e7506b38ab876811b811add0171f8fb637236f070} 
RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+IGNORE\+\_\+\+ON\+\_\+\+FAILURE&Ignore any interval values that are outside of range. \\
\hline

\end{DoxyEnumFields}
\Hypertarget{group__mod__rtr__h_gaa67c38ea4f2832d0da2bb3ec40e691d8}\label{group__mod__rtr__h_gaa67c38ea4f2832d0da2bb3ec40e691d8} 
\index{RTR socket@{RTR socket}!rtr\_rtvals@{rtr\_rtvals}}
\index{rtr\_rtvals@{rtr\_rtvals}!RTR socket@{RTR socket}}
\doxysubsubsection{\texorpdfstring{rtr\_rtvals}{rtr\_rtvals}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__mod__rtr__h_gaa67c38ea4f2832d0da2bb3ec40e691d8}{rtr\+\_\+rtvals}}}



{\ttfamily \#include $<$\mbox{\hyperlink{rtr_8h}{rtrlib/rtr/rtr.\+h}}$>$}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_SUCCESS@{RTR\_SUCCESS}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_SUCCESS@{RTR\_SUCCESS}}}\Hypertarget{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8a12b247f6dd6f92d7957f237d5d3e21bc}\label{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8a12b247f6dd6f92d7957f237d5d3e21bc} 
RTR\+\_\+\+SUCCESS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_ERROR@{RTR\_ERROR}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_ERROR@{RTR\_ERROR}}}\Hypertarget{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8a5650aecaafb21d145060a2885e395eb1}\label{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8a5650aecaafb21d145060a2885e395eb1} 
RTR\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_INVALID\_PARAM@{RTR\_INVALID\_PARAM}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_INVALID\_PARAM@{RTR\_INVALID\_PARAM}}}\Hypertarget{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8abd30dc1e6e32b5b6f0014cf8c83946d6}\label{group__mod__rtr__h_ggaa67c38ea4f2832d0da2bb3ec40e691d8abd30dc1e6e32b5b6f0014cf8c83946d6} 
RTR\+\_\+\+INVALID\+\_\+\+PARAM&\\
\hline

\end{DoxyEnumFields}
\Hypertarget{group__mod__rtr__h_ga62bcc901355906dd300e2b62c9278cbc}\label{group__mod__rtr__h_ga62bcc901355906dd300e2b62c9278cbc} 
\index{RTR socket@{RTR socket}!rtr\_socket\_state@{rtr\_socket\_state}}
\index{rtr\_socket\_state@{rtr\_socket\_state}!RTR socket@{RTR socket}}
\doxysubsubsection{\texorpdfstring{rtr\_socket\_state}{rtr\_socket\_state}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__mod__rtr__h_ga62bcc901355906dd300e2b62c9278cbc}{rtr\+\_\+socket\+\_\+state}}}



{\ttfamily \#include $<$\mbox{\hyperlink{rtr_8h}{rtrlib/rtr/rtr.\+h}}$>$}



States of the RTR socket. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_CONNECTING@{RTR\_CONNECTING}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_CONNECTING@{RTR\_CONNECTING}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca5a8bbe8c0e848043d5707a9d70004c5a}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca5a8bbe8c0e848043d5707a9d70004c5a} 
RTR\+\_\+\+CONNECTING&Socket is establishing the transport connection. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_ESTABLISHED@{RTR\_ESTABLISHED}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_ESTABLISHED@{RTR\_ESTABLISHED}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcad884689742a432e75a457e716e77b086}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcad884689742a432e75a457e716e77b086} 
RTR\+\_\+\+ESTABLISHED&Connection is established, socket is waiting for a Serial Notify or expiration of the refresh\+\_\+interval timer. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_RESET@{RTR\_RESET}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_RESET@{RTR\_RESET}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca036ce764a49435c826d21a5df1be8e7e}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca036ce764a49435c826d21a5df1be8e7e} 
RTR\+\_\+\+RESET&Resetting RTR connection. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_SYNC@{RTR\_SYNC}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_SYNC@{RTR\_SYNC}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca3367cb5bc6343cfe13c6dd276235b2ea}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca3367cb5bc6343cfe13c6dd276235b2ea} 
RTR\+\_\+\+SYNC&Receiving validation records from the RTR server. ~\newline
 \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_FAST\_RECONNECT@{RTR\_FAST\_RECONNECT}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_FAST\_RECONNECT@{RTR\_FAST\_RECONNECT}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca88fc4369bd2cd94d68545a0822afaf09}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca88fc4369bd2cd94d68545a0822afaf09} 
RTR\+\_\+\+FAST\+\_\+\+RECONNECT&Reconnect without any waiting period. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_ERROR\_NO\_DATA\_AVAIL@{RTR\_ERROR\_NO\_DATA\_AVAIL}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_ERROR\_NO\_DATA\_AVAIL@{RTR\_ERROR\_NO\_DATA\_AVAIL}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcaa5b13b46d42c0beefd37431b21424d1f}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcaa5b13b46d42c0beefd37431b21424d1f} 
RTR\+\_\+\+ERROR\+\_\+\+NO\+\_\+\+DATA\+\_\+\+AVAIL&No validation records are available on the RTR server. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_ERROR\_NO\_INCR\_UPDATE\_AVAIL@{RTR\_ERROR\_NO\_INCR\_UPDATE\_AVAIL}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_ERROR\_NO\_INCR\_UPDATE\_AVAIL@{RTR\_ERROR\_NO\_INCR\_UPDATE\_AVAIL}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcad8dd32ab133cc01546ece546fcd0c7e4}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcad8dd32ab133cc01546ece546fcd0c7e4} 
RTR\+\_\+\+ERROR\+\_\+\+NO\+\_\+\+INCR\+\_\+\+UPDATE\+\_\+\+AVAIL&Server was unable to answer the last serial or reset query. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_ERROR\_FATAL@{RTR\_ERROR\_FATAL}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_ERROR\_FATAL@{RTR\_ERROR\_FATAL}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca33bdf094610a6a16cbe2bad496115077}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbca33bdf094610a6a16cbe2bad496115077} 
RTR\+\_\+\+ERROR\+\_\+\+FATAL&Fatal protocol error occurred. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_ERROR\_TRANSPORT@{RTR\_ERROR\_TRANSPORT}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_ERROR\_TRANSPORT@{RTR\_ERROR\_TRANSPORT}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcaaf42f891672acd81b0a01fa7455aafa3}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcaaf42f891672acd81b0a01fa7455aafa3} 
RTR\+\_\+\+ERROR\+\_\+\+TRANSPORT&Error on the transport socket occurred. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_SHUTDOWN@{RTR\_SHUTDOWN}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_SHUTDOWN@{RTR\_SHUTDOWN}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcae4cecebbe31c18cc87a3179b7d638585}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcae4cecebbe31c18cc87a3179b7d638585} 
RTR\+\_\+\+SHUTDOWN&RTR Socket was started, but now has shut down. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_CLOSED@{RTR\_CLOSED}!RTR socket@{RTR socket}}\index{RTR socket@{RTR socket}!RTR\_CLOSED@{RTR\_CLOSED}}}\Hypertarget{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcac817bc30f7e29396ecae0a47fec69590}\label{group__mod__rtr__h_gga62bcc901355906dd300e2b62c9278cbcac817bc30f7e29396ecae0a47fec69590} 
RTR\+\_\+\+CLOSED&RTR Socket has not been started yet. Initial state after rtr\+\_\+init \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\Hypertarget{group__mod__rtr__h_ga8b3673db716238adbb49b1537a316bfa}\label{group__mod__rtr__h_ga8b3673db716238adbb49b1537a316bfa} 
\index{RTR socket@{RTR socket}!rtr\_get\_interval\_mode@{rtr\_get\_interval\_mode}}
\index{rtr\_get\_interval\_mode@{rtr\_get\_interval\_mode}!RTR socket@{RTR socket}}
\doxysubsubsection{\texorpdfstring{rtr\_get\_interval\_mode()}{rtr\_get\_interval\_mode()}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__mod__rtr__h_ga31b1bb66cb95ac21f7108440e7506b38}{rtr\+\_\+interval\+\_\+mode}} rtr\+\_\+get\+\_\+interval\+\_\+mode (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}}]{rtr\+\_\+socket }\end{DoxyParamCaption})}



{\ttfamily \#include $<$\mbox{\hyperlink{rtr_8h}{rtrlib/rtr/rtr.\+h}}$>$}



Get the current interval mode. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em \doxylink{structrtr__socket}{rtr\+\_\+socket}} & The target socket. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The value of the interval\+\_\+option variable. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__h_ga77552d7d8f4d41774cb6b000b18bbf17}\label{group__mod__rtr__h_ga77552d7d8f4d41774cb6b000b18bbf17} 
\index{RTR socket@{RTR socket}!rtr\_set\_interval\_mode@{rtr\_set\_interval\_mode}}
\index{rtr\_set\_interval\_mode@{rtr\_set\_interval\_mode}!RTR socket@{RTR socket}}
\doxysubsubsection{\texorpdfstring{rtr\_set\_interval\_mode()}{rtr\_set\_interval\_mode()}}
{\footnotesize\ttfamily void rtr\+\_\+set\+\_\+interval\+\_\+mode (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}}]{rtr\+\_\+socket,  }\item[{enum \mbox{\hyperlink{group__mod__rtr__h_ga31b1bb66cb95ac21f7108440e7506b38}{rtr\+\_\+interval\+\_\+mode}}}]{option }\end{DoxyParamCaption})}



{\ttfamily \#include $<$\mbox{\hyperlink{rtr_8h}{rtrlib/rtr/rtr.\+h}}$>$}



Set the interval option to the desired one. 

It\textquotesingle{}s either RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+IGNORE\+\_\+\+ANY, RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+APPLY\+\_\+\+ANY, RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+DEFAULT\+\_\+\+MIN\+\_\+\+MAX or RTR\+\_\+\+INTERVAL\+\_\+\+MODE\+\_\+\+IGNORE\+\_\+\+ON\+\_\+\+FAILURE. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em \doxylink{structrtr__socket}{rtr\+\_\+socket}} & The target socket. \\
\hline
\mbox{\texttt{ in}}  & {\em option} & The new interval option that should be applied. \\
\hline
\end{DoxyParams}
\Hypertarget{group__mod__rtr__h_ga65aa9655f85c354a8ad3d33c961d1a57}\label{group__mod__rtr__h_ga65aa9655f85c354a8ad3d33c961d1a57} 
\index{RTR socket@{RTR socket}!rtr\_state\_to\_str@{rtr\_state\_to\_str}}
\index{rtr\_state\_to\_str@{rtr\_state\_to\_str}!RTR socket@{RTR socket}}
\doxysubsubsection{\texorpdfstring{rtr\_state\_to\_str()}{rtr\_state\_to\_str()}}
{\footnotesize\ttfamily const char \texorpdfstring{$\ast$}{*} rtr\+\_\+state\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{enum \mbox{\hyperlink{group__mod__rtr__h_ga62bcc901355906dd300e2b62c9278cbc}{rtr\+\_\+socket\+\_\+state}}}]{state }\end{DoxyParamCaption})}



{\ttfamily \#include $<$\mbox{\hyperlink{rtr_8h}{rtrlib/rtr/rtr.\+h}}$>$}



Converts a rtr\+\_\+socket\+\_\+state to a String. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em state} & state to convert to a string \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
NULL If state isn\textquotesingle{}t a valid rtr\+\_\+socket\+\_\+state 

!=NULL The rtr\+\_\+socket\+\_\+state as String. 
\end{DoxyReturn}
