\doxysection{src/ss7\+\_\+as.h File Reference}
\label{ss7__as_8h}\index{src/ss7\_as.h@{src/ss7\_as.h}}
{\ttfamily \#include \char`\"{}config.\+h\char`\"{}}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/fsm.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/hashtable.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/msgb.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/tdef.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/netif/stream.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+msg.\+h\char`\"{}}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+esls\+\_\+entry}
\item 
struct \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc}
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ NUM\+\_\+\+AS\+\_\+\+EXT\+\_\+\+SLS}~128
\item 
\#define \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+\_\+llist\+\_\+round\+\_\+robin}(as,  state)~ \textbf{ ss7\+\_\+llist\+\_\+round\+\_\+robin}(\&(as)-\/$>$assoc\+\_\+asp\+\_\+list, (void $\ast$$\ast$)state, struct \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc}, as\+\_\+entry)
\item 
\#define \textbf{ LOGPAS}(as,  subsys,  level,  fmt,  args ...)~ \textbf{ \+\_\+\+LOGSS7}((as)-\/$>$inst, subsys, level, \char`\"{}AS(\%s) \char`\"{} fmt, (as)-\/$>$cfg.\+name, \#\# args)
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef uint8\+\_\+t \textbf{ as\+\_\+ext\+\_\+sls\+\_\+t}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+patch\+\_\+sccp\+\_\+mode} \{ \textbf{ OSMO\+\_\+\+SS7\+\_\+\+PATCH\+\_\+\+NONE}
, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+PATCH\+\_\+\+BOTH}
 \}
\item 
enum \textbf{ ss7\+\_\+as\+\_\+ctr} \{ \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+DISCARD}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+TOTAL}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+0}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+1}
, \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+2}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+3}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+4}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+5}
, \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+6}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+7}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+8}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+9}
, \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+10}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+11}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+12}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+13}
, \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+14}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+15}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+TOTAL}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+0}
, \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+1}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+2}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+3}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+4}
, \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+5}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+6}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+7}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+8}
, \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+9}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+10}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+11}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+12}
, \newline
\textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+13}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+14}
, \textbf{ SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+15}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ ss7\+\_\+as\+\_\+alloc} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto)
\begin{DoxyCompactList}\small\item\em Allocate an Application Server. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ ss7\+\_\+as\+\_\+select\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, const struct \textbf{ xua\+\_\+msg} $\ast$xua)
\begin{DoxyCompactList}\small\item\em Select an AS to transmit a message, according to AS configuration and ASP availability. \end{DoxyCompactList}\item 
int \textbf{ ss7\+\_\+as\+\_\+add\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp)
\begin{DoxyCompactList}\small\item\em Add given ASP to given AS. \end{DoxyCompactList}\item 
int \textbf{ ss7\+\_\+as\+\_\+del\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp)
\begin{DoxyCompactList}\small\item\em Delete given ASP from given AS. \end{DoxyCompactList}\item 
int \textbf{ ss7\+\_\+as\+\_\+get\+\_\+local\+\_\+role} (const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ ss7\+\_\+as\+\_\+find\+\_\+asp\+\_\+by\+\_\+remote\+\_\+asp\+\_\+id} (const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, uint32\+\_\+t asp\+\_\+id, const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$excl\+\_\+asp)
\begin{DoxyCompactList}\small\item\em Find ASP with a given announced remote ASP Id. \end{DoxyCompactList}\item 
void \textbf{ ss7\+\_\+as\+\_\+loadshare\+\_\+binding\+\_\+table\+\_\+reset} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as)
\item 
void \textbf{ ss7\+\_\+as\+\_\+del\+\_\+asp\+\_\+update\+\_\+llist\+\_\+round\+\_\+robin} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc} $\ast$$\ast$state)
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{ss7__as_8h_aa4be2c672a6e465517106d91c681837c}} 
\index{ss7\_as.h@{ss7\_as.h}!LOGPAS@{LOGPAS}}
\index{LOGPAS@{LOGPAS}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{LOGPAS}
{\footnotesize\ttfamily \#define LOGPAS(\begin{DoxyParamCaption}\item[{}]{as,  }\item[{}]{subsys,  }\item[{}]{level,  }\item[{}]{fmt,  }\item[{}]{args ... }\end{DoxyParamCaption})~ \textbf{ \+\_\+\+LOGSS7}((as)-\/$>$inst, subsys, level, \char`\"{}AS(\%s) \char`\"{} fmt, (as)-\/$>$cfg.\+name, \#\# args)}

\mbox{\label{ss7__as_8h_aa0dd0b40b81d111f77417125392daa29}} 
\index{ss7\_as.h@{ss7\_as.h}!NUM\_AS\_EXT\_SLS@{NUM\_AS\_EXT\_SLS}}
\index{NUM\_AS\_EXT\_SLS@{NUM\_AS\_EXT\_SLS}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{NUM\_AS\_EXT\_SLS}
{\footnotesize\ttfamily \#define NUM\+\_\+\+AS\+\_\+\+EXT\+\_\+\+SLS~128}

\mbox{\label{ss7__as_8h_a95cd1b61505e53c767ff48644a90f026}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_asp\_assoc\_llist\_round\_robin@{ss7\_as\_asp\_assoc\_llist\_round\_robin}}
\index{ss7\_as\_asp\_assoc\_llist\_round\_robin@{ss7\_as\_asp\_assoc\_llist\_round\_robin}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_asp\_assoc\_llist\_round\_robin}
{\footnotesize\ttfamily \#define ss7\+\_\+as\+\_\+asp\+\_\+assoc\+\_\+llist\+\_\+round\+\_\+robin(\begin{DoxyParamCaption}\item[{}]{as,  }\item[{}]{state }\end{DoxyParamCaption})~ \textbf{ ss7\+\_\+llist\+\_\+round\+\_\+robin}(\&(as)-\/$>$assoc\+\_\+asp\+\_\+list, (void $\ast$$\ast$)state, struct \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc}, as\+\_\+entry)}



\doxysubsection{Typedef Documentation}
\mbox{\label{ss7__as_8h_a4ae442cf1f586e97a4c6f75317865a13}} 
\index{ss7\_as.h@{ss7\_as.h}!as\_ext\_sls\_t@{as\_ext\_sls\_t}}
\index{as\_ext\_sls\_t@{as\_ext\_sls\_t}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{as\_ext\_sls\_t}
{\footnotesize\ttfamily typedef uint8\+\_\+t \textbf{ as\+\_\+ext\+\_\+sls\+\_\+t}}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{ss7__as_8h_a0b2887d64dc990999c94b2b6cccdc977}} 
\index{ss7\_as.h@{ss7\_as.h}!osmo\_ss7\_as\_patch\_sccp\_mode@{osmo\_ss7\_as\_patch\_sccp\_mode}}
\index{osmo\_ss7\_as\_patch\_sccp\_mode@{osmo\_ss7\_as\_patch\_sccp\_mode}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{osmo\_ss7\_as\_patch\_sccp\_mode}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+patch\+\_\+sccp\+\_\+mode}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SS7\_PATCH\_NONE@{OSMO\_SS7\_PATCH\_NONE}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!OSMO\_SS7\_PATCH\_NONE@{OSMO\_SS7\_PATCH\_NONE}}}\mbox{\label{ss7__as_8h_a0b2887d64dc990999c94b2b6cccdc977abd50362e0202087cc98258086f29e834}} 
OSMO\+\_\+\+SS7\+\_\+\+PATCH\+\_\+\+NONE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SS7\_PATCH\_BOTH@{OSMO\_SS7\_PATCH\_BOTH}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!OSMO\_SS7\_PATCH\_BOTH@{OSMO\_SS7\_PATCH\_BOTH}}}\mbox{\label{ss7__as_8h_a0b2887d64dc990999c94b2b6cccdc977a3645ea045c8a9be707ec49bb63ec33ce}} 
OSMO\+\_\+\+SS7\+\_\+\+PATCH\+\_\+\+BOTH&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67a}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_ctr@{ss7\_as\_ctr}}
\index{ss7\_as\_ctr@{ss7\_as\_ctr}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_ctr}
{\footnotesize\ttfamily enum \textbf{ ss7\+\_\+as\+\_\+ctr}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_DISCARD@{SS7\_AS\_CTR\_RX\_MSU\_DISCARD}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_DISCARD@{SS7\_AS\_CTR\_RX\_MSU\_DISCARD}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa94a23364be7d8dbe8f1b26440784d9bb}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+DISCARD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_TOTAL@{SS7\_AS\_CTR\_RX\_MSU\_TOTAL}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_TOTAL@{SS7\_AS\_CTR\_RX\_MSU\_TOTAL}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa26abc32054e575ee149c045750f8cfda}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+TOTAL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_0@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_0}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_0@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_0}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aaf33ca396fbbc54cd36ca81bd53a3636f}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+0&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_1@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_1}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_1@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_1}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa3713586a8fbfbe295520fd07c6ccd51e}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+1&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_2@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_2}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_2@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_2}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa5e7cad14a254a6652669b846117387d3}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+2&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_3@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_3}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_3@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_3}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aadb3a7306ee8ddfab7db3c796a58e2da0}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+3&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_4@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_4}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_4@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_4}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa79673f6d8ca816f9f3e73c81f6b73389}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+4&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_5@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_5}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_5@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_5}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa640289cae29f6337a43c51cdeb0a0571}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+5&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_6@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_6}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_6@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_6}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aab6109923744bfa89d240624c8982c9ea}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+6&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_7@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_7}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_7@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_7}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa9077f62d680c8db1a931a8ee6851ec4e}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+7&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_8@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_8}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_8@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_8}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa712bfb317eca419205a58b3457c8f468}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+8&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_9@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_9}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_9@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_9}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aabc68df8f68e12563f2a8aec335b56306}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+9&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_10@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_10}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_10@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_10}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa11eef09b796a3f8314c2019c1f683c43}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+10&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_11@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_11}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_11@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_11}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aaeda96f9fca6c567001d927ba501eaccd}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+11&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_12@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_12}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_12@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_12}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aad0276122e460f2af6603e613bf8a1351}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+12&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_13@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_13}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_13@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_13}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aacb31a3bfd1a44eb922aedf8701f291a7}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+13&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_14@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_14}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_14@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_14}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aabbe08bec9b1c5d778f61260601f47ac5}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+14&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_RX\_MSU\_SLS\_15@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_15}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_RX\_MSU\_SLS\_15@{SS7\_AS\_CTR\_RX\_MSU\_SLS\_15}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa2b6ccfc282bf26365f412c3d3103f6a3}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+RX\+\_\+\+MSU\+\_\+\+SLS\+\_\+15&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_TOTAL@{SS7\_AS\_CTR\_TX\_MSU\_TOTAL}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_TOTAL@{SS7\_AS\_CTR\_TX\_MSU\_TOTAL}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa9006faf07587c92ebe18200be163e248}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+TOTAL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_0@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_0}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_0@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_0}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa8cac720590e7c9f5290c7cd07ee03131}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+0&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_1@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_1}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_1@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_1}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aad2754a1d8a329407ce5401340199c68b}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+1&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_2@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_2}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_2@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_2}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa8af86dfa1e8cf348d642684ee38a0d8b}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+2&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_3@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_3}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_3@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_3}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa60fc0aa07e3e944068aebdd70dcb1e75}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+3&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_4@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_4}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_4@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_4}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aafc8b22f5e054056a218cd23b2b906969}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+4&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_5@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_5}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_5@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_5}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa3d8d1a9e3158f549a6d3c5113ef0d7b9}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+5&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_6@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_6}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_6@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_6}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aab59d476e3f25370a6745941fda222a38}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+6&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_7@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_7}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_7@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_7}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa2af10717da1cce0ed7ebc70ec277e86c}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+7&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_8@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_8}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_8@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_8}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa0af35a815970f375f8cc9d7be5e55f6d}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+8&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_9@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_9}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_9@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_9}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa83aa88c78ce504063b1f5837887d5f7d}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+9&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_10@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_10}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_10@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_10}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa6bfc1fb7d1d94676c2c6f17b9d41307a}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+10&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_11@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_11}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_11@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_11}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aaaa55e05585e92fb66c037ed9a8a2953d}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+11&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_12@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_12}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_12@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_12}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa73aa462453b2a4975c2cc20ab9bbd01b}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+12&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_13@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_13}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_13@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_13}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aaca1145b9ad8e809e39cb30dd6327493d}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+13&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_14@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_14}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_14@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_14}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa2888cd68c3e69e9fa0df474806e493d3}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+14&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SS7\_AS\_CTR\_TX\_MSU\_SLS\_15@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_15}!ss7\_as.h@{ss7\_as.h}}\index{ss7\_as.h@{ss7\_as.h}!SS7\_AS\_CTR\_TX\_MSU\_SLS\_15@{SS7\_AS\_CTR\_TX\_MSU\_SLS\_15}}}\mbox{\label{ss7__as_8h_ac6bc66087e1e1f143797c66201b2b67aa0b27ed1c0686d8431c5bf34c4129ec9a}} 
SS7\+\_\+\+AS\+\_\+\+CTR\+\_\+\+TX\+\_\+\+MSU\+\_\+\+SLS\+\_\+15&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{ss7__as_8h_aa3217a7a843ab6681bdf26579de9533f}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_add\_asp@{ss7\_as\_add\_asp}}
\index{ss7\_as\_add\_asp@{ss7\_as\_add\_asp}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_add\_asp()}
{\footnotesize\ttfamily int ss7\+\_\+as\+\_\+add\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})}



Add given ASP to given AS. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em as} & Application Server to which asp is added \\
\hline
\mbox{\texttt{ in}}  & {\em asp} & Application Server Process to be added to as \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error 
\end{DoxyReturn}


References \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::as}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ LOGPAS}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp()}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+\_\+alloc()}, and \textbf{ XUA\+\_\+\+ASP\+\_\+\+E\+\_\+\+AS\+\_\+\+ASSIGNED}.



Referenced by \textbf{ handle\+\_\+rkey\+\_\+reg()}, \textbf{ ipa\+\_\+asp\+\_\+fsm\+\_\+wait\+\_\+id\+\_\+resp()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}, and \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp()}.

\mbox{\label{ss7__as_8h_ab5cd3d471c6ef8678829cee97c60014c}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_alloc@{ss7\_as\_alloc}}
\index{ss7\_as\_alloc@{ss7\_as\_alloc}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ ss7\+\_\+as\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})}



Allocate an Application Server. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SS7 Instance on which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name of Application Server \\
\hline
\mbox{\texttt{ in}}  & {\em proto} & Protocol of Application Server \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to Application Server on success; NULL otherwise 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::assoc\+\_\+asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::ctrg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::l\+\_\+rk\+\_\+id}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::loadshare}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::mode}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::name}, \textbf{ NULL}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+AS\+\_\+\+TMOD\+\_\+\+OVERRIDE}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::recovery\+\_\+timeout\+\_\+msec}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, \textbf{ ss7\+\_\+as\+\_\+rcgd}, \textbf{ ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id()}, and \textbf{ xua\+\_\+as\+\_\+fsm\+\_\+start()}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create()}.

\mbox{\label{ss7__as_8h_aee504af16bf9d92abc8437c99185bdfb}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_del\_asp@{ss7\_as\_del\_asp}}
\index{ss7\_as\_del\_asp@{ss7\_as\_del\_asp}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_del\_asp()}
{\footnotesize\ttfamily int ss7\+\_\+as\+\_\+del\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})}



Delete given ASP from given AS. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em as} & Application Server from which asp is deleted \\
\hline
\mbox{\texttt{ in}}  & {\em asp} & Application Server Process to delete from as \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error
\end{DoxyReturn}
as may be freed during the function call. 

References \textbf{ osmo\+\_\+ss7\+\_\+as\+::aesls\+\_\+table}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+esls\+\_\+entry\+::alt\+\_\+asp}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::as}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::assoc\+\_\+asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::last\+\_\+asp\+\_\+idx\+\_\+assigned}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::last\+\_\+asp\+\_\+idx\+\_\+sent}, \textbf{ LOGPAS}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+esls\+\_\+entry\+::normal\+\_\+asp}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+destroy()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::rkm\+\_\+dyn\+\_\+allocated}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+\_\+find()}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+\_\+free()}, \textbf{ ss7\+\_\+as\+\_\+del\+\_\+asp\+\_\+update\+\_\+llist\+\_\+round\+\_\+robin()}, and \textbf{ tcap\+\_\+as\+\_\+del\+\_\+asp()}.



Referenced by \textbf{ common\+\_\+asp\+\_\+fsm\+\_\+down\+\_\+onenter()}, \textbf{ handle\+\_\+rkey\+\_\+dereg()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp()}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+destroy()}.

\mbox{\label{ss7__as_8h_acc1831d1acd473434908ff0f19d331e5}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_del\_asp\_update\_llist\_round\_robin@{ss7\_as\_del\_asp\_update\_llist\_round\_robin}}
\index{ss7\_as\_del\_asp\_update\_llist\_round\_robin@{ss7\_as\_del\_asp\_update\_llist\_round\_robin}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_del\_asp\_update\_llist\_round\_robin()}
{\footnotesize\ttfamily void ss7\+\_\+as\+\_\+del\+\_\+asp\+\_\+update\+\_\+llist\+\_\+round\+\_\+robin (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{struct \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc} $\ast$$\ast$}]{state }\end{DoxyParamCaption})}



References \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::as}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::asp}, \textbf{ NULL}, and \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+\_\+llist\+\_\+round\+\_\+robin}.



Referenced by \textbf{ ss7\+\_\+as\+\_\+del\+\_\+asp()}, and \textbf{ tcap\+\_\+as\+\_\+del\+\_\+asp()}.

\mbox{\label{ss7__as_8h_ace62d4e683543f0888fa74267d03609c}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_find\_asp\_by\_remote\_asp\_id@{ss7\_as\_find\_asp\_by\_remote\_asp\_id}}
\index{ss7\_as\_find\_asp\_by\_remote\_asp\_id@{ss7\_as\_find\_asp\_by\_remote\_asp\_id}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_find\_asp\_by\_remote\_asp\_id()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ ss7\+\_\+as\+\_\+find\+\_\+asp\+\_\+by\+\_\+remote\+\_\+asp\+\_\+id (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{uint32\+\_\+t}]{asp\+\_\+id,  }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{excl\+\_\+asp }\end{DoxyParamCaption})}



Find ASP with a given announced remote ASP Id. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em as} & Application Server in which to look for asp \\
\hline
\mbox{\texttt{ in}}  & {\em asp\+\_\+id} & M3\+UA/\+SUA ASP Identifier \\
\hline
\mbox{\texttt{ in}}  & {\em excl\+\_\+asp} & If not NULL, skip this asp from the candidates. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the asp object if found, NULL otherwise 
\end{DoxyReturn}


References \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::as}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::as\+\_\+entry}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::assoc\+\_\+asp\+\_\+list}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote\+\_\+asp\+\_\+id}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote\+\_\+asp\+\_\+id\+\_\+present}.



Referenced by \textbf{ ss7\+\_\+asp\+\_\+check\+\_\+remote\+\_\+asp\+\_\+id\+\_\+unique()}.

\mbox{\label{ss7__as_8h_a90e1298a6f35ca4a066fb9c882f0e381}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_get\_local\_role@{ss7\_as\_get\_local\_role}}
\index{ss7\_as\_get\_local\_role@{ss7\_as\_get\_local\_role}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_get\_local\_role()}
{\footnotesize\ttfamily int ss7\+\_\+as\+\_\+get\+\_\+local\+\_\+role (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as }\end{DoxyParamCaption})}



References \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::as}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::as\+\_\+entry}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::assoc\+\_\+asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::role}.



Referenced by \textbf{ ss7\+\_\+vty\+\_\+node\+\_\+as\+\_\+go\+\_\+parent()}, and \textbf{ xua\+\_\+as\+\_\+fsm\+\_\+onenter()}.

\mbox{\label{ss7__as_8h_a0dcc24eec011d648c3f619ec30db2c3b}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_loadshare\_binding\_table\_reset@{ss7\_as\_loadshare\_binding\_table\_reset}}
\index{ss7\_as\_loadshare\_binding\_table\_reset@{ss7\_as\_loadshare\_binding\_table\_reset}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_loadshare\_binding\_table\_reset()}
{\footnotesize\ttfamily void ss7\+\_\+as\+\_\+loadshare\+\_\+binding\+\_\+table\+\_\+reset (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+as\+::aesls\+\_\+table}, \textbf{ ss7\+\_\+as\+\_\+asp\+\_\+assoc\+::as}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::last\+\_\+asp\+\_\+idx\+\_\+assigned}, and \textbf{ NULL}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}.

\mbox{\label{ss7__as_8h_ac5635aa34daa59c62de01fd0ca18d2e0}} 
\index{ss7\_as.h@{ss7\_as.h}!ss7\_as\_select\_asp@{ss7\_as\_select\_asp}}
\index{ss7\_as\_select\_asp@{ss7\_as\_select\_asp}!ss7\_as.h@{ss7\_as.h}}
\doxysubsubsection{ss7\_as\_select\_asp()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ ss7\+\_\+as\+\_\+select\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{const struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



Select an AS to transmit a message, according to AS configuration and ASP availability. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em as} & Application Server. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
asp to send the message to, NULL if no possible asp found
\end{DoxyReturn}
This function returns NULL too if multiple ASPs would be selected, ie. AS is configured in broadcast mode and more than one ASP is configured. 

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



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

