\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()}.

