libosmogb  1.9.0.12-9519.202310132026
Osmocom Gb library
gsm_08_18.h
Go to the documentation of this file.
1 
2 /* Updated to reflect TS 48.018 version 15.0.0 Release 15 */
3 
4 #pragma once
5 
6 #include <stdint.h>
7 #include <osmocom/core/endian.h>
8 
10 #define BVCI_SIGNALLING 0x0000
11 #define BVCI_PTM 0x0001
12 
13 /* typo backwards compatiblity */
14 #define BSSGP_PDUT_RA_CAPA_UDPATE BSSGP_PDUT_RA_CAPA_UPDATE
15 
18  /* PDUs between RL and BSSGP SAPs */
22  /* PDUs between MBMS SAPs */
23  BSSGP_PDUT_PTM_UNITDATA = 0x03, /* reserved in later specs */
26  /* PDUs between GMM SAPs */
43  /* PDus between NM SAPs */
62  /* PDUs between PFM SAP's */
81  /* PDUs between LCS SAPs */
87  /* PDUs between RIM SAPs */
93  /* PDUs between MBMS SAPs */
100 };
101 
103 struct bssgp_ud_hdr {
104  uint8_t pdu_type;
105  uint32_t tlli;
106  uint8_t qos_profile[3];
107  uint8_t data[0]; /* optional/conditional IEs as TLVs */
108 } __attribute__((packed));
109 
112  uint8_t pdu_type;
113  uint8_t data[0];
114 };
115 
148  BSSGP_IE_TAG = 0x1e,
234  BSSGP_IE_TAC = 0x86,
240  BSSGP_IE_SCI = 0x8c,
263 };
264 
324 };
325 
326 /* Feature Bitmap (Section 11.3.45) */
327 #define BSSGP_FEAT_PFC 0x01 /* Packet Flow Context */
328 #define BSSGP_FEAT_CBL 0x02 /* Current Bucket Level */
329 #define BSSGP_FEAT_INR 0x04 /* Inter-NSE re-routing */
330 #define BSSGP_FEAT_LCS 0x08 /* Location Services */
331 #define BSSGP_FEAT_RIM 0x10 /* RAN Inoformation Management */
332 #define BSSGP_FEAT_PFC_FC 0x20 /* PFC Flow Control */
333 #define BSSGP_FEAT_ERS 0x40 /* Enhanced Radio Status */
334 #define BSSGP_FEAT_MBMS 0x80 /* Multimedia Broadcast */
335 
336 /* Extended Feature Bitmap (Section 11.3.84) */
337 #define BSSGP_XFEAT_PSHO 0x01 /* PS Handover */
338 #define BSSGP_XFEAT_GBIT 0x02 /* Gigabit Interface */
339 #define BSSGP_XFEAT_MOCN 0x04 /* Multi-Operator CN */
340 #define BSSGP_XFEAT_CSPS 0x08 /* CS/PS coordination enhancements */
341 #define BSSGP_XFEAT_ECIoT 0x10 /* EC-GSM-IoT */
342 #define BSSGP_XFEAT_DCN 0x20 /* Dedicated CN */
343 #define BSSGP_XFEAT_eDRX 0x40 /* eDRX */
344 #define BSSGP_XFEAT_MSAD 0x80 /* MS-assisted Dedicated CN selection */
345 
346 /* Flow Control Granularity (Section 11.3.102) */
352 };
353 
354 /* RAN-INFORMATION-REQUEST PDU Type Extension
355  * 3GPP TS 48.018, table 11.3.65.1 */
360 };
361 
362 /* RIM PDU Indications
363  * 3GPP TS 48.018, section 11.3.65.0 */
365 #if OSMO_IS_LITTLE_ENDIAN
366  uint8_t ack_requested:1,
367  pdu_type_ext:3,
368  reserved:4;
369 #elif OSMO_IS_BIG_ENDIAN
370 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */
371  uint8_t reserved:4, pdu_type_ext:3, ack_requested:1;
372 #endif
373 } __attribute__ ((packed));
Definition: gsm_08_18.h:158
Definition: gsm_08_18.h:24
Definition: gsm_08_18.h:118
Definition: gsm_08_18.h:254
Definition: gsm_08_18.h:60
Definition: gsm_08_18.h:186
Definition: gsm_08_18.h:78
Definition: gsm_08_18.h:34
Definition: gsm_08_18.h:242
Definition: gsm_08_18.h:88
Definition: gsm_08_18.h:38
Definition: gsm_08_18.h:128
Definition: gsm_08_18.h:217
Definition: gsm_08_18.h:273
Definition: gsm_08_18.h:206
Definition: gsm_08_18.h:30
Definition: gsm_08_18.h:175
Definition: gsm_08_18.h:304
Definition: gsm_08_18.h:298
Definition: gsm_08_18.h:41
Definition: gsm_08_18.h:150
Definition: gsm_08_18.h:308
Definition: gsm_08_18.h:351
Definition: gsm_08_18.h:201
uint8_t qos_profile[3]
QoS profile.
Definition: gsm_08_18.h:106
Definition: gsm_08_18.h:291
Definition: gsm_08_18.h:67
Definition: gsm_08_18.h:297
Definition: gsm_08_18.h:295
Definition: gsm_08_18.h:240
Definition: gsm_08_18.h:152
Definition: gsm_08_18.h:278
Definition: gsm_08_18.h:303
Definition: gsm_08_18.h:84
Definition: gsm_08_18.h:146
Definition: gsm_08_18.h:268
Definition: gsm_08_18.h:61
Definition: gsm_08_18.h:245
Definition: gsm_08_18.h:228
Definition: gsm_08_18.h:232
Definition: gsm_08_18.h:284
Definition: gsm_08_18.h:97
Definition: gsm_08_18.h:65
Definition: gsm_08_18.h:258
Definition: gsm_08_18.h:123
Definition: gsm_08_18.h:285
Definition: gsm_08_18.h:96
Definition: gsm_08_18.h:182
Definition: gsm_08_18.h:224
Definition: gsm_08_18.h:323
Definition: gsm_08_18.h:124
Definition: gsm_08_18.h:173
Definition: gsm_08_18.h:49
Definition: gsm_08_18.h:243
Definition: gsm_08_18.h:92
Definition: gsm_08_18.h:153
Definition: gsm_08_18.h:98
Definition: gsm_08_18.h:192
Definition: gsm_08_18.h:235
Definition: gsm_08_18.h:187
Definition: gsm_08_18.h:364
Definition: gsm_08_18.h:170
Definition: gsm_08_18.h:319
Definition: gsm_08_18.h:314
Definition: gsm_08_18.h:72
Definition: gsm_08_18.h:160
Definition: gsm_08_18.h:46
Definition: gsm_08_18.h:230
Definition: gsm_08_18.h:59
Definition: gsm_08_18.h:139
BSSGP User-Data header (Section 10.2.1 and 10.2.2)
Definition: gsm_08_18.h:103
Definition: gsm_08_18.h:53
Definition: gsm_08_18.h:300
Definition: gsm_08_18.h:313
Definition: gsm_08_18.h:32
Definition: gsm_08_18.h:288
Definition: gsm_08_18.h:227
Definition: gsm_08_18.h:76
Definition: gsm_08_18.h:132
Definition: gsm_08_18.h:305
Definition: gsm_08_18.h:219
Definition: gsm_08_18.h:138
Definition: gsm_08_18.h:50
Definition: gsm_08_18.h:39
Definition: gsm_08_18.h:47
Definition: gsm_08_18.h:225
Definition: gsm_08_18.h:294
Definition: gsm_08_18.h:222
Definition: gsm_08_18.h:249
Definition: gsm_08_18.h:165
Definition: gsm_08_18.h:64
Definition: gsm_08_18.h:282
Definition: gsm_08_18.h:248
Definition: gsm_08_18.h:198
uint8_t pdu_type
BSSGP PDU type.
Definition: gsm_08_18.h:104
Definition: gsm_08_18.h:322
Definition: gsm_08_18.h:178
Definition: gsm_08_18.h:42
Definition: gsm_08_18.h:204
Definition: gsm_08_18.h:234
Definition: gsm_08_18.h:212
bssgp_rim_pdu_type
Definition: gsm_08_18.h:356
Definition: gsm_08_18.h:312
Definition: gsm_08_18.h:29
Definition: gsm_08_18.h:179
Definition: gsm_08_18.h:226
Definition: gsm_08_18.h:211
Definition: gsm_08_18.h:270
struct bssgp_normal_hdr __attribute__
Definition: gsm_08_18.h:77
Definition: gsm_08_18.h:145
Definition: gsm_08_18.h:359
Definition: gsm_08_18.h:279
Definition: gsm_08_18.h:172
Definition: gsm_08_18.h:174
Definition: gsm_08_18.h:136
Definition: gsm_08_18.h:151
Definition: gsm_08_18.h:311
Definition: gsm_08_18.h:306
Definition: gsm_08_18.h:287
Definition: gsm_08_18.h:69
Definition: gsm_08_18.h:176
Definition: gsm_08_18.h:350
Definition: gsm_08_18.h:310
Definition: gsm_08_18.h:274
Definition: gsm_08_18.h:196
Definition: gsm_08_18.h:191
Definition: gsm_08_18.h:31
Definition: gsm_08_18.h:82
Definition: gsm_08_18.h:199
Definition: gsm_08_18.h:293
Definition: gsm_08_18.h:85
Definition: gsm_08_18.h:195
Definition: gsm_08_18.h:318
Definition: gsm_08_18.h:56
Definition: gsm_08_18.h:236
Definition: gsm_08_18.h:277
Definition: gsm_08_18.h:126
Definition: gsm_08_18.h:316
Definition: gsm_08_18.h:156
Definition: gsm_08_18.h:45
Definition: gsm_08_18.h:260
Definition: gsm_08_18.h:140
Definition: gsm_08_18.h:147
Definition: gsm_08_18.h:223
Definition: gsm_08_18.h:83
Definition: gsm_08_18.h:257
Definition: gsm_08_18.h:181
Definition: gsm_08_18.h:286
uint8_t data[0]
Definition: gsm_08_18.h:107
Definition: gsm_08_18.h:164
Definition: gsm_08_18.h:183
BSSGP normal header.
Definition: gsm_08_18.h:111
Definition: gsm_08_18.h:296
Definition: gsm_08_18.h:79
Definition: gsm_08_18.h:23
Definition: gsm_08_18.h:214
Definition: gsm_08_18.h:20
Definition: gsm_08_18.h:154
Definition: gsm_08_18.h:75
Definition: gsm_08_18.h:86
gprs_bssgp_cause
Cause coding (Section 11.3.8 / Table 11.10)
Definition: gsm_08_18.h:266
Definition: gsm_08_18.h:299
Definition: gsm_08_18.h:216
Definition: gsm_08_18.h:95
Definition: gsm_08_18.h:317
Definition: gsm_08_18.h:250
Definition: gsm_08_18.h:280
Definition: gsm_08_18.h:166
Definition: gsm_08_18.h:177
Definition: gsm_08_18.h:161
Definition: gsm_08_18.h:68
Definition: gsm_08_18.h:168
Definition: gsm_08_18.h:200
Definition: gsm_08_18.h:135
Definition: gsm_08_18.h:185
Definition: gsm_08_18.h:348
Definition: gsm_08_18.h:321
Definition: gsm_08_18.h:205
Definition: gsm_08_18.h:70
Definition: gsm_08_18.h:159
uint8_t pdu_type
BSSGP PDU type.
Definition: gsm_08_18.h:112
Definition: gsm_08_18.h:197
Definition: gsm_08_18.h:57
Definition: gsm_08_18.h:52
Definition: gsm_08_18.h:233
Definition: gsm_08_18.h:137
uint32_t tlli
Temporary Link-Local Identifier.
Definition: gsm_08_18.h:105
Definition: gsm_08_18.h:21
Definition: gsm_08_18.h:253
Definition: gsm_08_18.h:89
Definition: gsm_08_18.h:188
Definition: gsm_08_18.h:307
bssgp_fc_granularity
Definition: gsm_08_18.h:347
Definition: gsm_08_18.h:167
bssgp_iei_type
BSSGP Information Element Identifiers (Section 11.3 / Table 11.3)
Definition: gsm_08_18.h:117
Definition: gsm_08_18.h:99
Definition: gsm_08_18.h:244
Definition: gsm_08_18.h:133
Definition: gsm_08_18.h:276
Definition: gsm_08_18.h:261
Definition: gsm_08_18.h:90
Definition: gsm_08_18.h:209
Definition: gsm_08_18.h:247
Definition: gsm_08_18.h:239
Definition: gsm_08_18.h:142
Definition: gsm_08_18.h:148
Definition: gsm_08_18.h:66
Definition: gsm_08_18.h:122
Definition: gsm_08_18.h:241
Definition: gsm_08_18.h:290
Definition: gsm_08_18.h:252
Definition: gsm_08_18.h:149
Definition: gsm_08_18.h:37
Definition: gsm_08_18.h:143
Definition: gsm_08_18.h:120
Definition: gsm_08_18.h:255
Definition: gsm_08_18.h:215
Definition: gsm_08_18.h:237
Definition: gsm_08_18.h:358
Definition: gsm_08_18.h:48
Definition: gsm_08_18.h:189
Definition: gsm_08_18.h:301
Definition: gsm_08_18.h:91
Definition: gsm_08_18.h:271
Definition: gsm_08_18.h:144
Definition: gsm_08_18.h:218
Definition: gsm_08_18.h:36
Definition: gsm_08_18.h:51
Definition: gsm_08_18.h:231
Definition: gsm_08_18.h:171
Definition: gsm_08_18.h:155
Definition: gsm_08_18.h:125
Definition: gsm_08_18.h:210
Definition: gsm_08_18.h:163
Definition: gsm_08_18.h:129
Definition: gsm_08_18.h:202
Definition: gsm_08_18.h:74
Definition: gsm_08_18.h:180
Definition: gsm_08_18.h:203
Definition: gsm_08_18.h:121
Definition: gsm_08_18.h:208
Definition: gsm_08_18.h:289
Definition: gsm_08_18.h:28
Definition: gsm_08_18.h:94
Definition: gsm_08_18.h:80
Definition: gsm_08_18.h:58
Definition: gsm_08_18.h:259
Definition: gsm_08_18.h:40
Definition: gsm_08_18.h:315
Definition: gsm_08_18.h:194
Definition: gsm_08_18.h:19
Definition: gsm_08_18.h:130
Definition: gsm_08_18.h:269
Definition: gsm_08_18.h:207
Definition: gsm_08_18.h:127
Definition: gsm_08_18.h:357
Definition: gsm_08_18.h:246
Definition: gsm_08_18.h:320
Definition: gsm_08_18.h:221
Definition: gsm_08_18.h:267
Definition: gsm_08_18.h:54
Definition: gsm_08_18.h:251
Definition: gsm_08_18.h:193
Definition: gsm_08_18.h:275
Definition: gsm_08_18.h:292
bssgp_pdu_type
BSSGP PDU types (Section 11.3.26 / Table 11.27)
Definition: gsm_08_18.h:17
Definition: gsm_08_18.h:119
Definition: gsm_08_18.h:73
Definition: gsm_08_18.h:349
Definition: gsm_08_18.h:220
Definition: gsm_08_18.h:131
Definition: gsm_08_18.h:27
Definition: gsm_08_18.h:229
Definition: gsm_08_18.h:134
Definition: gsm_08_18.h:35
Definition: gsm_08_18.h:184
Definition: gsm_08_18.h:44
Definition: gsm_08_18.h:262
Definition: gsm_08_18.h:71
Definition: gsm_08_18.h:238
Definition: gsm_08_18.h:281
Definition: gsm_08_18.h:25
Definition: gsm_08_18.h:141
Definition: gsm_08_18.h:256
Definition: gsm_08_18.h:190
Definition: gsm_08_18.h:272
Definition: gsm_08_18.h:309
Definition: gsm_08_18.h:157
Definition: gsm_08_18.h:213
Definition: gsm_08_18.h:302
Definition: gsm_08_18.h:169
Definition: gsm_08_18.h:55
Definition: gsm_08_18.h:33
Definition: gsm_08_18.h:283
Definition: gsm_08_18.h:162
Definition: gsm_08_18.h:63