\doxysection{RTR connection manager}
\hypertarget{group__mod__rtr__mgr__h}{}\label{group__mod__rtr__mgr__h}\index{RTR connection manager@{RTR connection manager}}


The RTR connection manager maintains multiple groups of \doxylink{structrtr__socket}{RTR sockets}.  


\doxysubsubsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__mod__bgpsec__h}{BGPsec AS path validation}}
\begin{DoxyCompactList}\small\item\em BGPsec allows for validation of the BGPsec\+\_\+\+PATH attribute of a BGPsec update. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}}
\begin{DoxyCompactList}\small\item\em A set of RTR sockets. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef void(\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}{rtr\+\_\+mgr\+\_\+status\+\_\+fp}}) (const struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} \texorpdfstring{$\ast$}{*}, enum \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\+\_\+mgr\+\_\+status}}, const struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}, void \texorpdfstring{$\ast$}{*})
\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\+\_\+mgr\+\_\+status}} \{ \mbox{\hyperlink{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26af91b0ea3f052b599a687a52400db71e7}{RTR\+\_\+\+MGR\+\_\+\+CLOSED}}
, \mbox{\hyperlink{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a8e74c946bd4ed59e865c7a8505dc0d6e}{RTR\+\_\+\+MGR\+\_\+\+CONNECTING}}
, \mbox{\hyperlink{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a41c103f5ed050c4d2b8c441f119684fe}{RTR\+\_\+\+MGR\+\_\+\+ESTABLISHED}}
, \mbox{\hyperlink{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a248dc299e8b9ed438d06e4c0f96835c4}{RTR\+\_\+\+MGR\+\_\+\+ERROR}}
 \}
\begin{DoxyCompactList}\small\item\em Status of a \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_gaed6178fdc60f4e040b7fa3c62cdba4a0}{rtr\+\_\+mgr\+\_\+init}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}config\+\_\+out, struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} groups\mbox{[}$\,$\mbox{]}, const unsigned int groups\+\_\+len, const \mbox{\hyperlink{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}{rtr\+\_\+mgr\+\_\+status\+\_\+fp}} status\+\_\+fp, void \texorpdfstring{$\ast$}{*}status\+\_\+fp\+\_\+data)
\begin{DoxyCompactList}\small\item\em Initializes a \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_ga080b1a71c5135927708186bc31509e23}{rtr\+\_\+mgr\+\_\+setup\+\_\+sockets}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} groups\mbox{[}$\,$\mbox{]}, const unsigned int groups\+\_\+len, const unsigned int refresh\+\_\+interval, const unsigned int expire\+\_\+interval, const unsigned int retry\+\_\+interval)
\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_gadefd615057b332b3e2a8f9a03ac29bb1}{rtr\+\_\+mgr\+\_\+add\+\_\+roa\+\_\+support}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, const \mbox{\hyperlink{group__mod__trie__pfx__h_gafcc9cb0377b569f364b373c82d5d2d3c}{pfx\+\_\+update\+\_\+fp}} \mbox{\hyperlink{group__mod__trie__pfx__h_gafcc9cb0377b569f364b373c82d5d2d3c}{pfx\+\_\+update\+\_\+fp}})
\begin{DoxyCompactList}\small\item\em Sets up ROA support. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_ga45bda1ba2e153eae850739368bf1540c}{rtr\+\_\+mgr\+\_\+add\+\_\+group}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, const struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} \texorpdfstring{$\ast$}{*}group)
\begin{DoxyCompactList}\small\item\em Adds a new \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} to the linked list of a initialized config. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_ga53416f8ca80557dffd58a1045dbefd27}{rtr\+\_\+mgr\+\_\+remove\+\_\+group}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, unsigned int preference)
\begin{DoxyCompactList}\small\item\em Removes an existing \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} from the linked list of config. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__rtr__mgr__h_ga194b2f6644a3d6034bb38cda3a3777da}{rtr\+\_\+mgr\+\_\+free}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config)
\begin{DoxyCompactList}\small\item\em Frees all resources that were allocated from the rtr\+\_\+mgr. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_gaceb7aba7f5ff0b85d9226359047fea74}{rtr\+\_\+mgr\+\_\+start}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config)
\begin{DoxyCompactList}\small\item\em Establishes \doxylink{structrtr__socket}{rtr\+\_\+socket} connections. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__rtr__mgr__h_gaafbbd703ddfec0c1493f3e77a92cf36e}{rtr\+\_\+mgr\+\_\+stop}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config)
\begin{DoxyCompactList}\small\item\em Terminates \doxylink{structrtr__socket}{rtr\+\_\+socket} connections. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{group__mod__rtr__mgr__h_ga3cee24ddc840cd33739c395eae3451e9}{rtr\+\_\+mgr\+\_\+conf\+\_\+in\+\_\+sync}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config)
\begin{DoxyCompactList}\small\item\em Check if \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} is fully synchronized with at least one group. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_gad06ddac552dc3780801c5f8f2793afff}{rtr\+\_\+mgr\+\_\+validate}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, const uint32\+\_\+t \mbox{\hyperlink{rtr__pdus_8h_af54a4e57359d5c0dc5935878531a9e58}{asn}}, const struct \mbox{\hyperlink{structlrtr__ip__addr}{lrtr\+\_\+ip\+\_\+addr}} \texorpdfstring{$\ast$}{*}prefix, const uint8\+\_\+t mask\+\_\+len, enum \mbox{\hyperlink{group__mod__pfx__h_ga9f87b27f024a9db70884c3981e030aa0}{pfxv\+\_\+state}} \texorpdfstring{$\ast$}{*}result)
\begin{DoxyCompactList}\small\item\em Validates the origin of a BGP-\/\+Route. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_ga819e12c87412b93ab3a69991574eb416}{rtr\+\_\+mgr\+\_\+get\+\_\+spki}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, const uint32\+\_\+t \mbox{\hyperlink{rtr__pdus_8h_af54a4e57359d5c0dc5935878531a9e58}{asn}}, uint8\+\_\+t \texorpdfstring{$\ast$}{*}\mbox{\hyperlink{rtr__pdus_8h_a12038882b8c1e8109c0e4b1ea6f8cb5c}{ski}}, struct \mbox{\hyperlink{structspki__record}{spki\+\_\+record}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}result, unsigned int \texorpdfstring{$\ast$}{*}result\+\_\+count)
\begin{DoxyCompactList}\small\item\em Returns all SPKI records which match the given ASN and SKI. \end{DoxyCompactList}\item 
const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_gafeb8ff60f0be72a01652291471067089}{rtr\+\_\+mgr\+\_\+status\+\_\+to\+\_\+str}} (enum \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\+\_\+mgr\+\_\+status}} status)
\begin{DoxyCompactList}\small\item\em Converts a rtr\+\_\+mgr\+\_\+status to a String. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__rtr__mgr__h_gae340f35a7136ff45a2493358eaef2d28}{rtr\+\_\+mgr\+\_\+for\+\_\+each\+\_\+ipv4\+\_\+record}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, \mbox{\hyperlink{group__mod__pfx__h_ga48478a61dc1cd09f646631b1691ff707}{pfx\+\_\+for\+\_\+each\+\_\+fp}} fp, void \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em Iterates over all IPv4 records in the \doxylink{structpfx__table}{pfx\+\_\+table}. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__rtr__mgr__h_gaaa6b4be017209bbe431234244b4f43ee}{rtr\+\_\+mgr\+\_\+for\+\_\+each\+\_\+ipv6\+\_\+record}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, \mbox{\hyperlink{group__mod__pfx__h_ga48478a61dc1cd09f646631b1691ff707}{pfx\+\_\+for\+\_\+each\+\_\+fp}} fp, void \texorpdfstring{$\ast$}{*}data)
\begin{DoxyCompactList}\small\item\em Iterates over all IPv6 records in the \doxylink{structpfx__table}{pfx\+\_\+table}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_ga6193edc233f45eaf5da177e96791a290}{rtr\+\_\+mgr\+\_\+get\+\_\+first\+\_\+group}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config)
\begin{DoxyCompactList}\small\item\em Returns the first, thus active group. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_ga75e2e76ba6475856c7bb3eac089790d6}{rtr\+\_\+mgr\+\_\+for\+\_\+each\+\_\+group}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, void(\texorpdfstring{$\ast$}{*}fp)(const struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} \texorpdfstring{$\ast$}{*}group, void \texorpdfstring{$\ast$}{*}data), void \texorpdfstring{$\ast$}{*}data)
\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_gaa0acbc27baad40c9da7eb6cc2cd1dc1c}{rtr\+\_\+mgr\+\_\+add\+\_\+aspa\+\_\+support}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, const \mbox{\hyperlink{group__mod__aspa__h_ga73e1e2e74f1f37727efe950d85fe659e}{aspa\+\_\+update\+\_\+fp}} \mbox{\hyperlink{group__mod__aspa__h_ga73e1e2e74f1f37727efe950d85fe659e}{aspa\+\_\+update\+\_\+fp}})
\begin{DoxyCompactList}\small\item\em Sets up ASPA support. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__rtr__mgr__h_gad4bb8a652cf56cde87b26c196e326c54}{rtr\+\_\+mgr\+\_\+add\+\_\+spki\+\_\+support}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, const \mbox{\hyperlink{group__mod__spki__h_ga208a2bec5211e883b44ebe693a1c5e5d}{spki\+\_\+update\+\_\+fp}} \mbox{\hyperlink{group__mod__spki__h_ga208a2bec5211e883b44ebe693a1c5e5d}{spki\+\_\+update\+\_\+fp}})
\begin{DoxyCompactList}\small\item\em Sets up BGPSEC support. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_ga1071ec413bdf47518e488074e94e16f5}{rtr\+\_\+mgr\+\_\+group\+::sockets}}
\item 
unsigned int \mbox{\hyperlink{group__mod__rtr__mgr__h_gaae9b2485e2b858d4ce55218532ba3ade}{rtr\+\_\+mgr\+\_\+group\+::sockets\+\_\+len}}
\item 
uint8\+\_\+t \mbox{\hyperlink{group__mod__rtr__mgr__h_ga2c6c543d9d28685688f249d6e8efac27}{rtr\+\_\+mgr\+\_\+group\+::preference}}
\item 
enum \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\+\_\+mgr\+\_\+status}} \mbox{\hyperlink{group__mod__rtr__mgr__h_gacdccd920d7153e858f955daf443d40d2}{rtr\+\_\+mgr\+\_\+group\+::status}}
\item 
struct \mbox{\hyperlink{structtommy__list__wrapper}{tommy\+\_\+list\+\_\+wrapper}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_gacf7dc8c1448ec514c75008b0b4d19343}{rtr\+\_\+mgr\+\_\+config\+::groups}}
\item 
unsigned int \mbox{\hyperlink{group__mod__rtr__mgr__h_gacd6563c25663aae1b9b5a26a9cf28014}{rtr\+\_\+mgr\+\_\+config\+::len}}
\item 
pthread\+\_\+rwlock\+\_\+t \mbox{\hyperlink{group__mod__rtr__mgr__h_gae692c4a314aa80e8312fa7410335afe8}{rtr\+\_\+mgr\+\_\+config\+::mutex}}
\item 
\mbox{\hyperlink{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}{rtr\+\_\+mgr\+\_\+status\+\_\+fp}} \mbox{\hyperlink{group__mod__rtr__mgr__h_gad19d313effb6af6b360b30dc372232b4}{rtr\+\_\+mgr\+\_\+config\+::status\+\_\+fp}}
\item 
void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_ga17d45d7205e527433e11be7db516f321}{rtr\+\_\+mgr\+\_\+config\+::status\+\_\+fp\+\_\+data}}
\item 
struct \mbox{\hyperlink{structpfx__table}{pfx\+\_\+table}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_gad9415cb04f74c7281b6762c1cdf2d659}{rtr\+\_\+mgr\+\_\+config\+::pfx\+\_\+table}}
\item 
struct \mbox{\hyperlink{structspki__table}{spki\+\_\+table}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_gabf8b995cb84fafb77ea1d3d54bc47242}{rtr\+\_\+mgr\+\_\+config\+::spki\+\_\+table}}
\item 
struct \mbox{\hyperlink{structaspa__table}{aspa\+\_\+table}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__rtr__mgr__h_ga00f446fcbe92b8e17261ec9c6eca87ca}{rtr\+\_\+mgr\+\_\+config\+::aspa\+\_\+table}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The RTR connection manager maintains multiple groups of \doxylink{structrtr__socket}{RTR sockets}. 

The RTR connection manager is initialized with one or multiple groups of rtr\+\_\+sockets. Each group is configured with a preference value and contains a set of \doxylink{structrtr__socket}{rtr\+\_\+socket} RTR sockets. It connects to all sockets of the group with the lowest preference value.~\newline
In case of failures, the connection manager establishes connections to RTR servers of another group with the next lowest preference value (see \href{https://tools.ietf.org/html/rfc6810}{\texttt{ IETF RFC 6810}} for details about error handling).~\newline
RTRlib also supports a Retry Interval (see \href{https://tools.ietf.org/html/draft-ietf-sidr-rpki-rtr-rfc6810-bis}{\texttt{ draft-\/ietf-\/sidr-\/rpki-\/rtr-\/rfc6810-\/bis}}). If a more preferred group is online again, the RTR connection manager will switch back and close connections to the caches of the less preferred group. 

\doxysubsection{Typedef Documentation}
\Hypertarget{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}\label{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_status\_fp@{rtr\_mgr\_status\_fp}}
\index{rtr\_mgr\_status\_fp@{rtr\_mgr\_status\_fp}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_status\_fp}{rtr\_mgr\_status\_fp}}
{\footnotesize\ttfamily typedef void(\texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+status\+\_\+fp) (const struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} \texorpdfstring{$\ast$}{*}, enum \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\+\_\+mgr\+\_\+status}}, const struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}} \texorpdfstring{$\ast$}{*}, void \texorpdfstring{$\ast$}{*})}



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



\doxysubsection{Enumeration Type Documentation}
\Hypertarget{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}\label{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_status@{rtr\_mgr\_status}}
\index{rtr\_mgr\_status@{rtr\_mgr\_status}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_status}{rtr\_mgr\_status}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\+\_\+mgr\+\_\+status}}}



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



Status of a \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_MGR\_CLOSED@{RTR\_MGR\_CLOSED}!RTR connection manager@{RTR connection manager}}\index{RTR connection manager@{RTR connection manager}!RTR\_MGR\_CLOSED@{RTR\_MGR\_CLOSED}}}\Hypertarget{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26af91b0ea3f052b599a687a52400db71e7}\label{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26af91b0ea3f052b599a687a52400db71e7} 
RTR\+\_\+\+MGR\+\_\+\+CLOSED&RTR sockets are disconnected. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_MGR\_CONNECTING@{RTR\_MGR\_CONNECTING}!RTR connection manager@{RTR connection manager}}\index{RTR connection manager@{RTR connection manager}!RTR\_MGR\_CONNECTING@{RTR\_MGR\_CONNECTING}}}\Hypertarget{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a8e74c946bd4ed59e865c7a8505dc0d6e}\label{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a8e74c946bd4ed59e865c7a8505dc0d6e} 
RTR\+\_\+\+MGR\+\_\+\+CONNECTING&RTR sockets trying to establish a connection. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_MGR\_ESTABLISHED@{RTR\_MGR\_ESTABLISHED}!RTR connection manager@{RTR connection manager}}\index{RTR connection manager@{RTR connection manager}!RTR\_MGR\_ESTABLISHED@{RTR\_MGR\_ESTABLISHED}}}\Hypertarget{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a41c103f5ed050c4d2b8c441f119684fe}\label{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a41c103f5ed050c4d2b8c441f119684fe} 
RTR\+\_\+\+MGR\+\_\+\+ESTABLISHED&All RTR sockets of the group are synchronized with rtr servers. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{RTR\_MGR\_ERROR@{RTR\_MGR\_ERROR}!RTR connection manager@{RTR connection manager}}\index{RTR connection manager@{RTR connection manager}!RTR\_MGR\_ERROR@{RTR\_MGR\_ERROR}}}\Hypertarget{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a248dc299e8b9ed438d06e4c0f96835c4}\label{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a248dc299e8b9ed438d06e4c0f96835c4} 
RTR\+\_\+\+MGR\+\_\+\+ERROR&Error occurred on at least one RTR socket. \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\Hypertarget{group__mod__rtr__mgr__h_gaa0acbc27baad40c9da7eb6cc2cd1dc1c}\label{group__mod__rtr__mgr__h_gaa0acbc27baad40c9da7eb6cc2cd1dc1c} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_add\_aspa\_support@{rtr\_mgr\_add\_aspa\_support}}
\index{rtr\_mgr\_add\_aspa\_support@{rtr\_mgr\_add\_aspa\_support}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_add\_aspa\_support()}{rtr\_mgr\_add\_aspa\_support()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+add\+\_\+aspa\+\_\+support (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{const \mbox{\hyperlink{group__mod__aspa__h_ga73e1e2e74f1f37727efe950d85fe659e}{aspa\+\_\+update\+\_\+fp}}}]{aspa\+\_\+update\+\_\+fp }\end{DoxyParamCaption})}



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



Sets up ASPA support. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & Pointer to the \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} where ROA support should be enabled. \\
\hline
\mbox{\texttt{ in}}  & {\em aspa\+\_\+update\+\_\+fp} & Pointer to aspa\+\_\+update\+\_\+fp callback, that is executed for every added and removed \doxylink{structaspa__record}{aspa\+\_\+record}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
RTR\+\_\+\+ERROR If an error occurred 

RTR\+\_\+\+INVALID\+\_\+\+PARAM If refresh\+\_\+interval or expire\+\_\+interval is invalid. 

RTR\+\_\+\+SUCCESS On success. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_ga45bda1ba2e153eae850739368bf1540c}\label{group__mod__rtr__mgr__h_ga45bda1ba2e153eae850739368bf1540c} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_add\_group@{rtr\_mgr\_add\_group}}
\index{rtr\_mgr\_add\_group@{rtr\_mgr\_add\_group}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_add\_group()}{rtr\_mgr\_add\_group()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+add\+\_\+group (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{const struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} \texorpdfstring{$\ast$}{*}}]{group }\end{DoxyParamCaption})}



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



Adds a new \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} to the linked list of a initialized config. 

A new group must have at least one \doxylink{structrtr__socket}{rtr\+\_\+socket} associated with it. This socket must have at least one initialized transport socket associated with it. The new group must have a preference value that is none of the already present groups have. More than one \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} with the same preference is not allowed. 
\begin{DoxyParams}{Parameters}
{\em config} & A \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} struct that has been initialized previously with rtr\+\_\+mgr\+\_\+init \\
\hline
{\em group} & A \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} with at least one \doxylink{structrtr__socket}{rtr\+\_\+socket} and a preference value that no existing group has. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
RTR\+\_\+\+INVALID\+\_\+\+PARAM If a group with the same preference value already exists. 

RTR\+\_\+\+ERROR If an error occurred while adding the group. 

RTR\+\_\+\+SUCCESS If the group was successfully added. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_gadefd615057b332b3e2a8f9a03ac29bb1}\label{group__mod__rtr__mgr__h_gadefd615057b332b3e2a8f9a03ac29bb1} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_add\_roa\_support@{rtr\_mgr\_add\_roa\_support}}
\index{rtr\_mgr\_add\_roa\_support@{rtr\_mgr\_add\_roa\_support}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_add\_roa\_support()}{rtr\_mgr\_add\_roa\_support()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+add\+\_\+roa\+\_\+support (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{const \mbox{\hyperlink{group__mod__trie__pfx__h_gafcc9cb0377b569f364b373c82d5d2d3c}{pfx\+\_\+update\+\_\+fp}}}]{pfx\+\_\+update\+\_\+fp }\end{DoxyParamCaption})}



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



Sets up ROA support. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & Pointer to the \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} where ROA support should be enabled. \\
\hline
\mbox{\texttt{ in}}  & {\em update\+\_\+fp} & Pointer to pfx\+\_\+update\+\_\+fp callback, that is executed for every added and removed \doxylink{structpfx__record}{pfx\+\_\+record}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
RTR\+\_\+\+ERROR If an error occurred 

RTR\+\_\+\+INVALID\+\_\+\+PARAM If refresh\+\_\+interval or expire\+\_\+interval is invalid. 

RTR\+\_\+\+SUCCESS On success. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_gad4bb8a652cf56cde87b26c196e326c54}\label{group__mod__rtr__mgr__h_gad4bb8a652cf56cde87b26c196e326c54} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_add\_spki\_support@{rtr\_mgr\_add\_spki\_support}}
\index{rtr\_mgr\_add\_spki\_support@{rtr\_mgr\_add\_spki\_support}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_add\_spki\_support()}{rtr\_mgr\_add\_spki\_support()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+add\+\_\+spki\+\_\+support (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{const \mbox{\hyperlink{group__mod__spki__h_ga208a2bec5211e883b44ebe693a1c5e5d}{spki\+\_\+update\+\_\+fp}}}]{spki\+\_\+update\+\_\+fp }\end{DoxyParamCaption})}



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



Sets up BGPSEC support. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & Pointer to the \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} where ROA support should be enabled. \\
\hline
\mbox{\texttt{ in}}  & {\em spki\+\_\+update\+\_\+fp} & Pointer to spki\+\_\+update\+\_\+fp callback, that is executed for every added and removed \doxylink{structspki__record}{spki\+\_\+record}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
RTR\+\_\+\+ERROR If an error occurred 

RTR\+\_\+\+INVALID\+\_\+\+PARAM If refresh\+\_\+interval or expire\+\_\+interval is invalid. 

RTR\+\_\+\+SUCCESS On success. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_ga3cee24ddc840cd33739c395eae3451e9}\label{group__mod__rtr__mgr__h_ga3cee24ddc840cd33739c395eae3451e9} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_conf\_in\_sync@{rtr\_mgr\_conf\_in\_sync}}
\index{rtr\_mgr\_conf\_in\_sync@{rtr\_mgr\_conf\_in\_sync}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_conf\_in\_sync()}{rtr\_mgr\_conf\_in\_sync()}}
{\footnotesize\ttfamily bool rtr\+\_\+mgr\+\_\+conf\+\_\+in\+\_\+sync (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config }\end{DoxyParamCaption})}



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



Check if \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} is fully synchronized with at least one group. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & The \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true If \doxylink{structpfx__table}{pfx\+\_\+table} stores non-\/outdated pfx\+\_\+records 

false If \doxylink{structpfx__table}{pfx\+\_\+table} isn\textquotesingle{}t fully synchronized with at least one group. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_ga75e2e76ba6475856c7bb3eac089790d6}\label{group__mod__rtr__mgr__h_ga75e2e76ba6475856c7bb3eac089790d6} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_for\_each\_group@{rtr\_mgr\_for\_each\_group}}
\index{rtr\_mgr\_for\_each\_group@{rtr\_mgr\_for\_each\_group}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_for\_each\_group()}{rtr\_mgr\_for\_each\_group()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+for\+\_\+each\+\_\+group (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{void(\texorpdfstring{$\ast$}{*})(const struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} \texorpdfstring{$\ast$}{*}group, void \texorpdfstring{$\ast$}{*}data)}]{fp,  }\item[{void \texorpdfstring{$\ast$}{*}}]{data }\end{DoxyParamCaption})}



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

\Hypertarget{group__mod__rtr__mgr__h_gae340f35a7136ff45a2493358eaef2d28}\label{group__mod__rtr__mgr__h_gae340f35a7136ff45a2493358eaef2d28} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_for\_each\_ipv4\_record@{rtr\_mgr\_for\_each\_ipv4\_record}}
\index{rtr\_mgr\_for\_each\_ipv4\_record@{rtr\_mgr\_for\_each\_ipv4\_record}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_for\_each\_ipv4\_record()}{rtr\_mgr\_for\_each\_ipv4\_record()}}
{\footnotesize\ttfamily void rtr\+\_\+mgr\+\_\+for\+\_\+each\+\_\+ipv4\+\_\+record (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{\mbox{\hyperlink{group__mod__pfx__h_ga48478a61dc1cd09f646631b1691ff707}{pfx\+\_\+for\+\_\+each\+\_\+fp}}}]{fp,  }\item[{void \texorpdfstring{$\ast$}{*}}]{data }\end{DoxyParamCaption})}



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



Iterates over all IPv4 records in the \doxylink{structpfx__table}{pfx\+\_\+table}. 

For every \doxylink{structpfx__record}{pfx\+\_\+record} the function fp is called. The \doxylink{structpfx__record}{pfx\+\_\+record} and the data pointer is passed to the fp. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} \\
\hline
\mbox{\texttt{ in}}  & {\em fp} & Pointer to callback function with signature {\ttfamily pfx\+\_\+for\+\_\+each\+\_\+fp}. \\
\hline
\mbox{\texttt{ in}}  & {\em data} & This parameter is forwarded to the callback function. \\
\hline
\end{DoxyParams}
\Hypertarget{group__mod__rtr__mgr__h_gaaa6b4be017209bbe431234244b4f43ee}\label{group__mod__rtr__mgr__h_gaaa6b4be017209bbe431234244b4f43ee} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_for\_each\_ipv6\_record@{rtr\_mgr\_for\_each\_ipv6\_record}}
\index{rtr\_mgr\_for\_each\_ipv6\_record@{rtr\_mgr\_for\_each\_ipv6\_record}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_for\_each\_ipv6\_record()}{rtr\_mgr\_for\_each\_ipv6\_record()}}
{\footnotesize\ttfamily void rtr\+\_\+mgr\+\_\+for\+\_\+each\+\_\+ipv6\+\_\+record (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{\mbox{\hyperlink{group__mod__pfx__h_ga48478a61dc1cd09f646631b1691ff707}{pfx\+\_\+for\+\_\+each\+\_\+fp}}}]{fp,  }\item[{void \texorpdfstring{$\ast$}{*}}]{data }\end{DoxyParamCaption})}



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



Iterates over all IPv6 records in the \doxylink{structpfx__table}{pfx\+\_\+table}. 

For every \doxylink{structpfx__record}{pfx\+\_\+record} the function fp is called. The \doxylink{structpfx__record}{pfx\+\_\+record} and the data pointer is passed to the fp. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} \\
\hline
\mbox{\texttt{ in}}  & {\em fp} & Pointer to callback function with signature {\ttfamily pfx\+\_\+for\+\_\+each\+\_\+fp}. \\
\hline
\mbox{\texttt{ in}}  & {\em data} & This parameter is forwarded to the callback function. \\
\hline
\end{DoxyParams}
\Hypertarget{group__mod__rtr__mgr__h_ga194b2f6644a3d6034bb38cda3a3777da}\label{group__mod__rtr__mgr__h_ga194b2f6644a3d6034bb38cda3a3777da} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_free@{rtr\_mgr\_free}}
\index{rtr\_mgr\_free@{rtr\_mgr\_free}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_free()}{rtr\_mgr\_free()}}
{\footnotesize\ttfamily void rtr\+\_\+mgr\+\_\+free (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config }\end{DoxyParamCaption})}



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



Frees all resources that were allocated from the rtr\+\_\+mgr. 

rtr\+\_\+mgr\+\_\+stop must be called before, to shutdown all rtr\+\_\+sockets. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}. \\
\hline
\end{DoxyParams}
\Hypertarget{group__mod__rtr__mgr__h_ga6193edc233f45eaf5da177e96791a290}\label{group__mod__rtr__mgr__h_ga6193edc233f45eaf5da177e96791a290} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_get\_first\_group@{rtr\_mgr\_get\_first\_group}}
\index{rtr\_mgr\_get\_first\_group@{rtr\_mgr\_get\_first\_group}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_get\_first\_group()}{rtr\_mgr\_get\_first\_group()}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}} \texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+get\+\_\+first\+\_\+group (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config }\end{DoxyParamCaption})}



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



Returns the first, thus active group. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & The \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} The head of the linked list. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_ga819e12c87412b93ab3a69991574eb416}\label{group__mod__rtr__mgr__h_ga819e12c87412b93ab3a69991574eb416} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_get\_spki@{rtr\_mgr\_get\_spki}}
\index{rtr\_mgr\_get\_spki@{rtr\_mgr\_get\_spki}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_get\_spki()}{rtr\_mgr\_get\_spki()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+get\+\_\+spki (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{const uint32\+\_\+t}]{asn,  }\item[{uint8\+\_\+t \texorpdfstring{$\ast$}{*}}]{ski,  }\item[{struct \mbox{\hyperlink{structspki__record}{spki\+\_\+record}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{result,  }\item[{unsigned int \texorpdfstring{$\ast$}{*}}]{result\+\_\+count }\end{DoxyParamCaption})}



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



Returns all SPKI records which match the given ASN and SKI. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & \\
\hline
\mbox{\texttt{ in}}  & {\em asn} & Autonomous system number of the Origin-\/\+AS \\
\hline
\mbox{\texttt{ in}}  & {\em ski} & the SKI to search for \\
\hline
\mbox{\texttt{ out}}  & {\em result} & a array of all matching spki\+\_\+records \\
\hline
\mbox{\texttt{ out}}  & {\em result\+\_\+count} & number of returned spki\+\_\+records \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
SPKI\+\_\+\+SUCCESS On success 

SPKI\+\_\+\+ERROR If an error occurred 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_gaed6178fdc60f4e040b7fa3c62cdba4a0}\label{group__mod__rtr__mgr__h_gaed6178fdc60f4e040b7fa3c62cdba4a0} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_init@{rtr\_mgr\_init}}
\index{rtr\_mgr\_init@{rtr\_mgr\_init}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_init()}{rtr\_mgr\_init()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+init (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{config\+\_\+out,  }\item[{struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}}}]{groups\mbox{[}$\,$\mbox{]},  }\item[{const unsigned int}]{groups\+\_\+len,  }\item[{const \mbox{\hyperlink{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}{rtr\+\_\+mgr\+\_\+status\+\_\+fp}}}]{status\+\_\+fp,  }\item[{void \texorpdfstring{$\ast$}{*}}]{status\+\_\+fp\+\_\+data }\end{DoxyParamCaption})}



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



Initializes a \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em config\+\_\+out} & The \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} that will be initialized by this function. On error, \texorpdfstring{$\ast$}{*}config\+\_\+out will be NULL! \\
\hline
\mbox{\texttt{ in}}  & {\em groups} & Linked list of \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}. Every RTR socket in an \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} must be assoziated with an initialized transport socket. A Transport socket is only allowed to be associated with one rtr socket. The preference values must be unique in the linked list. More than one \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} with the same preference value isn\textquotesingle{}t allowed. \\
\hline
\mbox{\texttt{ in}}  & {\em groups\+\_\+len} & Number of elements in the groups array. Must be \texorpdfstring{$>$}{>}= 1. \\
\hline
\mbox{\texttt{ in}}  & {\em refresh\+\_\+interval} & Interval in seconds between serial queries that are sent to the server. Must be \texorpdfstring{$>$}{>}= 1 and \texorpdfstring{$<$}{<}= 86400s (1d), recommended default is 3600s (1h). \\
\hline
\mbox{\texttt{ in}}  & {\em expire\+\_\+interval} & Stored validation records will be deleted if cache was unable to refresh data for this period. The value should be twice the refresh\+\_\+interval and must be \texorpdfstring{$>$}{>}= 600s (10min) and \texorpdfstring{$<$}{<}= 172800s (2d). The recommended default is 7200s (2h). \\
\hline
\mbox{\texttt{ in}}  & {\em retry\+\_\+interval} & This parameter tells the router how long to wait (in seconds) before retrying a failed Serial Query or Reset Query. The value must be \texorpdfstring{$>$}{>}= 1s and \texorpdfstring{$<$}{<}= 7200s (2h). The recommended default is 600s (10min). \\
\hline
\mbox{\texttt{ in}}  & {\em status\+\_\+fp} & Pointer to a function that is called if the connection status from one of the socket groups is changed. \\
\hline
\mbox{\texttt{ in}}  & {\em status\+\_\+fp\+\_\+data} & Pointer to a memory area that is passed to the status\+\_\+fp function. Memory area can be freely used to pass user-\/defined data to the status\+\_\+fp callback. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
RTR\+\_\+\+ERROR If an error occurred 

RTR\+\_\+\+INVALID\+\_\+\+PARAM If refresh\+\_\+interval or expire\+\_\+interval is invalid. 

RTR\+\_\+\+SUCCESS On success. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_ga53416f8ca80557dffd58a1045dbefd27}\label{group__mod__rtr__mgr__h_ga53416f8ca80557dffd58a1045dbefd27} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_remove\_group@{rtr\_mgr\_remove\_group}}
\index{rtr\_mgr\_remove\_group@{rtr\_mgr\_remove\_group}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_remove\_group()}{rtr\_mgr\_remove\_group()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+remove\+\_\+group (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{unsigned int}]{preference }\end{DoxyParamCaption})}



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



Removes an existing \doxylink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group} from the linked list of config. 

The group to be removed is identified by its preference value. Should the group to be removed be currently active, it will be shut down and the next best group will be spun up. 
\begin{DoxyParams}{Parameters}
{\em config} & A \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} struct that has been initialized previously with rtr\+\_\+mgr\+\_\+init \\
\hline
{\em preference} & The preference value of the group to be removed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
RTR\+\_\+\+ERROR If no group with this preference value exists. 

RTR\+\_\+\+SUCCESS If group was successfully removed. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_ga080b1a71c5135927708186bc31509e23}\label{group__mod__rtr__mgr__h_ga080b1a71c5135927708186bc31509e23} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_setup\_sockets@{rtr\_mgr\_setup\_sockets}}
\index{rtr\_mgr\_setup\_sockets@{rtr\_mgr\_setup\_sockets}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_setup\_sockets()}{rtr\_mgr\_setup\_sockets()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+setup\+\_\+sockets (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{struct \mbox{\hyperlink{structrtr__mgr__group}{rtr\+\_\+mgr\+\_\+group}}}]{groups\mbox{[}$\,$\mbox{]},  }\item[{const unsigned int}]{groups\+\_\+len,  }\item[{const unsigned int}]{refresh\+\_\+interval,  }\item[{const unsigned int}]{expire\+\_\+interval,  }\item[{const unsigned int}]{retry\+\_\+interval }\end{DoxyParamCaption})}



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

\Hypertarget{group__mod__rtr__mgr__h_gaceb7aba7f5ff0b85d9226359047fea74}\label{group__mod__rtr__mgr__h_gaceb7aba7f5ff0b85d9226359047fea74} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_start@{rtr\_mgr\_start}}
\index{rtr\_mgr\_start@{rtr\_mgr\_start}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_start()}{rtr\_mgr\_start()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+start (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config }\end{DoxyParamCaption})}



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



Establishes \doxylink{structrtr__socket}{rtr\+\_\+socket} connections. 

Establishes the connection with the rtr\+\_\+sockets of the group with the lowest preference value and handles errors as defined in the RPKI-\/\+RTR protocol. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & Pointer to an initialized \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
RTR\+\_\+\+SUCCESS On success 

RTR\+\_\+\+ERROR On error 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_gafeb8ff60f0be72a01652291471067089}\label{group__mod__rtr__mgr__h_gafeb8ff60f0be72a01652291471067089} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_status\_to\_str@{rtr\_mgr\_status\_to\_str}}
\index{rtr\_mgr\_status\_to\_str@{rtr\_mgr\_status\_to\_str}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_status\_to\_str()}{rtr\_mgr\_status\_to\_str()}}
{\footnotesize\ttfamily const char \texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+status\+\_\+to\+\_\+str (\begin{DoxyParamCaption}\item[{enum \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\+\_\+mgr\+\_\+status}}}]{status }\end{DoxyParamCaption})}



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



Converts a rtr\+\_\+mgr\+\_\+status to a String. 


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

!=NULL The rtr\+\_\+rtr\+\_\+mgr\+\_\+status as String. 
\end{DoxyReturn}
\Hypertarget{group__mod__rtr__mgr__h_gaafbbd703ddfec0c1493f3e77a92cf36e}\label{group__mod__rtr__mgr__h_gaafbbd703ddfec0c1493f3e77a92cf36e} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_stop@{rtr\_mgr\_stop}}
\index{rtr\_mgr\_stop@{rtr\_mgr\_stop}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_stop()}{rtr\_mgr\_stop()}}
{\footnotesize\ttfamily void rtr\+\_\+mgr\+\_\+stop (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config }\end{DoxyParamCaption})}



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



Terminates \doxylink{structrtr__socket}{rtr\+\_\+socket} connections. 

Terminates all \doxylink{structrtr__socket}{rtr\+\_\+socket} connections defined in the config. All pfx\+\_\+records received from these sockets will be purged. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & The \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} struct \\
\hline
\end{DoxyParams}
\Hypertarget{group__mod__rtr__mgr__h_gad06ddac552dc3780801c5f8f2793afff}\label{group__mod__rtr__mgr__h_gad06ddac552dc3780801c5f8f2793afff} 
\index{RTR connection manager@{RTR connection manager}!rtr\_mgr\_validate@{rtr\_mgr\_validate}}
\index{rtr\_mgr\_validate@{rtr\_mgr\_validate}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{rtr\_mgr\_validate()}{rtr\_mgr\_validate()}}
{\footnotesize\ttfamily int rtr\+\_\+mgr\+\_\+validate (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}}]{config,  }\item[{const uint32\+\_\+t}]{asn,  }\item[{const struct \mbox{\hyperlink{structlrtr__ip__addr}{lrtr\+\_\+ip\+\_\+addr}} \texorpdfstring{$\ast$}{*}}]{prefix,  }\item[{const uint8\+\_\+t}]{mask\+\_\+len,  }\item[{enum \mbox{\hyperlink{group__mod__pfx__h_ga9f87b27f024a9db70884c3981e030aa0}{pfxv\+\_\+state}} \texorpdfstring{$\ast$}{*}}]{result }\end{DoxyParamCaption})}



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



Validates the origin of a BGP-\/\+Route. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & The \doxylink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config} \\
\hline
\mbox{\texttt{ in}}  & {\em asn} & Autonomous system number of the Origin-\/\+AS of the prefix \\
\hline
\mbox{\texttt{ in}}  & {\em prefix} & Announced network prefix \\
\hline
\mbox{\texttt{ in}}  & {\em mask\+\_\+len} & Length of the network mask of the announced prefix \\
\hline
\mbox{\texttt{ out}}  & {\em result} & Outcome of the validation \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
PFX\+\_\+\+SUCCESS On success. 

PFX\+\_\+\+ERROR If an error occurred. 
\end{DoxyReturn}


\doxysubsection{Variable Documentation}
\Hypertarget{group__mod__rtr__mgr__h_ga00f446fcbe92b8e17261ec9c6eca87ca}\label{group__mod__rtr__mgr__h_ga00f446fcbe92b8e17261ec9c6eca87ca} 
\index{RTR connection manager@{RTR connection manager}!aspa\_table@{aspa\_table}}
\index{aspa\_table@{aspa\_table}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{aspa\_table}{aspa\_table}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structaspa__table}{aspa\+\_\+table}}\texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+config\+::aspa\+\_\+table}

\Hypertarget{group__mod__rtr__mgr__h_gacf7dc8c1448ec514c75008b0b4d19343}\label{group__mod__rtr__mgr__h_gacf7dc8c1448ec514c75008b0b4d19343} 
\index{RTR connection manager@{RTR connection manager}!groups@{groups}}
\index{groups@{groups}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{groups}{groups}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structtommy__list__wrapper}{tommy\+\_\+list\+\_\+wrapper}}\texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+config\+::groups}

\Hypertarget{group__mod__rtr__mgr__h_gacd6563c25663aae1b9b5a26a9cf28014}\label{group__mod__rtr__mgr__h_gacd6563c25663aae1b9b5a26a9cf28014} 
\index{RTR connection manager@{RTR connection manager}!len@{len}}
\index{len@{len}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{len}{len}}
{\footnotesize\ttfamily unsigned int rtr\+\_\+mgr\+\_\+config\+::len}

\Hypertarget{group__mod__rtr__mgr__h_gae692c4a314aa80e8312fa7410335afe8}\label{group__mod__rtr__mgr__h_gae692c4a314aa80e8312fa7410335afe8} 
\index{RTR connection manager@{RTR connection manager}!mutex@{mutex}}
\index{mutex@{mutex}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{mutex}{mutex}}
{\footnotesize\ttfamily pthread\+\_\+rwlock\+\_\+t rtr\+\_\+mgr\+\_\+config\+::mutex}

\Hypertarget{group__mod__rtr__mgr__h_gad9415cb04f74c7281b6762c1cdf2d659}\label{group__mod__rtr__mgr__h_gad9415cb04f74c7281b6762c1cdf2d659} 
\index{RTR connection manager@{RTR connection manager}!pfx\_table@{pfx\_table}}
\index{pfx\_table@{pfx\_table}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{pfx\_table}{pfx\_table}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structpfx__table}{pfx\+\_\+table}}\texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+config\+::pfx\+\_\+table}

\Hypertarget{group__mod__rtr__mgr__h_ga2c6c543d9d28685688f249d6e8efac27}\label{group__mod__rtr__mgr__h_ga2c6c543d9d28685688f249d6e8efac27} 
\index{RTR connection manager@{RTR connection manager}!preference@{preference}}
\index{preference@{preference}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{preference}{preference}}
{\footnotesize\ttfamily uint8\+\_\+t rtr\+\_\+mgr\+\_\+group\+::preference}

\Hypertarget{group__mod__rtr__mgr__h_ga1071ec413bdf47518e488074e94e16f5}\label{group__mod__rtr__mgr__h_ga1071ec413bdf47518e488074e94e16f5} 
\index{RTR connection manager@{RTR connection manager}!sockets@{sockets}}
\index{sockets@{sockets}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{sockets}{sockets}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structrtr__socket}{rtr\+\_\+socket}}\texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+group\+::sockets}

\Hypertarget{group__mod__rtr__mgr__h_gaae9b2485e2b858d4ce55218532ba3ade}\label{group__mod__rtr__mgr__h_gaae9b2485e2b858d4ce55218532ba3ade} 
\index{RTR connection manager@{RTR connection manager}!sockets\_len@{sockets\_len}}
\index{sockets\_len@{sockets\_len}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{sockets\_len}{sockets\_len}}
{\footnotesize\ttfamily unsigned int rtr\+\_\+mgr\+\_\+group\+::sockets\+\_\+len}

\Hypertarget{group__mod__rtr__mgr__h_gabf8b995cb84fafb77ea1d3d54bc47242}\label{group__mod__rtr__mgr__h_gabf8b995cb84fafb77ea1d3d54bc47242} 
\index{RTR connection manager@{RTR connection manager}!spki\_table@{spki\_table}}
\index{spki\_table@{spki\_table}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{spki\_table}{spki\_table}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structspki__table}{spki\+\_\+table}}\texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+config\+::spki\+\_\+table}

\Hypertarget{group__mod__rtr__mgr__h_gacdccd920d7153e858f955daf443d40d2}\label{group__mod__rtr__mgr__h_gacdccd920d7153e858f955daf443d40d2} 
\index{RTR connection manager@{RTR connection manager}!status@{status}}
\index{status@{status}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{status}{status}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\+\_\+mgr\+\_\+status}} rtr\+\_\+mgr\+\_\+group\+::status}

\Hypertarget{group__mod__rtr__mgr__h_gad19d313effb6af6b360b30dc372232b4}\label{group__mod__rtr__mgr__h_gad19d313effb6af6b360b30dc372232b4} 
\index{RTR connection manager@{RTR connection manager}!status\_fp@{status\_fp}}
\index{status\_fp@{status\_fp}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{status\_fp}{status\_fp}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}{rtr\+\_\+mgr\+\_\+status\+\_\+fp}} rtr\+\_\+mgr\+\_\+config\+::status\+\_\+fp}

\Hypertarget{group__mod__rtr__mgr__h_ga17d45d7205e527433e11be7db516f321}\label{group__mod__rtr__mgr__h_ga17d45d7205e527433e11be7db516f321} 
\index{RTR connection manager@{RTR connection manager}!status\_fp\_data@{status\_fp\_data}}
\index{status\_fp\_data@{status\_fp\_data}!RTR connection manager@{RTR connection manager}}
\doxysubsubsection{\texorpdfstring{status\_fp\_data}{status\_fp\_data}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} rtr\+\_\+mgr\+\_\+config\+::status\+\_\+fp\+\_\+data}

\input{group__mod__bgpsec__h}
