\section{src/xua\+\_\+internal.h File Reference}
\label{xua__internal_8h}\index{src/xua\+\_\+internal.\+h@{src/xua\+\_\+internal.\+h}}
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/xua\+\_\+msg.\+h$>$}\newline
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ C\+S7\+\_\+\+S\+TR}~\char`\"{}I\+TU-\/T Signaling System 7\textbackslash{}n\char`\"{}
\item 
\#define \textbf{ P\+C\+\_\+\+S\+TR}~\char`\"{}Point Code\textbackslash{}n\char`\"{}
\item 
\#define \textbf{ I\+N\+S\+T\+\_\+\+S\+TR}~\char`\"{}An instance of the S\+S7 stack\textbackslash{}n\char`\"{}
\end{DoxyCompactItemize}
\subsection*{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 S\+C\+CP 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 S\+C\+CP 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 S\+UA Global Title according to R\+F\+C3868 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 S\+C\+CP message to a S\+UA 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 S\+UA message to S\+C\+CP 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 S\+UA 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 S\+UA 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 S\+S\+NM D\+U\+N\+A/\+D\+A\+VA 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 S\+S\+NM S\+C\+ON message indicating congestion. \end{DoxyCompactList}\item 
void \textbf{ sua\+\_\+tx\+\_\+dupu} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, uint32\+\_\+t \textbf{ dpc}, uint16\+\_\+t user, uint16\+\_\+t cause, const char $\ast$info\+\_\+str)
\begin{DoxyCompactList}\small\item\em Transmit S\+S\+NM D\+U\+PU 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 
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 S\+S\+NM D\+U\+N\+A/\+D\+A\+VA message indicating [un]availability of certain point code[s]. \end{DoxyCompactList}\item 
void \textbf{ m3ua\+\_\+tx\+\_\+snm\+\_\+congestion} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, const uint32\+\_\+t $\ast$aff\+\_\+pc, unsigned int num\+\_\+aff\+\_\+pc, const uint32\+\_\+t $\ast$concerned\+\_\+dpc, const uint8\+\_\+t $\ast$cong\+\_\+level, const char $\ast$info\+\_\+string)
\begin{DoxyCompactList}\small\item\em Transmit S\+S\+NM S\+C\+ON message indicating congestion. \end{DoxyCompactList}\item 
void \textbf{ m3ua\+\_\+tx\+\_\+dupu} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const uint32\+\_\+t $\ast$rctx, unsigned int num\+\_\+rctx, uint32\+\_\+t \textbf{ dpc}, uint16\+\_\+t user, uint16\+\_\+t cause, const char $\ast$info\+\_\+str)
\begin{DoxyCompactList}\small\item\em Transmit S\+S\+NM D\+U\+PU message indicating user unavailability. \end{DoxyCompactList}\item 
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 
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 
int \textbf{ xua\+\_\+as\+\_\+transmit\+\_\+msg} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct msgb $\ast$msg)
\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 A\+SP + optional routing context IE. \end{DoxyCompactList}\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 I\+PA \char`\"{}\+Application Server\char`\"{}. \end{DoxyCompactList}\item 
int \textbf{ ipa\+\_\+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 
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 I\+S\+UP style address of B\+CD 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 S\+C\+CP 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 S\+C\+CP 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}
\subsection*{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 
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}


\subsection{Macro Definition Documentation}
\mbox{\label{xua__internal_8h_ad788266d373ac76d807afcb62fbbe19d}} 
\index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!C\+S7\+\_\+\+S\+TR@{C\+S7\+\_\+\+S\+TR}}
\index{C\+S7\+\_\+\+S\+TR@{C\+S7\+\_\+\+S\+TR}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}}
\subsubsection{C\+S7\+\_\+\+S\+TR}
{\footnotesize\ttfamily \#define C\+S7\+\_\+\+S\+TR~\char`\"{}I\+TU-\/T Signaling System 7\textbackslash{}n\char`\"{}}

\mbox{\label{xua__internal_8h_a38728b918d70320ea5e7c07687f584c4}} 
\index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!I\+N\+S\+T\+\_\+\+S\+TR@{I\+N\+S\+T\+\_\+\+S\+TR}}
\index{I\+N\+S\+T\+\_\+\+S\+TR@{I\+N\+S\+T\+\_\+\+S\+TR}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}}
\subsubsection{I\+N\+S\+T\+\_\+\+S\+TR}
{\footnotesize\ttfamily \#define I\+N\+S\+T\+\_\+\+S\+TR~\char`\"{}An instance of the S\+S7 stack\textbackslash{}n\char`\"{}}

\mbox{\label{xua__internal_8h_ae1a8027d8962d120ef6c12ab6979bbc9}} 
\index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!P\+C\+\_\+\+S\+TR@{P\+C\+\_\+\+S\+TR}}
\index{P\+C\+\_\+\+S\+TR@{P\+C\+\_\+\+S\+TR}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}}
\subsubsection{P\+C\+\_\+\+S\+TR}
{\footnotesize\ttfamily \#define P\+C\+\_\+\+S\+TR~\char`\"{}Point Code\textbackslash{}n\char`\"{}}



\subsection{Function Documentation}
\mbox{\label{xua__internal_8h_aed43760964d48ed2ae9e15b1e63e7611}} 
\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}}
\subsubsection{data\+\_\+hdr\+\_\+from\+\_\+m3ua()}
{\footnotesize\ttfamily struct \textbf{ m3ua\+\_\+data\+\_\+hdr}$\ast$ data\+\_\+hdr\+\_\+from\+\_\+m3ua (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References xua\+\_\+msg\+\_\+part\+::dat, xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+P\+R\+O\+T\+\_\+\+D\+A\+TA, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+X\+F\+ER, M3\+U\+A\+\_\+\+X\+F\+E\+R\+\_\+\+D\+A\+TA, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type, and xua\+\_\+msg\+\_\+find\+\_\+tag().



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

\mbox{\label{xua__internal_8h_a6ad6f7f3cd8e3e21d09faa49c5919075}} 
\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}}
\subsubsection{ipa\+\_\+rx\+\_\+msg()}
{\footnotesize\ttfamily int ipa\+\_\+rx\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})}



process M3\+UA message received from socket 


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


References osmo\+\_\+ss7\+\_\+asp\+::cfg, ipa\+\_\+rx\+\_\+msg\+\_\+ccm(), ipa\+\_\+rx\+\_\+msg\+\_\+sccp(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+I\+PA, osmo\+\_\+ss7\+\_\+asp\+::proto, and ss7\+\_\+asp\+\_\+rx\+\_\+unknown().



Referenced by ipa\+\_\+cli\+\_\+read\+\_\+cb(), and ipa\+\_\+srv\+\_\+conn\+\_\+cb().

\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}}
\subsubsection{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 I\+PA \char`\"{}\+Application Server\char`\"{}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em as} & Application Server through which to send {\itshape xua} \\
\hline
\mbox{\tt in}  & {\em xua} & x\+UA message to be sent \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References osmo\+\_\+ss7\+\_\+as\+::cfg, xua\+\_\+msg\+\_\+part\+::dat, xua\+\_\+msg\+\_\+part\+::len, L\+O\+G\+P\+AS, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+P\+R\+O\+T\+\_\+\+D\+A\+TA, M\+T\+P\+\_\+\+S\+I\+\_\+\+S\+C\+CP, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+I\+PA, osmo\+\_\+ss7\+\_\+as\+::proto, m3ua\+\_\+data\+\_\+hdr\+::si, xua\+\_\+as\+\_\+transmit\+\_\+msg(), and xua\+\_\+msg\+\_\+find\+\_\+tag().



Referenced by 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}}
\subsubsection{m3ua\+\_\+decode\+\_\+notify()}
{\footnotesize\ttfamily int m3ua\+\_\+decode\+\_\+notify (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$}]{npar,  }\item[{void $\ast$}]{ctx,  }\item[{const struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id, xua\+\_\+msg\+\_\+part\+::dat, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string, xua\+\_\+msg\+\_\+part\+::len, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+S\+P\+\_\+\+ID, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+T\+A\+T\+US, N\+O\+T\+I\+F\+Y\+\_\+\+P\+A\+R\+\_\+\+P\+\_\+\+A\+S\+P\+\_\+\+ID, N\+O\+T\+I\+F\+Y\+\_\+\+P\+A\+R\+\_\+\+P\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type, xua\+\_\+msg\+\_\+find\+\_\+tag(), and xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32().



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

\mbox{\label{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}}
\subsubsection{m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param()}
{\footnotesize\ttfamily void m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$}]{param,  }\item[{const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{mdh }\end{DoxyParamCaption})}



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



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

\mbox{\label{xua__internal_8h_a7f3779c54a38b2e1f8c18a5ed541cb7f}} 
\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}}
\subsubsection{m3ua\+\_\+encode\+\_\+notify()}
{\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg}$\ast$ m3ua\+\_\+encode\+\_\+notify (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify} $\ast$}]{npar }\end{DoxyParamCaption})}



References osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::asp\+\_\+id, xua\+\_\+msg\+::hdr, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::info\+\_\+string, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+S\+P\+\_\+\+ID, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+T\+A\+T\+US, M3\+U\+A\+\_\+\+M\+G\+M\+T\+\_\+\+N\+T\+FY, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+M\+G\+MT, M3\+U\+A\+\_\+\+N\+O\+T\+I\+FY, N\+O\+T\+I\+F\+Y\+\_\+\+P\+A\+R\+\_\+\+P\+\_\+\+A\+S\+P\+\_\+\+ID, N\+O\+T\+I\+F\+Y\+\_\+\+P\+A\+R\+\_\+\+P\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::presence, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::route\+\_\+ctx, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info, osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+add\+\_\+data(), xua\+\_\+msg\+\_\+add\+\_\+u32(), and xua\+\_\+msg\+\_\+alloc().



Referenced by encode\+\_\+notify().

\mbox{\label{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}}
\subsubsection{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 osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc, dpc, hmdt\+\_\+message\+\_\+for\+\_\+distribution(), hmrt\+\_\+message\+\_\+for\+\_\+routing(), xua\+\_\+msg\+::mtp, osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local(), and osmo\+\_\+ss7\+\_\+pointcode\+\_\+print().



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

\mbox{\label{xua__internal_8h_a27c054af9499c82ee64945a48f16abf7}} 
\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}}
\subsubsection{m3ua\+\_\+msgb\+\_\+alloc()}
{\footnotesize\ttfamily struct msgb$\ast$ m3ua\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM, and M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE.



Referenced by m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req(), m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req(), m3ua\+\_\+to\+\_\+xfer\+\_\+ind(), xua\+\_\+cli\+\_\+read\+\_\+cb(), xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req(), xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req(), and xua\+\_\+srv\+\_\+conn\+\_\+cb().

\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}}
\subsubsection{m3ua\+\_\+rx\+\_\+msg()}
{\footnotesize\ttfamily int m3ua\+\_\+rx\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})}



process M3\+UA message received from socket 


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


References osmo\+\_\+ss7\+\_\+asp\+::cfg, xua\+\_\+common\+\_\+hdr\+::data, xua\+\_\+msg\+::hdr, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+\_\+\+S\+T\+R\+E\+A\+M\+\_\+\+ID, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+M\+I\+S\+S\+I\+N\+G\+\_\+\+P\+A\+R\+AM, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+P\+A\+R\+A\+M\+\_\+\+F\+I\+E\+L\+D\+\_\+\+E\+RR, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+C\+L\+A\+SS, m3ua\+\_\+gen\+\_\+error\+\_\+msg(), M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+A\+S\+P\+SM, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+A\+S\+P\+TM, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+M\+G\+MT, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+R\+KM, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+S\+NM, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+X\+F\+ER, m3ua\+\_\+rx\+\_\+asp(), m3ua\+\_\+rx\+\_\+mgmt(), m3ua\+\_\+rx\+\_\+rkm(), m3ua\+\_\+rx\+\_\+snm(), m3ua\+\_\+rx\+\_\+xfer(), m3ua\+\_\+tx\+\_\+xua\+\_\+asp(), M3\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+M3\+UA, osmo\+\_\+ss7\+\_\+asp\+::proto, xua\+\_\+common\+\_\+hdr\+::version, xua\+\_\+dialect\+\_\+check\+\_\+all\+\_\+mand\+\_\+ies(), xua\+\_\+from\+\_\+msg(), xua\+\_\+hdr\+\_\+dump(), and xua\+\_\+msg\+\_\+free().



Referenced by xua\+\_\+cli\+\_\+read\+\_\+cb(), and xua\+\_\+srv\+\_\+conn\+\_\+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}}
\subsubsection{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 xua\+\_\+msg\+::hdr, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+R\+K\+M\+\_\+\+D\+E\+R\+E\+G\+\_\+\+R\+EQ, M3\+U\+A\+\_\+\+R\+K\+M\+\_\+\+D\+E\+R\+E\+G\+\_\+\+R\+SP, M3\+U\+A\+\_\+\+R\+K\+M\+\_\+\+R\+E\+G\+\_\+\+R\+EQ, M3\+U\+A\+\_\+\+R\+K\+M\+\_\+\+R\+E\+G\+\_\+\+R\+SP, m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req(), m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+rsp(), m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req(), m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+rsp(), and xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type.



Referenced by m3ua\+\_\+rx\+\_\+msg().

\mbox{\label{xua__internal_8h_af932d2ab56e706ac86fe0bd6f2c3a4d7}} 
\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}}
\subsubsection{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 xua\+\_\+msg\+\_\+part\+::dat, xua\+\_\+msg\+\_\+part\+::len, m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param(), M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+P\+R\+O\+T\+\_\+\+D\+A\+TA, m3ua\+\_\+msgb\+\_\+alloc(), M\+T\+P\+\_\+\+S\+A\+P\+\_\+\+U\+S\+ER, osmo\+\_\+mtp\+\_\+prim\+::oph, O\+S\+M\+O\+\_\+\+M\+T\+P\+\_\+\+P\+R\+I\+M\+\_\+\+T\+R\+A\+N\+S\+F\+ER, osmo\+\_\+mtp\+\_\+prim\+::transfer, osmo\+\_\+mtp\+\_\+prim\+::u, and xua\+\_\+msg\+\_\+find\+\_\+tag().



Referenced by 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}}
\subsubsection{m3ua\+\_\+tx\+\_\+dupu()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+dupu (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{uint32\+\_\+t}]{dpc,  }\item[{uint16\+\_\+t}]{user,  }\item[{uint16\+\_\+t}]{cause,  }\item[{const char $\ast$}]{info\+\_\+str }\end{DoxyParamCaption})}



Transmit S\+S\+NM D\+U\+PU message indicating user unavailability. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em asp} & A\+SP through which to transmit message. Must be A\+C\+T\+I\+VE. \\
\hline
\mbox{\tt in}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\tt in}  & {\em dpc} & affected point code \\
\hline
\mbox{\tt in}  & {\em user} & the user (SI) that is unavailable \\
\hline
\mbox{\tt in}  & {\em cause} & the cause of the user unavailability \\
\hline
\mbox{\tt in}  & {\em info\+\_\+string} & optional information string (can be N\+U\+LL). \\
\hline
\end{DoxyParams}


References m3ua\+\_\+encode\+\_\+dupu(), m3ua\+\_\+tx\+\_\+xua\+\_\+asp(), and xua\+\_\+msg\+\_\+free().



Referenced by xua\+\_\+tx\+\_\+upu().

\mbox{\label{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}}
\subsubsection{m3ua\+\_\+tx\+\_\+snm\+\_\+available()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+snm\+\_\+available (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const char $\ast$}]{info\+\_\+string,  }\item[{bool}]{available }\end{DoxyParamCaption})}



Transmit S\+S\+NM D\+U\+N\+A/\+D\+A\+VA message indicating [un]availability of certain point code[s]. 


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


References m3ua\+\_\+encode\+\_\+dava(), m3ua\+\_\+encode\+\_\+duna(), m3ua\+\_\+tx\+\_\+xua\+\_\+asp(), and xua\+\_\+msg\+\_\+free().



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

\mbox{\label{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}}
\subsubsection{m3ua\+\_\+tx\+\_\+snm\+\_\+congestion()}
{\footnotesize\ttfamily void m3ua\+\_\+tx\+\_\+snm\+\_\+congestion (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{const uint32\+\_\+t $\ast$}]{rctx,  }\item[{unsigned int}]{num\+\_\+rctx,  }\item[{const uint32\+\_\+t $\ast$}]{aff\+\_\+pc,  }\item[{unsigned int}]{num\+\_\+aff\+\_\+pc,  }\item[{const uint32\+\_\+t $\ast$}]{concerned\+\_\+dpc,  }\item[{const uint8\+\_\+t $\ast$}]{cong\+\_\+level,  }\item[{const char $\ast$}]{info\+\_\+string }\end{DoxyParamCaption})}



Transmit S\+S\+NM S\+C\+ON message indicating congestion. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em asp} & A\+SP through which to transmit message. Must be A\+C\+T\+I\+VE. \\
\hline
\mbox{\tt in}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\tt in}  & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\
\hline
\mbox{\tt in}  & {\em concerned\+\_\+dpc} & optional concerned D\+PC (can be N\+U\+LL) \\
\hline
\mbox{\tt in}  & {\em cong\+\_\+level} & optional congestion level (can be N\+U\+LL) \\
\hline
\mbox{\tt in}  & {\em info\+\_\+string} & optional information string (can be N\+U\+LL). \\
\hline
\end{DoxyParams}


References xua\+\_\+msg\+::hdr, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+C\+O\+N\+C\+\_\+\+D\+E\+ST, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+C\+O\+N\+G\+\_\+\+I\+ND, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+S\+NM, M3\+U\+A\+\_\+\+S\+N\+M\+\_\+\+S\+C\+ON, m3ua\+\_\+tx\+\_\+xua\+\_\+asp(), M3\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::version, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+add\+\_\+data(), xua\+\_\+msg\+\_\+add\+\_\+u32(), xua\+\_\+msg\+\_\+alloc(), and xua\+\_\+msg\+\_\+free().



Referenced by xua\+\_\+tx\+\_\+scon().

\mbox{\label{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}}
\subsubsection{m3ua\+\_\+tx\+\_\+xua\+\_\+as()}
{\footnotesize\ttfamily int m3ua\+\_\+tx\+\_\+xua\+\_\+as (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



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


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em as} & Application Server through which to send xua \\
\hline
\mbox{\tt in}  & {\em xua} & x\+UA message to be sent \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context, osmo\+\_\+ss7\+\_\+as\+::fi, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, m3ua\+\_\+to\+\_\+msg(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+M3\+UA, osmo\+\_\+ss7\+\_\+as\+::proto, osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key, X\+U\+A\+\_\+\+A\+S\+\_\+\+E\+\_\+\+T\+R\+A\+N\+S\+F\+E\+R\+\_\+\+R\+EQ, and xua\+\_\+msg\+\_\+add\+\_\+u32().



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

\mbox{\label{xua__internal_8h_aad969ffbe815ce0108698b2d874bb98a}} 
\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}}
\subsubsection{m3ua\+\_\+xfer\+\_\+from\+\_\+data()}
{\footnotesize\ttfamily struct \textbf{ xua\+\_\+msg}$\ast$ m3ua\+\_\+xfer\+\_\+from\+\_\+data (\begin{DoxyParamCaption}\item[{const struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{data\+\_\+hdr,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{unsigned int}]{data\+\_\+len }\end{DoxyParamCaption})}



References xua\+\_\+msg\+\_\+part\+::dat, xua\+\_\+msg\+\_\+part\+::entry, xua\+\_\+msg\+::hdr, xua\+\_\+msg\+::headers, xua\+\_\+msg\+\_\+part\+::len, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+P\+R\+O\+T\+\_\+\+D\+A\+TA, M3\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+X\+F\+ER, M3\+U\+A\+\_\+\+X\+F\+E\+R\+\_\+\+D\+A\+TA, xua\+\_\+msg\+\_\+part\+::tag, X\+U\+A\+\_\+\+H\+DR, and xua\+\_\+msg\+\_\+alloc().



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

\mbox{\label{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}}
\subsubsection{mtp\+\_\+xfer\+\_\+param\+\_\+to\+\_\+m3ua\+\_\+dh()}
{\footnotesize\ttfamily void mtp\+\_\+xfer\+\_\+param\+\_\+to\+\_\+m3ua\+\_\+dh (\begin{DoxyParamCaption}\item[{struct \textbf{ m3ua\+\_\+data\+\_\+hdr} $\ast$}]{mdh,  }\item[{const struct \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param} $\ast$}]{param }\end{DoxyParamCaption})}



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



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

\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}}
\subsubsection{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 I\+S\+UP style address of B\+CD digets. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em out\+\_\+digits} & user-\/allocated buffer for A\+S\+C\+II digits \\
\hline
\mbox{\tt in}  & {\em in} & B\+C\+D-\/encoded digits \\
\hline
\mbox{\tt in}  & {\em in\+\_\+num\+\_\+bytes} & Size of in in bytes \\
\hline
\mbox{\tt 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 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}}
\subsubsection{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 S\+C\+CP address from parsed format to wire format 


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


References osmo\+\_\+sccp\+\_\+gt\+::digits, osmo\+\_\+sccp\+\_\+addr\+::gt, osmo\+\_\+sccp\+\_\+gt\+::gti, msgb\+\_\+put\+\_\+u16le(), osmo\+\_\+sccp\+\_\+gt\+::nai, osmo\+\_\+sccp\+\_\+gt\+::npi, osmo\+\_\+isup\+\_\+party\+\_\+encode(), O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+GT, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+PC, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+S\+SN, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+N\+A\+I\+\_\+\+O\+N\+LY, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+N\+O\+\_\+\+GT, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+T\+T\+\_\+\+N\+P\+L\+\_\+\+E\+NC, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+T\+T\+\_\+\+N\+P\+L\+\_\+\+E\+N\+C\+\_\+\+N\+AI, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+T\+T\+\_\+\+O\+N\+LY, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+I\+\_\+\+GT, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+I\+\_\+\+S\+S\+N\+\_\+\+PC, osmo\+\_\+sccp\+\_\+addr\+::pc, osmo\+\_\+sccp\+\_\+addr\+::presence, osmo\+\_\+sccp\+\_\+addr\+::ri, osmo\+\_\+sccp\+\_\+addr\+::ssn, and osmo\+\_\+sccp\+\_\+gt\+::tt.



Referenced by 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}}
\subsubsection{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 S\+C\+CP address into \doxyref{osmo\+\_\+sccp\+\_\+addr}{p.}{structosmo__sccp__addr}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em out} & user-\/allocated output data structure \\
\hline
\mbox{\tt in}  & {\em addr} & wire-\/encoded S\+C\+CP address \\
\hline
\mbox{\tt 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 R\+F\+C3868/3.\+10.\+2 
\end{DoxyReturn}


References osmo\+\_\+sccp\+\_\+gt\+::digits, osmo\+\_\+sccp\+\_\+addr\+::gt, osmo\+\_\+sccp\+\_\+gt\+::gti, osmo\+\_\+sccp\+\_\+gt\+::nai, osmo\+\_\+sccp\+\_\+gt\+::npi, osmo\+\_\+isup\+\_\+party\+\_\+parse(), O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+GT, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+PC, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+S\+SN, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+N\+A\+I\+\_\+\+O\+N\+LY, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+N\+O\+\_\+\+GT, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+T\+T\+\_\+\+N\+P\+L\+\_\+\+E\+NC, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+T\+T\+\_\+\+N\+P\+L\+\_\+\+E\+N\+C\+\_\+\+N\+AI, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+G\+T\+I\+\_\+\+T\+T\+\_\+\+O\+N\+LY, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+I\+\_\+\+GT, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+I\+\_\+\+S\+S\+N\+\_\+\+PC, osmo\+\_\+sccp\+\_\+addr\+::pc, osmo\+\_\+sccp\+\_\+addr\+::presence, osmo\+\_\+sccp\+\_\+addr\+::ri, osmo\+\_\+sccp\+\_\+addr\+::ssn, and osmo\+\_\+sccp\+\_\+gt\+::tt.



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

\mbox{\label{xua__internal_8h_ad72796caefb85b769c83c5237cdb4308}} 
\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}}
\subsubsection{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 S\+C\+CP message to a S\+UA message 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em msg} & message buffer holding S\+C\+CP message at l2h \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated x\+UA message on success; N\+U\+LL on error 
\end{DoxyReturn}


References xua\+\_\+msg\+::hdr, sccp\+\_\+to\+\_\+xua\+\_\+cc(), sccp\+\_\+to\+\_\+xua\+\_\+cr(), sccp\+\_\+to\+\_\+xua\+\_\+cref(), sccp\+\_\+to\+\_\+xua\+\_\+dt1(), sccp\+\_\+to\+\_\+xua\+\_\+err(), sccp\+\_\+to\+\_\+xua\+\_\+it(), sccp\+\_\+to\+\_\+xua\+\_\+rlc(), sccp\+\_\+to\+\_\+xua\+\_\+rlsd(), sccp\+\_\+to\+\_\+xua\+\_\+udt(), sccp\+\_\+to\+\_\+xua\+\_\+udts(), sccp\+\_\+to\+\_\+xua\+\_\+xudt(), sccp\+\_\+to\+\_\+xua\+\_\+xudts(), S\+U\+A\+\_\+\+C\+L\+\_\+\+C\+L\+DR, S\+U\+A\+\_\+\+C\+L\+\_\+\+C\+L\+DT, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+AK, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+DT, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+E\+RR, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+IT, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+RE, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+R\+EF, S\+U\+A\+\_\+\+C\+O\+\_\+\+R\+E\+L\+CO, S\+U\+A\+\_\+\+C\+O\+\_\+\+R\+E\+L\+RE, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+CL, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+CO, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+alloc(), and xua\+\_\+msg\+\_\+free().



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

\mbox{\label{xua__internal_8h_ade23801a343758da5c4cc25e96c47931}} 
\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}}
\subsubsection{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 S\+UA message to S\+C\+CP message 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em xua} & parsed S\+UA message to be converted \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb containing encoded S\+C\+CP message 
\end{DoxyReturn}


References xua\+\_\+msg\+::hdr, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type, sccp\+\_\+msgb\+\_\+alloc(), S\+U\+A\+\_\+\+C\+L\+\_\+\+C\+L\+DR, S\+U\+A\+\_\+\+C\+L\+\_\+\+C\+L\+DT, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+AK, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+DT, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+E\+RR, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+IT, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+RE, S\+U\+A\+\_\+\+C\+O\+\_\+\+C\+O\+R\+EF, S\+U\+A\+\_\+\+C\+O\+\_\+\+R\+E\+L\+CO, S\+U\+A\+\_\+\+C\+O\+\_\+\+R\+E\+L\+RE, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+CL, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+CO, sua\+\_\+to\+\_\+sccp\+\_\+cc(), sua\+\_\+to\+\_\+sccp\+\_\+cr(), sua\+\_\+to\+\_\+sccp\+\_\+cref(), sua\+\_\+to\+\_\+sccp\+\_\+dt1(), sua\+\_\+to\+\_\+sccp\+\_\+err(), sua\+\_\+to\+\_\+sccp\+\_\+it(), sua\+\_\+to\+\_\+sccp\+\_\+rlc(), sua\+\_\+to\+\_\+sccp\+\_\+rlsd(), sua\+\_\+to\+\_\+sccp\+\_\+udt(), sua\+\_\+to\+\_\+sccp\+\_\+udts(), xua\+\_\+dialect\+\_\+sua, and xua\+\_\+hdr\+\_\+dump().



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

\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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+asp\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::ctrg, g\+\_\+osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb, L\+O\+G\+P\+A\+SP, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+I\+PA, osmo\+\_\+ss7\+\_\+asp\+::proto, and S\+S7\+\_\+\+A\+S\+P\+\_\+\+C\+T\+R\+\_\+\+P\+K\+T\+\_\+\+R\+X\+\_\+\+U\+N\+K\+N\+O\+WN.



Referenced by ipa\+\_\+rx\+\_\+msg(), xua\+\_\+cli\+\_\+read\+\_\+cb(), and xua\+\_\+srv\+\_\+conn\+\_\+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}}
\subsubsection{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 S\+C\+CP address from given x\+UA message IE 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em out} & caller-\/allocated decoded S\+C\+CP address struct \\
\hline
\mbox{\tt in}  & {\em xua} & x\+UA message \\
\hline
\mbox{\tt in}  & {\em iei} & Information Element Identifier inside xua \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References sua\+\_\+addr\+\_\+parse\+\_\+part(), and xua\+\_\+msg\+\_\+find\+\_\+tag().



Referenced by ensure\+\_\+opc\+\_\+in\+\_\+calling\+\_\+ssn(), gen\+\_\+ret\+\_\+msg(), patch\+\_\+sccp\+\_\+with\+\_\+pc(), sccp\+\_\+find\+\_\+user(), sccp\+\_\+scrc\+\_\+rx\+\_\+sclc\+\_\+msg(), sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg(), sclc\+\_\+rx\+\_\+cldr(), sclc\+\_\+rx\+\_\+cldt(), scoc\+\_\+fsm\+\_\+idle(), scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua(), and scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send().

\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}}
\subsubsection{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 S\+C\+CP address from given x\+UA message part 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em out} & caller-\/allocated decoded S\+C\+CP address struct \\
\hline
\mbox{\tt in}  & {\em param} & x\+UA message part containing address \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References xua\+\_\+msg\+\_\+part\+::dat, osmo\+\_\+sccp\+\_\+addr\+::gt, osmo\+\_\+sccp\+\_\+addr\+::ip, xua\+\_\+msg\+\_\+part\+::len, xua\+\_\+parameter\+\_\+hdr\+::len, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+GT, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+I\+Pv4, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+I\+Pv6, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+PC, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+A\+D\+D\+R\+\_\+\+T\+\_\+\+S\+SN, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+I\+\_\+\+GT, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+I\+\_\+\+S\+S\+N\+\_\+\+IP, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+I\+\_\+\+S\+S\+N\+\_\+\+PC, osmo\+\_\+sccp\+\_\+addr\+::pc, osmo\+\_\+sccp\+\_\+addr\+::presence, osmo\+\_\+sccp\+\_\+addr\+::ri, osmo\+\_\+sccp\+\_\+addr\+::ssn, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+GT, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+Pv4, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+Pv6, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+PC, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+SN, sua\+\_\+parse\+\_\+gt(), S\+U\+A\+\_\+\+R\+I\+\_\+\+GT, S\+U\+A\+\_\+\+R\+I\+\_\+\+H\+O\+ST, S\+U\+A\+\_\+\+R\+I\+\_\+\+S\+S\+N\+\_\+\+IP, S\+U\+A\+\_\+\+R\+I\+\_\+\+S\+S\+N\+\_\+\+PC, xua\+\_\+msg\+\_\+part\+::tag, xua\+\_\+parameter\+\_\+hdr\+::tag, osmo\+\_\+sccp\+\_\+addr\+::v4, and osmo\+\_\+sccp\+\_\+addr\+::v6.



Referenced by sua\+\_\+addr\+\_\+parse(), and 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}}
\subsubsection{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 S\+UA Global Title according to R\+F\+C3868 Section 3.\+10.\+2.\+3. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em gt} & User-\/allocated structure for decoded output \\
\hline
\mbox{\tt in}  & {\em data} & binary-\/encoded data \\
\hline
\mbox{\tt in}  & {\em datalen} & length of \doxyref{data}{p.}{xua__types_8h_ab0c873a3738c31ba573548faa50188bc} in octets \\
\hline
\end{DoxyParams}


References osmo\+\_\+sccp\+\_\+gt\+::digits, osmo\+\_\+sccp\+\_\+gt\+::gti, osmo\+\_\+sccp\+\_\+gt\+::nai, osmo\+\_\+sccp\+\_\+gt\+::npi, and osmo\+\_\+sccp\+\_\+gt\+::tt.



Referenced by 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}}
\subsubsection{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 S\+UA message received from socket 


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


References osmo\+\_\+ss7\+\_\+asp\+::cfg, xua\+\_\+common\+\_\+hdr\+::data, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc, xua\+\_\+msg\+::hdr, osmo\+\_\+ss7\+\_\+asp\+::inst, L\+O\+G\+P\+A\+SP, xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class, xua\+\_\+msg\+::mtp, M\+T\+P\+\_\+\+S\+I\+\_\+\+S\+C\+CP, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+S\+UA, osmo\+\_\+ss7\+\_\+asp\+::proto, osmo\+\_\+ss7\+\_\+instance\+::sccp, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio, S\+U\+A\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+\_\+\+S\+T\+R\+E\+A\+M\+\_\+\+ID, S\+U\+A\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON, S\+U\+A\+\_\+\+E\+R\+R\+\_\+\+M\+I\+S\+S\+I\+N\+G\+\_\+\+P\+A\+R\+AM, S\+U\+A\+\_\+\+E\+R\+R\+\_\+\+P\+A\+R\+A\+M\+\_\+\+F\+I\+E\+L\+D\+\_\+\+E\+RR, S\+U\+A\+\_\+\+E\+R\+R\+\_\+\+U\+N\+S\+U\+P\+P\+\_\+\+M\+S\+G\+\_\+\+C\+L\+A\+SS, sua\+\_\+gen\+\_\+error\+\_\+msg(), S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+A\+S\+P\+SM, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+A\+S\+P\+TM, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+CL, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+CO, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+M\+G\+MT, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+R\+KM, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+S\+NM, sua\+\_\+rx\+\_\+asp(), sua\+\_\+rx\+\_\+cl(), sua\+\_\+rx\+\_\+co(), sua\+\_\+rx\+\_\+mgmt(), sua\+\_\+rx\+\_\+snm(), sua\+\_\+tx\+\_\+xua\+\_\+asp(), S\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::version, xua\+\_\+dialect\+\_\+check\+\_\+all\+\_\+mand\+\_\+ies(), xua\+\_\+from\+\_\+msg(), xua\+\_\+hdr\+\_\+dump(), and xua\+\_\+msg\+\_\+free().



Referenced by xua\+\_\+cli\+\_\+read\+\_\+cb(), and xua\+\_\+srv\+\_\+conn\+\_\+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}}
\subsubsection{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 S\+S\+NM D\+U\+PU message indicating user unavailability. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em asp} & A\+SP through which to transmit message. Must be A\+C\+T\+I\+VE. \\
\hline
\mbox{\tt in}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\tt in}  & {\em dpc} & affected point code \\
\hline
\mbox{\tt in}  & {\em user} & the user (SI) that is unavailable \\
\hline
\mbox{\tt in}  & {\em cause} & the cause of the user unavailability \\
\hline
\mbox{\tt in}  & {\em info\+\_\+string} & optional information string (can be N\+U\+LL). \\
\hline
\end{DoxyParams}


References sua\+\_\+encode\+\_\+dupu(), and sua\+\_\+tx\+\_\+xua\+\_\+asp().



Referenced by 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}}
\subsubsection{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 S\+S\+NM D\+U\+N\+A/\+D\+A\+VA message indicating [un]availability of certain point code[s]. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em asp} & A\+SP through whihc to transmit message. Must be A\+C\+T\+I\+VE. \\
\hline
\mbox{\tt in}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\tt in}  & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\
\hline
\mbox{\tt in}  & {\em aff\+\_\+ssn} & affected S\+SN (optional) \\
\hline
\mbox{\tt in}  & {\em smi} & subsystem multiplicity indicator (optional) \\
\hline
\mbox{\tt in}  & {\em info\+\_\+string} & optional information strng (can be N\+U\+LL). \\
\hline
\mbox{\tt in}  & {\em available} & are aff\+\_\+pc now available (true) or unavailable (false) \\
\hline
\end{DoxyParams}


References sua\+\_\+encode\+\_\+dava(), sua\+\_\+encode\+\_\+duna(), and sua\+\_\+tx\+\_\+xua\+\_\+asp().



Referenced by sua\+\_\+snm\+\_\+ssn\+\_\+available(), and 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}}
\subsubsection{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 S\+S\+NM S\+C\+ON message indicating congestion. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em asp} & A\+SP through which to transmit message. Must be A\+C\+T\+I\+VE. \\
\hline
\mbox{\tt in}  & {\em rctx} & array of Routing Contexts in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+rctx} & number of rctx \\
\hline
\mbox{\tt in}  & {\em aff\+\_\+pc} & array of \textquotesingle{}Affected Point Code\textquotesingle{} in network byte order. \\
\hline
\mbox{\tt in}  & {\em num\+\_\+aff\+\_\+pc} & number of aff\+\_\+pc \\
\hline
\mbox{\tt in}  & {\em ssn} & optional S\+SN (can be N\+U\+LL) \\
\hline
\mbox{\tt in}  & {\em cong\+\_\+level} & optional congestion level (can be N\+U\+LL) \\
\hline
\mbox{\tt in}  & {\em info\+\_\+string} & optional information string (can be N\+U\+LL). \\
\hline
\end{DoxyParams}


References xua\+\_\+msg\+::hdr, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+C\+O\+N\+G\+\_\+\+L\+E\+V\+EL, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+SN, S\+U\+A\+\_\+\+M\+S\+G\+C\+\_\+\+S\+NM, S\+U\+A\+\_\+\+S\+N\+M\+\_\+\+S\+C\+ON, S\+U\+A\+\_\+\+V\+E\+R\+S\+I\+ON, xua\+\_\+common\+\_\+hdr\+::version, X\+U\+A\+\_\+\+H\+DR, xua\+\_\+msg\+\_\+add\+\_\+data(), xua\+\_\+msg\+\_\+add\+\_\+u32(), and xua\+\_\+msg\+\_\+alloc().



Referenced by xua\+\_\+tx\+\_\+scon().

\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}}
\subsubsection{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 S\+UA Application Server. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em as} & Application Server through which to send xua \\
\hline
\mbox{\tt in}  & {\em xua} & x\+UA message to be sent \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context, osmo\+\_\+ss7\+\_\+as\+::fi, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+S\+UA, osmo\+\_\+ss7\+\_\+as\+::proto, osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+R\+O\+U\+T\+E\+\_\+\+C\+TX, sua\+\_\+to\+\_\+msg(), X\+U\+A\+\_\+\+A\+S\+\_\+\+E\+\_\+\+T\+R\+A\+N\+S\+F\+E\+R\+\_\+\+R\+EQ, and xua\+\_\+msg\+\_\+add\+\_\+u32().



Referenced by gen\+\_\+mtp\+\_\+transfer\+\_\+req\+\_\+xua().

\mbox{\label{xua__internal_8h_af79f59cb9478eaa7ef5b9801c5be2ef9}} 
\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}}
\subsubsection{xua\+\_\+as\+\_\+transmit\+\_\+msg()}
{\footnotesize\ttfamily int xua\+\_\+as\+\_\+transmit\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})}



References \+\_\+\+N\+U\+M\+\_\+\+O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+T\+M\+OD, osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+as\+::fi, osmo\+\_\+ss7\+\_\+as\+::mode, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+B\+C\+A\+ST, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+L\+O\+A\+D\+S\+H\+A\+RE, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+O\+V\+E\+R\+R\+I\+DE, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+R\+O\+U\+N\+D\+R\+O\+B\+IN, osmo\+\_\+ss7\+\_\+asp\+\_\+send(), xua\+\_\+as\+\_\+select\+\_\+asp\+\_\+override(), xua\+\_\+as\+\_\+select\+\_\+asp\+\_\+roundrobin(), and xua\+\_\+as\+\_\+transmit\+\_\+msg\+\_\+broadcast().



Referenced by ipa\+\_\+tx\+\_\+xua\+\_\+as(), xua\+\_\+as\+\_\+fsm\+\_\+active(), and 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+asp\+::lm, L\+O\+G\+P\+A\+SP, osmo\+\_\+xlm\+\_\+prim\+::oph, osmo\+\_\+xlm\+\_\+prim\+\_\+name(), and osmo\+\_\+xua\+\_\+layer\+\_\+manager\+::prim\+\_\+cb.



Referenced by handle\+\_\+rkey\+\_\+dereg\+\_\+resp(), handle\+\_\+rkey\+\_\+reg\+\_\+resp(), m3ua\+\_\+rx\+\_\+mgmt\+\_\+err(), m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy(), and 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}}
\subsubsection{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 xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim(), and xua\+\_\+xlm\+\_\+prim\+\_\+alloc().



Referenced by send\+\_\+xlm\+\_\+prim\+\_\+simple(), xua\+\_\+accept\+\_\+cb(), xua\+\_\+cli\+\_\+close(), xua\+\_\+cli\+\_\+connect\+\_\+cb(), xua\+\_\+cli\+\_\+read\+\_\+cb(), xua\+\_\+srv\+\_\+conn\+\_\+cb(), and xua\+\_\+srv\+\_\+conn\+\_\+closed\+\_\+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}}
\subsubsection{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 A\+SP + optional routing context IE. 

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


References osmo\+\_\+ss7\+\_\+asp\+::cfg, find\+\_\+single\+\_\+as\+\_\+for\+\_\+asp(), osmo\+\_\+ss7\+\_\+asp\+::inst, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+\_\+\+R\+O\+U\+T\+\_\+\+C\+TX, M3\+U\+A\+\_\+\+E\+R\+R\+\_\+\+N\+O\+\_\+\+C\+O\+N\+F\+G\+D\+\_\+\+A\+S\+\_\+\+F\+O\+R\+\_\+\+A\+SP, osmo\+\_\+ss7\+\_\+asp\+::name, osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx(), osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp(), osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys(), and xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32().



Referenced by m3ua\+\_\+rx\+\_\+snm\+\_\+asp(), m3ua\+\_\+rx\+\_\+xfer(), sua\+\_\+rx\+\_\+cl(), sua\+\_\+rx\+\_\+co(), and 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list, osmo\+\_\+ss7\+\_\+asp\+::inst, osmo\+\_\+ss7\+\_\+as\+::list, osmo\+\_\+ss7\+\_\+as\+\_\+destroy(), osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp(), and osmo\+\_\+ss7\+\_\+as\+::rkm\+\_\+dyn\+\_\+allocated.



Referenced by 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list, osmo\+\_\+ss7\+\_\+asp\+::cfg, get\+\_\+all\+\_\+rctx\+\_\+for\+\_\+asp(), osmo\+\_\+ss7\+\_\+as\+::inst, osmo\+\_\+ss7\+\_\+asp\+::list, osmo\+\_\+ss7\+\_\+asp\+\_\+active(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+R\+O\+L\+E\+\_\+\+SG, osmo\+\_\+ss7\+\_\+asp\+::role, osmo\+\_\+ss7\+\_\+instance\+::sccp, xua\+\_\+snm\+\_\+pc\+\_\+available\+\_\+to\+\_\+sccp(), and xua\+\_\+tx\+\_\+snm\+\_\+available().



Referenced by xua\+\_\+snm\+\_\+rx\+\_\+dava(), and 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}}
\subsubsection{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 xua\+\_\+msg\+\_\+part\+::dat, format\+\_\+affected\+\_\+pcs\+\_\+c(), get\+\_\+all\+\_\+rctx\+\_\+for\+\_\+asp(), osmo\+\_\+ss7\+\_\+asp\+::inst, xua\+\_\+msg\+\_\+part\+::len, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys(), osmo\+\_\+ss7\+\_\+route\+\_\+lookup(), xua\+\_\+msg\+\_\+find\+\_\+tag(), xua\+\_\+msg\+\_\+get\+\_\+str(), and xua\+\_\+tx\+\_\+snm\+\_\+available().



Referenced by m3ua\+\_\+rx\+\_\+snm\+\_\+asp(), m3ua\+\_\+rx\+\_\+snm\+\_\+sg(), sua\+\_\+rx\+\_\+snm\+\_\+asp(), and 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+asp\+::cfg, xua\+\_\+msg\+\_\+part\+::dat, format\+\_\+affected\+\_\+pcs\+\_\+c(), osmo\+\_\+ss7\+\_\+asp\+::inst, xua\+\_\+msg\+\_\+part\+::len, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+S\+UA, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+R\+O\+L\+E\+\_\+\+A\+SP, osmo\+\_\+ss7\+\_\+asp\+::proto, osmo\+\_\+ss7\+\_\+asp\+::role, smi, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+MI, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+SN, sua\+\_\+snm\+\_\+ssn\+\_\+available(), xua\+\_\+msg\+\_\+find\+\_\+tag(), xua\+\_\+msg\+\_\+get\+\_\+str(), xua\+\_\+msg\+\_\+get\+\_\+u32p(), xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32(), and xua\+\_\+snm\+\_\+pc\+\_\+available().



Referenced by m3ua\+\_\+rx\+\_\+snm\+\_\+asp(), and 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+asp\+::cfg, xua\+\_\+msg\+\_\+part\+::dat, format\+\_\+affected\+\_\+pcs\+\_\+c(), osmo\+\_\+ss7\+\_\+asp\+::inst, xua\+\_\+msg\+\_\+part\+::len, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+S\+UA, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+R\+O\+L\+E\+\_\+\+A\+SP, osmo\+\_\+ss7\+\_\+asp\+::proto, osmo\+\_\+ss7\+\_\+asp\+::role, smi, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+MI, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+S\+SN, sua\+\_\+snm\+\_\+ssn\+\_\+available(), xua\+\_\+msg\+\_\+find\+\_\+tag(), xua\+\_\+msg\+\_\+get\+\_\+str(), xua\+\_\+msg\+\_\+get\+\_\+u32p(), xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32(), and xua\+\_\+snm\+\_\+pc\+\_\+available().



Referenced by m3ua\+\_\+rx\+\_\+snm\+\_\+asp(), and 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}}
\subsubsection{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 osmo\+\_\+ss7\+\_\+asp\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::inst, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+U\+S\+E\+R\+\_\+\+C\+A\+U\+SE, mtp\+\_\+si\+\_\+vals, osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys(), O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+M3\+UA, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+P\+R\+O\+T\+\_\+\+S\+UA, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+P\+\_\+\+R\+O\+L\+E\+\_\+\+A\+SP, osmo\+\_\+ss7\+\_\+pointcode\+\_\+print(), osmo\+\_\+ss7\+\_\+asp\+::proto, osmo\+\_\+ss7\+\_\+asp\+::role, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, S\+U\+A\+\_\+\+I\+E\+I\+\_\+\+U\+S\+E\+R\+\_\+\+C\+A\+U\+SE, xua\+\_\+msg\+\_\+get\+\_\+str(), xua\+\_\+msg\+\_\+get\+\_\+u32(), and xua\+\_\+snm\+\_\+upu().



Referenced by m3ua\+\_\+rx\+\_\+snm\+\_\+asp(), and 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}}
\subsubsection{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 xua\+\_\+msg\+\_\+part\+::dat, format\+\_\+affected\+\_\+pcs\+\_\+c(), osmo\+\_\+ss7\+\_\+asp\+::inst, xua\+\_\+msg\+\_\+part\+::len, L\+O\+G\+P\+A\+SP, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+A\+F\+F\+E\+C\+T\+E\+D\+\_\+\+PC, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+C\+O\+N\+C\+\_\+\+D\+E\+ST, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+C\+O\+N\+G\+\_\+\+I\+ND, M3\+U\+A\+\_\+\+I\+E\+I\+\_\+\+I\+N\+F\+O\+\_\+\+S\+T\+R\+I\+NG, osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys(), xua\+\_\+msg\+\_\+find\+\_\+tag(), xua\+\_\+msg\+\_\+get\+\_\+str(), xua\+\_\+msg\+\_\+get\+\_\+u32p(), and xua\+\_\+snm\+\_\+scon().



Referenced by m3ua\+\_\+rx\+\_\+snm\+\_\+asp().

\mbox{\label{xua__internal_8h_ace6e25728de8614e14ce258e2dfe8bc4}} 
\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}}
\subsubsection{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 osmo\+\_\+xlm\+\_\+prim\+::oph, and X\+U\+A\+\_\+\+S\+A\+P\+\_\+\+LM.



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



\subsection{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}}
\subsubsection{m3ua\+\_\+err\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+err\+\_\+names[$\,$]}



Referenced by m3ua\+\_\+rx\+\_\+mgmt\+\_\+err(), and 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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+aspsm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+aspsm}

\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+asptm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+asptm}

\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+mgmt}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+mgmt}

\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+rkm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+rkm}

\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}}
\subsubsection{m3ua\+\_\+msg\+\_\+class\+\_\+snm}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+class} m3ua\+\_\+msg\+\_\+class\+\_\+snm}

\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}}
\subsubsection{m3ua\+\_\+ntfy\+\_\+other\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+other\+\_\+names[$\,$]}



Referenced by m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy(), and 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}}
\subsubsection{m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+stchg\+\_\+names[$\,$]}



Referenced by m3ua\+\_\+rx\+\_\+mgmt\+\_\+ntfy(), and 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}}
\subsubsection{m3ua\+\_\+ntfy\+\_\+type\+\_\+names}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+ntfy\+\_\+type\+\_\+names[$\,$]}



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

\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}}
\subsubsection{m3ua\+\_\+rkm\+\_\+dereg\+\_\+status\+\_\+vals}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+dereg\+\_\+status\+\_\+vals[$\,$]}



Referenced by 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}}
\subsubsection{m3ua\+\_\+rkm\+\_\+reg\+\_\+status\+\_\+vals}
{\footnotesize\ttfamily const struct value\+\_\+string m3ua\+\_\+rkm\+\_\+reg\+\_\+status\+\_\+vals[$\,$]}



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

\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}}
\subsubsection{xua\+\_\+default\+\_\+lm\+\_\+fsm}
{\footnotesize\ttfamily struct osmo\+\_\+fsm xua\+\_\+default\+\_\+lm\+\_\+fsm}



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

