\doxysection{src/sua.c File Reference} \label{sua_8c}\index{src/sua.c@{src/sua.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/core/fsm.\+h$>$}\newline {\ttfamily \#include $<$osmocom/netif/stream.\+h$>$}\newline {\ttfamily \#include \char`\"{}xua\+\_\+msg.\+h\char`\"{}}\newline {\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+sap.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/mtp.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/sua.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/m3ua.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sccp/sccp\+\_\+types.\+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`\"{}sccp\+\_\+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{ CONNECTION\+\_\+\+TIMER}~( 1 $\ast$ 60 $\ast$ 100) \item \#define \textbf{ TX\+\_\+\+INACT\+\_\+\+TIMER}~( 7 $\ast$ 60 $\ast$ 100) /$\ast$ RFC 3868 Ch. 8. $\ast$/ \item \#define \textbf{ RX\+\_\+\+INACT\+\_\+\+TIMER}~(15 $\ast$ 60 $\ast$ 100) /$\ast$ RFC 3868 Ch. 8. $\ast$/ \item \#define \textbf{ RELEASE\+\_\+\+TIMER}~( 10 $\ast$ 100) \item \#define \textbf{ RELEASE\+\_\+\+REP\+\_\+\+TIMER}~( 10 $\ast$ 100) \item \#define \textbf{ INT\+\_\+\+TIMER}~( 1 $\ast$ 60 $\ast$ 100) \item \#define \textbf{ GUARD\+\_\+\+TIMER}~(23 $\ast$ 60 $\ast$ 100) \item \#define \textbf{ RESET\+\_\+\+TIMER}~( 10 $\ast$ 100) \item \#define \textbf{ SCCP\+\_\+\+MSG\+\_\+\+SIZE}~2048 \item \#define \textbf{ SCCP\+\_\+\+MSG\+\_\+\+HEADROOM}~512 \item \#define \textbf{ MAND\+\_\+\+IES}(msgt, ies)~[msgt] = (ies) \end{DoxyCompactItemize} \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item struct msgb $\ast$ \textbf{ sccp\+\_\+msgb\+\_\+alloc} (const char $\ast$name) \item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ sua\+\_\+gen\+\_\+error} (uint32\+\_\+t err\+\_\+code) \item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ sua\+\_\+gen\+\_\+error\+\_\+msg} (uint32\+\_\+t err\+\_\+code, struct msgb $\ast$msg) \item static struct msgb $\ast$ \textbf{ sua\+\_\+to\+\_\+msg} (struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ sua\+\_\+tx\+\_\+xua\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item int \textbf{ sua\+\_\+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 SUA Application Server. \end{DoxyCompactList}\item int \textbf{ sua\+\_\+parse\+\_\+gt} (struct \textbf{ osmo\+\_\+sccp\+\_\+gt} $\ast$gt, const uint8\+\_\+t $\ast$\textbf{ data}, unsigned int datalen) \begin{DoxyCompactList}\small\item\em Decode SUA Global Title according to RFC3868 Section 3.\+10.\+2.\+3. \end{DoxyCompactList}\item int \textbf{ sua\+\_\+addr\+\_\+parse\+\_\+part} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$out, const struct \textbf{ xua\+\_\+msg\+\_\+part} $\ast$param) \begin{DoxyCompactList}\small\item\em parse SCCP address from given x\+UA message part \end{DoxyCompactList}\item int \textbf{ sua\+\_\+addr\+\_\+parse} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$out, struct \textbf{ xua\+\_\+msg} $\ast$xua, uint16\+\_\+t iei) \begin{DoxyCompactList}\small\item\em parse SCCP address from given x\+UA message IE \end{DoxyCompactList}\item static int \textbf{ sua\+\_\+rx\+\_\+cl} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ sua\+\_\+rx\+\_\+co} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+err} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ sua\+\_\+rx\+\_\+mgmt} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ sua\+\_\+rx\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ sua\+\_\+rx\+\_\+snm} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item int \textbf{ sua\+\_\+rx\+\_\+msg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct msgb $\ast$msg) \begin{DoxyCompactList}\small\item\em process SUA message received from socket \end{DoxyCompactList}\item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ sua\+\_\+encode\+\_\+duna} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const uint32\+\_\+t $\ast$ssn, const uint32\+\_\+t $\ast$\textbf{ smi}, const char $\ast$info\+\_\+string) \item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ sua\+\_\+encode\+\_\+dava} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const uint32\+\_\+t $\ast$ssn, const uint32\+\_\+t $\ast$\textbf{ smi}, const char $\ast$info\+\_\+string) \item static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ sua\+\_\+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{ sua\+\_\+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 uint32\+\_\+t $\ast$aff\+\_\+ssn, const uint32\+\_\+t $\ast$\textbf{ smi}, 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{ sua\+\_\+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$ssn, const uint8\+\_\+t cong\+\_\+level, const char $\ast$info\+\_\+string) \begin{DoxyCompactList}\small\item\em Transmit SSNM SCON message indicating congestion. \end{DoxyCompactList}\item void \textbf{ sua\+\_\+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{ sua\+\_\+rx\+\_\+snm\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item static int \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+sg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua) \item const char $\ast$ \textbf{ osmo\+\_\+sua\+\_\+sccp\+\_\+cause\+\_\+name} (uint32\+\_\+t sccp\+\_\+cause, char $\ast$out\+\_\+buf, size\+\_\+t out\+\_\+buf\+\_\+len) \end{DoxyCompactItemize} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item static const struct value\+\_\+string \textbf{ sua\+\_\+iei\+\_\+names} [$\,$] \item static const uint16\+\_\+t \textbf{ cldt\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ cldr\+\_\+mand\+\_\+ies} [$\,$] \item static const struct value\+\_\+string \textbf{ sua\+\_\+cl\+\_\+msgt\+\_\+names} [$\,$] \item static const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ msg\+\_\+class\+\_\+cl} \item static const uint16\+\_\+t \textbf{ codt\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ coda\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ core\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ coak\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ coref\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ relre\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ relco\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ resre\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ resco\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ coerr\+\_\+mand\+\_\+ies} [$\,$] \item static const uint16\+\_\+t \textbf{ coit\+\_\+mand\+\_\+ies} [$\,$] \item static const struct value\+\_\+string \textbf{ sua\+\_\+co\+\_\+msgt\+\_\+names} [$\,$] \item static const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ msg\+\_\+class\+\_\+co} \item const struct \textbf{ xua\+\_\+dialect} \textbf{ xua\+\_\+dialect\+\_\+sua} \item static const struct \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map} \textbf{ sua\+\_\+aspxm\+\_\+map} [$\,$] \item const struct value\+\_\+string \textbf{ sua\+\_\+cause\+\_\+type\+\_\+names} [$\,$] \end{DoxyCompactItemize} \doxysubsection{Macro Definition Documentation} \mbox{\label{sua_8c_a9e72c94571fc7c5a79889d5fab333a64}} \index{sua.c@{sua.c}!CONNECTION\_TIMER@{CONNECTION\_TIMER}} \index{CONNECTION\_TIMER@{CONNECTION\_TIMER}!sua.c@{sua.c}} \doxysubsubsection{CONNECTION\_TIMER} {\footnotesize\ttfamily \#define CONNECTION\+\_\+\+TIMER~( 1 $\ast$ 60 $\ast$ 100)} \mbox{\label{sua_8c_ae8ba8bb3d52a6b63e09425c23870d142}} \index{sua.c@{sua.c}!GUARD\_TIMER@{GUARD\_TIMER}} \index{GUARD\_TIMER@{GUARD\_TIMER}!sua.c@{sua.c}} \doxysubsubsection{GUARD\_TIMER} {\footnotesize\ttfamily \#define GUARD\+\_\+\+TIMER~(23 $\ast$ 60 $\ast$ 100)} \mbox{\label{sua_8c_a6bd3e6d6244d73e7ad9b64d7c8f506dc}} \index{sua.c@{sua.c}!INT\_TIMER@{INT\_TIMER}} \index{INT\_TIMER@{INT\_TIMER}!sua.c@{sua.c}} \doxysubsubsection{INT\_TIMER} {\footnotesize\ttfamily \#define INT\+\_\+\+TIMER~( 1 $\ast$ 60 $\ast$ 100)} \mbox{\label{sua_8c_af10f2a394be1aaa2fb7dd4d1495e2316}} \index{sua.c@{sua.c}!MAND\_IES@{MAND\_IES}} \index{MAND\_IES@{MAND\_IES}!sua.c@{sua.c}} \doxysubsubsection{MAND\_IES} {\footnotesize\ttfamily \#define MAND\+\_\+\+IES(\begin{DoxyParamCaption}\item[{}]{msgt, }\item[{}]{ies }\end{DoxyParamCaption})~[msgt] = (ies)} \mbox{\label{sua_8c_aa766ac245a0d7f41ccf37bf4083d1cc9}} \index{sua.c@{sua.c}!RELEASE\_REP\_TIMER@{RELEASE\_REP\_TIMER}} \index{RELEASE\_REP\_TIMER@{RELEASE\_REP\_TIMER}!sua.c@{sua.c}} \doxysubsubsection{RELEASE\_REP\_TIMER} {\footnotesize\ttfamily \#define RELEASE\+\_\+\+REP\+\_\+\+TIMER~( 10 $\ast$ 100)} \mbox{\label{sua_8c_a2b8fec150e28bd941aa49dd898ee6879}} \index{sua.c@{sua.c}!RELEASE\_TIMER@{RELEASE\_TIMER}} \index{RELEASE\_TIMER@{RELEASE\_TIMER}!sua.c@{sua.c}} \doxysubsubsection{RELEASE\_TIMER} {\footnotesize\ttfamily \#define RELEASE\+\_\+\+TIMER~( 10 $\ast$ 100)} \mbox{\label{sua_8c_ab70edc5bbf92cb21680f3d6b11275d68}} \index{sua.c@{sua.c}!RESET\_TIMER@{RESET\_TIMER}} \index{RESET\_TIMER@{RESET\_TIMER}!sua.c@{sua.c}} \doxysubsubsection{RESET\_TIMER} {\footnotesize\ttfamily \#define RESET\+\_\+\+TIMER~( 10 $\ast$ 100)} \mbox{\label{sua_8c_a8dc46511e05ac6ed0f0c15109cba2be4}} \index{sua.c@{sua.c}!RX\_INACT\_TIMER@{RX\_INACT\_TIMER}} \index{RX\_INACT\_TIMER@{RX\_INACT\_TIMER}!sua.c@{sua.c}} \doxysubsubsection{RX\_INACT\_TIMER} {\footnotesize\ttfamily \#define RX\+\_\+\+INACT\+\_\+\+TIMER~(15 $\ast$ 60 $\ast$ 100) /$\ast$ RFC 3868 Ch. 8. $\ast$/} \mbox{\label{sua_8c_a93c1b4187877d6a16a64487da38aa772}} \index{sua.c@{sua.c}!SCCP\_MSG\_HEADROOM@{SCCP\_MSG\_HEADROOM}} \index{SCCP\_MSG\_HEADROOM@{SCCP\_MSG\_HEADROOM}!sua.c@{sua.c}} \doxysubsubsection{SCCP\_MSG\_HEADROOM} {\footnotesize\ttfamily \#define SCCP\+\_\+\+MSG\+\_\+\+HEADROOM~512} \mbox{\label{sua_8c_a95dfedb93a29d464768e61be0054b120}} \index{sua.c@{sua.c}!SCCP\_MSG\_SIZE@{SCCP\_MSG\_SIZE}} \index{SCCP\_MSG\_SIZE@{SCCP\_MSG\_SIZE}!sua.c@{sua.c}} \doxysubsubsection{SCCP\_MSG\_SIZE} {\footnotesize\ttfamily \#define SCCP\+\_\+\+MSG\+\_\+\+SIZE~2048} \mbox{\label{sua_8c_a3d2a940817b70daf372c591ca924af0a}} \index{sua.c@{sua.c}!TX\_INACT\_TIMER@{TX\_INACT\_TIMER}} \index{TX\_INACT\_TIMER@{TX\_INACT\_TIMER}!sua.c@{sua.c}} \doxysubsubsection{TX\_INACT\_TIMER} {\footnotesize\ttfamily \#define TX\+\_\+\+INACT\+\_\+\+TIMER~( 7 $\ast$ 60 $\ast$ 100) /$\ast$ RFC 3868 Ch. 8. $\ast$/} \doxysubsection{Function Documentation} \mbox{\label{sua_8c_a77e551870cebca638aebb1de2e08487f}} \index{sua.c@{sua.c}!osmo\_sua\_sccp\_cause\_name@{osmo\_sua\_sccp\_cause\_name}} \index{osmo\_sua\_sccp\_cause\_name@{osmo\_sua\_sccp\_cause\_name}!sua.c@{sua.c}} \doxysubsubsection{osmo\_sua\_sccp\_cause\_name()} {\footnotesize\ttfamily const char $\ast$ osmo\+\_\+sua\+\_\+sccp\+\_\+cause\+\_\+name (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{sccp\+\_\+cause, }\item[{char $\ast$}]{out\+\_\+buf, }\item[{size\+\_\+t}]{out\+\_\+buf\+\_\+len }\end{DoxyParamCaption})} References \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+ERROR}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+MASK}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+REFUSAL}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+RELEASE}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+RESET}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+RETURN}, and \textbf{ sua\+\_\+cause\+\_\+type\+\_\+names}. \mbox{\label{sua_8c_a314fa68b28682a608594b73638ef701e}} \index{sua.c@{sua.c}!sccp\_msgb\_alloc@{sccp\_msgb\_alloc}} \index{sccp\_msgb\_alloc@{sccp\_msgb\_alloc}!sua.c@{sua.c}} \doxysubsubsection{sccp\_msgb\_alloc()} {\footnotesize\ttfamily struct msgb $\ast$ sccp\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})} References \textbf{ SCCP\+\_\+\+MSG\+\_\+\+HEADROOM}, and \textbf{ SCCP\+\_\+\+MSG\+\_\+\+SIZE}. Referenced by \textbf{ osmo\+\_\+sua\+\_\+to\+\_\+sccp()}, \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate()}, \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state()}, \textbf{ sccp\+\_\+scmg\+\_\+tx()}, \textbf{ sclc\+\_\+rx\+\_\+cldr()}, and \textbf{ sclc\+\_\+rx\+\_\+cldt()}. \mbox{\label{sua_8c_a18968e95f6331dc53432486aafea2908}} \index{sua.c@{sua.c}!sua\_addr\_parse@{sua\_addr\_parse}} \index{sua\_addr\_parse@{sua\_addr\_parse}!sua.c@{sua.c}} \doxysubsubsection{sua\_addr\_parse()} {\footnotesize\ttfamily int sua\+\_\+addr\+\_\+parse (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{out, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua, }\item[{uint16\+\_\+t}]{iei }\end{DoxyParamCaption})} parse SCCP address from given x\+UA message IE \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ out}} & {\em out} & caller-\/allocated decoded SCCP address struct \\ \hline \mbox{\texttt{ in}} & {\em xua} & x\+UA message \\ \hline \mbox{\texttt{ in}} & {\em iei} & Information Element Identifier inside xua \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative on error \end{DoxyReturn} References \textbf{ sua\+\_\+addr\+\_\+parse\+\_\+part()}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}. Referenced by \textbf{ ensure\+\_\+opc\+\_\+in\+\_\+calling\+\_\+ssn()}, \textbf{ gen\+\_\+ret\+\_\+msg()}, \textbf{ patch\+\_\+sccp\+\_\+with\+\_\+pc()}, \textbf{ sccp\+\_\+find\+\_\+user()}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+sclc\+\_\+msg()}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ sclc\+\_\+rx\+\_\+cldr()}, \textbf{ sclc\+\_\+rx\+\_\+cldt()}, \textbf{ scoc\+\_\+fsm\+\_\+idle()}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, and \textbf{ scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}. \mbox{\label{sua_8c_a7de76938697dd304626a142441ed079d}} \index{sua.c@{sua.c}!sua\_addr\_parse\_part@{sua\_addr\_parse\_part}} \index{sua\_addr\_parse\_part@{sua\_addr\_parse\_part}!sua.c@{sua.c}} \doxysubsubsection{sua\_addr\_parse\_part()} {\footnotesize\ttfamily int sua\+\_\+addr\+\_\+parse\+\_\+part (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{out, }\item[{const struct \textbf{ xua\+\_\+msg\+\_\+part} $\ast$}]{param }\end{DoxyParamCaption})} parse SCCP address from given x\+UA message part \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ out}} & {\em out} & caller-\/allocated decoded SCCP address struct \\ \hline \mbox{\texttt{ in}} & {\em param} & x\+UA message part containing address \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative on error \end{DoxyReturn} References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::gt}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ip}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ xua\+\_\+parameter\+\_\+hdr\+::len}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv4}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv6}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+IP}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+PC}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::pc}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::presence}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ri}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ssn}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+GT}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+IPv4}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+IPv6}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+PC}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SSN}, \textbf{ sua\+\_\+parse\+\_\+gt()}, \textbf{ SUA\+\_\+\+RI\+\_\+\+GT}, \textbf{ SUA\+\_\+\+RI\+\_\+\+HOST}, \textbf{ SUA\+\_\+\+RI\+\_\+\+SSN\+\_\+\+IP}, \textbf{ SUA\+\_\+\+RI\+\_\+\+SSN\+\_\+\+PC}, \textbf{ xua\+\_\+msg\+\_\+part\+::tag}, \textbf{ xua\+\_\+parameter\+\_\+hdr\+::tag}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::v4}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+::v6}. Referenced by \textbf{ sua\+\_\+addr\+\_\+parse()}, and \textbf{ sua\+\_\+addr\+\_\+to\+\_\+sccp()}. \mbox{\label{sua_8c_a5593b0d5d34d48ac051aa5b19cabb715}} \index{sua.c@{sua.c}!sua\_encode\_dava@{sua\_encode\_dava}} \index{sua\_encode\_dava@{sua\_encode\_dava}!sua.c@{sua.c}} \doxysubsubsection{sua\_encode\_dava()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ sua\+\_\+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 uint32\+\_\+t $\ast$}]{ssn, }\item[{const uint32\+\_\+t $\ast$}]{smi, }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ smi}, \textbf{ sua\+\_\+encode\+\_\+duna()}, and \textbf{ SUA\+\_\+\+SNM\+\_\+\+DAVA}. Referenced by \textbf{ sua\+\_\+tx\+\_\+snm\+\_\+available()}. \mbox{\label{sua_8c_abd34e34f9b27efd59d1ed9e7d4594494}} \index{sua.c@{sua.c}!sua\_encode\_duna@{sua\_encode\_duna}} \index{sua\_encode\_duna@{sua\_encode\_duna}!sua.c@{sua.c}} \doxysubsubsection{sua\_encode\_duna()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ sua\+\_\+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 uint32\+\_\+t $\ast$}]{ssn, }\item[{const uint32\+\_\+t $\ast$}]{smi, }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ smi}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SSN}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+DUNA}, \textbf{ SUA\+\_\+\+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{ sua\+\_\+encode\+\_\+dava()}, and \textbf{ sua\+\_\+tx\+\_\+snm\+\_\+available()}. \mbox{\label{sua_8c_ae10e0981ea1e897c07f2b99d497a0936}} \index{sua.c@{sua.c}!sua\_encode\_dupu@{sua\_encode\_dupu}} \index{sua\_encode\_dupu@{sua\_encode\_dupu}!sua.c@{sua.c}} \doxysubsubsection{sua\_encode\_dupu()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ sua\+\_\+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{ SUA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+USER\+\_\+\+CAUSE}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+DUNA}, \textbf{ SUA\+\_\+\+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{ sua\+\_\+tx\+\_\+dupu()}. \mbox{\label{sua_8c_a22e184b910fa7415feb4125742dfc4d8}} \index{sua.c@{sua.c}!sua\_gen\_error@{sua\_gen\_error}} \index{sua\_gen\_error@{sua\_gen\_error}!sua.c@{sua.c}} \doxysubsubsection{sua\_gen\_error()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ sua\+\_\+gen\+\_\+error (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{err\+\_\+code }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ERR\+\_\+\+CODE}, \textbf{ SUA\+\_\+\+MGMT\+\_\+\+ERR}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ SUA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}. Referenced by \textbf{ sua\+\_\+gen\+\_\+error\+\_\+msg()}. \mbox{\label{sua_8c_a859ac3cef174129c4fb09ab92e0b313f}} \index{sua.c@{sua.c}!sua\_gen\_error\_msg@{sua\_gen\_error\_msg}} \index{sua\_gen\_error\_msg@{sua\_gen\_error\_msg}!sua.c@{sua.c}} \doxysubsubsection{sua\_gen\_error\_msg()} {\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ sua\+\_\+gen\+\_\+error\+\_\+msg (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{err\+\_\+code, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ sua\+\_\+gen\+\_\+error()}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DIAG\+\_\+\+INFO}, and \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+msg()}. \mbox{\label{sua_8c_add0364dcfc7833a3662d0accfcf4aff6}} \index{sua.c@{sua.c}!sua\_parse\_gt@{sua\_parse\_gt}} \index{sua\_parse\_gt@{sua\_parse\_gt}!sua.c@{sua.c}} \doxysubsubsection{sua\_parse\_gt()} {\footnotesize\ttfamily int sua\+\_\+parse\+\_\+gt (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+gt} $\ast$}]{gt, }\item[{const uint8\+\_\+t $\ast$}]{data, }\item[{unsigned int}]{datalen }\end{DoxyParamCaption})} Decode SUA Global Title according to RFC3868 Section 3.\+10.\+2.\+3. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ out}} & {\em gt} & User-\/allocated structure for decoded output \\ \hline \mbox{\texttt{ in}} & {\em data} & binary-\/encoded data \\ \hline \mbox{\texttt{ in}} & {\em datalen} & length of \doxyref{data}{p.}{xua__types_8h_ab0c873a3738c31ba573548faa50188bc} in octets \\ \hline \end{DoxyParams} References \textbf{ data}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::digits}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::gti}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::nai}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::npi}, and \textbf{ osmo\+\_\+sccp\+\_\+gt\+::tt}. Referenced by \textbf{ sua\+\_\+addr\+\_\+parse\+\_\+part()}. \mbox{\label{sua_8c_a6a3a46fee6ebdb2de54b5260fe5abf0c}} \index{sua.c@{sua.c}!sua\_rx\_asp@{sua\_rx\_asp}} \index{sua\_rx\_asp@{sua\_rx\_asp}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_asp()} {\footnotesize\ttfamily static int sua\+\_\+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{ sua\+\_\+aspxm\+\_\+map}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, and \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+msg()}. \mbox{\label{sua_8c_a8d9d34ccc01545e1ec513b1e53b02879}} \index{sua.c@{sua.c}!sua\_rx\_cl@{sua\_rx\_cl}} \index{sua\_rx\_cl@{sua\_rx\_cl}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_cl()} {\footnotesize\ttfamily static int sua\+\_\+rx\+\_\+cl (\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{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+TOTAL}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDR}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDT}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CL}, \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp()}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+msg()}. \mbox{\label{sua_8c_a23a25f9389bbadbbbf2a3352a07829f3}} \index{sua.c@{sua.c}!sua\_rx\_co@{sua\_rx\_co}} \index{sua\_rx\_co@{sua\_rx\_co}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_co()} {\footnotesize\ttfamily static int sua\+\_\+rx\+\_\+co (\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{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+TOTAL}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CODA}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CODT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COERR}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COIT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RESCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RESRE}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp()}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+msg()}. \mbox{\label{sua_8c_a10b521b650765c3c890b2da8d2e57d84}} \index{sua.c@{sua.c}!sua\_rx\_mgmt@{sua\_rx\_mgmt}} \index{sua\_rx\_mgmt@{sua\_rx\_mgmt}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_mgmt()} {\footnotesize\ttfamily static int sua\+\_\+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{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ SUA\+\_\+\+MGMT\+\_\+\+ERR}, \textbf{ SUA\+\_\+\+MGMT\+\_\+\+NTFY}, \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+err()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+msg()}. \mbox{\label{sua_8c_a4339e94c68de1b929af93eb46dab18b9}} \index{sua.c@{sua.c}!sua\_rx\_mgmt\_err@{sua\_rx\_mgmt\_err}} \index{sua\_rx\_mgmt\_err@{sua\_rx\_mgmt\_err}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_mgmt\_err()} {\footnotesize\ttfamily static int sua\+\_\+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{ LOGPASP}, \textbf{ m3ua\+\_\+err\+\_\+names}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ERR\+\_\+\+CODE}, \textbf{ xua\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+msg\+\_\+dump()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+mgmt()}. \mbox{\label{sua_8c_ace0103f6f350a6497fcd882a2e8b9e41}} \index{sua.c@{sua.c}!sua\_rx\_mgmt\_ntfy@{sua\_rx\_mgmt\_ntfy}} \index{sua\_rx\_mgmt\_ntfy@{sua\_rx\_mgmt\_ntfy}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_mgmt\_ntfy()} {\footnotesize\ttfamily static int sua\+\_\+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\+::status\+\_\+info}, and \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}. Referenced by \textbf{ sua\+\_\+rx\+\_\+mgmt()}. \mbox{\label{sua_8c_a5aaa70aafac5abbc003a1a27dc05ea56}} \index{sua.c@{sua.c}!sua\_rx\_msg@{sua\_rx\_msg}} \index{sua\_rx\_msg@{sua\_rx\_msg}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_msg()} {\footnotesize\ttfamily int sua\+\_\+rx\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})} process SUA 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{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ LOGPASP}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ MTP\+\_\+\+SI\+\_\+\+SCCP}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+STREAM\+\_\+\+ID}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+INVALID\+\_\+\+VERSION}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+MISSING\+\_\+\+PARAM}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+PARAM\+\_\+\+FIELD\+\_\+\+ERR}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+CLASS}, \textbf{ sua\+\_\+gen\+\_\+error\+\_\+msg()}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+ASPSM}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+ASPTM}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CL}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+RKM}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ sua\+\_\+rx\+\_\+asp()}, \textbf{ sua\+\_\+rx\+\_\+cl()}, \textbf{ sua\+\_\+rx\+\_\+co()}, \textbf{ sua\+\_\+rx\+\_\+mgmt()}, \textbf{ sua\+\_\+rx\+\_\+snm()}, \textbf{ sua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ SUA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ xua\+\_\+dialect\+\_\+check\+\_\+all\+\_\+mand\+\_\+ies()}, \textbf{ xua\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+from\+\_\+msg()}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, and \textbf{ xua\+\_\+msg\+\_\+free()}. Referenced by \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}. \mbox{\label{sua_8c_a72fd3bc2157cf395b090064e213d8fc9}} \index{sua.c@{sua.c}!sua\_rx\_snm@{sua\_rx\_snm}} \index{sua\_rx\_snm@{sua\_rx\_snm}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_snm()} {\footnotesize\ttfamily static int sua\+\_\+rx\+\_\+snm (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ LOGPASP}, \textbf{ 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{ SUA\+\_\+\+ERR\+\_\+\+UNEXPECTED\+\_\+\+MSG}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+CLASS}, \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+asp()}, \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+sg()}, \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+ACTIVE}, and \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+INACTIVE}. Referenced by \textbf{ sua\+\_\+rx\+\_\+msg()}. \mbox{\label{sua_8c_aad9c224115a64f8518e0e248c5e507e2}} \index{sua.c@{sua.c}!sua\_rx\_snm\_asp@{sua\_rx\_snm\_asp}} \index{sua\_rx\_snm\_asp@{sua\_rx\_snm\_asp}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_snm\_asp()} {\footnotesize\ttfamily static int sua\+\_\+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{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+QUIRK\+\_\+\+DAUD\+\_\+\+IN\+\_\+\+ASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::quirks}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+DAUD}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+DAVA}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+DRST}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+DUNA}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+DUPU}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+SCON}, \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()}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dupu()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+snm()}. \mbox{\label{sua_8c_ab6bc31315204b7a7cce988a701767f27}} \index{sua.c@{sua.c}!sua\_rx\_snm\_sg@{sua\_rx\_snm\_sg}} \index{sua\_rx\_snm\_sg@{sua\_rx\_snm\_sg}!sua.c@{sua.c}} \doxysubsubsection{sua\_rx\_snm\_sg()} {\footnotesize\ttfamily static int sua\+\_\+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{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ SUA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+TYPE}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+DAUD}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+daud()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+snm()}. \mbox{\label{sua_8c_acf9b1825a3737f92b01abc1b7de95f31}} \index{sua.c@{sua.c}!sua\_to\_msg@{sua\_to\_msg}} \index{sua\_to\_msg@{sua\_to\_msg}!sua.c@{sua.c}} \doxysubsubsection{sua\_to\_msg()} {\footnotesize\ttfamily static struct msgb $\ast$ sua\+\_\+to\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CL}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ SUA\+\_\+\+PPID}, \textbf{ SUA\+\_\+\+VERSION}, and \textbf{ xua\+\_\+to\+\_\+msg()}. Referenced by \textbf{ sua\+\_\+tx\+\_\+xua\+\_\+as()}, and \textbf{ sua\+\_\+tx\+\_\+xua\+\_\+asp()}. \mbox{\label{sua_8c_aefcb707da3aed3aa9f7b86aedae01353}} \index{sua.c@{sua.c}!sua\_tx\_dupu@{sua\_tx\_dupu}} \index{sua\_tx\_dupu@{sua\_tx\_dupu}!sua.c@{sua.c}} \doxysubsubsection{sua\_tx\_dupu()} {\footnotesize\ttfamily void sua\+\_\+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{ sua\+\_\+encode\+\_\+dupu()}, and \textbf{ sua\+\_\+tx\+\_\+xua\+\_\+asp()}. Referenced by \textbf{ xua\+\_\+tx\+\_\+upu()}. \mbox{\label{sua_8c_a2cde7522ac8680baeb866a1af378ed02}} \index{sua.c@{sua.c}!sua\_tx\_snm\_available@{sua\_tx\_snm\_available}} \index{sua\_tx\_snm\_available@{sua\_tx\_snm\_available}!sua.c@{sua.c}} \doxysubsubsection{sua\_tx\_snm\_available()} {\footnotesize\ttfamily void sua\+\_\+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 uint32\+\_\+t $\ast$}]{aff\+\_\+ssn, }\item[{const uint32\+\_\+t $\ast$}]{smi, }\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 whihc 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 aff\+\_\+ssn} & affected SSN (optional) \\ \hline \mbox{\texttt{ in}} & {\em smi} & subsystem multiplicity indicator (optional) \\ \hline \mbox{\texttt{ in}} & {\em info\+\_\+string} & optional information strng (can be NULL). \\ \hline \mbox{\texttt{ in}} & {\em available} & are aff\+\_\+pc now available (true) or unavailable (false) \\ \hline \end{DoxyParams} References \textbf{ smi}, \textbf{ sua\+\_\+encode\+\_\+dava()}, \textbf{ sua\+\_\+encode\+\_\+duna()}, and \textbf{ sua\+\_\+tx\+\_\+xua\+\_\+asp()}. Referenced by \textbf{ sua\+\_\+snm\+\_\+ssn\+\_\+available()}, and \textbf{ xua\+\_\+tx\+\_\+snm\+\_\+available()}. \mbox{\label{sua_8c_a789d06732c5551dc33ad1b0ef35edc72}} \index{sua.c@{sua.c}!sua\_tx\_snm\_congestion@{sua\_tx\_snm\_congestion}} \index{sua\_tx\_snm\_congestion@{sua\_tx\_snm\_congestion}!sua.c@{sua.c}} \doxysubsubsection{sua\_tx\_snm\_congestion()} {\footnotesize\ttfamily void sua\+\_\+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$}]{ssn, }\item[{const uint8\+\_\+t}]{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 ssn} & optional SSN (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{ SUA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CONG\+\_\+\+LEVEL}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SSN}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ SUA\+\_\+\+SNM\+\_\+\+SCON}, \textbf{ SUA\+\_\+\+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{ xua\+\_\+tx\+\_\+scon()}. \mbox{\label{sua_8c_a67d65e0238a6e2d679e6c72fab31b395}} \index{sua.c@{sua.c}!sua\_tx\_xua\_as@{sua\_tx\_xua\_as}} \index{sua\_tx\_xua\_as@{sua\_tx\_xua\_as}!sua.c@{sua.c}} \doxysubsubsection{sua\_tx\_xua\_as()} {\footnotesize\ttfamily int sua\+\_\+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 SUA 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{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ sua\+\_\+to\+\_\+msg()}, \textbf{ XUA\+\_\+\+AS\+\_\+\+E\+\_\+\+TRANSFER\+\_\+\+REQ}, and \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}. Referenced by \textbf{ gen\+\_\+mtp\+\_\+transfer\+\_\+req\+\_\+xua()}. \mbox{\label{sua_8c_ad70f424a03fb99197f4345982ea0ec77}} \index{sua.c@{sua.c}!sua\_tx\_xua\_asp@{sua\_tx\_xua\_asp}} \index{sua\_tx\_xua\_asp@{sua\_tx\_xua\_asp}!sua.c@{sua.c}} \doxysubsubsection{sua\_tx\_xua\_asp()} {\footnotesize\ttfamily static int sua\+\_\+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{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, and \textbf{ sua\+\_\+to\+\_\+msg()}. Referenced by \textbf{ sua\+\_\+rx\+\_\+msg()}, \textbf{ sua\+\_\+tx\+\_\+dupu()}, and \textbf{ sua\+\_\+tx\+\_\+snm\+\_\+available()}. \doxysubsection{Variable Documentation} \mbox{\label{sua_8c_aa04018a513fc3046464cd0270feaf2ad}} \index{sua.c@{sua.c}!cldr\_mand\_ies@{cldr\_mand\_ies}} \index{cldr\_mand\_ies@{cldr\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{cldr\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t cldr\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_CAUSE, SUA\_IEI\_SRC\_ADDR,} \DoxyCodeLine{ SUA\_IEI\_DEST\_ADDR, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_adc39d391c4da2a723a39edd7c7fe1e9b}} \index{sua.c@{sua.c}!cldt\_mand\_ies@{cldt\_mand\_ies}} \index{cldt\_mand\_ies@{cldt\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{cldt\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t cldt\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_PROTO\_CLASS, SUA\_IEI\_SRC\_ADDR,} \DoxyCodeLine{ SUA\_IEI\_DEST\_ADDR, SUA\_IEI\_SEQ\_CTRL, SUA\_IEI\_DATA, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a06567c8611773ec3d2dffb8668275014}} \index{sua.c@{sua.c}!coak\_mand\_ies@{coak\_mand\_ies}} \index{coak\_mand\_ies@{coak\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{coak\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t coak\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_PROTO\_CLASS, SUA\_IEI\_DEST\_REF,} \DoxyCodeLine{ SUA\_IEI\_SRC\_REF, SUA\_IEI\_SEQ\_CTRL, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a7a7f14cda52f89daa04f102422b13e65}} \index{sua.c@{sua.c}!coda\_mand\_ies@{coda\_mand\_ies}} \index{coda\_mand\_ies@{coda\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{coda\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t coda\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_DEST\_REF, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_ab80f6147b738ac938233ff3ef69227a0}} \index{sua.c@{sua.c}!codt\_mand\_ies@{codt\_mand\_ies}} \index{codt\_mand\_ies@{codt\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{codt\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t codt\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_DEST\_REF, SUA\_IEI\_DATA, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a116f004708e76b8626f74d6a81e0e906}} \index{sua.c@{sua.c}!coerr\_mand\_ies@{coerr\_mand\_ies}} \index{coerr\_mand\_ies@{coerr\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{coerr\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t coerr\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_DEST\_REF, SUA\_IEI\_CAUSE, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a69f625c1a25ed7639a98fa62fd76bc57}} \index{sua.c@{sua.c}!coit\_mand\_ies@{coit\_mand\_ies}} \index{coit\_mand\_ies@{coit\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{coit\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t coit\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_PROTO\_CLASS, SUA\_IEI\_SRC\_REF,} \DoxyCodeLine{ SUA\_IEI\_DEST\_REF, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a10597bd1784c5c386dab025cc4b8955c}} \index{sua.c@{sua.c}!core\_mand\_ies@{core\_mand\_ies}} \index{core\_mand\_ies@{core\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{core\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t core\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_PROTO\_CLASS, SUA\_IEI\_SRC\_REF,} \DoxyCodeLine{ SUA\_IEI\_DEST\_ADDR, SUA\_IEI\_SEQ\_CTRL, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a799230f6bdacec436ee0c55a32640ef4}} \index{sua.c@{sua.c}!coref\_mand\_ies@{coref\_mand\_ies}} \index{coref\_mand\_ies@{coref\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{coref\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t coref\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_DEST\_REF, SUA\_IEI\_CAUSE, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a108d8063cc68a4bec2a72a996dead24e}} \index{sua.c@{sua.c}!msg\_class\_cl@{msg\_class\_cl}} \index{msg\_class\_cl@{msg\_class\_cl}!sua.c@{sua.c}} \doxysubsubsection{msg\_class\_cl} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} msg\+\_\+class\+\_\+cl\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}CL"{}},} \DoxyCodeLine{ .msgt\_names = sua\_cl\_msgt\_names,} \DoxyCodeLine{ .iei\_names = sua\_iei\_names,} \DoxyCodeLine{ .mand\_ies = \{} \DoxyCodeLine{ MAND\_IES(SUA\_CL\_CLDT, cldt\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CL\_CLDR, cldr\_mand\_ies),} \DoxyCodeLine{ \},} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a17aa513dad5639651ada38ea17cfa647}} \index{sua.c@{sua.c}!msg\_class\_co@{msg\_class\_co}} \index{msg\_class\_co@{msg\_class\_co}!sua.c@{sua.c}} \doxysubsubsection{msg\_class\_co} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} msg\+\_\+class\+\_\+co\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}CO"{}},} \DoxyCodeLine{ .msgt\_names = sua\_co\_msgt\_names,} \DoxyCodeLine{ .iei\_names = sua\_iei\_names,} \DoxyCodeLine{ .mand\_ies = \{} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_CODT, codt\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_CODA, coda\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_CORE, core\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_COAK, coak\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_COREF, coref\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_RELRE, relre\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_RELCO, relco\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_RESRE, resre\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_RESCO, resco\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_COERR, coerr\_mand\_ies),} \DoxyCodeLine{ MAND\_IES(SUA\_CO\_COIT, coit\_mand\_ies),} \DoxyCodeLine{ \},} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a50e1c3d99e244947adb9d194792163be}} \index{sua.c@{sua.c}!relco\_mand\_ies@{relco\_mand\_ies}} \index{relco\_mand\_ies@{relco\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{relco\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t relco\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_DEST\_REF, SUA\_IEI\_SRC\_REF, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a3796ad72a0ae04d9dbb21c9c90815664}} \index{sua.c@{sua.c}!relre\_mand\_ies@{relre\_mand\_ies}} \index{relre\_mand\_ies@{relre\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{relre\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t relre\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_DEST\_REF, SUA\_IEI\_SRC\_REF,} \DoxyCodeLine{ SUA\_IEI\_CAUSE, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a43784a3b9d37a6a466eb479b177a5d7e}} \index{sua.c@{sua.c}!resco\_mand\_ies@{resco\_mand\_ies}} \index{resco\_mand\_ies@{resco\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{resco\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t resco\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_DEST\_REF, SUA\_IEI\_SRC\_REF, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_acf0f72962ed78f26ae3d7dd749f90ecb}} \index{sua.c@{sua.c}!resre\_mand\_ies@{resre\_mand\_ies}} \index{resre\_mand\_ies@{resre\_mand\_ies}!sua.c@{sua.c}} \doxysubsubsection{resre\_mand\_ies} {\footnotesize\ttfamily const uint16\+\_\+t resre\+\_\+mand\+\_\+ies[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ SUA\_IEI\_ROUTE\_CTX, SUA\_IEI\_DEST\_REF, SUA\_IEI\_SRC\_REF,} \DoxyCodeLine{ SUA\_IEI\_CAUSE, 0} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a4d35e0711fec8203a84eb2ab3a881e08}} \index{sua.c@{sua.c}!sua\_aspxm\_map@{sua\_aspxm\_map}} \index{sua\_aspxm\_map@{sua\_aspxm\_map}!sua.c@{sua.c}} \doxysubsubsection{sua\_aspxm\_map} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map} sua\+\_\+aspxm\+\_\+map[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPSM, SUA\_ASPSM\_UP, XUA\_ASP\_E\_ASPSM\_ASPUP \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPSM, SUA\_ASPSM\_DOWN, XUA\_ASP\_E\_ASPSM\_ASPDN \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPSM, SUA\_ASPSM\_BEAT, XUA\_ASP\_E\_ASPSM\_BEAT \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPSM, SUA\_ASPSM\_UP\_ACK, XUA\_ASP\_E\_ASPSM\_ASPUP\_ACK \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPSM, SUA\_ASPSM\_DOWN\_ACK, XUA\_ASP\_E\_ASPSM\_ASPDN\_ACK \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPSM, SUA\_ASPSM\_BEAT\_ACK, XUA\_ASP\_E\_ASPSM\_BEAT\_ACK \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPTM, SUA\_ASPTM\_ACTIVE, XUA\_ASP\_E\_ASPTM\_ASPAC \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPTM, SUA\_ASPTM\_INACTIVE, XUA\_ASP\_E\_ASPTM\_ASPIA \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPTM, SUA\_ASPTM\_ACTIVE\_ACK, XUA\_ASP\_E\_ASPTM\_ASPAC\_ACK \},} \DoxyCodeLine{ \{ SUA\_MSGC\_ASPTM, SUA\_ASPTM\_INACTIVE\_ACK, XUA\_ASP\_E\_ASPTM\_ASPIA\_ACK \},} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ sua\+\_\+rx\+\_\+asp()}. \mbox{\label{sua_8c_aa202212f3cd26e450e68e5d49684922d}} \index{sua.c@{sua.c}!sua\_cause\_type\_names@{sua\_cause\_type\_names}} \index{sua\_cause\_type\_names@{sua\_cause\_type\_names}!sua.c@{sua.c}} \doxysubsubsection{sua\_cause\_type\_names} {\footnotesize\ttfamily const struct value\+\_\+string sua\+\_\+cause\+\_\+type\+\_\+names[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ SUA\_CAUSE\_T\_RETURN, \textcolor{stringliteral}{"{}Return Cause"{}} \},} \DoxyCodeLine{ \{ SUA\_CAUSE\_T\_REFUSAL, \textcolor{stringliteral}{"{}Refusal Cause"{}} \},} \DoxyCodeLine{ \{ SUA\_CAUSE\_T\_RELEASE, \textcolor{stringliteral}{"{}Release Cause"{}} \},} \DoxyCodeLine{ \{ SUA\_CAUSE\_T\_RESET, \textcolor{stringliteral}{"{}Reset Cause"{}} \},} \DoxyCodeLine{ \{ SUA\_CAUSE\_T\_ERROR, \textcolor{stringliteral}{"{}Error Cause"{}} \},} \DoxyCodeLine{ \{\}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ osmo\+\_\+sua\+\_\+sccp\+\_\+cause\+\_\+name()}. \mbox{\label{sua_8c_a2297c75fd92ba8d78ad59dd06dc8fd33}} \index{sua.c@{sua.c}!sua\_cl\_msgt\_names@{sua\_cl\_msgt\_names}} \index{sua\_cl\_msgt\_names@{sua\_cl\_msgt\_names}!sua.c@{sua.c}} \doxysubsubsection{sua\_cl\_msgt\_names} {\footnotesize\ttfamily const struct value\+\_\+string sua\+\_\+cl\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ SUA\_CL\_CLDT, \textcolor{stringliteral}{"{}CLDT"{}} \},} \DoxyCodeLine{ \{ SUA\_CL\_CLDR, \textcolor{stringliteral}{"{}CLDR"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a0991092c8ba82280d48f15dba528f53c}} \index{sua.c@{sua.c}!sua\_co\_msgt\_names@{sua\_co\_msgt\_names}} \index{sua\_co\_msgt\_names@{sua\_co\_msgt\_names}!sua.c@{sua.c}} \doxysubsubsection{sua\_co\_msgt\_names} {\footnotesize\ttfamily const struct value\+\_\+string sua\+\_\+co\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ SUA\_CO\_CODT, \textcolor{stringliteral}{"{}CODT"{}} \},} \DoxyCodeLine{ \{ SUA\_CO\_CODA, \textcolor{stringliteral}{"{}CODA"{}} \},} \DoxyCodeLine{ \{ SUA\_CO\_CORE, \textcolor{stringliteral}{"{}CORE"{}} \}, } \DoxyCodeLine{ \{ SUA\_CO\_COAK, \textcolor{stringliteral}{"{}COAK"{}} \}, } \DoxyCodeLine{ \{ SUA\_CO\_COREF, \textcolor{stringliteral}{"{}COREF"{}} \}, } \DoxyCodeLine{ \{ SUA\_CO\_RELRE, \textcolor{stringliteral}{"{}RELRE"{}} \}, } \DoxyCodeLine{ \{ SUA\_CO\_RELCO, \textcolor{stringliteral}{"{}RELCO"{}} \},} \DoxyCodeLine{ \{ SUA\_CO\_RESRE, \textcolor{stringliteral}{"{}RESRE"{}} \},} \DoxyCodeLine{ \{ SUA\_CO\_RESCO, \textcolor{stringliteral}{"{}RESCO"{}} \},} \DoxyCodeLine{ \{ SUA\_CO\_COERR, \textcolor{stringliteral}{"{}COERR"{}} \},} \DoxyCodeLine{ \{ SUA\_CO\_COIT, \textcolor{stringliteral}{"{}COIT"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{sua_8c_a0084984f60defe400a41a8eb6511261d}} \index{sua.c@{sua.c}!sua\_iei\_names@{sua\_iei\_names}} \index{sua\_iei\_names@{sua\_iei\_names}!sua.c@{sua.c}} \doxysubsubsection{sua\_iei\_names} {\footnotesize\ttfamily const struct value\+\_\+string sua\+\_\+iei\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}} \mbox{\label{sua_8c_aa9dfe79ab4a2b83e4d478b10c973c0b0}} \index{sua.c@{sua.c}!xua\_dialect\_sua@{xua\_dialect\_sua}} \index{xua\_dialect\_sua@{xua\_dialect\_sua}!sua.c@{sua.c}} \doxysubsubsection{xua\_dialect\_sua} {\footnotesize\ttfamily const struct \textbf{ xua\+\_\+dialect} xua\+\_\+dialect\+\_\+sua} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .name = \textcolor{stringliteral}{"{}SUA"{}},} \DoxyCodeLine{ .ppid = SUA\_PPID,} \DoxyCodeLine{ .port = SUA\_PORT,} \DoxyCodeLine{ .log\_subsys = DLSUA,} \DoxyCodeLine{ .class = \{} \DoxyCodeLine{ [SUA\_MSGC\_MGMT] = \&m3ua\_msg\_class\_mgmt,} \DoxyCodeLine{ [SUA\_MSGC\_SNM] = \&m3ua\_msg\_class\_snm,} \DoxyCodeLine{ [SUA\_MSGC\_ASPSM] = \&m3ua\_msg\_class\_aspsm,} \DoxyCodeLine{ [SUA\_MSGC\_ASPTM] = \&m3ua\_msg\_class\_asptm,} \DoxyCodeLine{ [SUA\_MSGC\_CL] = \&msg\_class\_cl,} \DoxyCodeLine{ [SUA\_MSGC\_CO] = \&msg\_class\_co,} \DoxyCodeLine{ [SUA\_MSGC\_RKM] = \&m3ua\_msg\_class\_rkm,} \DoxyCodeLine{ \},} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ osmo\+\_\+sua\+\_\+to\+\_\+sccp()}, \textbf{ sccp\+\_\+find\+\_\+user()}, \textbf{ sccp\+\_\+sclc\+\_\+rx\+\_\+from\+\_\+scrc()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+src\+\_\+ref()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+unass\+\_\+local\+\_\+ref()}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+sclc\+\_\+msg()}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+err()}, \textbf{ sua\+\_\+rx\+\_\+msg()}, and \textbf{ xua\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache()}.