\doxysection{sua.\+h}
\label{sua_8h_source}\index{include/osmocom/sigtran/protocol/sua.h@{include/osmocom/sigtran/protocol/sua.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* RFC 3868 SUA SCCP User Adaption */}}
\DoxyCodeLine{2 }
\DoxyCodeLine{3 \textcolor{comment}{/* (C) 2012 by Harald Welte <laforge@gnumonks.org>}}
\DoxyCodeLine{4 \textcolor{comment}{ *}}
\DoxyCodeLine{5 \textcolor{comment}{ * All Rights Reserved}}
\DoxyCodeLine{6 \textcolor{comment}{ *}}
\DoxyCodeLine{7 \textcolor{comment}{ * This program is free software; you can redistribute it and/or modify}}
\DoxyCodeLine{8 \textcolor{comment}{ * it under the terms of the GNU General Public License as}}
\DoxyCodeLine{9 \textcolor{comment}{ * published by the Free Software Foundation; either version 2 of the}}
\DoxyCodeLine{10 \textcolor{comment}{ * License, or (at your option) any later version.}}
\DoxyCodeLine{11 \textcolor{comment}{ *}}
\DoxyCodeLine{12 \textcolor{comment}{ * This program is distributed in the hope that it will be useful,}}
\DoxyCodeLine{13 \textcolor{comment}{ * but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\DoxyCodeLine{14 \textcolor{comment}{ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\DoxyCodeLine{15 \textcolor{comment}{ * GNU General Public License for more details.}}
\DoxyCodeLine{16 \textcolor{comment}{ *}}
\DoxyCodeLine{17 \textcolor{comment}{ * You should have received a copy of the GNU General Public License}}
\DoxyCodeLine{18 \textcolor{comment}{ * along with this program.  If not, see <http://www.gnu.org/licenses/>.}}
\DoxyCodeLine{19 \textcolor{comment}{ */}}
\DoxyCodeLine{20 }
\DoxyCodeLine{21 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{22 \textcolor{preprocessor}{\#include <stddef.h>}}
\DoxyCodeLine{23 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{24 }
\DoxyCodeLine{25 \textcolor{preprocessor}{\#include <osmocom/sigtran/protocol/m3ua.h>}}
\DoxyCodeLine{26 }
\DoxyCodeLine{27 \textcolor{preprocessor}{\#define SUA\_VERSION     1}}
\DoxyCodeLine{28 \textcolor{preprocessor}{\#define SUA\_PPID        4}}
\DoxyCodeLine{29 \textcolor{preprocessor}{\#define SUA\_PORT        14001}}
\DoxyCodeLine{30 }
\DoxyCodeLine{31 \textcolor{comment}{/* 3.1.2 Message Classes */}}
\DoxyCodeLine{32 \textcolor{preprocessor}{\#define SUA\_MSGC\_MGMT   0}}
\DoxyCodeLine{33 \textcolor{preprocessor}{\#define SUA\_MSGC\_SNM    2}}
\DoxyCodeLine{34 \textcolor{preprocessor}{\#define SUA\_MSGC\_ASPSM  3}}
\DoxyCodeLine{35 \textcolor{preprocessor}{\#define SUA\_MSGC\_ASPTM  4}}
\DoxyCodeLine{36 \textcolor{preprocessor}{\#define SUA\_MSGC\_CL     7}}
\DoxyCodeLine{37 \textcolor{preprocessor}{\#define SUA\_MSGC\_CO     8}}
\DoxyCodeLine{38 \textcolor{preprocessor}{\#define SUA\_MSGC\_RKM    9}}
\DoxyCodeLine{39 }
\DoxyCodeLine{40 \textcolor{comment}{/* 3.1.3 Message Types */}}
\DoxyCodeLine{41 \textcolor{preprocessor}{\#define SUA\_MGMT\_ERR    0}}
\DoxyCodeLine{42 \textcolor{preprocessor}{\#define SUA\_MGMT\_NTFY   1}}
\DoxyCodeLine{43 }
\DoxyCodeLine{44 \textcolor{preprocessor}{\#define SUA\_SNM\_DUNA    1}}
\DoxyCodeLine{45 \textcolor{preprocessor}{\#define SUA\_SNM\_DAVA    2}}
\DoxyCodeLine{46 \textcolor{preprocessor}{\#define SUA\_SNM\_DAUD    3}}
\DoxyCodeLine{47 \textcolor{preprocessor}{\#define SUA\_SNM\_SCON    4}}
\DoxyCodeLine{48 \textcolor{preprocessor}{\#define SUA\_SNM\_DUPU    5}}
\DoxyCodeLine{49 \textcolor{preprocessor}{\#define SUA\_SNM\_DRST    6}}
\DoxyCodeLine{50 }
\DoxyCodeLine{51 \textcolor{preprocessor}{\#define SUA\_ASPSM\_UP            1}}
\DoxyCodeLine{52 \textcolor{preprocessor}{\#define SUA\_ASPSM\_DOWN          2}}
\DoxyCodeLine{53 \textcolor{preprocessor}{\#define SUA\_ASPSM\_BEAT          3}}
\DoxyCodeLine{54 \textcolor{preprocessor}{\#define SUA\_ASPSM\_UP\_ACK        4}}
\DoxyCodeLine{55 \textcolor{preprocessor}{\#define SUA\_ASPSM\_DOWN\_ACK      5}}
\DoxyCodeLine{56 \textcolor{preprocessor}{\#define SUA\_ASPSM\_BEAT\_ACK      6}}
\DoxyCodeLine{57 }
\DoxyCodeLine{58 \textcolor{preprocessor}{\#define SUA\_ASPTM\_ACTIVE        1}}
\DoxyCodeLine{59 \textcolor{preprocessor}{\#define SUA\_ASPTM\_INACTIVE      2}}
\DoxyCodeLine{60 \textcolor{preprocessor}{\#define SUA\_ASPTM\_ACTIVE\_ACK    3}}
\DoxyCodeLine{61 \textcolor{preprocessor}{\#define SUA\_ASPTM\_INACTIVE\_ACK  4}}
\DoxyCodeLine{62 }
\DoxyCodeLine{63 \textcolor{preprocessor}{\#define SUA\_RKM\_REG\_REQ         1}}
\DoxyCodeLine{64 \textcolor{preprocessor}{\#define SUA\_RKM\_REG\_RSP         2}}
\DoxyCodeLine{65 \textcolor{preprocessor}{\#define SUA\_RKM\_DEREG\_REQ       3}}
\DoxyCodeLine{66 \textcolor{preprocessor}{\#define SUA\_RKM\_DEREG\_RSP       4}}
\DoxyCodeLine{67 }
\DoxyCodeLine{68 \textcolor{preprocessor}{\#define SUA\_CL\_CLDT             1}}
\DoxyCodeLine{69 \textcolor{preprocessor}{\#define SUA\_CL\_CLDR             2}}
\DoxyCodeLine{70 }
\DoxyCodeLine{71 \textcolor{preprocessor}{\#define SUA\_CO\_CORE             1}}
\DoxyCodeLine{72 \textcolor{preprocessor}{\#define SUA\_CO\_COAK             2}}
\DoxyCodeLine{73 \textcolor{preprocessor}{\#define SUA\_CO\_COREF            3}}
\DoxyCodeLine{74 \textcolor{preprocessor}{\#define SUA\_CO\_RELRE            4}}
\DoxyCodeLine{75 \textcolor{preprocessor}{\#define SUA\_CO\_RELCO            5}}
\DoxyCodeLine{76 \textcolor{preprocessor}{\#define SUA\_CO\_RESCO            6}}
\DoxyCodeLine{77 \textcolor{preprocessor}{\#define SUA\_CO\_RESRE            7}}
\DoxyCodeLine{78 \textcolor{preprocessor}{\#define SUA\_CO\_CODT             8}}
\DoxyCodeLine{79 \textcolor{preprocessor}{\#define SUA\_CO\_CODA             9}}
\DoxyCodeLine{80 \textcolor{preprocessor}{\#define SUA\_CO\_COERR            10}}
\DoxyCodeLine{81 \textcolor{preprocessor}{\#define SUA\_CO\_COIT             11 }\textcolor{comment}{/* Connection Oriented Inactiviy Test */}\textcolor{preprocessor}{}}
\DoxyCodeLine{82 }
\DoxyCodeLine{83 \textcolor{preprocessor}{\#define SUA\_IEI\_INFO\_STRING     M3UA\_IEI\_INFO\_STRING}}
\DoxyCodeLine{84 \textcolor{preprocessor}{\#define SUA\_IEI\_ROUTE\_CTX       M3UA\_IEI\_ROUTE\_CTX}}
\DoxyCodeLine{85 \textcolor{preprocessor}{\#define SUA\_IEI\_DIAG\_INFO       M3UA\_IEI\_DIAG\_INFO}}
\DoxyCodeLine{86 \textcolor{preprocessor}{\#define SUA\_IEI\_HEARTBT\_DATA    M3UA\_IEI\_HEARDBT\_DATA}}
\DoxyCodeLine{87 \textcolor{preprocessor}{\#define SUA\_IEI\_TRAF\_MODE\_TYP   M3UA\_IEI\_TRAF\_MODE\_TYP}}
\DoxyCodeLine{88 \textcolor{preprocessor}{\#define SUA\_IEI\_ERR\_CODE        M3UA\_IEI\_ERR\_CODE}}
\DoxyCodeLine{89 \textcolor{preprocessor}{\#define SUA\_IEI\_STATUS          M3UA\_IEI\_STATUS}}
\DoxyCodeLine{90 \textcolor{preprocessor}{\#define SUA\_IEI\_ASP\_ID          M3UA\_IEI\_ASP\_ID}}
\DoxyCodeLine{91 \textcolor{preprocessor}{\#define SUA\_IEI\_AFFECTED\_PC     M3UA\_IEI\_AFFECTED\_PC}}
\DoxyCodeLine{92 \textcolor{preprocessor}{\#define SUA\_IEI\_CORR\_ID         M3UA\_IEI\_CORR\_ID}}
\DoxyCodeLine{93 \textcolor{preprocessor}{\#define SUA\_IEI\_REG\_RESULT      0x0014}}
\DoxyCodeLine{94 \textcolor{preprocessor}{\#define SUA\_IEI\_DEREG\_RESULT    0x0015}}
\DoxyCodeLine{95 }
\DoxyCodeLine{96 \textcolor{comment}{/* 3.10 SUA specific parameters */}}
\DoxyCodeLine{97 }
\DoxyCodeLine{98 \textcolor{preprocessor}{\#define SUA\_IEI\_S7\_HOP\_CTR      0x0101}}
\DoxyCodeLine{99 \textcolor{preprocessor}{\#define SUA\_IEI\_SRC\_ADDR        0x0102}}
\DoxyCodeLine{100 \textcolor{preprocessor}{\#define SUA\_IEI\_DEST\_ADDR       0x0103}}
\DoxyCodeLine{101 \textcolor{preprocessor}{\#define SUA\_IEI\_SRC\_REF         0x0104}}
\DoxyCodeLine{102 \textcolor{preprocessor}{\#define SUA\_IEI\_DEST\_REF        0x0105}}
\DoxyCodeLine{103 \textcolor{preprocessor}{\#define SUA\_IEI\_CAUSE           0x0106}}
\DoxyCodeLine{104 \textcolor{preprocessor}{\#define SUA\_IEI\_SEQ\_NR          0x0107}}
\DoxyCodeLine{105 \textcolor{preprocessor}{\#define SUA\_IEI\_RX\_SEQ\_NR       0x0108}}
\DoxyCodeLine{106 \textcolor{preprocessor}{\#define SUA\_IEI\_ASP\_CAPA        0x0109}}
\DoxyCodeLine{107 \textcolor{preprocessor}{\#define SUA\_IEI\_CREDIT          0x010A}}
\DoxyCodeLine{108 \textcolor{preprocessor}{\#define SUA\_IEI\_DATA            0x010B}}
\DoxyCodeLine{109 \textcolor{preprocessor}{\#define SUA\_IEI\_USER\_CAUSE      0x010C}}
\DoxyCodeLine{110 \textcolor{preprocessor}{\#define SUA\_IEI\_NET\_APPEARANCE  0x010D}}
\DoxyCodeLine{111 \textcolor{preprocessor}{\#define SUA\_IEI\_ROUTING\_KEY     0x010E}}
\DoxyCodeLine{112 \textcolor{preprocessor}{\#define SUA\_IEI\_DRN             0x010F}}
\DoxyCodeLine{113 \textcolor{preprocessor}{\#define SUA\_IEI\_TID             0x0110}}
\DoxyCodeLine{114 \textcolor{preprocessor}{\#define SUA\_IEI\_SMI             0x0112}}
\DoxyCodeLine{115 \textcolor{preprocessor}{\#define SUA\_IEI\_IMPORTANCE      0x0113}}
\DoxyCodeLine{116 \textcolor{preprocessor}{\#define SUA\_IEI\_MSG\_PRIO        0x0114}}
\DoxyCodeLine{117 \textcolor{preprocessor}{\#define SUA\_IEI\_PROTO\_CLASS     0x0115}}
\DoxyCodeLine{118 \textcolor{preprocessor}{\#define SUA\_IEI\_SEQ\_CTRL        0x0116}}
\DoxyCodeLine{119 \textcolor{preprocessor}{\#define SUA\_IEI\_SEGMENTATION    0x0117}}
\DoxyCodeLine{120 \textcolor{preprocessor}{\#define SUA\_IEI\_CONG\_LEVEL      0x0118}}
\DoxyCodeLine{121 }
\DoxyCodeLine{122 \textcolor{preprocessor}{\#define SUA\_IEI\_GT      0x8001}}
\DoxyCodeLine{123 \textcolor{preprocessor}{\#define SUA\_IEI\_PC      0x8002}}
\DoxyCodeLine{124 \textcolor{preprocessor}{\#define SUA\_IEI\_SSN     0x8003}}
\DoxyCodeLine{125 \textcolor{preprocessor}{\#define SUA\_IEI\_IPv4    0x8004}}
\DoxyCodeLine{126 \textcolor{preprocessor}{\#define SUA\_IEI\_HOST    0x8005}}
\DoxyCodeLine{127 \textcolor{preprocessor}{\#define SUA\_IEI\_IPv6    0x8006}}
\DoxyCodeLine{128 }
\DoxyCodeLine{129 \textcolor{preprocessor}{\#define SUA\_RI\_GT       1}}
\DoxyCodeLine{130 \textcolor{preprocessor}{\#define SUA\_RI\_SSN\_PC   2}}
\DoxyCodeLine{131 \textcolor{preprocessor}{\#define SUA\_RI\_HOST     3}}
\DoxyCodeLine{132 \textcolor{preprocessor}{\#define SUA\_RI\_SSN\_IP   4}}
\DoxyCodeLine{133 }
\DoxyCodeLine{134 \textcolor{comment}{/* 3.10.6. SCCP Cause: Cause Type */}}
\DoxyCodeLine{135 \textcolor{preprocessor}{\#define SUA\_CAUSE\_T\_MASK        0xff00}}
\DoxyCodeLine{136 \textcolor{preprocessor}{\#define SUA\_CAUSE\_T\_RETURN      0x0100}}
\DoxyCodeLine{137 \textcolor{preprocessor}{\#define SUA\_CAUSE\_T\_REFUSAL     0x0200}}
\DoxyCodeLine{138 \textcolor{preprocessor}{\#define SUA\_CAUSE\_T\_RELEASE     0x0300}}
\DoxyCodeLine{139 \textcolor{preprocessor}{\#define SUA\_CAUSE\_T\_RESET       0x0400}}
\DoxyCodeLine{140 \textcolor{preprocessor}{\#define SUA\_CAUSE\_T\_ERROR       0x0500}}
\DoxyCodeLine{141 }
\DoxyCodeLine{142 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *osmo\_sua\_sccp\_cause\_name(uint32\_t sccp\_cause, \textcolor{keywordtype}{char} *out\_buf, \textcolor{keywordtype}{size\_t} out\_buf\_len);}
\DoxyCodeLine{143 }
\DoxyCodeLine{144 \textcolor{comment}{/* 3.9.12 Error: Identical to M3UA, extended by two at the bottom */}}
\DoxyCodeLine{145 \textcolor{preprocessor}{\#define SUA\_ERR\_INVALID\_VERSION         M3UA\_ERR\_INVALID\_VERSION}}
\DoxyCodeLine{146 \textcolor{preprocessor}{\#define SUA\_ERR\_UNSUPP\_MSG\_CLASS        M3UA\_ERR\_UNSUPP\_MSG\_CLASS}}
\DoxyCodeLine{147 \textcolor{preprocessor}{\#define SUA\_ERR\_UNSUPP\_MSG\_TYPE         M3UA\_ERR\_UNSUPP\_MSG\_TYPE}}
\DoxyCodeLine{148 \textcolor{preprocessor}{\#define SUA\_ERR\_UNSUPP\_TRAF\_MOD\_TYP     M3UA\_ERR\_UNSUPP\_TRAF\_MOD\_TYP}}
\DoxyCodeLine{149 \textcolor{preprocessor}{\#define SUA\_ERR\_UNEXPECTED\_MSG          M3UA\_ERR\_UNEXPECTED\_MSG}}
\DoxyCodeLine{150 \textcolor{preprocessor}{\#define SUA\_ERR\_PROTOCOL\_ERR            M3UA\_ERR\_PROTOCOL\_ERR}}
\DoxyCodeLine{151 \textcolor{preprocessor}{\#define SUA\_ERR\_INVAL\_STREAM\_ID         M3UA\_ERR\_INVAL\_STREAM\_ID}}
\DoxyCodeLine{152 \textcolor{preprocessor}{\#define SUA\_ERR\_REFUSED\_MGMT\_BLOCKING   M3UA\_ERR\_REFUSED\_MGMT\_BLOCKING}}
\DoxyCodeLine{153 \textcolor{preprocessor}{\#define SUA\_ERR\_ASP\_ID\_REQD             M3UA\_ERR\_ASP\_ID\_REQD}}
\DoxyCodeLine{154 \textcolor{preprocessor}{\#define SUA\_ERR\_INVAL\_ASP\_ID            M3UA\_ERR\_INVAL\_ASP\_ID}}
\DoxyCodeLine{155 \textcolor{preprocessor}{\#define SUA\_ERR\_INVAL\_PARAM\_VAL         M3UA\_ERR\_INVAL\_PARAM\_VAL}}
\DoxyCodeLine{156 \textcolor{preprocessor}{\#define SUA\_ERR\_PARAM\_FIELD\_ERR         M3UA\_ERR\_PARAM\_FIELD\_ERR}}
\DoxyCodeLine{157 \textcolor{preprocessor}{\#define SUA\_ERR\_UNEXP\_PARAM             M3UA\_ERR\_UNEXP\_PARAM}}
\DoxyCodeLine{158 \textcolor{preprocessor}{\#define SUA\_ERR\_DEST\_STATUS\_UNKN        M3UA\_ERR\_DEST\_STATUS\_UNKN}}
\DoxyCodeLine{159 \textcolor{preprocessor}{\#define SUA\_ERR\_INVAL\_NET\_APPEAR        M3UA\_ERR\_INVAL\_NET\_APPEAR}}
\DoxyCodeLine{160 \textcolor{preprocessor}{\#define SUA\_ERR\_MISSING\_PARAM           M3UA\_ERR\_MISSING\_PARAM}}
\DoxyCodeLine{161 \textcolor{preprocessor}{\#define SUA\_ERR\_INVAL\_ROUT\_CTX          M3UA\_ERR\_INVAL\_ROUT\_CTX}}
\DoxyCodeLine{162 \textcolor{preprocessor}{\#define SUA\_ERR\_NO\_CONFGD\_AS\_FOR\_ASP    M3UA\_ERR\_NO\_CONFGD\_AS\_FOR\_ASP}}
\DoxyCodeLine{163 \textcolor{preprocessor}{\#define SUA\_ERR\_SUBSYS\_STATUS\_UNKN      0x1b}}
\DoxyCodeLine{164 \textcolor{preprocessor}{\#define SUA\_ERR\_INVAL\_LOADSH\_LEVEL      0x1c}}

\end{DoxyCode}
