\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 bool \textbf{ newly\+\_\+assigned\+\_\+as\+\_\+in\+\_\+array} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$const $\ast$newly\+\_\+assigned\+\_\+as, unsigned int num\+\_\+newly\+\_\+assigned\+\_\+as, const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as)
\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)
\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\+::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\+\_\+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\+\_\+as\+\_\+del\+\_\+asp()}, \textbf{ ss7\+\_\+route\+\_\+destroy()}, \textbf{ ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+route\+\_\+by\+\_\+dpc\+\_\+mask()}, and \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+ACTIVE}.



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\+\_\+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\+\_\+as\+::name}, \textbf{ newly\+\_\+assigned\+\_\+as\+\_\+in\+\_\+array()}, \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\+\_\+as\+\_\+add\+\_\+asp()}, \textbf{ ss7\+\_\+route\+\_\+create()}, \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()}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



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{ xua\+\_\+msg\+::entry}, \textbf{ handle\+\_\+rkey\+\_\+dereg\+\_\+resp()}, \textbf{ xua\+\_\+msg\+::headers}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DEREG\+\_\+\+RESULT}, \textbf{ NULL}, \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{ xua\+\_\+as\+\_\+event\+\_\+asp\+\_\+inactive\+\_\+ind\+\_\+pars\+::asp}, \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{ xua\+\_\+msg\+::entry}, \textbf{ handle\+\_\+rkey\+\_\+reg\+\_\+resp()}, \textbf{ xua\+\_\+msg\+::headers}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+REG\+\_\+\+RESULT}, \textbf{ NULL}, \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_ad63fd4a71d7075f4cc27dd9d7b6afb0a}} 
\index{xua\_rkm.c@{xua\_rkm.c}!newly\_assigned\_as\_in\_array@{newly\_assigned\_as\_in\_array}}
\index{newly\_assigned\_as\_in\_array@{newly\_assigned\_as\_in\_array}!xua\_rkm.c@{xua\_rkm.c}}
\doxysubsubsection{newly\_assigned\_as\_in\_array()}
{\footnotesize\ttfamily static bool newly\+\_\+assigned\+\_\+as\+\_\+in\+\_\+array (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$const $\ast$}]{newly\+\_\+assigned\+\_\+as,  }\item[{unsigned int}]{num\+\_\+newly\+\_\+assigned\+\_\+as,  }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ handle\+\_\+rkey\+\_\+reg()}.

\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_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()}.

