\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 <stdint.h>}}
\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}
