\doxysection{src/sccp\+\_\+connection.c File Reference} \label{sccp__connection_8c}\index{src/sccp\_connection.c@{src/sccp\_connection.c}} {\ttfamily \#include $<$errno.\+h$>$}\newline {\ttfamily \#include $<$stdbool.\+h$>$}\newline {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include $<$limits.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+sap.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/mtp\+\_\+sap.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/mtp.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/sua.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+helpers.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sccp/sccp\+\_\+types.\+h$>$}\newline {\ttfamily \#include \char`\"{}sccp\+\_\+instance.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}sccp\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}sccp\+\_\+connection.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}sccp\+\_\+scoc\+\_\+fsm.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}sccp\+\_\+user.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+instance.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+msg.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline \doxysubsection*{Macros} \begin{DoxyCompactItemize} \item \#define \textbf{ INIT\+\_\+\+TIMER}(x, fn, priv)~do \{ (x)-\/$>$cb = fn; (x)-\/$>$\textbf{ data} = priv; \} while (0) \item \#define \textbf{ SCU\+\_\+\+MSGB\+\_\+\+SIZE}~1024 \end{DoxyCompactItemize} \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item static void \textbf{ sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+clear\+\_\+cache} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \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 uint8\+\_\+t \textbf{ sccp\+\_\+conn\+\_\+gen\+\_\+tx\+\_\+co\+\_\+mtp\+\_\+sls} (const struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item static int \textbf{ conn\+\_\+add\+\_\+node} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item struct \textbf{ sccp\+\_\+connection} $\ast$ \textbf{ sccp\+\_\+conn\+\_\+alloc} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$user, uint32\+\_\+t conn\+\_\+id) \item void \textbf{ sccp\+\_\+conn\+\_\+free} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item static struct msgb $\ast$ \textbf{ scu\+\_\+msgb\+\_\+alloc} (void) \item static struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$ \textbf{ scu\+\_\+prim\+\_\+alloc} (unsigned int primitive, enum osmo\+\_\+prim\+\_\+operation operation) \item void \textbf{ sccp\+\_\+conn\+\_\+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{ sccp\+\_\+timer\+\_\+schedule} (const struct \textbf{ sccp\+\_\+connection} $\ast$conn, struct osmo\+\_\+timer\+\_\+list $\ast$timer, enum \textbf{ osmo\+\_\+sccp\+\_\+timer} timer\+\_\+name) \item void \textbf{ sccp\+\_\+conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+inact\+\_\+timers} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+inact\+\_\+timers} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+rel\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+rep\+\_\+rel\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+int\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+release\+\_\+timers} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+connect\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+connect\+\_\+timer} (struct \textbf{ sccp\+\_\+connection} $\ast$conn) \item void \textbf{ sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache} (struct \textbf{ sccp\+\_\+connection} $\ast$conn, int exp\+\_\+type, uint8\+\_\+t \textbf{ msg\+\_\+class}) \end{DoxyCompactItemize} \doxysubsection{Macro Definition Documentation} \mbox{\label{sccp__connection_8c_a70e97449d775ed6ba57665d01e454433}} \index{sccp\_connection.c@{sccp\_connection.c}!INIT\_TIMER@{INIT\_TIMER}} \index{INIT\_TIMER@{INIT\_TIMER}!sccp\_connection.c@{sccp\_connection.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__connection_8c_ac5d3dce5523f8e0c79b986589307b9f4}} \index{sccp\_connection.c@{sccp\_connection.c}!SCU\_MSGB\_SIZE@{SCU\_MSGB\_SIZE}} \index{SCU\_MSGB\_SIZE@{SCU\_MSGB\_SIZE}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{SCU\_MSGB\_SIZE} {\footnotesize\ttfamily \#define SCU\+\_\+\+MSGB\+\_\+\+SIZE~1024} \doxysubsection{Function Documentation} \mbox{\label{sccp__connection_8c_afbdc10179a062cf3760c785e50e1a049}} \index{sccp\_connection.c@{sccp\_connection.c}!conn\_add\_node@{conn\_add\_node}} \index{conn\_add\_node@{conn\_add\_node}!sccp\_connection.c@{sccp\_connection.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}, \textbf{ LOGPSCI}, \textbf{ sccp\+\_\+connection\+::node}, and \textbf{ NULL}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+alloc()}. \mbox{\label{sccp__connection_8c_a2b9eb42668f90076cb1e342cf647df70}} \index{sccp\_connection.c@{sccp\_connection.c}!conn\_tmr\_cb@{conn\_tmr\_cb}} \index{conn\_tmr\_cb@{conn\_tmr\_cb}!sccp\_connection.c@{sccp\_connection.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}, \textbf{ NULL}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+CONN\+\_\+\+TMR\+\_\+\+EXP}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+alloc()}. \mbox{\label{sccp__connection_8c_a157823e2b77ac81e864ea5ac91b1af8b}} \index{sccp\_connection.c@{sccp\_connection.c}!int\_tmr\_cb@{int\_tmr\_cb}} \index{int\_tmr\_cb@{int\_tmr\_cb}!sccp\_connection.c@{sccp\_connection.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}, \textbf{ NULL}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+INT\+\_\+\+EXP}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+alloc()}. \mbox{\label{sccp__connection_8c_a6a89200fa789e752dbde5eb47977efeb}} \index{sccp\_connection.c@{sccp\_connection.c}!rel\_tmr\_cb@{rel\_tmr\_cb}} \index{rel\_tmr\_cb@{rel\_tmr\_cb}!sccp\_connection.c@{sccp\_connection.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}, \textbf{ NULL}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REL\+\_\+\+EXP}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+alloc()}. \mbox{\label{sccp__connection_8c_a6d79ede88580508b0b60696aead622a9}} \index{sccp\_connection.c@{sccp\_connection.c}!rep\_rel\_tmr\_cb@{rep\_rel\_tmr\_cb}} \index{rep\_rel\_tmr\_cb@{rep\_rel\_tmr\_cb}!sccp\_connection.c@{sccp\_connection.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}, \textbf{ NULL}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+REP\+\_\+\+REL\+\_\+\+EXP}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+alloc()}. \mbox{\label{sccp__connection_8c_aef0cb6f0c8ca70cdd68e9e8ad9cfd395}} \index{sccp\_connection.c@{sccp\_connection.c}!rx\_inact\_tmr\_cb@{rx\_inact\_tmr\_cb}} \index{rx\_inact\_tmr\_cb@{rx\_inact\_tmr\_cb}!sccp\_connection.c@{sccp\_connection.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}, \textbf{ NULL}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAR\+\_\+\+EXP}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+alloc()}. \mbox{\label{sccp__connection_8c_aff7bf441f2a0276dd3dca6e4e5f6f289}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_alloc@{sccp\_conn\_alloc}} \index{sccp\_conn\_alloc@{sccp\_conn\_alloc}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_alloc()} {\footnotesize\ttfamily struct \textbf{ sccp\+\_\+connection} $\ast$ sccp\+\_\+conn\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{user, }\item[{uint32\+\_\+t}]{conn\+\_\+id }\end{DoxyParamCaption})} 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{ sccp\+\_\+connection\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ int\+\_\+tmr\+\_\+cb()}, \textbf{ sccp\+\_\+connection\+::node}, \textbf{ NULL}, \textbf{ rel\+\_\+tmr\+\_\+cb()}, \textbf{ rep\+\_\+rel\+\_\+tmr\+\_\+cb()}, \textbf{ rx\+\_\+inact\+\_\+tmr\+\_\+cb()}, \textbf{ sccp\+\_\+conn\+\_\+gen\+\_\+tx\+\_\+co\+\_\+mtp\+\_\+sls()}, \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{ sccp\+\_\+connection\+::tx\+\_\+co\+\_\+mtp\+\_\+sls}, \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__connection_8c_a6bd5f9efd40611bbf1317c2afccf267f}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_free@{sccp\_conn\_free}} \index{sccp\_conn\_free@{sccp\_conn\_free}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_free()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+free (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ sccp\+\_\+connection\+::node}, \textbf{ NULL}, \textbf{ sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+clear\+\_\+cache()}, \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+connect\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+inact\+\_\+timers()}, and \textbf{ sccp\+\_\+conn\+\_\+stop\+\_\+release\+\_\+timers()}. Referenced by \textbf{ sccp\+\_\+user\+\_\+flush\+\_\+connections()}, and \textbf{ scoc\+\_\+fsm\+\_\+idle\+\_\+onenter()}. \mbox{\label{sccp__connection_8c_ae681f2f3f6e2c662b4504707326137bc}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_gen\_tx\_co\_mtp\_sls@{sccp\_conn\_gen\_tx\_co\_mtp\_sls}} \index{sccp\_conn\_gen\_tx\_co\_mtp\_sls@{sccp\_conn\_gen\_tx\_co\_mtp\_sls}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_gen\_tx\_co\_mtp\_sls()} {\footnotesize\ttfamily static uint8\+\_\+t sccp\+\_\+conn\+\_\+gen\+\_\+tx\+\_\+co\+\_\+mtp\+\_\+sls (\begin{DoxyParamCaption}\item[{const struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, and \textbf{ sls}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+alloc()}. \mbox{\label{sccp__connection_8c_ac52ebcb35bdb9a7a69a8406864c0ba94}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_opt\_data\_clear\_cache@{sccp\_conn\_opt\_data\_clear\_cache}} \index{sccp\_conn\_opt\_data\_clear\_cache@{sccp\_conn\_opt\_data\_clear\_cache}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_opt\_data\_clear\_cache()} {\footnotesize\ttfamily static void sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+clear\+\_\+cache (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ NULL}, and \textbf{ sccp\+\_\+connection\+::opt\+\_\+data\+\_\+cache}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+free()}, and \textbf{ sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache()}. \mbox{\label{sccp__connection_8c_a4c92f25e99d773d38a9feca36617c491}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_opt\_data\_send\_cache@{sccp\_conn\_opt\_data\_send\_cache}} \index{sccp\_conn\_opt\_data\_send\_cache@{sccp\_conn\_opt\_data\_send\_cache}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_opt\_data\_send\_cache()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+send\+\_\+cache (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn, }\item[{int}]{exp\+\_\+type, }\item[{uint8\+\_\+t}]{msg\+\_\+class }\end{DoxyParamCaption})} References \textbf{ xua\+\_\+dialect\+::class}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ LOGPSCC}, \textbf{ msg\+\_\+class}, \textbf{ sccp\+\_\+connection\+::opt\+\_\+data\+\_\+cache}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+data()}, \textbf{ sccp\+\_\+conn\+\_\+opt\+\_\+data\+\_\+clear\+\_\+cache()}, \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()}. \mbox{\label{sccp__connection_8c_a6a308998f5e8ef584c2c7fd6743ab04e}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_restart\_rx\_inact\_timer@{sccp\_conn\_restart\_rx\_inact\_timer}} \index{sccp\_conn\_restart\_rx\_inact\_timer@{sccp\_conn\_restart\_rx\_inact\_timer}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_restart\_rx\_inact\_timer()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+IAR}, \textbf{ sccp\+\_\+timer\+\_\+schedule()}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+iar}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+inact\+\_\+timers()}, and \textbf{ scoc\+\_\+fsm\+\_\+active()}. \mbox{\label{sccp__connection_8c_aaaceaf784260800fb0d6733b2436778e}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_restart\_tx\_inact\_timer@{sccp\_conn\_restart\_tx\_inact\_timer}} \index{sccp\_conn\_restart\_tx\_inact\_timer@{sccp\_conn\_restart\_tx\_inact\_timer}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_restart\_tx\_inact\_timer()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} References \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+IAS}, \textbf{ sccp\+\_\+timer\+\_\+schedule()}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+ias}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+inact\+\_\+timers()}, and \textbf{ scoc\+\_\+fsm\+\_\+active()}. \mbox{\label{sccp__connection_8c_a60d85d2662f53ae5d482b71ff27ed526}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_scu\_gen\_encode\_and\_send@{sccp\_conn\_scu\_gen\_encode\_and\_send}} \index{sccp\_conn\_scu\_gen\_encode\_and\_send@{sccp\_conn\_scu\_gen\_encode\_and\_send}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_scu\_gen\_encode\_and\_send()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+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})} 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{ LOGPSCC}, \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\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, \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__connection_8c_ad07afea5e41b92a6fce458ac84169487}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_start\_connect\_timer@{sccp\_conn\_start\_connect\_timer}} \index{sccp\_conn\_start\_connect\_timer@{sccp\_conn\_start\_connect\_timer}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_start\_connect\_timer()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+start\+\_\+connect\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} 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__connection_8c_a05e6ea0351f25ca35374757fc885e55a}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_start\_inact\_timers@{sccp\_conn\_start\_inact\_timers}} \index{sccp\_conn\_start\_inact\_timers@{sccp\_conn\_start\_inact\_timers}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_start\_inact\_timers()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+start\+\_\+inact\+\_\+timers (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} References \textbf{ sccp\+\_\+conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer()}, and \textbf{ sccp\+\_\+conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer()}. Referenced by \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+in()}, and \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out()}. \mbox{\label{sccp__connection_8c_a6a7d5c2fe4d4f3e62d4ce6b5cae37c66}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_start\_int\_timer@{sccp\_conn\_start\_int\_timer}} \index{sccp\_conn\_start\_int\_timer@{sccp\_conn\_start\_int\_timer}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_start\_int\_timer()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+start\+\_\+int\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} 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__connection_8c_ad1a75320dbc25fe893390fd1331b3140}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_start\_rel\_timer@{sccp\_conn\_start\_rel\_timer}} \index{sccp\_conn\_start\_rel\_timer@{sccp\_conn\_start\_rel\_timer}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_start\_rel\_timer()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+start\+\_\+rel\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} 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__connection_8c_af0be99410bc27338bfbbc5341d2efe82}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_start\_rep\_rel\_timer@{sccp\_conn\_start\_rep\_rel\_timer}} \index{sccp\_conn\_start\_rep\_rel\_timer@{sccp\_conn\_start\_rep\_rel\_timer}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_start\_rep\_rel\_timer()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+start\+\_\+rep\+\_\+rel\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} 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__connection_8c_a6f0ef963efe97753191bd61819d32e4b}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_stop\_connect\_timer@{sccp\_conn\_stop\_connect\_timer}} \index{sccp\_conn\_stop\_connect\_timer@{sccp\_conn\_stop\_connect\_timer}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_stop\_connect\_timer()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+stop\+\_\+connect\+\_\+timer (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} References \textbf{ sccp\+\_\+connection\+::t\+\_\+conn}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+free()}, \textbf{ scoc\+\_\+fsm\+\_\+conn\+\_\+pend\+\_\+out()}, and \textbf{ scoc\+\_\+fsm\+\_\+wait\+\_\+conn\+\_\+conf()}. \mbox{\label{sccp__connection_8c_a903c45efa42e6f9de8c2e08f3cce3633}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_stop\_inact\_timers@{sccp\_conn\_stop\_inact\_timers}} \index{sccp\_conn\_stop\_inact\_timers@{sccp\_conn\_stop\_inact\_timers}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_stop\_inact\_timers()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+stop\+\_\+inact\+\_\+timers (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} References \textbf{ sccp\+\_\+connection\+::t\+\_\+iar}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+ias}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+free()}, and \textbf{ scoc\+\_\+fsm\+\_\+active()}. \mbox{\label{sccp__connection_8c_accfc7dfc98d8cfb09ec67d3ce2bbf974}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_conn\_stop\_release\_timers@{sccp\_conn\_stop\_release\_timers}} \index{sccp\_conn\_stop\_release\_timers@{sccp\_conn\_stop\_release\_timers}!sccp\_connection.c@{sccp\_connection.c}} \doxysubsubsection{sccp\_conn\_stop\_release\_timers()} {\footnotesize\ttfamily void sccp\+\_\+conn\+\_\+stop\+\_\+release\+\_\+timers (\begin{DoxyParamCaption}\item[{struct \textbf{ sccp\+\_\+connection} $\ast$}]{conn }\end{DoxyParamCaption})} References \textbf{ sccp\+\_\+connection\+::t\+\_\+int}, \textbf{ sccp\+\_\+connection\+::t\+\_\+rel}, and \textbf{ sccp\+\_\+connection\+::t\+\_\+rep\+\_\+rel}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+free()}, and \textbf{ scoc\+\_\+fsm\+\_\+disconn\+\_\+pend()}. \mbox{\label{sccp__connection_8c_aa5bdbe30a289184e31cbc829af8f5f97}} \index{sccp\_connection.c@{sccp\_connection.c}!sccp\_timer\_schedule@{sccp\_timer\_schedule}} \index{sccp\_timer\_schedule@{sccp\_timer\_schedule}!sccp\_connection.c@{sccp\_connection.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{ sccp\+\_\+conn\+\_\+restart\+\_\+rx\+\_\+inact\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+restart\+\_\+tx\+\_\+inact\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+connect\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+int\+\_\+timer()}, \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+rel\+\_\+timer()}, and \textbf{ sccp\+\_\+conn\+\_\+start\+\_\+rep\+\_\+rel\+\_\+timer()}. \mbox{\label{sccp__connection_8c_a99b52a75e444c05c2147df133f69c339}} \index{sccp\_connection.c@{sccp\_connection.c}!scu\_msgb\_alloc@{scu\_msgb\_alloc}} \index{scu\_msgb\_alloc@{scu\_msgb\_alloc}!sccp\_connection.c@{sccp\_connection.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__connection_8c_a53275efec53c6dc8d850554c29cc61a4}} \index{sccp\_connection.c@{sccp\_connection.c}!scu\_prim\_alloc@{scu\_prim\_alloc}} \index{scu\_prim\_alloc@{scu\_prim\_alloc}!sccp\_connection.c@{sccp\_connection.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{ sccp\+\_\+conn\+\_\+scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}. \mbox{\label{sccp__connection_8c_ae2e0efede2e445975eca83e08f98b8e4}} \index{sccp\_connection.c@{sccp\_connection.c}!tx\_inact\_tmr\_cb@{tx\_inact\_tmr\_cb}} \index{tx\_inact\_tmr\_cb@{tx\_inact\_tmr\_cb}!sccp\_connection.c@{sccp\_connection.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}, \textbf{ NULL}, and \textbf{ SCOC\+\_\+\+E\+\_\+\+T\+\_\+\+IAS\+\_\+\+EXP}. Referenced by \textbf{ sccp\+\_\+conn\+\_\+alloc()}.