\doxysection{src/m3ua.c File Reference}
\label{m3ua_8c}\index{src/m3ua.c@{src/m3ua.c}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/write\+\_\+queue.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/timer.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/socket.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/netif/stream.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/xua\+\_\+msg.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/mtp\+\_\+sap.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+sap.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/m3ua.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/sua.\+h$>$}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+as\+\_\+fsm.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+asp\+\_\+fsm.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+internal.\+h\char`\"{}}\newline
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ M3\+UA\+\_\+\+MSGB\+\_\+\+SIZE}~1500
\item 
\#define \textbf{ MAND\+\_\+\+IES}(msgt,  ies)~[msgt] = (ies)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \textbf{ mtp\+\_\+xfer\+\_\+param\+\_\+to\+\_\+m3ua\+\_\+dh} (struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$mdh, const struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$param)
\item 
void \textbf{ m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param} (struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$param, const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$mdh)
\item 
struct msgb $\ast$ \textbf{ m3ua\+\_\+msgb\+\_\+alloc} (const char $\ast$name)
\item 
struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+xfer\+\_\+from\+\_\+data} (const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$data\+\_\+hdr, const uint8\+\_\+t $\ast$\textbf{ data}, unsigned int data\+\_\+len)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+gen\+\_\+error} (uint32\+\_\+t err\+\_\+code)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+gen\+\_\+error\+\_\+msg} (uint32\+\_\+t err\+\_\+code, struct msgb $\ast$msg)
\item 
struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+notify} (const struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$npar)
\item 
int \textbf{ m3ua\+\_\+decode\+\_\+notify} (struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$npar, void $\ast$ctx, const struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static struct msgb $\ast$ \textbf{ m3ua\+\_\+to\+\_\+msg} (struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+as} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\begin{DoxyCompactList}\small\item\em Send a given x\+UA message via a given M3\+UA Application Server. \end{DoxyCompactList}\item 
struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$ \textbf{ data\+\_\+hdr\+\_\+from\+\_\+m3ua} (struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ m3ua\+\_\+rx\+\_\+xfer} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ m3ua\+\_\+rx\+\_\+mgmt} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ m3ua\+\_\+rx\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ m3ua\+\_\+rx\+\_\+snm} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ m3ua\+\_\+rx\+\_\+msg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em process M3\+UA message received from socket \end{DoxyCompactList}\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+duna} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+string)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+dava} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+string)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+dupu} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, uint32\+\_\+t \textbf{ dpc}, uint16\+\_\+t user, uint16\+\_\+t cause, const char $\ast$info\+\_\+string)
\item 
void \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+string, bool available)
\begin{DoxyCompactList}\small\item\em Transmit SSNM DUNA/\+DAVA message indicating [un]availability of certain point code[s]. \end{DoxyCompactList}\item 
void \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+congestion} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const uint32\+\_\+t $\ast$concerned\+\_\+dpc, const uint8\+\_\+t $\ast$cong\+\_\+level, const char $\ast$info\+\_\+string)
\begin{DoxyCompactList}\small\item\em Transmit SSNM SCON message indicating congestion. \end{DoxyCompactList}\item 
void \textbf{ m3ua\+\_\+tx\+\_\+dupu} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, uint32\+\_\+t \textbf{ dpc}, uint16\+\_\+t user, uint16\+\_\+t cause, const char $\ast$info\+\_\+str)
\begin{DoxyCompactList}\small\item\em Transmit SSNM DUPU message indicating user unavailability. \end{DoxyCompactList}\item 
static int \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+sg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+err\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+type\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+other\+\_\+names} [$\,$]
\item 
static const struct value\+\_\+string \textbf{ m3ua\+\_\+iei\+\_\+names} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ data\+\_\+mand\+\_\+ies} [$\,$]
\item 
static const struct value\+\_\+string \textbf{ m3ua\+\_\+xfer\+\_\+msgt\+\_\+names} [$\,$]
\item 
static const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ msg\+\_\+class\+\_\+xfer}
\item 
static const uint16\+\_\+t \textbf{ duna\+\_\+mand\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ dava\+\_\+mand\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ daud\+\_\+mand\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ scon\+\_\+mand\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ dupu\+\_\+mand\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ drst\+\_\+mand\+\_\+ies} [$\,$]
\item 
static const struct value\+\_\+string \textbf{ m3ua\+\_\+snm\+\_\+msgt\+\_\+names} [$\,$]
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+snm}
\item 
static const struct value\+\_\+string \textbf{ m3ua\+\_\+aspsm\+\_\+msgt\+\_\+names} [$\,$]
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+aspsm}
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+asptm\+\_\+msgt\+\_\+names} [$\,$]
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+asptm}
\item 
static const uint16\+\_\+t \textbf{ err\+\_\+req\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ ntfy\+\_\+req\+\_\+ies} [$\,$]
\item 
static const struct value\+\_\+string \textbf{ m3ua\+\_\+mgmt\+\_\+msgt\+\_\+names} [$\,$]
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+mgmt}
\item 
static const uint16\+\_\+t \textbf{ reg\+\_\+req\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ reg\+\_\+rsp\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ dereg\+\_\+req\+\_\+ies} [$\,$]
\item 
static const uint16\+\_\+t \textbf{ dereg\+\_\+rsp\+\_\+ies} [$\,$]
\item 
static const struct value\+\_\+string \textbf{ m3ua\+\_\+rkm\+\_\+msgt\+\_\+names} [$\,$]
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+rkm}
\item 
const struct \textbf{ xua\+\_\+dialect} \textbf{ xua\+\_\+dialect\+\_\+m3ua}
\item 
static const struct \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map} \textbf{ m3ua\+\_\+aspxm\+\_\+map} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{m3ua_8c_a41a6ffbf30f870bb34ef56e08726669a}} 
\index{m3ua.c@{m3ua.c}!M3UA\_MSGB\_SIZE@{M3UA\_MSGB\_SIZE}}
\index{M3UA\_MSGB\_SIZE@{M3UA\_MSGB\_SIZE}!m3ua.c@{m3ua.c}}
\doxysubsubsection{M3UA\_MSGB\_SIZE}
{\footnotesize\ttfamily \#define M3\+UA\+\_\+\+MSGB\+\_\+\+SIZE~1500}

\mbox{\label{m3ua_8c_af10f2a394be1aaa2fb7dd4d1495e2316}} 
\index{m3ua.c@{m3ua.c}!MAND\_IES@{MAND\_IES}}
\index{MAND\_IES@{MAND\_IES}!m3ua.c@{m3ua.c}}
\doxysubsubsection{MAND\_IES}
{\footnotesize\ttfamily \#define MAND\+\_\+\+IES(\begin{DoxyParamCaption}\item[{}]{msgt,  }\item[{}]{ies }\end{DoxyParamCaption})~[msgt] = (ies)}



\doxysubsection{Function Documentation}
\mbox{\label{m3ua_8c_a3f7fbf35c6b49191b784a22cb7d9b30c}} 
\index{m3ua.c@{m3ua.c}!data\_hdr\_from\_m3ua@{data\_hdr\_from\_m3ua}}
\index{data\_hdr\_from\_m3ua@{data\_hdr\_from\_m3ua}!m3ua.c@{m3ua.c}}
\doxysubsubsection{data\_hdr\_from\_m3ua()}
{\footnotesize\ttfamily struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$ data\+\_\+hdr\+\_\+from\+\_\+m3ua (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}.



Referenced by \textbf{ hmdt\+\_\+message\+\_\+for\+\_\+distribution()}, and \textbf{ m3ua\+\_\+rx\+\_\+xfer()}.

\mbox{\label{m3ua_8c_a446729f54e5da95d3eefc9ae04248cdf}} 
\index{m3ua.c@{m3ua.c}!m3ua\_decode\_notify@{m3ua\_decode\_notify}}
\index{m3ua\_decode\_notify@{m3ua\_decode\_notify}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_decode\_notify()}
{\footnotesize\ttfamily int m3ua\+\_\+decode\+\_\+notify (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$}]{npar,  }\item[{void $\ast$}]{ctx,  }\item[{const struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id}, \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ASP\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+STATUS}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ASP\+\_\+\+ID}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}.

\mbox{\label{m3ua_8c_ac1a04dfbafd50c05516ed474fd6337f3}} 
\index{m3ua.c@{m3ua.c}!m3ua\_dh\_to\_xfer\_param@{m3ua\_dh\_to\_xfer\_param}}
\index{m3ua\_dh\_to\_xfer\_param@{m3ua\_dh\_to\_xfer\_param}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_dh\_to\_xfer\_param()}
{\footnotesize\ttfamily void m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$}]{param,  }\item[{const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{mdh }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::mp}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::ni}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::si}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, and \textbf{ m3ua\+\_\+data\+\_\+hdr\+::sls}.



Referenced by \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+sccp()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, and \textbf{ m3ua\+\_\+to\+\_\+xfer\+\_\+ind()}.

\mbox{\label{m3ua_8c_ab9751e74c5f93e7e28dc465344f0bf52}} 
\index{m3ua.c@{m3ua.c}!m3ua\_encode\_dava@{m3ua\_encode\_dava}}
\index{m3ua\_encode\_dava@{m3ua\_encode\_dava}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_encode\_dava()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+dava (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ m3ua\+\_\+encode\+\_\+duna()}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DAVA}, and \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}.



Referenced by \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available()}.

\mbox{\label{m3ua_8c_ab76dd276e2e12368797e557633e4fc25}} 
\index{m3ua.c@{m3ua.c}!m3ua\_encode\_duna@{m3ua\_encode\_duna}}
\index{m3ua\_encode\_duna@{m3ua\_encode\_duna}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_encode\_duna()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+duna (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DUNA}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ m3ua\+\_\+encode\+\_\+dava()}, and \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available()}.

\mbox{\label{m3ua_8c_a2c714f65c5d24ba45427e688d5f3d459}} 
\index{m3ua.c@{m3ua.c}!m3ua\_encode\_dupu@{m3ua\_encode\_dupu}}
\index{m3ua\_encode\_dupu@{m3ua\_encode\_dupu}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_encode\_dupu()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+dupu (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{uint32\+\_\+t}]{dpc,  }\item[{uint16\+\_\+t}]{user,  }\item[{uint16\+\_\+t}]{cause,  }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ dpc}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+USER\+\_\+\+CAUSE}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DUPU}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ m3ua\+\_\+tx\+\_\+dupu()}.

\mbox{\label{m3ua_8c_a975de21b0ab355435bd1581b61488112}} 
\index{m3ua.c@{m3ua.c}!m3ua\_encode\_notify@{m3ua\_encode\_notify}}
\index{m3ua\_encode\_notify@{m3ua\_encode\_notify}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_encode\_notify()}
{\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+notify (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$}]{npar }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ASP\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+STATUS}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+NTFY}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ M3\+UA\+\_\+\+NOTIFY}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ASP\+\_\+\+ID}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ encode\+\_\+notify()}.

\mbox{\label{m3ua_8c_a389fff8af6fd1ee6672ed88a7b7cd94f}} 
\index{m3ua.c@{m3ua.c}!m3ua\_gen\_error@{m3ua\_gen\_error}}
\index{m3ua\_gen\_error@{m3ua\_gen\_error}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_gen\_error()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+gen\+\_\+error (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{err\+\_\+code }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ERR\+\_\+\+CODE}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ m3ua\+\_\+gen\+\_\+error\+\_\+msg()}.

\mbox{\label{m3ua_8c_a769cd19f99cfd2c6c4344a201c14fc36}} 
\index{m3ua.c@{m3ua.c}!m3ua\_gen\_error\_msg@{m3ua\_gen\_error\_msg}}
\index{m3ua\_gen\_error\_msg@{m3ua\_gen\_error\_msg}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_gen\_error\_msg()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+gen\+\_\+error\+\_\+msg (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{err\+\_\+code,  }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ m3ua\+\_\+gen\+\_\+error()}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DIAG\+\_\+\+INFO}, and \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}.

\mbox{\label{m3ua_8c_abc7b70b4bd07197a65948096afeb0584}} 
\index{m3ua.c@{m3ua.c}!m3ua\_msgb\_alloc@{m3ua\_msgb\_alloc}}
\index{m3ua\_msgb\_alloc@{m3ua\_msgb\_alloc}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_msgb\_alloc()}
{\footnotesize\ttfamily struct msgb $\ast$ m3ua\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+HEADROOM}, and \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+SIZE}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req()}, \textbf{ m3ua\+\_\+to\+\_\+xfer\+\_\+ind()}, \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req()}, and \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req()}.

\mbox{\label{m3ua_8c_a21cbcae66f8c041104eccbcfc0253700}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_asp@{m3ua\_rx\_asp}}
\index{m3ua\_rx\_asp@{m3ua\_rx\_asp}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_asp()}
{\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+asp (\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\+\_\+event\+\_\+map\+::event}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ m3ua\+\_\+aspxm\+\_\+map}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNEXPECTED\+\_\+\+MSG}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, and \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}.

\mbox{\label{m3ua_8c_ad24afbe93eb8be87e769aac2dbf0fa6c}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_mgmt@{m3ua\_rx\_mgmt}}
\index{m3ua\_rx\_mgmt@{m3ua\_rx\_mgmt}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_mgmt()}
{\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+mgmt (\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\+::hdr}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+NTFY}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}.

\mbox{\label{m3ua_8c_a472fe124fa7e675ed066779df79cd3d3}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_mgmt\_err@{m3ua\_rx\_mgmt\_err}}
\index{m3ua\_rx\_mgmt\_err@{m3ua\_rx\_mgmt\_err}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_mgmt\_err()}
{\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+mgmt\+\_\+err (\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\+\_\+xlm\+\_\+prim\+\_\+error\+::code}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::error}, \textbf{ LOGPASP}, \textbf{ m3ua\+\_\+err\+\_\+names}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ERR\+\_\+\+CODE}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+ERROR}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim()}, \textbf{ xua\+\_\+dialect\+\_\+m3ua}, \textbf{ xua\+\_\+msg\+\_\+dump()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt()}.

\mbox{\label{m3ua_8c_a95417d0d7ef5890b8e40c870407bde10}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_mgmt\_ntfy@{m3ua\_rx\_mgmt\_ntfy}}
\index{m3ua\_rx\_mgmt\_ntfy@{m3ua\_rx\_mgmt\_ntfy}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_mgmt\_ntfy()}
{\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy (\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\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string}, \textbf{ LOGPASP}, \textbf{ m3ua\+\_\+decode\+\_\+notify()}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+T\+\_\+\+OTHER}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+T\+\_\+\+STATCHG}, \textbf{ m3ua\+\_\+ntfy\+\_\+other\+\_\+names}, \textbf{ m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names}, \textbf{ m3ua\+\_\+ntfy\+\_\+type\+\_\+names}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::notify}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+NOTIFY}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim()}, and \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt()}.

\mbox{\label{m3ua_8c_a3dd5abc2f138a16910f323c9e52427e6}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_msg@{m3ua\_rx\_msg}}
\index{m3ua\_rx\_msg@{m3ua\_rx\_msg}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_msg()}
{\footnotesize\ttfamily int m3ua\+\_\+rx\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})}



process M3\+UA message received from socket 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em asp} & Application Server Process receiving msg \\
\hline
\mbox{\texttt{ in}}  & {\em msg} & received message buffer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ xua\+\_\+common\+\_\+hdr\+::data}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+STREAM\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVALID\+\_\+\+VERSION}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+MISSING\+\_\+\+PARAM}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+PARAM\+\_\+\+FIELD\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+CLASS}, \textbf{ m3ua\+\_\+gen\+\_\+error\+\_\+msg()}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+ASPSM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+ASPTM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+RKM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ m3ua\+\_\+rx\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm()}, \textbf{ m3ua\+\_\+rx\+\_\+snm()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ xua\+\_\+dialect\+\_\+check\+\_\+all\+\_\+mand\+\_\+ies()}, \textbf{ xua\+\_\+dialect\+\_\+m3ua}, \textbf{ xua\+\_\+from\+\_\+msg()}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ ss7\+\_\+asp\+\_\+m3ua\+\_\+tcp\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}.

\mbox{\label{m3ua_8c_a0b7cddc5cb00c6eac1fffec424310c94}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_snm@{m3ua\_rx\_snm}}
\index{m3ua\_rx\_snm@{m3ua\_rx\_snm}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_snm()}
{\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+snm (\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\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNEXPECTED\+\_\+\+MSG}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+CLASS}, \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+sg()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+QUIRK\+\_\+\+SNM\+\_\+\+INACTIVE}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+ROLE\+\_\+\+ASP}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+ROLE\+\_\+\+SG}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::quirks}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::role}, \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+ACTIVE}, and \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+INACTIVE}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}.

\mbox{\label{m3ua_8c_af1b9b624a6901ce3f193da224b4d8598}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_snm\_asp@{m3ua\_rx\_snm\_asp}}
\index{m3ua\_rx\_snm\_asp@{m3ua\_rx\_snm\_asp}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_snm\_asp()}
{\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+snm\+\_\+asp (\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\+\_\+asp\+::cfg}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DAUD}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DAVA}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DRST}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DUNA}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DUPU}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+SCON}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+QUIRK\+\_\+\+DAUD\+\_\+\+IN\+\_\+\+ASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::quirks}, \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+daud()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dava()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+duna()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dupu()}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+scon()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm()}.

\mbox{\label{m3ua_8c_afb74f78ccac8bf5f53772413de7929bd}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_snm\_sg@{m3ua\_rx\_snm\_sg}}
\index{m3ua\_rx\_snm\_sg@{m3ua\_rx\_snm\_sg}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_snm\_sg()}
{\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+snm\+\_\+sg (\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\+::hdr}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DAUD}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+daud()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm()}.

\mbox{\label{m3ua_8c_adfdab85e76ea4094d36e002b071e2913}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rx\_xfer@{m3ua\_rx\_xfer}}
\index{m3ua\_rx\_xfer@{m3ua\_rx\_xfer}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rx\_xfer()}
{\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+xfer (\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\+::ctrg}, \textbf{ data\+\_\+hdr\+\_\+from\+\_\+m3ua()}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ LOGPASP}, \textbf{ m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param()}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ m3ua\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2()}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ m3ua\+\_\+xfer\+\_\+msgt\+\_\+names}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2()}, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+TOTAL}, \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+free\+\_\+tag()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}.

\mbox{\label{m3ua_8c_a7c6e3e756c6f567d13ea500c1af50f94}} 
\index{m3ua.c@{m3ua.c}!m3ua\_to\_msg@{m3ua\_to\_msg}}
\index{m3ua\_to\_msg@{m3ua\_to\_msg}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_to\_msg()}
{\footnotesize\ttfamily static struct msgb $\ast$ m3ua\+\_\+to\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+PPID}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, and \textbf{ xua\+\_\+to\+\_\+msg()}.



Referenced by \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+as()}, and \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}.

\mbox{\label{m3ua_8c_a1c5313831d11ce7e46d3187313de900f}} 
\index{m3ua.c@{m3ua.c}!m3ua\_tx\_dupu@{m3ua\_tx\_dupu}}
\index{m3ua\_tx\_dupu@{m3ua\_tx\_dupu}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_tx\_dupu()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+dupu (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{uint32\+\_\+t}]{dpc,  }\item[{uint16\+\_\+t}]{user,  }\item[{uint16\+\_\+t}]{cause,  }\item[{const char $\ast$}]{info\+\_\+str }\end{DoxyParamCaption})}



Transmit SSNM DUPU message indicating user unavailability. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em asp} & ASP through which to transmit message. Must be ACTIVE. \\
\hline
\mbox{\texttt{ in}}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\texttt{ in}}  & {\em dpc} & affected point code \\
\hline
\mbox{\texttt{ in}}  & {\em user} & the user (SI) that is unavailable \\
\hline
\mbox{\texttt{ in}}  & {\em cause} & the cause of the user unavailability \\
\hline
\mbox{\texttt{ in}}  & {\em info\+\_\+string} & optional information string (can be NULL). \\
\hline
\end{DoxyParams}


References \textbf{ dpc}, \textbf{ m3ua\+\_\+encode\+\_\+dupu()}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ xua\+\_\+tx\+\_\+upu()}.

\mbox{\label{m3ua_8c_a23b023b06ccad4da2a92be978a9f23a3}} 
\index{m3ua.c@{m3ua.c}!m3ua\_tx\_snm\_available@{m3ua\_tx\_snm\_available}}
\index{m3ua\_tx\_snm\_available@{m3ua\_tx\_snm\_available}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_tx\_snm\_available()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+snm\+\_\+available (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const char $\ast$}]{info\+\_\+string,  }\item[{bool}]{available }\end{DoxyParamCaption})}



Transmit SSNM DUNA/\+DAVA message indicating [un]availability of certain point code[s]. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em asp} & ASP through which to transmit message. Must be ACTIVE. \\
\hline
\mbox{\texttt{ in}}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\texttt{ in}}  & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\
\hline
\mbox{\texttt{ in}}  & {\em info\+\_\+string} & optional information string (can be NULL). \\
\hline
\mbox{\texttt{ in}}  & {\em available} & are aff\+\_\+pc now available (true) or unavailable (false) \\
\hline
\end{DoxyParams}


References \textbf{ m3ua\+\_\+encode\+\_\+dava()}, \textbf{ m3ua\+\_\+encode\+\_\+duna()}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ xua\+\_\+tx\+\_\+snm\+\_\+available()}.

\mbox{\label{m3ua_8c_ada55bfcb1a816dd0ef97a9eb8ef3030f}} 
\index{m3ua.c@{m3ua.c}!m3ua\_tx\_snm\_congestion@{m3ua\_tx\_snm\_congestion}}
\index{m3ua\_tx\_snm\_congestion@{m3ua\_tx\_snm\_congestion}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_tx\_snm\_congestion()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+snm\+\_\+congestion (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const uint32\+\_\+t $\ast$}]{concerned\+\_\+dpc,  }\item[{const uint8\+\_\+t $\ast$}]{cong\+\_\+level,  }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})}



Transmit SSNM SCON message indicating congestion. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em asp} & ASP through which to transmit message. Must be ACTIVE. \\
\hline
\mbox{\texttt{ in}}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\texttt{ in}}  & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\
\hline
\mbox{\texttt{ in}}  & {\em concerned\+\_\+dpc} & optional concerned DPC (can be NULL) \\
\hline
\mbox{\texttt{ in}}  & {\em cong\+\_\+level} & optional congestion level (can be NULL) \\
\hline
\mbox{\texttt{ in}}  & {\em info\+\_\+string} & optional information string (can be NULL). \\
\hline
\end{DoxyParams}


References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+CONC\+\_\+\+DEST}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+CONG\+\_\+\+IND}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+SCON}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, \textbf{ xua\+\_\+msg\+\_\+alloc()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ xua\+\_\+tx\+\_\+scon()}.

\mbox{\label{m3ua_8c_a2d947fe12b0e169755b8b4f2951b721e}} 
\index{m3ua.c@{m3ua.c}!m3ua\_tx\_xua\_as@{m3ua\_tx\_xua\_as}}
\index{m3ua\_tx\_xua\_as@{m3ua\_tx\_xua\_as}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_tx\_xua\_as()}
{\footnotesize\ttfamily int m3ua\+\_\+tx\+\_\+xua\+\_\+as (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



Send a given x\+UA message via a given M3\+UA Application Server. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em as} & Application Server through which to send xua \\
\hline
\mbox{\texttt{ in}}  & {\em xua} & x\+UA message to be sent \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ m3ua\+\_\+to\+\_\+msg()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, \textbf{ XUA\+\_\+\+AS\+\_\+\+E\+\_\+\+TRANSFER\+\_\+\+REQ}, and \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}.



Referenced by \textbf{ hmrt\+\_\+message\+\_\+for\+\_\+routing()}.

\mbox{\label{m3ua_8c_aea5844f2cb9585a9010c3948b79e392e}} 
\index{m3ua.c@{m3ua.c}!m3ua\_tx\_xua\_asp@{m3ua\_tx\_xua\_asp}}
\index{m3ua\_tx\_xua\_asp@{m3ua\_tx\_xua\_asp}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_tx\_xua\_asp()}
{\footnotesize\ttfamily static int m3ua\+\_\+tx\+\_\+xua\+\_\+asp (\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\+\_\+asp\+::cfg}, \textbf{ m3ua\+\_\+to\+\_\+msg()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send()}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}, \textbf{ m3ua\+\_\+tx\+\_\+dupu()}, \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available()}, and \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+congestion()}.

\mbox{\label{m3ua_8c_a1e63cc510ba1ebc335a86bd371bcb4aa}} 
\index{m3ua.c@{m3ua.c}!m3ua\_xfer\_from\_data@{m3ua\_xfer\_from\_data}}
\index{m3ua\_xfer\_from\_data@{m3ua\_xfer\_from\_data}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_xfer\_from\_data()}
{\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+xfer\+\_\+from\+\_\+data (\begin{DoxyParamCaption}\item[{const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{data\+\_\+hdr,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{unsigned int}]{data\+\_\+len }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ data}, \textbf{ xua\+\_\+msg\+\_\+part\+::entry}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+msg\+::headers}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ xua\+\_\+msg\+\_\+part\+::tag}, \textbf{ XUA\+\_\+\+HDR}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+sccp()}, and \textbf{ mtp\+\_\+prim\+\_\+to\+\_\+m3ua()}.

\mbox{\label{m3ua_8c_a62fec3de2da183f6a7d87e9e84eadbe8}} 
\index{m3ua.c@{m3ua.c}!mtp\_xfer\_param\_to\_m3ua\_dh@{mtp\_xfer\_param\_to\_m3ua\_dh}}
\index{mtp\_xfer\_param\_to\_m3ua\_dh@{mtp\_xfer\_param\_to\_m3ua\_dh}!m3ua.c@{m3ua.c}}
\doxysubsubsection{mtp\_xfer\_param\_to\_m3ua\_dh()}
{\footnotesize\ttfamily void mtp\+\_\+xfer\+\_\+param\+\_\+to\+\_\+m3ua\+\_\+dh (\begin{DoxyParamCaption}\item[{struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{mdh,  }\item[{const struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$}]{param }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::mp}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::ni}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::si}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, and \textbf{ m3ua\+\_\+data\+\_\+hdr\+::sls}.



Referenced by \textbf{ mtp\+\_\+prim\+\_\+to\+\_\+m3ua()}.



\doxysubsection{Variable Documentation}
\mbox{\label{m3ua_8c_a0dec2e2c52a7f5e1c4c0a4cbcf93b8af}} 
\index{m3ua.c@{m3ua.c}!data\_mand\_ies@{data\_mand\_ies}}
\index{data\_mand\_ies@{data\_mand\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{data\_mand\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t data\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_PROT\_DATA, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_ad33ebb95b46b68932185e4526ea54271}} 
\index{m3ua.c@{m3ua.c}!daud\_mand\_ies@{daud\_mand\_ies}}
\index{daud\_mand\_ies@{daud\_mand\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{daud\_mand\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t daud\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_AFFECTED\_PC, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a432c07a5723749796adf40c709fa03b8}} 
\index{m3ua.c@{m3ua.c}!dava\_mand\_ies@{dava\_mand\_ies}}
\index{dava\_mand\_ies@{dava\_mand\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{dava\_mand\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t dava\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_AFFECTED\_PC, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_aa2a54b97b5401d9fbee06c136b514201}} 
\index{m3ua.c@{m3ua.c}!dereg\_req\_ies@{dereg\_req\_ies}}
\index{dereg\_req\_ies@{dereg\_req\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{dereg\_req\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t dereg\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_ROUTE\_CTX, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a26ac31c60d013259e4c19640287ae22e}} 
\index{m3ua.c@{m3ua.c}!dereg\_rsp\_ies@{dereg\_rsp\_ies}}
\index{dereg\_rsp\_ies@{dereg\_rsp\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{dereg\_rsp\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t dereg\+\_\+rsp\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_DEREG\_RESULT, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a48ecf604e0c72bd179d70840c8db0619}} 
\index{m3ua.c@{m3ua.c}!drst\_mand\_ies@{drst\_mand\_ies}}
\index{drst\_mand\_ies@{drst\_mand\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{drst\_mand\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t drst\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_AFFECTED\_PC, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a83031dada44b3b406e668d70e6d54400}} 
\index{m3ua.c@{m3ua.c}!duna\_mand\_ies@{duna\_mand\_ies}}
\index{duna\_mand\_ies@{duna\_mand\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{duna\_mand\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t duna\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_AFFECTED\_PC, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a12710cbc13bd1ece48359ef1a5447d7a}} 
\index{m3ua.c@{m3ua.c}!dupu\_mand\_ies@{dupu\_mand\_ies}}
\index{dupu\_mand\_ies@{dupu\_mand\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{dupu\_mand\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t dupu\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_AFFECTED\_PC, M3UA\_IEI\_USER\_CAUSE, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_aabba7438715175738fe3cb7ef7f2ff3a}} 
\index{m3ua.c@{m3ua.c}!err\_req\_ies@{err\_req\_ies}}
\index{err\_req\_ies@{err\_req\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{err\_req\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t err\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_ERR\_CODE, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_aedeeb45ea953715b07a481c37a1fe60b}} 
\index{m3ua.c@{m3ua.c}!m3ua\_aspsm\_msgt\_names@{m3ua\_aspsm\_msgt\_names}}
\index{m3ua\_aspsm\_msgt\_names@{m3ua\_aspsm\_msgt\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_aspsm\_msgt\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+aspsm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_ASPSM\_UP,   \textcolor{stringliteral}{"{}UP"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ASPSM\_DOWN,       \textcolor{stringliteral}{"{}DOWN"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ASPSM\_BEAT,       \textcolor{stringliteral}{"{}BEAT"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ASPSM\_UP\_ACK,   \textcolor{stringliteral}{"{}UP-\/ACK"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ASPSM\_DOWN\_ACK,       \textcolor{stringliteral}{"{}DOWN-\/ACK"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ASPSM\_BEAT\_ACK,       \textcolor{stringliteral}{"{}BEAT-\/ACK"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a2325c85c80cd3a09f2bdf493f344ea84}} 
\index{m3ua.c@{m3ua.c}!m3ua\_asptm\_msgt\_names@{m3ua\_asptm\_msgt\_names}}
\index{m3ua\_asptm\_msgt\_names@{m3ua\_asptm\_msgt\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_asptm\_msgt\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+asptm\+\_\+msgt\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_ASPTM\_ACTIVE,   \textcolor{stringliteral}{"{}ACTIVE"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ASPTM\_INACTIVE,       \textcolor{stringliteral}{"{}INACTIVE"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ASPTM\_ACTIVE\_ACK,\textcolor{stringliteral}{"{}ACTIVE-\/ACK"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ASPTM\_INACTIVE\_ACK, \textcolor{stringliteral}{"{}INACTIVE-\/ACK"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a95c8d714f16e4cad5cd2291946f2d018}} 
\index{m3ua.c@{m3ua.c}!m3ua\_aspxm\_map@{m3ua\_aspxm\_map}}
\index{m3ua\_aspxm\_map@{m3ua\_aspxm\_map}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_aspxm\_map}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map} m3ua\+\_\+aspxm\+\_\+map[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_UP, XUA\_ASP\_E\_ASPSM\_ASPUP \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_DOWN, XUA\_ASP\_E\_ASPSM\_ASPDN \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_BEAT, XUA\_ASP\_E\_ASPSM\_BEAT \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_UP\_ACK, XUA\_ASP\_E\_ASPSM\_ASPUP\_ACK \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_DOWN\_ACK, XUA\_ASP\_E\_ASPSM\_ASPDN\_ACK \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_BEAT\_ACK, XUA\_ASP\_E\_ASPSM\_BEAT\_ACK \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPTM, M3UA\_ASPTM\_ACTIVE, XUA\_ASP\_E\_ASPTM\_ASPAC \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPTM, M3UA\_ASPTM\_INACTIVE, XUA\_ASP\_E\_ASPTM\_ASPIA \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPTM, M3UA\_ASPTM\_ACTIVE\_ACK, XUA\_ASP\_E\_ASPTM\_ASPAC\_ACK \},}
\DoxyCodeLine{        \{ M3UA\_MSGC\_ASPTM, M3UA\_ASPTM\_INACTIVE\_ACK, XUA\_ASP\_E\_ASPTM\_ASPIA\_ACK \},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ m3ua\+\_\+rx\+\_\+asp()}.

\mbox{\label{m3ua_8c_a11c55fb5f6f56682c1754819b5a80eba}} 
\index{m3ua.c@{m3ua.c}!m3ua\_err\_names@{m3ua\_err\_names}}
\index{m3ua\_err\_names@{m3ua\_err\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_err\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+err\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_ERR\_INVALID\_VERSION,     \textcolor{stringliteral}{"{}Invalid Version"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_UNSUPP\_MSG\_CLASS,   \textcolor{stringliteral}{"{}Unsupported Message Class"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_UNSUPP\_MSG\_TYPE,     \textcolor{stringliteral}{"{}Unsupported Message Type"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_UNSUPP\_TRAF\_MOD\_TYP,     \textcolor{stringliteral}{"{}Unsupported Traffic Mode Type"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_UNEXPECTED\_MSG,       \textcolor{stringliteral}{"{}Unexpected Message"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_PROTOCOL\_ERR,   \textcolor{stringliteral}{"{}Protocol Error"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_INVAL\_STREAM\_ID,     \textcolor{stringliteral}{"{}Invalid Stream Identifier"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_REFUSED\_MGMT\_BLOCKING, \textcolor{stringliteral}{"{}Refused -\/ Management Blocking"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_ASP\_ID\_REQD,             \textcolor{stringliteral}{"{}ASP Identifier Required"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_INVAL\_ASP\_ID,   \textcolor{stringliteral}{"{}Invalid ASP Identifier"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_INVAL\_PARAM\_VAL,     \textcolor{stringliteral}{"{}Invalid Parameter Value"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_PARAM\_FIELD\_ERR,     \textcolor{stringliteral}{"{}Parameter Field Error"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_UNEXP\_PARAM,             \textcolor{stringliteral}{"{}Unexpected Parameter"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_DEST\_STATUS\_UNKN,   \textcolor{stringliteral}{"{}Destination Status Unknown"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_INVAL\_NET\_APPEAR,   \textcolor{stringliteral}{"{}Invalid Network Appearance"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_MISSING\_PARAM, \textcolor{stringliteral}{"{}Missing Parameter"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_INVAL\_ROUT\_CTX,       \textcolor{stringliteral}{"{}Invalid Routing Context"{}} \},}
\DoxyCodeLine{        \{ M3UA\_ERR\_NO\_CONFGD\_AS\_FOR\_ASP,\textcolor{stringliteral}{"{}No Configured AS for ASP"{}} \},}
\DoxyCodeLine{        \{ SUA\_ERR\_SUBSYS\_STATUS\_UNKN, \textcolor{stringliteral}{"{}Subsystem Status Unknown"{}} \},}
\DoxyCodeLine{        \{ SUA\_ERR\_INVAL\_LOADSH\_LEVEL, \textcolor{stringliteral}{"{}Invalid loadsharing level"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, \textbf{ peer\+\_\+send\+\_\+error()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+err()}.

\mbox{\label{m3ua_8c_ae8a54d2c40aa1006643f73c16d66f8af}} 
\index{m3ua.c@{m3ua.c}!m3ua\_iei\_names@{m3ua\_iei\_names}}
\index{m3ua\_iei\_names@{m3ua\_iei\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_iei\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+iei\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_IEI\_INFO\_STRING,             \textcolor{stringliteral}{"{}INFO String"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_ROUTE\_CTX,         \textcolor{stringliteral}{"{}Routing Context"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_DIAG\_INFO,         \textcolor{stringliteral}{"{}Diagnostic Info"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_HEARDBT\_DATA,   \textcolor{stringliteral}{"{}Heartbeat Data"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_TRAF\_MODE\_TYP, \textcolor{stringliteral}{"{}Traffic Mode Type"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_ERR\_CODE,           \textcolor{stringliteral}{"{}Error Code"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_STATUS,               \textcolor{stringliteral}{"{}Status"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_ASP\_ID,               \textcolor{stringliteral}{"{}ASP Identifier"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_AFFECTED\_PC,             \textcolor{stringliteral}{"{}Affected Point Code"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_CORR\_ID,             \textcolor{stringliteral}{"{}Correlation Id"{}} \},}
\DoxyCodeLine{}
\DoxyCodeLine{        \{ M3UA\_IEI\_NET\_APPEAR,               \textcolor{stringliteral}{"{}Network Appearance"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_USER\_CAUSE,               \textcolor{stringliteral}{"{}User/Cause"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_CONG\_IND,           \textcolor{stringliteral}{"{}Congestion Indication"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_CONC\_DEST,         \textcolor{stringliteral}{"{}Concerned Destination"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_ROUT\_KEY,           \textcolor{stringliteral}{"{}Routing Key"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_REG\_RESULT,               \textcolor{stringliteral}{"{}Registration Result"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_DEREG\_RESULT,   \textcolor{stringliteral}{"{}De-\/Registration Result"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_LOC\_RKEY\_ID,             \textcolor{stringliteral}{"{}Local Routing-\/Key Identifier"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_DEST\_PC,             \textcolor{stringliteral}{"{}Destination Point Code"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_SVC\_IND,             \textcolor{stringliteral}{"{}Service Indicators"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_ORIG\_PC,             \textcolor{stringliteral}{"{}Originating Point Code List"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_PROT\_DATA,         \textcolor{stringliteral}{"{}Protocol Data"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_REG\_STATUS,               \textcolor{stringliteral}{"{}Registration Status"{}} \},}
\DoxyCodeLine{        \{ M3UA\_IEI\_DEREG\_STATUS,   \textcolor{stringliteral}{"{}De-\/Registration Status"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a9004127a1d3b1fa30a42bd539f4299fc}} 
\index{m3ua.c@{m3ua.c}!m3ua\_mgmt\_msgt\_names@{m3ua\_mgmt\_msgt\_names}}
\index{m3ua\_mgmt\_msgt\_names@{m3ua\_mgmt\_msgt\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_mgmt\_msgt\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+mgmt\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_MGMT\_ERR,   \textcolor{stringliteral}{"{}ERROR"{}} \},}
\DoxyCodeLine{        \{ M3UA\_MGMT\_NTFY, \textcolor{stringliteral}{"{}NOTIFY"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_aa105aa577d0ecdda428b9352405069ae}} 
\index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_aspsm@{m3ua\_msg\_class\_aspsm}}
\index{m3ua\_msg\_class\_aspsm@{m3ua\_msg\_class\_aspsm}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_msg\_class\_aspsm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+aspsm}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}ASPSM"{}},}
\DoxyCodeLine{        .msgt\_names = m3ua\_aspsm\_msgt\_names,}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_aa223b2feb9001b4e618842ba7f9fe530}} 
\index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_asptm@{m3ua\_msg\_class\_asptm}}
\index{m3ua\_msg\_class\_asptm@{m3ua\_msg\_class\_asptm}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_msg\_class\_asptm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+asptm}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}ASPTM"{}},}
\DoxyCodeLine{        .msgt\_names = m3ua\_asptm\_msgt\_names,}
\DoxyCodeLine{        .iei\_names = m3ua\_iei\_names,}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_ac6878c5b045b1e7267b1a0b3afa364db}} 
\index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_mgmt@{m3ua\_msg\_class\_mgmt}}
\index{m3ua\_msg\_class\_mgmt@{m3ua\_msg\_class\_mgmt}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_msg\_class\_mgmt}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+mgmt}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}MGMT"{}},}
\DoxyCodeLine{        .msgt\_names = m3ua\_mgmt\_msgt\_names,}
\DoxyCodeLine{        .iei\_names = m3ua\_iei\_names,}
\DoxyCodeLine{        .mand\_ies = \{}
\DoxyCodeLine{                MAND\_IES(M3UA\_MGMT\_ERR, err\_req\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_MGMT\_NTFY, ntfy\_req\_ies),}
\DoxyCodeLine{        \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a7cb679c8ca9d252dfa766ec7f2fba44c}} 
\index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_rkm@{m3ua\_msg\_class\_rkm}}
\index{m3ua\_msg\_class\_rkm@{m3ua\_msg\_class\_rkm}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_msg\_class\_rkm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+rkm}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}RKM"{}},}
\DoxyCodeLine{        .msgt\_names = m3ua\_rkm\_msgt\_names,}
\DoxyCodeLine{        .iei\_names = m3ua\_iei\_names,}
\DoxyCodeLine{        .mand\_ies = \{}
\DoxyCodeLine{                MAND\_IES(M3UA\_RKM\_REG\_REQ, reg\_req\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_RKM\_REG\_RSP, reg\_rsp\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_RKM\_DEREG\_REQ, dereg\_req\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_RKM\_DEREG\_RSP, dereg\_rsp\_ies),}
\DoxyCodeLine{        \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a35e9ebf716b800839c00351acc2af5df}} 
\index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_snm@{m3ua\_msg\_class\_snm}}
\index{m3ua\_msg\_class\_snm@{m3ua\_msg\_class\_snm}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_msg\_class\_snm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+snm}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}SNM"{}},}
\DoxyCodeLine{        .msgt\_names = m3ua\_snm\_msgt\_names,}
\DoxyCodeLine{        .mand\_ies = \{}
\DoxyCodeLine{                MAND\_IES(M3UA\_SNM\_DUNA, duna\_mand\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_SNM\_DAVA, dava\_mand\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_SNM\_DAUD, daud\_mand\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_SNM\_SCON, scon\_mand\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_SNM\_DUPU, dupu\_mand\_ies),}
\DoxyCodeLine{                MAND\_IES(M3UA\_SNM\_DRST, drst\_mand\_ies),}
\DoxyCodeLine{        \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_aa8ec421eaf92b35c2d0a1d70c9e69c6e}} 
\index{m3ua.c@{m3ua.c}!m3ua\_ntfy\_other\_names@{m3ua\_ntfy\_other\_names}}
\index{m3ua\_ntfy\_other\_names@{m3ua\_ntfy\_other\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_ntfy\_other\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+other\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_I\_OT\_INS\_RES,     \textcolor{stringliteral}{"{}Insufficient ASP Resources active in AS"{}} \},}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_I\_OT\_ALT\_ASP\_ACT,     \textcolor{stringliteral}{"{}Alternative ASP Active"{}} \},}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_I\_OT\_ASP\_FAILURE,     \textcolor{stringliteral}{"{}ASP Failure"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}.

\mbox{\label{m3ua_8c_a336c3d71f1928545474640e45077bc88}} 
\index{m3ua.c@{m3ua.c}!m3ua\_ntfy\_stchg\_names@{m3ua\_ntfy\_stchg\_names}}
\index{m3ua\_ntfy\_stchg\_names@{m3ua\_ntfy\_stchg\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_ntfy\_stchg\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_I\_RESERVED, \textcolor{stringliteral}{"{}Reserved"{}} \},}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_I\_AS\_INACT, \textcolor{stringliteral}{"{}AS Inactive"{}} \},}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_I\_AS\_ACT,             \textcolor{stringliteral}{"{}AS Active"{}} \},}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_I\_AS\_PEND,   \textcolor{stringliteral}{"{}AS Pending"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}.

\mbox{\label{m3ua_8c_a0ce1a526587558d83d657b761f3c62c4}} 
\index{m3ua.c@{m3ua.c}!m3ua\_ntfy\_type\_names@{m3ua\_ntfy\_type\_names}}
\index{m3ua\_ntfy\_type\_names@{m3ua\_ntfy\_type\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_ntfy\_type\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+type\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_T\_STATCHG,   \textcolor{stringliteral}{"{}State Change"{}} \},}
\DoxyCodeLine{        \{ M3UA\_NOTIFY\_T\_OTHER,               \textcolor{stringliteral}{"{}Other"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}.

\mbox{\label{m3ua_8c_a1d9d393e28f0e2247757af11c490f39e}} 
\index{m3ua.c@{m3ua.c}!m3ua\_rkm\_msgt\_names@{m3ua\_rkm\_msgt\_names}}
\index{m3ua\_rkm\_msgt\_names@{m3ua\_rkm\_msgt\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_rkm\_msgt\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_RKM\_REG\_REQ,     \textcolor{stringliteral}{"{}REG-\/REQ"{}} \},}
\DoxyCodeLine{        \{ M3UA\_RKM\_REG\_RSP,     \textcolor{stringliteral}{"{}REG-\/RESP"{}} \},}
\DoxyCodeLine{        \{ M3UA\_RKM\_DEREG\_REQ, \textcolor{stringliteral}{"{}DEREG-\/REQ"{}} \},}
\DoxyCodeLine{        \{ M3UA\_RKM\_DEREG\_RSP, \textcolor{stringliteral}{"{}DEREG-\/RESP"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a96ad2b2c9d56411f67c26a6b5c6d7bdd}} 
\index{m3ua.c@{m3ua.c}!m3ua\_snm\_msgt\_names@{m3ua\_snm\_msgt\_names}}
\index{m3ua\_snm\_msgt\_names@{m3ua\_snm\_msgt\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_snm\_msgt\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+snm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_SNM\_DUNA,   \textcolor{stringliteral}{"{}DUNA"{}} \},}
\DoxyCodeLine{        \{ M3UA\_SNM\_DAVA,   \textcolor{stringliteral}{"{}DAVA"{}} \},}
\DoxyCodeLine{        \{ M3UA\_SNM\_DAUD,   \textcolor{stringliteral}{"{}DAUD"{}} \},}
\DoxyCodeLine{        \{ M3UA\_SNM\_SCON,   \textcolor{stringliteral}{"{}SCON"{}} \},}
\DoxyCodeLine{        \{ M3UA\_SNM\_DUPU,   \textcolor{stringliteral}{"{}DUPU"{}} \},}
\DoxyCodeLine{        \{ M3UA\_SNM\_DRST,   \textcolor{stringliteral}{"{}DRST"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_ab7c93245b2f1ec5018cc58d59317bacf}} 
\index{m3ua.c@{m3ua.c}!m3ua\_xfer\_msgt\_names@{m3ua\_xfer\_msgt\_names}}
\index{m3ua\_xfer\_msgt\_names@{m3ua\_xfer\_msgt\_names}!m3ua.c@{m3ua.c}}
\doxysubsubsection{m3ua\_xfer\_msgt\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+xfer\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ M3UA\_XFER\_DATA, \textcolor{stringliteral}{"{}DATA"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ m3ua\+\_\+rx\+\_\+xfer()}.

\mbox{\label{m3ua_8c_af0e6d3c9b9322f03fc705e1666be4ad9}} 
\index{m3ua.c@{m3ua.c}!msg\_class\_xfer@{msg\_class\_xfer}}
\index{msg\_class\_xfer@{msg\_class\_xfer}!m3ua.c@{m3ua.c}}
\doxysubsubsection{msg\_class\_xfer}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} msg\+\_\+class\+\_\+xfer\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}XFER"{}},}
\DoxyCodeLine{        .msgt\_names = m3ua\_xfer\_msgt\_names,}
\DoxyCodeLine{        .mand\_ies = \{}
\DoxyCodeLine{                MAND\_IES(M3UA\_XFER\_DATA, data\_mand\_ies),}
\DoxyCodeLine{        \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a7a4668e13461858e7ae5c96f946f032c}} 
\index{m3ua.c@{m3ua.c}!ntfy\_req\_ies@{ntfy\_req\_ies}}
\index{ntfy\_req\_ies@{ntfy\_req\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{ntfy\_req\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t ntfy\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_STATUS, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a7866fdd10f679afcc6e42d10c59ffcf7}} 
\index{m3ua.c@{m3ua.c}!reg\_req\_ies@{reg\_req\_ies}}
\index{reg\_req\_ies@{reg\_req\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{reg\_req\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t reg\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_ROUT\_KEY, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_ad2f30e4680b32979455a6b68718f00f1}} 
\index{m3ua.c@{m3ua.c}!reg\_rsp\_ies@{reg\_rsp\_ies}}
\index{reg\_rsp\_ies@{reg\_rsp\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{reg\_rsp\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t reg\+\_\+rsp\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_REG\_RESULT, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a09664928650382f05db82d15791cd264}} 
\index{m3ua.c@{m3ua.c}!scon\_mand\_ies@{scon\_mand\_ies}}
\index{scon\_mand\_ies@{scon\_mand\_ies}!m3ua.c@{m3ua.c}}
\doxysubsubsection{scon\_mand\_ies}
{\footnotesize\ttfamily const uint16\+\_\+t scon\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        M3UA\_IEI\_AFFECTED\_PC, 0}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{m3ua_8c_a14e3c740216dbf27160e15377d4dbd43}} 
\index{m3ua.c@{m3ua.c}!xua\_dialect\_m3ua@{xua\_dialect\_m3ua}}
\index{xua\_dialect\_m3ua@{xua\_dialect\_m3ua}!m3ua.c@{m3ua.c}}
\doxysubsubsection{xua\_dialect\_m3ua}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+dialect} xua\+\_\+dialect\+\_\+m3ua}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .name = \textcolor{stringliteral}{"{}M3UA"{}},}
\DoxyCodeLine{        .ppid = M3UA\_PPID,}
\DoxyCodeLine{        .port = M3UA\_PORT,}
\DoxyCodeLine{        .log\_subsys = DLM3UA,}
\DoxyCodeLine{        .class = \{}
\DoxyCodeLine{                [M3UA\_MSGC\_MGMT] = \&m3ua\_msg\_class\_mgmt,}
\DoxyCodeLine{                [M3UA\_MSGC\_XFER] = \&msg\_class\_xfer,}
\DoxyCodeLine{                [M3UA\_MSGC\_SNM] = \&m3ua\_msg\_class\_snm,}
\DoxyCodeLine{                [M3UA\_MSGC\_ASPSM] = \&m3ua\_msg\_class\_aspsm,}
\DoxyCodeLine{                [M3UA\_MSGC\_ASPTM] = \&m3ua\_msg\_class\_asptm,}
\DoxyCodeLine{                [M3UA\_MSGC\_RKM] = \&m3ua\_msg\_class\_rkm,}
\DoxyCodeLine{        \},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, and \textbf{ m3ua\+\_\+rx\+\_\+msg()}.

