\doxysection{src/xua\+\_\+rkm.c File Reference} \label{xua__rkm_8c}\index{src/xua\_rkm.c@{src/xua\_rkm.c}} {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include $<$arpa/inet.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline {\ttfamily \#include \char`\"{}xua\+\_\+msg.\+h\char`\"{}}\newline {\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/m3ua.\+h$>$}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+as.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+asp.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+route.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+route\+\_\+table.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+as\+\_\+fsm.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+asp\+\_\+fsm.\+h\char`\"{}}\newline \doxysubsection*{Macros} \begin{DoxyCompactItemize} \item \#define \textbf{ MAX\+\_\+\+NEW\+\_\+\+AS}~16 \end{DoxyCompactItemize} \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item static void \textbf{ msgb\+\_\+push\+\_\+m3ua\+\_\+hdr} (struct msgb $\ast$msg, uint8\+\_\+t \textbf{ msg\+\_\+class}, uint8\+\_\+t \textbf{ msg\+\_\+type}) \item static int \textbf{ msgb\+\_\+append\+\_\+reg\+\_\+res} (struct msgb $\ast$msg, uint32\+\_\+t local\+\_\+rk\+\_\+id, uint32\+\_\+t status, uint32\+\_\+t rctx) \item static int \textbf{ msgb\+\_\+append\+\_\+dereg\+\_\+res} (struct msgb $\ast$msg, uint32\+\_\+t status, uint32\+\_\+t rctx) \item static void \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const struct \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key} $\ast$rkey, enum \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode} traf\+\_\+mode) \item static void \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, uint32\+\_\+t route\+\_\+ctx) \item static int \textbf{ handle\+\_\+rkey\+\_\+reg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$inner, struct msgb $\ast$resp, struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$$\ast$newly\+\_\+assigned\+\_\+as, unsigned int max\+\_\+nas\+\_\+idx, unsigned int $\ast$nas\+\_\+idx) \item static int \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ handle\+\_\+rkey\+\_\+dereg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, uint32\+\_\+t rctx, struct msgb $\ast$resp) \item static int \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ handle\+\_\+rkey\+\_\+reg\+\_\+resp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$inner) \item static int \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+rsp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ handle\+\_\+rkey\+\_\+dereg\+\_\+resp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$inner) \item static int \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+rsp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item int \textbf{ m3ua\+\_\+rx\+\_\+rkm} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item int \textbf{ osmo\+\_\+xlm\+\_\+sap\+\_\+down} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct osmo\+\_\+prim\+\_\+hdr $\ast$oph) \item void \textbf{ xua\+\_\+rkm\+\_\+cleanup\+\_\+dyn\+\_\+as\+\_\+for\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \end{DoxyCompactItemize} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item const struct value\+\_\+string \textbf{ m3ua\+\_\+rkm\+\_\+reg\+\_\+status\+\_\+vals} [$\,$] \item const struct value\+\_\+string \textbf{ m3ua\+\_\+rkm\+\_\+dereg\+\_\+status\+\_\+vals} [$\,$] \end{DoxyCompactItemize} \doxysubsection{Macro Definition Documentation} \mbox{\label{xua__rkm_8c_ab4e77d336b433bc7e18cef5fa10033ff}} \index{xua\_rkm.c@{xua\_rkm.c}!MAX\_NEW\_AS@{MAX\_NEW\_AS}} \index{MAX\_NEW\_AS@{MAX\_NEW\_AS}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{MAX\_NEW\_AS} {\footnotesize\ttfamily \#define MAX\+\_\+\+NEW\+\_\+\+AS~16} \doxysubsection{Function Documentation} \mbox{\label{xua__rkm_8c_a44af2d2697beebe91a62a76211c14157}} \index{xua\_rkm.c@{xua\_rkm.c}!handle\_rkey\_dereg@{handle\_rkey\_dereg}} \index{handle\_rkey\_dereg@{handle\_rkey\_dereg}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{handle\_rkey\_dereg()} {\footnotesize\ttfamily static int handle\+\_\+rkey\+\_\+dereg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{uint32\+\_\+t}]{rctx, }\item[{struct msgb $\ast$}]{resp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+route\+::as}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+ERR\+\_\+\+ASP\+\_\+\+ACTIVE}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+RCTX}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+ERR\+\_\+\+NOT\+\_\+\+REGD}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+ERR\+\_\+\+UNKNOWN}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+SUCCESS}, \textbf{ msgb\+\_\+append\+\_\+dereg\+\_\+res()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+destroy()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::pc}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::rkm\+\_\+dyn\+\_\+allocated}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system}, \textbf{ ss7\+\_\+route\+\_\+destroy()}, \textbf{ ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+route\+\_\+by\+\_\+dpc()}, \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+ACTIVE}, and \textbf{ XUA\+\_\+\+ASPAS\+\_\+\+ASP\+\_\+\+DOWN\+\_\+\+IND}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req()}. \mbox{\label{xua__rkm_8c_aa51a247c1d47f592fb948d053292fa0a}} \index{xua\_rkm.c@{xua\_rkm.c}!handle\_rkey\_dereg\_resp@{handle\_rkey\_dereg\_resp}} \index{handle\_rkey\_dereg\_resp@{handle\_rkey\_dereg\_resp}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{handle\_rkey\_dereg\_resp()} {\footnotesize\ttfamily static int handle\+\_\+rkey\+\_\+dereg\+\_\+resp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{inner }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::key}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DEREG\+\_\+\+STATUS}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ m3ua\+\_\+rkm\+\_\+dereg\+\_\+status\+\_\+vals}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+RK\+\_\+\+DEREG}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::rk\+\_\+dereg}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::rk\+\_\+reg}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+dereg\+::route\+\_\+ctx}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+dereg\+::status}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+rsp()}. \mbox{\label{xua__rkm_8c_a58819010e3b1aa68a744022649829c3c}} \index{xua\_rkm.c@{xua\_rkm.c}!handle\_rkey\_reg@{handle\_rkey\_reg}} \index{handle\_rkey\_reg@{handle\_rkey\_reg}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{handle\_rkey\_reg()} {\footnotesize\ttfamily static int handle\+\_\+rkey\+\_\+reg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{inner, }\item[{struct msgb $\ast$}]{resp, }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$$\ast$}]{newly\+\_\+assigned\+\_\+as, }\item[{unsigned int}]{max\+\_\+nas\+\_\+idx, }\item[{unsigned int $\ast$}]{nas\+\_\+idx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+route\+::as}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::description}, \textbf{ dpc}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ LOGPAS}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+LOC\+\_\+\+RKEY\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+NET\+\_\+\+APPEAR}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ORIG\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+SVC\+\_\+\+IND}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+TRAF\+\_\+\+MODE\+\_\+\+TYP}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+ERR\+\_\+\+CANT\+\_\+\+SUPP\+\_\+\+UNQ\+\_\+\+RT}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+ERR\+\_\+\+INSUFF\+\_\+\+RESRC}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+NET\+\_\+\+APPEAR}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+RKEY}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+ERR\+\_\+\+PERM\+\_\+\+DENIED}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+RK\+\_\+\+PARAM}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+TRAF\+\_\+\+MODE}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+SUCCESS}, \textbf{ M3\+UA\+\_\+\+TMOD\+\_\+\+BCAST}, \textbf{ M3\+UA\+\_\+\+TMOD\+\_\+\+LOADSHARE}, \textbf{ M3\+UA\+\_\+\+TMOD\+\_\+\+OVERRIDE}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::mode}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::mode\+\_\+set\+\_\+by\+\_\+peer}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::mode\+\_\+set\+\_\+by\+\_\+vty}, \textbf{ msgb\+\_\+append\+\_\+reg\+\_\+res()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+destroy()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+tmode\+\_\+compatible\+\_\+xua()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+name()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+ss7\+\_\+tmode\+\_\+from\+\_\+xua()}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::pc}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::permit\+\_\+dyn\+\_\+rkm\+\_\+alloc}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::rkm\+\_\+dyn\+\_\+allocated}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system}, \textbf{ ss7\+\_\+route\+\_\+create()}, \textbf{ ss7\+\_\+route\+\_\+destroy()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req()}. \mbox{\label{xua__rkm_8c_a5d226db905ca8bc16d1e38f64da72e3f}} \index{xua\_rkm.c@{xua\_rkm.c}!handle\_rkey\_reg\_resp@{handle\_rkey\_reg\_resp}} \index{handle\_rkey\_reg\_resp@{handle\_rkey\_reg\_resp}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{handle\_rkey\_reg\_resp()} {\footnotesize\ttfamily static int handle\+\_\+rkey\+\_\+reg\+\_\+resp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{inner }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::key}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::l\+\_\+rk\+\_\+id}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+LOC\+\_\+\+RKEY\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+REG\+\_\+\+STATUS}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ m3ua\+\_\+rkm\+\_\+reg\+\_\+status\+\_\+vals}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+RK\+\_\+\+REG}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::rk\+\_\+reg}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::status}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+rsp()}. \mbox{\label{xua__rkm_8c_ab1e4c28a5dd577eb9d4ce2d32edf76d2}} \index{xua\_rkm.c@{xua\_rkm.c}!m3ua\_rx\_rkm@{m3ua\_rx\_rkm}} \index{m3ua\_rx\_rkm@{m3ua\_rx\_rkm}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{m3ua\_rx\_rkm()} {\footnotesize\ttfamily int m3ua\+\_\+rx\+\_\+rkm (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+REQ}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+RSP}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+REQ}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+RSP}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+rsp()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+rsp()}, and \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}. \mbox{\label{xua__rkm_8c_acbac8d8d08e17b863f19b7b0d35d705b}} \index{xua\_rkm.c@{xua\_rkm.c}!m3ua\_rx\_rkm\_dereg\_req@{m3ua\_rx\_rkm\_dereg\_req}} \index{m3ua\_rx\_rkm\_dereg\_req@{m3ua\_rx\_rkm\_dereg\_req}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{m3ua\_rx\_rkm\_dereg\_req()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ handle\+\_\+rkey\+\_\+dereg()}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ m3ua\+\_\+msgb\+\_\+alloc()}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+RKM}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+RSP}, \textbf{ msgb\+\_\+push\+\_\+m3ua\+\_\+hdr()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send()}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm()}. \mbox{\label{xua__rkm_8c_ac0fbb7577bc96356589fea77dfd1c47b}} \index{xua\_rkm.c@{xua\_rkm.c}!m3ua\_rx\_rkm\_dereg\_rsp@{m3ua\_rx\_rkm\_dereg\_rsp}} \index{m3ua\_rx\_rkm\_dereg\_rsp@{m3ua\_rx\_rkm\_dereg\_rsp}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{m3ua\_rx\_rkm\_dereg\_rsp()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+rsp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ handle\+\_\+rkey\+\_\+dereg\+\_\+resp()}, \textbf{ xua\+\_\+msg\+::headers}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DEREG\+\_\+\+RESULT}, \textbf{ xua\+\_\+msg\+\_\+part\+::tag}, \textbf{ xua\+\_\+from\+\_\+nested()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm()}. \mbox{\label{xua__rkm_8c_a85d8dfc2cdb5c3c6b7525d8dad5aea35}} \index{xua\_rkm.c@{xua\_rkm.c}!m3ua\_rx\_rkm\_reg\_req@{m3ua\_rx\_rkm\_reg\_req}} \index{m3ua\_rx\_rkm\_reg\_req@{m3ua\_rx\_rkm\_reg\_req}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{m3ua\_rx\_rkm\_reg\_req()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ handle\+\_\+rkey\+\_\+reg()}, \textbf{ xua\+\_\+msg\+::headers}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUT\+\_\+\+KEY}, \textbf{ m3ua\+\_\+msgb\+\_\+alloc()}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+RKM}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+RSP}, \textbf{ MAX\+\_\+\+NEW\+\_\+\+AS}, \textbf{ msgb\+\_\+push\+\_\+m3ua\+\_\+hdr()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send()}, \textbf{ xua\+\_\+msg\+\_\+part\+::tag}, \textbf{ XUA\+\_\+\+ASPAS\+\_\+\+ASP\+\_\+\+INACTIVE\+\_\+\+IND}, \textbf{ xua\+\_\+from\+\_\+nested()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm()}. \mbox{\label{xua__rkm_8c_a3fc9861a3804a8e10c4d5ced39f7197e}} \index{xua\_rkm.c@{xua\_rkm.c}!m3ua\_rx\_rkm\_reg\_rsp@{m3ua\_rx\_rkm\_reg\_rsp}} \index{m3ua\_rx\_rkm\_reg\_rsp@{m3ua\_rx\_rkm\_reg\_rsp}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{m3ua\_rx\_rkm\_reg\_rsp()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+rsp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ handle\+\_\+rkey\+\_\+reg\+\_\+resp()}, \textbf{ xua\+\_\+msg\+::headers}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+REG\+\_\+\+RESULT}, \textbf{ xua\+\_\+msg\+\_\+part\+::tag}, \textbf{ xua\+\_\+from\+\_\+nested()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm()}. \mbox{\label{xua__rkm_8c_a8e02aca7b225a7222a56a676dbdc3802}} \index{xua\_rkm.c@{xua\_rkm.c}!msgb\_append\_dereg\_res@{msgb\_append\_dereg\_res}} \index{msgb\_append\_dereg\_res@{msgb\_append\_dereg\_res}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{msgb\_append\_dereg\_res()} {\footnotesize\ttfamily static int msgb\+\_\+append\+\_\+dereg\+\_\+res (\begin{DoxyParamCaption}\item[{struct msgb $\ast$}]{msg, }\item[{uint32\+\_\+t}]{status, }\item[{uint32\+\_\+t}]{rctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DEREG\+\_\+\+RESULT}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DEREG\+\_\+\+STATUS}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, and \textbf{ msgb\+\_\+t16l16vp\+\_\+put\+\_\+u32()}. Referenced by \textbf{ handle\+\_\+rkey\+\_\+dereg()}. \mbox{\label{xua__rkm_8c_abe93b96993afc4a4f6860dae90eaa038}} \index{xua\_rkm.c@{xua\_rkm.c}!msgb\_append\_reg\_res@{msgb\_append\_reg\_res}} \index{msgb\_append\_reg\_res@{msgb\_append\_reg\_res}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{msgb\_append\_reg\_res()} {\footnotesize\ttfamily static int msgb\+\_\+append\+\_\+reg\+\_\+res (\begin{DoxyParamCaption}\item[{struct msgb $\ast$}]{msg, }\item[{uint32\+\_\+t}]{local\+\_\+rk\+\_\+id, }\item[{uint32\+\_\+t}]{status, }\item[{uint32\+\_\+t}]{rctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+LOC\+\_\+\+RKEY\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+REG\+\_\+\+RESULT}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+REG\+\_\+\+STATUS}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, and \textbf{ msgb\+\_\+t16l16vp\+\_\+put\+\_\+u32()}. Referenced by \textbf{ handle\+\_\+rkey\+\_\+reg()}. \mbox{\label{xua__rkm_8c_aa98e4dea8b7e1a2cabaca5f23de892f9}} \index{xua\_rkm.c@{xua\_rkm.c}!msgb\_push\_m3ua\_hdr@{msgb\_push\_m3ua\_hdr}} \index{msgb\_push\_m3ua\_hdr@{msgb\_push\_m3ua\_hdr}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{msgb\_push\_m3ua\_hdr()} {\footnotesize\ttfamily static void msgb\+\_\+push\+\_\+m3ua\+\_\+hdr (\begin{DoxyParamCaption}\item[{struct msgb $\ast$}]{msg, }\item[{uint8\+\_\+t}]{msg\+\_\+class, }\item[{uint8\+\_\+t}]{msg\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+length}, \textbf{ msg\+\_\+type}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ xua\+\_\+common\+\_\+hdr\+::spare}, and \textbf{ xua\+\_\+common\+\_\+hdr\+::version}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req()}, \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req()}, and \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req()}. \mbox{\label{xua__rkm_8c_a0ecffc58820e661cf3ca6d576ce78f82}} \index{xua\_rkm.c@{xua\_rkm.c}!osmo\_xlm\_sap\_down@{osmo\_xlm\_sap\_down}} \index{osmo\_xlm\_sap\_down@{osmo\_xlm\_sap\_down}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{osmo\_xlm\_sap\_down()} {\footnotesize\ttfamily int osmo\+\_\+xlm\+\_\+sap\+\_\+down (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::key}, \textbf{ LOGPASP}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+RK\+\_\+\+DEREG}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+RK\+\_\+\+REG}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+name()}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::rk\+\_\+dereg}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::rk\+\_\+reg}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+dereg\+::route\+\_\+ctx}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::traf\+\_\+mode}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req()}, and \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req()}. Referenced by \textbf{ lm\+\_\+timer\+\_\+cb()}. \mbox{\label{xua__rkm_8c_a4f931cf9215d8295d2f7fdc86328ceb9}} \index{xua\_rkm.c@{xua\_rkm.c}!xua\_rkm\_cleanup\_dyn\_as\_for\_asp@{xua\_rkm\_cleanup\_dyn\_as\_for\_asp}} \index{xua\_rkm\_cleanup\_dyn\_as\_for\_asp@{xua\_rkm\_cleanup\_dyn\_as\_for\_asp}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{xua\_rkm\_cleanup\_dyn\_as\_for\_asp()} {\footnotesize\ttfamily void xua\+\_\+rkm\+\_\+cleanup\+\_\+dyn\+\_\+as\+\_\+for\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+destroy()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp()}, and \textbf{ osmo\+\_\+ss7\+\_\+as\+::rkm\+\_\+dyn\+\_\+allocated}. Referenced by \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+closed\+\_\+cb()}. \mbox{\label{xua__rkm_8c_a8979fccae9be7fb67e3d555b512763b8}} \index{xua\_rkm.c@{xua\_rkm.c}!xua\_rkm\_send\_dereg\_req@{xua\_rkm\_send\_dereg\_req}} \index{xua\_rkm\_send\_dereg\_req@{xua\_rkm\_send\_dereg\_req}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{xua\_rkm\_send\_dereg\_req()} {\footnotesize\ttfamily static void xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{uint32\+\_\+t}]{route\+\_\+ctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ m3ua\+\_\+msgb\+\_\+alloc()}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+RKM}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+REQ}, \textbf{ msgb\+\_\+push\+\_\+m3ua\+\_\+hdr()}, \textbf{ msgb\+\_\+t16l16vp\+\_\+put\+\_\+u32()}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send()}. Referenced by \textbf{ osmo\+\_\+xlm\+\_\+sap\+\_\+down()}. \mbox{\label{xua__rkm_8c_a6d05db96b2a1faabbbdc51e7e1e39f52}} \index{xua\_rkm.c@{xua\_rkm.c}!xua\_rkm\_send\_reg\_req@{xua\_rkm\_send\_reg\_req}} \index{xua\_rkm\_send\_reg\_req@{xua\_rkm\_send\_reg\_req}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{xua\_rkm\_send\_reg\_req()} {\footnotesize\ttfamily static void xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key} $\ast$}]{rkey, }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode}}]{traf\+\_\+mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::l\+\_\+rk\+\_\+id}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+LOC\+\_\+\+RKEY\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUT\+\_\+\+KEY}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+TRAF\+\_\+\+MODE\+\_\+\+TYP}, \textbf{ m3ua\+\_\+msgb\+\_\+alloc()}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+RKM}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+REQ}, \textbf{ msgb\+\_\+push\+\_\+m3ua\+\_\+hdr()}, \textbf{ msgb\+\_\+t16l16vp\+\_\+put\+\_\+u32()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send()}, \textbf{ osmo\+\_\+ss7\+\_\+tmode\+\_\+to\+\_\+xua()}, and \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::pc}. Referenced by \textbf{ osmo\+\_\+xlm\+\_\+sap\+\_\+down()}. \doxysubsection{Variable Documentation} \mbox{\label{xua__rkm_8c_a517b691866d2bf1ab9a24ac08ee120fc}} \index{xua\_rkm.c@{xua\_rkm.c}!m3ua\_rkm\_dereg\_status\_vals@{m3ua\_rkm\_dereg\_status\_vals}} \index{m3ua\_rkm\_dereg\_status\_vals@{m3ua\_rkm\_dereg\_status\_vals}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{m3ua\_rkm\_dereg\_status\_vals} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+dereg\+\_\+status\+\_\+vals[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_RKM\_DEREG\_SUCCESS, \textcolor{stringliteral}{"{}SUCCSS"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_DEREG\_ERR\_UNKNOWN, \textcolor{stringliteral}{"{}Unknown Error"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_DEREG\_ERR\_INVAL\_RCTX, \textcolor{stringliteral}{"{}Invalid Routing Context"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_DEREG\_ERR\_PERM\_DENIED, \textcolor{stringliteral}{"{}Permission Denied"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_DEREG\_ERR\_NOT\_REGD, \textcolor{stringliteral}{"{}Error: Not Registered"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_DEREG\_ERR\_ASP\_ACTIVE, \textcolor{stringliteral}{"{}Error: ASP Active"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ handle\+\_\+rkey\+\_\+dereg\+\_\+resp()}. \mbox{\label{xua__rkm_8c_a0992bf5538b7f033f634174b1f01dfdd}} \index{xua\_rkm.c@{xua\_rkm.c}!m3ua\_rkm\_reg\_status\_vals@{m3ua\_rkm\_reg\_status\_vals}} \index{m3ua\_rkm\_reg\_status\_vals@{m3ua\_rkm\_reg\_status\_vals}!xua\_rkm.c@{xua\_rkm.c}} \doxysubsubsection{m3ua\_rkm\_reg\_status\_vals} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+reg\+\_\+status\+\_\+vals[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_SUCCESS, \textcolor{stringliteral}{"{}SUCCESS"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_UNKNOWN, \textcolor{stringliteral}{"{}Unknown Error"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_INVAL\_DPC, \textcolor{stringliteral}{"{}Invalid Destination Pointcode"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_INVAL\_NET\_APPEAR, \textcolor{stringliteral}{"{}Invalid Network Appearance"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_INVAL\_RKEY, \textcolor{stringliteral}{"{}Invalid Routing Key"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_PERM\_DENIED, \textcolor{stringliteral}{"{}Permission Denied"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_CANT\_SUPP\_UNQ\_RT, \textcolor{stringliteral}{"{}Cannot Support Unique Routing"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_RKEY\_NOT\_PROVD, \textcolor{stringliteral}{"{}Routing Key Not Provided"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_INSUFF\_RESRC, \textcolor{stringliteral}{"{}Insufficient Resources"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_UNSUPP\_RK\_PARAM, \textcolor{stringliteral}{"{}Unsupported Routing Key Parameter"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_UNSUPP\_TRAF\_MODE, \textcolor{stringliteral}{"{}Unsupported Traffic Mode Type"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_RKEY\_CHG\_REFUSED, \textcolor{stringliteral}{"{}Routing Key Change Refused"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_ERR\_RKEY\_ALRDY\_REGD, \textcolor{stringliteral}{"{}Routing Key Already Registered"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ handle\+\_\+rkey\+\_\+reg\+\_\+resp()}.