\doxysection{m2ua.\+h} \label{m2ua_8h_source}\index{include/osmocom/sigtran/protocol/m2ua.h@{include/osmocom/sigtran/protocol/m2ua.h}} \textbf{ Go to the documentation of this file.} \begin{DoxyCode}{0} \DoxyCodeLine{1 \textcolor{preprocessor}{\#pragma once}} \DoxyCodeLine{2 } \DoxyCodeLine{7 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{8 } \DoxyCodeLine{9 \textcolor{preprocessor}{\#define M2UA\_VERSION 1}} \DoxyCodeLine{10 \textcolor{preprocessor}{\#define M2UA\_SPARE 0}} \DoxyCodeLine{11 } \DoxyCodeLine{12 \textcolor{keyword}{enum} \{} \DoxyCodeLine{13 M2UA\_CLS\_MGMT, \textcolor{comment}{/* Management (MGMT) Message [IUA/M2UA/M3UA/SUA] */}} \DoxyCodeLine{14 M2UA\_CLS\_TRANS, \textcolor{comment}{/* Transfer Messages [M3UA] */}} \DoxyCodeLine{15 M2UA\_CLS\_SSNM, \textcolor{comment}{/* SS7 Signalling Network Management (SSNM) Messages [M3UA/SUA] */}} \DoxyCodeLine{16 M2UA\_CLS\_ASPSM, \textcolor{comment}{/* ASP State Maintenance (ASPSM) Messages [IUA/M2UA/M3UA/SUA] */}} \DoxyCodeLine{17 M2UA\_CLS\_ASPTM, \textcolor{comment}{/* ASP Traffic Maintenance (ASPTM) Messages [IUA/M2UA/M3UA/SUA] */}} \DoxyCodeLine{18 M2UA\_CLS\_QPTM, \textcolor{comment}{/* Q.921/Q.931 Boundary Primitives Transport (QPTM) */}} \DoxyCodeLine{19 M2UA\_CLS\_MAUP, \textcolor{comment}{/* MTP2 User Adaptation (MAUP) Messages [M2UA] */}} \DoxyCodeLine{20 M2UA\_CLS\_SUA\_LESS, \textcolor{comment}{/* Connectionless Messages [SUA] */}} \DoxyCodeLine{21 M2UA\_CLS\_SUA\_CONN, \textcolor{comment}{/* Connection-\/Oriented Messages [SUA] */}} \DoxyCodeLine{22 M2UA\_CLS\_RKM, \textcolor{comment}{/* Routing Key Management (RKM) Messages (M3UA) */}} \DoxyCodeLine{23 M2UA\_CLS\_IIM, \textcolor{comment}{/* Interface Identifier Management (IIM) Messages (M2UA) */}} \DoxyCodeLine{24 \};} \DoxyCodeLine{25 } \DoxyCodeLine{29 \textcolor{keyword}{enum} \{} \DoxyCodeLine{30 M2UA\_MAUP\_RESERVED, \textcolor{comment}{/* Reserved */}} \DoxyCodeLine{31 M2UA\_MAUP\_DATA, \textcolor{comment}{/* Data */}} \DoxyCodeLine{32 M2UA\_MAUP\_EST\_REQ, \textcolor{comment}{/* Establish Request */}} \DoxyCodeLine{33 M2UA\_MAUP\_EST\_CON, \textcolor{comment}{/* Establish Confirm */}} \DoxyCodeLine{34 M2UA\_MAUP\_REL\_REQ, \textcolor{comment}{/* Release Request */}} \DoxyCodeLine{35 M2UA\_MAUP\_REL\_CON, \textcolor{comment}{/* Release Confirm */}} \DoxyCodeLine{36 M2UA\_MAUP\_REL\_IND, \textcolor{comment}{/* Release Indication */}} \DoxyCodeLine{37 M2UA\_MAUP\_STATE\_REQ, \textcolor{comment}{/* State Request */}} \DoxyCodeLine{38 M2UA\_MAUP\_STATE\_CON, \textcolor{comment}{/* State Confirm */}} \DoxyCodeLine{39 M2UA\_MAUP\_STATE\_IND, \textcolor{comment}{/* State Indication */}} \DoxyCodeLine{40 M2UA\_MAUP\_RETR\_REQ, \textcolor{comment}{/* Data Retrieval Request */}} \DoxyCodeLine{41 M2UA\_MAUP\_D\_RETR\_CON, \textcolor{comment}{/* Data Retrieval Confirm */}} \DoxyCodeLine{42 M2UA\_MAUP\_D\_RETR\_IND, \textcolor{comment}{/* Data Retrieval Indication */}} \DoxyCodeLine{43 M2UA\_MAUP\_D\_RETR\_COMPL, \textcolor{comment}{/* Data Retrieval Complete Indication */}} \DoxyCodeLine{44 M2UA\_MAUP\_CONG\_IND, \textcolor{comment}{/* Congestion Indication */}} \DoxyCodeLine{45 M2UA\_MAUP\_DATA\_ACK, \textcolor{comment}{/* Data Acknowledge */}} \DoxyCodeLine{46 \};} \DoxyCodeLine{47 } \DoxyCodeLine{51 \textcolor{keyword}{enum} \{} \DoxyCodeLine{52 M2UA\_ASPSM\_RESERVED, \textcolor{comment}{/* Reserved */}} \DoxyCodeLine{53 M2UA\_ASPSM\_UP, \textcolor{comment}{/* ASP Up (UP) */}} \DoxyCodeLine{54 M2UA\_ASPSM\_DOWN, \textcolor{comment}{/* ASP Down (DOWN) */}} \DoxyCodeLine{55 M2UA\_ASPSM\_BEAT, \textcolor{comment}{/* Heartbeat (BEAT) */}} \DoxyCodeLine{56 M2UA\_ASPSM\_UP\_ACK, \textcolor{comment}{/* ASP Up Ack (UP ACK) */}} \DoxyCodeLine{57 M2UA\_ASPSM\_DOWN\_ACK, \textcolor{comment}{/* ASP Down Ack (DOWN ACK) */}} \DoxyCodeLine{58 M2UA\_ASPSM\_BEAT\_ACK, \textcolor{comment}{/* Heartbeat Ack (BEAT ACK) */}} \DoxyCodeLine{59 \};} \DoxyCodeLine{60 } \DoxyCodeLine{64 \textcolor{keyword}{enum} \{} \DoxyCodeLine{65 M2UA\_ASPTM\_RESERVED, \textcolor{comment}{/* Reserved */}} \DoxyCodeLine{66 M2UA\_ASPTM\_ACTIV, \textcolor{comment}{/* ASP Active (ACTIVE) */}} \DoxyCodeLine{67 M2UA\_ASPTM\_INACTIV, \textcolor{comment}{/* ASP Inactive (INACTIVE) */}} \DoxyCodeLine{68 M2UA\_ASPTM\_ACTIV\_ACK, \textcolor{comment}{/* ASP Active Ack (ACTIVE ACK) */}} \DoxyCodeLine{69 M2UA\_ASPTM\_INACTIV\_ACK, \textcolor{comment}{/* ASP Inactive Ack (INACTIVE ACK) */}} \DoxyCodeLine{70 \};} \DoxyCodeLine{71 } \DoxyCodeLine{75 \textcolor{keyword}{enum} \{} \DoxyCodeLine{76 M2UA\_MGMT\_ERROR, \textcolor{comment}{/* Error (ERR) */}} \DoxyCodeLine{77 M2UA\_MGMT\_NTFY, \textcolor{comment}{/* Notify (NTFY) */}} \DoxyCodeLine{78 \};} \DoxyCodeLine{79 } \DoxyCodeLine{83 \textcolor{keyword}{enum} \{} \DoxyCodeLine{84 M2UA\_IIM\_RESERVED, \textcolor{comment}{/* Reserved */}} \DoxyCodeLine{85 M2UA\_IIM\_REG\_REQ, \textcolor{comment}{/* Registration Request (REG REQ) */}} \DoxyCodeLine{86 M2UA\_IIM\_REG\_RSP, \textcolor{comment}{/* Registration Response (REG RSP) */}} \DoxyCodeLine{87 M2UA\_IIM\_DEREG\_REQ, \textcolor{comment}{/* Deregistration Request (DEREG REQ) */}} \DoxyCodeLine{88 M2UA\_IIM\_DEREG\_RSP, \textcolor{comment}{/* Deregistration Response (DEREG RSP) */}} \DoxyCodeLine{89 \};} \DoxyCodeLine{90 } \DoxyCodeLine{94 \textcolor{keyword}{enum} \{} \DoxyCodeLine{95 \_\_m2ua\_tag\_start = 767,} \DoxyCodeLine{96 } \DoxyCodeLine{97 M2UA\_TAG\_DATA, \textcolor{comment}{/* Protocol Data 1 */}} \DoxyCodeLine{98 M2UA\_TAG\_DATA\_TTC, \textcolor{comment}{/* Protocol Data 2 (TTC) */}} \DoxyCodeLine{99 M2UA\_TAG\_STATE\_REQ, \textcolor{comment}{/* State Request */}} \DoxyCodeLine{100 M2UA\_TAG\_STATE\_EVENT, \textcolor{comment}{/* State Event */}} \DoxyCodeLine{101 M2UA\_TAG\_CONG\_STATUS, \textcolor{comment}{/* Congestion Status */}} \DoxyCodeLine{102 M2UA\_TAG\_DISC\_STATUS, \textcolor{comment}{/* Discard Status */}} \DoxyCodeLine{103 M2UA\_TAG\_ACTION, \textcolor{comment}{/* Action */}} \DoxyCodeLine{104 M2UA\_TAG\_SEQ\_NO, \textcolor{comment}{/* Sequence Number */}} \DoxyCodeLine{105 M2UA\_TAG\_RETR\_RES, \textcolor{comment}{/* Retrieval Result */}} \DoxyCodeLine{106 M2UA\_TAG\_LNK\_KEY, \textcolor{comment}{/* Link Key */}} \DoxyCodeLine{107 M2UA\_TAG\_L\_LNK\_KEY\_ID, \textcolor{comment}{/* Local-\/LK-\/Identifier */}} \DoxyCodeLine{108 M2UA\_TAG\_SDT, \textcolor{comment}{/* Signalling Data Terminal (SDT) Identifier */}} \DoxyCodeLine{109 M2UA\_TAG\_SDL, \textcolor{comment}{/* Signalling Data Link (SDL) Identifier */}} \DoxyCodeLine{110 M2UA\_TAG\_REG\_RES, \textcolor{comment}{/* Registration Result */}} \DoxyCodeLine{111 M2UA\_TAG\_RES\_STATUS, \textcolor{comment}{/* Registration Status */}} \DoxyCodeLine{112 M2UA\_TAG\_DEREG\_RES, \textcolor{comment}{/* De-\/Registration Result */}} \DoxyCodeLine{113 M2UA\_TAG\_DEREG\_STATUS, \textcolor{comment}{/* De-\/Registration Status */}} \DoxyCodeLine{114 \};} \DoxyCodeLine{115 } \DoxyCodeLine{119 \textcolor{keyword}{enum} \{} \DoxyCodeLine{120 M2UA\_STATUS\_LPO\_SET, \textcolor{comment}{/* Request local processor outage */}} \DoxyCodeLine{121 M2UA\_STATUS\_LPO\_CLEAR, \textcolor{comment}{/* Request local processor outage recovered */}} \DoxyCodeLine{122 M2UA\_STATUS\_EMER\_SET, \textcolor{comment}{/* Request emergency alignment */}} \DoxyCodeLine{123 M2UA\_STATUS\_EMER\_CLEAR, \textcolor{comment}{/* Request normal alignment (cancel emergency) */}} \DoxyCodeLine{124 M2UA\_STATUS\_FLUSH\_BUFFERS, \textcolor{comment}{/* Flush or clear receive, transmit and retransmit queues */}} \DoxyCodeLine{125 M2UA\_STATUS\_CONTINUE, \textcolor{comment}{/* Continue or Resume */}} \DoxyCodeLine{126 M2UA\_STATUS\_CLEAR\_RTB, \textcolor{comment}{/* Clear the retransmit queue */}} \DoxyCodeLine{127 M2UA\_STATUS\_AUDIT, \textcolor{comment}{/* Audit state of link */}} \DoxyCodeLine{128 M2UA\_STATUS\_CONG\_CLEAR, \textcolor{comment}{/* Congestion cleared */}} \DoxyCodeLine{129 M2UA\_STATUS\_CONG\_ACCEPT, \textcolor{comment}{/* Congestion accept */}} \DoxyCodeLine{130 M2UA\_STATUS\_CONG\_DISCARD, \textcolor{comment}{/* Congestion discard */}} \DoxyCodeLine{131 \};} \DoxyCodeLine{132 } \DoxyCodeLine{136 \textcolor{keyword}{enum} \{} \DoxyCodeLine{137 \_\_m2ua\_event\_dummy,} \DoxyCodeLine{138 M2UA\_EVENT\_RPO\_ENTER, \textcolor{comment}{/* Remote entered processor outage */}} \DoxyCodeLine{139 M2UA\_EVENT\_RPO\_EXIT, \textcolor{comment}{/* Remote exited processor outage */}} \DoxyCodeLine{140 M2UA\_EVENT\_LPO\_ENTER, \textcolor{comment}{/* Link entered processor outage */}} \DoxyCodeLine{141 M2UA\_EVENT\_LPO\_EXIT, \textcolor{comment}{/* Link exited processor outage */}} \DoxyCodeLine{142 \};} \DoxyCodeLine{143 } \DoxyCodeLine{147 \textcolor{keyword}{enum} \{} \DoxyCodeLine{148 M2UA\_LEVEL\_NONE, \textcolor{comment}{/* No congestion */}} \DoxyCodeLine{149 M2UA\_LEVEL\_1, \textcolor{comment}{/* Congestion Level 1 */}} \DoxyCodeLine{150 M2UA\_LEVEL\_2, \textcolor{comment}{/* Congestion Level 2 */}} \DoxyCodeLine{151 M2UA\_LEVEL\_3, \textcolor{comment}{/* Congestion Level 3 */}} \DoxyCodeLine{152 \};} \DoxyCodeLine{153 } \DoxyCodeLine{157 \textcolor{keyword}{enum} \{} \DoxyCodeLine{158 M2UA\_ACTION\_RTRV\_BSN, \textcolor{comment}{/* Retrieve the backward sequence number */}} \DoxyCodeLine{159 M2UA\_ACTION\_RTRV\_MSGS, \textcolor{comment}{/* Retrieve the PDUs from the transmit and retransmit queues. */}} \DoxyCodeLine{160 \};} \DoxyCodeLine{161 } \DoxyCodeLine{165 \textcolor{keyword}{enum} \{} \DoxyCodeLine{166 M2UA\_RESULT\_SUCCESS, \textcolor{comment}{/* Action successful */}} \DoxyCodeLine{167 M2UA\_RESULT\_FAILURE, \textcolor{comment}{/* Action failed */}} \DoxyCodeLine{168 \};} \DoxyCodeLine{169 } \DoxyCodeLine{173 \textcolor{keyword}{enum} \{} \DoxyCodeLine{174 M2UA\_TRA\_OVERRIDE = 1, \textcolor{comment}{/* Override */}} \DoxyCodeLine{175 M2UA\_TRA\_LOAD\_SHARE = 2, \textcolor{comment}{/* Load-\/share */}} \DoxyCodeLine{176 M2UA\_TRA\_BROADCAST = 3, \textcolor{comment}{/* Broadcast */}} \DoxyCodeLine{177 \};} \DoxyCodeLine{178 } \DoxyCodeLine{182 \textcolor{keyword}{enum} \{} \DoxyCodeLine{183 \_\_m2ua\_err\_unused,} \DoxyCodeLine{184 M2UA\_ERR\_INV\_VER, \textcolor{comment}{/* Invalid Version */}} \DoxyCodeLine{185 M2UA\_ERR\_INV\_INT\_IDENT, \textcolor{comment}{/* Invalid Interface Identifier */}} \DoxyCodeLine{186 M2UA\_ERR\_UNS\_MSG\_CLASS, \textcolor{comment}{/* Unsupported Message Class */}} \DoxyCodeLine{187 M2UA\_ERR\_UNS\_MSG\_TYPE, \textcolor{comment}{/* Unsupported Message Type */}} \DoxyCodeLine{188 M2UA\_ERR\_UNS\_TRA\_MODE, \textcolor{comment}{/* Unsupported Traffic Handling Mode */}} \DoxyCodeLine{189 M2UA\_ERR\_UNE\_MSG, \textcolor{comment}{/* Unexpected Message */}} \DoxyCodeLine{190 M2UA\_ERR\_PROTO\_ERROR, \textcolor{comment}{/* Protocol Error */}} \DoxyCodeLine{191 M2UA\_ERR\_UNS\_INT\_IDENT\_T, \textcolor{comment}{/* Unsupported Interface Identifier Type */}} \DoxyCodeLine{192 M2UA\_ERR\_INV\_STR\_IDENT, \textcolor{comment}{/* Invalid Stream Identifier */}} \DoxyCodeLine{193 M2UA\_ERR\_UNUSED1, \textcolor{comment}{/* Unused in M2UA */}} \DoxyCodeLine{194 M2UA\_ERR\_UNUSED2, \textcolor{comment}{/* Unused in M2UA */}} \DoxyCodeLine{195 M2UA\_ERR\_UNUSED3, \textcolor{comment}{/* Unused in M2UA */}} \DoxyCodeLine{196 M2UA\_ERR\_REFUSED, \textcolor{comment}{/* Refused -\/ Management Blocking */}} \DoxyCodeLine{197 M2UA\_ERR\_ASP\_IDENT\_REQ, \textcolor{comment}{/* ASP Identifier Required */}} \DoxyCodeLine{198 M2UA\_ERR\_INV\_ASP\_IDENT, \textcolor{comment}{/* Invalid ASP Identifier */}} \DoxyCodeLine{199 M2UA\_ERR\_ASP\_ACT\_FOR\_IDENT, \textcolor{comment}{/* ASP Active for Interface Identifier(s) */}} \DoxyCodeLine{200 M2UA\_ERR\_INV\_PARAM\_VAL, \textcolor{comment}{/* Invalid Parameter Value */}} \DoxyCodeLine{201 M2UA\_ERR\_PARAM\_FIELD\_ERR, \textcolor{comment}{/* Parameter Field Error */}} \DoxyCodeLine{202 M2UA\_ERR\_UNEXP\_PARAM, \textcolor{comment}{/* Unexpected Parameter */}} \DoxyCodeLine{203 M2UA\_ERR\_UNUSED4, \textcolor{comment}{/* Unused in M2UA */}} \DoxyCodeLine{204 M2UA\_ERR\_UNUSED5, \textcolor{comment}{/* Unused in M2UA */}} \DoxyCodeLine{205 M2UA\_ERR\_MISSING\_PARAM, \textcolor{comment}{/* Missing Parameter */}} \DoxyCodeLine{206 \};} \DoxyCodeLine{207 } \DoxyCodeLine{211 \textcolor{keyword}{enum} \{} \DoxyCodeLine{212 M2UA\_STP\_AS\_STATE\_CHG = 1, \textcolor{comment}{/* Application Server state change (AS\_State\_Change) */}} \DoxyCodeLine{213 M2UA\_STP\_OTHER = 2, \textcolor{comment}{/* Other */}} \DoxyCodeLine{214 \};} \DoxyCodeLine{215 } \DoxyCodeLine{216 \textcolor{keyword}{enum} \{} \DoxyCodeLine{217 \textcolor{comment}{/* this is for M2UA\_STP\_AS\_STATE\_CHG */}} \DoxyCodeLine{218 M2UA\_STP\_AS\_INACTIVE = 2, \textcolor{comment}{/* Application Server Inactive (AS\_Inactive) */}} \DoxyCodeLine{219 M2UA\_STP\_AS\_ACTIVE = 3, \textcolor{comment}{/* Application Server Active (AS\_Active) */}} \DoxyCodeLine{220 M2UA\_STP\_AS\_PENDING = 4, \textcolor{comment}{/* Application Server Pending (AS\_Pending) */}} \DoxyCodeLine{221 } \DoxyCodeLine{222 \textcolor{comment}{/* this is for the other */}} \DoxyCodeLine{223 M2UA\_STP\_O\_INSUFF\_ASP\_RES = 1, \textcolor{comment}{/* Insufficient ASP resources active in AS */}} \DoxyCodeLine{224 M2UA\_STP\_O\_ALT\_ASP\_ACTIVR = 2, \textcolor{comment}{/* Alternate ASP Active */}} \DoxyCodeLine{225 M2UA\_STP\_O\_ASP\_FAILURE = 3, \textcolor{comment}{/* ASP Failure */}} \DoxyCodeLine{226 \};} \DoxyCodeLine{227 } \DoxyCodeLine{231 \textcolor{keyword}{enum} \{} \DoxyCodeLine{232 M2UA\_REG\_SUCC, \textcolor{comment}{/* Successfully Registered */}} \DoxyCodeLine{233 M2UA\_REG\_ERR\_UNK, \textcolor{comment}{/* Error -\/ Unknown */}} \DoxyCodeLine{234 M2UA\_REG\_ERR\_INV\_SDLI, \textcolor{comment}{/* Error -\/ Invalid SDLI */}} \DoxyCodeLine{235 M2UA\_REG\_ERR\_INV\_SDTI, \textcolor{comment}{/* Error -\/ Invalid SDTI */}} \DoxyCodeLine{236 M2UA\_REG\_ERR\_INV\_LNK\_KEY, \textcolor{comment}{/* Error -\/ Invalid Link Key */}} \DoxyCodeLine{237 M2UA\_REG\_ERR\_PERM\_DENIED, \textcolor{comment}{/* Error -\/ Permission Denied */}} \DoxyCodeLine{238 M2UA\_REG\_ERR\_OVERLAP\_KEY, \textcolor{comment}{/* Error -\/ Overlapping (Non-\/unique) Link Key */}} \DoxyCodeLine{239 M2UA\_REG\_ERR\_LNK\_KEY\_NOT\_PROV, \textcolor{comment}{/* Error -\/ Link Key not Provisioned */}} \DoxyCodeLine{240 M2UA\_REG\_ERR\_INSUFF\_RES, \textcolor{comment}{/* Error -\/ Insufficient Resources */}} \DoxyCodeLine{241 \};} \DoxyCodeLine{242 } \DoxyCodeLine{246 \textcolor{keyword}{enum} \{} \DoxyCodeLine{247 M2UA\_DEREG\_SUCC, \textcolor{comment}{/* Successfully De-\/registered */}} \DoxyCodeLine{248 M2UA\_DEREG\_ERR\_UNK, \textcolor{comment}{/* Error -\/ Unknown */}} \DoxyCodeLine{249 M2UA\_DEREG\_ERR\_INV\_IDENT, \textcolor{comment}{/* Error -\/ Invalid Interface Identifier */}} \DoxyCodeLine{250 M2UA\_DEREG\_ERR\_PERM\_DENIED, \textcolor{comment}{/* Error -\/ Permission Denied */}} \DoxyCodeLine{251 M2UA\_DEREG\_ERR\_NOT\_REG, \textcolor{comment}{/* Error -\/ Not Registered */}} \DoxyCodeLine{252 \};} \end{DoxyCode}