\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) \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_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\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req(), and 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}} \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 ss7\+\_\+asp\+\_\+m3ua\+\_\+tcp\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb(), ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb(), and 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}} \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(), peer\+\_\+send\+\_\+error(), 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}