aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/sigtran/m3ua_types.h
blob: c8e62b4501368dfdb2a344458019cae4eaee88e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#pragma once

/**
 * Types found in the M3UA RFC 4666
 */

#include <stdint.h>


#define M3UA_VERSION	1

enum {
	M3UA_CLS_MGMT,		/* Management (MGMT) Message [IUA/M2UA/M3UA/SUA] */
	M3UA_CLS_TRANS,		/* Transfer Messages [M3UA] */
	M3UA_CLS_SSNM,		/* SS7 Signalling Network Management (SSNM) Messages [M3UA/SUA] */
	M3UA_CLS_ASPSM,		/* ASP State Maintenance (ASPSM) Messages [IUA/M2UA/M3UA/SUA] */
	M3UA_CLS_ASPTM,		/* ASP Traffic Maintenance (ASPTM) Messages [IUA/M2UA/M3UA/SUA] */
	M3UA_CLS_RESERVED1,	/* Reserved for Other SIGTRAN Adaptation Layers */
	M3UA_CLS_RESERVED2,	/* Reserved for Other SIGTRAN Adaptation Layers */
	M3UA_CLS_RESERVED3,	/* Reserved for Other SIGTRAN Adaptation Layers */
	M3UA_CLS_RESERVED4,	/* Reserved for Other SIGTRAN Adaptation Layers */
	M3UA_CLS_RKM,		/* Routing Key Management (RKM) Messages (M3UA) */
};

/**
 * Management (MGMT) messages
 */
enum {
	M3UA_MGMT_ERROR,	/* Error (ERR) */
	M3UA_MGMT_NTFY,		/* Notify (NTFY) */
};

/**
 * Transfer Messages
 */
enum {
	M3UA_TRANS_RESERVED,	/* Reserved */
	M3UA_TRANS_DATA,	/* Payload Data (DATA) */
};

/**
 * SS7 Signalling Network Management (SSNM) Messages
 */
enum {
	M3UA_SSNM_RESERVED,	/* Reserved */
	M3UA_SSNM_DUNA,		/* Destination Unavailable (DUNA) */
	M3UA_SSNM_DAVA,		/* Destination Available (DAVA) */
	M3UA_SSNM_DAUD,		/* Destination State Audit (DAUD) */
	M3UA_SSNM_SCON,		/* Signalling Congestion (SCON) */
	M3UA_SSNM_DUPU,		/* Destination User Part Unavailable (DUPU) */
	M3UA_SSNM_DRST,		/* Destination Restricted (DRST) */
};

/**
 * Application Server Process State Maintaenance (ASPSM) messages
 */
enum {
	M3UA_ASPSM_RESERVED,	/* Reserved */
	M3UA_ASPSM_UP,		/* ASP Up (UP) */
	M3UA_ASPSM_DOWN,	/* ASP Down (DOWN) */
	M3UA_ASPSM_BEAT,	/* Heartbeat (BEAT) */
	M3UA_ASPSM_UP_ACK,	/* ASP Up Ack (UP ACK) */
	M3UA_ASPSM_DOWN_ACK,	/* ASP Down Ack (DOWN ACK) */
	M3UA_ASPSM_BEAT_ACK,	/* Heartbeat Ack (BEAT ACK) */
};

/**
 * Application Server Process Traffic Maintaenance (ASPTM) messages.
 */
enum {
	M3UA_ASPTM_RESERVED,	/* Reserved */
	M3UA_ASPTM_ACTIV,	/* ASP Active (ACTIVE) */
	M3UA_ASPTM_INACTIV,	/* ASP Inactive (INACTIVE) */
	M3UA_ASPTM_ACTIV_ACK,	/* ASP Active Ack (ACTIVE ACK) */
	M3UA_ASPTM_INACTIV_ACK,	/* ASP Inactive Ack (INACTIVE ACK) */
};

/**
 * Routing Key Management (RKM) Messages
 */
enum {
	M3UA_RKM_RESERVED,	/* Reserved */
	M3UA_RKM_REG_REQ,	/* Registration Request (REG REQ) */
	M3UA_RKM_REG_RSP,	/* Registration Response (REG RSP) */
	M3UA_RKM_DEREG_REQ,	/* Deregistration Request (DEREG REQ) */
	M3UA_RKM_DEREG_RSP,	/* Deregistration Response (DEREG RSP) */
};

/**
 * Tag Values for M3UA
 */
enum {
	M3UA_TAG_NET_APPEAR = 0x0200,	/* Network Appearance */
	M3UA_TAG_RESERVED1,		/* Reserved */
	M3UA_TAG_RESERVED2,		/* Reserved */
	M3UA_TAG_RESERVED3,		/* Reserved */
	M3UA_TAG_USER_CAUSE,		/* User/Cause */
	M3UA_TAG_CONGEST_IND,		/* Congestion Indications */
	M3UA_TAG_CONCERN_DEST,		/* Concerned Destination */
	M3UA_TAG_ROUTING_KEY,		/* Routing Key */
	M3UA_TAG_REG_RESULT,		/* Registration Result */
	M3UA_TAG_DEREG_RESULT,		/* Deregistration Result */
	M3UA_TAG_LOCAL_ROUT_KEY_IDENT,	/* Local Routing Key Identifier */
	M3UA_TAG_DEST_PC,		/* Destination Point Code */
	M3UA_TAG_SERV_IND,		/* Service Indicators */
	M3UA_TAG_RESERVED4,		/* Reserved */
	M3UA_TAG_ORIG_PC_LIST,		/* Originating Point Code List */
	M3UA_TAG_RESERVED5,		/* Reserved */
	M3UA_TAG_PROTO_DATA,		/* Protocol Data */
	M3UA_TAG_RESERVED6,		/* Reserved */
	M3UA_TAG_REG_STATUS,		/* Registration Status */
	M3UA_TAG_DEREG_STATUS,		/* Deregistration Status */
};


/**
 * Protocol data for transport messages. This is
 * replacing the MTP L3 header
 */
struct m3ua_protocol_data {
        uint32_t        opc;
        uint32_t        dpc;
        uint8_t         si;
        uint8_t         ni;
        uint8_t         mp;
        uint8_t         sls;
        uint8_t         data[0];
} __attribute__((packed));