\doxysection{rtrlib/rtr\+\_\+mgr.h File Reference}
\hypertarget{rtr__mgr_8h}{}\label{rtr__mgr_8h}\index{rtrlib/rtr\_mgr.h@{rtrlib/rtr\_mgr.h}}
{\ttfamily \#include "{}config.\+h"{}}\newline
{\ttfamily \#include "{}rtrlib/aspa/aspa.\+h"{}}\newline
{\ttfamily \#include "{}rtrlib/pfx/pfx.\+h"{}}\newline
{\ttfamily \#include "{}rtrlib/spki/spkitable.\+h"{}}\newline
{\ttfamily \#include "{}rtrlib/bgpsec/bgpsec.\+h"{}}\newline
{\ttfamily \#include $<$pthread.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
\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}\item 
int \mbox{\hyperlink{group__mod__bgpsec__h_gaf9badeb7acc29cff0418eee9e588de43}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+validate\+\_\+as\+\_\+path}} (const struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}data, struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config)
\begin{DoxyCompactList}\small\item\em Validation function for AS path validation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__bgpsec__h_ga02191e23df60ef7065f10bf73025f34b}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+generate\+\_\+signature}} (const struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}data, uint8\+\_\+t \texorpdfstring{$\ast$}{*}private\+\_\+key, struct \mbox{\hyperlink{structrtr__signature__seg}{rtr\+\_\+signature\+\_\+seg}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}new\+\_\+signature)
\begin{DoxyCompactList}\small\item\em Signing function for a BGPsec\+\_\+\+PATH. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__bgpsec__h_gaa25054a937c4d711b4a7536881a2e4ea}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+get\+\_\+version}} (void)
\begin{DoxyCompactList}\small\item\em Returns the highest supported BGPsec version. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__bgpsec__h_ga44d36f1ae84b494d71b8bc3cb9344b2c}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+has\+\_\+algorithm\+\_\+suite}} (uint8\+\_\+t alg\+\_\+suite)
\begin{DoxyCompactList}\small\item\em Check, if an algorithm suite is supported by RTRlib. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__bgpsec__h_ga9e207041eaa0b33661a729ef03435b22}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+get\+\_\+algorithm\+\_\+suites}} (const uint8\+\_\+t \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}algs\+\_\+arr)
\begin{DoxyCompactList}\small\item\em Returns pointer to a list that holds all supported algorithm suites. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__bgpsec__h_gaf9d3006e8030ed9a277908affd93ffe6}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+free\+\_\+signatures}} (struct \mbox{\hyperlink{structrtr__signature__seg}{rtr\+\_\+signature\+\_\+seg}} \texorpdfstring{$\ast$}{*}seg)
\begin{DoxyCompactList}\small\item\em Free a signature and any signatures that are pointed to. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\+\_\+secure\+\_\+path\+\_\+seg}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__bgpsec__h_gae8901042f22059377d0b65401d0fb3ce}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+new\+\_\+secure\+\_\+path\+\_\+seg}} (uint8\+\_\+t pcount, uint8\+\_\+t \mbox{\hyperlink{rtr__pdus_8h_aa2585d779da0ab21273a8d92de9a0ebe}{flags}}, uint32\+\_\+t \mbox{\hyperlink{rtr__pdus_8h_af54a4e57359d5c0dc5935878531a9e58}{asn}})
\begin{DoxyCompactList}\small\item\em Return an allocated and initialized Secure Path Segment. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__bgpsec__h_gad8d0724e1322c2f030bba2780643cca1}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+prepend\+\_\+sec\+\_\+path\+\_\+seg}} (struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}bgpsec, struct \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\+\_\+secure\+\_\+path\+\_\+seg}} \texorpdfstring{$\ast$}{*}new\+\_\+seg)
\begin{DoxyCompactList}\small\item\em Prepend a given Secure Path Segment to \doxylink{group__mod__bgpsec__h_ga70c566ac333d38b555585a204f6fdb86}{rtr\+\_\+bgpsec\+::path}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structrtr__signature__seg}{rtr\+\_\+signature\+\_\+seg}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__bgpsec__h_gae4718b94b70313a593eb99d1a9f1985e}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+new\+\_\+signature\+\_\+seg}} (uint8\+\_\+t \texorpdfstring{$\ast$}{*}\mbox{\hyperlink{rtr__pdus_8h_a12038882b8c1e8109c0e4b1ea6f8cb5c}{ski}}, uint16\+\_\+t sig\+\_\+len, uint8\+\_\+t \texorpdfstring{$\ast$}{*}signature)
\begin{DoxyCompactList}\small\item\em Return an allocated and initialized Signature. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__mod__bgpsec__h_ga3ed9f03a167dcafec5c817aadb3a2cc1}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+prepend\+\_\+sig\+\_\+seg}} (struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}bgpsec, struct \mbox{\hyperlink{structrtr__signature__seg}{rtr\+\_\+signature\+\_\+seg}} \texorpdfstring{$\ast$}{*}new\+\_\+seg)
\begin{DoxyCompactList}\small\item\em Prepend a given Signature Segment to \doxylink{group__mod__bgpsec__h_ga9ac4281b75fa0e3b0f33d5eb7ca26d56}{rtr\+\_\+bgpsec\+::sigs}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__bgpsec__h_ga1647a76f6faa7bdff40fdceaa36cf344}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+new}} (uint8\+\_\+t alg, uint8\+\_\+t safi, uint16\+\_\+t afi, uint32\+\_\+t my\+\_\+as, uint32\+\_\+t target\+\_\+as, struct \mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\+\_\+bgpsec\+\_\+nlri}} \texorpdfstring{$\ast$}{*}nlri)
\begin{DoxyCompactList}\small\item\em Initializes and returns a pointer to a \doxylink{structrtr__bgpsec}{rtr\+\_\+bgpsec} struct. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__bgpsec__h_ga9ceb6a57f16491ea2bf620ea289d5e43}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+free}} (struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}bgpsec)
\begin{DoxyCompactList}\small\item\em Free a \doxylink{structrtr__bgpsec}{rtr\+\_\+bgpsec} struct and any Secure Path and Signature Segments it holds. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__bgpsec__h_gabb9fa496596ad8b5e48eae935fe91e67}{rtr\+\_\+mgr\+\_\+free\+\_\+secure\+\_\+path}} (struct \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\+\_\+secure\+\_\+path\+\_\+seg}} \texorpdfstring{$\ast$}{*}seg)
\begin{DoxyCompactList}\small\item\em Free a Secure Path Segment and any segments that are pointed to by \doxylink{group__mod__bgpsec__h_gaacb2a93cf30e6cbef1124f8479978bee}{rtr\+\_\+secure\+\_\+path\+\_\+seg\+::next}. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\+\_\+secure\+\_\+path\+\_\+seg}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__bgpsec__h_gacd999a5a72669ace81415ef8d14e855d}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+pop\+\_\+secure\+\_\+path\+\_\+seg}} (struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}bgpsec)
\begin{DoxyCompactList}\small\item\em Retrieve a pointer to the last appended Secure Path Segment from a bgpsec struct. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structrtr__signature__seg}{rtr\+\_\+signature\+\_\+seg}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__bgpsec__h_gac740f9108edae0a37ff307f278f6d461}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+pop\+\_\+signature\+\_\+seg}} (struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}bgpsec)
\begin{DoxyCompactList}\small\item\em Retrieve a pointer to the last appended Signature Segment from a bgpsec struct. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__mod__bgpsec__h_gae064e87f7417c7a2d59a24914c968668}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+append\+\_\+sec\+\_\+path\+\_\+seg}} (struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}bgpsec, struct \mbox{\hyperlink{structrtr__secure__path__seg}{rtr\+\_\+secure\+\_\+path\+\_\+seg}} \texorpdfstring{$\ast$}{*}new\+\_\+seg)
\item 
int \mbox{\hyperlink{group__mod__bgpsec__h_ga8f0c212f739708bb38773641bb8352d7}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+append\+\_\+sig\+\_\+seg}} (struct \mbox{\hyperlink{structrtr__bgpsec}{rtr\+\_\+bgpsec}} \texorpdfstring{$\ast$}{*}bgpsec, struct \mbox{\hyperlink{structrtr__signature__seg}{rtr\+\_\+signature\+\_\+seg}} \texorpdfstring{$\ast$}{*}new\+\_\+seg)
\item 
struct \mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\+\_\+bgpsec\+\_\+nlri}} \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__mod__bgpsec__h_ga7d836e01783b448ed120e986867884d3}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+nlri\+\_\+new}} (int nlri\+\_\+len)
\item 
void \mbox{\hyperlink{group__mod__bgpsec__h_ga4341f88be93d24123063e32b5ec0e198}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+nlri\+\_\+free}} (struct \mbox{\hyperlink{structrtr__bgpsec__nlri}{rtr\+\_\+bgpsec\+\_\+nlri}} \texorpdfstring{$\ast$}{*}nlri)
\item 
void \mbox{\hyperlink{group__mod__bgpsec__h_gad5bdb4e9a6956d387bb7d1598e129242}{rtr\+\_\+mgr\+\_\+bgpsec\+\_\+add\+\_\+spki\+\_\+record}} (struct \mbox{\hyperlink{structrtr__mgr__config}{rtr\+\_\+mgr\+\_\+config}} \texorpdfstring{$\ast$}{*}config, struct \mbox{\hyperlink{structspki__record}{spki\+\_\+record}} \texorpdfstring{$\ast$}{*}record)
\end{DoxyCompactItemize}
