\doxysection{rtr\+\_\+mgr.\+h}
\hypertarget{rtr__mgr_8h_source}{}\label{rtr__mgr_8h_source}\index{rtrlib/rtr\_mgr.h@{rtrlib/rtr\_mgr.h}}
\mbox{\hyperlink{rtr__mgr_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{00002\ \textcolor{comment}{\ *\ This\ file\ is\ part\ of\ RTRlib.}}
\DoxyCodeLine{00003\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00004\ \textcolor{comment}{\ *\ This\ file\ is\ subject\ to\ the\ terms\ and\ conditions\ of\ the\ MIT\ license.}}
\DoxyCodeLine{00005\ \textcolor{comment}{\ *\ See\ the\ file\ LICENSE\ in\ the\ top\ level\ directory\ for\ more\ details.}}
\DoxyCodeLine{00006\ \textcolor{comment}{\ *}}
\DoxyCodeLine{00007\ \textcolor{comment}{\ *\ Website:\ http://rtrlib.realmv6.org/}}
\DoxyCodeLine{00008\ \textcolor{comment}{\ */}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00033\ \textcolor{preprocessor}{\#ifndef\ RTR\_MGR}}
\DoxyCodeLine{00034\ \textcolor{preprocessor}{\#define\ RTR\_MGR}}
\DoxyCodeLine{00035\ }
\DoxyCodeLine{00036\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{config_8h}{config.h}}"{}}}
\DoxyCodeLine{00037\ }
\DoxyCodeLine{00038\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{aspa_8h}{rtrlib/aspa/aspa.h}}"{}}}
\DoxyCodeLine{00039\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{pfx_8h}{rtrlib/pfx/pfx.h}}"{}}}
\DoxyCodeLine{00040\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{spkitable_8h}{rtrlib/spki/spkitable.h}}"{}}}
\DoxyCodeLine{00041\ \textcolor{preprocessor}{\#ifdef\ RTRLIB\_BGPSEC\_ENABLED}}
\DoxyCodeLine{00042\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{bgpsec_8h}{rtrlib/bgpsec/bgpsec.h}}"{}}}
\DoxyCodeLine{00043\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00044\ }
\DoxyCodeLine{00045\ \textcolor{preprocessor}{\#include\ <pthread.h>}}
\DoxyCodeLine{00046\ \textcolor{preprocessor}{\#include\ <stdint.h>}}
\DoxyCodeLine{00047\ }
\DoxyCodeLine{00051\ \textcolor{keyword}{enum}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\_mgr\_status}}\ \{}
\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26af91b0ea3f052b599a687a52400db71e7}{RTR\_MGR\_CLOSED}},}
\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a8e74c946bd4ed59e865c7a8505dc0d6e}{RTR\_MGR\_CONNECTING}},}
\DoxyCodeLine{00057\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a41c103f5ed050c4d2b8c441f119684fe}{RTR\_MGR\_ESTABLISHED}},}
\DoxyCodeLine{00059\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__rtr__mgr__h_gga71d120a07700cf2089c0dbd9c15caa26a248dc299e8b9ed438d06e4c0f96835c4}{RTR\_MGR\_ERROR}},}
\DoxyCodeLine{00060\ \};}
\DoxyCodeLine{00061\ }
\DoxyCodeLine{00072\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__mgr__group}{rtr\_mgr\_group}}\ \{}
\DoxyCodeLine{00073\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__socket}{rtr\_socket}}\ **\mbox{\hyperlink{group__mod__rtr__mgr__h_ga1071ec413bdf47518e488074e94e16f5}{sockets}};}
\DoxyCodeLine{00074\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gaae9b2485e2b858d4ce55218532ba3ade}{sockets\_len}};}
\DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ uint8\_t\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga2c6c543d9d28685688f249d6e8efac27}{preference}};}
\DoxyCodeLine{00076\ \ \ \ \ \ \ \ \ \textcolor{keyword}{enum}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\_mgr\_status}}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gacdccd920d7153e858f955daf443d40d2}{status}};}
\DoxyCodeLine{00077\ \};}
\DoxyCodeLine{00078\ }
\DoxyCodeLine{00079\ \textcolor{keyword}{typedef}\ void\ (*\mbox{\hyperlink{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}{rtr\_mgr\_status\_fp}})(\textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__mgr__group}{rtr\_mgr\_group}}\ *,\ \textcolor{keyword}{enum}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\_mgr\_status}},\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__socket}{rtr\_socket}}\ *,\ \textcolor{keywordtype}{void}\ *);}
\DoxyCodeLine{00080\ }
\DoxyCodeLine{00081\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structtommy__list__wrapper}{tommy\_list\_wrapper}};}
\DoxyCodeLine{00082\ }
\DoxyCodeLine{00083\ \textcolor{comment}{//\ TODO\ Add\ refresh,\ expire,\ and\ retry\ intervals\ to\ config\ for\ easier\ access.}}
\DoxyCodeLine{00084\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ \{}
\DoxyCodeLine{00085\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structtommy__list__wrapper}{tommy\_list\_wrapper}}\ *\mbox{\hyperlink{group__mod__rtr__mgr__h_gacf7dc8c1448ec514c75008b0b4d19343}{groups}};}
\DoxyCodeLine{00086\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gacd6563c25663aae1b9b5a26a9cf28014}{len}};}
\DoxyCodeLine{00087\ \ \ \ \ \ \ \ \ pthread\_rwlock\_t\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gae692c4a314aa80e8312fa7410335afe8}{mutex}};}
\DoxyCodeLine{00088\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}{rtr\_mgr\_status\_fp}}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gad19d313effb6af6b360b30dc372232b4}{status\_fp}};}
\DoxyCodeLine{00089\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *\mbox{\hyperlink{group__mod__rtr__mgr__h_ga17d45d7205e527433e11be7db516f321}{status\_fp\_data}};}
\DoxyCodeLine{00090\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structpfx__table}{pfx\_table}}\ *\mbox{\hyperlink{group__mod__rtr__mgr__h_gad9415cb04f74c7281b6762c1cdf2d659}{pfx\_table}};}
\DoxyCodeLine{00091\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structspki__table}{spki\_table}}\ *\mbox{\hyperlink{group__mod__rtr__mgr__h_gabf8b995cb84fafb77ea1d3d54bc47242}{spki\_table}};}
\DoxyCodeLine{00092\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structaspa__table}{aspa\_table}}\ *\mbox{\hyperlink{group__mod__rtr__mgr__h_ga00f446fcbe92b8e17261ec9c6eca87ca}{aspa\_table}};}
\DoxyCodeLine{00093\ \};}
\DoxyCodeLine{00094\ }
\DoxyCodeLine{00129\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gaed6178fdc60f4e040b7fa3c62cdba4a0}{rtr\_mgr\_init}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ **config\_out,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__group}{rtr\_mgr\_group}}\ groups[],\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ groups\_len,}
\DoxyCodeLine{00130\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gaa11dced0dd18db9032042d05b32cb427}{rtr\_mgr\_status\_fp}}\ status\_fp,\ \textcolor{keywordtype}{void}\ *status\_fp\_data);}
\DoxyCodeLine{00131\ }
\DoxyCodeLine{00132\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga080b1a71c5135927708186bc31509e23}{rtr\_mgr\_setup\_sockets}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__group}{rtr\_mgr\_group}}\ groups[],\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ groups\_len,}
\DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ refresh\_interval,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ expire\_interval,}
\DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ retry\_interval);}
\DoxyCodeLine{00135\ }
\DoxyCodeLine{00145\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gadefd615057b332b3e2a8f9a03ac29bb1}{rtr\_mgr\_add\_roa\_support}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{group__mod__trie__pfx__h_gafcc9cb0377b569f364b373c82d5d2d3c}{pfx\_update\_fp}}\ \mbox{\hyperlink{group__mod__trie__pfx__h_gafcc9cb0377b569f364b373c82d5d2d3c}{pfx\_update\_fp}});}
\DoxyCodeLine{00146\ }
\DoxyCodeLine{00165\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga45bda1ba2e153eae850739368bf1540c}{rtr\_mgr\_add\_group}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__group}{rtr\_mgr\_group}}\ *group);}
\DoxyCodeLine{00178\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga53416f8ca80557dffd58a1045dbefd27}{rtr\_mgr\_remove\_group}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ preference);}
\DoxyCodeLine{00184\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga194b2f6644a3d6034bb38cda3a3777da}{rtr\_mgr\_free}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config);}
\DoxyCodeLine{00185\ }
\DoxyCodeLine{00195\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gaceb7aba7f5ff0b85d9226359047fea74}{rtr\_mgr\_start}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config);}
\DoxyCodeLine{00196\ }
\DoxyCodeLine{00203\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gaafbbd703ddfec0c1493f3e77a92cf36e}{rtr\_mgr\_stop}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config);}
\DoxyCodeLine{00204\ }
\DoxyCodeLine{00211\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga3cee24ddc840cd33739c395eae3451e9}{rtr\_mgr\_conf\_in\_sync}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config);}
\DoxyCodeLine{00212\ }
\DoxyCodeLine{00223\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gad06ddac552dc3780801c5f8f2793afff}{rtr\_mgr\_validate}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keyword}{const}\ uint32\_t\ \mbox{\hyperlink{rtr__pdus_8h_af54a4e57359d5c0dc5935878531a9e58}{asn}},\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structlrtr__ip__addr}{lrtr\_ip\_addr}}\ *prefix,}
\DoxyCodeLine{00224\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ mask\_len,\ \textcolor{keyword}{enum}\ \mbox{\hyperlink{group__mod__pfx__h_ga9f87b27f024a9db70884c3981e030aa0}{pfxv\_state}}\ *result);}
\DoxyCodeLine{00225\ }
\DoxyCodeLine{00236\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga819e12c87412b93ab3a69991574eb416}{rtr\_mgr\_get\_spki}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keyword}{const}\ uint32\_t\ \mbox{\hyperlink{rtr__pdus_8h_af54a4e57359d5c0dc5935878531a9e58}{asn}},\ uint8\_t\ *\mbox{\hyperlink{rtr__pdus_8h_a12038882b8c1e8109c0e4b1ea6f8cb5c}{ski}},\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structspki__record}{spki\_record}}\ **result,}
\DoxyCodeLine{00237\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ *result\_count);}
\DoxyCodeLine{00238\ }
\DoxyCodeLine{00245\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\mbox{\hyperlink{group__mod__rtr__mgr__h_gafeb8ff60f0be72a01652291471067089}{rtr\_mgr\_status\_to\_str}}(\textcolor{keyword}{enum}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga71d120a07700cf2089c0dbd9c15caa26}{rtr\_mgr\_status}}\ status);}
\DoxyCodeLine{00246\ }
\DoxyCodeLine{00255\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gae340f35a7136ff45a2493358eaef2d28}{rtr\_mgr\_for\_each\_ipv4\_record}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \mbox{\hyperlink{group__mod__pfx__h_ga48478a61dc1cd09f646631b1691ff707}{pfx\_for\_each\_fp}}\ fp,\ \textcolor{keywordtype}{void}\ *data);}
\DoxyCodeLine{00256\ }
\DoxyCodeLine{00265\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gaaa6b4be017209bbe431234244b4f43ee}{rtr\_mgr\_for\_each\_ipv6\_record}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \mbox{\hyperlink{group__mod__pfx__h_ga48478a61dc1cd09f646631b1691ff707}{pfx\_for\_each\_fp}}\ fp,\ \textcolor{keywordtype}{void}\ *data);}
\DoxyCodeLine{00266\ }
\DoxyCodeLine{00272\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__mgr__group}{rtr\_mgr\_group}}\ *\mbox{\hyperlink{group__mod__rtr__mgr__h_ga6193edc233f45eaf5da177e96791a290}{rtr\_mgr\_get\_first\_group}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config);}
\DoxyCodeLine{00273\ }
\DoxyCodeLine{00274\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_ga75e2e76ba6475856c7bb3eac089790d6}{rtr\_mgr\_for\_each\_group}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keywordtype}{void}\ (*fp)(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__group}{rtr\_mgr\_group}}\ *group,\ \textcolor{keywordtype}{void}\ *data),}
\DoxyCodeLine{00275\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *data);}
\DoxyCodeLine{00276\ }
\DoxyCodeLine{00286\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gaa0acbc27baad40c9da7eb6cc2cd1dc1c}{rtr\_mgr\_add\_aspa\_support}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{group__mod__aspa__h_ga73e1e2e74f1f37727efe950d85fe659e}{aspa\_update\_fp}}\ \mbox{\hyperlink{group__mod__aspa__h_ga73e1e2e74f1f37727efe950d85fe659e}{aspa\_update\_fp}});}
\DoxyCodeLine{00287\ }
\DoxyCodeLine{00297\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__rtr__mgr__h_gad4bb8a652cf56cde87b26c196e326c54}{rtr\_mgr\_add\_spki\_support}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{group__mod__spki__h_ga208a2bec5211e883b44ebe693a1c5e5d}{spki\_update\_fp}}\ \mbox{\hyperlink{group__mod__spki__h_ga208a2bec5211e883b44ebe693a1c5e5d}{spki\_update\_fp}});}
\DoxyCodeLine{00298\ }
\DoxyCodeLine{00299\ \textcolor{comment}{/*\ @\}\ */}}
\DoxyCodeLine{00300\ }
\DoxyCodeLine{00307\ \textcolor{preprocessor}{\#ifdef\ RTRLIB\_BGPSEC\_ENABLED}}
\DoxyCodeLine{00308\ }
\DoxyCodeLine{00318\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_gaf9badeb7acc29cff0418eee9e588de43}{rtr\_mgr\_bgpsec\_validate\_as\_path}}(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *data,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config);}
\DoxyCodeLine{00319\ }
\DoxyCodeLine{00330\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga02191e23df60ef7065f10bf73025f34b}{rtr\_mgr\_bgpsec\_generate\_signature}}(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *data,\ uint8\_t\ *private\_key,}
\DoxyCodeLine{00331\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ **new\_signature);}
\DoxyCodeLine{00332\ }
\DoxyCodeLine{00337\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_gaa25054a937c4d711b4a7536881a2e4ea}{rtr\_mgr\_bgpsec\_get\_version}}(\textcolor{keywordtype}{void});}
\DoxyCodeLine{00338\ }
\DoxyCodeLine{00345\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga44d36f1ae84b494d71b8bc3cb9344b2c}{rtr\_mgr\_bgpsec\_has\_algorithm\_suite}}(uint8\_t\ alg\_suite);}
\DoxyCodeLine{00346\ }
\DoxyCodeLine{00352\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga9e207041eaa0b33661a729ef03435b22}{rtr\_mgr\_bgpsec\_get\_algorithm\_suites}}(\textcolor{keyword}{const}\ uint8\_t\ **algs\_arr);}
\DoxyCodeLine{00353\ }
\DoxyCodeLine{00359\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_gaf9d3006e8030ed9a277908affd93ffe6}{rtr\_mgr\_bgpsec\_free\_signatures}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *seg);}
\DoxyCodeLine{00360\ }
\DoxyCodeLine{00369\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gae8901042f22059377d0b65401d0fb3ce}{rtr\_mgr\_bgpsec\_new\_secure\_path\_seg}}(uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gae382b67d56735b6edfa721ba591f1175}{pcount}},\ uint8\_t\ \mbox{\hyperlink{rtr__pdus_8h_aa2585d779da0ab21273a8d92de9a0ebe}{flags}},\ uint32\_t\ \mbox{\hyperlink{rtr__pdus_8h_af54a4e57359d5c0dc5935878531a9e58}{asn}});}
\DoxyCodeLine{00370\ }
\DoxyCodeLine{00376\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_gad8d0724e1322c2f030bba2780643cca1}{rtr\_mgr\_bgpsec\_prepend\_sec\_path\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *new\_seg);}
\DoxyCodeLine{00377\ }
\DoxyCodeLine{00387\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gae4718b94b70313a593eb99d1a9f1985e}{rtr\_mgr\_bgpsec\_new\_signature\_seg}}(uint8\_t\ *\mbox{\hyperlink{rtr__pdus_8h_a12038882b8c1e8109c0e4b1ea6f8cb5c}{ski}},\ uint16\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gae416f3a1f81da3b5f3df9b1d186bd1a9}{sig\_len}},\ uint8\_t\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaed4b28efa853473e1c780a35292b2285}{signature}});}
\DoxyCodeLine{00388\ }
\DoxyCodeLine{00398\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga3ed9f03a167dcafec5c817aadb3a2cc1}{rtr\_mgr\_bgpsec\_prepend\_sig\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *new\_seg);}
\DoxyCodeLine{00399\ }
\DoxyCodeLine{00410\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga1647a76f6faa7bdff40fdceaa36cf344}{rtr\_mgr\_bgpsec\_new}}(uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gad95c036d25ce114cca924480585b0e97}{alg}},\ uint8\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga6a5f2e8fce661744a358244a54aad944}{safi}},\ uint16\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gab7dc6b6ed0af13dd11ff846d0fcb42b9}{afi}},\ uint32\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_ga4dd9f495b6b7d774b275d6e599918b24}{my\_as}},\ uint32\_t\ \mbox{\hyperlink{group__mod__bgpsec__h_gac8c9ef46ad63dfb79de8a4d45bf04e51}{target\_as}},}
\DoxyCodeLine{00411\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\_bgpsec\_nlri}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga1d80cf9fda81ed3c92cd6df3331c083e}{nlri}});}
\DoxyCodeLine{00412\ }
\DoxyCodeLine{00418\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga9ceb6a57f16491ea2bf620ea289d5e43}{rtr\_mgr\_bgpsec\_free}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec);}
\DoxyCodeLine{00419\ }
\DoxyCodeLine{00425\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_gabb9fa496596ad8b5e48eae935fe91e67}{rtr\_mgr\_free\_secure\_path}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *seg);}
\DoxyCodeLine{00426\ }
\DoxyCodeLine{00434\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gacd999a5a72669ace81415ef8d14e855d}{rtr\_mgr\_bgpsec\_pop\_secure\_path\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec);}
\DoxyCodeLine{00435\ }
\DoxyCodeLine{00443\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gac740f9108edae0a37ff307f278f6d461}{rtr\_mgr\_bgpsec\_pop\_signature\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec);}
\DoxyCodeLine{00444\ }
\DoxyCodeLine{00445\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_gae064e87f7417c7a2d59a24914c968668}{rtr\_mgr\_bgpsec\_append\_sec\_path\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\_secure\_path\_seg}}\ *new\_seg);}
\DoxyCodeLine{00446\ }
\DoxyCodeLine{00447\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga8f0c212f739708bb38773641bb8352d7}{rtr\_mgr\_bgpsec\_append\_sig\_seg}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec}{rtr\_bgpsec}}\ *bgpsec,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__signature__seg}{rtr\_signature\_seg}}\ *new\_seg);}
\DoxyCodeLine{00448\ }
\DoxyCodeLine{00449\ \textcolor{keyword}{struct\ }\mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\_bgpsec\_nlri}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_ga7d836e01783b448ed120e986867884d3}{rtr\_mgr\_bgpsec\_nlri\_new}}(\textcolor{keywordtype}{int}\ \mbox{\hyperlink{group__mod__bgpsec__h_gacb97c8e9530cb198806774905ca03e54}{nlri\_len}});}
\DoxyCodeLine{00450\ }
\DoxyCodeLine{00451\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_ga4341f88be93d24123063e32b5ec0e198}{rtr\_mgr\_bgpsec\_nlri\_free}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\_bgpsec\_nlri}}\ *\mbox{\hyperlink{group__mod__bgpsec__h_gaeb1c62458cc35831b9ce13c00b7dd011}{nlri}});}
\DoxyCodeLine{00452\ }
\DoxyCodeLine{00453\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{group__mod__bgpsec__h_gad5bdb4e9a6956d387bb7d1598e129242}{rtr\_mgr\_bgpsec\_add\_spki\_record}}(\textcolor{keyword}{struct}\ \mbox{\hyperlink{structrtr__mgr__config}{rtr\_mgr\_config}}\ *config,\ \textcolor{keyword}{struct}\ \mbox{\hyperlink{structspki__record}{spki\_record}}\ *record);}
\DoxyCodeLine{00454\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00455\ }
\DoxyCodeLine{00456\ \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
