\doxysection{src/sccp\+\_\+scoc.c File Reference}
\label{sccp__scoc_8c}\index{src/sccp\_scoc.c@{src/sccp\_scoc.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 \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}sccp\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include $<$osmocom/vty/vty.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ sccp\+\_\+connection}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ S}(x)~(1 $<$$<$ (x))
\item 
\#define \textbf{ SCU\+\_\+\+MSGB\+\_\+\+SIZE}~1024
\item 
\#define \textbf{ INIT\+\_\+\+TIMER}(x,  fn,  priv)~do \{ (x)-\/$>$cb = fn; (x)-\/$>$\textbf{ data} = priv; \} while (0)
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ sccp\+\_\+connection\+\_\+state} \{ \newline
\textbf{ S\+\_\+\+IDLE}
, \textbf{ S\+\_\+\+CONN\+\_\+\+PEND\+\_\+\+IN}
, \textbf{ S\+\_\+\+CONN\+\_\+\+PEND\+\_\+\+OUT}
, \textbf{ S\+\_\+\+ACTIVE}
, \newline
\textbf{ S\+\_\+\+DISCONN\+\_\+\+PEND}
, \textbf{ S\+\_\+\+RESET\+\_\+\+IN}
, \textbf{ S\+\_\+\+RESET\+\_\+\+OUT}
, \textbf{ S\+\_\+\+BOTHWAY\+\_\+\+RESET}
, \newline
\textbf{ S\+\_\+\+WAIT\+\_\+\+CONN\+\_\+\+CONF}
 \}
\item 
enum \textbf{ sccp\+\_\+scoc\+\_\+event} \{ \newline
\textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+CONN\+\_\+\+REQ}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+CONN\+\_\+\+RESP}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+DISC\+\_\+\+REQ}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+DATA\+\_\+\+REQ}
, \newline
\textbf{ SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+EXP\+\_\+\+DATA\+\_\+\+REQ}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CONN\+\_\+\+IND}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ROUT\+\_\+\+FAIL\+\_\+\+IND}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+RLSD\+\_\+\+IND}
, \newline
\textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+REL\+\_\+\+COMPL\+\_\+\+IND}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CREF\+\_\+\+IND}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CC\+\_\+\+IND}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+DT1\+\_\+\+IND}
, \newline
\textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+DT2\+\_\+\+IND}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+IT\+\_\+\+IND}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+OTHER\+\_\+\+NPDU}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ERROR\+\_\+\+IND}
, \newline
\textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAR\+\_\+\+EXP}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAS\+\_\+\+EXP}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+CONN\+\_\+\+TMR\+\_\+\+EXP}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REL\+\_\+\+EXP}
, \newline
\textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+INT\+\_\+\+EXP}
, \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REP\+\_\+\+REL\+\_\+\+EXP}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\textbf{ osmo\+\_\+static\+\_\+assert} (ARRAY\+\_\+\+SIZE(\textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+defaults})==(\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN}) \&\&ARRAY\+\_\+\+SIZE(\textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+names})==(\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN}), assert\+\_\+osmo\+\_\+sccp\+\_\+timers\+\_\+count)
\item 
static void \textbf{ sccp\+\_\+timer\+\_\+schedule} (const struct \textbf{ sccp\+\_\+connection} $\ast$conn, struct osmo\+\_\+timer\+\_\+list $\ast$timer, enum \textbf{ osmo\+\_\+sccp\+\_\+timer} timer\+\_\+name)
\item 
static void \textbf{ tx\+\_\+inact\+\_\+tmr\+\_\+cb} (void $\ast$\textbf{ data})
\item 
static void \textbf{ rx\+\_\+inact\+\_\+tmr\+\_\+cb} (void $\ast$\textbf{ data})
\item 
static void \textbf{ rel\+\_\+tmr\+\_\+cb} (void $\ast$\textbf{ data})
\item 
static void \textbf{ int\+\_\+tmr\+\_\+cb} (void $\ast$\textbf{ data})
\item 
static void \textbf{ rep\+\_\+rel\+\_\+tmr\+\_\+cb} (void $\ast$\textbf{ data})
\item 
static void \textbf{ conn\+\_\+tmr\+\_\+cb} (void $\ast$\textbf{ data})
\item 
static void \textbf{ conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+start\+\_\+inact\+\_\+timers} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+stop\+\_\+inact\+\_\+timers} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+start\+\_\+rel\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+start\+\_\+rep\+\_\+rel\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+start\+\_\+int\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+stop\+\_\+release\+\_\+timers} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+start\+\_\+connect\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+stop\+\_\+connect\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static void \textbf{ conn\+\_\+destroy} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static struct \textbf{ sccp\+\_\+connection} $\ast$ \textbf{ conn\+\_\+find\+\_\+by\+\_\+id} (const struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint32\+\_\+t id)
\item 
static int \textbf{ conn\+\_\+add\+\_\+node} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
bool \textbf{ osmo\+\_\+sccp\+\_\+conn\+\_\+id\+\_\+exists} (const struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint32\+\_\+t id)
\item 
static struct \textbf{ sccp\+\_\+connection} $\ast$ \textbf{ conn\+\_\+create\+\_\+id} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$user, uint32\+\_\+t conn\+\_\+id)
\item 
int \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+next\+\_\+conn\+\_\+id} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$sccp)
\item 
static struct \textbf{ sccp\+\_\+connection} $\ast$ \textbf{ conn\+\_\+create} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$user)
\item 
static void \textbf{ conn\+\_\+opt\+\_\+data\+\_\+clear\+\_\+cache} (struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
static struct msgb $\ast$ \textbf{ scu\+\_\+msgb\+\_\+alloc} (void)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ xua\+\_\+gen\+\_\+relre} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, uint32\+\_\+t cause, struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim)
\item 
static int \textbf{ xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, uint32\+\_\+t cause, struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim)
\item 
static void \textbf{ xua\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, int exp\+\_\+type, uint8\+\_\+t \textbf{ msg\+\_\+class})
\item 
static bool \textbf{ xua\+\_\+drop\+\_\+data\+\_\+check\+\_\+drop} (const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim, unsigned lim, const char $\ast$message)
\item 
static bool \textbf{ xua\+\_\+opt\+\_\+data\+\_\+cache\+\_\+keep} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim, int \textbf{ msg\+\_\+type})
\item 
static bool \textbf{ xua\+\_\+opt\+\_\+data\+\_\+length\+\_\+lim} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim, int \textbf{ msg\+\_\+type})
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ xua\+\_\+gen\+\_\+msg\+\_\+co} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, uint32\+\_\+t event, const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim, int \textbf{ msg\+\_\+type})
\item 
static int \textbf{ xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, uint32\+\_\+t event, const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim, int \textbf{ msg\+\_\+type})
\item 
static struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$ \textbf{ scu\+\_\+prim\+\_\+alloc} (unsigned int primitive, enum osmo\+\_\+prim\+\_\+operation operation)
\item 
static void \textbf{ scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, uint32\+\_\+t event, struct \textbf{ xua\+\_\+msg} $\ast$xua, unsigned int primitive, enum osmo\+\_\+prim\+\_\+operation operation)
\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})
\item 
static uint8\+\_\+t \textbf{ get\+\_\+cref\+\_\+cause\+\_\+for\+\_\+ret} (uint8\+\_\+t ret\+\_\+cause)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ gen\+\_\+coref\+\_\+without\+\_\+conn} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua\+\_\+in, uint32\+\_\+t ref\+\_\+cause)
\item 
static struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ \textbf{ sccp\+\_\+find\+\_\+user} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua, uint32\+\_\+t return\+\_\+cause)
\begin{DoxyCompactList}\small\item\em SCOC\+: Receive SCRC Routing Failure. \end{DoxyCompactList}\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ gen\+\_\+coerr} (uint32\+\_\+t route\+\_\+ctx, uint32\+\_\+t dest\+\_\+ref, uint32\+\_\+t err\+\_\+cause)
\item 
static void \textbf{ tx\+\_\+coerr\+\_\+from\+\_\+xua} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$in, uint32\+\_\+t err\+\_\+cause)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ gen\+\_\+relco} (uint32\+\_\+t route\+\_\+ctx, uint32\+\_\+t dest\+\_\+ref, uint32\+\_\+t src\+\_\+ref)
\item 
static void \textbf{ tx\+\_\+relco\+\_\+from\+\_\+xua} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$in)
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ gen\+\_\+rlsd} (uint32\+\_\+t route\+\_\+ctx, uint32\+\_\+t dest\+\_\+ref, uint32\+\_\+t src\+\_\+ref)
\item 
static void \textbf{ tx\+\_\+rlsd\+\_\+from\+\_\+xua\+\_\+twoway} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, struct \textbf{ xua\+\_\+msg} $\ast$in)
\item 
static void \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+unass\+\_\+local\+\_\+ref} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static void \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+src\+\_\+ref} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, struct \textbf{ xua\+\_\+msg} $\ast$xua, uint32\+\_\+t inval\+\_\+src\+\_\+ref)
\item 
static void \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\begin{DoxyCompactList}\small\item\em Main entrance function for primitives from the SCRC (Routing Control) \end{DoxyCompactList}\item 
static uint32\+\_\+t \textbf{ scu\+\_\+prim\+\_\+conn\+\_\+id} (const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim)
\item 
int \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\begin{DoxyCompactList}\small\item\em Main entrance function for primitives from SCCP User. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\begin{DoxyCompactList}\small\item\em Main entrance function for primitives from SCCP User. \end{DoxyCompactList}\item 
void \textbf{ sccp\+\_\+scoc\+\_\+flush\+\_\+connections} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\item 
static void \textbf{ vty\+\_\+show\+\_\+connection} (struct vty $\ast$vty, struct \textbf{ sccp\+\_\+connection} $\ast$conn)
\item 
void \textbf{ sccp\+\_\+scoc\+\_\+show\+\_\+connections} (struct vty $\ast$vty, struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const struct value\+\_\+string \textbf{ scoc\+\_\+event\+\_\+names} [$\,$]
\item 
static const struct \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map} \textbf{ sua\+\_\+scoc\+\_\+event\+\_\+map} [$\,$]
\item 
static const struct osmo\+\_\+prim\+\_\+event\+\_\+map \textbf{ scu\+\_\+scoc\+\_\+event\+\_\+map} [$\,$]
\item 
const struct osmo\+\_\+tdef \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+defaults} [\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN}]
\item 
const struct value\+\_\+string \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+names} [$\,$]
\item 
static const struct osmo\+\_\+fsm\+\_\+state \textbf{ sccp\+\_\+scoc\+\_\+states} [$\,$]
\item 
struct osmo\+\_\+fsm \textbf{ sccp\+\_\+scoc\+\_\+fsm}
\item 
static const uint8\+\_\+t \textbf{ cause\+\_\+map\+\_\+cref} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{sccp__scoc_8c_a70e97449d775ed6ba57665d01e454433}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!INIT\_TIMER@{INIT\_TIMER}}
\index{INIT\_TIMER@{INIT\_TIMER}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{INIT\_TIMER}
{\footnotesize\ttfamily \#define INIT\+\_\+\+TIMER(\begin{DoxyParamCaption}\item[{}]{x,  }\item[{}]{fn,  }\item[{}]{priv }\end{DoxyParamCaption})~do \{ (x)-\/$>$cb = fn; (x)-\/$>$\textbf{ data} = priv; \} while (0)}

\mbox{\label{sccp__scoc_8c_ac4a3ed3432929804c708f7760fb79e28}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!S@{S}}
\index{S@{S}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{S}
{\footnotesize\ttfamily \#define S(\begin{DoxyParamCaption}\item[{}]{x }\end{DoxyParamCaption})~(1 $<$$<$ (x))}

\mbox{\label{sccp__scoc_8c_ac5d3dce5523f8e0c79b986589307b9f4}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!SCU\_MSGB\_SIZE@{SCU\_MSGB\_SIZE}}
\index{SCU\_MSGB\_SIZE@{SCU\_MSGB\_SIZE}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{SCU\_MSGB\_SIZE}
{\footnotesize\ttfamily \#define SCU\+\_\+\+MSGB\+\_\+\+SIZE~1024}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_connection\_state@{sccp\_connection\_state}}
\index{sccp\_connection\_state@{sccp\_connection\_state}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_connection\_state}
{\footnotesize\ttfamily enum \textbf{ sccp\+\_\+connection\+\_\+state}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_IDLE@{S\_IDLE}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_IDLE@{S\_IDLE}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4a86e3fc319fdf083afe88308950abab44}} 
S\+\_\+\+IDLE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_CONN\_PEND\_IN@{S\_CONN\_PEND\_IN}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_CONN\_PEND\_IN@{S\_CONN\_PEND\_IN}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4aa2ec964f96c2e8769eb508b5eccea623}} 
S\+\_\+\+CONN\+\_\+\+PEND\+\_\+\+IN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_CONN\_PEND\_OUT@{S\_CONN\_PEND\_OUT}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_CONN\_PEND\_OUT@{S\_CONN\_PEND\_OUT}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4a282287b21e79d783549cca0a355f5255}} 
S\+\_\+\+CONN\+\_\+\+PEND\+\_\+\+OUT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_ACTIVE@{S\_ACTIVE}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_ACTIVE@{S\_ACTIVE}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4aced5990aa7e8f86cb70f6bde9b6c5314}} 
S\+\_\+\+ACTIVE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_DISCONN\_PEND@{S\_DISCONN\_PEND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_DISCONN\_PEND@{S\_DISCONN\_PEND}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4ad5764a5a0465a735667c7cdf1f5e3f7d}} 
S\+\_\+\+DISCONN\+\_\+\+PEND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_RESET\_IN@{S\_RESET\_IN}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_RESET\_IN@{S\_RESET\_IN}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4a2bec40847bc43e6a692f1f219554371e}} 
S\+\_\+\+RESET\+\_\+\+IN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_RESET\_OUT@{S\_RESET\_OUT}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_RESET\_OUT@{S\_RESET\_OUT}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4a82bf652b5a00f9b0d6299c4eaa7df45d}} 
S\+\_\+\+RESET\+\_\+\+OUT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_BOTHWAY\_RESET@{S\_BOTHWAY\_RESET}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_BOTHWAY\_RESET@{S\_BOTHWAY\_RESET}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4ac097212ed2ed5df66256c7c411b479e2}} 
S\+\_\+\+BOTHWAY\+\_\+\+RESET&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{S\_WAIT\_CONN\_CONF@{S\_WAIT\_CONN\_CONF}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!S\_WAIT\_CONN\_CONF@{S\_WAIT\_CONN\_CONF}}}\mbox{\label{sccp__scoc_8c_aaa1aa95fa6ecb0aaf0ccfed7317b09f4a8ae656960151c36493f32fbf417c13d5}} 
S\+\_\+\+WAIT\+\_\+\+CONN\+\_\+\+CONF&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_event@{sccp\_scoc\_event}}
\index{sccp\_scoc\_event@{sccp\_scoc\_event}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_scoc\_event}
{\footnotesize\ttfamily enum \textbf{ sccp\+\_\+scoc\+\_\+event}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_SCU\_N\_CONN\_REQ@{SCOC\_E\_SCU\_N\_CONN\_REQ}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_SCU\_N\_CONN\_REQ@{SCOC\_E\_SCU\_N\_CONN\_REQ}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425aad996f2c39594e24f60123225ba9e51a}} 
SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+CONN\+\_\+\+REQ&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_SCU\_N\_CONN\_RESP@{SCOC\_E\_SCU\_N\_CONN\_RESP}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_SCU\_N\_CONN\_RESP@{SCOC\_E\_SCU\_N\_CONN\_RESP}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a599dd859d7dd5cab1a73ad14fad7c8ce}} 
SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+CONN\+\_\+\+RESP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_SCU\_N\_DISC\_REQ@{SCOC\_E\_SCU\_N\_DISC\_REQ}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_SCU\_N\_DISC\_REQ@{SCOC\_E\_SCU\_N\_DISC\_REQ}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a0008548a48c2c9a2f7cbcced19759dda}} 
SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+DISC\+\_\+\+REQ&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_SCU\_N\_DATA\_REQ@{SCOC\_E\_SCU\_N\_DATA\_REQ}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_SCU\_N\_DATA\_REQ@{SCOC\_E\_SCU\_N\_DATA\_REQ}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425aa1f0308e8ef478eee4a033eeecdc2231}} 
SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+DATA\+\_\+\+REQ&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_SCU\_N\_EXP\_DATA\_REQ@{SCOC\_E\_SCU\_N\_EXP\_DATA\_REQ}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_SCU\_N\_EXP\_DATA\_REQ@{SCOC\_E\_SCU\_N\_EXP\_DATA\_REQ}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425ad282cbc57bacddc71bcd728b3274ce46}} 
SCOC\+\_\+\+E\+\_\+\+SCU\+\_\+\+N\+\_\+\+EXP\+\_\+\+DATA\+\_\+\+REQ&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_CONN\_IND@{SCOC\_E\_RCOC\_CONN\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_CONN\_IND@{SCOC\_E\_RCOC\_CONN\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425aa82907523ebb1417a2201cf7130c238d}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CONN\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_ROUT\_FAIL\_IND@{SCOC\_E\_RCOC\_ROUT\_FAIL\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_ROUT\_FAIL\_IND@{SCOC\_E\_RCOC\_ROUT\_FAIL\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425ab621d7aa2faee224f7c0525e56ce2699}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ROUT\+\_\+\+FAIL\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_RLSD\_IND@{SCOC\_E\_RCOC\_RLSD\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_RLSD\_IND@{SCOC\_E\_RCOC\_RLSD\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a01305fadc327e56b751d58481a264063}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+RLSD\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_REL\_COMPL\_IND@{SCOC\_E\_RCOC\_REL\_COMPL\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_REL\_COMPL\_IND@{SCOC\_E\_RCOC\_REL\_COMPL\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a416c3ef75e2cace8f5e1b4e7d2f8917d}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+REL\+\_\+\+COMPL\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_CREF\_IND@{SCOC\_E\_RCOC\_CREF\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_CREF\_IND@{SCOC\_E\_RCOC\_CREF\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425acaf6b9d2ffa0d7c0ad2d707563e46a7c}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CREF\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_CC\_IND@{SCOC\_E\_RCOC\_CC\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_CC\_IND@{SCOC\_E\_RCOC\_CC\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a0697775beb9c52b45d0ca9532ddc6aae}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+CC\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_DT1\_IND@{SCOC\_E\_RCOC\_DT1\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_DT1\_IND@{SCOC\_E\_RCOC\_DT1\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a9acfedc0cfa686f81a94b85e41e54971}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+DT1\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_DT2\_IND@{SCOC\_E\_RCOC\_DT2\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_DT2\_IND@{SCOC\_E\_RCOC\_DT2\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a9c93e046bcfb5a65a71045369c428868}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+DT2\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_IT\_IND@{SCOC\_E\_RCOC\_IT\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_IT\_IND@{SCOC\_E\_RCOC\_IT\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a50aaa6a954559dd63e4d200dc5b12783}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+IT\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_OTHER\_NPDU@{SCOC\_E\_RCOC\_OTHER\_NPDU}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_OTHER\_NPDU@{SCOC\_E\_RCOC\_OTHER\_NPDU}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425aa1d837bbb9d476e2d798d47db6d6f6f6}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+OTHER\+\_\+\+NPDU&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_RCOC\_ERROR\_IND@{SCOC\_E\_RCOC\_ERROR\_IND}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_RCOC\_ERROR\_IND@{SCOC\_E\_RCOC\_ERROR\_IND}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425ad66b94b1bae76f3896fc527e3792b8a9}} 
SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ERROR\+\_\+\+IND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_T\_IAR\_EXP@{SCOC\_E\_T\_IAR\_EXP}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_T\_IAR\_EXP@{SCOC\_E\_T\_IAR\_EXP}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a4aa4d410ca642316bc554d41ac2c1a0a}} 
SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAR\+\_\+\+EXP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_T\_IAS\_EXP@{SCOC\_E\_T\_IAS\_EXP}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_T\_IAS\_EXP@{SCOC\_E\_T\_IAS\_EXP}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a4496d1c145c195daec8cc3466bc303d2}} 
SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAS\+\_\+\+EXP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_CONN\_TMR\_EXP@{SCOC\_E\_CONN\_TMR\_EXP}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_CONN\_TMR\_EXP@{SCOC\_E\_CONN\_TMR\_EXP}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a02357dc1873bc6305465163def81acf4}} 
SCOC\+\_\+\+E\+\_\+\+CONN\+\_\+\+TMR\+\_\+\+EXP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_T\_REL\_EXP@{SCOC\_E\_T\_REL\_EXP}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_T\_REL\_EXP@{SCOC\_E\_T\_REL\_EXP}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425ab47cfad812cee9fadb871b590135d197}} 
SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REL\+\_\+\+EXP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_T\_INT\_EXP@{SCOC\_E\_T\_INT\_EXP}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_T\_INT\_EXP@{SCOC\_E\_T\_INT\_EXP}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425a101e2bfc95fdf9eff5a5b7ed343c419f}} 
SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+INT\+\_\+\+EXP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{SCOC\_E\_T\_REP\_REL\_EXP@{SCOC\_E\_T\_REP\_REL\_EXP}!sccp\_scoc.c@{sccp\_scoc.c}}\index{sccp\_scoc.c@{sccp\_scoc.c}!SCOC\_E\_T\_REP\_REL\_EXP@{SCOC\_E\_T\_REP\_REL\_EXP}}}\mbox{\label{sccp__scoc_8c_ae4ee749bd383ae54f3205638089b1425ac70e082bd3aaffa2f5c12400a633a24d}} 
SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REP\+\_\+\+REL\+\_\+\+EXP&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{sccp__scoc_8c_afbdc10179a062cf3760c785e50e1a049}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_add\_node@{conn\_add\_node}}
\index{conn\_add\_node@{conn\_add\_node}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_add\_node()}
{\footnotesize\ttfamily static int conn\+\_\+add\+\_\+node (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, \textbf{ sccp\+\_\+connection\+::inst}, and \textbf{ sccp\+\_\+connection\+::node}.



Referenced by \textbf{ conn\+\_\+create\+\_\+id()}.

\mbox{\label{sccp__scoc_8c_a80fe6912731e4a07a290499b36d77225}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_create@{conn\_create}}
\index{conn\_create@{conn\_create}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_create()}
{\footnotesize\ttfamily static struct \textbf{ sccp\+\_\+connection} $\ast$ conn\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{user }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ conn\+\_\+create\+\_\+id()}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+next\+\_\+conn\+\_\+id()}, and \textbf{ sccp\+\_\+connection\+::user}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}.

\mbox{\label{sccp__scoc_8c_a4e00b6be05d318f72de6daa45373c32b}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_create\_id@{conn\_create\_id}}
\index{conn\_create\_id@{conn\_create\_id}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_create\_id()}
{\footnotesize\ttfamily static struct \textbf{ sccp\+\_\+connection} $\ast$ conn\+\_\+create\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{user,  }\item[{uint32\+\_\+t}]{conn\+\_\+id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ conn\+\_\+add\+\_\+node()}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ conn\+\_\+tmr\+\_\+cb()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ INIT\+\_\+\+TIMER}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ int\+\_\+tmr\+\_\+cb()}, \textbf{ sccp\+\_\+connection\+::node}, \textbf{ rel\+\_\+tmr\+\_\+cb()}, \textbf{ rep\+\_\+rel\+\_\+tmr\+\_\+cb()}, \textbf{ rx\+\_\+inact\+\_\+tmr\+\_\+cb()}, \textbf{ sccp\+\_\+scoc\+\_\+fsm}, \textbf{ sccp\+\_\+connection\+::t\+\_\+conn}, \textbf{ sccp\+\_\+connection\+::t\+\_\+iar}, \textbf{ sccp\+\_\+connection\+::t\+\_\+ias}, \textbf{ sccp\+\_\+connection\+::t\+\_\+int}, \textbf{ sccp\+\_\+connection\+::t\+\_\+rel}, \textbf{ sccp\+\_\+connection\+::t\+\_\+rep\+\_\+rel}, \textbf{ tx\+\_\+inact\+\_\+tmr\+\_\+cb()}, and \textbf{ sccp\+\_\+connection\+::user}.



Referenced by \textbf{ conn\+\_\+create()}, and \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}.

\mbox{\label{sccp__scoc_8c_ac0040c1ba92c974d5664b712b7ac4c32}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_destroy@{conn\_destroy}}
\index{conn\_destroy@{conn\_destroy}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_destroy()}
{\footnotesize\ttfamily static void conn\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ conn\+\_\+opt\+\_\+data\+\_\+clear\+\_\+cache()}, \textbf{ conn\+\_\+stop\+\_\+connect\+\_\+timer()}, \textbf{ conn\+\_\+stop\+\_\+inact\+\_\+timers()}, \textbf{ conn\+\_\+stop\+\_\+release\+\_\+timers()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ sccp\+\_\+connection\+::inst}, and \textbf{ sccp\+\_\+connection\+::node}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+flush\+\_\+connections()}, and \textbf{ scoc\+\_\+fsm\+\_\+idle\+\_\+onenter()}.

\mbox{\label{sccp__scoc_8c_a8a4b05d4afd1b79b97980a8a9ac76dc9}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_find\_by\_id@{conn\_find\_by\_id}}
\index{conn\_find\_by\_id@{conn\_find\_by\_id}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_find\_by\_id()}
{\footnotesize\ttfamily static struct \textbf{ sccp\+\_\+connection} $\ast$ conn\+\_\+find\+\_\+by\+\_\+id (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+conn\+\_\+id\+\_\+exists()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+next\+\_\+conn\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}, and \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail()}.

\mbox{\label{sccp__scoc_8c_aa1b2e37854731d151c78a9b03a2531d4}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_opt\_data\_clear\_cache@{conn\_opt\_data\_clear\_cache}}
\index{conn\_opt\_data\_clear\_cache@{conn\_opt\_data\_clear\_cache}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_opt\_data\_clear\_cache()}
{\footnotesize\ttfamily static void conn\+\_\+opt\+\_\+data\+\_\+clear\+\_\+cache (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::opt\+\_\+data\+\_\+cache}.



Referenced by \textbf{ conn\+\_\+destroy()}, and \textbf{ xua\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache()}.

\mbox{\label{sccp__scoc_8c_a23fdba10a8259d5d27ce78c5c6fafdb9}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_restart\_rx\_inact\_timer@{conn\_restart\_rx\_inact\_timer}}
\index{conn\_restart\_rx\_inact\_timer@{conn\_restart\_rx\_inact\_timer}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_restart\_rx\_inact\_timer()}
{\footnotesize\ttfamily static void conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+IAR}, \textbf{ sccp\+\_\+timer\+\_\+schedule()}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+iar}.



Referenced by \textbf{ conn\+\_\+start\+\_\+inact\+\_\+timers()}, and \textbf{ scoc\+\_\+fsm\+\_\+active()}.

\mbox{\label{sccp__scoc_8c_a8735539ea3fba1610805db6c831a70e5}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_restart\_tx\_inact\_timer@{conn\_restart\_tx\_inact\_timer}}
\index{conn\_restart\_tx\_inact\_timer@{conn\_restart\_tx\_inact\_timer}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_restart\_tx\_inact\_timer()}
{\footnotesize\ttfamily static void conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+IAS}, \textbf{ sccp\+\_\+timer\+\_\+schedule()}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+ias}.



Referenced by \textbf{ conn\+\_\+start\+\_\+inact\+\_\+timers()}, and \textbf{ scoc\+\_\+fsm\+\_\+active()}.

\mbox{\label{sccp__scoc_8c_a189a79e56f7c8fff71480d3022aaa713}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_start\_connect\_timer@{conn\_start\_connect\_timer}}
\index{conn\_start\_connect\_timer@{conn\_start\_connect\_timer}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_start\_connect\_timer()}
{\footnotesize\ttfamily static void conn\+\_\+start\+\_\+connect\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+CONN\+\_\+\+EST}, \textbf{ sccp\+\_\+timer\+\_\+schedule()}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+conn}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out()}, and \textbf{ scoc\+\_\+fsm\+\_\+idle()}.

\mbox{\label{sccp__scoc_8c_a39e9b1ece19c77a5a76d3e85eeab7689}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_start\_inact\_timers@{conn\_start\_inact\_timers}}
\index{conn\_start\_inact\_timers@{conn\_start\_inact\_timers}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_start\_inact\_timers()}
{\footnotesize\ttfamily static void conn\+\_\+start\+\_\+inact\+\_\+timers (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer()}, and \textbf{ conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer()}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+in()}, and \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out()}.

\mbox{\label{sccp__scoc_8c_a58e817578fc1ac16f18d95501b1246c7}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_start\_int\_timer@{conn\_start\_int\_timer}}
\index{conn\_start\_int\_timer@{conn\_start\_int\_timer}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_start\_int\_timer()}
{\footnotesize\ttfamily static void conn\+\_\+start\+\_\+int\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+INT}, \textbf{ sccp\+\_\+timer\+\_\+schedule()}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+int}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+disconn\+\_\+pend()}.

\mbox{\label{sccp__scoc_8c_a2e18b947fab3e1ce19a48ff10b7a3da0}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_start\_rel\_timer@{conn\_start\_rel\_timer}}
\index{conn\_start\_rel\_timer@{conn\_start\_rel\_timer}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_start\_rel\_timer()}
{\footnotesize\ttfamily static void conn\+\_\+start\+\_\+rel\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+REL}, \textbf{ sccp\+\_\+timer\+\_\+schedule()}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+rel}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+active()}, and \textbf{ scoc\+\_\+fsm\+\_\+wait\+\_\+conn\+\_\+conf()}.

\mbox{\label{sccp__scoc_8c_a847111956a2ee0d7db5ff8d12a3b6a63}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_start\_rep\_rel\_timer@{conn\_start\_rep\_rel\_timer}}
\index{conn\_start\_rep\_rel\_timer@{conn\_start\_rep\_rel\_timer}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_start\_rep\_rel\_timer()}
{\footnotesize\ttfamily static void conn\+\_\+start\+\_\+rep\+\_\+rel\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+REPEAT\+\_\+\+REL}, \textbf{ sccp\+\_\+timer\+\_\+schedule()}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+rep\+\_\+rel}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+disconn\+\_\+pend()}.

\mbox{\label{sccp__scoc_8c_a9dec3186748f5cfa9fcd227008ce315b}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_stop\_connect\_timer@{conn\_stop\_connect\_timer}}
\index{conn\_stop\_connect\_timer@{conn\_stop\_connect\_timer}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_stop\_connect\_timer()}
{\footnotesize\ttfamily static void conn\+\_\+stop\+\_\+connect\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::t\+\_\+conn}.



Referenced by \textbf{ conn\+\_\+destroy()}, \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out()}, and \textbf{ scoc\+\_\+fsm\+\_\+wait\+\_\+conn\+\_\+conf()}.

\mbox{\label{sccp__scoc_8c_adc9da9fad6b00dee81e97a0fa4228dd1}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_stop\_inact\_timers@{conn\_stop\_inact\_timers}}
\index{conn\_stop\_inact\_timers@{conn\_stop\_inact\_timers}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_stop\_inact\_timers()}
{\footnotesize\ttfamily static void conn\+\_\+stop\+\_\+inact\+\_\+timers (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::t\+\_\+iar}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+ias}.



Referenced by \textbf{ conn\+\_\+destroy()}, and \textbf{ scoc\+\_\+fsm\+\_\+active()}.

\mbox{\label{sccp__scoc_8c_af394d94ac0b9eb59994fcd830bcf9484}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_stop\_release\_timers@{conn\_stop\_release\_timers}}
\index{conn\_stop\_release\_timers@{conn\_stop\_release\_timers}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_stop\_release\_timers()}
{\footnotesize\ttfamily static void conn\+\_\+stop\+\_\+release\+\_\+timers (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::t\+\_\+int}, \textbf{ sccp\+\_\+connection\+::t\+\_\+rel}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+rep\+\_\+rel}.



Referenced by \textbf{ conn\+\_\+destroy()}, and \textbf{ scoc\+\_\+fsm\+\_\+disconn\+\_\+pend()}.

\mbox{\label{sccp__scoc_8c_a2b9eb42668f90076cb1e342cf647df70}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!conn\_tmr\_cb@{conn\_tmr\_cb}}
\index{conn\_tmr\_cb@{conn\_tmr\_cb}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{conn\_tmr\_cb()}
{\footnotesize\ttfamily static void conn\+\_\+tmr\+\_\+cb (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+CONN\+\_\+\+TMR\+\_\+\+EXP}.



Referenced by \textbf{ conn\+\_\+create\+\_\+id()}.

\mbox{\label{sccp__scoc_8c_a2683092df4bbb9e0b0a5cf611c4cea6b}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!gen\_coerr@{gen\_coerr}}
\index{gen\_coerr@{gen\_coerr}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{gen\_coerr()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ gen\+\_\+coerr (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{route\+\_\+ctx,  }\item[{uint32\+\_\+t}]{dest\+\_\+ref,  }\item[{uint32\+\_\+t}]{err\+\_\+cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+ERROR}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COERR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CAUSE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ tx\+\_\+coerr\+\_\+from\+\_\+xua()}.

\mbox{\label{sccp__scoc_8c_a4fc6f1ef35ace6e6db924bb879d1ddc9}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!gen\_coref\_without\_conn@{gen\_coref\_without\_conn}}
\index{gen\_coref\_without\_conn@{gen\_coref\_without\_conn}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{gen\_coref\_without\_conn()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ gen\+\_\+coref\+\_\+without\+\_\+conn (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua\+\_\+in,  }\item[{uint32\+\_\+t}]{ref\+\_\+cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::route\+\_\+ctx}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+REFUSAL}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CAUSE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DATA}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+IMPORTANCE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, \textbf{ xua\+\_\+msg\+\_\+alloc()}, and \textbf{ xua\+\_\+msg\+\_\+copy\+\_\+part()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail()}.

\mbox{\label{sccp__scoc_8c_aa933aad17e620e1c736279d86f6c1237}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!gen\_relco@{gen\_relco}}
\index{gen\_relco@{gen\_relco}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{gen\_relco()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ gen\+\_\+relco (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{route\+\_\+ctx,  }\item[{uint32\+\_\+t}]{dest\+\_\+ref,  }\item[{uint32\+\_\+t}]{src\+\_\+ref }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ tx\+\_\+relco\+\_\+from\+\_\+xua()}.

\mbox{\label{sccp__scoc_8c_a2e8fab393c6769002559ffb8e44b9598}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!gen\_rlsd@{gen\_rlsd}}
\index{gen\_rlsd@{gen\_rlsd}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{gen\_rlsd()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ gen\+\_\+rlsd (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{route\+\_\+ctx,  }\item[{uint32\+\_\+t}]{dest\+\_\+ref,  }\item[{uint32\+\_\+t}]{src\+\_\+ref }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ tx\+\_\+rlsd\+\_\+from\+\_\+xua\+\_\+twoway()}.

\mbox{\label{sccp__scoc_8c_ab08b479680b7e13b707ec0e3a064b2aa}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!get\_cref\_cause\_for\_ret@{get\_cref\_cause\_for\_ret}}
\index{get\_cref\_cause\_for\_ret@{get\_cref\_cause\_for\_ret}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{get\_cref\_cause\_for\_ret()}
{\footnotesize\ttfamily static uint8\+\_\+t get\+\_\+cref\+\_\+cause\+\_\+for\+\_\+ret (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{ret\+\_\+cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ cause\+\_\+map\+\_\+cref}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail()}.

\mbox{\label{sccp__scoc_8c_a157823e2b77ac81e864ea5ac91b1af8b}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!int\_tmr\_cb@{int\_tmr\_cb}}
\index{int\_tmr\_cb@{int\_tmr\_cb}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{int\_tmr\_cb()}
{\footnotesize\ttfamily static void int\+\_\+tmr\+\_\+cb (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+INT\+\_\+\+EXP}.



Referenced by \textbf{ conn\+\_\+create\+\_\+id()}.

\mbox{\label{sccp__scoc_8c_aefb134e061f3130dda7d932d4d1687a8}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!osmo\_sccp\_conn\_id\_exists@{osmo\_sccp\_conn\_id\_exists}}
\index{osmo\_sccp\_conn\_id\_exists@{osmo\_sccp\_conn\_id\_exists}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{osmo\_sccp\_conn\_id\_exists()}
{\footnotesize\ttfamily bool osmo\+\_\+sccp\+\_\+conn\+\_\+id\+\_\+exists (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{id }\end{DoxyParamCaption})}



References \textbf{ conn\+\_\+find\+\_\+by\+\_\+id()}, and \textbf{ sccp\+\_\+connection\+::inst}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+conn\+\_\+resp\+\_\+msg()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+data()}, and \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+disconn\+\_\+data()}.

\mbox{\label{sccp__scoc_8c_aefc784e9f3a56c93d1d62fb10732c2c8}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!osmo\_sccp\_instance\_next\_conn\_id@{osmo\_sccp\_instance\_next\_conn\_id}}
\index{osmo\_sccp\_instance\_next\_conn\_id@{osmo\_sccp\_instance\_next\_conn\_id}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{osmo\_sccp\_instance\_next\_conn\_id()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+instance\+\_\+next\+\_\+conn\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{sccp }\end{DoxyParamCaption})}



References \textbf{ conn\+\_\+find\+\_\+by\+\_\+id()}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::next\+\_\+id}.



Referenced by \textbf{ conn\+\_\+create()}.

\mbox{\label{sccp__scoc_8c_a80a39e9ce7614bcd9715d28a72d8d1d8}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!osmo\_sccp\_user\_sap\_down@{osmo\_sccp\_user\_sap\_down}}
\index{osmo\_sccp\_user\_sap\_down@{osmo\_sccp\_user\_sap\_down}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{osmo\_sccp\_user\_sap\_down()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu,  }\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



Main entrance function for primitives from SCCP User. 

Implies a msgb\+\_\+free(oph-\/$>$msg), otherwise the same as osmo\+\_\+sccp\+\_\+user\+\_\+sap(). 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP User sending us the primitive \\
\hline
\mbox{\texttt{ in}}  & {\em oph} & Osmocom primitive sent by the user \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, and \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+conn\+\_\+req()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+conn\+\_\+resp\+\_\+msg()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+data()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+disconn\+\_\+data()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+unitdata()}, and \textbf{ sccp\+\_\+scmg\+\_\+tx()}.

\mbox{\label{sccp__scoc_8c_a1e856f6b6f7d9533aca0ddab9e045226}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!osmo\_sccp\_user\_sap\_down\_nofree@{osmo\_sccp\_user\_sap\_down\_nofree}}
\index{osmo\_sccp\_user\_sap\_down\_nofree@{osmo\_sccp\_user\_sap\_down\_nofree}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{osmo\_sccp\_user\_sap\_down\_nofree()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu,  }\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



Main entrance function for primitives from SCCP User. 

The caller is required to free oph-\/$>$msg, otherwise the same as \doxyref{osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down()}{p.}{sccp__scoc_8c_a80a39e9ce7614bcd9715d28a72d8d1d8}. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP User sending us the primitive \\
\hline
\mbox{\texttt{ in}}  & {\em oph} & Osmocom primitive sent by the user \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ conn\+\_\+create\+\_\+id()}, \textbf{ conn\+\_\+find\+\_\+by\+\_\+id()}, \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::connect}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+CONNECT}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DATA}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DISCONNECT}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+RESET}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+UNITDATA}, \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+name()}, \textbf{ sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}, \textbf{ scu\+\_\+prim\+\_\+conn\+\_\+id()}, \textbf{ scu\+\_\+scoc\+\_\+event\+\_\+map}, and \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down()}.

\mbox{\label{sccp__scoc_8c_acc77ad920c0636946484d58bdb7f3cd9}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!osmo\_static\_assert@{osmo\_static\_assert}}
\index{osmo\_static\_assert@{osmo\_static\_assert}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{osmo\_static\_assert()}
{\footnotesize\ttfamily osmo\+\_\+static\+\_\+assert (\begin{DoxyParamCaption}\item[{ARRAY\+\_\+\+SIZE(\textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+defaults})}]{ = {\ttfamily =(\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN})~\&\&ARRAY\+\_\+SIZE(\textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+names})==(\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN})},  }\item[{assert\+\_\+osmo\+\_\+sccp\+\_\+timers\+\_\+count}]{ }\end{DoxyParamCaption})}

\mbox{\label{sccp__scoc_8c_a6a89200fa789e752dbde5eb47977efeb}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!rel\_tmr\_cb@{rel\_tmr\_cb}}
\index{rel\_tmr\_cb@{rel\_tmr\_cb}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{rel\_tmr\_cb()}
{\footnotesize\ttfamily static void rel\+\_\+tmr\+\_\+cb (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REL\+\_\+\+EXP}.



Referenced by \textbf{ conn\+\_\+create\+\_\+id()}.

\mbox{\label{sccp__scoc_8c_a6d79ede88580508b0b60696aead622a9}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!rep\_rel\_tmr\_cb@{rep\_rel\_tmr\_cb}}
\index{rep\_rel\_tmr\_cb@{rep\_rel\_tmr\_cb}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{rep\_rel\_tmr\_cb()}
{\footnotesize\ttfamily static void rep\+\_\+rel\+\_\+tmr\+\_\+cb (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REP\+\_\+\+REL\+\_\+\+EXP}.



Referenced by \textbf{ conn\+\_\+create\+\_\+id()}.

\mbox{\label{sccp__scoc_8c_aef0cb6f0c8ca70cdd68e9e8ad9cfd395}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!rx\_inact\_tmr\_cb@{rx\_inact\_tmr\_cb}}
\index{rx\_inact\_tmr\_cb@{rx\_inact\_tmr\_cb}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{rx\_inact\_tmr\_cb()}
{\footnotesize\ttfamily static void rx\+\_\+inact\+\_\+tmr\+\_\+cb (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAR\+\_\+\+EXP}.



Referenced by \textbf{ conn\+\_\+create\+\_\+id()}.

\mbox{\label{sccp__scoc_8c_aa334ab3cbe57ce696372641ca5a1b692}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_find\_user@{sccp\_find\_user}}
\index{sccp\_find\_user@{sccp\_find\_user}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_find\_user()}
{\footnotesize\ttfamily static struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ sccp\+\_\+find\+\_\+user (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::pc}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::presence}, \textbf{ sccp\+\_\+user\+\_\+find()}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ssn}, \textbf{ sua\+\_\+addr\+\_\+parse()}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+ADDR}, \textbf{ xua\+\_\+dialect\+\_\+sua}, and \textbf{ xua\+\_\+hdr\+\_\+dump()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}.

\mbox{\label{sccp__scoc_8c_ac9947e47665a8aa2e294b26c599a4ca7}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_flush\_connections@{sccp\_scoc\_flush\_connections}}
\index{sccp\_scoc\_flush\_connections@{sccp\_scoc\_flush\_connections}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_scoc\_flush\_connections()}
{\footnotesize\ttfamily void sccp\+\_\+scoc\+\_\+flush\+\_\+connections (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ conn\+\_\+destroy()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, and \textbf{ sccp\+\_\+connection\+::node}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+destroy()}.

\mbox{\label{sccp__scoc_8c_a7e6ca58debc34b50244590c90e68943f}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_rx\_from\_scrc@{sccp\_scoc\_rx\_from\_scrc}}
\index{sccp\_scoc\_rx\_from\_scrc@{sccp\_scoc\_rx\_from\_scrc}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_scoc\_rx\_from\_scrc()}
{\footnotesize\ttfamily void sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



Main entrance function for primitives from the SCRC (Routing Control) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance in which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em xua} & SUA message in \doxyref{xua\+\_\+msg}{p.}{structxua__msg} format \\
\hline
\end{DoxyParams}


References \textbf{ conn\+\_\+create()}, \textbf{ conn\+\_\+find\+\_\+by\+\_\+id()}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ sccp\+\_\+connection\+::incoming}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ sccp\+\_\+find\+\_\+user()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+src\+\_\+ref()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+unass\+\_\+local\+\_\+ref()}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ sua\+\_\+scoc\+\_\+event\+\_\+map}, \textbf{ xua\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ scrc\+\_\+node\+\_\+6()}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, and \textbf{ scrc\+\_\+translate\+\_\+node\+\_\+9()}.

\mbox{\label{sccp__scoc_8c_ab58aa945ab650c771b53e4e1561a2eae}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_rx\_inval\_opc@{sccp\_scoc\_rx\_inval\_opc}}
\index{sccp\_scoc\_rx\_inval\_opc@{sccp\_scoc\_rx\_inval\_opc}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_scoc\_rx\_inval\_opc()}
{\footnotesize\ttfamily static void sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2()}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CODA}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CODT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COERR}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RESCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RESRE}, \textbf{ tx\+\_\+coerr\+\_\+from\+\_\+xua()}, \textbf{ xua\+\_\+dialect\+\_\+sua}, and \textbf{ xua\+\_\+hdr\+\_\+dump()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}.

\mbox{\label{sccp__scoc_8c_a930107d787711851474bf8cc3029cee7}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_rx\_inval\_src\_ref@{sccp\_scoc\_rx\_inval\_src\_ref}}
\index{sccp\_scoc\_rx\_inval\_src\_ref@{sccp\_scoc\_rx\_inval\_src\_ref}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_scoc\_rx\_inval\_src\_ref()}
{\footnotesize\ttfamily static void sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+src\+\_\+ref (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua,  }\item[{uint32\+\_\+t}]{inval\+\_\+src\+\_\+ref }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COIT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RESCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RESRE}, \textbf{ tx\+\_\+coerr\+\_\+from\+\_\+xua()}, \textbf{ tx\+\_\+rlsd\+\_\+from\+\_\+xua\+\_\+twoway()}, \textbf{ xua\+\_\+dialect\+\_\+sua}, and \textbf{ xua\+\_\+hdr\+\_\+dump()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}.

\mbox{\label{sccp__scoc_8c_a234088ffd988763d466232cac8590c68}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_rx\_scrc\_rout\_fail@{sccp\_scoc\_rx\_scrc\_rout\_fail}}
\index{sccp\_scoc\_rx\_scrc\_rout\_fail@{sccp\_scoc\_rx\_scrc\_rout\_fail}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_scoc\_rx\_scrc\_rout\_fail()}
{\footnotesize\ttfamily void sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua,  }\item[{uint32\+\_\+t}]{return\+\_\+cause }\end{DoxyParamCaption})}



SCOC\+: Receive SCRC Routing Failure. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance on which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em xua} & SUA message that was failed to route \\
\hline
\mbox{\texttt{ in}}  & {\em return\+\_\+cause} & Reason (cause) for routing failure \\
\hline
\end{DoxyParams}


References \textbf{ conn\+\_\+find\+\_\+by\+\_\+id()}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ gen\+\_\+coref\+\_\+without\+\_\+conn()}, \textbf{ get\+\_\+cref\+\_\+cause\+\_\+for\+\_\+ret()}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ROUT\+\_\+\+FAIL\+\_\+\+IND}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ xua\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, \textbf{ xua\+\_\+msg\+\_\+free()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ scrc\+\_\+node\+\_\+2()}, \textbf{ scrc\+\_\+node\+\_\+4()}, and \textbf{ scrc\+\_\+node\+\_\+6()}.

\mbox{\label{sccp__scoc_8c_adf7fcb47b901d03b8736dd6e963452a2}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_rx\_unass\_local\_ref@{sccp\_scoc\_rx\_unass\_local\_ref}}
\index{sccp\_scoc\_rx\_unass\_local\_ref@{sccp\_scoc\_rx\_unass\_local\_ref}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_scoc\_rx\_unass\_local\_ref()}
{\footnotesize\ttfamily static void sccp\+\_\+scoc\+\_\+rx\+\_\+unass\+\_\+local\+\_\+ref (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CODA}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CODT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COERR}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COIT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RESCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RESRE}, \textbf{ tx\+\_\+coerr\+\_\+from\+\_\+xua()}, \textbf{ tx\+\_\+relco\+\_\+from\+\_\+xua()}, \textbf{ xua\+\_\+dialect\+\_\+sua}, and \textbf{ xua\+\_\+hdr\+\_\+dump()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}.

\mbox{\label{sccp__scoc_8c_a9b54133b478681e048c5556e100e463f}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_show\_connections@{sccp\_scoc\_show\_connections}}
\index{sccp\_scoc\_show\_connections@{sccp\_scoc\_show\_connections}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_scoc\_show\_connections()}
{\footnotesize\ttfamily void sccp\+\_\+scoc\+\_\+show\+\_\+connections (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, and \textbf{ vty\+\_\+show\+\_\+connection()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{sccp__scoc_8c_aa5bdbe30a289184e31cbc829af8f5f97}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_timer\_schedule@{sccp\_timer\_schedule}}
\index{sccp\_timer\_schedule@{sccp\_timer\_schedule}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sccp\_timer\_schedule()}
{\footnotesize\ttfamily static void sccp\+\_\+timer\+\_\+schedule (\begin{DoxyParamCaption}\item[{const struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{struct osmo\+\_\+timer\+\_\+list $\ast$}]{timer,  }\item[{enum \textbf{ osmo\+\_\+sccp\+\_\+timer}}]{timer\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::inst}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::tdefs}.



Referenced by \textbf{ conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer()}, \textbf{ conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer()}, \textbf{ conn\+\_\+start\+\_\+connect\+\_\+timer()}, \textbf{ conn\+\_\+start\+\_\+int\+\_\+timer()}, \textbf{ conn\+\_\+start\+\_\+rel\+\_\+timer()}, and \textbf{ conn\+\_\+start\+\_\+rep\+\_\+rel\+\_\+timer()}.

\mbox{\label{sccp__scoc_8c_ac6b2b3dc156ee4e490b8be68395a1461}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scoc\_fsm\_active@{scoc\_fsm\_active}}
\index{scoc\_fsm\_active@{scoc\_fsm\_active}!sccp\_scoc.c@{sccp\_scoc.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{ conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer()}, \textbf{ conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer()}, \textbf{ conn\+\_\+start\+\_\+rel\+\_\+timer()}, \textbf{ conn\+\_\+stop\+\_\+inact\+\_\+timers()}, \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ sccp\+\_\+connection\+::importance}, \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{ 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{ scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \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\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, \textbf{ xua\+\_\+msg\+\_\+alloc()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.

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

\mbox{\label{sccp__scoc_8c_ad49485deb0bbd76142c9af402ce34748}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scoc\_fsm\_conn\_pend\_out@{scoc\_fsm\_conn\_pend\_out}}
\index{scoc\_fsm\_conn\_pend\_out@{scoc\_fsm\_conn\_pend\_out}!sccp\_scoc.c@{sccp\_scoc.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{ conn\+\_\+start\+\_\+connect\+\_\+timer()}, \textbf{ conn\+\_\+start\+\_\+inact\+\_\+timers()}, \textbf{ conn\+\_\+stop\+\_\+connect\+\_\+timer()}, \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{ 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{ 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{ scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}, \textbf{ xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache()}.

\mbox{\label{sccp__scoc_8c_aeaa06e98cfa763744aaa6381ac34ae13}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scoc\_fsm\_disconn\_pend@{scoc\_fsm\_disconn\_pend}}
\index{scoc\_fsm\_disconn\_pend@{scoc\_fsm\_disconn\_pend}!sccp\_scoc.c@{sccp\_scoc.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{ conn\+\_\+start\+\_\+int\+\_\+timer()}, \textbf{ conn\+\_\+start\+\_\+rep\+\_\+rel\+\_\+timer()}, \textbf{ conn\+\_\+stop\+\_\+release\+\_\+timers()}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ S\+\_\+\+IDLE}, \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}, \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REP\+\_\+\+REL\+\_\+\+EXP}, and \textbf{ xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send()}.

\mbox{\label{sccp__scoc_8c_a9bb147b770c1197197cb22a6e81abe71}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scoc\_fsm\_idle@{scoc\_fsm\_idle}}
\index{scoc\_fsm\_idle@{scoc\_fsm\_idle}!sccp\_scoc.c@{sccp\_scoc.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{ conn\+\_\+start\+\_\+connect\+\_\+timer()}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::connect}, \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ sccp\+\_\+connection\+::importance}, \textbf{ xua\+\_\+msg\+::mtp}, \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{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::sccp\+\_\+class}, \textbf{ sccp\+\_\+connection\+::sccp\+\_\+class}, \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{ scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ sua\+\_\+addr\+\_\+parse()}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \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\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.

\mbox{\label{sccp__scoc_8c_ad2ba1d15d23b9e33c6bb34edfe243773}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scoc\_fsm\_idle\_onenter@{scoc\_fsm\_idle\_onenter}}
\index{scoc\_fsm\_idle\_onenter@{scoc\_fsm\_idle\_onenter}!sccp\_scoc.c@{sccp\_scoc.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{ conn\+\_\+destroy()}.

\mbox{\label{sccp__scoc_8c_a5308c356af6081c895cc77c647ce0d93}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scoc\_fsm\_wait\_conn\_conf@{scoc\_fsm\_wait\_conn\_conf}}
\index{scoc\_fsm\_wait\_conn\_conf@{scoc\_fsm\_wait\_conn\_conf}!sccp\_scoc.c@{sccp\_scoc.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{ conn\+\_\+start\+\_\+rel\+\_\+timer()}, \textbf{ conn\+\_\+stop\+\_\+connect\+\_\+timer()}, \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ xua\+\_\+msg\+::mtp}, \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{ 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}, \textbf{ xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, \textbf{ xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.

\mbox{\label{sccp__scoc_8c_abd7b5fed645ddb716874c09626bea760}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scu\_gen\_encode\_and\_send@{scu\_gen\_encode\_and\_send}}
\index{scu\_gen\_encode\_and\_send@{scu\_gen\_encode\_and\_send}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{scu\_gen\_encode\_and\_send()}
{\footnotesize\ttfamily static void scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{uint32\+\_\+t}]{event,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua,  }\item[{unsigned int}]{primitive,  }\item[{enum osmo\+\_\+prim\+\_\+operation}]{operation }\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\+\_\+disconn\+\_\+param\+::cause}, \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+data\+\_\+param\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+disconn\+\_\+param\+::conn\+\_\+id}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::connect}, \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::data}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::disconnect}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::importance}, \textbf{ osmo\+\_\+scu\+\_\+data\+\_\+param\+::importance}, \textbf{ osmo\+\_\+scu\+\_\+disconn\+\_\+param\+::importance}, \textbf{ sccp\+\_\+connection\+::importance}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+scu\+\_\+disconn\+\_\+param\+::originator}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ORIG\+\_\+\+UNDEFINED}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+CONNECT}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DATA}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DISCONNECT}, \textbf{ osmo\+\_\+scu\+\_\+disconn\+\_\+param\+::responding\+\_\+addr}, \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::sccp\+\_\+class}, \textbf{ sccp\+\_\+connection\+::sccp\+\_\+class}, \textbf{ sccp\+\_\+user\+\_\+prim\+\_\+up()}, \textbf{ scu\+\_\+prim\+\_\+alloc()}, \textbf{ sua\+\_\+addr\+\_\+parse()}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CAUSE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DATA}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+IMPORTANCE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+PROTO\+\_\+\+CLASS}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+ADDR}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}, \textbf{ sccp\+\_\+connection\+::user}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+active()}, \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out()}, and \textbf{ scoc\+\_\+fsm\+\_\+idle()}.

\mbox{\label{sccp__scoc_8c_a99b52a75e444c05c2147df133f69c339}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scu\_msgb\_alloc@{scu\_msgb\_alloc}}
\index{scu\_msgb\_alloc@{scu\_msgb\_alloc}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{scu\_msgb\_alloc()}
{\footnotesize\ttfamily static struct msgb $\ast$ scu\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ SCU\+\_\+\+MSGB\+\_\+\+SIZE}.



Referenced by \textbf{ scu\+\_\+prim\+\_\+alloc()}.

\mbox{\label{sccp__scoc_8c_a53275efec53c6dc8d850554c29cc61a4}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scu\_prim\_alloc@{scu\_prim\_alloc}}
\index{scu\_prim\_alloc@{scu\_prim\_alloc}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{scu\_prim\_alloc()}
{\footnotesize\ttfamily static struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$ scu\+\_\+prim\+\_\+alloc (\begin{DoxyParamCaption}\item[{unsigned int}]{primitive,  }\item[{enum osmo\+\_\+prim\+\_\+operation}]{operation }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ SCCP\+\_\+\+SAP\+\_\+\+USER}, and \textbf{ scu\+\_\+msgb\+\_\+alloc()}.



Referenced by \textbf{ scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}.

\mbox{\label{sccp__scoc_8c_a5520283194b4626e792e09c401b4fc30}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scu\_prim\_conn\_id@{scu\_prim\_conn\_id}}
\index{scu\_prim\_conn\_id@{scu\_prim\_conn\_id}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{scu\_prim\_conn\_id()}
{\footnotesize\ttfamily static uint32\+\_\+t scu\+\_\+prim\+\_\+conn\+\_\+id (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+data\+\_\+param\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+disconn\+\_\+param\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+reset\+\_\+param\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::connect}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::data}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::disconnect}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+CONNECT}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DATA}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DISCONNECT}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+RESET}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::reset}, and \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}.

\mbox{\label{sccp__scoc_8c_a46fb6194a5c61199cff01d5b666551cd}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!tx\_coerr\_from\_xua@{tx\_coerr\_from\_xua}}
\index{tx\_coerr\_from\_xua@{tx\_coerr\_from\_xua}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{tx\_coerr\_from\_xua()}
{\footnotesize\ttfamily static void tx\+\_\+coerr\+\_\+from\+\_\+xua (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{in,  }\item[{uint32\+\_\+t}]{err\+\_\+cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ gen\+\_\+coerr()}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ xua\+\_\+msg\+\_\+free()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+src\+\_\+ref()}, and \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+unass\+\_\+local\+\_\+ref()}.

\mbox{\label{sccp__scoc_8c_ae2e0efede2e445975eca83e08f98b8e4}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!tx\_inact\_tmr\_cb@{tx\_inact\_tmr\_cb}}
\index{tx\_inact\_tmr\_cb@{tx\_inact\_tmr\_cb}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{tx\_inact\_tmr\_cb()}
{\footnotesize\ttfamily static void tx\+\_\+inact\+\_\+tmr\+\_\+cb (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ sccp\+\_\+connection\+::fi}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAS\+\_\+\+EXP}.



Referenced by \textbf{ conn\+\_\+create\+\_\+id()}.

\mbox{\label{sccp__scoc_8c_afdbd5fba1c3acdd3aa55c716035311b4}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!tx\_relco\_from\_xua@{tx\_relco\_from\_xua}}
\index{tx\_relco\_from\_xua@{tx\_relco\_from\_xua}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{tx\_relco\_from\_xua()}
{\footnotesize\ttfamily static void tx\+\_\+relco\+\_\+from\+\_\+xua (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{in }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ gen\+\_\+relco()}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ xua\+\_\+msg\+\_\+free()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+unass\+\_\+local\+\_\+ref()}.

\mbox{\label{sccp__scoc_8c_a2aed405c30727b999fd129a5f8ce667e}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!tx\_rlsd\_from\_xua\_twoway@{tx\_rlsd\_from\_xua\_twoway}}
\index{tx\_rlsd\_from\_xua\_twoway@{tx\_rlsd\_from\_xua\_twoway}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{tx\_rlsd\_from\_xua\_twoway()}
{\footnotesize\ttfamily static void tx\+\_\+rlsd\+\_\+from\+\_\+xua\+\_\+twoway (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{in }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ gen\+\_\+rlsd()}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::route\+\_\+ctx}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+RLSD\+\_\+\+IND}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ xua\+\_\+msg\+\_\+free()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+src\+\_\+ref()}.

\mbox{\label{sccp__scoc_8c_a6cb4d67084ea0cb4d7b1ebffe12b87ad}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!vty\_show\_connection@{vty\_show\_connection}}
\index{vty\_show\_connection@{vty\_show\_connection}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{vty\_show\_connection()}
{\footnotesize\ttfamily static void vty\+\_\+show\+\_\+connection (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::called\+\_\+addr}, \textbf{ sccp\+\_\+connection\+::calling\+\_\+addr}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ sccp\+\_\+connection\+::incoming}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+PC\+\_\+\+INVALID}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+valid()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::pc}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::primary\+\_\+pc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ssn}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::ssn}, and \textbf{ sccp\+\_\+connection\+::user}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+show\+\_\+connections()}.

\mbox{\label{sccp__scoc_8c_ad6190dcd4a02106c69088573c6262e3d}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!xua\_drop\_data\_check\_drop@{xua\_drop\_data\_check\_drop}}
\index{xua\_drop\_data\_check\_drop@{xua\_drop\_data\_check\_drop}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{xua\_drop\_data\_check\_drop()}
{\footnotesize\ttfamily static bool xua\+\_\+drop\+\_\+data\+\_\+check\+\_\+drop (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim,  }\item[{unsigned}]{lim,  }\item[{const char $\ast$}]{message }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, and \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+name()}.



Referenced by \textbf{ xua\+\_\+opt\+\_\+data\+\_\+cache\+\_\+keep()}, and \textbf{ xua\+\_\+opt\+\_\+data\+\_\+length\+\_\+lim()}.

\mbox{\label{sccp__scoc_8c_a5d6d7ccd6e86a164d8c4554a131eaf42}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!xua\_gen\_encode\_and\_send@{xua\_gen\_encode\_and\_send}}
\index{xua\_gen\_encode\_and\_send@{xua\_gen\_encode\_and\_send}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{xua\_gen\_encode\_and\_send()}
{\footnotesize\ttfamily static int xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{uint32\+\_\+t}]{event,  }\item[{const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim,  }\item[{int}]{msg\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ msg\+\_\+type}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ xua\+\_\+gen\+\_\+msg\+\_\+co()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+active()}, \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+in()}, \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out()}, \textbf{ scoc\+\_\+fsm\+\_\+idle()}, and \textbf{ scoc\+\_\+fsm\+\_\+wait\+\_\+conn\+\_\+conf()}.

\mbox{\label{sccp__scoc_8c_a9366bf2c2fe53233989e80e358829ffd}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!xua\_gen\_msg\_co@{xua\_gen\_msg\_co}}
\index{xua\_gen\_msg\_co@{xua\_gen\_msg\_co}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{xua\_gen\_msg\_co()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ xua\+\_\+gen\+\_\+msg\+\_\+co (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{uint32\+\_\+t}]{event,  }\item[{const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim,  }\item[{int}]{msg\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::called\+\_\+addr}, \textbf{ sccp\+\_\+connection\+::calling\+\_\+addr}, \textbf{ osmo\+\_\+scu\+\_\+disconn\+\_\+param\+::cause}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::disconnect}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ msg\+\_\+type}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::presence}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::route\+\_\+ctx}, \textbf{ sccp\+\_\+connection\+::sccp\+\_\+class}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+REFUSAL}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+RELEASE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CODT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COIT}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELCO}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CAUSE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DATA}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+PROTO\+\_\+\+CLASS}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SEQ\+\_\+\+CTRL}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+sccp\+\_\+addr()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, \textbf{ xua\+\_\+msg\+\_\+alloc()}, \textbf{ xua\+\_\+msg\+\_\+free()}, and \textbf{ xua\+\_\+opt\+\_\+data\+\_\+length\+\_\+lim()}.



Referenced by \textbf{ xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}.

\mbox{\label{sccp__scoc_8c_ab3c3c9aaa502d69c91a102577ccb465d}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!xua\_gen\_relre@{xua\_gen\_relre}}
\index{xua\_gen\_relre@{xua\_gen\_relre}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{xua\_gen\_relre()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ xua\+\_\+gen\+\_\+relre (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{uint32\+\_\+t}]{cause,  }\item[{struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::route\+\_\+ctx}, \textbf{ SUA\+\_\+\+CAUSE\+\_\+\+T\+\_\+\+RELEASE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+CAUSE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DATA}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CO}, \textbf{ XUA\+\_\+\+HDR}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+data()}, \textbf{ xua\+\_\+msg\+\_\+add\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+alloc()}.



Referenced by \textbf{ xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send()}.

\mbox{\label{sccp__scoc_8c_abed9182be60d1191e44b35a41dd6acc3}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!xua\_gen\_relre\_and\_send@{xua\_gen\_relre\_and\_send}}
\index{xua\_gen\_relre\_and\_send@{xua\_gen\_relre\_and\_send}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{xua\_gen\_relre\_and\_send()}
{\footnotesize\ttfamily static int xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{uint32\+\_\+t}]{cause,  }\item[{struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ xua\+\_\+gen\+\_\+relre()}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+active()}, \textbf{ scoc\+\_\+fsm\+\_\+disconn\+\_\+pend()}, and \textbf{ scoc\+\_\+fsm\+\_\+wait\+\_\+conn\+\_\+conf()}.

\mbox{\label{sccp__scoc_8c_a488c5728776d3b1cd8137906e9efe451}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!xua\_opt\_data\_cache\_keep@{xua\_opt\_data\_cache\_keep}}
\index{xua\_opt\_data\_cache\_keep@{xua\_opt\_data\_cache\_keep}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{xua\_opt\_data\_cache\_keep()}
{\footnotesize\ttfamily static bool xua\+\_\+opt\+\_\+data\+\_\+cache\+\_\+keep (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim,  }\item[{int}]{msg\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::max\+\_\+optional\+\_\+data}, \textbf{ msg\+\_\+type}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ sccp\+\_\+connection\+::opt\+\_\+data\+\_\+cache}, \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+name()}, and \textbf{ xua\+\_\+drop\+\_\+data\+\_\+check\+\_\+drop()}.



Referenced by \textbf{ xua\+\_\+opt\+\_\+data\+\_\+length\+\_\+lim()}.

\mbox{\label{sccp__scoc_8c_a8b3423632d93654c39f3f7e40ea5fb61}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!xua\_opt\_data\_length\_lim@{xua\_opt\_data\_length\_lim}}
\index{xua\_opt\_data\_length\_lim@{xua\_opt\_data\_length\_lim}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{xua\_opt\_data\_length\_lim()}
{\footnotesize\ttfamily static bool xua\+\_\+opt\+\_\+data\+\_\+length\+\_\+lim (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{const struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim,  }\item[{int}]{msg\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::max\+\_\+optional\+\_\+data}, \textbf{ msg\+\_\+type}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+data()}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, \textbf{ SUA\+\_\+\+CO\+\_\+\+RELRE}, \textbf{ sccp\+\_\+connection\+::user}, \textbf{ xua\+\_\+drop\+\_\+data\+\_\+check\+\_\+drop()}, and \textbf{ xua\+\_\+opt\+\_\+data\+\_\+cache\+\_\+keep()}.



Referenced by \textbf{ xua\+\_\+gen\+\_\+msg\+\_\+co()}.

\mbox{\label{sccp__scoc_8c_a176ece1b0b17f0104df970a49a16b7e0}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!xua\_opt\_data\_send\_cache@{xua\_opt\_data\_send\_cache}}
\index{xua\_opt\_data\_send\_cache@{xua\_opt\_data\_send\_cache}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{xua\_opt\_data\_send\_cache()}
{\footnotesize\ttfamily static void xua\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn,  }\item[{int}]{exp\+\_\+type,  }\item[{uint8\+\_\+t}]{msg\+\_\+class }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+dialect\+::class}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ conn\+\_\+opt\+\_\+data\+\_\+clear\+\_\+cache()}, \textbf{ msg\+\_\+class}, \textbf{ sccp\+\_\+connection\+::opt\+\_\+data\+\_\+cache}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+data()}, \textbf{ sccp\+\_\+connection\+::user}, \textbf{ xua\+\_\+class\+\_\+msg\+\_\+name()}, and \textbf{ xua\+\_\+dialect\+\_\+sua}.



Referenced by \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+in()}, and \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out()}.



\doxysubsection{Variable Documentation}
\mbox{\label{sccp__scoc_8c_a75884bb1a1b907bd62859dcdaf009e9c}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!cause\_map\_cref@{cause\_map\_cref}}
\index{cause\_map\_cref@{cause\_map\_cref}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{cause\_map\_cref}
{\footnotesize\ttfamily const uint8\+\_\+t cause\+\_\+map\+\_\+cref[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        [SCCP\_RETURN\_CAUSE\_SUBSYSTEM\_CONGESTION] =}
\DoxyCodeLine{                                SCCP\_REFUSAL\_SUBSYTEM\_CONGESTION,}
\DoxyCodeLine{        [SCCP\_RETURN\_CAUSE\_SUBSYSTEM\_FAILURE] =}
\DoxyCodeLine{                                SCCP\_REFUSAL\_SUBSYSTEM\_FAILURE,}
\DoxyCodeLine{        [SCCP\_RETURN\_CAUSE\_UNEQUIPPED\_USER] =}
\DoxyCodeLine{                                SCCP\_REFUSAL\_UNEQUIPPED\_USER,}
\DoxyCodeLine{        [SCCP\_RETURN\_CAUSE\_UNQUALIFIED] =}
\DoxyCodeLine{                                SCCP\_REFUSAL\_UNQUALIFIED,}
\DoxyCodeLine{        [SCCP\_RETURN\_CAUSE\_SCCP\_FAILURE] =}
\DoxyCodeLine{                                SCCP\_REFUSAL\_SCCP\_FAILURE,}
\DoxyCodeLine{        [SCCP\_RETURN\_CAUSE\_HOP\_COUNTER\_VIOLATION] =}
\DoxyCodeLine{                                SCCP\_REFUSAL\_HOP\_COUNTER\_VIOLATION,}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ get\+\_\+cref\+\_\+cause\+\_\+for\+\_\+ret()}.

\mbox{\label{sccp__scoc_8c_ae4f0f4b8faf5d7ba93d5d5ead401c2b3}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!osmo\_sccp\_timer\_defaults@{osmo\_sccp\_timer\_defaults}}
\index{osmo\_sccp\_timer\_defaults@{osmo\_sccp\_timer\_defaults}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{osmo\_sccp\_timer\_defaults}
{\footnotesize\ttfamily const struct osmo\+\_\+tdef osmo\+\_\+sccp\+\_\+timer\+\_\+defaults[\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN}]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_CONN\_EST,        .default\_val = 1*60,    .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Waiting for connection confirm message, 1 to 2 minutes"{}} \},}
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_IAS,          .default\_val = 7*60,    .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Send keep-\/alive: on an idle connection, delay before sending an Idle Timer message, 5 to 10 minutes"{}} \}, }
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_IAR,          .default\_val = 15*60,   .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Receive keep-\/alive: on an idle connection, delay until considering a connection as stale, 11 to 21 minutes"{}} \}, }
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_REL,          .default\_val = 10,      .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Waiting for release complete message, 10 to 20 seconds"{}} \},}
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_REPEAT\_REL,    .default\_val = 10,      .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Waiting for release complete message; or to repeat sending released message after the initial expiry, 10 to 20 seconds"{}} \},}
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_INT,          .default\_val = 1*60,    .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Waiting for release complete message; or to release connection resources, freeze the LRN and "{}}}
\DoxyCodeLine{                  \textcolor{stringliteral}{"{}alert a maintenance function after the initial expiry, extending to 1 minute"{}} \},}
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_GUARD,              .default\_val = 23*60,   .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Waiting to resume normal procedure for temporary connection sections during the restart procedure, 23 to 25 minutes"{}} \},}
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_RESET,              .default\_val = 10,      .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Waiting to release temporary connection section or alert maintenance function after reset request message is sent, 10 to 20 seconds"{}} \},}
\DoxyCodeLine{        \{ .T = OSMO\_SCCP\_TIMER\_REASSEMBLY,    .default\_val = 10,      .unit = OSMO\_TDEF\_S,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}Waiting to receive all the segments of the remaining segments, single segmented message after receiving the first segment, 10 to 20 seconds"{}} \},}
\DoxyCodeLine{        \{\}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs()}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+create()}.

\mbox{\label{sccp__scoc_8c_adb142ce6fd39a4884c7fa9144ff15c3f}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!osmo\_sccp\_timer\_names@{osmo\_sccp\_timer\_names}}
\index{osmo\_sccp\_timer\_names@{osmo\_sccp\_timer\_names}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{osmo\_sccp\_timer\_names}
{\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+sccp\+\_\+timer\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_CONN\_EST, \textcolor{stringliteral}{"{}conn\_est"{}} \},}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_IAS, \textcolor{stringliteral}{"{}ias"{}} \},}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_IAR, \textcolor{stringliteral}{"{}iar"{}} \},}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_REL, \textcolor{stringliteral}{"{}rel"{}} \},}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_REPEAT\_REL, \textcolor{stringliteral}{"{}repeat\_rel"{}} \},}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_INT, \textcolor{stringliteral}{"{}int"{}} \},}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_GUARD, \textcolor{stringliteral}{"{}guard"{}} \},}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_RESET, \textcolor{stringliteral}{"{}reset"{}} \},}
\DoxyCodeLine{        \{ OSMO\_SCCP\_TIMER\_REASSEMBLY, \textcolor{stringliteral}{"{}reassembly"{}} \},}
\DoxyCodeLine{        \{\}}
\DoxyCodeLine{\}}

\end{DoxyCode}


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

\mbox{\label{sccp__scoc_8c_acc3f4c3c00682b6a4190a5a998b129f1}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sccp\_scoc\_fsm@{sccp\_scoc\_fsm}}
\index{sccp\_scoc\_fsm@{sccp\_scoc\_fsm}!sccp\_scoc.c@{sccp\_scoc.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{ conn\+\_\+create\+\_\+id()}, and \textbf{ osmo\+\_\+ss7\+\_\+init()}.

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

\mbox{\label{sccp__scoc_8c_a250c884f2831648b4ce3ed4edd3b21bc}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scoc\_event\_names@{scoc\_event\_names}}
\index{scoc\_event\_names@{scoc\_event\_names}!sccp\_scoc.c@{sccp\_scoc.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}
\mbox{\label{sccp__scoc_8c_a8f4c91018d959ab54df91d9f0d32818e}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!scu\_scoc\_event\_map@{scu\_scoc\_event\_map}}
\index{scu\_scoc\_event\_map@{scu\_scoc\_event\_map}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{scu\_scoc\_event\_map}
{\footnotesize\ttfamily const struct osmo\+\_\+prim\+\_\+event\+\_\+map scu\+\_\+scoc\+\_\+event\+\_\+map[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SCCP\_SAP\_USER, OSMO\_SCU\_PRIM\_N\_CONNECT, PRIM\_OP\_REQUEST,}
\DoxyCodeLine{                SCOC\_E\_SCU\_N\_CONN\_REQ \},}
\DoxyCodeLine{        \{ SCCP\_SAP\_USER, OSMO\_SCU\_PRIM\_N\_CONNECT, PRIM\_OP\_RESPONSE,}
\DoxyCodeLine{                SCOC\_E\_SCU\_N\_CONN\_RESP \},}
\DoxyCodeLine{        \{ SCCP\_SAP\_USER, OSMO\_SCU\_PRIM\_N\_DATA, PRIM\_OP\_REQUEST,}
\DoxyCodeLine{                SCOC\_E\_SCU\_N\_DATA\_REQ \},}
\DoxyCodeLine{        \{ SCCP\_SAP\_USER, OSMO\_SCU\_PRIM\_N\_DISCONNECT, PRIM\_OP\_REQUEST,}
\DoxyCodeLine{                SCOC\_E\_SCU\_N\_DISC\_REQ \},}
\DoxyCodeLine{        \{ SCCP\_SAP\_USER, OSMO\_SCU\_PRIM\_N\_EXPEDITED\_DATA, PRIM\_OP\_REQUEST,}
\DoxyCodeLine{                SCOC\_E\_SCU\_N\_EXP\_DATA\_REQ \},}
\DoxyCodeLine{        \{ 0, 0, 0, OSMO\_NO\_EVENT \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}.

\mbox{\label{sccp__scoc_8c_a0bf411ddb18999aae24423ae53b91e4c}} 
\index{sccp\_scoc.c@{sccp\_scoc.c}!sua\_scoc\_event\_map@{sua\_scoc\_event\_map}}
\index{sua\_scoc\_event\_map@{sua\_scoc\_event\_map}!sccp\_scoc.c@{sccp\_scoc.c}}
\doxysubsubsection{sua\_scoc\_event\_map}
{\footnotesize\ttfamily const struct \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map} sua\+\_\+scoc\+\_\+event\+\_\+map[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SUA\_MSGC\_CO, SUA\_CO\_CORE, SCOC\_E\_RCOC\_CONN\_IND \},}
\DoxyCodeLine{        \{ SUA\_MSGC\_CO, SUA\_CO\_RELRE, SCOC\_E\_RCOC\_RLSD\_IND \},}
\DoxyCodeLine{        \{ SUA\_MSGC\_CO, SUA\_CO\_RELCO, SCOC\_E\_RCOC\_REL\_COMPL\_IND \},}
\DoxyCodeLine{        \{ SUA\_MSGC\_CO, SUA\_CO\_COREF, SCOC\_E\_RCOC\_CREF\_IND \},}
\DoxyCodeLine{        \{ SUA\_MSGC\_CO, SUA\_CO\_COAK, SCOC\_E\_RCOC\_CC\_IND \},}
\DoxyCodeLine{        \{ SUA\_MSGC\_CO, SUA\_CO\_CODT, SCOC\_E\_RCOC\_DT1\_IND \},}
\DoxyCodeLine{        \{ SUA\_MSGC\_CO, SUA\_CO\_COIT, SCOC\_E\_RCOC\_IT\_IND \},}
\DoxyCodeLine{        \{ SUA\_MSGC\_CO, SUA\_CO\_COERR, SCOC\_E\_RCOC\_ERROR\_IND \},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}.

