\doxysection{sccp\+\_\+internal.\+h} \label{sccp__internal_8h_source}\index{src/sccp\_internal.h@{src/sccp\_internal.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 \textcolor{preprocessor}{\#include }} \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 } \DoxyCodeLine{12 \textcolor{preprocessor}{\#define SCCP\_STR "{}Signalling Connection Control Part\(\backslash\)n"{}}} \DoxyCodeLine{13 } \DoxyCodeLine{14 \textcolor{preprocessor}{\#include "{}ss7\_user.h"{}}} \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{comment}{/* an instance of the SCCP stack */}} \DoxyCodeLine{39 \textcolor{keyword}{struct }osmo\_sccp\_instance \{} \DoxyCodeLine{40 \textcolor{comment}{/* entry in global list of ss7 instances */}} \DoxyCodeLine{41 \textcolor{keyword}{struct }llist\_head list;} \DoxyCodeLine{42 \textcolor{comment}{/* rbtree root of 'struct sccp\_connection' in this instance */}} \DoxyCodeLine{43 \textcolor{keyword}{struct }rb\_root connections;} \DoxyCodeLine{44 \textcolor{comment}{/* list of SCCP users in this instance */}} \DoxyCodeLine{45 \textcolor{keyword}{struct }llist\_head users;} \DoxyCodeLine{46 \textcolor{comment}{/* routing context to be used in all outbound messages */}} \DoxyCodeLine{47 uint32\_t route\_ctx;} \DoxyCodeLine{48 \textcolor{comment}{/* next connection ID to allocate */}} \DoxyCodeLine{49 uint32\_t next\_id;} \DoxyCodeLine{50 \textcolor{keyword}{struct }osmo\_ss7\_instance *ss7;} \DoxyCodeLine{51 \textcolor{keywordtype}{void} *priv;} \DoxyCodeLine{52 } \DoxyCodeLine{53 \textcolor{keyword}{struct }osmo\_ss7\_user *ss7\_user;} \DoxyCodeLine{54 } \DoxyCodeLine{55 \textcolor{keyword}{struct }osmo\_tdef *tdefs;} \DoxyCodeLine{56 } \DoxyCodeLine{57 uint32\_t max\_optional\_data;} \DoxyCodeLine{58 \};} \DoxyCodeLine{59 } \DoxyCodeLine{60 \textcolor{keyword}{struct }osmo\_sccp\_user \{} \DoxyCodeLine{62 \textcolor{keyword}{struct }llist\_head list;} \DoxyCodeLine{64 \textcolor{keyword}{struct }osmo\_sccp\_instance *inst;} \DoxyCodeLine{66 \textcolor{keywordtype}{char} *name;} \DoxyCodeLine{67 } \DoxyCodeLine{69 uint16\_t ssn;} \DoxyCodeLine{70 uint32\_t pc;} \DoxyCodeLine{71 } \DoxyCodeLine{72 \textcolor{comment}{/* set if we are a server */}} \DoxyCodeLine{73 \textcolor{keyword}{struct }llist\_head links;} \DoxyCodeLine{74 } \DoxyCodeLine{75 \textcolor{comment}{/* user call-\/back function in case of incoming primitives */}} \DoxyCodeLine{76 osmo\_prim\_cb prim\_cb;} \DoxyCodeLine{77 \textcolor{keywordtype}{void} *priv;} \DoxyCodeLine{78 } \DoxyCodeLine{79 \textcolor{comment}{/* Application Server FSM Instance */}} \DoxyCodeLine{80 \textcolor{keyword}{struct }osmo\_fsm\_inst *as\_fi;} \DoxyCodeLine{81 \};} \DoxyCodeLine{82 } \DoxyCodeLine{83 \textcolor{keyword}{extern} \textcolor{keywordtype}{int} DSCCP;} \DoxyCodeLine{84 } \DoxyCodeLine{85 \textcolor{keyword}{struct }xua\_msg;} \DoxyCodeLine{86 } \DoxyCodeLine{87 \textcolor{keyword}{struct }osmo\_sccp\_user *} \DoxyCodeLine{88 sccp\_user\_find(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst, uint16\_t ssn, uint32\_t pc);} \DoxyCodeLine{89 } \DoxyCodeLine{90 \textcolor{comment}{/* Message from SCOC -\/> SCRC */}} \DoxyCodeLine{91 \textcolor{keywordtype}{int} sccp\_scrc\_rx\_scoc\_conn\_msg(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst,} \DoxyCodeLine{92 \textcolor{keyword}{struct} xua\_msg *xua);} \DoxyCodeLine{93 } \DoxyCodeLine{94 \textcolor{comment}{/* Message from SCLC -\/> SCRC */}} \DoxyCodeLine{95 \textcolor{keywordtype}{int} sccp\_scrc\_rx\_sclc\_msg(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst, \textcolor{keyword}{struct} xua\_msg *xua);} \DoxyCodeLine{96 } \DoxyCodeLine{97 \textcolor{comment}{/* Message from MTP (SUA) -\/> SCRC */}} \DoxyCodeLine{98 \textcolor{keywordtype}{int} scrc\_rx\_mtp\_xfer\_ind\_xua(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst,} \DoxyCodeLine{99 \textcolor{keyword}{struct} xua\_msg *xua);} \DoxyCodeLine{100 } \DoxyCodeLine{101 \textcolor{comment}{/* Message from SCRC -\/> SCOC */}} \DoxyCodeLine{102 \textcolor{keywordtype}{void} sccp\_scoc\_rx\_from\_scrc(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst,} \DoxyCodeLine{103 \textcolor{keyword}{struct} xua\_msg *xua);} \DoxyCodeLine{104 \textcolor{keywordtype}{void} sccp\_scoc\_rx\_scrc\_rout\_fail(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst,} \DoxyCodeLine{105 \textcolor{keyword}{struct} xua\_msg *xua, uint32\_t cause);} \DoxyCodeLine{106 } \DoxyCodeLine{107 \textcolor{keywordtype}{void} sccp\_scoc\_flush\_connections(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst);} \DoxyCodeLine{108 } \DoxyCodeLine{109 \textcolor{comment}{/* Message from SCRC -\/> SCLC */}} \DoxyCodeLine{110 \textcolor{keywordtype}{int} sccp\_sclc\_rx\_from\_scrc(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst,} \DoxyCodeLine{111 \textcolor{keyword}{struct} xua\_msg *xua);} \DoxyCodeLine{112 \textcolor{keywordtype}{void} sccp\_sclc\_rx\_scrc\_rout\_fail(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst,} \DoxyCodeLine{113 \textcolor{keyword}{struct} xua\_msg *xua, uint32\_t cause);} \DoxyCodeLine{114 } \DoxyCodeLine{115 \textcolor{keywordtype}{int} sccp\_user\_prim\_up(\textcolor{keyword}{struct} osmo\_sccp\_user *scut, \textcolor{keyword}{struct} osmo\_scu\_prim *prim);} \DoxyCodeLine{116 } \DoxyCodeLine{117 \textcolor{comment}{/* SCU -\/> SCLC */}} \DoxyCodeLine{118 \textcolor{keywordtype}{int} sccp\_sclc\_user\_sap\_down(\textcolor{keyword}{struct} osmo\_sccp\_user *scu, \textcolor{keyword}{struct} osmo\_prim\_hdr *oph);} \DoxyCodeLine{119 \textcolor{keywordtype}{int} sccp\_sclc\_user\_sap\_down\_nofree(\textcolor{keyword}{struct} osmo\_sccp\_user *scu, \textcolor{keyword}{struct} osmo\_prim\_hdr *oph);} \DoxyCodeLine{120 } \DoxyCodeLine{121 \textcolor{keyword}{struct }msgb *sccp\_msgb\_alloc(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *name);} \DoxyCodeLine{122 } \DoxyCodeLine{123 \textcolor{keyword}{extern} \textcolor{keyword}{struct }osmo\_fsm sccp\_scoc\_fsm;} \DoxyCodeLine{124 } \DoxyCodeLine{125 \textcolor{keywordtype}{void} sccp\_scoc\_show\_connections(\textcolor{keyword}{struct} vty *vty, \textcolor{keyword}{struct} osmo\_sccp\_instance *inst);} \DoxyCodeLine{126 } \DoxyCodeLine{127 \textcolor{keywordtype}{void} osmo\_sccp\_vty\_write\_cs7\_node(\textcolor{keyword}{struct} vty *vty, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *indent, \textcolor{keyword}{struct} osmo\_sccp\_instance *inst);} \DoxyCodeLine{128 } \DoxyCodeLine{129 \textcolor{comment}{/* Local Broadcast (LBCS) */}} \DoxyCodeLine{130 \textcolor{keywordtype}{void} sccp\_lbcs\_local\_bcast\_pcstate(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst,} \DoxyCodeLine{131 \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_scu\_pcstate\_param *pcstate);} \DoxyCodeLine{132 \textcolor{keywordtype}{void} sccp\_lbcs\_local\_bcast\_state(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst,} \DoxyCodeLine{133 \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_scu\_state\_param *state);} \DoxyCodeLine{134 } \DoxyCodeLine{135 \textcolor{comment}{/* SCCP Management (SCMG) */}} \DoxyCodeLine{136 \textcolor{keywordtype}{void} sccp\_scmg\_rx\_ssn\_allowed(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst, uint32\_t dpc, uint32\_t ssn, uint32\_t smi);} \DoxyCodeLine{137 \textcolor{keywordtype}{void} sccp\_scmg\_rx\_ssn\_prohibited(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst, uint32\_t dpc, uint32\_t ssn, uint32\_t smi);} \DoxyCodeLine{138 \textcolor{keywordtype}{void} sccp\_scmg\_rx\_mtp\_pause(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst, uint32\_t dpc);} \DoxyCodeLine{139 \textcolor{keywordtype}{void} sccp\_scmg\_rx\_mtp\_resume(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst, uint32\_t dpc);} \DoxyCodeLine{140 \textcolor{keywordtype}{void} sccp\_scmg\_rx\_mtp\_status(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst, uint32\_t dpc, \textcolor{keyword}{enum} mtp\_unavail\_cause cause);} \DoxyCodeLine{141 \textcolor{keywordtype}{int} sccp\_scmg\_init(\textcolor{keyword}{struct} osmo\_sccp\_instance *inst);} \end{DoxyCode}