\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 
struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ sua\+\_\+gen\+\_\+cldr} (const struct \textbf{ xua\+\_\+msg} $\ast$xua\+\_\+in, uint32\+\_\+t route\+\_\+ctx, uint32\+\_\+t ret\+\_\+cause)
\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$\textbf{ 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$\textbf{ ssn}, const uint32\+\_\+t $\ast$\textbf{ smi}, const char $\ast$info\+\_\+string)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ sua\+\_\+encode\+\_\+daud} (const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const uint32\+\_\+t $\ast$\textbf{ 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$\textbf{ 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\+\_\+snm\+\_\+daud} (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)
\begin{DoxyCompactList}\small\item\em Transmit SSNM DAUD message requesting [un]availability status of certain point code[s]. \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{ NULL}, \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{ NULL}, \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{ asp\+\_\+loadshare\+\_\+tcap\+\_\+sccp()}, \textbf{ ensure\+\_\+opc\+\_\+in\+\_\+calling\+\_\+ssn()}, \textbf{ gen\+\_\+mtp\+\_\+transfer\+\_\+req\+\_\+xua()}, \textbf{ patch\+\_\+sccp\+\_\+with\+\_\+pc()}, \textbf{ sccp\+\_\+conn\+\_\+scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \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\+\_\+node\+\_\+2()}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, \textbf{ sua\+\_\+gen\+\_\+cldr()}, and \textbf{ tcap\+\_\+as\+\_\+rx\+\_\+sccp\+\_\+asp()}.

\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_a5030d2e912758220226c1ad63cfca9f9}} 
\index{sua.c@{sua.c}!sua\_encode\_daud@{sua\_encode\_daud}}
\index{sua\_encode\_daud@{sua\_encode\_daud}!sua.c@{sua.c}}
\doxysubsubsection{sua\_encode\_daud()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ sua\+\_\+encode\+\_\+daud (\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{ ssn}, \textbf{ sua\+\_\+encode\+\_\+duna()}, and \textbf{ SUA\+\_\+\+SNM\+\_\+\+DAUD}.



Referenced by \textbf{ sua\+\_\+tx\+\_\+snm\+\_\+daud()}.

\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{ ssn}, \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{ ssn}, \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\+\_\+daud()}, \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_a290a4c750ed288b6b3f52f2f5e49eb15}} 
\index{sua.c@{sua.c}!sua\_gen\_cldr@{sua\_gen\_cldr}}
\index{sua\_gen\_cldr@{sua\_gen\_cldr}!sua.c@{sua.c}}
\doxysubsubsection{sua\_gen\_cldr()}
{\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg} $\ast$ sua\+\_\+gen\+\_\+cldr (\begin{DoxyParamCaption}\item[{const struct \textbf{ xua\+\_\+msg} $\ast$}]{xua\+\_\+in,  }\item[{uint32\+\_\+t}]{route\+\_\+ctx,  }\item[{uint32\+\_\+t}]{ret\+\_\+cause }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+PC}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::pc}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::presence}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ri}, \textbf{ sua\+\_\+addr\+\_\+parse()}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+RETURN}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CAUSE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CORR\+\_\+\+ID}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DATA}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+IMPORTANCE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+MSG\+\_\+\+PRIO}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SEGMENTATION}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CL}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+sccp\+\_\+addr()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, \textbf{ xua\+\_\+msg\+\_\+alloc()}, \textbf{ xua\+\_\+msg\+\_\+copy\+\_\+part()}, and \textbf{ xua\+\_\+msg\+\_\+free\+\_\+tag()}.



Referenced by \textbf{ gen\+\_\+ret\+\_\+msg()}, and \textbf{ send\+\_\+back\+\_\+udts()}.

\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_ac3c027f9a365f5741871df5ace13943f} 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{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+0}, \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{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+0}, \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{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ xua\+\_\+common\+\_\+hdr\+::data}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ err}, \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{ MTP\+\_\+\+SIO}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::network\+\_\+indicator}, \textbf{ NULL}, \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{ xua\+\_\+rx\+\_\+msg()}.

\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{ NULL}, \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{ NULL}, \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\+\_\+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 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 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{ ssn}, \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_a0fe98cfacf251ef66b65823bcb7611f6}} 
\index{sua.c@{sua.c}!sua\_tx\_snm\_daud@{sua\_tx\_snm\_daud}}
\index{sua\_tx\_snm\_daud@{sua\_tx\_snm\_daud}!sua.c@{sua.c}}
\doxysubsubsection{sua\_tx\_snm\_daud()}
{\footnotesize\ttfamily void sua\+\_\+tx\+\_\+snm\+\_\+daud (\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 }\end{DoxyParamCaption})}



Transmit SSNM DAUD message requesting [un]availability status 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 aff\+\_\+ssn} & affected SSN (optional) \\
\hline
\mbox{\texttt{ in}}  & {\em smi} & subsystem multiplicity indicator (optional) \\
\hline
\mbox{\texttt{ in}}  & {\em info\+\_\+string} & optional information string (can be NULL). \\
\hline
\end{DoxyParams}


References \textbf{ smi}, \textbf{ sua\+\_\+encode\+\_\+daud()}, and \textbf{ sua\+\_\+tx\+\_\+xua\+\_\+asp()}.



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

\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{ XUA\+\_\+\+AS\+\_\+\+E\+\_\+\+TRANSFER\+\_\+\+REQ}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



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}, \textbf{ sua\+\_\+to\+\_\+msg()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



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



\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{ ensure\+\_\+opc\+\_\+in\+\_\+calling\+\_\+ssn()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, \textbf{ osmo\+\_\+sua\+\_\+to\+\_\+sccp()}, \textbf{ sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache()}, \textbf{ sccp\+\_\+conn\+\_\+scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ sccp\+\_\+find\+\_\+user()}, \textbf{ sccp\+\_\+rout\+\_\+fail\+\_\+enqueue()}, \textbf{ sccp\+\_\+sclc\+\_\+rx\+\_\+from\+\_\+scrc()}, \textbf{ sccp\+\_\+sclc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail()}, \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{ sclc\+\_\+rx\+\_\+cldr()}, \textbf{ sclc\+\_\+rx\+\_\+cldt()}, \textbf{ scoc\+\_\+fsm\+\_\+idle()}, \textbf{ scrc\+\_\+node\+\_\+2()}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, \textbf{ send\+\_\+back\+\_\+udts()}, \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+err()}, and \textbf{ sua\+\_\+rx\+\_\+msg()}.

