\doxysection{sccp\+\_\+instance.\+h} \label{sccp__instance_8h_source}\index{src/sccp\_instance.h@{src/sccp\_instance.h}} \textbf{ Go to the documentation of this file.} \begin{DoxyCode}{0} \DoxyCodeLine{1 \textcolor{preprocessor}{\#pragma once}} \DoxyCodeLine{2 } \DoxyCodeLine{3 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{4 } \DoxyCodeLine{5 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{6 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{7 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{8 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{9 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{10 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{11 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{12 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{13 } \DoxyCodeLine{14 \textcolor{keyword}{struct }osmo\_ss7\_user;} \DoxyCodeLine{15 } \DoxyCodeLine{16 \textcolor{comment}{/* Appendix C.4 of Q.714 */}} \DoxyCodeLine{17 \textcolor{keyword}{enum} osmo\_sccp\_timer \{} \DoxyCodeLine{18 \textcolor{comment}{/* 0 kept unused on purpose since it's handled specially by osmo\_fsm */}} \DoxyCodeLine{19 OSMO\_SCCP\_TIMER\_CONN\_EST = 1,} \DoxyCodeLine{20 OSMO\_SCCP\_TIMER\_IAS,} \DoxyCodeLine{21 OSMO\_SCCP\_TIMER\_IAR,} \DoxyCodeLine{22 OSMO\_SCCP\_TIMER\_REL,} \DoxyCodeLine{23 OSMO\_SCCP\_TIMER\_REPEAT\_REL,} \DoxyCodeLine{24 OSMO\_SCCP\_TIMER\_INT,} \DoxyCodeLine{25 OSMO\_SCCP\_TIMER\_GUARD,} \DoxyCodeLine{26 OSMO\_SCCP\_TIMER\_RESET,} \DoxyCodeLine{27 OSMO\_SCCP\_TIMER\_REASSEMBLY,} \DoxyCodeLine{28 \textcolor{comment}{/* This must remain the last item: */}} \DoxyCodeLine{29 OSMO\_SCCP\_TIMERS\_LEN} \DoxyCodeLine{30 \};} \DoxyCodeLine{31 } \DoxyCodeLine{32 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }osmo\_tdef osmo\_sccp\_timer\_defaults[OSMO\_SCCP\_TIMERS\_LEN];} \DoxyCodeLine{33 } \DoxyCodeLine{34 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string osmo\_sccp\_timer\_names[];} \DoxyCodeLine{35 \textcolor{keyword}{static} \textcolor{keyword}{inline} \textcolor{keyword}{const} \textcolor{keywordtype}{char} *osmo\_sccp\_timer\_name(\textcolor{keyword}{enum} osmo\_sccp\_timer val)} \DoxyCodeLine{36 \{ \textcolor{keywordflow}{return} get\_value\_string(osmo\_sccp\_timer\_names, val); \}} \DoxyCodeLine{37 } \DoxyCodeLine{38 \textcolor{keyword}{struct }sccp\_pending\_rout\_fail \{} \DoxyCodeLine{39 \textcolor{comment}{/* Item in inst-\/>rout\_fail\_pending.queue: */}} \DoxyCodeLine{40 \textcolor{keyword}{struct }llist\_head list;} \DoxyCodeLine{41 \textcolor{keyword}{struct }xua\_msg *xua;} \DoxyCodeLine{42 uint32\_t cause;} \DoxyCodeLine{43 \textcolor{keywordtype}{bool} scoc; \textcolor{comment}{/* true if it's for SCOC, false if it's for SCLC. */}} \DoxyCodeLine{44 \};} \DoxyCodeLine{45 } \DoxyCodeLine{46 \textcolor{comment}{/* an instance of the SCCP stack */}} \DoxyCodeLine{47 \textcolor{keyword}{struct }osmo\_sccp\_instance \{} \DoxyCodeLine{48 \textcolor{comment}{/* entry in global list of ss7 instances */}} \DoxyCodeLine{49 \textcolor{keyword}{struct }llist\_head list;} \DoxyCodeLine{50 \textcolor{comment}{/* rbtree root of 'struct sccp\_connection' in this instance */}} \DoxyCodeLine{51 \textcolor{keyword}{struct }rb\_root connections;} \DoxyCodeLine{52 \textcolor{comment}{/* list of SCCP users in this instance */}} \DoxyCodeLine{53 \textcolor{keyword}{struct }llist\_head users;} \DoxyCodeLine{54 \textcolor{comment}{/* routing context to be used in all outbound messages */}} \DoxyCodeLine{55 uint32\_t route\_ctx;} \DoxyCodeLine{56 \textcolor{comment}{/* next connection ID to allocate */}} \DoxyCodeLine{57 uint32\_t next\_id;} \DoxyCodeLine{58 \textcolor{keyword}{struct }osmo\_ss7\_instance *ss7;} \DoxyCodeLine{59 \textcolor{keywordtype}{void} *priv;} \DoxyCodeLine{60 } \DoxyCodeLine{61 \textcolor{keyword}{struct }osmo\_ss7\_user *ss7\_user;} \DoxyCodeLine{62 } \DoxyCodeLine{63 \textcolor{keyword}{struct }osmo\_tdef *tdefs;} \DoxyCodeLine{64 } \DoxyCodeLine{65 uint32\_t max\_optional\_data;} \DoxyCodeLine{66 } \DoxyCodeLine{67 \textcolor{comment}{/* Queued Routing Failures to transmit asynchronously up the stack: */}} \DoxyCodeLine{68 \textcolor{keyword}{struct }\{} \DoxyCodeLine{69 \textcolor{keyword}{struct }osmo\_timer\_list timer;} \DoxyCodeLine{70 \textcolor{keyword}{struct }llist\_head queue;} \DoxyCodeLine{71 \} rout\_fail\_pending;} \DoxyCodeLine{72 \};} \DoxyCodeLine{73 } \DoxyCodeLine{74 \textcolor{keyword}{struct }osmo\_sccp\_user *} \DoxyCodeLine{75 sccp\_user\_find(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst, uint16\_t ssn, uint32\_t pc);} \DoxyCodeLine{76 } \DoxyCodeLine{77 \textcolor{preprocessor}{\#define \_LOGPSCI(sci, subsys, level, fmt, args ...) \(\backslash\)}} \DoxyCodeLine{78 \textcolor{preprocessor}{ \_LOGSS7((sci)-\/>ss7, subsys, level, "{}SCCP(rctx=\%"{}} PRIu32 "{}) "{} fmt, (sci)-\/>route\_ctx, \#\# args)} \DoxyCodeLine{79 \textcolor{preprocessor}{\#define LOGPSCI(sci, level, fmt, args ...) \(\backslash\)}} \DoxyCodeLine{80 \textcolor{preprocessor}{ \_LOGPSCI(sci, DLSCCP, level, fmt, \#\# args)}} \DoxyCodeLine{81 } \end{DoxyCode}