\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 \char`\"{}ss7\+\_\+instance.\+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()}.