\section{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 $<$osmocom/sigtran/xua\+\_\+msg.\+h$>$}\newline \subsection*{Macros} \begin{DoxyCompactItemize} \item \#define \textbf{ M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE}~2048 \item \#define \textbf{ M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM}~512 \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*{Enumerations} \begin{DoxyCompactItemize} \item enum \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer} \{ \newline \textbf{ S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+A\+S\+P\+\_\+\+UP} = 1, \textbf{ S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+FY}, \textbf{ S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+Y\+\_\+\+R\+KM}, \textbf{ S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+R\+K\+\_\+\+R\+E\+G\+\_\+\+R\+E\+SP}, \newline \textbf{ S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+L\+EN} \} \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 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 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, 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 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 const struct osmo\+\_\+tdef \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults} [\textbf{ S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+L\+EN}] \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} \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_a0a663c3db596ddb20df217c428675585}} \index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM@{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM}} \index{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM@{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}} \subsubsection{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM} {\footnotesize\ttfamily \#define M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+H\+E\+A\+D\+R\+O\+OM~512} Referenced by m3ua\+\_\+msgb\+\_\+alloc(), xua\+\_\+accept\+\_\+cb(), and xua\+\_\+cli\+\_\+connect\+\_\+cb(). \mbox{\label{xua__internal_8h_abd0d34f59b10a9030dfbd87f24239f57}} \index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE@{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE}} \index{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE@{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}} \subsubsection{M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE} {\footnotesize\ttfamily \#define M3\+U\+A\+\_\+\+M\+S\+G\+\_\+\+S\+I\+ZE~2048} Referenced by m3ua\+\_\+msgb\+\_\+alloc(), xua\+\_\+accept\+\_\+cb(), and xua\+\_\+cli\+\_\+connect\+\_\+cb(). \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{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}} \subsubsection{ss7\+\_\+asp\+\_\+lm\+\_\+timer} {\footnotesize\ttfamily enum \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer}} \begin{DoxyEnumFields}{Enumerator} \raisebox{\heightof{T}}[0pt][0pt]{\index{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+A\+S\+P\+\_\+\+UP@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+A\+S\+P\+\_\+\+UP}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}}\index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+A\+S\+P\+\_\+\+UP@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+A\+S\+P\+\_\+\+UP}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3a09086d4eeec6cf08c67fa22df289ea00}} S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+A\+S\+P\+\_\+\+UP&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+FY@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+FY}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}}\index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+FY@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+FY}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3a31bb229ae3154608fb32175d784f7d00}} S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+FY&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+Y\+\_\+\+R\+KM@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+Y\+\_\+\+R\+KM}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}}\index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+Y\+\_\+\+R\+KM@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+Y\+\_\+\+R\+KM}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3ad98f60fcc228d6d2012a22a0bd10cd97}} S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+N\+O\+T\+I\+Y\+\_\+\+R\+KM&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+R\+K\+\_\+\+R\+E\+G\+\_\+\+R\+E\+SP@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+R\+K\+\_\+\+R\+E\+G\+\_\+\+R\+E\+SP}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}}\index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+R\+K\+\_\+\+R\+E\+G\+\_\+\+R\+E\+SP@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+R\+K\+\_\+\+R\+E\+G\+\_\+\+R\+E\+SP}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3a578484eaa252e14e1254403b80d8cb5c}} S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+\_\+\+W\+A\+I\+T\+\_\+\+R\+K\+\_\+\+R\+E\+G\+\_\+\+R\+E\+SP&\\ \hline \raisebox{\heightof{T}}[0pt][0pt]{\index{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+L\+EN@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+L\+EN}!xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}}\index{xua\+\_\+internal.\+h@{xua\+\_\+internal.\+h}!S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+L\+EN@{S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+L\+EN}}}\mbox{\label{xua__internal_8h_acc059812ff062bc7a14e4e77b764d2d3a25bb5fdb3a6a669c61b2d9c8b395e472}} S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+L\+EN&\\ \hline \end{DoxyEnumFields} \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_a605df838f5e98c86b34aacc5fc0d20a3}} \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}} \subsubsection{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 osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list, osmo\+\_\+ss7\+\_\+asp\+::inst, osmo\+\_\+ss7\+\_\+as\+::list, and osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp(). Referenced by ipa\+\_\+asp\+\_\+fsm\+\_\+start(), and ipa\+\_\+rx\+\_\+msg\+\_\+sccp(). \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}} \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, }\item[{uint8\+\_\+t}]{sls }\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 \mbox{\tt in} & {\em sls} & The S\+LS (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 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 ss7\+\_\+asp\+\_\+ipa\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+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\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req(), and xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req(). \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 ss7\+\_\+asp\+\_\+m3ua\+\_\+tcp\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb(), ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb(), and 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}} \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\+\_\+ludt(), sccp\+\_\+to\+\_\+xua\+\_\+ludts(), 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_a7f1c957fb912628e5424a6538967c129}} \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}} \subsubsection{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 m3ua\+\_\+rkm\+\_\+dereg\+\_\+status\+\_\+vals, m3ua\+\_\+rkm\+\_\+reg\+\_\+status\+\_\+vals, ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names, and xua\+\_\+default\+\_\+lm\+\_\+fsm. \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(), ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb(), and 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}} \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 ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb(), and 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}} \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\+::fi, osmo\+\_\+ss7\+\_\+asp\+::lm, 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(), ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+closed\+\_\+cb(), ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb(), xua\+\_\+accept\+\_\+cb(), xua\+\_\+cli\+\_\+close(), xua\+\_\+cli\+\_\+connect\+\_\+cb(), and 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}} \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 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}} \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(), peer\+\_\+send\+\_\+error(), 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(), and ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+name(). \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(), and ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+name(). \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}} \subsubsection{ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults} {\footnotesize\ttfamily const struct osmo\+\_\+tdef ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults[\textbf{ S\+S7\+\_\+\+A\+S\+P\+\_\+\+L\+M\+\_\+\+T\+I\+M\+E\+R\+S\+\_\+\+L\+EN}]} Referenced by gen\+\_\+asp\+\_\+timer\+\_\+cmd\+\_\+strs(), and 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}} \subsubsection{ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names} {\footnotesize\ttfamily const struct value\+\_\+string ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names[$\,$]} Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), gen\+\_\+asp\+\_\+timer\+\_\+cmd\+\_\+strs(), ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+name(), and write\+\_\+asp\+\_\+timers(). \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(), osmo\+\_\+ss7\+\_\+init(), and ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+name().