\doxysection{src/m3ua.c File Reference} \label{m3ua_8c}\index{src/m3ua.c@{src/m3ua.c}} {\ttfamily \#include $<$stdint.\+h$>$}\newline {\ttfamily \#include $<$errno.\+h$>$}\newline {\ttfamily \#include $<$unistd.\+h$>$}\newline {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/write\+\_\+queue.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/timer.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/socket.\+h$>$}\newline {\ttfamily \#include $<$osmocom/netif/stream.\+h$>$}\newline {\ttfamily \#include \char`\"{}xua\+\_\+msg.\+h\char`\"{}}\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\+\_\+as.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+asp.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+internal.\+h\char`\"{}}\newline \doxysubsection*{Macros} \begin{DoxyCompactItemize} \item \#define \textbf{ M3\+UA\+\_\+\+MSGB\+\_\+\+SIZE}~1500 \item \#define \textbf{ MAND\+\_\+\+IES}(msgt, ies)~[msgt] = (ies) \end{DoxyCompactItemize} \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item void \textbf{ mtp\+\_\+xfer\+\_\+param\+\_\+to\+\_\+m3ua\+\_\+dh} (struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$mdh, const struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$param) \item void \textbf{ m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param} (struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$param, const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$mdh) \item struct msgb $\ast$ \textbf{ m3ua\+\_\+msgb\+\_\+alloc} (const char $\ast$name) \item struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+xfer\+\_\+from\+\_\+data} (const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$data\+\_\+hdr, const uint8\+\_\+t $\ast$\textbf{ data}, unsigned int data\+\_\+len) \item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+gen\+\_\+error} (uint32\+\_\+t err\+\_\+code) \item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+gen\+\_\+error\+\_\+msg} (uint32\+\_\+t err\+\_\+code, struct msgb $\ast$msg) \item struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+notify} (const struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$npar) \item int \textbf{ m3ua\+\_\+decode\+\_\+notify} (struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$npar, void $\ast$ctx, const struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static struct msgb $\ast$ \textbf{ m3ua\+\_\+to\+\_\+msg} (struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item int \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+as} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ xua\+\_\+msg} $\ast$xua) \begin{DoxyCompactList}\small\item\em Send a given x\+UA message via a given M3\+UA Application Server. \end{DoxyCompactList}\item struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$ \textbf{ data\+\_\+hdr\+\_\+from\+\_\+m3ua} (struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ m3ua\+\_\+rx\+\_\+xfer} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ m3ua\+\_\+rx\+\_\+mgmt} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ m3ua\+\_\+rx\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ m3ua\+\_\+rx\+\_\+snm} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item int \textbf{ m3ua\+\_\+rx\+\_\+msg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct msgb $\ast$msg) \begin{DoxyCompactList}\small\item\em process M3\+UA message received from socket \end{DoxyCompactList}\item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+duna} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+string) \item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+dava} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+string) \item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+dupu} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, uint32\+\_\+t \textbf{ dpc}, uint16\+\_\+t user, uint16\+\_\+t cause, const char $\ast$info\+\_\+string) \item void \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+string, bool available) \begin{DoxyCompactList}\small\item\em Transmit SSNM DUNA/\+DAVA message indicating [un]availability of certain point code[s]. \end{DoxyCompactList}\item void \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+congestion} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const uint32\+\_\+t $\ast$concerned\+\_\+dpc, const uint8\+\_\+t $\ast$cong\+\_\+level, const char $\ast$info\+\_\+string) \begin{DoxyCompactList}\small\item\em Transmit SSNM SCON message indicating congestion. \end{DoxyCompactList}\item void \textbf{ m3ua\+\_\+tx\+\_\+dupu} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, uint32\+\_\+t \textbf{ dpc}, uint16\+\_\+t user, uint16\+\_\+t cause, const char $\ast$info\+\_\+str) \begin{DoxyCompactList}\small\item\em Transmit SSNM DUPU message indicating user unavailability. \end{DoxyCompactList}\item static int \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+sg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \end{DoxyCompactItemize} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item const struct value\+\_\+string \textbf{ m3ua\+\_\+err\+\_\+names} [$\,$] \item const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+type\+\_\+names} [$\,$] \item const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names} [$\,$] \item const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+other\+\_\+names} [$\,$] \item static const struct value\+\_\+string \textbf{ m3ua\+\_\+iei\+\_\+names} [$\,$] \item static const uint16\+\_\+t \textbf{ data\+\_\+mand\+\_\+ies} [$\,$] \item static const struct value\+\_\+string \textbf{ m3ua\+\_\+xfer\+\_\+msgt\+\_\+names} [$\,$] \item static const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ msg\+\_\+class\+\_\+xfer} \item static const uint16\+\_\+t \textbf{ duna\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ dava\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ daud\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ scon\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ dupu\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ drst\+\_\+mand\+\_\+ies} [$\,$] \item static const struct value\+\_\+string \textbf{ m3ua\+\_\+snm\+\_\+msgt\+\_\+names} [$\,$] \item const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+snm} \item static const struct value\+\_\+string \textbf{ m3ua\+\_\+aspsm\+\_\+msgt\+\_\+names} [$\,$] \item const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+aspsm} \item const struct value\+\_\+string \textbf{ m3ua\+\_\+asptm\+\_\+msgt\+\_\+names} [$\,$] \item const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+asptm} \item static const uint16\+\_\+t \textbf{ err\+\_\+req\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ ntfy\+\_\+req\+\_\+ies} [$\,$] \item static const struct value\+\_\+string \textbf{ m3ua\+\_\+mgmt\+\_\+msgt\+\_\+names} [$\,$] \item const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+mgmt} \item static const uint16\+\_\+t \textbf{ reg\+\_\+req\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ reg\+\_\+rsp\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ dereg\+\_\+req\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ dereg\+\_\+rsp\+\_\+ies} [$\,$] \item static const struct value\+\_\+string \textbf{ m3ua\+\_\+rkm\+\_\+msgt\+\_\+names} [$\,$] \item const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+rkm} \item const struct \textbf{ xua\+\_\+dialect} \textbf{ xua\+\_\+dialect\+\_\+m3ua} \item static const struct \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map} \textbf{ m3ua\+\_\+aspxm\+\_\+map} [$\,$] \end{DoxyCompactItemize} \doxysubsection{Macro Definition Documentation} \mbox{\label{m3ua_8c_a41a6ffbf30f870bb34ef56e08726669a}} \index{m3ua.c@{m3ua.c}!M3UA\_MSGB\_SIZE@{M3UA\_MSGB\_SIZE}} \index{M3UA\_MSGB\_SIZE@{M3UA\_MSGB\_SIZE}!m3ua.c@{m3ua.c}} \doxysubsubsection{M3UA\_MSGB\_SIZE} {\footnotesize\ttfamily \#define M3\+UA\+\_\+\+MSGB\+\_\+\+SIZE~1500} \mbox{\label{m3ua_8c_af10f2a394be1aaa2fb7dd4d1495e2316}} \index{m3ua.c@{m3ua.c}!MAND\_IES@{MAND\_IES}} \index{MAND\_IES@{MAND\_IES}!m3ua.c@{m3ua.c}} \doxysubsubsection{MAND\_IES} {\footnotesize\ttfamily \#define MAND\+\_\+\+IES(\begin{DoxyParamCaption}\item[{}]{msgt, }\item[{}]{ies }\end{DoxyParamCaption})~[msgt] = (ies)} \doxysubsection{Function Documentation} \mbox{\label{m3ua_8c_a3f7fbf35c6b49191b784a22cb7d9b30c}} \index{m3ua.c@{m3ua.c}!data\_hdr\_from\_m3ua@{data\_hdr\_from\_m3ua}} \index{data\_hdr\_from\_m3ua@{data\_hdr\_from\_m3ua}!m3ua.c@{m3ua.c}} \doxysubsubsection{data\_hdr\_from\_m3ua()} {\footnotesize\ttfamily struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$ data\+\_\+hdr\+\_\+from\+\_\+m3ua (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})} References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}. Referenced by \textbf{ hmdt\+\_\+message\+\_\+for\+\_\+distribution()}, and \textbf{ m3ua\+\_\+rx\+\_\+xfer()}. \mbox{\label{m3ua_8c_a446729f54e5da95d3eefc9ae04248cdf}} \index{m3ua.c@{m3ua.c}!m3ua\_decode\_notify@{m3ua\_decode\_notify}} \index{m3ua\_decode\_notify@{m3ua\_decode\_notify}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_decode\_notify()} {\footnotesize\ttfamily int m3ua\+\_\+decode\+\_\+notify (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$}]{npar, }\item[{void $\ast$}]{ctx, }\item[{const struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id}, \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ASP\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+STATUS}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ASP\+\_\+\+ID}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}. \mbox{\label{m3ua_8c_ac1a04dfbafd50c05516ed474fd6337f3}} \index{m3ua.c@{m3ua.c}!m3ua\_dh\_to\_xfer\_param@{m3ua\_dh\_to\_xfer\_param}} \index{m3ua\_dh\_to\_xfer\_param@{m3ua\_dh\_to\_xfer\_param}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_dh\_to\_xfer\_param()} {\footnotesize\ttfamily void m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$}]{param, }\item[{const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{mdh }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::mp}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::ni}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::si}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, and \textbf{ m3ua\+\_\+data\+\_\+hdr\+::sls}. Referenced by \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+sccp()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, and \textbf{ m3ua\+\_\+to\+\_\+xfer\+\_\+ind()}. \mbox{\label{m3ua_8c_ab9751e74c5f93e7e28dc465344f0bf52}} \index{m3ua.c@{m3ua.c}!m3ua\_encode\_dava@{m3ua\_encode\_dava}} \index{m3ua\_encode\_dava@{m3ua\_encode\_dava}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_encode\_dava()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+dava (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t $\ast$}]{rctx, }\item[{unsigned int}]{num\+\_\+rctx, }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc, }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc, }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ m3ua\+\_\+encode\+\_\+duna()}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DAVA}, and \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}. Referenced by \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available()}. \mbox{\label{m3ua_8c_ab76dd276e2e12368797e557633e4fc25}} \index{m3ua.c@{m3ua.c}!m3ua\_encode\_duna@{m3ua\_encode\_duna}} \index{m3ua\_encode\_duna@{m3ua\_encode\_duna}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_encode\_duna()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+duna (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t $\ast$}]{rctx, }\item[{unsigned int}]{num\+\_\+rctx, }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc, }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc, }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DUNA}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}. Referenced by \textbf{ m3ua\+\_\+encode\+\_\+dava()}, and \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available()}. \mbox{\label{m3ua_8c_a2c714f65c5d24ba45427e688d5f3d459}} \index{m3ua.c@{m3ua.c}!m3ua\_encode\_dupu@{m3ua\_encode\_dupu}} \index{m3ua\_encode\_dupu@{m3ua\_encode\_dupu}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_encode\_dupu()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+dupu (\begin{DoxyParamCaption}\item[{const uint32\+\_\+t $\ast$}]{rctx, }\item[{unsigned int}]{num\+\_\+rctx, }\item[{uint32\+\_\+t}]{dpc, }\item[{uint16\+\_\+t}]{user, }\item[{uint16\+\_\+t}]{cause, }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ dpc}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+USER\+\_\+\+CAUSE}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DUPU}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}. Referenced by \textbf{ m3ua\+\_\+tx\+\_\+dupu()}. \mbox{\label{m3ua_8c_a975de21b0ab355435bd1581b61488112}} \index{m3ua.c@{m3ua.c}!m3ua\_encode\_notify@{m3ua\_encode\_notify}} \index{m3ua\_encode\_notify@{m3ua\_encode\_notify}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_encode\_notify()} {\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+notify (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$}]{npar }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ASP\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+STATUS}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+NTFY}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ M3\+UA\+\_\+\+NOTIFY}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ASP\+\_\+\+ID}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}. Referenced by \textbf{ encode\+\_\+notify()}. \mbox{\label{m3ua_8c_a389fff8af6fd1ee6672ed88a7b7cd94f}} \index{m3ua.c@{m3ua.c}!m3ua\_gen\_error@{m3ua\_gen\_error}} \index{m3ua\_gen\_error@{m3ua\_gen\_error}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_gen\_error()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+gen\+\_\+error (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{err\+\_\+code }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ERR\+\_\+\+CODE}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}. Referenced by \textbf{ m3ua\+\_\+gen\+\_\+error\+\_\+msg()}. \mbox{\label{m3ua_8c_a769cd19f99cfd2c6c4344a201c14fc36}} \index{m3ua.c@{m3ua.c}!m3ua\_gen\_error\_msg@{m3ua\_gen\_error\_msg}} \index{m3ua\_gen\_error\_msg@{m3ua\_gen\_error\_msg}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_gen\_error\_msg()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+gen\+\_\+error\+\_\+msg (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{err\+\_\+code, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+NET\+\_\+\+APPEAR}, \textbf{ m3ua\+\_\+gen\+\_\+error()}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+DIAG\+\_\+\+INFO}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+NET\+\_\+\+APPEAR}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+from\+\_\+msg()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}. \mbox{\label{m3ua_8c_abc7b70b4bd07197a65948096afeb0584}} \index{m3ua.c@{m3ua.c}!m3ua\_msgb\_alloc@{m3ua\_msgb\_alloc}} \index{m3ua\_msgb\_alloc@{m3ua\_msgb\_alloc}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_msgb\_alloc()} {\footnotesize\ttfamily struct msgb $\ast$ m3ua\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})} References \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+HEADROOM}, and \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+SIZE}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req()}, \textbf{ m3ua\+\_\+to\+\_\+xfer\+\_\+ind()}, \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req()}, and \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req()}. \mbox{\label{m3ua_8c_a21cbcae66f8c041104eccbcfc0253700}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_asp@{m3ua\_rx\_asp}} \index{m3ua\_rx\_asp@{m3ua\_rx\_asp}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_asp()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map\+::event}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ m3ua\+\_\+aspxm\+\_\+map}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNEXPECTED\+\_\+\+MSG}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, and \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}. \mbox{\label{m3ua_8c_ad24afbe93eb8be87e769aac2dbf0fa6c}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_mgmt@{m3ua\_rx\_mgmt}} \index{m3ua\_rx\_mgmt@{m3ua\_rx\_mgmt}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_mgmt()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+mgmt (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+NTFY}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}. \mbox{\label{m3ua_8c_a472fe124fa7e675ed066779df79cd3d3}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_mgmt\_err@{m3ua\_rx\_mgmt\_err}} \index{m3ua\_rx\_mgmt\_err@{m3ua\_rx\_mgmt\_err}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_mgmt\_err()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+mgmt\+\_\+err (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+error\+::code}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::error}, \textbf{ LOGPASP}, \textbf{ m3ua\+\_\+err\+\_\+names}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ERR\+\_\+\+CODE}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+ERROR}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim()}, \textbf{ xua\+\_\+dialect\+\_\+m3ua}, \textbf{ xua\+\_\+msg\+\_\+dump()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt()}. \mbox{\label{m3ua_8c_a95417d0d7ef5890b8e40c870407bde10}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_mgmt\_ntfy@{m3ua\_rx\_mgmt\_ntfy}} \index{m3ua\_rx\_mgmt\_ntfy@{m3ua\_rx\_mgmt\_ntfy}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_mgmt\_ntfy()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string}, \textbf{ LOGPASP}, \textbf{ m3ua\+\_\+decode\+\_\+notify()}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+T\+\_\+\+OTHER}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+T\+\_\+\+STATCHG}, \textbf{ m3ua\+\_\+ntfy\+\_\+other\+\_\+names}, \textbf{ m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names}, \textbf{ m3ua\+\_\+ntfy\+\_\+type\+\_\+names}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::notify}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+NOTIFY}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim()}, and \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt()}. \mbox{\label{m3ua_8c_a3dd5abc2f138a16910f323c9e52427e6}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_msg@{m3ua\_rx\_msg}} \index{m3ua\_rx\_msg@{m3ua\_rx\_msg}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_msg()} {\footnotesize\ttfamily int m3ua\+\_\+rx\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})} process M3\+UA message received from socket \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & Application Server Process receiving msg \\ \hline \mbox{\texttt{ in}} & {\em msg} & received message buffer \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative on error \end{DoxyReturn} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ xua\+\_\+common\+\_\+hdr\+::data}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+STREAM\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVALID\+\_\+\+VERSION}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+MISSING\+\_\+\+PARAM}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+PARAM\+\_\+\+FIELD\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+CLASS}, \textbf{ m3ua\+\_\+gen\+\_\+error\+\_\+msg()}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+ASPSM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+ASPTM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+RKM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ m3ua\+\_\+rx\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm()}, \textbf{ m3ua\+\_\+rx\+\_\+snm()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ xua\+\_\+dialect\+\_\+check\+\_\+all\+\_\+mand\+\_\+ies()}, \textbf{ xua\+\_\+dialect\+\_\+m3ua}, \textbf{ xua\+\_\+from\+\_\+msg()}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ ss7\+\_\+asp\+\_\+m3ua\+\_\+tcp\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}. \mbox{\label{m3ua_8c_a0b7cddc5cb00c6eac1fffec424310c94}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_snm@{m3ua\_rx\_snm}} \index{m3ua\_rx\_snm@{m3ua\_rx\_snm}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_snm()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+snm (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+NET\+\_\+\+APPEAR}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+PARAM\+\_\+\+FIELD\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNEXPECTED\+\_\+\+MSG}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+CLASS}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+NET\+\_\+\+APPEAR}, \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+sg()}, \textbf{ m3ua\+\_\+xfer\+\_\+msgt\+\_\+names}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+QUIRK\+\_\+\+SNM\+\_\+\+INACTIVE}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+ROLE\+\_\+\+ASP}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+ROLE\+\_\+\+SG}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::quirks}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::role}, \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+ACTIVE}, \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+INACTIVE}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}. \mbox{\label{m3ua_8c_af1b9b624a6901ce3f193da224b4d8598}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_snm\_asp@{m3ua\_rx\_snm\_asp}} \index{m3ua\_rx\_snm\_asp@{m3ua\_rx\_snm\_asp}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_snm\_asp()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+snm\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DAUD}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DAVA}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DRST}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DUNA}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DUPU}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+SCON}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+QUIRK\+\_\+\+DAUD\+\_\+\+IN\+\_\+\+ASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::quirks}, \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+daud()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dava()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+duna()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dupu()}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+scon()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm()}. \mbox{\label{m3ua_8c_afb74f78ccac8bf5f53772413de7929bd}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_snm\_sg@{m3ua\_rx\_snm\_sg}} \index{m3ua\_rx\_snm\_sg@{m3ua\_rx\_snm\_sg}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_snm\_sg()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+snm\+\_\+sg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+DAUD}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+daud()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm()}. \mbox{\label{m3ua_8c_adfdab85e76ea4094d36e002b071e2913}} \index{m3ua.c@{m3ua.c}!m3ua\_rx\_xfer@{m3ua\_rx\_xfer}} \index{m3ua\_rx\_xfer@{m3ua\_rx\_xfer}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rx\_xfer()} {\footnotesize\ttfamily static int m3ua\+\_\+rx\+\_\+xfer (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+as\+::ctrg}, \textbf{ data\+\_\+hdr\+\_\+from\+\_\+m3ua()}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ LOGPASP}, \textbf{ m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param()}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+NET\+\_\+\+APPEAR}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+PARAM\+\_\+\+FIELD\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ m3ua\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2()}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+NET\+\_\+\+APPEAR}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ m3ua\+\_\+xfer\+\_\+msgt\+\_\+names}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2()}, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+TOTAL}, \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+msg\+\_\+free\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}. \mbox{\label{m3ua_8c_a7c6e3e756c6f567d13ea500c1af50f94}} \index{m3ua.c@{m3ua.c}!m3ua\_to\_msg@{m3ua\_to\_msg}} \index{m3ua\_to\_msg@{m3ua\_to\_msg}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_to\_msg()} {\footnotesize\ttfamily static struct msgb $\ast$ m3ua\+\_\+to\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+PPID}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, and \textbf{ xua\+\_\+to\+\_\+msg()}. Referenced by \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+as()}, and \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}. \mbox{\label{m3ua_8c_a1c5313831d11ce7e46d3187313de900f}} \index{m3ua.c@{m3ua.c}!m3ua\_tx\_dupu@{m3ua\_tx\_dupu}} \index{m3ua\_tx\_dupu@{m3ua\_tx\_dupu}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_tx\_dupu()} {\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+dupu (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{const uint32\+\_\+t $\ast$}]{rctx, }\item[{unsigned int}]{num\+\_\+rctx, }\item[{uint32\+\_\+t}]{dpc, }\item[{uint16\+\_\+t}]{user, }\item[{uint16\+\_\+t}]{cause, }\item[{const char $\ast$}]{info\+\_\+str }\end{DoxyParamCaption})} Transmit SSNM DUPU message indicating user unavailability. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & ASP through which to transmit message. Must be ACTIVE. \\ \hline \mbox{\texttt{ in}} & {\em rctx} & array of Routing Contexts in network byte order. \\ \hline \mbox{\texttt{ in}} & {\em num\+\_\+rctx} & number of rctx \\ \hline \mbox{\texttt{ in}} & {\em dpc} & affected point code \\ \hline \mbox{\texttt{ in}} & {\em user} & the user (SI) that is unavailable \\ \hline \mbox{\texttt{ in}} & {\em cause} & the cause of the user unavailability \\ \hline \mbox{\texttt{ in}} & {\em info\+\_\+string} & optional information string (can be NULL). \\ \hline \end{DoxyParams} References \textbf{ dpc}, \textbf{ m3ua\+\_\+encode\+\_\+dupu()}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ xua\+\_\+tx\+\_\+upu()}. \mbox{\label{m3ua_8c_a23b023b06ccad4da2a92be978a9f23a3}} \index{m3ua.c@{m3ua.c}!m3ua\_tx\_snm\_available@{m3ua\_tx\_snm\_available}} \index{m3ua\_tx\_snm\_available@{m3ua\_tx\_snm\_available}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_tx\_snm\_available()} {\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+snm\+\_\+available (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{const uint32\+\_\+t $\ast$}]{rctx, }\item[{unsigned int}]{num\+\_\+rctx, }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc, }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc, }\item[{const char $\ast$}]{info\+\_\+string, }\item[{bool}]{available }\end{DoxyParamCaption})} Transmit SSNM DUNA/\+DAVA message indicating [un]availability of certain point code[s]. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & ASP through which to transmit message. Must be ACTIVE. \\ \hline \mbox{\texttt{ in}} & {\em rctx} & array of Routing Contexts in network byte order. \\ \hline \mbox{\texttt{ in}} & {\em num\+\_\+rctx} & number of rctx \\ \hline \mbox{\texttt{ in}} & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\ \hline \mbox{\texttt{ in}} & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\ \hline \mbox{\texttt{ in}} & {\em info\+\_\+string} & optional information string (can be NULL). \\ \hline \mbox{\texttt{ in}} & {\em available} & are aff\+\_\+pc now available (true) or unavailable (false) \\ \hline \end{DoxyParams} References \textbf{ m3ua\+\_\+encode\+\_\+dava()}, \textbf{ m3ua\+\_\+encode\+\_\+duna()}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ xua\+\_\+tx\+\_\+snm\+\_\+available()}. \mbox{\label{m3ua_8c_ada55bfcb1a816dd0ef97a9eb8ef3030f}} \index{m3ua.c@{m3ua.c}!m3ua\_tx\_snm\_congestion@{m3ua\_tx\_snm\_congestion}} \index{m3ua\_tx\_snm\_congestion@{m3ua\_tx\_snm\_congestion}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_tx\_snm\_congestion()} {\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+snm\+\_\+congestion (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{const uint32\+\_\+t $\ast$}]{rctx, }\item[{unsigned int}]{num\+\_\+rctx, }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc, }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc, }\item[{const uint32\+\_\+t $\ast$}]{concerned\+\_\+dpc, }\item[{const uint8\+\_\+t $\ast$}]{cong\+\_\+level, }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})} Transmit SSNM SCON message indicating congestion. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & ASP through which to transmit message. Must be ACTIVE. \\ \hline \mbox{\texttt{ in}} & {\em rctx} & array of Routing Contexts in network byte order. \\ \hline \mbox{\texttt{ in}} & {\em num\+\_\+rctx} & number of rctx \\ \hline \mbox{\texttt{ in}} & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\ \hline \mbox{\texttt{ in}} & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\ \hline \mbox{\texttt{ in}} & {\em concerned\+\_\+dpc} & optional concerned DPC (can be NULL) \\ \hline \mbox{\texttt{ in}} & {\em cong\+\_\+level} & optional congestion level (can be NULL) \\ \hline \mbox{\texttt{ in}} & {\em info\+\_\+string} & optional information string (can be NULL). \\ \hline \end{DoxyParams} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+CONC\+\_\+\+DEST}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+CONG\+\_\+\+IND}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+SCON}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, \textbf{ xua\+\_\+msg\+\_\+alloc()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ xua\+\_\+tx\+\_\+scon()}. \mbox{\label{m3ua_8c_a2d947fe12b0e169755b8b4f2951b721e}} \index{m3ua.c@{m3ua.c}!m3ua\_tx\_xua\_as@{m3ua\_tx\_xua\_as}} \index{m3ua\_tx\_xua\_as@{m3ua\_tx\_xua\_as}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_tx\_xua\_as()} {\footnotesize\ttfamily int m3ua\+\_\+tx\+\_\+xua\+\_\+as (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})} Send a given x\+UA message via a given M3\+UA Application Server. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em as} & Application Server through which to send xua \\ \hline \mbox{\texttt{ in}} & {\em xua} & x\+UA message to be sent \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative on error \end{DoxyReturn} References \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ m3ua\+\_\+to\+\_\+msg()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, \textbf{ XUA\+\_\+\+AS\+\_\+\+E\+\_\+\+TRANSFER\+\_\+\+REQ}, and \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}. Referenced by \textbf{ hmrt\+\_\+message\+\_\+for\+\_\+routing()}. \mbox{\label{m3ua_8c_aea5844f2cb9585a9010c3948b79e392e}} \index{m3ua.c@{m3ua.c}!m3ua\_tx\_xua\_asp@{m3ua\_tx\_xua\_asp}} \index{m3ua\_tx\_xua\_asp@{m3ua\_tx\_xua\_asp}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_tx\_xua\_asp()} {\footnotesize\ttfamily static int m3ua\+\_\+tx\+\_\+xua\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ m3ua\+\_\+to\+\_\+msg()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send()}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}. Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}, \textbf{ m3ua\+\_\+tx\+\_\+dupu()}, \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available()}, and \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+congestion()}. \mbox{\label{m3ua_8c_a1e63cc510ba1ebc335a86bd371bcb4aa}} \index{m3ua.c@{m3ua.c}!m3ua\_xfer\_from\_data@{m3ua\_xfer\_from\_data}} \index{m3ua\_xfer\_from\_data@{m3ua\_xfer\_from\_data}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_xfer\_from\_data()} {\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+xfer\+\_\+from\+\_\+data (\begin{DoxyParamCaption}\item[{const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{data\+\_\+hdr, }\item[{const uint8\+\_\+t $\ast$}]{data, }\item[{unsigned int}]{data\+\_\+len }\end{DoxyParamCaption})} References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ data}, \textbf{ xua\+\_\+msg\+\_\+part\+::entry}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+msg\+::headers}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ xua\+\_\+msg\+\_\+part\+::tag}, \textbf{ XUA\+\_\+\+HDR}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}. Referenced by \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+sccp()}, and \textbf{ mtp\+\_\+prim\+\_\+to\+\_\+m3ua()}. \mbox{\label{m3ua_8c_a62fec3de2da183f6a7d87e9e84eadbe8}} \index{m3ua.c@{m3ua.c}!mtp\_xfer\_param\_to\_m3ua\_dh@{mtp\_xfer\_param\_to\_m3ua\_dh}} \index{mtp\_xfer\_param\_to\_m3ua\_dh@{mtp\_xfer\_param\_to\_m3ua\_dh}!m3ua.c@{m3ua.c}} \doxysubsubsection{mtp\_xfer\_param\_to\_m3ua\_dh()} {\footnotesize\ttfamily void mtp\+\_\+xfer\+\_\+param\+\_\+to\+\_\+m3ua\+\_\+dh (\begin{DoxyParamCaption}\item[{struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{mdh, }\item[{const struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$}]{param }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::mp}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::ni}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::si}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, and \textbf{ m3ua\+\_\+data\+\_\+hdr\+::sls}. Referenced by \textbf{ mtp\+\_\+prim\+\_\+to\+\_\+m3ua()}. \doxysubsection{Variable Documentation} \mbox{\label{m3ua_8c_a0dec2e2c52a7f5e1c4c0a4cbcf93b8af}} \index{m3ua.c@{m3ua.c}!data\_mand\_ies@{data\_mand\_ies}} \index{data\_mand\_ies@{data\_mand\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{data\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t data\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_PROT\_DATA, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_ad33ebb95b46b68932185e4526ea54271}} \index{m3ua.c@{m3ua.c}!daud\_mand\_ies@{daud\_mand\_ies}} \index{daud\_mand\_ies@{daud\_mand\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{daud\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t daud\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_AFFECTED\_PC, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a432c07a5723749796adf40c709fa03b8}} \index{m3ua.c@{m3ua.c}!dava\_mand\_ies@{dava\_mand\_ies}} \index{dava\_mand\_ies@{dava\_mand\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{dava\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t dava\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_AFFECTED\_PC, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_aa2a54b97b5401d9fbee06c136b514201}} \index{m3ua.c@{m3ua.c}!dereg\_req\_ies@{dereg\_req\_ies}} \index{dereg\_req\_ies@{dereg\_req\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{dereg\_req\_ies} {\footnotesize\ttfamily const uint16\+\_\+t dereg\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_ROUTE\_CTX, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a26ac31c60d013259e4c19640287ae22e}} \index{m3ua.c@{m3ua.c}!dereg\_rsp\_ies@{dereg\_rsp\_ies}} \index{dereg\_rsp\_ies@{dereg\_rsp\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{dereg\_rsp\_ies} {\footnotesize\ttfamily const uint16\+\_\+t dereg\+\_\+rsp\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_DEREG\_RESULT, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a48ecf604e0c72bd179d70840c8db0619}} \index{m3ua.c@{m3ua.c}!drst\_mand\_ies@{drst\_mand\_ies}} \index{drst\_mand\_ies@{drst\_mand\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{drst\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t drst\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_AFFECTED\_PC, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a83031dada44b3b406e668d70e6d54400}} \index{m3ua.c@{m3ua.c}!duna\_mand\_ies@{duna\_mand\_ies}} \index{duna\_mand\_ies@{duna\_mand\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{duna\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t duna\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_AFFECTED\_PC, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a12710cbc13bd1ece48359ef1a5447d7a}} \index{m3ua.c@{m3ua.c}!dupu\_mand\_ies@{dupu\_mand\_ies}} \index{dupu\_mand\_ies@{dupu\_mand\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{dupu\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t dupu\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_AFFECTED\_PC, M3UA\_IEI\_USER\_CAUSE, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_aabba7438715175738fe3cb7ef7f2ff3a}} \index{m3ua.c@{m3ua.c}!err\_req\_ies@{err\_req\_ies}} \index{err\_req\_ies@{err\_req\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{err\_req\_ies} {\footnotesize\ttfamily const uint16\+\_\+t err\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_ERR\_CODE, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_aedeeb45ea953715b07a481c37a1fe60b}} \index{m3ua.c@{m3ua.c}!m3ua\_aspsm\_msgt\_names@{m3ua\_aspsm\_msgt\_names}} \index{m3ua\_aspsm\_msgt\_names@{m3ua\_aspsm\_msgt\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_aspsm\_msgt\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+aspsm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_ASPSM\_UP, \textcolor{stringliteral}{"{}UP"{}} \},} \DoxyCodeLine{ \{ M3UA\_ASPSM\_DOWN, \textcolor{stringliteral}{"{}DOWN"{}} \},} \DoxyCodeLine{ \{ M3UA\_ASPSM\_BEAT, \textcolor{stringliteral}{"{}BEAT"{}} \},} \DoxyCodeLine{ \{ M3UA\_ASPSM\_UP\_ACK, \textcolor{stringliteral}{"{}UP-\/ACK"{}} \},} \DoxyCodeLine{ \{ M3UA\_ASPSM\_DOWN\_ACK, \textcolor{stringliteral}{"{}DOWN-\/ACK"{}} \},} \DoxyCodeLine{ \{ M3UA\_ASPSM\_BEAT\_ACK, \textcolor{stringliteral}{"{}BEAT-\/ACK"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a2325c85c80cd3a09f2bdf493f344ea84}} \index{m3ua.c@{m3ua.c}!m3ua\_asptm\_msgt\_names@{m3ua\_asptm\_msgt\_names}} \index{m3ua\_asptm\_msgt\_names@{m3ua\_asptm\_msgt\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_asptm\_msgt\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+asptm\+\_\+msgt\+\_\+names[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_ASPTM\_ACTIVE, \textcolor{stringliteral}{"{}ACTIVE"{}} \},} \DoxyCodeLine{ \{ M3UA\_ASPTM\_INACTIVE, \textcolor{stringliteral}{"{}INACTIVE"{}} \},} \DoxyCodeLine{ \{ M3UA\_ASPTM\_ACTIVE\_ACK,\textcolor{stringliteral}{"{}ACTIVE-\/ACK"{}} \},} \DoxyCodeLine{ \{ M3UA\_ASPTM\_INACTIVE\_ACK, \textcolor{stringliteral}{"{}INACTIVE-\/ACK"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a95c8d714f16e4cad5cd2291946f2d018}} \index{m3ua.c@{m3ua.c}!m3ua\_aspxm\_map@{m3ua\_aspxm\_map}} \index{m3ua\_aspxm\_map@{m3ua\_aspxm\_map}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_aspxm\_map} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map} m3ua\+\_\+aspxm\+\_\+map[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_UP, XUA\_ASP\_E\_ASPSM\_ASPUP \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_DOWN, XUA\_ASP\_E\_ASPSM\_ASPDN \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_BEAT, XUA\_ASP\_E\_ASPSM\_BEAT \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_UP\_ACK, XUA\_ASP\_E\_ASPSM\_ASPUP\_ACK \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_DOWN\_ACK, XUA\_ASP\_E\_ASPSM\_ASPDN\_ACK \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPSM, M3UA\_ASPSM\_BEAT\_ACK, XUA\_ASP\_E\_ASPSM\_BEAT\_ACK \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPTM, M3UA\_ASPTM\_ACTIVE, XUA\_ASP\_E\_ASPTM\_ASPAC \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPTM, M3UA\_ASPTM\_INACTIVE, XUA\_ASP\_E\_ASPTM\_ASPIA \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPTM, M3UA\_ASPTM\_ACTIVE\_ACK, XUA\_ASP\_E\_ASPTM\_ASPAC\_ACK \},} \DoxyCodeLine{ \{ M3UA\_MSGC\_ASPTM, M3UA\_ASPTM\_INACTIVE\_ACK, XUA\_ASP\_E\_ASPTM\_ASPIA\_ACK \},} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ m3ua\+\_\+rx\+\_\+asp()}. \mbox{\label{m3ua_8c_a11c55fb5f6f56682c1754819b5a80eba}} \index{m3ua.c@{m3ua.c}!m3ua\_err\_names@{m3ua\_err\_names}} \index{m3ua\_err\_names@{m3ua\_err\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_err\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+err\+\_\+names[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_ERR\_INVALID\_VERSION, \textcolor{stringliteral}{"{}Invalid Version"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_UNSUPP\_MSG\_CLASS, \textcolor{stringliteral}{"{}Unsupported Message Class"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_UNSUPP\_MSG\_TYPE, \textcolor{stringliteral}{"{}Unsupported Message Type"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_UNSUPP\_TRAF\_MOD\_TYP, \textcolor{stringliteral}{"{}Unsupported Traffic Mode Type"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_UNEXPECTED\_MSG, \textcolor{stringliteral}{"{}Unexpected Message"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_PROTOCOL\_ERR, \textcolor{stringliteral}{"{}Protocol Error"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_INVAL\_STREAM\_ID, \textcolor{stringliteral}{"{}Invalid Stream Identifier"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_REFUSED\_MGMT\_BLOCKING, \textcolor{stringliteral}{"{}Refused -\/ Management Blocking"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_ASP\_ID\_REQD, \textcolor{stringliteral}{"{}ASP Identifier Required"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_INVAL\_ASP\_ID, \textcolor{stringliteral}{"{}Invalid ASP Identifier"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_INVAL\_PARAM\_VAL, \textcolor{stringliteral}{"{}Invalid Parameter Value"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_PARAM\_FIELD\_ERR, \textcolor{stringliteral}{"{}Parameter Field Error"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_UNEXP\_PARAM, \textcolor{stringliteral}{"{}Unexpected Parameter"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_DEST\_STATUS\_UNKN, \textcolor{stringliteral}{"{}Destination Status Unknown"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_INVAL\_NET\_APPEAR, \textcolor{stringliteral}{"{}Invalid Network Appearance"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_MISSING\_PARAM, \textcolor{stringliteral}{"{}Missing Parameter"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_INVAL\_ROUT\_CTX, \textcolor{stringliteral}{"{}Invalid Routing Context"{}} \},} \DoxyCodeLine{ \{ M3UA\_ERR\_NO\_CONFGD\_AS\_FOR\_ASP,\textcolor{stringliteral}{"{}No Configured AS for ASP"{}} \},} \DoxyCodeLine{ \{ SUA\_ERR\_SUBSYS\_STATUS\_UNKN, \textcolor{stringliteral}{"{}Subsystem Status Unknown"{}} \},} \DoxyCodeLine{ \{ SUA\_ERR\_INVAL\_LOADSH\_LEVEL, \textcolor{stringliteral}{"{}Invalid loadsharing level"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, \textbf{ peer\+\_\+send\+\_\+error()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+err()}. \mbox{\label{m3ua_8c_ae8a54d2c40aa1006643f73c16d66f8af}} \index{m3ua.c@{m3ua.c}!m3ua\_iei\_names@{m3ua\_iei\_names}} \index{m3ua\_iei\_names@{m3ua\_iei\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_iei\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+iei\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_IEI\_INFO\_STRING, \textcolor{stringliteral}{"{}INFO String"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_ROUTE\_CTX, \textcolor{stringliteral}{"{}Routing Context"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_DIAG\_INFO, \textcolor{stringliteral}{"{}Diagnostic Info"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_HEARDBT\_DATA, \textcolor{stringliteral}{"{}Heartbeat Data"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_TRAF\_MODE\_TYP, \textcolor{stringliteral}{"{}Traffic Mode Type"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_ERR\_CODE, \textcolor{stringliteral}{"{}Error Code"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_STATUS, \textcolor{stringliteral}{"{}Status"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_ASP\_ID, \textcolor{stringliteral}{"{}ASP Identifier"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_AFFECTED\_PC, \textcolor{stringliteral}{"{}Affected Point Code"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_CORR\_ID, \textcolor{stringliteral}{"{}Correlation Id"{}} \},} \DoxyCodeLine{} \DoxyCodeLine{ \{ M3UA\_IEI\_NET\_APPEAR, \textcolor{stringliteral}{"{}Network Appearance"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_USER\_CAUSE, \textcolor{stringliteral}{"{}User/Cause"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_CONG\_IND, \textcolor{stringliteral}{"{}Congestion Indication"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_CONC\_DEST, \textcolor{stringliteral}{"{}Concerned Destination"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_ROUT\_KEY, \textcolor{stringliteral}{"{}Routing Key"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_REG\_RESULT, \textcolor{stringliteral}{"{}Registration Result"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_DEREG\_RESULT, \textcolor{stringliteral}{"{}De-\/Registration Result"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_LOC\_RKEY\_ID, \textcolor{stringliteral}{"{}Local Routing-\/Key Identifier"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_DEST\_PC, \textcolor{stringliteral}{"{}Destination Point Code"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_SVC\_IND, \textcolor{stringliteral}{"{}Service Indicators"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_ORIG\_PC, \textcolor{stringliteral}{"{}Originating Point Code List"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_PROT\_DATA, \textcolor{stringliteral}{"{}Protocol Data"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_REG\_STATUS, \textcolor{stringliteral}{"{}Registration Status"{}} \},} \DoxyCodeLine{ \{ M3UA\_IEI\_DEREG\_STATUS, \textcolor{stringliteral}{"{}De-\/Registration Status"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a9004127a1d3b1fa30a42bd539f4299fc}} \index{m3ua.c@{m3ua.c}!m3ua\_mgmt\_msgt\_names@{m3ua\_mgmt\_msgt\_names}} \index{m3ua\_mgmt\_msgt\_names@{m3ua\_mgmt\_msgt\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_mgmt\_msgt\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+mgmt\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_MGMT\_ERR, \textcolor{stringliteral}{"{}ERROR"{}} \},} \DoxyCodeLine{ \{ M3UA\_MGMT\_NTFY, \textcolor{stringliteral}{"{}NOTIFY"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_aa105aa577d0ecdda428b9352405069ae}} \index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_aspsm@{m3ua\_msg\_class\_aspsm}} \index{m3ua\_msg\_class\_aspsm@{m3ua\_msg\_class\_aspsm}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_msg\_class\_aspsm} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+aspsm} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}ASPSM"{}},} \DoxyCodeLine{ .msgt\_names = m3ua\_aspsm\_msgt\_names,} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_aa223b2feb9001b4e618842ba7f9fe530}} \index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_asptm@{m3ua\_msg\_class\_asptm}} \index{m3ua\_msg\_class\_asptm@{m3ua\_msg\_class\_asptm}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_msg\_class\_asptm} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+asptm} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}ASPTM"{}},} \DoxyCodeLine{ .msgt\_names = m3ua\_asptm\_msgt\_names,} \DoxyCodeLine{ .iei\_names = m3ua\_iei\_names,} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_ac6878c5b045b1e7267b1a0b3afa364db}} \index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_mgmt@{m3ua\_msg\_class\_mgmt}} \index{m3ua\_msg\_class\_mgmt@{m3ua\_msg\_class\_mgmt}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_msg\_class\_mgmt} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+mgmt} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}MGMT"{}},} \DoxyCodeLine{ .msgt\_names = m3ua\_mgmt\_msgt\_names,} \DoxyCodeLine{ .iei\_names = m3ua\_iei\_names,} \DoxyCodeLine{ .mand\_ies = \{} \DoxyCodeLine{ MAND\_IES(M3UA\_MGMT\_ERR, err\_req\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_MGMT\_NTFY, ntfy\_req\_ies),} \DoxyCodeLine{ \},} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a7cb679c8ca9d252dfa766ec7f2fba44c}} \index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_rkm@{m3ua\_msg\_class\_rkm}} \index{m3ua\_msg\_class\_rkm@{m3ua\_msg\_class\_rkm}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_msg\_class\_rkm} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+rkm} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}RKM"{}},} \DoxyCodeLine{ .msgt\_names = m3ua\_rkm\_msgt\_names,} \DoxyCodeLine{ .iei\_names = m3ua\_iei\_names,} \DoxyCodeLine{ .mand\_ies = \{} \DoxyCodeLine{ MAND\_IES(M3UA\_RKM\_REG\_REQ, reg\_req\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_RKM\_REG\_RSP, reg\_rsp\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_RKM\_DEREG\_REQ, dereg\_req\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_RKM\_DEREG\_RSP, dereg\_rsp\_ies),} \DoxyCodeLine{ \},} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a35e9ebf716b800839c00351acc2af5df}} \index{m3ua.c@{m3ua.c}!m3ua\_msg\_class\_snm@{m3ua\_msg\_class\_snm}} \index{m3ua\_msg\_class\_snm@{m3ua\_msg\_class\_snm}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_msg\_class\_snm} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+snm} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}SNM"{}},} \DoxyCodeLine{ .msgt\_names = m3ua\_snm\_msgt\_names,} \DoxyCodeLine{ .mand\_ies = \{} \DoxyCodeLine{ MAND\_IES(M3UA\_SNM\_DUNA, duna\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_SNM\_DAVA, dava\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_SNM\_DAUD, daud\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_SNM\_SCON, scon\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_SNM\_DUPU, dupu\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(M3UA\_SNM\_DRST, drst\_mand\_ies),} \DoxyCodeLine{ \},} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_aa8ec421eaf92b35c2d0a1d70c9e69c6e}} \index{m3ua.c@{m3ua.c}!m3ua\_ntfy\_other\_names@{m3ua\_ntfy\_other\_names}} \index{m3ua\_ntfy\_other\_names@{m3ua\_ntfy\_other\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_ntfy\_other\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+other\+\_\+names[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_I\_OT\_INS\_RES, \textcolor{stringliteral}{"{}Insufficient ASP Resources active in AS"{}} \},} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_I\_OT\_ALT\_ASP\_ACT, \textcolor{stringliteral}{"{}Alternative ASP Active"{}} \},} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_I\_OT\_ASP\_FAILURE, \textcolor{stringliteral}{"{}ASP Failure"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}. \mbox{\label{m3ua_8c_a336c3d71f1928545474640e45077bc88}} \index{m3ua.c@{m3ua.c}!m3ua\_ntfy\_stchg\_names@{m3ua\_ntfy\_stchg\_names}} \index{m3ua\_ntfy\_stchg\_names@{m3ua\_ntfy\_stchg\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_ntfy\_stchg\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_I\_RESERVED, \textcolor{stringliteral}{"{}Reserved"{}} \},} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_I\_AS\_INACT, \textcolor{stringliteral}{"{}AS Inactive"{}} \},} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_I\_AS\_ACT, \textcolor{stringliteral}{"{}AS Active"{}} \},} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_I\_AS\_PEND, \textcolor{stringliteral}{"{}AS Pending"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}. \mbox{\label{m3ua_8c_a0ce1a526587558d83d657b761f3c62c4}} \index{m3ua.c@{m3ua.c}!m3ua\_ntfy\_type\_names@{m3ua\_ntfy\_type\_names}} \index{m3ua\_ntfy\_type\_names@{m3ua\_ntfy\_type\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_ntfy\_type\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+type\+\_\+names[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_T\_STATCHG, \textcolor{stringliteral}{"{}State Change"{}} \},} \DoxyCodeLine{ \{ M3UA\_NOTIFY\_T\_OTHER, \textcolor{stringliteral}{"{}Other"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}. \mbox{\label{m3ua_8c_a1d9d393e28f0e2247757af11c490f39e}} \index{m3ua.c@{m3ua.c}!m3ua\_rkm\_msgt\_names@{m3ua\_rkm\_msgt\_names}} \index{m3ua\_rkm\_msgt\_names@{m3ua\_rkm\_msgt\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_rkm\_msgt\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_REQ, \textcolor{stringliteral}{"{}REG-\/REQ"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_REG\_RSP, \textcolor{stringliteral}{"{}REG-\/RESP"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_DEREG\_REQ, \textcolor{stringliteral}{"{}DEREG-\/REQ"{}} \},} \DoxyCodeLine{ \{ M3UA\_RKM\_DEREG\_RSP, \textcolor{stringliteral}{"{}DEREG-\/RESP"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a96ad2b2c9d56411f67c26a6b5c6d7bdd}} \index{m3ua.c@{m3ua.c}!m3ua\_snm\_msgt\_names@{m3ua\_snm\_msgt\_names}} \index{m3ua\_snm\_msgt\_names@{m3ua\_snm\_msgt\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_snm\_msgt\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+snm\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_SNM\_DUNA, \textcolor{stringliteral}{"{}DUNA"{}} \},} \DoxyCodeLine{ \{ M3UA\_SNM\_DAVA, \textcolor{stringliteral}{"{}DAVA"{}} \},} \DoxyCodeLine{ \{ M3UA\_SNM\_DAUD, \textcolor{stringliteral}{"{}DAUD"{}} \},} \DoxyCodeLine{ \{ M3UA\_SNM\_SCON, \textcolor{stringliteral}{"{}SCON"{}} \},} \DoxyCodeLine{ \{ M3UA\_SNM\_DUPU, \textcolor{stringliteral}{"{}DUPU"{}} \},} \DoxyCodeLine{ \{ M3UA\_SNM\_DRST, \textcolor{stringliteral}{"{}DRST"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_ab7c93245b2f1ec5018cc58d59317bacf}} \index{m3ua.c@{m3ua.c}!m3ua\_xfer\_msgt\_names@{m3ua\_xfer\_msgt\_names}} \index{m3ua\_xfer\_msgt\_names@{m3ua\_xfer\_msgt\_names}!m3ua.c@{m3ua.c}} \doxysubsubsection{m3ua\_xfer\_msgt\_names} {\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+xfer\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ M3UA\_XFER\_DATA, \textcolor{stringliteral}{"{}DATA"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm()}, and \textbf{ m3ua\+\_\+rx\+\_\+xfer()}. \mbox{\label{m3ua_8c_af0e6d3c9b9322f03fc705e1666be4ad9}} \index{m3ua.c@{m3ua.c}!msg\_class\_xfer@{msg\_class\_xfer}} \index{msg\_class\_xfer@{msg\_class\_xfer}!m3ua.c@{m3ua.c}} \doxysubsubsection{msg\_class\_xfer} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} msg\+\_\+class\+\_\+xfer\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}XFER"{}},} \DoxyCodeLine{ .msgt\_names = m3ua\_xfer\_msgt\_names,} \DoxyCodeLine{ .mand\_ies = \{} \DoxyCodeLine{ MAND\_IES(M3UA\_XFER\_DATA, data\_mand\_ies),} \DoxyCodeLine{ \},} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a7a4668e13461858e7ae5c96f946f032c}} \index{m3ua.c@{m3ua.c}!ntfy\_req\_ies@{ntfy\_req\_ies}} \index{ntfy\_req\_ies@{ntfy\_req\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{ntfy\_req\_ies} {\footnotesize\ttfamily const uint16\+\_\+t ntfy\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_STATUS, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a7866fdd10f679afcc6e42d10c59ffcf7}} \index{m3ua.c@{m3ua.c}!reg\_req\_ies@{reg\_req\_ies}} \index{reg\_req\_ies@{reg\_req\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{reg\_req\_ies} {\footnotesize\ttfamily const uint16\+\_\+t reg\+\_\+req\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_ROUT\_KEY, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_ad2f30e4680b32979455a6b68718f00f1}} \index{m3ua.c@{m3ua.c}!reg\_rsp\_ies@{reg\_rsp\_ies}} \index{reg\_rsp\_ies@{reg\_rsp\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{reg\_rsp\_ies} {\footnotesize\ttfamily const uint16\+\_\+t reg\+\_\+rsp\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_REG\_RESULT, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a09664928650382f05db82d15791cd264}} \index{m3ua.c@{m3ua.c}!scon\_mand\_ies@{scon\_mand\_ies}} \index{scon\_mand\_ies@{scon\_mand\_ies}!m3ua.c@{m3ua.c}} \doxysubsubsection{scon\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t scon\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ M3UA\_IEI\_AFFECTED\_PC, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{m3ua_8c_a14e3c740216dbf27160e15377d4dbd43}} \index{m3ua.c@{m3ua.c}!xua\_dialect\_m3ua@{xua\_dialect\_m3ua}} \index{xua\_dialect\_m3ua@{xua\_dialect\_m3ua}!m3ua.c@{m3ua.c}} \doxysubsubsection{xua\_dialect\_m3ua} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+dialect} xua\+\_\+dialect\+\_\+m3ua} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}M3UA"{}},} \DoxyCodeLine{ .ppid = M3UA\_PPID,} \DoxyCodeLine{ .port = M3UA\_PORT,} \DoxyCodeLine{ .log\_subsys = DLM3UA,} \DoxyCodeLine{ .class = \{} \DoxyCodeLine{ [M3UA\_MSGC\_MGMT] = \&m3ua\_msg\_class\_mgmt,} \DoxyCodeLine{ [M3UA\_MSGC\_XFER] = \&msg\_class\_xfer,} \DoxyCodeLine{ [M3UA\_MSGC\_SNM] = \&m3ua\_msg\_class\_snm,} \DoxyCodeLine{ [M3UA\_MSGC\_ASPSM] = \&m3ua\_msg\_class\_aspsm,} \DoxyCodeLine{ [M3UA\_MSGC\_ASPTM] = \&m3ua\_msg\_class\_asptm,} \DoxyCodeLine{ [M3UA\_MSGC\_RKM] = \&m3ua\_msg\_class\_rkm,} \DoxyCodeLine{ \},} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, and \textbf{ m3ua\+\_\+rx\+\_\+msg()}.