\doxysection{src/sccp\+\_\+scoc\+\_\+fsm.c File Reference}
\label{sccp__scoc__fsm_8c}\index{src/sccp\_scoc\_fsm.c@{src/sccp\_scoc\_fsm.c}}
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/msgb.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxrbtree.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/timer.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/fsm.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+helpers.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+sap.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/sua.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sccp/sccp\+\_\+types.\+h$>$}\newline
{\ttfamily \#include "{}xua\+\_\+internal.\+h"{}}\newline
{\ttfamily \#include "{}sccp\+\_\+connection.\+h"{}}\newline
{\ttfamily \#include "{}sccp\+\_\+instance.\+h"{}}\newline
{\ttfamily \#include "{}sccp\+\_\+internal.\+h"{}}\newline
{\ttfamily \#include "{}sccp\+\_\+scoc\+\_\+fsm.\+h"{}}\newline
{\ttfamily \#include "{}sccp\+\_\+user.\+h"{}}\newline
{\ttfamily \#include "{}ss7\+\_\+internal.\+h"{}}\newline
{\ttfamily \#include "{}ss7\+\_\+instance.\+h"{}}\newline
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ S}(x)~(1 $<$$<$ (x))
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static void \textbf{ scoc\+\_\+fsm\+\_\+idle} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ scoc\+\_\+fsm\+\_\+idle\+\_\+onenter} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t old\+\_\+state)
\item 
static void \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+in} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ scoc\+\_\+fsm\+\_\+wait\+\_\+conn\+\_\+conf} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ scoc\+\_\+fsm\+\_\+active} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\item 
static void \textbf{ scoc\+\_\+fsm\+\_\+disconn\+\_\+pend} (struct osmo\+\_\+fsm\+\_\+inst $\ast$fi, uint32\+\_\+t event, void $\ast$\textbf{ data})
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const struct value\+\_\+string \textbf{ scoc\+\_\+event\+\_\+names} [$\,$]
\item 
static const struct osmo\+\_\+fsm\+\_\+state \textbf{ sccp\+\_\+scoc\+\_\+states} [$\,$]
\item 
struct osmo\+\_\+fsm \textbf{ sccp\+\_\+scoc\+\_\+fsm}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\label{sccp__scoc__fsm_8c_ac4a3ed3432929804c708f7760fb79e28} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!S@{S}}
\index{S@{S}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{S}
{\footnotesize\ttfamily \#define S(\begin{DoxyParamCaption}\item[{}]{x }\end{DoxyParamCaption})~(1 $<$$<$ (x))}



\doxysubsection{Function Documentation}
\label{sccp__scoc__fsm_8c_ac6b2b3dc156ee4e490b8be68395a1461} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!scoc\_fsm\_active@{scoc\_fsm\_active}}
\index{scoc\_fsm\_active@{scoc\_fsm\_active}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{scoc\_fsm\_active()}
{\footnotesize\ttfamily static void scoc\+\_\+fsm\+\_\+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{ data}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ sccp\+\_\+connection\+::importance}, \textbf{ NULL}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DATA}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DISCONNECT}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ S\+\_\+\+DISCONN\+\_\+\+PEND}, \textbf{ S\+\_\+\+IDLE}, \textbf{ sccp\+\_\+connection\+::sccp\+\_\+class}, \textbf{ sccp\+\_\+conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+rel\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+inact\+\_\+timers()}, \textbf{ sccp\+\_\+conn\+\_\+xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ sccp\+\_\+conn\+\_\+xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CC\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CREF\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+DT1\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ERROR\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+IT\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+REL\+\_\+\+COMPL\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+RLSD\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ROUT\+\_\+\+FAIL\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+DISC\+\_\+\+REQ}, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+EXP\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAR\+\_\+\+EXP}, \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAS\+\_\+\+EXP}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+RELEASE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CODT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COIT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CAUSE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+IMPORTANCE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+PROTO\+\_\+\+CLASS}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, \textbf{ xua\+\_\+msg\+\_\+alloc()}, \textbf{ xua\+\_\+msg\+\_\+free()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.

\label{sccp__scoc__fsm_8c_a7ca7a42fa01534ca998c214a2b88e53c} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!scoc\_fsm\_conn\_pend\_in@{scoc\_fsm\_conn\_pend\_in}}
\index{scoc\_fsm\_conn\_pend\_in@{scoc\_fsm\_conn\_pend\_in}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{scoc\_fsm\_conn\_pend\_in()}
{\footnotesize\ttfamily static void scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+in (\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{ data}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ NULL}, \textbf{ S\+\_\+\+ACTIVE}, \textbf{ S\+\_\+\+IDLE}, \textbf{ sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+inact\+\_\+timers()}, \textbf{ sccp\+\_\+conn\+\_\+xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+CONN\+\_\+\+RESP}, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+DISC\+\_\+\+REQ}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, and \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}.

\label{sccp__scoc__fsm_8c_ad49485deb0bbd76142c9af402ce34748} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!scoc\_fsm\_conn\_pend\_out@{scoc\_fsm\_conn\_pend\_out}}
\index{scoc\_fsm\_conn\_pend\_out@{scoc\_fsm\_conn\_pend\_out}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{scoc\_fsm\_conn\_pend\_out()}
{\footnotesize\ttfamily static void scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out (\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{ osmo\+\_\+scu\+\_\+disconn\+\_\+param\+::cause}, \textbf{ data}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::disconnect}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ NULL}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+CONNECT}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DISCONNECT}, \textbf{ sccp\+\_\+connection\+::release\+\_\+cause}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ S\+\_\+\+ACTIVE}, \textbf{ S\+\_\+\+IDLE}, \textbf{ S\+\_\+\+WAIT\+\_\+\+CONN\+\_\+\+CONF}, \textbf{ sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache()}, \textbf{ sccp\+\_\+conn\+\_\+scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+connect\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+inact\+\_\+timers()}, \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+connect\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+CONN\+\_\+\+TMR\+\_\+\+EXP}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CC\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CREF\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+OTHER\+\_\+\+NPDU}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+RLSD\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ROUT\+\_\+\+FAIL\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+DISC\+\_\+\+REQ}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.

\label{sccp__scoc__fsm_8c_aeaa06e98cfa763744aaa6381ac34ae13} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!scoc\_fsm\_disconn\_pend@{scoc\_fsm\_disconn\_pend}}
\index{scoc\_fsm\_disconn\_pend@{scoc\_fsm\_disconn\_pend}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{scoc\_fsm\_disconn\_pend()}
{\footnotesize\ttfamily static void scoc\+\_\+fsm\+\_\+disconn\+\_\+pend (\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{ sccp\+\_\+connection\+::fi}, \textbf{ NULL}, \textbf{ S\+\_\+\+IDLE}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+int\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+rep\+\_\+rel\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+release\+\_\+timers()}, \textbf{ sccp\+\_\+conn\+\_\+xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+OTHER\+\_\+\+NPDU}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+REL\+\_\+\+COMPL\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+RLSD\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ROUT\+\_\+\+FAIL\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+INT\+\_\+\+EXP}, \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REL\+\_\+\+EXP}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REP\+\_\+\+REL\+\_\+\+EXP}.

\label{sccp__scoc__fsm_8c_a9bb147b770c1197197cb22a6e81abe71} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!scoc\_fsm\_idle@{scoc\_fsm\_idle}}
\index{scoc\_fsm\_idle@{scoc\_fsm\_idle}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{scoc\_fsm\_idle()}
{\footnotesize\ttfamily static void scoc\+\_\+fsm\+\_\+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{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::called\+\_\+addr}, \textbf{ sccp\+\_\+connection\+::called\+\_\+addr}, \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::calling\+\_\+addr}, \textbf{ sccp\+\_\+connection\+::calling\+\_\+addr}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::connect}, \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ sccp\+\_\+connection\+::importance}, \textbf{ LOGPSCC}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ NULL}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+CONNECT}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::pc}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::presence}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ S\+\_\+\+CONN\+\_\+\+PEND\+\_\+\+IN}, \textbf{ S\+\_\+\+CONN\+\_\+\+PEND\+\_\+\+OUT}, \textbf{ S\+\_\+\+IDLE}, \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::sccp\+\_\+class}, \textbf{ sccp\+\_\+connection\+::sccp\+\_\+class}, \textbf{ sccp\+\_\+conn\+\_\+scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+connect\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CONN\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+OTHER\+\_\+\+NPDU}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+REL\+\_\+\+COMPL\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+RLSD\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+CONN\+\_\+\+REQ}, \textbf{ sua\+\_\+addr\+\_\+parse()}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+IMPORTANCE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+PROTO\+\_\+\+CLASS}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}, \textbf{ xua\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.

\label{sccp__scoc__fsm_8c_ad2ba1d15d23b9e33c6bb34edfe243773} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!scoc\_fsm\_idle\_onenter@{scoc\_fsm\_idle\_onenter}}
\index{scoc\_fsm\_idle\_onenter@{scoc\_fsm\_idle\_onenter}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{scoc\_fsm\_idle\_onenter()}
{\footnotesize\ttfamily static void scoc\+\_\+fsm\+\_\+idle\+\_\+onenter (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+fsm\+\_\+inst $\ast$}]{fi,  }\item[{uint32\+\_\+t}]{old\+\_\+state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+conn\+\_\+free()}.

\label{sccp__scoc__fsm_8c_a5308c356af6081c895cc77c647ce0d93} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!scoc\_fsm\_wait\_conn\_conf@{scoc\_fsm\_wait\_conn\_conf}}
\index{scoc\_fsm\_wait\_conn\_conf@{scoc\_fsm\_wait\_conn\_conf}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{scoc\_fsm\_wait\_conn\_conf()}
{\footnotesize\ttfamily static void scoc\+\_\+fsm\+\_\+wait\+\_\+conn\+\_\+conf (\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{ data}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ NULL}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ sccp\+\_\+connection\+::release\+\_\+cause}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ S\+\_\+\+DISCONN\+\_\+\+PEND}, \textbf{ S\+\_\+\+IDLE}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+rel\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+connect\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ sccp\+\_\+conn\+\_\+xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+CONN\+\_\+\+TMR\+\_\+\+EXP}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CC\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CREF\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+OTHER\+\_\+\+NPDU}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+RLSD\+\_\+\+IND}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ROUT\+\_\+\+FAIL\+\_\+\+IND}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



\doxysubsection{Variable Documentation}
\label{sccp__scoc__fsm_8c_acc3f4c3c00682b6a4190a5a998b129f1} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!sccp\_scoc\_fsm@{sccp\_scoc\_fsm}}
\index{sccp\_scoc\_fsm@{sccp\_scoc\_fsm}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{sccp\_scoc\_fsm}
{\footnotesize\ttfamily struct osmo\+\_\+fsm sccp\+\_\+scoc\+\_\+fsm}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .name\ =\ \textcolor{stringliteral}{"{}SCCP-\/SCOC"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .states\ =\ sccp\_scoc\_states,}
\DoxyCodeLine{\ \ \ \ \ \ \ \ .num\_states\ =\ ARRAY\_SIZE(sccp\_scoc\_states),}
\DoxyCodeLine{\ \ \ \ \ \ \ \ }
\DoxyCodeLine{\ \ \ \ \ \ \ \ .event\_names\ =\ scoc\_event\_names,}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+ss7\+\_\+init()}, and \textbf{ sccp\+\_\+conn\+\_\+alloc()}.

\label{sccp__scoc__fsm_8c_a42d0a3a8d8b642a6ec3208d3f1a63af1} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!sccp\_scoc\_states@{sccp\_scoc\_states}}
\index{sccp\_scoc\_states@{sccp\_scoc\_states}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{sccp\_scoc\_states}
{\footnotesize\ttfamily const struct osmo\+\_\+fsm\+\_\+state sccp\+\_\+scoc\+\_\+states[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

\label{sccp__scoc__fsm_8c_a250c884f2831648b4ce3ed4edd3b21bc} 
\index{sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}!scoc\_event\_names@{scoc\_event\_names}}
\index{scoc\_event\_names@{scoc\_event\_names}!sccp\_scoc\_fsm.c@{sccp\_scoc\_fsm.c}}
\doxysubsubsection{scoc\_event\_names}
{\footnotesize\ttfamily const struct value\+\_\+string scoc\+\_\+event\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{=\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ }
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_SCU\_N\_CONN\_REQ,\ \ \ \textcolor{stringliteral}{"{}N-\/CONNECT.req"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_SCU\_N\_CONN\_RESP,\ \textcolor{stringliteral}{"{}N-\/CONNECT.resp"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_SCU\_N\_DISC\_REQ,\ \ \ \textcolor{stringliteral}{"{}N-\/DISCONNECT.req"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_SCU\_N\_DATA\_REQ,\ \ \ \textcolor{stringliteral}{"{}N-\/DATA.req"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_SCU\_N\_EXP\_DATA\_REQ,\ \ \ \textcolor{stringliteral}{"{}N-\/EXPEDITED\_DATA.req"{}}\ \},}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ }
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_CONN\_IND,\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RCOC-\/CONNECT.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_ROUT\_FAIL\_IND,\ \ \ \textcolor{stringliteral}{"{}RCOC-\/ROUT\_FAIL.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_RLSD\_IND,\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RCOC-\/RELEASED.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_REL\_COMPL\_IND,\ \ \ \textcolor{stringliteral}{"{}RCOC-\/RELEASE\_COMPLETE.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_CREF\_IND,\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RCOC-\/CONNECT\_REFUSED.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_CC\_IND,\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RCOC-\/CONNECT\_CONFIRM.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_DT1\_IND,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RCOC-\/DT1.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_DT2\_IND,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RCOC-\/DT2.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_IT\_IND,\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RCOC-\/IT.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_OTHER\_NPDU,\ \textcolor{stringliteral}{"{}RCOC-\/OTHER\_NPDU.ind"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_RCOC\_ERROR\_IND,\ \ \ \textcolor{stringliteral}{"{}RCOC-\/ERROR.ind"{}}\ \},}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_T\_IAR\_EXP,\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}T(iar)\_expired"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_T\_IAS\_EXP,\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}T(ias)\_expired"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_CONN\_TMR\_EXP,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}T(conn)\_expired"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_T\_REL\_EXP,\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}T(rel)\_expired"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_T\_INT\_EXP,\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}T(int)\_expired"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ SCOC\_E\_T\_REP\_REL\_EXP,\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}T(rep\_rel)\_expired"{}}\ \},}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{\ 0,\ NULL\ \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
