\section{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
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ M3\+U\+A\+\_\+\+M\+S\+G\+B\+\_\+\+S\+I\+ZE}~1500
\item 
\#define \textbf{ M\+A\+N\+D\+\_\+\+I\+ES}(msgt,  ies)~[msgt] = (ies)
\item 
\#define \textbf{ M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE}~2048
\item 
\#define \textbf{ M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM}~512
\end{DoxyCompactItemize}
\subsection*{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 S\+S\+NM D\+U\+N\+A/\+D\+A\+VA 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 S\+S\+NM S\+C\+ON 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 S\+S\+NM D\+U\+PU 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}
\subsection*{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}


\subsection{Macro Definition Documentation}
\mbox{\label{m3ua_8c_a0a663c3db596ddb20df217c428675585}} 
\index{m3ua.\+c@{m3ua.\+c}!M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM@{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM}}
\index{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM@{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM}
{\footnotesize\ttfamily \#define M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM~512}



Referenced by m3ua\+\_\+msgb\+\_\+alloc().

\mbox{\label{m3ua_8c_abd0d34f59b10a9030dfbd87f24239f57}} 
\index{m3ua.\+c@{m3ua.\+c}!M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE@{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE}}
\index{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE@{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE~2048}



Referenced by m3ua\+\_\+msgb\+\_\+alloc().

\mbox{\label{m3ua_8c_a41a6ffbf30f870bb34ef56e08726669a}} 
\index{m3ua.\+c@{m3ua.\+c}!M3\+U\+A\+\_\+\+M\+S\+G\+B\+\_\+\+S\+I\+ZE@{M3\+U\+A\+\_\+\+M\+S\+G\+B\+\_\+\+S\+I\+ZE}}
\index{M3\+U\+A\+\_\+\+M\+S\+G\+B\+\_\+\+S\+I\+ZE@{M3\+U\+A\+\_\+\+M\+S\+G\+B\+\_\+\+S\+I\+ZE}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{M3\+U\+A\+\_\+\+M\+S\+G\+B\+\_\+\+S\+I\+ZE}
{\footnotesize\ttfamily \#define M3\+U\+A\+\_\+\+M\+S\+G\+B\+\_\+\+S\+I\+ZE~1500}

\mbox{\label{m3ua_8c_af10f2a394be1aaa2fb7dd4d1495e2316}} 
\index{m3ua.\+c@{m3ua.\+c}!M\+A\+N\+D\+\_\+\+I\+ES@{M\+A\+N\+D\+\_\+\+I\+ES}}
\index{M\+A\+N\+D\+\_\+\+I\+ES@{M\+A\+N\+D\+\_\+\+I\+ES}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{M\+A\+N\+D\+\_\+\+I\+ES}
{\footnotesize\ttfamily \#define M\+A\+N\+D\+\_\+\+I\+ES(\begin{DoxyParamCaption}\item[{}]{msgt,  }\item[{}]{ies }\end{DoxyParamCaption})~[msgt] = (ies)}



\subsection{Function Documentation}
\mbox{\label{m3ua_8c_aed43760964d48ed2ae9e15b1e63e7611}} 
\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}}
\subsubsection{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 xua\+\_\+msg\+\_\+part\+::dat, xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+P\+R\+O\+T\+\_\+\+D\+A\+TA, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+X\+F\+ER, M3\+U\+A\+\_\+\+X\+F\+E\+R\+\_\+\+D\+A\+TA, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type, and xua\+\_\+msg\+\_\+find\+\_\+tag().



Referenced by hmdt\+\_\+message\+\_\+for\+\_\+distribution(), and 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}}
\subsubsection{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 osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id, xua\+\_\+msg\+\_\+part\+::dat, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string, xua\+\_\+msg\+\_\+part\+::len, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+S\+P\+\_\+\+ID, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+T\+A\+T\+US, N\+O\+T\+I\+F\+Y\+\_\+\+P\+A\+R\+\_\+\+P\+\_\+\+A\+S\+P\+\_\+\+ID, N\+O\+T\+I\+F\+Y\+\_\+\+P\+A\+R\+\_\+\+P\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type, xua\+\_\+msg\+\_\+find\+\_\+tag(), and xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32().



Referenced by m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy(), and 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}}
\subsubsection{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 osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc, m3ua\+\_\+data\+\_\+hdr\+::dpc, m3ua\+\_\+data\+\_\+hdr\+::mp, m3ua\+\_\+data\+\_\+hdr\+::ni, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc, m3ua\+\_\+data\+\_\+hdr\+::opc, m3ua\+\_\+data\+\_\+hdr\+::si, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls, and m3ua\+\_\+data\+\_\+hdr\+::sls.



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

\mbox{\label{m3ua_8c_a43ad5b5f6f19bd2e909f09e1c366fa6c}} 
\index{m3ua.\+c@{m3ua.\+c}!m3ua\+\_\+encode\+\_\+dava@{m3ua\+\_\+encode\+\_\+dava}}
\index{m3ua\+\_\+encode\+\_\+dava@{m3ua\+\_\+encode\+\_\+dava}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{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 xua\+\_\+msg\+::hdr, m3ua\+\_\+encode\+\_\+duna(), M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+A\+UD, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+A\+VA, and xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type.



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

\mbox{\label{m3ua_8c_a86576a552400de636becbe2c4f16bf68}} 
\index{m3ua.\+c@{m3ua.\+c}!m3ua\+\_\+encode\+\_\+duna@{m3ua\+\_\+encode\+\_\+duna}}
\index{m3ua\+\_\+encode\+\_\+duna@{m3ua\+\_\+encode\+\_\+duna}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{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 xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+S\+NM, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+U\+NA, M3\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::version, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+add\+\_\+data(), and xua\+\_\+msg\+\_\+alloc().



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

\mbox{\label{m3ua_8c_add143a6b1d3a7954d27b9414132cdebe}} 
\index{m3ua.\+c@{m3ua.\+c}!m3ua\+\_\+encode\+\_\+dupu@{m3ua\+\_\+encode\+\_\+dupu}}
\index{m3ua\+\_\+encode\+\_\+dupu@{m3ua\+\_\+encode\+\_\+dupu}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{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 xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+U\+S\+E\+R\+\_\+\+C\+A\+U\+SE, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+S\+NM, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+U\+PU, M3\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::version, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+add\+\_\+data(), xua\+\_\+msg\+\_\+add\+\_\+u32(), and xua\+\_\+msg\+\_\+alloc().



Referenced by m3ua\+\_\+tx\+\_\+dupu().

\mbox{\label{m3ua_8c_a7f3779c54a38b2e1f8c18a5ed541cb7f}} 
\index{m3ua.\+c@{m3ua.\+c}!m3ua\+\_\+encode\+\_\+notify@{m3ua\+\_\+encode\+\_\+notify}}
\index{m3ua\+\_\+encode\+\_\+notify@{m3ua\+\_\+encode\+\_\+notify}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{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 osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id, xua\+\_\+msg\+::hdr, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+S\+P\+\_\+\+ID, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+T\+A\+T\+US, M3\+U\+A\+\_\+\+M\+G\+M\+T\+\_\+\+N\+T\+FY, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+M\+G\+MT, M3\+U\+A\+\_\+\+N\+O\+T\+I\+FY, N\+O\+T\+I\+F\+Y\+\_\+\+P\+A\+R\+\_\+\+P\+\_\+\+A\+S\+P\+\_\+\+ID, N\+O\+T\+I\+F\+Y\+\_\+\+P\+A\+R\+\_\+\+P\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+add\+\_\+data(), xua\+\_\+msg\+\_\+add\+\_\+u32(), and xua\+\_\+msg\+\_\+alloc().



Referenced by encode\+\_\+notify().

\mbox{\label{m3ua_8c_a91eadba21ef58e0a8cf6773efd58981c}} 
\index{m3ua.\+c@{m3ua.\+c}!m3ua\+\_\+gen\+\_\+error@{m3ua\+\_\+gen\+\_\+error}}
\index{m3ua\+\_\+gen\+\_\+error@{m3ua\+\_\+gen\+\_\+error}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{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 xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+E\+R\+R\+\_\+\+C\+O\+DE, M3\+U\+A\+\_\+\+M\+G\+M\+T\+\_\+\+E\+RR, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+M\+G\+MT, M3\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::version, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+add\+\_\+u32(), and xua\+\_\+msg\+\_\+alloc().



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

\mbox{\label{m3ua_8c_a7caa3c33d6266cf0c551c6cbd4bee629}} 
\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}}
\subsubsection{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 m3ua\+\_\+gen\+\_\+error(), M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+D\+I\+A\+G\+\_\+\+I\+N\+FO, and xua\+\_\+msg\+\_\+add\+\_\+data().



Referenced by m3ua\+\_\+rx\+\_\+msg().

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



References M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM, and M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE.



Referenced by m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req(), m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req(), m3ua\+\_\+to\+\_\+xfer\+\_\+ind(), xua\+\_\+cli\+\_\+read\+\_\+cb(), xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req(), xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req(), and xua\+\_\+srv\+\_\+conn\+\_\+cb().

\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}}
\subsubsection{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 xua\+\_\+msg\+\_\+event\+\_\+map\+::event, osmo\+\_\+ss7\+\_\+asp\+::fi, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+E\+X\+P\+E\+C\+T\+E\+D\+\_\+\+M\+SG, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+T\+Y\+PE, m3ua\+\_\+rx\+\_\+snm(), and xua\+\_\+msg\+\_\+event\+\_\+map().



Referenced by 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}}
\subsubsection{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 xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+T\+Y\+PE, M3\+U\+A\+\_\+\+M\+G\+M\+T\+\_\+\+E\+RR, M3\+U\+A\+\_\+\+M\+G\+M\+T\+\_\+\+N\+T\+FY, m3ua\+\_\+rx\+\_\+mgmt\+\_\+err(), m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy(), and xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type.



Referenced by 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}}
\subsubsection{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 osmo\+\_\+xlm\+\_\+prim\+\_\+error\+::code, osmo\+\_\+xlm\+\_\+prim\+::error, L\+O\+G\+P\+A\+SP, m3ua\+\_\+err\+\_\+names, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+E\+R\+R\+\_\+\+C\+O\+DE, O\+S\+M\+O\+\_\+\+X\+L\+M\+\_\+\+P\+R\+I\+M\+\_\+\+M\+\_\+\+E\+R\+R\+OR, osmo\+\_\+xlm\+\_\+prim\+::u, xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim(), xua\+\_\+msg\+\_\+dump(), xua\+\_\+msg\+\_\+get\+\_\+u32(), and xua\+\_\+xlm\+\_\+prim\+\_\+alloc().



Referenced by 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}}
\subsubsection{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 osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string, L\+O\+G\+P\+A\+SP, m3ua\+\_\+decode\+\_\+notify(), M3\+U\+A\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+T\+\_\+\+O\+T\+H\+ER, M3\+U\+A\+\_\+\+N\+O\+T\+I\+F\+Y\+\_\+\+T\+\_\+\+S\+T\+A\+T\+C\+HG, m3ua\+\_\+ntfy\+\_\+other\+\_\+names, m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names, m3ua\+\_\+ntfy\+\_\+type\+\_\+names, osmo\+\_\+xlm\+\_\+prim\+::notify, O\+S\+M\+O\+\_\+\+X\+L\+M\+\_\+\+P\+R\+I\+M\+\_\+\+M\+\_\+\+N\+O\+T\+I\+FY, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type, osmo\+\_\+xlm\+\_\+prim\+::u, xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim(), and xua\+\_\+xlm\+\_\+prim\+\_\+alloc().



Referenced by 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}}
\subsubsection{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{\tt in}  & {\em asp} & Application Server Process receiving msg \\
\hline
\mbox{\tt in}  & {\em msg} & received message buffer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References osmo\+\_\+ss7\+\_\+asp\+::cfg, xua\+\_\+common\+\_\+hdr\+::data, xua\+\_\+msg\+::hdr, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+\_\+\+S\+T\+R\+E\+A\+M\+\_\+\+ID, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+M\+I\+S\+S\+I\+N\+G\+\_\+\+P\+A\+R\+AM, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+P\+A\+R\+A\+M\+\_\+\+F\+I\+E\+L\+D\+\_\+\+E\+RR, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+C\+L\+A\+SS, m3ua\+\_\+gen\+\_\+error\+\_\+msg(), M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+A\+S\+P\+SM, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+A\+S\+P\+TM, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+M\+G\+MT, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+R\+KM, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+S\+NM, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+X\+F\+ER, m3ua\+\_\+rx\+\_\+asp(), m3ua\+\_\+rx\+\_\+mgmt(), m3ua\+\_\+rx\+\_\+rkm(), m3ua\+\_\+rx\+\_\+snm(), m3ua\+\_\+rx\+\_\+xfer(), m3ua\+\_\+tx\+\_\+xua\+\_\+asp(), M3\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+M3\+UA, osmo\+\_\+ss7\+\_\+asp\+::proto, xua\+\_\+common\+\_\+hdr\+::version, xua\+\_\+dialect\+\_\+check\+\_\+all\+\_\+mand\+\_\+ies(), xua\+\_\+from\+\_\+msg(), xua\+\_\+hdr\+\_\+dump(), and xua\+\_\+msg\+\_\+free().



Referenced by xua\+\_\+cli\+\_\+read\+\_\+cb(), and xua\+\_\+srv\+\_\+conn\+\_\+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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+asp\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::fi, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+E\+X\+P\+E\+C\+T\+E\+D\+\_\+\+M\+SG, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+C\+L\+A\+SS, m3ua\+\_\+rx\+\_\+snm\+\_\+asp(), m3ua\+\_\+rx\+\_\+snm\+\_\+sg(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+Q\+U\+I\+R\+K\+\_\+\+S\+N\+M\+\_\+\+I\+N\+A\+C\+T\+I\+VE, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+R\+O\+L\+E\+\_\+\+A\+SP, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+R\+O\+L\+E\+\_\+\+SG, osmo\+\_\+ss7\+\_\+asp\+::quirks, osmo\+\_\+ss7\+\_\+asp\+::role, X\+U\+A\+\_\+\+A\+S\+P\+\_\+\+S\+\_\+\+A\+C\+T\+I\+VE, and X\+U\+A\+\_\+\+A\+S\+P\+\_\+\+S\+\_\+\+I\+N\+A\+C\+T\+I\+VE.



Referenced by m3ua\+\_\+rx\+\_\+asp(), and 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+asp\+::cfg, xua\+\_\+msg\+::hdr, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+T\+Y\+PE, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+A\+UD, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+A\+VA, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+R\+ST, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+U\+NA, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+U\+PU, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+S\+C\+ON, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+Q\+U\+I\+R\+K\+\_\+\+D\+A\+U\+D\+\_\+\+I\+N\+\_\+\+A\+SP, osmo\+\_\+ss7\+\_\+asp\+::quirks, xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp(), xua\+\_\+msg\+\_\+find\+\_\+tag(), xua\+\_\+snm\+\_\+rx\+\_\+daud(), xua\+\_\+snm\+\_\+rx\+\_\+dava(), xua\+\_\+snm\+\_\+rx\+\_\+duna(), xua\+\_\+snm\+\_\+rx\+\_\+dupu(), and xua\+\_\+snm\+\_\+rx\+\_\+scon().



Referenced by 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}}
\subsubsection{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 xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+T\+Y\+PE, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+D\+A\+UD, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type, and xua\+\_\+snm\+\_\+rx\+\_\+daud().



Referenced by 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+as\+::ctrg, data\+\_\+hdr\+\_\+from\+\_\+m3ua(), osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc, xua\+\_\+msg\+::hdr, osmo\+\_\+ss7\+\_\+asp\+::inst, L\+O\+G\+P\+A\+SP, m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param(), M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+T\+Y\+PE, m3ua\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2(), M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+X\+F\+E\+R\+\_\+\+D\+A\+TA, m3ua\+\_\+xfer\+\_\+msgt\+\_\+names, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type, xua\+\_\+msg\+::mtp, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc, osmo\+\_\+ss7\+\_\+pointcode\+\_\+print(), osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2(), S\+S7\+\_\+\+A\+S\+\_\+\+C\+T\+R\+\_\+\+R\+X\+\_\+\+M\+S\+U\+\_\+\+T\+O\+T\+AL, xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp(), xua\+\_\+msg\+\_\+find\+\_\+tag(), and xua\+\_\+msg\+\_\+free\+\_\+tag().



Referenced by m3ua\+\_\+rx\+\_\+msg().

\mbox{\label{m3ua_8c_a952c17b3d5177f465ed06f8e03fc296e}} 
\index{m3ua.\+c@{m3ua.\+c}!m3ua\+\_\+to\+\_\+msg@{m3ua\+\_\+to\+\_\+msg}}
\index{m3ua\+\_\+to\+\_\+msg@{m3ua\+\_\+to\+\_\+msg}!m3ua.\+c@{m3ua.\+c}}
\subsubsection{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 xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+X\+F\+ER, M3\+U\+A\+\_\+\+P\+P\+ID, M3\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class, and xua\+\_\+to\+\_\+msg().



Referenced by m3ua\+\_\+tx\+\_\+xua\+\_\+as(), and 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}}
\subsubsection{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 S\+S\+NM D\+U\+PU message indicating user unavailability. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em asp} & A\+SP through which to transmit message. Must be A\+C\+T\+I\+VE. \\
\hline
\mbox{\tt in}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\tt in}  & {\em dpc} & affected point code \\
\hline
\mbox{\tt in}  & {\em user} & the user (SI) that is unavailable \\
\hline
\mbox{\tt in}  & {\em cause} & the cause of the user unavailability \\
\hline
\mbox{\tt in}  & {\em info\+\_\+string} & optional information string (can be N\+U\+LL). \\
\hline
\end{DoxyParams}


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



Referenced by 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}}
\subsubsection{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 S\+S\+NM D\+U\+N\+A/\+D\+A\+VA message indicating [un]availability of certain point code[s]. 


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


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



Referenced by 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}}
\subsubsection{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 S\+S\+NM S\+C\+ON message indicating congestion. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em asp} & A\+SP through which to transmit message. Must be A\+C\+T\+I\+VE. \\
\hline
\mbox{\tt in}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\tt in}  & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\
\hline
\mbox{\tt in}  & {\em concerned\+\_\+dpc} & optional concerned D\+PC (can be N\+U\+LL) \\
\hline
\mbox{\tt in}  & {\em cong\+\_\+level} & optional congestion level (can be N\+U\+LL) \\
\hline
\mbox{\tt in}  & {\em info\+\_\+string} & optional information string (can be N\+U\+LL). \\
\hline
\end{DoxyParams}


References xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+C\+O\+N\+C\+\_\+\+D\+E\+ST, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+C\+O\+N\+G\+\_\+\+I\+ND, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+S\+NM, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+S\+C\+ON, m3ua\+\_\+tx\+\_\+xua\+\_\+asp(), M3\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::version, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+add\+\_\+data(), xua\+\_\+msg\+\_\+add\+\_\+u32(), xua\+\_\+msg\+\_\+alloc(), and xua\+\_\+msg\+\_\+free().



Referenced by 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}}
\subsubsection{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{\tt in}  & {\em as} & Application Server through which to send xua \\
\hline
\mbox{\tt in}  & {\em xua} & x\+UA message to be sent \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context, osmo\+\_\+ss7\+\_\+as\+::fi, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, m3ua\+\_\+to\+\_\+msg(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+M3\+UA, osmo\+\_\+ss7\+\_\+as\+::proto, osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key, X\+U\+A\+\_\+\+A\+S\+\_\+\+E\+\_\+\+T\+R\+A\+N\+S\+F\+E\+R\+\_\+\+R\+EQ, and xua\+\_\+msg\+\_\+add\+\_\+u32().



Referenced by 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+asp\+::cfg, m3ua\+\_\+to\+\_\+msg(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+M3\+UA, osmo\+\_\+ss7\+\_\+asp\+\_\+send(), and osmo\+\_\+ss7\+\_\+asp\+::proto.



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

\mbox{\label{m3ua_8c_aad969ffbe815ce0108698b2d874bb98a}} 
\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}}
\subsubsection{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 xua\+\_\+msg\+\_\+part\+::dat, xua\+\_\+msg\+\_\+part\+::entry, xua\+\_\+msg\+::hdr, xua\+\_\+msg\+::headers, xua\+\_\+msg\+\_\+part\+::len, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+P\+R\+O\+T\+\_\+\+D\+A\+TA, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+X\+F\+ER, M3\+U\+A\+\_\+\+X\+F\+E\+R\+\_\+\+D\+A\+TA, xua\+\_\+msg\+\_\+part\+::tag, X\+U\+A\+\_\+\+H\+DR, and xua\+\_\+msg\+\_\+alloc().



Referenced by ipa\+\_\+rx\+\_\+msg\+\_\+sccp(), and 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}}
\subsubsection{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 osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc, m3ua\+\_\+data\+\_\+hdr\+::dpc, m3ua\+\_\+data\+\_\+hdr\+::mp, m3ua\+\_\+data\+\_\+hdr\+::ni, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc, m3ua\+\_\+data\+\_\+hdr\+::opc, m3ua\+\_\+data\+\_\+hdr\+::si, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls, and m3ua\+\_\+data\+\_\+hdr\+::sls.



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



\subsection{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}}
\subsubsection{data\+\_\+mand\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t data\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_PROT_DATA, 0
\}
\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}}
\subsubsection{daud\+\_\+mand\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t daud\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_AFFECTED_PC, 0
\}
\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}}
\subsubsection{dava\+\_\+mand\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t dava\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_AFFECTED_PC, 0
\}
\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}}
\subsubsection{dereg\+\_\+req\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t dereg\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_ROUTE_CTX, 0
\}
\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}}
\subsubsection{dereg\+\_\+rsp\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t dereg\+\_\+rsp\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_DEREG_RESULT, 0
\}
\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}}
\subsubsection{drst\+\_\+mand\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t drst\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_AFFECTED_PC, 0
\}
\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}}
\subsubsection{duna\+\_\+mand\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t duna\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_AFFECTED_PC, 0
\}
\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}}
\subsubsection{dupu\+\_\+mand\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t dupu\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_AFFECTED_PC, M3UA_IEI_USER_CAUSE, 0
\}
\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}}
\subsubsection{err\+\_\+req\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t err\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_ERR_CODE, 0
\}
\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}}
\subsubsection{m3ua\+\_\+aspsm\+\_\+msgt\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+aspsm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_ASPSM_UP,        \textcolor{stringliteral}{"UP"} \},
        \{ M3UA_ASPSM_DOWN,      \textcolor{stringliteral}{"DOWN"} \},
        \{ M3UA_ASPSM_BEAT,      \textcolor{stringliteral}{"BEAT"} \},
        \{ M3UA_ASPSM_UP_ACK,    \textcolor{stringliteral}{"UP-ACK"} \},
        \{ M3UA_ASPSM_DOWN_ACK,  \textcolor{stringliteral}{"DOWN-ACK"} \},
        \{ M3UA_ASPSM_BEAT_ACK,  \textcolor{stringliteral}{"BEAT-ACK"} \},
        \{ 0, NULL \}
\}
\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}}
\subsubsection{m3ua\+\_\+asptm\+\_\+msgt\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+asptm\+\_\+msgt\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_ASPTM_ACTIVE,    \textcolor{stringliteral}{"ACTIVE"} \},
        \{ M3UA_ASPTM_INACTIVE,  \textcolor{stringliteral}{"INACTIVE"} \},
        \{ M3UA_ASPTM_ACTIVE_ACK,\textcolor{stringliteral}{"ACTIVE-ACK"} \},
        \{ M3UA_ASPTM_INACTIVE_ACK, \textcolor{stringliteral}{"INACTIVE-ACK"} \},
        \{ 0, NULL \}
\}
\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}}
\subsubsection{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}
= \{
        \{ M3UA_MSGC_ASPSM, M3UA_ASPSM_UP, XUA_ASP_E_ASPSM_ASPUP \},
        \{ M3UA_MSGC_ASPSM, M3UA_ASPSM_DOWN, XUA_ASP_E_ASPSM_ASPDN \},
        \{ M3UA_MSGC_ASPSM, M3UA_ASPSM_BEAT, XUA_ASP_E_ASPSM_BEAT \},
        \{ M3UA_MSGC_ASPSM, M3UA_ASPSM_UP_ACK, XUA_ASP_E_ASPSM_ASPUP_ACK \},
        \{ M3UA_MSGC_ASPSM, M3UA_ASPSM_DOWN_ACK, XUA_ASP_E_ASPSM_ASPDN_ACK \},
        \{ M3UA_MSGC_ASPSM, M3UA_ASPSM_BEAT_ACK, XUA_ASP_E_ASPSM_BEAT_ACK \},
        \{ M3UA_MSGC_ASPTM, M3UA_ASPTM_ACTIVE, XUA_ASP_E_ASPTM_ASPAC \},
        \{ M3UA_MSGC_ASPTM, M3UA_ASPTM_INACTIVE, XUA_ASP_E_ASPTM_ASPIA \},
        \{ M3UA_MSGC_ASPTM, M3UA_ASPTM_ACTIVE_ACK, XUA_ASP_E_ASPTM_ASPAC_ACK \},
        \{ M3UA_MSGC_ASPTM, M3UA_ASPTM_INACTIVE_ACK, XUA_ASP_E_ASPTM_ASPIA_ACK \},
\}
\end{DoxyCode}
\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}}
\subsubsection{m3ua\+\_\+err\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+err\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_ERR_INVALID_VERSION,     \textcolor{stringliteral}{"Invalid Version"} \},
        \{ M3UA_ERR_UNSUPP_MSG_CLASS,    \textcolor{stringliteral}{"Unsupported Message Class"} \},
        \{ M3UA_ERR_UNSUPP_MSG_TYPE,     \textcolor{stringliteral}{"Unsupported Message Type"} \},
        \{ M3UA_ERR_UNSUPP_TRAF_MOD_TYP, \textcolor{stringliteral}{"Unsupported Traffic Mode Type"} \},
        \{ M3UA_ERR_UNEXPECTED_MSG,      \textcolor{stringliteral}{"Unexpected Message"} \},
        \{ M3UA_ERR_PROTOCOL_ERR,        \textcolor{stringliteral}{"Protocol Error"} \},
        \{ M3UA_ERR_INVAL_STREAM_ID,     \textcolor{stringliteral}{"Invalid Stream Identifier"} \},
        \{ M3UA_ERR_REFUSED_MGMT_BLOCKING, \textcolor{stringliteral}{"Refused - Management Blocking"} \},
        \{ M3UA_ERR_ASP_ID_REQD,         \textcolor{stringliteral}{"ASP Identifier Required"} \},
        \{ M3UA_ERR_INVAL_ASP_ID,        \textcolor{stringliteral}{"Invalid ASP Identifier"} \},
        \{ M3UA_ERR_INVAL_PARAM_VAL,     \textcolor{stringliteral}{"Invalid Parameter Value"} \},
        \{ M3UA_ERR_PARAM_FIELD_ERR,     \textcolor{stringliteral}{"Parameter Field Error"} \},
        \{ M3UA_ERR_UNEXP_PARAM,         \textcolor{stringliteral}{"Unexpected Parameter"} \},
        \{ M3UA_ERR_DEST_STATUS_UNKN,    \textcolor{stringliteral}{"Destination Status Unknown"} \},
        \{ M3UA_ERR_INVAL_NET_APPEAR,    \textcolor{stringliteral}{"Invalid Network Appearance"} \},
        \{ M3UA_ERR_MISSING_PARAM,       \textcolor{stringliteral}{"Missing Parameter"} \},
        \{ M3UA_ERR_INVAL_ROUT_CTX,      \textcolor{stringliteral}{"Invalid Routing Context"} \},
        \{ M3UA_ERR_NO_CONFGD_AS_FOR_ASP,\textcolor{stringliteral}{"No Configured AS for ASP"} \},
        \{ SUA_ERR_SUBSYS_STATUS_UNKN,   \textcolor{stringliteral}{"Subsystem Status Unknown"} \},
        \{ SUA_ERR_INVAL_LOADSH_LEVEL,   \textcolor{stringliteral}{"Invalid loadsharing level"} \},
        \{ 0, NULL \}
\}
\end{DoxyCode}


Referenced by m3ua\+\_\+rx\+\_\+mgmt\+\_\+err(), and 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}}
\subsubsection{m3ua\+\_\+iei\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+iei\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_IEI_INFO_STRING,         \textcolor{stringliteral}{"INFO String"} \},
        \{ M3UA_IEI_ROUTE_CTX,           \textcolor{stringliteral}{"Routing Context"} \},
        \{ M3UA_IEI_DIAG_INFO,           \textcolor{stringliteral}{"Diagnostic Info"} \},
        \{ M3UA_IEI_HEARDBT_DATA,        \textcolor{stringliteral}{"Heartbeat Data"} \},
        \{ M3UA_IEI_TRAF_MODE_TYP,       \textcolor{stringliteral}{"Traffic Mode Type"} \},
        \{ M3UA_IEI_ERR_CODE,            \textcolor{stringliteral}{"Error Code"} \},
        \{ M3UA_IEI_STATUS,              \textcolor{stringliteral}{"Status"} \},
        \{ M3UA_IEI_ASP_ID,              \textcolor{stringliteral}{"ASP Identifier"} \},
        \{ M3UA_IEI_AFFECTED_PC,         \textcolor{stringliteral}{"Affected Point Code"} \},
        \{ M3UA_IEI_CORR_ID,             \textcolor{stringliteral}{"Correlation Id"} \},

        \{ M3UA_IEI_NET_APPEAR,          \textcolor{stringliteral}{"Network Appearance"} \},
        \{ M3UA_IEI_USER_CAUSE,          \textcolor{stringliteral}{"User/Cause"} \},
        \{ M3UA_IEI_CONG_IND,            \textcolor{stringliteral}{"Congestion Indication"} \},
        \{ M3UA_IEI_CONC_DEST,           \textcolor{stringliteral}{"Concerned Destination"} \},
        \{ M3UA_IEI_ROUT_KEY,            \textcolor{stringliteral}{"Routing Key"} \},
        \{ M3UA_IEI_REG_RESULT,          \textcolor{stringliteral}{"Registration Result"} \},
        \{ M3UA_IEI_DEREG_RESULT,        \textcolor{stringliteral}{"De-Registration Result"} \},
        \{ M3UA_IEI_LOC_RKEY_ID,         \textcolor{stringliteral}{"Local Routing-Key Identifier"} \},
        \{ M3UA_IEI_DEST_PC,             \textcolor{stringliteral}{"Destination Point Code"} \},
        \{ M3UA_IEI_SVC_IND,             \textcolor{stringliteral}{"Service Indicators"} \},
        \{ M3UA_IEI_ORIG_PC,             \textcolor{stringliteral}{"Originating Point Code List"} \},
        \{ M3UA_IEI_PROT_DATA,           \textcolor{stringliteral}{"Protocol Data"} \},
        \{ M3UA_IEI_REG_STATUS,          \textcolor{stringliteral}{"Registration Status"} \},
        \{ M3UA_IEI_DEREG_STATUS,        \textcolor{stringliteral}{"De-Registration Status"} \},
        \{ 0, NULL \}
\}
\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}}
\subsubsection{m3ua\+\_\+mgmt\+\_\+msgt\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+mgmt\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_MGMT_ERR,        \textcolor{stringliteral}{"ERROR"} \},
        \{ M3UA_MGMT_NTFY,       \textcolor{stringliteral}{"NOTIFY"} \},
        \{ 0, NULL \}
\}
\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+aspsm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+aspsm}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        .name = \textcolor{stringliteral}{"ASPSM"},
        .msgt\_names = m3ua_aspsm_msgt_names,
\}
\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+asptm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+asptm}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        .name = \textcolor{stringliteral}{"ASPTM"},
        .msgt\_names = m3ua_asptm_msgt_names,
        .iei\_names = m3ua_iei_names,
\}
\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+mgmt}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+mgmt}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        .name = \textcolor{stringliteral}{"MGMT"},
        .msgt\_names = m3ua_mgmt_msgt_names,
        .iei\_names = m3ua_iei_names,
        .mand\_ies = \{
                MAND_IES(M3UA_MGMT_ERR, err_req_ies),
                MAND_IES(M3UA_MGMT_NTFY, ntfy_req_ies),
        \},
\}
\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+rkm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+rkm}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        .name = \textcolor{stringliteral}{"RKM"},
        .msgt\_names = m3ua_rkm_msgt_names,
        .iei\_names = m3ua_iei_names,
        .mand\_ies = \{
                MAND_IES(M3UA_RKM_REG_REQ, reg_req_ies),
                MAND_IES(M3UA_RKM_REG_RSP, reg_rsp_ies),
                MAND_IES(M3UA_RKM_DEREG_REQ, dereg_req_ies),
                MAND_IES(M3UA_RKM_DEREG_RSP, dereg_rsp_ies),
        \},
\}
\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+snm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+snm}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        .name = \textcolor{stringliteral}{"SNM"},
        .msgt\_names = m3ua_snm_msgt_names,
        .mand\_ies = \{
                MAND_IES(M3UA_SNM_DUNA, duna_mand_ies),
                MAND_IES(M3UA_SNM_DAVA, dava_mand_ies),
                MAND_IES(M3UA_SNM_DAUD, daud_mand_ies),
                MAND_IES(M3UA_SNM_SCON, scon_mand_ies),
                MAND_IES(M3UA_SNM_DUPU, dupu_mand_ies),
                MAND_IES(M3UA_SNM_DRST, drst_mand_ies),
        \},
\}
\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}}
\subsubsection{m3ua\+\_\+ntfy\+\_\+other\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+other\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_NOTIFY_I_OT_INS_RES,     \textcolor{stringliteral}{"Insufficient ASP Resources active in AS"} \},
        \{ M3UA_NOTIFY_I_OT_ALT_ASP_ACT, \textcolor{stringliteral}{"Alternative ASP Active"} \},
        \{ M3UA_NOTIFY_I_OT_ASP_FAILURE, \textcolor{stringliteral}{"ASP Failure"} \},
        \{ 0, NULL \}
\}
\end{DoxyCode}


Referenced by m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy(), and 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}}
\subsubsection{m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_NOTIFY_I_RESERVED,       \textcolor{stringliteral}{"Reserved"} \},
        \{ M3UA_NOTIFY_I_AS_INACT,       \textcolor{stringliteral}{"AS Inactive"} \},
        \{ M3UA_NOTIFY_I_AS_ACT,         \textcolor{stringliteral}{"AS Active"} \},
        \{ M3UA_NOTIFY_I_AS_PEND,        \textcolor{stringliteral}{"AS Pending"} \},
        \{ 0, NULL \}
\}
\end{DoxyCode}


Referenced by m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy(), and 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}}
\subsubsection{m3ua\+\_\+ntfy\+\_\+type\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+type\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_NOTIFY_T_STATCHG,        \textcolor{stringliteral}{"State Change"} \},
        \{ M3UA_NOTIFY_T_OTHER,          \textcolor{stringliteral}{"Other"} \},
        \{ 0, NULL \}
\}
\end{DoxyCode}


Referenced by m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy(), and 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}}
\subsubsection{m3ua\+\_\+rkm\+\_\+msgt\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_RKM_REG_REQ,     \textcolor{stringliteral}{"REG-REQ"} \},
        \{ M3UA_RKM_REG_RSP,     \textcolor{stringliteral}{"REG-RESP"} \},
        \{ M3UA_RKM_DEREG_REQ,   \textcolor{stringliteral}{"DEREG-REQ"} \},
        \{ M3UA_RKM_DEREG_RSP,   \textcolor{stringliteral}{"DEREG-RESP"} \},
        \{ 0, NULL \}
\}
\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}}
\subsubsection{m3ua\+\_\+snm\+\_\+msgt\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+snm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_SNM_DUNA,        \textcolor{stringliteral}{"DUNA"} \},
        \{ M3UA_SNM_DAVA,        \textcolor{stringliteral}{"DAVA"} \},
        \{ M3UA_SNM_DAUD,        \textcolor{stringliteral}{"DAUD"} \},
        \{ M3UA_SNM_SCON,        \textcolor{stringliteral}{"SCON"} \},
        \{ M3UA_SNM_DUPU,        \textcolor{stringliteral}{"DUPU"} \},
        \{ M3UA_SNM_DRST,        \textcolor{stringliteral}{"DRST"} \},
        \{ 0, NULL \}
\}
\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}}
\subsubsection{m3ua\+\_\+xfer\+\_\+msgt\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+xfer\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        \{ M3UA_XFER_DATA,       \textcolor{stringliteral}{"DATA"} \},
        \{ 0, NULL \}
\}
\end{DoxyCode}


Referenced by 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}}
\subsubsection{msg\+\_\+class\+\_\+xfer}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} msg\+\_\+class\+\_\+xfer\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        .name = \textcolor{stringliteral}{"XFER"},
        .msgt\_names = m3ua_xfer_msgt_names,
        .mand\_ies = \{
                MAND_IES(M3UA_XFER_DATA, data_mand_ies),
        \},
\}
\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}}
\subsubsection{ntfy\+\_\+req\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t ntfy\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_STATUS, 0
\}
\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}}
\subsubsection{reg\+\_\+req\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t reg\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_ROUT_KEY, 0
\}
\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}}
\subsubsection{reg\+\_\+rsp\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t reg\+\_\+rsp\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_REG_RESULT, 0
\}
\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}}
\subsubsection{scon\+\_\+mand\+\_\+ies}
{\footnotesize\ttfamily const uint16\+\_\+t scon\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        M3UA_IEI_AFFECTED_PC, 0
\}
\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}}
\subsubsection{xua\+\_\+dialect\+\_\+m3ua}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+dialect} xua\+\_\+dialect\+\_\+m3ua}

{\bfseries Initial value\+:}
\begin{DoxyCode}
= \{
        .name = \textcolor{stringliteral}{"M3UA"},
        .ppid = M3UA_PPID,
        .port = M3UA_PORT,
        .log\_subsys = DLM3UA,
        .class = \{
                [M3UA_MSGC_MGMT] = &m3ua_msg_class_mgmt,
                [M3UA_MSGC_XFER] = &msg_class_xfer,
                [M3UA_MSGC_SNM] = &m3ua_msg_class_snm,
                [M3UA_MSGC_ASPSM] = &m3ua_msg_class_aspsm,
                [M3UA_MSGC_ASPTM] = &m3ua_msg_class_asptm,
                [M3UA_MSGC_RKM] = &m3ua_msg_class_rkm,
        \},
\}
\end{DoxyCode}
