\doxysection{src/xua\+\_\+default\+\_\+lm\+\_\+fsm.c File Reference}
\label{xua__default__lm__fsm_8c}\index{src/xua\_default\_lm\_fsm.c@{src/xua\_default\_lm\_fsm.c}}
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/fsm.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/sigtran\+\_\+sap.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/m3ua.\+h$>$}\newline
{\ttfamily \#include "{}xua\+\_\+internal.\+h"{}}\newline
{\ttfamily \#include "{}xua\+\_\+asp\+\_\+fsm.\+h"{}}\newline
{\ttfamily \#include "{}ss7\+\_\+as.\+h"{}}\newline
{\ttfamily \#include "{}ss7\+\_\+asp.\+h"{}}\newline
{\ttfamily \#include "{}ss7\+\_\+xua\+\_\+srv.\+h"{}}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ lm\+\_\+fsm\+\_\+priv}
\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ S}(x)~(1 $<$$<$ (x))
\item 
\#define \textbf{ lm\+\_\+fsm\+\_\+state\+\_\+chg}(fi,  NEXT\+\_\+\+STATE)
\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ lm\+\_\+state} \{ \newline
\textbf{ S\+\_\+\+IDLE}
, \textbf{ S\+\_\+\+WAIT\+\_\+\+ASP\+\_\+\+UP}
, \textbf{ S\+\_\+\+WAIT\+\_\+\+NOTIFY}
, \textbf{ S\+\_\+\+RKM\+\_\+\+REG}
, \newline
\textbf{ S\+\_\+\+ACTIVE}
 \}
\item 
enum \textbf{ lm\+\_\+event} \{ \newline
\textbf{ LM\+\_\+\+E\+\_\+\+SCTP\+\_\+\+EST\+\_\+\+IND}
, \textbf{ LM\+\_\+\+E\+\_\+\+ASP\+\_\+\+UP\+\_\+\+CONF}
, \textbf{ LM\+\_\+\+E\+\_\+\+NOTIFY\+\_\+\+IND}
, \textbf{ LM\+\_\+\+E\+\_\+\+AS\+\_\+\+INACTIVE\+\_\+\+IND}
, \newline
\textbf{ LM\+\_\+\+E\+\_\+\+AS\+\_\+\+ACTIVE\+\_\+\+IND}
, \textbf{ LM\+\_\+\+E\+\_\+\+AS\+\_\+\+STATUS\+\_\+\+IND}
, \textbf{ LM\+\_\+\+E\+\_\+\+RKM\+\_\+\+REG\+\_\+\+CONF}
, \textbf{ LM\+\_\+\+E\+\_\+\+SCTP\+\_\+\+DISC\+\_\+\+IND}
 \}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\textbf{ osmo\+\_\+static\+\_\+assert} (ARRAY\+\_\+\+SIZE(\textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults})==(\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN}) \&\&ARRAY\+\_\+\+SIZE(\textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names})==(\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN}), assert\+\_\+ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+count)
\item 
static struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ find\+\_\+first\+\_\+as\+\_\+in\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp)
\item 
static int \textbf{ handle\+\_\+reg\+\_\+conf} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t l\+\_\+rk\+\_\+id, uint32\+\_\+t rctx)
\item 
static void \textbf{ lm\+\_\+idle} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ lm\+\_\+wait\+\_\+asp\+\_\+up} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static int \textbf{ lm\+\_\+timer\+\_\+cb} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi)
\item 
static void \textbf{ lm\+\_\+wait\+\_\+notify} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ lm\+\_\+rkm\+\_\+reg} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ lm\+\_\+active} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ lm\+\_\+allstate} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static int \textbf{ default\+\_\+lm\+\_\+prim\+\_\+cb} (struct osmo\+\_\+prim\+\_\+hdr $\ast$oph, void $\ast$\+\_\+asp)
\item 
void \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+remove\+\_\+default\+\_\+lm} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp)
\item 
int \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+use\+\_\+default\+\_\+lm} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, int log\+\_\+level)
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const struct value\+\_\+string \textbf{ lm\+\_\+event\+\_\+names} [$\,$]
\item 
const struct osmo\+\_\+tdef \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults} [\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN}]
\item 
const struct value\+\_\+string \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names} [$\,$]
\item 
static const struct osmo\+\_\+tdef\+\_\+state\+\_\+timeout \textbf{ lm\+\_\+fsm\+\_\+timeouts} [32]
\item 
static const struct osmo\+\_\+fsm\+\_\+state \textbf{ lm\+\_\+states} [$\,$]
\item 
static const struct osmo\+\_\+prim\+\_\+event\+\_\+map \textbf{ lm\+\_\+event\+\_\+map} [$\,$]
\item 
struct osmo\+\_\+fsm \textbf{ xua\+\_\+default\+\_\+lm\+\_\+fsm}
\item 
static const struct \textbf{ osmo\+\_\+xua\+\_\+layer\+\_\+manager} \textbf{ default\+\_\+layer\+\_\+manager}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\label{xua__default__lm__fsm_8c_a1a0f40e6045770a57d26af0292def642} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_fsm\_state\_chg@{lm\_fsm\_state\_chg}}
\index{lm\_fsm\_state\_chg@{lm\_fsm\_state\_chg}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_fsm\_state\_chg}
{\footnotesize\ttfamily \#define lm\+\_\+fsm\+\_\+state\+\_\+chg(\begin{DoxyParamCaption}\item[{}]{fi,  }\item[{}]{NEXT\+\_\+\+STATE }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ \ \ \ \ osmo\_tdef\_fsm\_inst\_state\_chg(fi,\ NEXT\_STATE,\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lm\_fsm\_timeouts,\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ((\textcolor{keyword}{struct}\ lm\_fsm\_priv\ *)(fi-\/>priv))-\/>asp-\/>cfg.T\_defs\_lm,\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -\/1)}

\end{DoxyCode}
\label{xua__default__lm__fsm_8c_ac4a3ed3432929804c708f7760fb79e28} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!S@{S}}
\index{S@{S}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{S}
{\footnotesize\ttfamily \#define S(\begin{DoxyParamCaption}\item[{}]{x }\end{DoxyParamCaption})~(1 $<$$<$ (x))}



\doxysubsection{Enumeration Type Documentation}
\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_event@{lm\_event}}
\index{lm\_event@{lm\_event}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_event}
{\footnotesize\ttfamily enum \textbf{ lm\+\_\+event}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{LM\_E\_SCTP\_EST\_IND@{LM\_E\_SCTP\_EST\_IND}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!LM\_E\_SCTP\_EST\_IND@{LM\_E\_SCTP\_EST\_IND}}}\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487aca8485a5cf00262252dd2e37cbd4da9e} 
LM\+\_\+\+E\+\_\+\+SCTP\+\_\+\+EST\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LM\_E\_ASP\_UP\_CONF@{LM\_E\_ASP\_UP\_CONF}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!LM\_E\_ASP\_UP\_CONF@{LM\_E\_ASP\_UP\_CONF}}}\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487acf09c39a066012d2f91c588bb5ab4ec5} 
LM\+\_\+\+E\+\_\+\+ASP\+\_\+\+UP\+\_\+\+CONF&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LM\_E\_NOTIFY\_IND@{LM\_E\_NOTIFY\_IND}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!LM\_E\_NOTIFY\_IND@{LM\_E\_NOTIFY\_IND}}}\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487a4af6794192a2e0421afc38db3958c0cf} 
LM\+\_\+\+E\+\_\+\+NOTIFY\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LM\_E\_AS\_INACTIVE\_IND@{LM\_E\_AS\_INACTIVE\_IND}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!LM\_E\_AS\_INACTIVE\_IND@{LM\_E\_AS\_INACTIVE\_IND}}}\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487a019205de8d24118e33ea6d97b8862a4e} 
LM\+\_\+\+E\+\_\+\+AS\+\_\+\+INACTIVE\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LM\_E\_AS\_ACTIVE\_IND@{LM\_E\_AS\_ACTIVE\_IND}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!LM\_E\_AS\_ACTIVE\_IND@{LM\_E\_AS\_ACTIVE\_IND}}}\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487ac8f3fe6992409ed2ff1059a52b2df98f} 
LM\+\_\+\+E\+\_\+\+AS\+\_\+\+ACTIVE\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LM\_E\_AS\_STATUS\_IND@{LM\_E\_AS\_STATUS\_IND}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!LM\_E\_AS\_STATUS\_IND@{LM\_E\_AS\_STATUS\_IND}}}\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487a5a65105156a8f7b33e68e1845307761a} 
LM\+\_\+\+E\+\_\+\+AS\+\_\+\+STATUS\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LM\_E\_RKM\_REG\_CONF@{LM\_E\_RKM\_REG\_CONF}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!LM\_E\_RKM\_REG\_CONF@{LM\_E\_RKM\_REG\_CONF}}}\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487a97a1effa823524fa3aed22efb3dc9e82} 
LM\+\_\+\+E\+\_\+\+RKM\+\_\+\+REG\+\_\+\+CONF&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LM\_E\_SCTP\_DISC\_IND@{LM\_E\_SCTP\_DISC\_IND}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!LM\_E\_SCTP\_DISC\_IND@{LM\_E\_SCTP\_DISC\_IND}}}\label{xua__default__lm__fsm_8c_acdbd3ea7ab611b8d2f6ae7b9effec487a7198a4dd65c936f5e759185dd32b2b6a} 
LM\+\_\+\+E\+\_\+\+SCTP\+\_\+\+DISC\+\_\+\+IND&\\
\hline

\end{DoxyEnumFields}
\label{xua__default__lm__fsm_8c_abd45524893fe80bbf126182e53674795} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_state@{lm\_state}}
\index{lm\_state@{lm\_state}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_state}
{\footnotesize\ttfamily enum \textbf{ lm\+\_\+state}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_IDLE@{S\_IDLE}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!S\_IDLE@{S\_IDLE}}}\label{xua__default__lm__fsm_8c_abd45524893fe80bbf126182e53674795a86e3fc319fdf083afe88308950abab44} 
S\+\_\+\+IDLE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_WAIT\_ASP\_UP@{S\_WAIT\_ASP\_UP}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!S\_WAIT\_ASP\_UP@{S\_WAIT\_ASP\_UP}}}\label{xua__default__lm__fsm_8c_abd45524893fe80bbf126182e53674795a3a58465c97398f25c91014bdf6679380} 
S\+\_\+\+WAIT\+\_\+\+ASP\+\_\+\+UP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_WAIT\_NOTIFY@{S\_WAIT\_NOTIFY}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!S\_WAIT\_NOTIFY@{S\_WAIT\_NOTIFY}}}\label{xua__default__lm__fsm_8c_abd45524893fe80bbf126182e53674795a8609cdd264328299ba619e0c10d88600} 
S\+\_\+\+WAIT\+\_\+\+NOTIFY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_RKM\_REG@{S\_RKM\_REG}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!S\_RKM\_REG@{S\_RKM\_REG}}}\label{xua__default__lm__fsm_8c_abd45524893fe80bbf126182e53674795ac79e06fa211a2f5a09129ca9082de3f5} 
S\+\_\+\+RKM\+\_\+\+REG&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_ACTIVE@{S\_ACTIVE}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!S\_ACTIVE@{S\_ACTIVE}}}\label{xua__default__lm__fsm_8c_abd45524893fe80bbf126182e53674795aced5990aa7e8f86cb70f6bde9b6c5314} 
S\+\_\+\+ACTIVE&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\label{xua__default__lm__fsm_8c_ad618f521d9e0a42c7c237d5133145edf} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!default\_lm\_prim\_cb@{default\_lm\_prim\_cb}}
\index{default\_lm\_prim\_cb@{default\_lm\_prim\_cb}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{default\_lm\_prim\_cb()}
{\footnotesize\ttfamily static int default\+\_\+lm\+\_\+prim\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph,  }\item[{void $\ast$}]{\+\_\+asp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lm\+\_\+event\+\_\+map}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::lm\+\_\+priv}, and \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+name()}.

\label{xua__default__lm__fsm_8c_a05383a6016fc96cf13a11c1f6ada15a1} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!find\_first\_as\_in\_asp@{find\_first\_as\_in\_asp}}
\index{find\_first\_as\_in\_asp@{find\_first\_as\_in\_asp}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{find\_first\_as\_in\_asp()}
{\footnotesize\ttfamily static struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ find\+\_\+first\+\_\+as\+\_\+in\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::asps}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, and \textbf{ NULL}.



Referenced by \textbf{ lm\+\_\+timer\+\_\+cb()}.

\label{xua__default__lm__fsm_8c_a6c119bb8074d53fa355e57e8dd491ae1} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!handle\_reg\_conf@{handle\_reg\_conf}}
\index{handle\_reg\_conf@{handle\_reg\_conf}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{handle\_reg\_conf()}
{\footnotesize\ttfamily static int handle\+\_\+reg\+\_\+conf (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{l\+\_\+rk\+\_\+id,  }\item[{uint32\+\_\+t}]{rctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lm\+\_\+fsm\+\_\+priv\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id()}, and \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}.



Referenced by \textbf{ lm\+\_\+rkm\+\_\+reg()}.

\label{xua__default__lm__fsm_8c_a1205f9d457be0d11432ba4a9c5c3bece} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_active@{lm\_active}}
\index{lm\_active@{lm\_active}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_active()}
{\footnotesize\ttfamily static void lm\+\_\+active (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lm\+\_\+fsm\+\_\+priv\+::asp}, \textbf{ data}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ LM\+\_\+\+E\+\_\+\+AS\+\_\+\+INACTIVE\+\_\+\+IND}, \textbf{ LM\+\_\+\+E\+\_\+\+NOTIFY\+\_\+\+IND}, \textbf{ lm\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+I\+\_\+\+AS\+\_\+\+ACT}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+T\+\_\+\+STATCHG}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::notify}, \textbf{ NULL}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+NOTIFY}, \textbf{ S\+\_\+\+IDLE}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, and \textbf{ XUA\+\_\+\+ASP\+\_\+\+E\+\_\+\+M\+\_\+\+ASP\+\_\+\+ACTIVE\+\_\+\+REQ}.

\label{xua__default__lm__fsm_8c_a20d50feab8e3eaa837d5df03c84e2c34} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_allstate@{lm\_allstate}}
\index{lm\_allstate@{lm\_allstate}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_allstate()}
{\footnotesize\ttfamily static void lm\+\_\+allstate (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ LM\+\_\+\+E\+\_\+\+SCTP\+\_\+\+DISC\+\_\+\+IND}, \textbf{ lm\+\_\+fsm\+\_\+state\+\_\+chg}, and \textbf{ S\+\_\+\+IDLE}.

\label{xua__default__lm__fsm_8c_a60dd2d52f2badc355ea435930a165b48} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_idle@{lm\_idle}}
\index{lm\_idle@{lm\_idle}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_idle()}
{\footnotesize\ttfamily static void lm\+\_\+idle (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lm\+\_\+fsm\+\_\+priv\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ LM\+\_\+\+E\+\_\+\+SCTP\+\_\+\+EST\+\_\+\+IND}, \textbf{ lm\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ NULL}, \textbf{ S\+\_\+\+WAIT\+\_\+\+ASP\+\_\+\+UP}, and \textbf{ XUA\+\_\+\+ASP\+\_\+\+E\+\_\+\+M\+\_\+\+ASP\+\_\+\+UP\+\_\+\+REQ}.

\label{xua__default__lm__fsm_8c_a2090e10df8659ac3000aad5d36b60fcd} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_rkm\_reg@{lm\_rkm\_reg}}
\index{lm\_rkm\_reg@{lm\_rkm\_reg}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_rkm\_reg()}
{\footnotesize\ttfamily static void lm\+\_\+rkm\+\_\+reg (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lm\+\_\+fsm\+\_\+priv\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ data}, \textbf{ handle\+\_\+reg\+\_\+conf()}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::key}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::l\+\_\+rk\+\_\+id}, \textbf{ LM\+\_\+\+E\+\_\+\+RKM\+\_\+\+REG\+\_\+\+CONF}, \textbf{ M3\+UA\+\_\+\+RKM\+\_\+\+REG\+\_\+\+SUCCESS}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::rk\+\_\+reg}, \textbf{ S\+\_\+\+WAIT\+\_\+\+NOTIFY}, \textbf{ ss7\+\_\+asp\+\_\+disconnect\+\_\+stream()}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+NOTIY\+\_\+\+RKM}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::status}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::\+T\+\_\+defs\+\_\+lm}, and \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}.

\label{xua__default__lm__fsm_8c_a8c72c7cf37f1a40ecb75694a565f28b8} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_timer\_cb@{lm\_timer\_cb}}
\index{lm\_timer\_cb@{lm\_timer\_cb}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_timer\_cb()}
{\footnotesize\ttfamily static int lm\+\_\+timer\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lm\+\_\+fsm\+\_\+priv\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::fi}, \textbf{ find\+\_\+first\+\_\+as\+\_\+in\+\_\+asp()}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::key}, \textbf{ LM\+\_\+\+E\+\_\+\+AS\+\_\+\+INACTIVE\+\_\+\+IND}, \textbf{ lm\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::mode}, \textbf{ NULL}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+QUIRK\+\_\+\+NO\+\_\+\+NOTIFY}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+RK\+\_\+\+REG}, \textbf{ osmo\+\_\+xlm\+\_\+sap\+\_\+down()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::quirks}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::rk\+\_\+reg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, \textbf{ S\+\_\+\+RKM\+\_\+\+REG}, \textbf{ ss7\+\_\+asp\+\_\+disconnect\+\_\+stream()}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+ASP\+\_\+\+UP}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+NOTIFY}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+NOTIY\+\_\+\+RKM}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+T\+\_\+\+WAIT\+\_\+\+RK\+\_\+\+REG\+\_\+\+RESP}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+rk\+\_\+reg\+::traf\+\_\+mode}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, and \textbf{ xua\+\_\+xlm\+\_\+prim\+\_\+alloc()}.

\label{xua__default__lm__fsm_8c_a6fabb7152bb688864bff87aaa3ec82dc} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_wait\_asp\_up@{lm\_wait\_asp\_up}}
\index{lm\_wait\_asp\_up@{lm\_wait\_asp\_up}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_wait\_asp\_up()}
{\footnotesize\ttfamily static void lm\+\_\+wait\+\_\+asp\+\_\+up (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ LM\+\_\+\+E\+\_\+\+ASP\+\_\+\+UP\+\_\+\+CONF}, \textbf{ lm\+\_\+fsm\+\_\+state\+\_\+chg}, and \textbf{ S\+\_\+\+WAIT\+\_\+\+NOTIFY}.

\label{xua__default__lm__fsm_8c_a387d93798384a435bebd88338f8306b9} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_wait\_notify@{lm\_wait\_notify}}
\index{lm\_wait\_notify@{lm\_wait\_notify}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_wait\_notify()}
{\footnotesize\ttfamily static void lm\+\_\+wait\+\_\+notify (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{event,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lm\+\_\+fsm\+\_\+priv\+::asp}, \textbf{ data}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ LM\+\_\+\+E\+\_\+\+AS\+\_\+\+INACTIVE\+\_\+\+IND}, \textbf{ LM\+\_\+\+E\+\_\+\+NOTIFY\+\_\+\+IND}, \textbf{ lm\+\_\+fsm\+\_\+state\+\_\+chg}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+I\+\_\+\+AS\+\_\+\+ACT}, \textbf{ M3\+UA\+\_\+\+NOTIFY\+\_\+\+T\+\_\+\+STATCHG}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::notify}, \textbf{ NULL}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+AS\+\_\+\+TMOD\+\_\+\+OVERRIDE}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+NOTIFY}, \textbf{ S\+\_\+\+ACTIVE}, \textbf{ ss7\+\_\+asp\+\_\+determine\+\_\+traf\+\_\+mode()}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+info}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+\_\+notify\+::status\+\_\+type}, \textbf{ osmo\+\_\+xlm\+\_\+prim\+::u}, and \textbf{ XUA\+\_\+\+ASP\+\_\+\+E\+\_\+\+M\+\_\+\+ASP\+\_\+\+ACTIVE\+\_\+\+REQ}.

\label{xua__default__lm__fsm_8c_a15e904b5b672db7fafcc2e01ce5df916} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!osmo\_ss7\_asp\_remove\_default\_lm@{osmo\_ss7\_asp\_remove\_default\_lm}}
\index{osmo\_ss7\_asp\_remove\_default\_lm@{osmo\_ss7\_asp\_remove\_default\_lm}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{osmo\_ss7\_asp\_remove\_default\_lm()}
{\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+asp\+\_\+remove\+\_\+default\+\_\+lm (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::lm\+\_\+priv}, and \textbf{ NULL}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart()}.

\label{xua__default__lm__fsm_8c_af4039d65a094d2cd510a3ed991e05deb} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!osmo\_ss7\_asp\_use\_default\_lm@{osmo\_ss7\_asp\_use\_default\_lm}}
\index{osmo\_ss7\_asp\_use\_default\_lm@{osmo\_ss7\_asp\_use\_default\_lm}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{osmo\_ss7\_asp\_use\_default\_lm()}
{\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+asp\+\_\+use\+\_\+default\+\_\+lm (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp,  }\item[{int}]{log\+\_\+level }\end{DoxyParamCaption})}



References \textbf{ lm\+\_\+fsm\+\_\+priv\+::asp}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ default\+\_\+layer\+\_\+manager}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::lm}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::lm\+\_\+priv}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ NULL}, and \textbf{ xua\+\_\+default\+\_\+lm\+\_\+fsm}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart()}.

\label{xua__default__lm__fsm_8c_a9da1b9f1f79d9611e742421014440196} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!osmo\_static\_assert@{osmo\_static\_assert}}
\index{osmo\_static\_assert@{osmo\_static\_assert}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{osmo\_static\_assert()}
{\footnotesize\ttfamily osmo\+\_\+static\+\_\+assert (\begin{DoxyParamCaption}\item[{ARRAY\+\_\+\+SIZE(\textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults})}]{ = {\ttfamily =(\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN})~\&\&ARRAY\+\_\+SIZE(\textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names})==(\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN})},  }\item[{assert\+\_\+ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+count}]{ }\end{DoxyParamCaption})}



\doxysubsection{Variable Documentation}
\label{xua__default__lm__fsm_8c_a2a6abce8a1458b653c185ca1d75dd470} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!default\_layer\_manager@{default\_layer\_manager}}
\index{default\_layer\_manager@{default\_layer\_manager}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{default\_layer\_manager}
{\footnotesize\ttfamily const struct \textbf{ osmo\+\_\+xua\+\_\+layer\+\_\+manager} default\+\_\+layer\+\_\+manager\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .prim\_cb\ =\ default\_lm\_prim\_cb,}
\DoxyCodeLine{\}}

\end{DoxyCode}


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

\label{xua__default__lm__fsm_8c_a51949de02d1451a339c030bfa04e58f0} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_event\_map@{lm\_event\_map}}
\index{lm\_event\_map@{lm\_event\_map}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_event\_map}
{\footnotesize\ttfamily const struct osmo\+\_\+prim\+\_\+event\+\_\+map lm\+\_\+event\+\_\+map[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ XUA\_SAP\_LM,\ OSMO\_XLM\_PRIM\_M\_SCTP\_ESTABLISH,\ PRIM\_OP\_INDICATION,\ LM\_E\_SCTP\_EST\_IND\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ XUA\_SAP\_LM,\ OSMO\_XLM\_PRIM\_M\_SCTP\_RELEASE,\ PRIM\_OP\_INDICATION,\ LM\_E\_SCTP\_DISC\_IND\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ XUA\_SAP\_LM,\ OSMO\_XLM\_PRIM\_M\_ASP\_UP,\ PRIM\_OP\_CONFIRM,\ LM\_E\_ASP\_UP\_CONF\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ XUA\_SAP\_LM,\ OSMO\_XLM\_PRIM\_M\_AS\_STATUS,\ PRIM\_OP\_INDICATION,\ LM\_E\_AS\_STATUS\_IND\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ XUA\_SAP\_LM,\ OSMO\_XLM\_PRIM\_M\_NOTIFY,\ PRIM\_OP\_INDICATION,\ LM\_E\_NOTIFY\_IND\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ XUA\_SAP\_LM,\ OSMO\_XLM\_PRIM\_M\_AS\_INACTIVE,\ PRIM\_OP\_INDICATION,\ LM\_E\_AS\_INACTIVE\_IND\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ XUA\_SAP\_LM,\ OSMO\_XLM\_PRIM\_M\_AS\_ACTIVE,\ PRIM\_OP\_INDICATION,\ LM\_E\_AS\_ACTIVE\_IND\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ XUA\_SAP\_LM,\ OSMO\_XLM\_PRIM\_M\_RK\_REG,\ PRIM\_OP\_CONFIRM,\ LM\_E\_RKM\_REG\_CONF\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ 0,\ 0,\ 0,\ OSMO\_NO\_EVENT\ \},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ default\+\_\+lm\+\_\+prim\+\_\+cb()}.

\label{xua__default__lm__fsm_8c_a524a2ce1ebc7967814b338b51f576a55} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_event\_names@{lm\_event\_names}}
\index{lm\_event\_names@{lm\_event\_names}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_event\_names}
{\footnotesize\ttfamily const struct value\+\_\+string lm\+\_\+event\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ LM\_E\_SCTP\_EST\_IND,\ \ \ \textcolor{stringliteral}{"{}SCTP-\/ESTABLISH.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ LM\_E\_ASP\_UP\_CONF,\ \ \ \ \ \textcolor{stringliteral}{"{}ASP-\/UP.conf"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ LM\_E\_NOTIFY\_IND,\ \ \ \ \ \ \ \textcolor{stringliteral}{"{}NOTIFY.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ LM\_E\_AS\_INACTIVE\_IND,\ \ \ \ \ \textcolor{stringliteral}{"{}AS-\/INACTIVE.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ LM\_E\_AS\_ACTIVE\_IND,\ \textcolor{stringliteral}{"{}AS-\/ACTIVE.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ LM\_E\_AS\_STATUS\_IND,\ \textcolor{stringliteral}{"{}AS-\/STATUS.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ LM\_E\_RKM\_REG\_CONF,\ \ \ \textcolor{stringliteral}{"{}RKM\_REG.conf"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ LM\_E\_SCTP\_DISC\_IND,\ \textcolor{stringliteral}{"{}SCTP-\/RELEASE.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ 0,\ NULL\ \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\label{xua__default__lm__fsm_8c_aefee762447a8747f1ce02b2078cebe93} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_fsm\_timeouts@{lm\_fsm\_timeouts}}
\index{lm\_fsm\_timeouts@{lm\_fsm\_timeouts}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_fsm\_timeouts}
{\footnotesize\ttfamily const struct osmo\+\_\+tdef\+\_\+state\+\_\+timeout lm\+\_\+fsm\+\_\+timeouts[32]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ [S\_IDLE]\ \ =\ \{\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ [S\_WAIT\_ASP\_UP]\ \ \ \ =\ \{\ .T\ =\ SS7\_ASP\_LM\_T\_WAIT\_ASP\_UP\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ [S\_WAIT\_NOTIFY]\ \ \ \ =\ \{\ .T\ =\ SS7\_ASP\_LM\_T\_WAIT\_NOTIFY\ \},\ }
\DoxyCodeLine{\ \ \ \ \ \ \ \ [S\_RKM\_REG]\ \ \ \ =\ \{\ .T\ =\ SS7\_ASP\_LM\_T\_WAIT\_RK\_REG\_RESP\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ [S\_ACTIVE]\ \ \ \ \ \ =\ \{\ \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
\label{xua__default__lm__fsm_8c_a57c9b8d5dc3d987500e141df6154a822} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!lm\_states@{lm\_states}}
\index{lm\_states@{lm\_states}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{lm\_states}
{\footnotesize\ttfamily const struct osmo\+\_\+fsm\+\_\+state lm\+\_\+states[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

\label{xua__default__lm__fsm_8c_a4fd3a2164089040052bb12b1363b18d7} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!ss7\_asp\_lm\_timer\_defaults@{ss7\_asp\_lm\_timer\_defaults}}
\index{ss7\_asp\_lm\_timer\_defaults@{ss7\_asp\_lm\_timer\_defaults}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{ss7\_asp\_lm\_timer\_defaults}
{\footnotesize\ttfamily const struct osmo\+\_\+tdef ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults[\textbf{ SS7\+\_\+\+ASP\+\_\+\+LM\+\_\+\+TIMERS\+\_\+\+LEN}]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ .T\ =\ SS7\_ASP\_LM\_T\_WAIT\_ASP\_UP,\ \ \ \ \ \ \ \ .default\_val\ =\ 20,\ \ \ \ \ \ .unit\ =\ OSMO\_TDEF\_S,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ .desc\ =\ \textcolor{stringliteral}{"{}Restart\ ASP\ after\ timeout\ waiting\ for\ ASP\ UP\ (SG\ role)\ /\ ASP\ UP\ ACK\ (ASP\ role)\ (s)"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ .T\ =\ SS7\_ASP\_LM\_T\_WAIT\_NOTIFY,\ \ \ \ \ \ \ \ .default\_val\ =\ 2,\ \ \ \ \ \ \ .unit\ =\ OSMO\_TDEF\_S,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ .desc\ =\ \textcolor{stringliteral}{"{}Restart\ ASP\ after\ timeout\ waiting\ for\ NOTIFY\ (s)"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ .T\ =\ SS7\_ASP\_LM\_T\_WAIT\_NOTIY\_RKM,\ \ .default\_val\ =\ 20,\ \ \ \ \ \ .unit\ =\ OSMO\_TDEF\_S,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ .desc\ =\ \textcolor{stringliteral}{"{}Restart\ ASP\ after\ timeout\ waiting\ for\ NOTIFY\ after\ RKM\ registration\ (s)"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ .T\ =\ SS7\_ASP\_LM\_T\_WAIT\_RK\_REG\_RESP,\ \ \ \ \ \ .default\_val\ =\ 10,\ \ \ \ \ \ .unit\ =\ OSMO\_TDEF\_S,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ .desc\ =\ \textcolor{stringliteral}{"{}Restart\ ASP\ after\ timeout\ waiting\ for\ RK\_REG\_RESP\ (s)"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\}}
\DoxyCodeLine{\}}

\end{DoxyCode}


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

\label{xua__default__lm__fsm_8c_a9978fc0fc7f45342d5df6d439ef0d4cc} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!ss7\_asp\_lm\_timer\_names@{ss7\_asp\_lm\_timer\_names}}
\index{ss7\_asp\_lm\_timer\_names@{ss7\_asp\_lm\_timer\_names}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{ss7\_asp\_lm\_timer\_names}
{\footnotesize\ttfamily const struct value\+\_\+string ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SS7\_ASP\_LM\_T\_WAIT\_ASP\_UP,\ \textcolor{stringliteral}{"{}wait\_asp\_up"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SS7\_ASP\_LM\_T\_WAIT\_NOTIFY,\ \textcolor{stringliteral}{"{}wait\_notify"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SS7\_ASP\_LM\_T\_WAIT\_NOTIY\_RKM,\ \textcolor{stringliteral}{"{}wait\_notify\_rkm"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SS7\_ASP\_LM\_T\_WAIT\_RK\_REG\_RESP,\ \textcolor{stringliteral}{"{}wait\_rk\_reg\_resp"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\}}
\DoxyCodeLine{\}}

\end{DoxyCode}


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

\label{xua__default__lm__fsm_8c_a6440967ba56751bd7b6913c0bc6402e9} 
\index{xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}!xua\_default\_lm\_fsm@{xua\_default\_lm\_fsm}}
\index{xua\_default\_lm\_fsm@{xua\_default\_lm\_fsm}!xua\_default\_lm\_fsm.c@{xua\_default\_lm\_fsm.c}}
\doxysubsubsection{xua\_default\_lm\_fsm}
{\footnotesize\ttfamily struct osmo\+\_\+fsm xua\+\_\+default\+\_\+lm\+\_\+fsm}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .name\ =\ \textcolor{stringliteral}{"{}xua\_default\_lm"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .states\ =\ lm\_states,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .num\_states\ =\ ARRAY\_SIZE(lm\_states),}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .timer\_cb\ =\ lm\_timer\_cb,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .event\_names\ =\ lm\_event\_names,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .allstate\_event\_mask\ =\ S(LM\_E\_SCTP\_DISC\_IND),}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .allstate\_action\ =\ lm\_allstate,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .log\_subsys\ =\ DLSS7,}
\DoxyCodeLine{\}}

\end{DoxyCode}


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

