libosmogsm  0.12.0.55-9540
Osmocom GSM library
gsm_08_08.h
Go to the documentation of this file.
1 /* From GSM08.08 / 3GPP TS 48.008 version 11.7.0 Release 11 */
2 
3 #pragma once
4 
5 #include <stdlib.h>
6 #include <stdbool.h>
7 #include <stdint.h>
9 #include <osmocom/core/utils.h>
10 
11 /*
12  * this is from GSM 03.03 CGI but is copied in GSM 08.08
13  * in § 3.2.2.27 for Cell Identifier List.
14  * See gsm0808_cell_id_discr_name() for a human readable representation.
15  */
16 enum CELL_IDENT {
27 };
28 
29 
30 /* GSM 08.06 § 6.3 */
34 };
35 
36 struct bssmap_header {
37  uint8_t type;
38  uint8_t length;
39 } __attribute__((packed));
40 
41 struct dtap_header {
42  uint8_t type;
43  uint8_t link_id;
44  uint8_t length;
45 } __attribute__((packed));
46 
47 
50 
51  /* ASSIGNMENT MESSAGES */
56 
57  /* HANDOVER MESSAGES */
74 
75  /* RELEASE MESSAGES */
83 
84  /* OTHER CONNECTION RELATED MESSAGES */
95 
96  /* GENERAL MESSAGES */
108 
109  /* TERRESTRIAL RESOURCE MESSAGES */
121 
122  /* RADIO RESOURCE MESSAGES */
134 
135  /* VGCS/VBS */
153 
154  /* LOCAL SWITCHING */
158 };
159 
296 };
297 
298 /* 3GPP TS 48.008 3.2.3 Signalling Field Element Coding */
300  GSM0808_FE_IE_EXTRA_INFORMATION = 0x01, /*< 3.2.3.1 */
311  GSM0808_FE_IE_CELL_LOAD_INFORMATION = 0x0c, /*< 3.2.3.12 */
312  GSM0808_FE_IE_PS_INDICATION = 0x0d, /*< 3.2.3.13 */
314  GSM0808_FE_IE_D_RNTI = 0xfe, /*< 3.2.3.15 */
316  GSM0808_FE_IE_SOURCE_CELL_ID = 0x10, /*< 3.2.3.17 */
318 };
319 
320 /* GSM 08.08 3.2.2.5 Cause */
385 };
386 
387 /* GSM 08.08 3.2.2.11 Channel Type */
392 };
393 
394 /* GSM 08.08 3.2.2.11 Channel Type */
404 };
405 
406 /* GSM 08.08 3.2.2.11 Channel Type */
416 };
417 
431 };
432 
433 extern const struct value_string gsm0808_permitted_speech_names[];
434 static inline const char *gsm0808_permitted_speech_name(enum gsm0808_permitted_speech val)
436 
449 };
450 
451 extern const struct value_string gsm0808_speech_codec_type_names[];
454 
455 /* GSM 08.08 3.2.2.44 Chosen Encryption Algorithm */
465 };
466 extern const struct value_string gsm0808_chosen_enc_alg_names[];
467 
468 /* GSM 08.08 3.2.2.85 Paging Information */
473 };
474 
475 /* 3GPP TS 48.008 3.2.2.104 Speech Codec */
477  bool fi;
478  bool pi;
479  bool pt;
480  bool tf;
481  uint8_t type;
482  uint16_t cfg;
483 };
484 
504 };
505 
506 /* 3GPP TS 48.008 3.2.2.103 Speech Codec List */
507 #define SPEECH_CODEC_MAXLEN 255
510  uint8_t len;
511 };
512 
513 /* 3GPP TS 48.008 3.2.2.11 Channel Type */
514 #define CH_TYPE_PERM_SPCH_MAXLEN 9
516  uint8_t ch_indctr;
517  uint8_t ch_rate_type;
518  uint8_t perm_spch[CH_TYPE_PERM_SPCH_MAXLEN];
519  unsigned int perm_spch_len;
520 };
521 
522 /* 3GPP TS 48.008 3.2.2.10 Encryption Information */
523 #define ENCRY_INFO_KEY_MAXLEN 252
524 #define ENCRY_INFO_PERM_ALGO_MAXLEN 8
526  uint8_t perm_algo[ENCRY_INFO_PERM_ALGO_MAXLEN];
527  unsigned int perm_algo_len;
528  uint8_t key[ENCRY_INFO_KEY_MAXLEN];
529  unsigned int key_len;
530 };
531 
532 #define CELL_ID_LIST_LAC_MAXLEN 127
533 
540  uint8_t id_discr;
541  uint16_t id_list_lac[CELL_ID_LIST_LAC_MAXLEN];
542  unsigned int id_list_len;
543 };
544 
545 /* TS 48.008 3.2.2.116 */
553 };
554 
555 /* TS 48.008 3.2.2.117 */
562 };
563 
564 /* TS 48.008 3.2.2.119 */
571 };
GSM0808_SIGNALLING_FIELD_ELEMENT_CODING
Definition: gsm_08_08.h:299
Definition: gsm_08_08.h:59
Definition: gsm_08_08.h:226
bool fi
Definition: gsm_08_08.h:477
Definition: gsm_08_08.h:233
Definition: gsm_08_08.h:357
Definition: gsm_08_08.h:55
Definition: gsm_08_08.h:112
Definition: gsm_08_08.h:114
Definition: gsm_08_08.h:146
Definition: gsm_08_08.h:272
Definition: gsm_08_08.h:267
Definition: gsm_08_08.h:381
Definition: gsm_08_08.h:291
Definition: gsm_08_08.h:557
Definition: gsm_08_08.h:164
Definition: gsm_08_08.h:259
Definition: gsm_08_08.h:149
Definition: gsm_08_08.h:194
Definition: gsm_08_08.h:229
Definition: gsm_08_08.h:60
Definition: gsm_08_08.h:24
Definition: gsm_08_08.h:41
Definition: gsm_08_08.h:337
Definition: gsm_08_08.h:90
Definition: gsm_08_08.h:558
Definition: gsm_08_08.h:397
Definition: gsm_08_08.h:107
Definition: gsm_08_08.h:277
Definition: gsm_08_08.h:263
OHR AMR-WB.
Definition: gsm_08_08.h:429
Definition: gsm_08_08.h:72
const struct value_string gsm0808_speech_codec_type_names[]
Definition: gsm0808.c:1166
Definition: gsm_08_08.h:262
Definition: gsm_08_08.h:185
uint8_t ch_indctr
Definition: gsm_08_08.h:516
Definition: gsm_08_08.h:151
Definition: gsm_08_08.h:180
Definition: gsm_08_08.h:78
const char * get_value_string(const struct value_string *vs, uint32_t val)
uint8_t length
Definition: gsm_08_08.h:38
static const char * gsm0808_permitted_speech_name(enum gsm0808_permitted_speech val)
Definition: gsm_08_08.h:434
Definition: gsm_08_08.h:470
unsigned int perm_spch_len
Definition: gsm_08_08.h:519
Definition: gsm_08_08.h:301
unsigned int perm_algo_len
Definition: gsm_08_08.h:527
Definition: gsm_08_08.h:413
Definition: gsm_08_08.h:334
unsigned int id_list_len
Definition: gsm_08_08.h:542
Definition: gsm_08_08.h:498
BSSAP_MSG_TYPE
Definition: gsm_08_08.h:31
gsm0808_chan_indicator
Definition: gsm_08_08.h:388
bool pi
Definition: gsm_08_08.h:478
GSM FR.
Definition: gsm_08_08.h:421
(deprecated)
Definition: gsm_08_08.h:427
OHR AMR.
Definition: gsm_08_08.h:447
Definition: gsm_08_08.h:103
Definition: gsm_08_08.h:36
Definition: gsm_08_08.h:411
Definition: gsm_08_08.h:266
Definition: gsm_08_08.h:118
Definition: gsm_08_08.h:145
const struct value_string gsm0808_permitted_speech_names[]
Definition: gsm0808.c:1180
HR AMR.
Definition: gsm_08_08.h:428
Definition: gsm_08_08.h:197
Definition: gsm_08_08.h:106
Definition: gsm_08_08.h:326
Definition: gsm_08_08.h:223
Definition: gsm_08_08.h:192
Definition: gsm_08_08.h:184
GSM EFR.
Definition: gsm_08_08.h:422
OHR AMR.
Definition: gsm_08_08.h:430
Definition: gsm_08_08.h:221
Definition: gsm_08_08.h:213
Definition: gsm_08_08.h:472
Definition: gsm_08_08.h:190
Definition: gsm_08_08.h:283
Definition: gsm_08_08.h:162
Definition: gsm_08_08.h:324
bool tf
Definition: gsm_08_08.h:480
Definition: gsm_08_08.h:132
Definition: gsm_08_08.h:471
OFR AMR-WB.
Definition: gsm_08_08.h:442
Definition: gsm_08_08.h:460
Definition: gsm_08_08.h:86
Definition: gsm_08_08.h:567
Definition: gsm_08_08.h:346
Definition: gsm_08_08.h:110
Definition: gsm_08_08.h:212
gsm0808_lcls_control
Definition: gsm_08_08.h:556
gsm0808_lcls_status
Definition: gsm_08_08.h:565
Definition: gsm_08_08.h:351
Definition: gsm_08_08.h:396
Definition: gsm_08_08.h:274
Definition: gsm_08_08.h:373
Definition: gsm_08_08.h:254
uint8_t length
Definition: gsm_08_08.h:44
Definition: gsm_08_08.h:152
Definition: gsm_08_08.h:23
Definition: gsm_08_08.h:336
Definition: gsm_08_08.h:204
Definition: gsm_08_08.h:76
Definition: gsm_08_08.h:144
Definition: gsm_08_08.h:499
Definition: gsm_08_08.h:169
Definition: gsm_08_08.h:77
Definition: gsm_08_08.h:193
Definition: gsm_08_08.h:170
Definition: gsm_08_08.h:237
Definition: gsm_08_08.h:92
uint8_t link_id
Definition: gsm_08_08.h:43
Definition: gsm_08_08.h:372
Definition: gsm_08_08.h:127
Definition: gsm_08_08.h:247
Definition: gsm_08_08.h:232
Definition: gsm_08_08.h:20
GSM FR.
Definition: gsm_08_08.h:439
Definition: gsm_08_08.h:276
#define ENCRY_INFO_KEY_MAXLEN
Definition: gsm_08_08.h:523
Definition: gsm_08_08.h:383
Definition: gsm_08_08.h:126
Definition: gsm_08_08.h:366
Definition: gsm_08_08.h:503
gsm0808_chosen_enc_alg
Definition: gsm_08_08.h:456
Definition: gsm_08_08.h:323
uint8_t type
Definition: gsm_08_08.h:37
Definition: gsm_08_08.h:80
Definition: gsm_08_08.h:205
Definition: gsm_08_08.h:295
Definition: gsm_08_08.h:181
uint8_t id_discr
Definition: gsm_08_08.h:540
Definition: gsm_08_08.h:311
Definition: gsm_08_08.h:71
Definition: gsm_08_08.h:136
Definition: gsm_08_08.h:203
Definition: gsm_08_08.h:463
Definition: gsm_08_08.h:271
Definition: gsm_08_08.h:210
Definition: gsm_08_08.h:215
Definition: gsm_08_08.h:116
Definition: gsm_08_08.h:120
Definition: gsm_08_08.h:408
Definition: gsm_08_08.h:73
Definition: gsm_08_08.h:165
Definition: gsm_08_08.h:201
Definition: gsm_08_08.h:22
Definition: gsm_08_08.h:265
Definition: gsm_08_08.h:173
Definition: gsm_08_08.h:570
Definition: gsm_08_08.h:251
Definition: gsm_08_08.h:391
Definition: gsm_08_08.h:569
Definition: gsm_08_08.h:104
Definition: gsm_08_08.h:349
#define ENCRY_INFO_PERM_ALGO_MAXLEN
Definition: gsm_08_08.h:524
Definition: gsm_08_08.h:62
Definition: gsm_08_08.h:303
Definition: gsm_08_08.h:111
Definition: gsm_08_08.h:377
Definition: gsm_08_08.h:398
Definition: gsm_08_08.h:294
Definition: gsm_08_08.h:568
Definition: gsm_08_08.h:249
Definition: gsm_08_08.h:380
Definition: gsm_08_08.h:282
Definition: gsm_08_08.h:166
Definition: gsm_08_08.h:331
#define SPEECH_CODEC_MAXLEN
Definition: gsm_08_08.h:507
Definition: gsm_08_08.h:414
Definition: gsm_08_08.h:293
Definition: gsm_08_08.h:457
Definition: gsm_08_08.h:354
BSS_MAP_MSG_TYPE
Definition: gsm_08_08.h:48
GSM HR.
Definition: gsm_08_08.h:426
Definition: gsm_08_08.h:330
Definition: gsm_08_08.h:344
Definition: gsm_08_08.h:150
Definition: gsm_08_08.h:508
Definition: gsm_08_08.h:365
gsm0808_permitted_speech
GSM 08.08 3.2.2.11 Channel Type (see also 3GPP TS 48.008, section 3.2.2.11)
Definition: gsm_08_08.h:420
uint8_t ch_rate_type
Definition: gsm_08_08.h:517
Definition: gsm_08_08.h:390
Definition: gsm_08_08.h:177
Definition: gsm_08_08.h:253
Definition: gsm_08_08.h:211
Definition: gsm_08_08.h:81
Definition: gsm_08_08.h:257
Definition: gsm_08_08.h:285
Definition: gsm_08_08.h:236
Definition: gsm_08_08.h:415
Definition: gsm_08_08.h:88
Definition: gsm_08_08.h:138
Definition: gsm_08_08.h:94
Definition: gsm_08_08.h:25
Definition: gsm_08_08.h:200
Definition: gsm_08_08.h:502
Definition: gsm_08_08.h:85
Definition: gsm_08_08.h:329
Definition: gsm_08_08.h:228
Definition: gsm_08_08.h:219
OFR AMR-WB.
Definition: gsm_08_08.h:424
Definition: gsm_08_08.h:260
Definition: gsm_08_08.h:458
Definition: gsm_08_08.h:202
Definition: gsm_08_08.h:459
Definition: gsm_08_08.h:61
gsm0808_chan_rate_type_speech
Definition: gsm_08_08.h:407
Definition: gsm_08_08.h:99
Definition: gsm_08_08.h:53
Definition: gsm_08_08.h:269
Definition: gsm_08_08.h:362
Definition: gsm_08_08.h:142
Definition: gsm_08_08.h:316
Definition: gsm_08_08.h:244
Definition: gsm_08_08.h:462
Definition: gsm_08_08.h:255
Definition: gsm_08_08.h:199
Definition: gsm_08_08.h:328
Definition: gsm_08_08.h:400
Definition: gsm_08_08.h:325
Definition: gsm_08_08.h:273
Definition: gsm_08_08.h:131
FR AMR.
Definition: gsm_08_08.h:441
Definition: gsm_08_08.h:378
Definition: gsm_08_08.h:102
Definition: gsm_08_08.h:227
Definition: gsm_08_08.h:58
Definition: gsm_08_08.h:231
Definition: gsm_08_08.h:143
Definition: gsm_08_08.h:350
Definition: gsm_08_08.h:230
uint8_t type
Definition: gsm_08_08.h:42
Definition: gsm_08_08.h:214
gsm0808_cause
Definition: gsm_08_08.h:321
Definition: gsm_08_08.h:340
Definition: gsm_08_08.h:196
Definition: gsm_08_08.h:235
Definition: gsm_08_08.h:157
Definition: gsm_08_08.h:289
Definition: gsm_08_08.h:67
Definition: gsm_08_08.h:155
Definition: gsm_08_08.h:188
Definition: gsm_08_08.h:234
uint8_t type
Definition: gsm_08_08.h:481
Definition: gsm_08_08.h:222
Definition: gsm_08_08.h:113
FR AMR.
Definition: gsm_08_08.h:423
Definition: gsm_08_08.h:353
Definition: gsm_08_08.h:69
Definition: gsm_08_08.h:501
Definition: gsm_08_08.h:256
Definition: gsm_08_08.h:258
Definition: gsm_08_08.h:399
Definition: gsm_08_08.h:209
Definition: gsm_08_08.h:384
Definition: gsm_08_08.h:355
Definition: gsm_08_08.h:335
Definition: gsm_08_08.h:268
Definition: gsm_08_08.h:356
uint8_t len
Definition: gsm_08_08.h:510
bool pt
Definition: gsm_08_08.h:479
Definition: gsm_08_08.h:288
Definition: gsm_08_08.h:359
Definition: gsm_08_08.h:178
Definition: gsm_08_08.h:137
Definition: gsm_08_08.h:100
Definition: gsm_08_08.h:147
Definition: gsm_08_08.h:168
unsigned int key_len
Definition: gsm_08_08.h:529
Definition: gsm_08_08.h:560
Definition: gsm_08_08.h:125
Definition: gsm_08_08.h:172
Definition: gsm_08_08.h:548
Definition: gsm_08_08.h:139
Definition: gsm_08_08.h:275
Definition: gsm_08_08.h:179
Definition: gsm_08_08.h:559
Definition: gsm_08_08.h:284
Definition: gsm_08_08.h:314
Definition: gsm_08_08.h:402
Definition: gsm_08_08.h:312
Definition: gsm_08_08.h:64
Definition: gsm_08_08.h:130
Definition: gsm_08_08.h:410
FR AMR-WB.
Definition: gsm_08_08.h:425
Definition: gsm_08_08.h:364
Definition: gsm_08_08.h:124
static const char * gsm0808_speech_codec_type_name(enum gsm0808_speech_codec_type val)
Definition: gsm_08_08.h:452
gsm0808_paging_info
Definition: gsm_08_08.h:469
Definition: gsm_08_08.h:49
Definition: gsm_08_08.h:342
Definition: gsm_08_08.h:278
Definition: gsm_08_08.h:401
enum CELL_IDENT __attribute__
Definition: gsm_08_08.h:65
Definition: gsm_08_08.h:156
Definition: gsm_08_08.h:195
Definition: gsm_08_08.h:243
Definition: gsm_08_08.h:208
Definition: gsm_08_08.h:515
Definition: gsm_08_08.h:175
Definition: gsm_08_08.h:198
Definition: gsm_08_08.h:264
Definition: gsm_08_08.h:19
Definition: gsm_08_08.h:261
Definition: gsm_08_08.h:242
Definition: gsm_08_08.h:306
Definition: gsm_08_08.h:187
Definition: gsm_08_08.h:171
Definition: gsm_08_08.h:333
Definition: gsm_08_08.h:163
GSM_HR.
Definition: gsm_08_08.h:444
Definition: gsm_08_08.h:174
Definition: gsm_08_08.h:54
Definition: gsm_08_08.h:279
Definition: gsm_08_08.h:123
Definition: gsm_08_08.h:167
Definition: gsm_08_08.h:33
Definition: gsm_08_08.h:549
Definition: gsm_08_08.h:352
Definition: gsm_08_08.h:409
Definition: gsm_08_08.h:93
Definition: gsm_08_08.h:32
Definition: gsm_08_08.h:18
Definition: gsm_08_08.h:403
Definition: gsm_08_08.h:26
CSData (see also TS 26.103)
Definition: gsm_08_08.h:448
Definition: gsm_08_08.h:248
Definition: gsm_08_08.h:191
Definition: gsm_08_08.h:216
GSM0808_IE_CODING
Definition: gsm_08_08.h:160
Definition: gsm_08_08.h:66
Definition: gsm_08_08.h:91
Definition: gsm_08_08.h:148
Definition: gsm_08_08.h:224
Definition: gsm_08_08.h:280
uint16_t cfg
Definition: gsm_08_08.h:482
CELL_IDENT
Definition: gsm_08_08.h:16
Definition: gsm_08_08.h:21
#define CH_TYPE_PERM_SPCH_MAXLEN
Definition: gsm_08_08.h:514
HR_AMR.
Definition: gsm_08_08.h:445
Definition: gsm_08_08.h:119
Definition: gsm_08_08.h:327
Definition: gsm_08_08.h:176
Definition: gsm_08_08.h:129
Definition: gsm_08_08.h:140
Definition: gsm_08_08.h:525
GSM EFR.
Definition: gsm_08_08.h:440
Definition: gsm_08_08.h:217
Definition: gsm_08_08.h:240
Definition: gsm_08_08.h:245
Definition: gsm_08_08.h:186
Definition: gsm_08_08.h:360
Definition: gsm_08_08.h:412
Definition: gsm_08_08.h:368
Definition: gsm_08_08.h:105
Definition: gsm_08_08.h:464
Definition: gsm_08_08.h:182
Definition: gsm_08_08.h:500
Definition: gsm_08_08.h:207
Definition: gsm_08_08.h:98
Definition: gsm_08_08.h:101
Definition: gsm_08_08.h:97
Definition: gsm_08_08.h:343
Definition: gsm_08_08.h:246
Definition: gsm_08_08.h:128
Definition: gsm_08_08.h:461
Definition: gsm_08_08.h:183
OHR AMR-WB.
Definition: gsm_08_08.h:446
Definition: gsm_08_08.h:375
Definition: gsm_08_08.h:189
Definition: gsm_08_08.h:68
const struct value_string gsm0808_chosen_enc_alg_names[]
Definition: gsm0808.c:1194
Definition: gsm_08_08.h:220
Definition: gsm_08_08.h:286
Definition: gsm_08_08.h:287
Definition: gsm_08_08.h:250
#define CELL_ID_LIST_LAC_MAXLEN
Definition: gsm_08_08.h:532
Definition: gsm_08_08.h:206
Definition: gsm_08_08.h:300
Definition: gsm_08_08.h:389
Definition: gsm_08_08.h:63
gsm0808_chan_rate_type_data
Definition: gsm_08_08.h:395
gsm0808_lcls_config
Definition: gsm_08_08.h:546
gsm0808_speech_codec_type
3GPP TS 48.008, 3.2.2.103 Speech Codec Type
Definition: gsm_08_08.h:438
Definition: gsm_08_08.h:290
FR AMR-WB.
Definition: gsm_08_08.h:443
Definition: gsm_08_08.h:133
gsm0808_speech_codec_defaults
Default speech codec configurations: Some codecs specified with struct gsm0808_speech_codec, require a configuration (cfg).
Definition: gsm_08_08.h:497
Definition: gsm_08_08.h:82
Definition: gsm_08_08.h:52
Definition: gsm_08_08.h:281
Definition: gsm_08_08.h:566
Definition: gsm_08_08.h:292
Definition: gsm_08_08.h:70
Definition: gsm_08_08.h:79
Definition: gsm_08_08.h:161
Definition: gsm_08_08.h:141
Definition: gsm_08_08.h:225
Definition: gsm_08_08.h:89
Definition: gsm_08_08.h:270
Definition: gsm_08_08.h:17
Definition: gsm_08_08.h:252
Definition: gsm_08_08.h:241
DEPRECATED: This definition of the cell identifier list is insufficient.
Definition: gsm_08_08.h:539
Definition: gsm_08_08.h:476
Definition: gsm_08_08.h:547