\doxysection{ss7\+\_\+instance.\+h}
\label{ss7__instance_8h_source}\index{src/ss7\_instance.h@{src/ss7\_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 <stdint.h>}}
\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <stdbool.h>}}
\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <osmocom/core/linuxlist.h>}}
\DoxyCodeLine{6 }
\DoxyCodeLine{7 \textcolor{comment}{/***********************************************************************}}
\DoxyCodeLine{8 \textcolor{comment}{ * SS7 Instances}}
\DoxyCodeLine{9 \textcolor{comment}{ ***********************************************************************/}}
\DoxyCodeLine{10 }
\DoxyCodeLine{11 \textcolor{keyword}{struct }osmo\_ss7\_user;}
\DoxyCodeLine{12 \textcolor{keyword}{struct }osmo\_ss7\_route\_table;}
\DoxyCodeLine{13 \textcolor{keyword}{struct }osmo\_ss7\_route\_label;}
\DoxyCodeLine{14 \textcolor{keyword}{struct }osmo\_sccp\_instance;}
\DoxyCodeLine{15 }
\DoxyCodeLine{16 \textcolor{keyword}{struct }osmo\_ss7\_pc\_fmt \{}
\DoxyCodeLine{17         \textcolor{keywordtype}{char} delimiter;}
\DoxyCodeLine{18         uint8\_t component\_len[3];}
\DoxyCodeLine{19 \};}
\DoxyCodeLine{20 }
\DoxyCodeLine{21 \textcolor{keyword}{struct }osmo\_ss7\_instance \{}
\DoxyCodeLine{23         \textcolor{keyword}{struct }llist\_head list;}
\DoxyCodeLine{25         \textcolor{keyword}{struct }llist\_head linksets;}
\DoxyCodeLine{27         \textcolor{keyword}{struct }llist\_head as\_list;}
\DoxyCodeLine{29         \textcolor{keyword}{struct }llist\_head asp\_list;}
\DoxyCodeLine{31         \textcolor{keyword}{struct }llist\_head rtable\_list;}
\DoxyCodeLine{33         \textcolor{keyword}{struct }llist\_head xua\_servers;}
\DoxyCodeLine{34         \textcolor{comment}{/* array for faster lookup of user (indexed by service}}
\DoxyCodeLine{35 \textcolor{comment}{         * indicator) */}}
\DoxyCodeLine{36         \textcolor{keyword}{const} \textcolor{keyword}{struct }osmo\_ss7\_user *user[16];}
\DoxyCodeLine{37 }
\DoxyCodeLine{38         \textcolor{keyword}{struct }osmo\_ss7\_route\_table *rtable\_system;}
\DoxyCodeLine{39 }
\DoxyCodeLine{40         \textcolor{keyword}{struct }osmo\_sccp\_instance *sccp;}
\DoxyCodeLine{41 }
\DoxyCodeLine{42         \textcolor{keyword}{struct }\{}
\DoxyCodeLine{43                 uint32\_t id;}
\DoxyCodeLine{44                 \textcolor{keywordtype}{char} *name;}
\DoxyCodeLine{45                 \textcolor{keywordtype}{char} *description;}
\DoxyCodeLine{46                 uint32\_t primary\_pc;}
\DoxyCodeLine{47                 \textcolor{comment}{/* capability PCs */}}
\DoxyCodeLine{48                 uint8\_t network\_indicator;}
\DoxyCodeLine{49                 \textcolor{keyword}{struct }osmo\_ss7\_pc\_fmt pc\_fmt;}
\DoxyCodeLine{50                 \textcolor{keywordtype}{bool} permit\_dyn\_rkm\_alloc;}
\DoxyCodeLine{51                 \textcolor{keyword}{struct }llist\_head sccp\_address\_book;}
\DoxyCodeLine{52                 uint32\_t secondary\_pc;}
\DoxyCodeLine{53                 \textcolor{comment}{/* How many bits from ITU OPC/DPC field (starting from least-\/significant-\/bit)}}
\DoxyCodeLine{54 \textcolor{comment}{                 * to skip for routing decisions (always takes 6 bits).}}
\DoxyCodeLine{55 \textcolor{comment}{                 * range 0-\/8, defaults to 0, which means take least significant 6 bits. */}}
\DoxyCodeLine{56                 uint8\_t opc\_shift;}
\DoxyCodeLine{57                 uint8\_t dpc\_shift;}
\DoxyCodeLine{58                 \textcolor{comment}{/* How many bits from ITU SLS field (starting from least-\/significant-\/bit)}}
\DoxyCodeLine{59 \textcolor{comment}{                 * to skip for routing decisions.}}
\DoxyCodeLine{60 \textcolor{comment}{                 * range 0-\/3, defaults to 0, which means take all 4 bits. */}}
\DoxyCodeLine{61                 uint8\_t sls\_shift;}
\DoxyCodeLine{62         \} cfg;}
\DoxyCodeLine{63 \};}
\DoxyCodeLine{64 }
\DoxyCodeLine{65 \textcolor{keyword}{struct }osmo\_ss7\_instance *}
\DoxyCodeLine{66 ss7\_instance\_alloc(\textcolor{keywordtype}{void} *ctx, uint32\_t \textcolor{keywordtype}{id});}
\DoxyCodeLine{67 }
\DoxyCodeLine{68 uint32\_t ss7\_find\_free\_l\_rk\_id(\textcolor{keyword}{struct} osmo\_ss7\_instance *inst);}
\DoxyCodeLine{69 \textcolor{keyword}{struct }osmo\_ss7\_route *}
\DoxyCodeLine{70 ss7\_instance\_lookup\_route(\textcolor{keyword}{struct} osmo\_ss7\_instance *inst, \textcolor{keyword}{const} \textcolor{keyword}{struct} osmo\_ss7\_route\_label *rtlabel);}
\DoxyCodeLine{71 }
\DoxyCodeLine{72 \textcolor{preprocessor}{\#define \_LOGSS7(inst, subsys, level, fmt, args ...) \(\backslash\)}}
\DoxyCodeLine{73 \textcolor{preprocessor}{        LOGP(subsys, level, "{}\%u: "{}} fmt, inst ? (inst)-\/>cfg.id : 0, \#\# args)}
\DoxyCodeLine{74 \textcolor{preprocessor}{\#define LOGSS7(inst, level, fmt, args ...) \(\backslash\)}}
\DoxyCodeLine{75 \textcolor{preprocessor}{        \_LOGSS7(inst, DLSS7, level, fmt, \#\# args)}}

\end{DoxyCode}
