\doxysection{src/xua\+\_\+internal.h File Reference}
\label{xua__internal_8h}\index{src/xua\_internal.h@{src/xua\_internal.h}}
{\ttfamily \#include $<$osmocom/core/tdef.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+msg.\+h\char`\"{}}\newline
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+SIZE}~2048
\item 
\#define \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+HEADROOM}~512
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer} \{ \newline
\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+ASP\+\_\+\+UP} = 1
, \textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+NOTIFY}
, \textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+NOTIY\+\_\+\+RKM}
, \textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+RK\+\_\+\+REG\+\_\+\+RESP}
, \newline
\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\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 
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 
struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+to\+\_\+xua} (struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em convert SCCP message to a SUA message \end{DoxyCompactList}\item 
struct msgb $\ast$ \textbf{ osmo\+\_\+sua\+\_\+to\+\_\+sccp} (struct \textbf{ xua\+\_\+msg} $\ast$xua)
\begin{DoxyCompactList}\small\item\em convert parsed SUA message to SCCP message \end{DoxyCompactList}\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 
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 
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\+\_\+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 
struct \textbf{ osmo\+\_\+mtp\+\_\+prim} $\ast$ \textbf{ m3ua\+\_\+to\+\_\+xfer\+\_\+ind} (struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ m3ua\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
struct msgb $\ast$ \textbf{ m3ua\+\_\+to\+\_\+msg} (struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+as} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\begin{DoxyCompactList}\small\item\em Send a given x\+UA message via a given M3\+UA Application Server. \end{DoxyCompactList}\item 
void \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+string, bool available)
\begin{DoxyCompactList}\small\item\em Transmit SSNM DUNA/\+DAVA message indicating [un]availability of certain point code[s]. \end{DoxyCompactList}\item 
void \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+congestion} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const uint32\+\_\+t $\ast$concerned\+\_\+dpc, const uint8\+\_\+t $\ast$cong\+\_\+level, const char $\ast$info\+\_\+string)
\begin{DoxyCompactList}\small\item\em Transmit SSNM SCON message indicating congestion. \end{DoxyCompactList}\item 
void \textbf{ m3ua\+\_\+tx\+\_\+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 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{ m3ua\+\_\+tx\+\_\+dupu} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, uint32\+\_\+t \textbf{ dpc}, uint16\+\_\+t user, uint16\+\_\+t cause, const char $\ast$info\+\_\+str)
\begin{DoxyCompactList}\small\item\em Transmit SSNM DUPU message indicating user unavailability. \end{DoxyCompactList}\item 
void \textbf{ xua\+\_\+tx\+\_\+snm\+\_\+available} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+str, bool available)
\item 
void \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+daud} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+duna} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dava} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dupu} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+scon} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ m3ua\+\_\+rx\+\_\+msg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct msgb $\ast$msg)
\begin{DoxyCompactList}\small\item\em process M3\+UA message received from socket \end{DoxyCompactList}\item 
struct msgb $\ast$ \textbf{ m3ua\+\_\+msgb\+\_\+alloc} (const char $\ast$name)
\item 
struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+xfer\+\_\+from\+\_\+data} (const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$data\+\_\+hdr, const uint8\+\_\+t $\ast$\textbf{ data}, unsigned int data\+\_\+len)
\item 
struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$ \textbf{ data\+\_\+hdr\+\_\+from\+\_\+m3ua} (struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param} (struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$param, const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$mdh)
\item 
void \textbf{ mtp\+\_\+xfer\+\_\+param\+\_\+to\+\_\+m3ua\+\_\+dh} (struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$mdh, const struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$param)
\item 
const char $\ast$ \textbf{ m3ua\+\_\+ntfy\+\_\+info\+\_\+name} (uint16\+\_\+t ntfy\+\_\+status\+\_\+type, uint16\+\_\+t ntfy\+\_\+status\+\_\+info)
\item 
struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ m3ua\+\_\+encode\+\_\+notify} (const struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$npar)
\item 
int \textbf{ m3ua\+\_\+decode\+\_\+notify} (struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$npar, void $\ast$ctx, const struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ m3ua\+\_\+rx\+\_\+rkm} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ xua\+\_\+rkm\+\_\+cleanup\+\_\+dyn\+\_\+as\+\_\+for\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp)
\item 
struct \textbf{ osmo\+\_\+xlm\+\_\+prim} $\ast$ \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc} (enum \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+type} prim\+\_\+type, enum osmo\+\_\+prim\+\_\+operation op)
\item 
void \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ osmo\+\_\+xlm\+\_\+prim} $\ast$prim)
\item 
void \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, enum \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+type} prim\+\_\+type, enum osmo\+\_\+prim\+\_\+operation op)
\item 
void \textbf{ xua\+\_\+snm\+\_\+pc\+\_\+available} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const char $\ast$info\+\_\+str, bool available)
\item 
void \textbf{ xua\+\_\+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 char $\ast$info\+\_\+str)
\item 
static const char $\ast$ \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+name} (enum \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer} val)
\item 
int \textbf{ xua\+\_\+as\+\_\+transmit\+\_\+msg} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$$\ast$as, const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const struct \textbf{ xua\+\_\+msg\+\_\+part} $\ast$rctx\+\_\+ie)
\begin{DoxyCompactList}\small\item\em Find the AS for given ASP + optional routing context IE. \end{DoxyCompactList}\item 
struct msgb $\ast$ \textbf{ ipa\+\_\+gen\+\_\+ping} (void)
\item 
struct msgb $\ast$ \textbf{ ipa\+\_\+to\+\_\+msg} (struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ ipa\+\_\+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 IPA \char`\"{}\+Application Server\char`\"{}. \end{DoxyCompactList}\item 
int \textbf{ ipa\+\_\+rx\+\_\+msg} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct msgb $\ast$msg, uint8\+\_\+t \textbf{ sls})
\begin{DoxyCompactList}\small\item\em process M3\+UA message received from socket \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ ipa\+\_\+find\+\_\+as\+\_\+for\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp)
\item 
int \textbf{ osmo\+\_\+isup\+\_\+party\+\_\+parse} (char $\ast$out\+\_\+digits, const uint8\+\_\+t $\ast$in, unsigned int in\+\_\+num\+\_\+bytes, bool odd)
\begin{DoxyCompactList}\small\item\em Parse ISUP style address of BCD digets. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+parse} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$out, const uint8\+\_\+t $\ast$addr, unsigned int addrlen)
\begin{DoxyCompactList}\small\item\em Parse wire-\/encoded SCCP address into \doxyref{osmo\+\_\+sccp\+\_\+addr}{p.}{structosmo__sccp__addr}. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+encode} (struct msgb $\ast$msg, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$in)
\begin{DoxyCompactList}\small\item\em encode a SCCP address from parsed format to wire format \end{DoxyCompactList}\item 
int \textbf{ ss7\+\_\+asp\+\_\+rx\+\_\+unknown} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, int ppid\+\_\+mux, struct msgb $\ast$msg)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+mgmt}
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+snm}
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+rkm}
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+aspsm}
\item 
const struct \textbf{ xua\+\_\+msg\+\_\+class} \textbf{ m3ua\+\_\+msg\+\_\+class\+\_\+asptm}
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+err\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+type\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+ntfy\+\_\+other\+\_\+names} [$\,$]
\item 
const struct osmo\+\_\+tdef \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults} [\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN}]
\item 
const struct value\+\_\+string \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names} [$\,$]
\item 
struct osmo\+\_\+fsm \textbf{ xua\+\_\+default\+\_\+lm\+\_\+fsm}
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+rkm\+\_\+reg\+\_\+status\+\_\+vals} [$\,$]
\item 
const struct value\+\_\+string \textbf{ m3ua\+\_\+rkm\+\_\+dereg\+\_\+status\+\_\+vals} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{xua__internal_8h_a0a663c3db596ddb20df217c428675585}} 
\index{xua\_internal.h@{xua\_internal.h}!M3UA\_MSG\_HEADROOM@{M3UA\_MSG\_HEADROOM}}
\index{M3UA\_MSG\_HEADROOM@{M3UA\_MSG\_HEADROOM}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{M3UA\_MSG\_HEADROOM}
{\footnotesize\ttfamily \#define M3\+UA\+\_\+\+MSG\+\_\+\+HEADROOM~512}

\mbox{\label{xua__internal_8h_abd0d34f59b10a9030dfbd87f24239f57}} 
\index{xua\_internal.h@{xua\_internal.h}!M3UA\_MSG\_SIZE@{M3UA\_MSG\_SIZE}}
\index{M3UA\_MSG\_SIZE@{M3UA\_MSG\_SIZE}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{M3UA\_MSG\_SIZE}
{\footnotesize\ttfamily \#define M3\+UA\+\_\+\+MSG\+\_\+\+SIZE~2048}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3}} 
\index{xua\_internal.h@{xua\_internal.h}!ss7\_asp\_lm\_timer@{ss7\_asp\_lm\_timer}}
\index{ss7\_asp\_lm\_timer@{ss7\_asp\_lm\_timer}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ss7\_asp\_lm\_timer}
{\footnotesize\ttfamily enum \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_ASP\_LM\_T\_WAIT\_ASP\_UP@{SS7\_ASP\_LM\_T\_WAIT\_ASP\_UP}!xua\_internal.h@{xua\_internal.h}}\index{xua\_internal.h@{xua\_internal.h}!SS7\_ASP\_LM\_T\_WAIT\_ASP\_UP@{SS7\_ASP\_LM\_T\_WAIT\_ASP\_UP}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3a09086d4eeec6cf08c67fa22df289ea00}} 
SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+ASP\+\_\+\+UP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_ASP\_LM\_T\_WAIT\_NOTIFY@{SS7\_ASP\_LM\_T\_WAIT\_NOTIFY}!xua\_internal.h@{xua\_internal.h}}\index{xua\_internal.h@{xua\_internal.h}!SS7\_ASP\_LM\_T\_WAIT\_NOTIFY@{SS7\_ASP\_LM\_T\_WAIT\_NOTIFY}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3a31bb229ae3154608fb32175d784f7d00}} 
SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+NOTIFY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_ASP\_LM\_T\_WAIT\_NOTIY\_RKM@{SS7\_ASP\_LM\_T\_WAIT\_NOTIY\_RKM}!xua\_internal.h@{xua\_internal.h}}\index{xua\_internal.h@{xua\_internal.h}!SS7\_ASP\_LM\_T\_WAIT\_NOTIY\_RKM@{SS7\_ASP\_LM\_T\_WAIT\_NOTIY\_RKM}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3ad98f60fcc228d6d2012a22a0bd10cd97}} 
SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+NOTIY\+\_\+\+RKM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_ASP\_LM\_T\_WAIT\_RK\_REG\_RESP@{SS7\_ASP\_LM\_T\_WAIT\_RK\_REG\_RESP}!xua\_internal.h@{xua\_internal.h}}\index{xua\_internal.h@{xua\_internal.h}!SS7\_ASP\_LM\_T\_WAIT\_RK\_REG\_RESP@{SS7\_ASP\_LM\_T\_WAIT\_RK\_REG\_RESP}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3a578484eaa252e14e1254403b80d8cb5c}} 
SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+RK\+\_\+\+REG\+\_\+\+RESP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_ASP\_LM\_TIMERS\_LEN@{SS7\_ASP\_LM\_TIMERS\_LEN}!xua\_internal.h@{xua\_internal.h}}\index{xua\_internal.h@{xua\_internal.h}!SS7\_ASP\_LM\_TIMERS\_LEN@{SS7\_ASP\_LM\_TIMERS\_LEN}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3a25bb5fdb3a6a669c61b2d9c8b395e472}} 
SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{xua__internal_8h_a3f7fbf35c6b49191b784a22cb7d9b30c}} 
\index{xua\_internal.h@{xua\_internal.h}!data\_hdr\_from\_m3ua@{data\_hdr\_from\_m3ua}}
\index{data\_hdr\_from\_m3ua@{data\_hdr\_from\_m3ua}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{data\_hdr\_from\_m3ua()}
{\footnotesize\ttfamily struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$ data\+\_\+hdr\+\_\+from\+\_\+m3ua (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ NULL}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}.



Referenced by \textbf{ hmdt\+\_\+message\+\_\+for\+\_\+distribution()}, and \textbf{ m3ua\+\_\+rx\+\_\+xfer()}.

\mbox{\label{xua__internal_8h_a12edf7cefcd3d762bed8d90334498121}} 
\index{xua\_internal.h@{xua\_internal.h}!ipa\_find\_as\_for\_asp@{ipa\_find\_as\_for\_asp}}
\index{ipa\_find\_as\_for\_asp@{ipa\_find\_as\_for\_asp}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ipa\_find\_as\_for\_asp()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ ipa\+\_\+find\+\_\+as\+\_\+for\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ NULL}, and \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp()}.



Referenced by \textbf{ ipa\+\_\+asp\+\_\+fsm\+\_\+start()}, and \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+sccp()}.

\mbox{\label{xua__internal_8h_aee15f093ba0a2da1d52404d8180c8e8f}} 
\index{xua\_internal.h@{xua\_internal.h}!ipa\_gen\_ping@{ipa\_gen\_ping}}
\index{ipa\_gen\_ping@{ipa\_gen\_ping}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ipa\_gen\_ping()}
{\footnotesize\ttfamily struct msgb $\ast$ ipa\+\_\+gen\+\_\+ping (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



References \textbf{ NULL}.



Referenced by \textbf{ ipa\+\_\+t\+\_\+beat\+\_\+send()}.

\mbox{\label{xua__internal_8h_a1b8e22b504c31fbddfa6ddbdf1e5c9a3}} 
\index{xua\_internal.h@{xua\_internal.h}!ipa\_rx\_msg@{ipa\_rx\_msg}}
\index{ipa\_rx\_msg@{ipa\_rx\_msg}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ipa\_rx\_msg()}
{\footnotesize\ttfamily int ipa\+\_\+rx\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct msgb $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{sls }\end{DoxyParamCaption})}



process M3\+UA message received from socket 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em asp} & Application Server Process receiving {\itshape msg} \\
\hline
\mbox{\texttt{ in}}  & {\em msg} & received message buffer. Callee takes ownership! \\
\hline
\mbox{\texttt{ in}}  & {\em sls} & The SLS (signaling link selector) field to use in the generated M3\+UA header \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+ccm()}, \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+sccp()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ sls}, and \textbf{ ss7\+\_\+asp\+\_\+rx\+\_\+unknown()}.



Referenced by \textbf{ ipa\+\_\+cli\+\_\+read\+\_\+cb()}, and \textbf{ ss7\+\_\+asp\+\_\+ipa\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}.

\mbox{\label{xua__internal_8h_a3b1da84bb13edb98e00a12829804c1d6}} 
\index{xua\_internal.h@{xua\_internal.h}!ipa\_to\_msg@{ipa\_to\_msg}}
\index{ipa\_to\_msg@{ipa\_to\_msg}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ipa\_to\_msg()}
{\footnotesize\ttfamily struct msgb $\ast$ ipa\+\_\+to\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ MTP\+\_\+\+SI\+\_\+\+SCCP}, \textbf{ NULL}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::si}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}.



Referenced by \textbf{ xua\+\_\+as\+\_\+encode\+\_\+msg()}.

\mbox{\label{xua__internal_8h_a4473443b022e57cc48e07677c14650ae}} 
\index{xua\_internal.h@{xua\_internal.h}!ipa\_tx\_xua\_as@{ipa\_tx\_xua\_as}}
\index{ipa\_tx\_xua\_as@{ipa\_tx\_xua\_as}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ipa\_tx\_xua\_as()}
{\footnotesize\ttfamily int ipa\+\_\+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 IPA \char`\"{}\+Application Server\char`\"{}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em as} & Application Server through which to send {\itshape 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}
This function takes ownership of xua msg passed to it. 

References \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, and \textbf{ xua\+\_\+as\+\_\+transmit\+\_\+msg()}.



Referenced by \textbf{ hmrt\+\_\+message\+\_\+for\+\_\+routing()}.

\mbox{\label{xua__internal_8h_a446729f54e5da95d3eefc9ae04248cdf}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_decode\_notify@{m3ua\_decode\_notify}}
\index{m3ua\_decode\_notify@{m3ua\_decode\_notify}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_decode\_notify()}
{\footnotesize\ttfamily int m3ua\+\_\+decode\+\_\+notify (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$}]{npar,  }\item[{void $\ast$}]{ctx,  }\item[{const struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id}, \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ASP\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+STATUS}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ASP\+\_\+\+ID}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ NULL}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx\+\_\+count}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}.

\mbox{\label{xua__internal_8h_ac1a04dfbafd50c05516ed474fd6337f3}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_dh\_to\_xfer\_param@{m3ua\_dh\_to\_xfer\_param}}
\index{m3ua\_dh\_to\_xfer\_param@{m3ua\_dh\_to\_xfer\_param}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_dh\_to\_xfer\_param()}
{\footnotesize\ttfamily void m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$}]{param,  }\item[{const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{mdh }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::mp}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::ni}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::si}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, and \textbf{ m3ua\+\_\+data\+\_\+hdr\+::sls}.



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

\mbox{\label{xua__internal_8h_a975de21b0ab355435bd1581b61488112}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_encode\_notify@{m3ua\_encode\_notify}}
\index{m3ua\_encode\_notify@{m3ua\_encode\_notify}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_encode\_notify()}
{\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+encode\+\_\+notify (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$}]{npar }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ASP\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+STATUS}, \textbf{ M3\+UA\+\_\+\+MGMT\+\_\+\+NTFY}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ M3\+UA\+\_\+\+NOTIFY}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ASP\+\_\+\+ID}, \textbf{ NOTIFY\+\_\+\+PAR\+\_\+\+P\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx\+\_\+count}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32\+\_\+data()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ encode\+\_\+notify()}.

\mbox{\label{xua__internal_8h_a8bc0dfc719354cd380bb206d25c33c6a}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_hmdc\_rx\_from\_l2@{m3ua\_hmdc\_rx\_from\_l2}}
\index{m3ua\_hmdc\_rx\_from\_l2@{m3ua\_hmdc\_rx\_from\_l2}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_hmdc\_rx\_from\_l2()}
{\footnotesize\ttfamily int m3ua\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ dpc}, \textbf{ hmdt\+\_\+message\+\_\+for\+\_\+distribution()}, \textbf{ hmrt\+\_\+message\+\_\+for\+\_\+routing()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ LOGSS7}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local()}, and \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}.



Referenced by \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+sccp()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, and \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+mtp\+\_\+xfer\+\_\+req()}.

\mbox{\label{xua__internal_8h_abc7b70b4bd07197a65948096afeb0584}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_msgb\_alloc@{m3ua\_msgb\_alloc}}
\index{m3ua\_msgb\_alloc@{m3ua\_msgb\_alloc}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_msgb\_alloc()}
{\footnotesize\ttfamily struct msgb $\ast$ m3ua\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+HEADROOM}, and \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+SIZE}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req()}, \textbf{ m3ua\+\_\+to\+\_\+xfer\+\_\+ind()}, \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req()}, and \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req()}.

\mbox{\label{xua__internal_8h_a683756f0e663b6712adae22f76caec83}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_ntfy\_info\_name@{m3ua\_ntfy\_info\_name}}
\index{m3ua\_ntfy\_info\_name@{m3ua\_ntfy\_info\_name}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_ntfy\_info\_name()}
{\footnotesize\ttfamily const char $\ast$ m3ua\+\_\+ntfy\+\_\+info\+\_\+name (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{ntfy\+\_\+status\+\_\+type,  }\item[{uint16\+\_\+t}]{ntfy\+\_\+status\+\_\+info }\end{DoxyParamCaption})}



References \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+T\+\_\+\+OTHER}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+T\+\_\+\+STATCHG}, \textbf{ m3ua\+\_\+ntfy\+\_\+other\+\_\+names}, and \textbf{ m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names}.



Referenced by \textbf{ as\+\_\+notify\+\_\+all\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ tx\+\_\+notify()}.

\mbox{\label{xua__internal_8h_a3dd5abc2f138a16910f323c9e52427e6}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_rx\_msg@{m3ua\_rx\_msg}}
\index{m3ua\_rx\_msg@{m3ua\_rx\_msg}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_rx\_msg()}
{\footnotesize\ttfamily int m3ua\+\_\+rx\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})}



process M3\+UA message received from socket 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em asp} & Application Server Process receiving msg \\
\hline
\mbox{\texttt{ in}}  & {\em msg} & received message buffer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ xua\+\_\+common\+\_\+hdr\+::data}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+STREAM\+\_\+\+ID}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVALID\+\_\+\+VERSION}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+MISSING\+\_\+\+PARAM}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+PARAM\+\_\+\+FIELD\+\_\+\+ERR}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+UNSUPP\+\_\+\+MSG\+\_\+\+CLASS}, \textbf{ m3ua\+\_\+gen\+\_\+error\+\_\+msg()}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+ASPSM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+ASPTM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+MGMT}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+RKM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ m3ua\+\_\+rx\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm()}, \textbf{ m3ua\+\_\+rx\+\_\+snm()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ NULL}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ xua\+\_\+dialect\+\_\+check\+\_\+all\+\_\+mand\+\_\+ies()}, \textbf{ xua\+\_\+dialect\+\_\+m3ua}, \textbf{ xua\+\_\+from\+\_\+msg()}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ ss7\+\_\+asp\+\_\+m3ua\+\_\+tcp\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}.

\mbox{\label{xua__internal_8h_ab1e4c28a5dd577eb9d4ce2d32edf76d2}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_rx\_rkm@{m3ua\_rx\_rkm}}
\index{m3ua\_rx\_rkm@{m3ua\_rx\_rkm}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_rx\_rkm()}
{\footnotesize\ttfamily int m3ua\+\_\+rx\+\_\+rkm (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+REQ}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+DEREG\+\_\+\+RSP}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+REQ}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+RSP}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+rsp()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+rsp()}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+msg()}.

\mbox{\label{xua__internal_8h_a1aea845c618d55b1ed794922b38fd7c2}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_to\_msg@{m3ua\_to\_msg}}
\index{m3ua\_to\_msg@{m3ua\_to\_msg}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_to\_msg()}
{\footnotesize\ttfamily struct msgb $\ast$ m3ua\+\_\+to\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+PPID}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ NULL}, and \textbf{ xua\+\_\+to\+\_\+msg()}.



Referenced by \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, and \textbf{ xua\+\_\+as\+\_\+encode\+\_\+msg()}.

\mbox{\label{xua__internal_8h_a24f194897e3f4c4afcb473a08c65b5a3}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_to\_xfer\_ind@{m3ua\_to\_xfer\_ind}}
\index{m3ua\_to\_xfer\_ind@{m3ua\_to\_xfer\_ind}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_to\_xfer\_ind()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+mtp\+\_\+prim} $\ast$ m3ua\+\_\+to\+\_\+xfer\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param()}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ m3ua\+\_\+msgb\+\_\+alloc()}, \textbf{ MTP\+\_\+\+SAP\+\_\+\+USER}, \textbf{ NULL}, \textbf{ osmo\+\_\+mtp\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+MTP\+\_\+\+PRIM\+\_\+\+TRANSFER}, \textbf{ osmo\+\_\+mtp\+\_\+prim\+::transfer}, \textbf{ osmo\+\_\+mtp\+\_\+prim\+::u}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}.



Referenced by \textbf{ deliver\+\_\+to\+\_\+mtp\+\_\+user()}.

\mbox{\label{xua__internal_8h_a1c5313831d11ce7e46d3187313de900f}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_tx\_dupu@{m3ua\_tx\_dupu}}
\index{m3ua\_tx\_dupu@{m3ua\_tx\_dupu}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_tx\_dupu()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+dupu (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{uint32\+\_\+t}]{dpc,  }\item[{uint16\+\_\+t}]{user,  }\item[{uint16\+\_\+t}]{cause,  }\item[{const char $\ast$}]{info\+\_\+str }\end{DoxyParamCaption})}



Transmit SSNM DUPU message indicating user unavailability. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em asp} & ASP through which to transmit message. Must be ACTIVE. \\
\hline
\mbox{\texttt{ in}}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\texttt{ in}}  & {\em dpc} & affected point code \\
\hline
\mbox{\texttt{ in}}  & {\em user} & the user (SI) that is unavailable \\
\hline
\mbox{\texttt{ in}}  & {\em cause} & the cause of the user unavailability \\
\hline
\mbox{\texttt{ in}}  & {\em info\+\_\+string} & optional information string (can be NULL). \\
\hline
\end{DoxyParams}


References \textbf{ dpc}, \textbf{ m3ua\+\_\+encode\+\_\+dupu()}, and \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}.



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

\mbox{\label{xua__internal_8h_a23b023b06ccad4da2a92be978a9f23a3}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_tx\_snm\_available@{m3ua\_tx\_snm\_available}}
\index{m3ua\_tx\_snm\_available@{m3ua\_tx\_snm\_available}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_tx\_snm\_available()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+snm\+\_\+available (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const char $\ast$}]{info\+\_\+string,  }\item[{bool}]{available }\end{DoxyParamCaption})}



Transmit SSNM DUNA/\+DAVA message indicating [un]availability of certain point code[s]. 


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


References \textbf{ m3ua\+\_\+encode\+\_\+dava()}, \textbf{ m3ua\+\_\+encode\+\_\+duna()}, and \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}.



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

\mbox{\label{xua__internal_8h_ada55bfcb1a816dd0ef97a9eb8ef3030f}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_tx\_snm\_congestion@{m3ua\_tx\_snm\_congestion}}
\index{m3ua\_tx\_snm\_congestion@{m3ua\_tx\_snm\_congestion}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_tx\_snm\_congestion()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+snm\+\_\+congestion (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const uint32\+\_\+t $\ast$}]{concerned\+\_\+dpc,  }\item[{const uint8\+\_\+t $\ast$}]{cong\+\_\+level,  }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})}



Transmit SSNM SCON message indicating congestion. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em asp} & ASP through which to transmit message. Must be ACTIVE. \\
\hline
\mbox{\texttt{ in}}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\texttt{ in}}  & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\
\hline
\mbox{\texttt{ in}}  & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\
\hline
\mbox{\texttt{ in}}  & {\em concerned\+\_\+dpc} & optional concerned DPC (can be NULL) \\
\hline
\mbox{\texttt{ in}}  & {\em cong\+\_\+level} & optional congestion level (can be NULL) \\
\hline
\mbox{\texttt{ in}}  & {\em info\+\_\+string} & optional information string (can be NULL). \\
\hline
\end{DoxyParams}


References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+CONC\+\_\+\+DEST}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+CONG\+\_\+\+IND}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+SNM\+\_\+\+SCON}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ M3\+UA\+\_\+\+VERSION}, \textbf{ xua\+\_\+common\+\_\+hdr\+::version}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



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

\mbox{\label{xua__internal_8h_ab23c4732fafe1e642ee994119c787a16}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_tx\_snm\_daud@{m3ua\_tx\_snm\_daud}}
\index{m3ua\_tx\_snm\_daud@{m3ua\_tx\_snm\_daud}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_tx\_snm\_daud()}
{\footnotesize\ttfamily void m3ua\+\_\+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 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 info\+\_\+string} & optional information string (can be NULL). \\
\hline
\end{DoxyParams}


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



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

\mbox{\label{xua__internal_8h_a2d947fe12b0e169755b8b4f2951b721e}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_tx\_xua\_as@{m3ua\_tx\_xua\_as}}
\index{m3ua\_tx\_xua\_as@{m3ua\_tx\_xua\_as}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_tx\_xua\_as()}
{\footnotesize\ttfamily int m3ua\+\_\+tx\+\_\+xua\+\_\+as (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



Send a given x\+UA message via a given M3\+UA Application Server. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em as} & Application Server through which to send xua \\
\hline
\mbox{\texttt{ in}}  & {\em xua} & x\+UA message to be sent \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error
\end{DoxyReturn}
This function takes ownership of xua msg passed to it. 

References \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, \textbf{ XUA\+\_\+\+AS\+\_\+\+E\+\_\+\+TRANSFER\+\_\+\+REQ}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ hmrt\+\_\+message\+\_\+for\+\_\+routing()}.

\mbox{\label{xua__internal_8h_a1e63cc510ba1ebc335a86bd371bcb4aa}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_xfer\_from\_data@{m3ua\_xfer\_from\_data}}
\index{m3ua\_xfer\_from\_data@{m3ua\_xfer\_from\_data}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_xfer\_from\_data()}
{\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg} $\ast$ m3ua\+\_\+xfer\+\_\+from\+\_\+data (\begin{DoxyParamCaption}\item[{const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{data\+\_\+hdr,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{unsigned int}]{data\+\_\+len }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ data}, \textbf{ xua\+\_\+msg\+\_\+part\+::entry}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+msg\+::headers}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ xua\+\_\+msg\+\_\+part\+::tag}, \textbf{ XUA\+\_\+\+HDR}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ ipa\+\_\+rx\+\_\+msg\+\_\+sccp()}, and \textbf{ mtp\+\_\+prim\+\_\+to\+\_\+m3ua()}.

\mbox{\label{xua__internal_8h_a62fec3de2da183f6a7d87e9e84eadbe8}} 
\index{xua\_internal.h@{xua\_internal.h}!mtp\_xfer\_param\_to\_m3ua\_dh@{mtp\_xfer\_param\_to\_m3ua\_dh}}
\index{mtp\_xfer\_param\_to\_m3ua\_dh@{mtp\_xfer\_param\_to\_m3ua\_dh}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{mtp\_xfer\_param\_to\_m3ua\_dh()}
{\footnotesize\ttfamily void mtp\+\_\+xfer\+\_\+param\+\_\+to\+\_\+m3ua\+\_\+dh (\begin{DoxyParamCaption}\item[{struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{mdh,  }\item[{const struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$}]{param }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::dpc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::mp}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::ni}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::opc}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::si}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, and \textbf{ m3ua\+\_\+data\+\_\+hdr\+::sls}.



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

\mbox{\label{xua__internal_8h_a3f5e0d75271a5a2fda1821e9c9a720d9}} 
\index{xua\_internal.h@{xua\_internal.h}!osmo\_isup\_party\_parse@{osmo\_isup\_party\_parse}}
\index{osmo\_isup\_party\_parse@{osmo\_isup\_party\_parse}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{osmo\_isup\_party\_parse()}
{\footnotesize\ttfamily int osmo\+\_\+isup\+\_\+party\+\_\+parse (\begin{DoxyParamCaption}\item[{char $\ast$}]{out\+\_\+digits,  }\item[{const uint8\+\_\+t $\ast$}]{in,  }\item[{unsigned int}]{in\+\_\+num\+\_\+bytes,  }\item[{bool}]{odd }\end{DoxyParamCaption})}



Parse ISUP style address of BCD digets. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out\+\_\+digits} & user-\/allocated buffer for ASCII digits \\
\hline
\mbox{\texttt{ in}}  & {\em in} & BCD-\/encoded digits \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+num\+\_\+bytes} & Size of in in bytes \\
\hline
\mbox{\texttt{ in}}  & {\em odd} & Odd (true) or even (false) number of digits \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of digits generated 
\end{DoxyReturn}


Referenced by \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+parse()}.

\mbox{\label{xua__internal_8h_ad9945ae60f1cdc481da3b70e15a50adf}} 
\index{xua\_internal.h@{xua\_internal.h}!osmo\_sccp\_addr\_encode@{osmo\_sccp\_addr\_encode}}
\index{osmo\_sccp\_addr\_encode@{osmo\_sccp\_addr\_encode}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{osmo\_sccp\_addr\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+encode (\begin{DoxyParamCaption}\item[{struct msgb $\ast$}]{msg,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{in }\end{DoxyParamCaption})}



encode a SCCP address from parsed format to wire format 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & message buffer to which address is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em in} & data structure describing SCCP address \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes written to msg 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+gt\+::digits}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::gt}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::gti}, \textbf{ msgb\+\_\+put\+\_\+u16le()}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::nai}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::npi}, \textbf{ osmo\+\_\+isup\+\_\+party\+\_\+encode()}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+NAI\+\_\+\+ONLY}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+NO\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+NPL\+\_\+\+ENC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+NPL\+\_\+\+ENC\+\_\+\+NAI}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+ONLY}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT}, \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}, and \textbf{ osmo\+\_\+sccp\+\_\+gt\+::tt}.



Referenced by \textbf{ sua\+\_\+addr\+\_\+to\+\_\+sccp()}.

\mbox{\label{xua__internal_8h_ade18fb9db8c9b52bc2ffc22af64d1d08}} 
\index{xua\_internal.h@{xua\_internal.h}!osmo\_sccp\_addr\_parse@{osmo\_sccp\_addr\_parse}}
\index{osmo\_sccp\_addr\_parse@{osmo\_sccp\_addr\_parse}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{osmo\_sccp\_addr\_parse()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+parse (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{out,  }\item[{const uint8\+\_\+t $\ast$}]{addr,  }\item[{unsigned int}]{addrlen }\end{DoxyParamCaption})}



Parse wire-\/encoded SCCP address into \doxyref{osmo\+\_\+sccp\+\_\+addr}{p.}{structosmo__sccp__addr}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & user-\/allocated output data structure \\
\hline
\mbox{\texttt{ in}}  & {\em addr} & wire-\/encoded SCCP address \\
\hline
\mbox{\texttt{ in}}  & {\em addrlen} & Size of addr in bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success, negative on error According to Q.\+713/3.4 and RFC3868/3.\+10.\+2 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+gt\+::digits}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::gt}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::gti}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::nai}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::npi}, \textbf{ osmo\+\_\+isup\+\_\+party\+\_\+parse()}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+NAI\+\_\+\+ONLY}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+NO\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+NPL\+\_\+\+ENC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+NPL\+\_\+\+ENC\+\_\+\+NAI}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+ONLY}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT}, \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}, and \textbf{ osmo\+\_\+sccp\+\_\+gt\+::tt}.



Referenced by \textbf{ sccp\+\_\+addr\+\_\+to\+\_\+sua()}.

\mbox{\label{xua__internal_8h_aa2abebd0d9bde73c25cda86c785efe9a}} 
\index{xua\_internal.h@{xua\_internal.h}!osmo\_sccp\_to\_xua@{osmo\_sccp\_to\_xua}}
\index{osmo\_sccp\_to\_xua@{osmo\_sccp\_to\_xua}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{osmo\_sccp\_to\_xua()}
{\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg} $\ast$ osmo\+\_\+sccp\+\_\+to\+\_\+xua (\begin{DoxyParamCaption}\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})}



convert SCCP message to a SUA message 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em msg} & message buffer holding SCCP message at l2h \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated x\+UA message on success; NULL on error 
\end{DoxyReturn}


References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ NULL}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+cc()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+cr()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+cref()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+dt1()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+err()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+it()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+ludt()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+ludts()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+rlc()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+rlsd()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+udt()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+udts()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+xudt()}, \textbf{ sccp\+\_\+to\+\_\+xua\+\_\+xudts()}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDR}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \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\+\_\+\+MSGC\+\_\+\+CL}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+alloc()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ mtp\+\_\+user\+\_\+prim\+\_\+cb()}, and \textbf{ patch\+\_\+sccp\+\_\+with\+\_\+pc()}.

\mbox{\label{xua__internal_8h_ab1f91915d46cc987f3dbd839b544e3ae}} 
\index{xua\_internal.h@{xua\_internal.h}!osmo\_sua\_to\_sccp@{osmo\_sua\_to\_sccp}}
\index{osmo\_sua\_to\_sccp@{osmo\_sua\_to\_sccp}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{osmo\_sua\_to\_sccp()}
{\footnotesize\ttfamily struct msgb $\ast$ osmo\+\_\+sua\+\_\+to\+\_\+sccp (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



convert parsed SUA message to SCCP message 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em xua} & parsed SUA message to be converted \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb containing encoded SCCP message 
\end{DoxyReturn}


References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ NULL}, \textbf{ sccp\+\_\+msgb\+\_\+alloc()}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDR}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \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\+\_\+\+MSGC\+\_\+\+CL}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+cc()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+cr()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+cref()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+dt1()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+err()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+it()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+rlc()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+rlsd()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+udt()}, \textbf{ sua\+\_\+to\+\_\+sccp\+\_\+udts()}, \textbf{ xua\+\_\+dialect\+\_\+sua}, and \textbf{ xua\+\_\+hdr\+\_\+dump()}.



Referenced by \textbf{ patch\+\_\+sccp\+\_\+with\+\_\+pc()}, and \textbf{ sua2sccp\+\_\+tx\+\_\+m3ua()}.

\mbox{\label{xua__internal_8h_a59acf4035919b1db42dd12ad57f780c6}} 
\index{xua\_internal.h@{xua\_internal.h}!ss7\_asp\_lm\_timer\_name@{ss7\_asp\_lm\_timer\_name}}
\index{ss7\_asp\_lm\_timer\_name@{ss7\_asp\_lm\_timer\_name}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ss7\_asp\_lm\_timer\_name()}
{\footnotesize\ttfamily static const char $\ast$ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names}.

\mbox{\label{xua__internal_8h_a5985c0ec7dc547dd06de3f9be8b8be9b}} 
\index{xua\_internal.h@{xua\_internal.h}!ss7\_asp\_rx\_unknown@{ss7\_asp\_rx\_unknown}}
\index{ss7\_asp\_rx\_unknown@{ss7\_asp\_rx\_unknown}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ss7\_asp\_rx\_unknown()}
{\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+rx\+\_\+unknown (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{int}]{ppid\+\_\+mux,  }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ g\+\_\+osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb}, \textbf{ LOGPASP}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, and \textbf{ SS7\+\_\+\+ASP\+\_\+\+CTR\+\_\+\+PKT\+\_\+\+RX\+\_\+\+UNKNOWN}.



Referenced by \textbf{ ipa\+\_\+rx\+\_\+msg()}, \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}.

\mbox{\label{xua__internal_8h_a18968e95f6331dc53432486aafea2908}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_addr\_parse@{sua\_addr\_parse}}
\index{sua\_addr\_parse@{sua\_addr\_parse}!xua\_internal.h@{xua\_internal.h}}
\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\+\_\+mtp\+\_\+transfer\+\_\+req\+\_\+xua()}, \textbf{ gen\+\_\+ret\+\_\+msg()}, \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()}, and \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}.

\mbox{\label{xua__internal_8h_a7de76938697dd304626a142441ed079d}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_addr\_parse\_part@{sua\_addr\_parse\_part}}
\index{sua\_addr\_parse\_part@{sua\_addr\_parse\_part}!xua\_internal.h@{xua\_internal.h}}
\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{xua__internal_8h_add0364dcfc7833a3662d0accfcf4aff6}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_parse\_gt@{sua\_parse\_gt}}
\index{sua\_parse\_gt@{sua\_parse\_gt}!xua\_internal.h@{xua\_internal.h}}
\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{xua__internal_8h_a5aaa70aafac5abbc003a1a27dc05ea56}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_rx\_msg@{sua\_rx\_msg}}
\index{sua\_rx\_msg@{sua\_rx\_msg}!xua\_internal.h@{xua\_internal.h}}
\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{ 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{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}.

\mbox{\label{xua__internal_8h_aefcb707da3aed3aa9f7b86aedae01353}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_tx\_dupu@{sua\_tx\_dupu}}
\index{sua\_tx\_dupu@{sua\_tx\_dupu}!xua\_internal.h@{xua\_internal.h}}
\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{xua__internal_8h_a2cde7522ac8680baeb866a1af378ed02}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_tx\_snm\_available@{sua\_tx\_snm\_available}}
\index{sua\_tx\_snm\_available@{sua\_tx\_snm\_available}!xua\_internal.h@{xua\_internal.h}}
\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{xua__internal_8h_a789d06732c5551dc33ad1b0ef35edc72}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_tx\_snm\_congestion@{sua\_tx\_snm\_congestion}}
\index{sua\_tx\_snm\_congestion@{sua\_tx\_snm\_congestion}!xua\_internal.h@{xua\_internal.h}}
\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{xua__internal_8h_a0fe98cfacf251ef66b65823bcb7611f6}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_tx\_snm\_daud@{sua\_tx\_snm\_daud}}
\index{sua\_tx\_snm\_daud@{sua\_tx\_snm\_daud}!xua\_internal.h@{xua\_internal.h}}
\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{xua__internal_8h_a67d65e0238a6e2d679e6c72fab31b395}} 
\index{xua\_internal.h@{xua\_internal.h}!sua\_tx\_xua\_as@{sua\_tx\_xua\_as}}
\index{sua\_tx\_xua\_as@{sua\_tx\_xua\_as}!xua\_internal.h@{xua\_internal.h}}
\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{xua__internal_8h_a168232152dc1bf36e3b8b071ef1a68e9}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_as\_transmit\_msg@{xua\_as\_transmit\_msg}}
\index{xua\_as\_transmit\_msg@{xua\_as\_transmit\_msg}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_as\_transmit\_msg()}
{\footnotesize\ttfamily int xua\+\_\+as\+\_\+transmit\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ \+\_\+\+NUM\+\_\+\+OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+TMOD}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::mode}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ NULL}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+AS\+\_\+\+TMOD\+\_\+\+BCAST}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+AS\+\_\+\+TMOD\+\_\+\+LOADSHARE}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+AS\+\_\+\+TMOD\+\_\+\+OVERRIDE}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+AS\+\_\+\+TMOD\+\_\+\+ROUNDROBIN}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send()}, \textbf{ ss7\+\_\+as\+\_\+select\+\_\+asp()}, \textbf{ xua\+\_\+as\+\_\+encode\+\_\+msg()}, \textbf{ xua\+\_\+as\+\_\+transmit\+\_\+msg\+\_\+broadcast()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ ipa\+\_\+tx\+\_\+xua\+\_\+as()}, \textbf{ xua\+\_\+as\+\_\+fsm\+\_\+active()}, and \textbf{ xua\+\_\+as\+\_\+fsm\+\_\+pending()}.

\mbox{\label{xua__internal_8h_a65ed2433ab5f6146c201c56823b96509}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_asp\_send\_xlm\_prim@{xua\_asp\_send\_xlm\_prim}}
\index{xua\_asp\_send\_xlm\_prim@{xua\_asp\_send\_xlm\_prim}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_asp\_send\_xlm\_prim()}
{\footnotesize\ttfamily void xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct \textbf{ osmo\+\_\+xlm\+\_\+prim} $\ast$}]{prim }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::lm}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+name()}, and \textbf{ osmo\+\_\+xua\+\_\+layer\+\_\+manager\+::prim\+\_\+cb}.



Referenced by \textbf{ handle\+\_\+rkey\+\_\+dereg\+\_\+resp()}, \textbf{ handle\+\_\+rkey\+\_\+reg\+\_\+resp()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple()}.

\mbox{\label{xua__internal_8h_ae2c4024524aae252f01907024a2560c0}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_asp\_send\_xlm\_prim\_simple@{xua\_asp\_send\_xlm\_prim\_simple}}
\index{xua\_asp\_send\_xlm\_prim\_simple@{xua\_asp\_send\_xlm\_prim\_simple}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_asp\_send\_xlm\_prim\_simple()}
{\footnotesize\ttfamily void xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{enum \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+type}}]{prim\+\_\+type,  }\item[{enum osmo\+\_\+prim\+\_\+operation}]{op }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim()}, and \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc()}.



Referenced by \textbf{ send\+\_\+xlm\+\_\+prim\+\_\+simple()}, \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+closed\+\_\+cb()}, \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, \textbf{ xua\+\_\+accept\+\_\+cb()}, \textbf{ xua\+\_\+cli\+\_\+close()}, \textbf{ xua\+\_\+cli\+\_\+connect\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}.

\mbox{\label{xua__internal_8h_a1c94e3d373d31d7d27cd9e6784f25619}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_find\_as\_for\_asp@{xua\_find\_as\_for\_asp}}
\index{xua\_find\_as\_for\_asp@{xua\_find\_as\_for\_asp}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_find\_as\_for\_asp()}
{\footnotesize\ttfamily int xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$$\ast$}]{as,  }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const struct \textbf{ xua\+\_\+msg\+\_\+part} $\ast$}]{rctx\+\_\+ie }\end{DoxyParamCaption})}



Find the AS for given ASP + optional routing context IE. 

if rctx\+\_\+ie == NULL, we assume that this ASP is only part of a single AS; if rctx\+\_\+ie is given, then we look-\/up the ASP based on the routing context, and verify that this ASP is part of it. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em as} & caller-\/provided address-\/of-\/pointer to store the found AS \\
\hline
\mbox{\texttt{ in}}  & {\em asp} & ASP for which we want to look-\/up the AS \\
\hline
\mbox{\texttt{ in}}  & {\em rctx\+\_\+ie} & routing context IE (may be NULL) to use for look-\/up \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success; \{M3\+UA,SUA\}\+\_\+\+ERR\+\_\+$\ast$ code in case of error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ find\+\_\+single\+\_\+as\+\_\+for\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+INVAL\+\_\+\+ROUT\+\_\+\+CTX}, \textbf{ M3\+UA\+\_\+\+ERR\+\_\+\+NO\+\_\+\+CONFGD\+\_\+\+AS\+\_\+\+FOR\+\_\+\+ASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys()}, and \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+sg()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, \textbf{ sua\+\_\+rx\+\_\+cl()}, \textbf{ sua\+\_\+rx\+\_\+co()}, and \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+asp()}.

\mbox{\label{xua__internal_8h_a4f931cf9215d8295d2f7fdc86328ceb9}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_rkm\_cleanup\_dyn\_as\_for\_asp@{xua\_rkm\_cleanup\_dyn\_as\_for\_asp}}
\index{xua\_rkm\_cleanup\_dyn\_as\_for\_asp@{xua\_rkm\_cleanup\_dyn\_as\_for\_asp}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_rkm\_cleanup\_dyn\_as\_for\_asp()}
{\footnotesize\ttfamily void xua\+\_\+rkm\+\_\+cleanup\+\_\+dyn\+\_\+as\+\_\+for\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+count\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+destroy()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp()}, and \textbf{ osmo\+\_\+ss7\+\_\+as\+::rkm\+\_\+dyn\+\_\+allocated}.



Referenced by \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+closed\+\_\+cb()}.

\mbox{\label{xua__internal_8h_ab0a13bea02506a7c10cbc09eb5365cf0}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_snm\_pc\_available@{xua\_snm\_pc\_available}}
\index{xua\_snm\_pc\_available@{xua\_snm\_pc\_available}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_snm\_pc\_available()}
{\footnotesize\ttfamily void xua\+\_\+snm\+\_\+pc\+\_\+available (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const char $\ast$}]{info\+\_\+str,  }\item[{bool}]{available }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+active()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+ROLE\+\_\+\+SG}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+MAX\+\_\+\+RCTX\+\_\+\+COUNT}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::role}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, \textbf{ ss7\+\_\+asp\+\_\+get\+\_\+all\+\_\+rctx\+\_\+be()}, \textbf{ xua\+\_\+snm\+\_\+pc\+\_\+available\+\_\+to\+\_\+sccp()}, \textbf{ xua\+\_\+snm\+\_\+srm\+\_\+pc\+\_\+available()}, and \textbf{ xua\+\_\+tx\+\_\+snm\+\_\+available()}.



Referenced by \textbf{ as\+\_\+snm\+\_\+pc\+\_\+available()}, \textbf{ as\+\_\+snm\+\_\+pc\+\_\+unavailable()}, \textbf{ xua\+\_\+as\+\_\+fsm\+\_\+onenter()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dava()}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+duna()}.

\mbox{\label{xua__internal_8h_af0a8709b1ca21e41a1c9d0d89fa5f041}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_snm\_rx\_daud@{xua\_snm\_rx\_daud}}
\index{xua\_snm\_rx\_daud@{xua\_snm\_rx\_daud}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_snm\_rx\_daud()}
{\footnotesize\ttfamily void xua\+\_\+snm\+\_\+rx\+\_\+daud (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ format\+\_\+affected\+\_\+pcs\+\_\+c()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+MAX\+\_\+\+RCTX\+\_\+\+COUNT}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system}, \textbf{ ss7\+\_\+asp\+\_\+get\+\_\+all\+\_\+rctx\+\_\+be()}, \textbf{ ss7\+\_\+route\+\_\+table\+\_\+dpc\+\_\+is\+\_\+accessible()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+str()}, and \textbf{ xua\+\_\+tx\+\_\+snm\+\_\+available()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+sg()}, \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+asp()}, and \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+sg()}.

\mbox{\label{xua__internal_8h_a4c96597e36bad63b9f666ca630fb7881}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_snm\_rx\_dava@{xua\_snm\_rx\_dava}}
\index{xua\_snm\_rx\_dava@{xua\_snm\_rx\_dava}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_snm\_rx\_dava()}
{\footnotesize\ttfamily void xua\+\_\+snm\+\_\+rx\+\_\+dava (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ format\+\_\+affected\+\_\+pcs\+\_\+c()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+ROLE\+\_\+\+ASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::role}, \textbf{ smi}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SMI}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SSN}, \textbf{ sua\+\_\+snm\+\_\+ssn\+\_\+available()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+str()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32p()}, \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+snm\+\_\+pc\+\_\+available()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp()}, and \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+asp()}.

\mbox{\label{xua__internal_8h_aea11cd352ca23f5fcb6a07d00deff86b}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_snm\_rx\_duna@{xua\_snm\_rx\_duna}}
\index{xua\_snm\_rx\_duna@{xua\_snm\_rx\_duna}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_snm\_rx\_duna()}
{\footnotesize\ttfamily void xua\+\_\+snm\+\_\+rx\+\_\+duna (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ format\+\_\+affected\+\_\+pcs\+\_\+c()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+ROLE\+\_\+\+ASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::role}, \textbf{ smi}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SMI}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SSN}, \textbf{ sua\+\_\+snm\+\_\+ssn\+\_\+available()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+str()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32p()}, \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+snm\+\_\+pc\+\_\+available()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp()}, and \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+asp()}.

\mbox{\label{xua__internal_8h_a13d36aa2ddc80797a8ec03ab6cdbebe8}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_snm\_rx\_dupu@{xua\_snm\_rx\_dupu}}
\index{xua\_snm\_rx\_dupu@{xua\_snm\_rx\_dupu}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_snm\_rx\_dupu()}
{\footnotesize\ttfamily void xua\+\_\+snm\+\_\+rx\+\_\+dupu (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+USER\+\_\+\+CAUSE}, \textbf{ mtp\+\_\+si\+\_\+vals}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+ROLE\+\_\+\+ASP}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::role}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+USER\+\_\+\+CAUSE}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+str()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+snm\+\_\+upu()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp()}, and \textbf{ sua\+\_\+rx\+\_\+snm\+\_\+asp()}.

\mbox{\label{xua__internal_8h_a0de81b0e4a0baa2f6eeca78ec84fc506}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_snm\_rx\_scon@{xua\_snm\_rx\_scon}}
\index{xua\_snm\_rx\_scon@{xua\_snm\_rx\_scon}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_snm\_rx\_scon()}
{\footnotesize\ttfamily void xua\+\_\+snm\+\_\+rx\+\_\+scon (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ format\+\_\+affected\+\_\+pcs\+\_\+c()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+AFFECTED\+\_\+\+PC}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+CONC\+\_\+\+DEST}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+CONG\+\_\+\+IND}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+INFO\+\_\+\+STRING}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+str()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32p()}, and \textbf{ xua\+\_\+snm\+\_\+scon()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+asp()}, and \textbf{ m3ua\+\_\+rx\+\_\+snm\+\_\+sg()}.

\mbox{\label{xua__internal_8h_ac4113fec76692fabc672d9c2185a6d6a}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_tx\_snm\_available@{xua\_tx\_snm\_available}}
\index{xua\_tx\_snm\_available@{xua\_tx\_snm\_available}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_tx\_snm\_available()}
{\footnotesize\ttfamily void xua\+\_\+tx\+\_\+snm\+\_\+available (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const char $\ast$}]{info\+\_\+str,  }\item[{bool}]{available }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+available()}, \textbf{ NULL}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, and \textbf{ sua\+\_\+tx\+\_\+snm\+\_\+available()}.



Referenced by \textbf{ as\+\_\+tx\+\_\+duna\+\_\+during\+\_\+asp\+\_\+act()}, \textbf{ xua\+\_\+snm\+\_\+pc\+\_\+available()}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+daud()}.

\mbox{\label{xua__internal_8h_aefa13ed1d2e243fad308d4ca6c7305b2}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_tx\_snm\_daud@{xua\_tx\_snm\_daud}}
\index{xua\_tx\_snm\_daud@{xua\_tx\_snm\_daud}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_tx\_snm\_daud()}
{\footnotesize\ttfamily void xua\+\_\+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 char $\ast$}]{info\+\_\+str }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+daud()}, \textbf{ NULL}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, and \textbf{ sua\+\_\+tx\+\_\+snm\+\_\+daud()}.



Referenced by \textbf{ tx\+\_\+daud\+\_\+pc()}, and \textbf{ xua\+\_\+asp\+\_\+tx\+\_\+snm\+\_\+daud\+\_\+address\+\_\+book()}.

\mbox{\label{xua__internal_8h_a1df6e93c5065b3a5441ff60d4cf5fb8c}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_xlm\_prim\_alloc@{xua\_xlm\_prim\_alloc}}
\index{xua\_xlm\_prim\_alloc@{xua\_xlm\_prim\_alloc}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_xlm\_prim\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+xlm\+\_\+prim} $\ast$ xua\+\_\+xlm\+\_\+prim\+\_\+alloc (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+type}}]{prim\+\_\+type,  }\item[{enum osmo\+\_\+prim\+\_\+operation}]{op }\end{DoxyParamCaption})}



References \textbf{ NULL}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::oph}, and \textbf{ XUA\+\_\+\+SAP\+\_\+\+LM}.



Referenced by \textbf{ handle\+\_\+rkey\+\_\+dereg\+\_\+resp()}, \textbf{ handle\+\_\+rkey\+\_\+reg\+\_\+resp()}, \textbf{ lm\+\_\+timer\+\_\+cb()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple()}.



\doxysubsection{Variable Documentation}
\mbox{\label{xua__internal_8h_a11c55fb5f6f56682c1754819b5a80eba}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_err\_names@{m3ua\_err\_names}}
\index{m3ua\_err\_names@{m3ua\_err\_names}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_err\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+err\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+err()}, \textbf{ peer\+\_\+send\+\_\+error()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+err()}.

\mbox{\label{xua__internal_8h_aa105aa577d0ecdda428b9352405069ae}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_msg\_class\_aspsm@{m3ua\_msg\_class\_aspsm}}
\index{m3ua\_msg\_class\_aspsm@{m3ua\_msg\_class\_aspsm}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_msg\_class\_aspsm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+aspsm\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{xua__internal_8h_aa223b2feb9001b4e618842ba7f9fe530}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_msg\_class\_asptm@{m3ua\_msg\_class\_asptm}}
\index{m3ua\_msg\_class\_asptm@{m3ua\_msg\_class\_asptm}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_msg\_class\_asptm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+asptm\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{xua__internal_8h_ac6878c5b045b1e7267b1a0b3afa364db}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_msg\_class\_mgmt@{m3ua\_msg\_class\_mgmt}}
\index{m3ua\_msg\_class\_mgmt@{m3ua\_msg\_class\_mgmt}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_msg\_class\_mgmt}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+mgmt\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{xua__internal_8h_a7cb679c8ca9d252dfa766ec7f2fba44c}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_msg\_class\_rkm@{m3ua\_msg\_class\_rkm}}
\index{m3ua\_msg\_class\_rkm@{m3ua\_msg\_class\_rkm}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_msg\_class\_rkm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+rkm\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{xua__internal_8h_a35e9ebf716b800839c00351acc2af5df}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_msg\_class\_snm@{m3ua\_msg\_class\_snm}}
\index{m3ua\_msg\_class\_snm@{m3ua\_msg\_class\_snm}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_msg\_class\_snm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+snm\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{xua__internal_8h_aa8ec421eaf92b35c2d0a1d70c9e69c6e}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_ntfy\_other\_names@{m3ua\_ntfy\_other\_names}}
\index{m3ua\_ntfy\_other\_names@{m3ua\_ntfy\_other\_names}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_ntfy\_other\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+other\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ m3ua\+\_\+ntfy\+\_\+info\+\_\+name()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}.

\mbox{\label{xua__internal_8h_a336c3d71f1928545474640e45077bc88}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_ntfy\_stchg\_names@{m3ua\_ntfy\_stchg\_names}}
\index{m3ua\_ntfy\_stchg\_names@{m3ua\_ntfy\_stchg\_names}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_ntfy\_stchg\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ m3ua\+\_\+ntfy\+\_\+info\+\_\+name()}, and \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}.

\mbox{\label{xua__internal_8h_a0ce1a526587558d83d657b761f3c62c4}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_ntfy\_type\_names@{m3ua\_ntfy\_type\_names}}
\index{m3ua\_ntfy\_type\_names@{m3ua\_ntfy\_type\_names}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_ntfy\_type\_names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+type\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ as\+\_\+notify\+\_\+all\+\_\+asp()}, \textbf{ m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, \textbf{ sua\+\_\+rx\+\_\+mgmt\+\_\+ntfy()}, and \textbf{ tx\+\_\+notify()}.

\mbox{\label{xua__internal_8h_a517b691866d2bf1ab9a24ac08ee120fc}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_rkm\_dereg\_status\_vals@{m3ua\_rkm\_dereg\_status\_vals}}
\index{m3ua\_rkm\_dereg\_status\_vals@{m3ua\_rkm\_dereg\_status\_vals}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_rkm\_dereg\_status\_vals}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+dereg\+\_\+status\+\_\+vals[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ handle\+\_\+rkey\+\_\+dereg\+\_\+resp()}.

\mbox{\label{xua__internal_8h_a0992bf5538b7f033f634174b1f01dfdd}} 
\index{xua\_internal.h@{xua\_internal.h}!m3ua\_rkm\_reg\_status\_vals@{m3ua\_rkm\_reg\_status\_vals}}
\index{m3ua\_rkm\_reg\_status\_vals@{m3ua\_rkm\_reg\_status\_vals}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{m3ua\_rkm\_reg\_status\_vals}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+reg\+\_\+status\+\_\+vals[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ handle\+\_\+rkey\+\_\+reg\+\_\+resp()}.

\mbox{\label{xua__internal_8h_a4fd3a2164089040052bb12b1363b18d7}} 
\index{xua\_internal.h@{xua\_internal.h}!ss7\_asp\_lm\_timer\_defaults@{ss7\_asp\_lm\_timer\_defaults}}
\index{ss7\_asp\_lm\_timer\_defaults@{ss7\_asp\_lm\_timer\_defaults}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ss7\_asp\_lm\_timer\_defaults}
{\footnotesize\ttfamily const struct osmo\+\_\+tdef ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults[\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN}]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gen\+\_\+asp\+\_\+timer\+\_\+lm\+\_\+cmd\+\_\+strs()}, and \textbf{ ss7\+\_\+asp\+\_\+alloc()}.

\mbox{\label{xua__internal_8h_a9978fc0fc7f45342d5df6d439ef0d4cc}} 
\index{xua\_internal.h@{xua\_internal.h}!ss7\_asp\_lm\_timer\_names@{ss7\_asp\_lm\_timer\_names}}
\index{ss7\_asp\_lm\_timer\_names@{ss7\_asp\_lm\_timer\_names}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{ss7\_asp\_lm\_timer\_names}
{\footnotesize\ttfamily const struct value\+\_\+string ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ gen\+\_\+asp\+\_\+timer\+\_\+lm\+\_\+cmd\+\_\+strs()}, \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+name()}, and \textbf{ write\+\_\+asp\+\_\+timers\+\_\+lm()}.

\mbox{\label{xua__internal_8h_a6440967ba56751bd7b6913c0bc6402e9}} 
\index{xua\_internal.h@{xua\_internal.h}!xua\_default\_lm\_fsm@{xua\_default\_lm\_fsm}}
\index{xua\_default\_lm\_fsm@{xua\_default\_lm\_fsm}!xua\_internal.h@{xua\_internal.h}}
\doxysubsubsection{xua\_default\_lm\_fsm}
{\footnotesize\ttfamily struct osmo\+\_\+fsm xua\+\_\+default\+\_\+lm\+\_\+fsm\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+use\+\_\+default\+\_\+lm()}, and \textbf{ osmo\+\_\+ss7\+\_\+init()}.

