libosmogsm  1.4.1
Osmocom GSM library
gsm_08_58.h
Go to the documentation of this file.
1 
4 /*
5  * (C) 2008 by Harald Welte <laforge@gnumonks.org>
6  * All Rights Reserved
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with this program; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21  *
22  */
23 
24 #pragma once
25 
26 #include <stdint.h>
27 
28 #include <osmocom/core/endian.h>
29 
34 /* Channel Number 9.3.1 */
36 #if OSMO_IS_BIG_ENDIAN
37  uint8_t cbits:5,
38  tn:3;
39 #elif OSMO_IS_LITTLE_ENDIAN
40  uint8_t tn:3,
41  cbits:5;
42 #endif
43  uint8_t chan_nr;
44 } __attribute__ ((packed));
45 #define ABIS_RSL_CHAN_NR_CBITS_Bm_ACCHs 0x01
46 #define ABIS_RSL_CHAN_NR_CBITS_Lm_ACCHs(ss) (0x02 + (ss))
47 #define ABIS_RSL_CHAN_NR_CBITS_SDCCH4_ACCH(ss) (0x04 + (ss))
48 #define ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(ss) (0x08 + (ss))
49 #define ABIS_RSL_CHAN_NR_CBITS_BCCH 0x10
50 #define ABIS_RSL_CHAN_NR_CBITS_RACH 0x11
51 #define ABIS_RSL_CHAN_NR_CBITS_PCH_AGCH 0x12
52 #define ABIS_RSL_CHAN_NR_CBITS_OSMO_PDCH 0x18 /*< non-standard, for dyn TS */
53 #define ABIS_RSL_CHAN_NR_CBITS_OSMO_CBCH4 0x19 /*< non-standard, for CBCH/SDCCH4 */
54 #define ABIS_RSL_CHAN_NR_CBITS_OSMO_CBCH8 0x1a /*< non-standard, for CBCH/SDCCH8 */
55 
56 /* Link Identifier 9.3.2 */
58 #if OSMO_IS_BIG_ENDIAN
59  uint8_t cbits:2,
60  na:1,
61  reserved:2,
62  sapi:3;
63 #elif OSMO_IS_LITTLE_ENDIAN
64  uint8_t sapi:3,
65  reserved:2,
66  na:1,
67  cbits:2;
68 #endif
69  uint8_t link_id;
70 } __attribute__ ((packed));
71 #define ABIS_RSL_LINK_ID_CBITS_FACCH_SDCCH 0x00
72 #define ABIS_RSL_LINK_ID_CBITS_SACCH 0x01
73 
76  uint8_t msg_discr;
77  uint8_t msg_type;
78  uint8_t data[0];
79 } __attribute__ ((packed));
80 
81 /* RSL RLL header (Chapter 8.3) */
84  uint8_t ie_chan;
85  union {
86  uint8_t chan_nr; /* API backward compat */
88  };
89  uint8_t ie_link_id;
90  union {
91  uint8_t link_id; /* API backward compat */
93  };
94  uint8_t data[0];
95 } __attribute__ ((packed));
96 
97 /* RSL Dedicated Channel header (Chapter 8.3 and 8.4) */
100  uint8_t ie_chan;
101  union {
102  uint8_t chan_nr; /* API backward compat */
104  };
105  uint8_t data[0];
106 } __attribute__ ((packed));
107 
108 /* RSL Common Channel header (Chapter 8.5) */
111  uint8_t ie_chan;
112  union {
113  uint8_t chan_nr; /* API backward compat */
115  };
116  uint8_t data[0];
117 } __attribute__ ((packed));
118 
119 
120 /* Chapter 9.1 */
121 /* RSL Message Discriminator: RLL */
122 #define ABIS_RSL_MDISC_RLL 0x02
123 /* RSL Message Discriminator: Dedicated Channel */
124 #define ABIS_RSL_MDISC_DED_CHAN 0x08
125 /* RSL Message Discriminator: Common Channel */
126 #define ABIS_RSL_MDISC_COM_CHAN 0x0c
127 /* RSL Message Discriminator: TRX Management */
128 #define ABIS_RSL_MDISC_TRX 0x10
129 /* RSL Message Discriminator: Location Service */
130 #define ABIS_RSL_MDISC_LOC 0x20
131 /* RSL Message Discriminator: ip.access */
132 #define ABIS_RSL_MDISC_IPACCESS 0x7e
133 #define ABIS_RSL_MDISC_TRANSP 0x01
134 
135 /* Check if given RSL message discriminator is transparent */
136 #define ABIS_RSL_MDISC_IS_TRANSP(x) (x & 0x01)
137 
138 /* RSL Message Type (Chapter 9.1) */
140  /* Radio Link Layer Management */
152  RSL_MT_SUSP_REQ, /* non-standard elements */
155  RSL_MT_RECON_REQ, /* 0x0f */
156 
157  /* Common Channel Management / TRX Management */
165  RSL_MT_CHAN_CONF, /* non-standard element */
166  /* empty */
173  RSL_MT_NOT_CMD, /* 0x1f */
174 
175  /* Dedicate Channel Management */
206  RSL_MT_TFO_MOD_REQ, /* 0x3f */
208 
209  /* ip.access specific RSL message types */
226  RSL_MT_IPAC_MEAS_PREPROC_DFT = 0x60, /*Extented Common Channel Management */
229  RSL_MT_IPAC_CRCX = 0x70, /* Bind to local BTS RTP port */
239 
241 };
242 
261 };
262 
266 };
267 
298  /* reserved */
304  RSL_IE_IMM_ASS_INFO, /* Phase 1 (3.6.0), later Full below */
330  /* Siemens vendor-specific */
339 
340  /* ip.access */
359 };
360 
361 /* Ericsson specific IEs, clash with above partially, so they're not
362  * part of the enum */
363 #define RSL_IE_ERIC_PAGING_GROUP 0x0e
364 #define RSL_IE_ERIC_INST_NR 0x48
365 #define RSL_IE_ERIC_PGSL_TIMERS 0x49
366 #define RSL_IE_ERIC_REPEAT_DL_FACCH 0x4a
367 #define RSL_IE_ERIC_POWER_INFO 0xf0
368 #define RSL_IE_ERIC_MOBILE_ID 0xf1
369 #define RSL_IE_ERIC_BCCH_MAPPING 0xf2
370 #define RSL_IE_ERIC_PACKET_PAG_IND 0xf3
371 #define RSL_IE_ERIC_CNTR_CTRL 0xf4
372 #define RSL_IE_ERIC_CNTR_CTRL_ACK 0xf5
373 #define RSL_IE_ERIC_CNTR_REPORT 0xf6
374 #define RSL_IE_ERIC_ICP_CONN 0xf7
375 #define RSL_IE_ERIC_EMR_SUPPORT 0xf8
376 #define RSL_IE_ERIC_EGPRS_REQ_REF 0xf9
377 #define RSL_IE_ERIC_VGCS_REL 0xfa
378 #define RSL_IE_ERIC_REP_PER_NCH 0xfb
379 #define RSL_IE_ERIC_NY2 0xfc
380 #define RSL_IE_ERIC_T3115 0xfd
381 #define RSL_IE_ERIC_ACTIVATE_FLAG 0xfe
382 #define RSL_IE_ERIC_FULL_NCH_INFO 0xff
383 
384 /* IPAC MEAS_PREPROC AVERAGING METHOD */
385 enum {
389 };
390 
391 /* IPAC MEAS_PREPROC AVERAGING PARAMID */
392 enum {
396 };
397 
398 /* IPAC MEAS_PREPROC HO CAUSES */
399 enum {
418 };
419 
420 /* Chapter 9.3.1 */
421 #define RSL_CHAN_NR_MASK 0xf8
422 #define RSL_CHAN_NR_1 0x08 /*< bit to add for 2nd,... lchan */
423 #define RSL_CHAN_Bm_ACCHs 0x08
424 #define RSL_CHAN_Lm_ACCHs 0x10 /* .. 0x18 */
425 #define RSL_CHAN_SDCCH4_ACCH 0x20 /* .. 0x38 */
426 #define RSL_CHAN_SDCCH8_ACCH 0x40 /* ...0x78 */
427 #define RSL_CHAN_BCCH 0x80
428 #define RSL_CHAN_RACH 0x88
429 #define RSL_CHAN_PCH_AGCH 0x90
430 #define RSL_CHAN_OSMO_PDCH 0xc0 /*< non-standard, for dyn TS */
431 #define RSL_CHAN_OSMO_CBCH4 0xc8 /*< non-standard, for CBCH/SDCCH4 */
432 #define RSL_CHAN_OSMO_CBCH8 0xd0 /*< non-standard, for CBCH/SDCCH8 */
433 
434 /* Chapter 9.3.3 */
435 #define RSL_ACT_TYPE_INITIAL 0x00
436 #define RSL_ACT_TYPE_REACT 0x80
437 #define RSL_ACT_INTRA_IMM_ASS 0x00
438 #define RSL_ACT_INTRA_NORM_ASS 0x01
439 #define RSL_ACT_INTER_ASYNC 0x02
440 #define RSL_ACT_INTER_SYNC 0x03
441 #define RSL_ACT_SECOND_ADD 0x04
442 #define RSL_ACT_SECOND_MULTI 0x05
443 #define RSL_ACT_OSMO_PDCH 0x0f /*< non-standard, for dyn TS */
444 
447  uint8_t dtx_dtu;
448  uint8_t spd_ind;
449  uint8_t chan_rt;
450  uint8_t chan_rate;
451 } __attribute__ ((packed));
452 #define RSL_CMOD_DTXu 0x01 /* uplink */
453 #define RSL_CMOD_DTXd 0x02 /* downlink */
458 };
459 #define RSL_CMOD_CRT_SDCCH 0x01
460 #define RSL_CMOD_CRT_TCH_Bm 0x08 /* full-rate */
461 #define RSL_CMOD_CRT_TCH_Lm 0x09 /* half-rate */
462 /* FIXME: More CRT types */
463 /* Speech */
464 #define RSL_CMOD_SP_GSM1 0x01
465 #define RSL_CMOD_SP_GSM2 0x11
466 #define RSL_CMOD_SP_GSM3 0x21
467 /* non-transparent data */
468 #define RSL_CMOD_CSD_NT_43k5 0x74
469 #define RSL_CMOD_CSD_NT_28k8 0x71
470 #define RSL_CMOD_CSD_NT_14k5 0x58
471 #define RSL_CMOD_CSD_NT_12k0 0x50
472 #define RSL_CMOD_CSD_NT_6k0 0x51
473 /* legacy #defines with wrong name */
474 #define RSL_CMOD_SP_NT_14k5 RSL_CMOD_CSD_NT_14k5
475 #define RSL_CMOD_SP_NT_12k0 RSL_CMOD_CSD_NT_12k0
476 #define RSL_CMOD_SP_NT_6k0 RSL_CMOD_CSD_NT_6k0
477 /* transparent data */
478 #define RSL_CMOD_CSD_T_32000 0x38
479 #define RSL_CMOD_CSD_T_29000 0x39
480 #define RSL_CMOD_CSD_T_14400 0x18
481 #define RSL_CMOD_CSD_T_9600 0x10
482 #define RSL_CMOD_CSD_T_4800 0x11
483 #define RSL_CMOD_CSD_T_2400 0x12
484 #define RSL_CMOD_CSD_T_1200 0x13
485 #define RSL_CMOD_CSD_T_600 0x14
486 #define RSL_CMOD_CSD_T_1200_75 0x15
487 
490  /* GSM 04.08 10.5.2.5 */
491  struct {
492  uint8_t iei;
493  uint8_t chan_nr; /* enc_chan_nr */
494  uint8_t oct3;
495  uint8_t oct4;
496  } chan_desc;
497 #if 0 /* spec says we need this but Abissim doesn't use it */
498  struct {
499  uint8_t tag;
500  uint8_t len;
501  } mobile_alloc;
502 #endif
503 } __attribute__ ((packed));
504 
505 /* Chapter 9.3.22 */
506 #define RLL_CAUSE_T200_EXPIRED 0x01
507 #define RLL_CAUSE_REEST_REQ 0x02
508 #define RLL_CAUSE_UNSOL_UA_RESP 0x03
509 #define RLL_CAUSE_UNSOL_DM_RESP 0x04
510 #define RLL_CAUSE_UNSOL_DM_RESP_MF 0x05
511 #define RLL_CAUSE_UNSOL_SPRV_RESP 0x06
512 #define RLL_CAUSE_SEQ_ERR 0x07
513 #define RLL_CAUSE_UFRM_INC_PARAM 0x08
514 #define RLL_CAUSE_SFRM_INC_PARAM 0x09
515 #define RLL_CAUSE_IFRM_INC_MBITS 0x0a
516 #define RLL_CAUSE_IFRM_INC_LEN 0x0b
517 #define RLL_CAUSE_FRM_UNIMPL 0x0c
518 #define RLL_CAUSE_SABM_MF 0x0d
519 #define RLL_CAUSE_SABM_INFO_NOTALL 0x0e
520 
521 /* Chapter 9.3.26 */
522 #define RSL_ERRCLS_NORMAL 0x00
523 #define RSL_ERRCLS_RESOURCE_UNAVAIL 0x20
524 #define RSL_ERRCLS_SERVICE_UNAVAIL 0x30
525 #define RSL_ERRCLS_SERVICE_UNIMPL 0x40
526 #define RSL_ERRCLS_INVAL_MSG 0x50
527 #define RSL_ERRCLS_PROTO_ERROR 0x60
528 #define RSL_ERRCLS_INTERWORKING 0x70
530 /* normal event */
531 #define RSL_ERR_RADIO_IF_FAIL 0x00
532 #define RSL_ERR_RADIO_LINK_FAIL 0x01
533 #define RSL_ERR_HANDOVER_ACC_FAIL 0x02
534 #define RSL_ERR_TALKER_ACC_FAIL 0x03
535 #define RSL_ERR_OM_INTERVENTION 0x07
536 #define RSL_ERR_NORMAL_UNSPEC 0x0f
537 #define RSL_ERR_T_MSRFPCI_EXP 0x18
538 /* resource unavailable */
539 #define RSL_ERR_EQUIPMENT_FAIL 0x20
540 #define RSL_ERR_RR_UNAVAIL 0x21
541 #define RSL_ERR_TERR_CH_FAIL 0x22
542 #define RSL_ERR_CCCH_OVERLOAD 0x23
543 #define RSL_ERR_ACCH_OVERLOAD 0x24
544 #define RSL_ERR_PROCESSOR_OVERLOAD 0x25
545 #define RSL_ERR_BTS_NOT_EQUIPPED 0x27
546 #define RSL_ERR_REMOTE_TRANSC_FAIL 0x28
547 #define RSL_ERR_NOTIFICATION_OVERFL 0x29
548 #define RSL_ERR_RES_UNAVAIL 0x2f
549 /* service or option not available */
550 #define RSL_ERR_TRANSC_UNAVAIL 0x30
551 #define RSL_ERR_SERV_OPT_UNAVAIL 0x3f
552 /* service or option not implemented */
553 #define RSL_ERR_ENCR_UNIMPL 0x40
554 #define RSL_ERR_SERV_OPT_UNIMPL 0x4f
555 /* invalid message */
556 #define RSL_ERR_RCH_ALR_ACTV_ALLOC 0x50
557 #define RSL_ERR_INVALID_MESSAGE 0x5f
558 /* protocol error */
559 #define RSL_ERR_MSG_DISCR 0x60
560 #define RSL_ERR_MSG_TYPE 0x61
561 #define RSL_ERR_MSG_SEQ 0x62
562 #define RSL_ERR_IE_ERROR 0x63
563 #define RSL_ERR_MAND_IE_ERROR 0x64
564 #define RSL_ERR_OPT_IE_ERROR 0x65
565 #define RSL_ERR_IE_NONEXIST 0x66
566 #define RSL_ERR_IE_LENGTH 0x67
567 #define RSL_ERR_IE_CONTENT 0x68
568 #define RSL_ERR_PROTO 0x6f
569 /* interworking */
570 #define RSL_ERR_INTERWORKING 0x7f
571 
572 /* Chapter 9.3.30 */
573 #define RSL_SYSTEM_INFO_8 0x00
574 #define RSL_SYSTEM_INFO_1 0x01
575 #define RSL_SYSTEM_INFO_2 0x02
576 #define RSL_SYSTEM_INFO_3 0x03
577 #define RSL_SYSTEM_INFO_4 0x04
578 #define RSL_SYSTEM_INFO_5 0x05
579 #define RSL_SYSTEM_INFO_6 0x06
580 #define RSL_SYSTEM_INFO_7 0x07
581 #define RSL_SYSTEM_INFO_16 0x08
582 #define RSL_SYSTEM_INFO_17 0x09
583 #define RSL_SYSTEM_INFO_2bis 0x0a
584 #define RSL_SYSTEM_INFO_2ter 0x0b
585 #define RSL_SYSTEM_INFO_5bis 0x0d
586 #define RSL_SYSTEM_INFO_5ter 0x0e
587 #define RSL_SYSTEM_INFO_10 0x0f
588 #define RSL_EXT_MEAS_ORDER 0x47
589 #define RSL_MEAS_INFO 0x48
590 #define RSL_SYSTEM_INFO_13 0x28
591 #define RSL_ERIC_SYSTEM_INFO_13 0x0C
592 #define RSL_SYSTEM_INFO_2quater 0x29
593 #define RSL_SYSTEM_INFO_9 0x2a
594 #define RSL_SYSTEM_INFO_18 0x2b
595 #define RSL_SYSTEM_INFO_19 0x2c
596 #define RSL_SYSTEM_INFO_20 0x2d
597 
598 /* Chapter 9.3.40 */
599 #define RSL_CHANNEED_ANY 0x00
600 #define RSL_CHANNEED_SDCCH 0x01
601 #define RSL_CHANNEED_TCH_F 0x02
602 #define RSL_CHANNEED_TCH_ForH 0x03
603 
606 #if OSMO_IS_LITTLE_ENDIAN
607  uint8_t last_block:2;
608  uint8_t spare:1;
609  uint8_t def_bcast:1;
610  uint8_t command:4;
611 #elif OSMO_IS_BIG_ENDIAN
612 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
613  uint8_t command:4, def_bcast:1, spare:1, last_block:2;
614 #endif
615 } __attribute__ ((packed));
616 /* ->command */
617 #define RSL_CB_CMD_TYPE_NORMAL 0x00
618 #define RSL_CB_CMD_TYPE_SCHEDULE 0x08
619 #define RSL_CB_CMD_TYPE_DEFAULT 0x0e
620 #define RSL_CB_CMD_TYPE_NULL 0x0f
621 /* ->def_bcast */
622 #define RSL_CB_CMD_DEFBCAST_NORMAL 0
623 #define RSL_CB_CMD_DEFBCAST_NULL 1
624 /* ->last_block */
625 #define RSL_CB_CMD_LASTBLOCK_4 0
626 #define RSL_CB_CMD_LASTBLOCK_1 1
627 #define RSL_CB_CMD_LASTBLOCK_2 2
628 #define RSL_CB_CMD_LASTBLOCK_3 3
629 
630 /* Chapter 3.3.2.3 Brocast control channel */
631 /* CCCH-CONF, NC is not combined */
632 #define RSL_BCCH_CCCH_CONF_1_NC 0x00
633 #define RSL_BCCH_CCCH_CONF_1_C 0x01
634 #define RSL_BCCH_CCCH_CONF_2_NC 0x02
635 #define RSL_BCCH_CCCH_CONF_3_NC 0x04
636 #define RSL_BCCH_CCCH_CONF_4_NC 0x06
637 
638 /* BS-PA-MFRMS */
639 #define RSL_BS_PA_MFRMS_2 0x00
640 #define RSL_BS_PA_MFRMS_3 0x01
641 #define RSL_BS_PA_MFRMS_4 0x02
642 #define RSL_BS_PA_MFRMS_5 0x03
643 #define RSL_BS_PA_MFRMS_6 0x04
644 #define RSL_BS_PA_MFRMS_7 0x05
645 #define RSL_BS_PA_MFRMS_8 0x06
646 #define RSL_BS_PA_MFRMS_9 0x07
647 
648 /* RSL_IE_IPAC_RTP_PAYLOAD[2] */
655 };
656 
657 /* RSL_IE_IPAC_SPEECH_MODE, lower four bits */
659  RSL_IPAC_SPEECH_GSM_FR = 0, /* GSM FR (Type 1, FS) */
660  RSL_IPAC_SPEECH_GSM_EFR = 1, /* GSM EFR (Type 2, FS) */
661  RSL_IPAC_SPEECH_GSM_AMR_FR = 2, /* GSM AMR/FR (Type 3, FS) */
662  RSL_IPAC_SPEECH_GSM_HR = 3, /* GSM HR (Type 1, HS) */
663  RSL_IPAC_SPEECH_GSM_AMR_HR = 5, /* GSM AMR/hr (Type 3, HS) */
664  RSL_IPAC_SPEECH_AS_RTP = 0xf, /* As specified by RTP Payload IE */
665 };
666 /* RSL_IE_IPAC_SPEECH_MODE, upper four bits */
668  RSL_IPAC_SPEECH_M_RXTX = 0, /* Send and Receive */
669  RSL_IPAC_SPEECH_M_RX = 1, /* Receive only */
670  RSL_IPAC_SPEECH_M_TX = 2, /* Send only */
671 };
672 
673 /* RSL_IE_IPAC_RTP_CSD_FMT, lower four bits */
679 };
680 /* RSL_IE_IPAC_RTP_CSD_FMT, upper four bits */
686 };
687 
688 /* Siemens vendor-specific RSL extensions */
689 struct rsl_mrpci {
690  uint8_t power_class:3,
691  vgcs_capable:1,
692  vbs_capable:1,
693  gsm_phase:2;
694 } __attribute__ ((packed));
695 
702 };
705  /* reserved */
708 };
709 
710 /* 9.3.20 Release Mode */
714 };
715 
739  /* additional IPAC measurement pre-processing related IEI */
745 
746 };
747 
749 #if OSMO_IS_LITTLE_ENDIAN
750  uint8_t h_reqave:5,
751  param_id:2,
752  reserved:1;
753  uint8_t h_reqt:5,
754  ave_method:3;
755 #elif OSMO_IS_BIG_ENDIAN
756 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
757  uint8_t reserved:1, param_id:2, h_reqave:5;
758  uint8_t ave_method:3, h_reqt:5;
759 #endif
760 }__attribute__ ((packed));
761 
763 #if OSMO_IS_LITTLE_ENDIAN
764  uint8_t l_rxlev_ul_h:6,
765  reserved_l_rxlev_ul:2;
766  uint8_t l_rxlev_dl_h:6,
767  reserved_l_rxlev_dl:2;
768  uint8_t rxlev_ul_ih:6,
769  reserved_rxlev_ul:2;
770  uint8_t rxlev_dl_ih:6,
771  reserved_rxlev_dl:2;
772  uint8_t l_rxqual_ul_h:3,
773  reserved_rxlqual_ul:1,
774  l_rxqual_dl_h:3,
775  reserved_rxqual_dl:1;
776  uint8_t ms_range_max:6,
777  reserved_ms_range:2;
778 #elif OSMO_IS_BIG_ENDIAN
779 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
780  uint8_t reserved_l_rxlev_ul:2, l_rxlev_ul_h:6;
781  uint8_t reserved_l_rxlev_dl:2, l_rxlev_dl_h:6;
782  uint8_t reserved_rxlev_ul:2, rxlev_ul_ih:6;
783  uint8_t reserved_rxlev_dl:2, rxlev_dl_ih:6;
784  uint8_t reserved_rxqual_dl:1, l_rxqual_dl_h:3, reserved_rxlqual_ul:1, l_rxqual_ul_h:3;
785  uint8_t reserved_ms_range:2, ms_range_max:6;
786 #endif
787 }__attribute__ ((packed));
788 
790 #if OSMO_IS_LITTLE_ENDIAN
791  uint8_t p5:5,
792  reserved_p5:3;
793  uint8_t n5:5,
794  reserved_n5:3;
795  uint8_t p6:5,
796  reserved_p6:3;
797  uint8_t n6:5,
798  reserved_n6:3;
799  uint8_t p7:5,
800  reserved_p7:3;
801  uint8_t n7:5,
802  reserved_n7:3;
803  uint8_t p8:5,
804  reserved_p8:3;
805  uint8_t n8:5,
806  reserved_n8:3;
807  uint8_t ho_interval:5,
808  reserved_ho:3;
809  uint8_t reserved;
810 
811 #elif OSMO_IS_BIG_ENDIAN
812 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
813  uint8_t reserved_p5:3, p5:5;
814  uint8_t reserved_n5:3, n5:5;
815  uint8_t reserved_p6:3, p6:5;
816  uint8_t reserved_n6:3, n6:5;
817  uint8_t reserved_p7:3, p7:5;
818  uint8_t reserved_n7:3, n7:5;
819  uint8_t reserved_p8:3, p8:5;
820  uint8_t reserved_n8:3, n8:5;
821  uint8_t reserved_ho:3, ho_interval:5;
822  uint8_t reserved;
823 #endif
824 }__attribute__ ((packed));
825 
827 #if OSMO_IS_LITTLE_ENDIAN
828  uint8_t bsic:6,
829  reserved0:2;
830  uint8_t bcch_freq:5,
831  ba_used:1,
832  s:1,
833  reserved1:1;
834 #elif OSMO_IS_BIG_ENDIAN
835 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
836  uint8_t reserved0:2, bsic:6;
837  uint8_t reserved1:1, s:1, ba_used:1, bcch_freq:5;
838 #endif
839 }__attribute__ ((packed));
840 
842 #if OSMO_IS_LITTLE_ENDIAN
843  uint8_t rxlev_min_def:6,
844  reserved_rxlev_min_def:2;
845  uint8_t ho_margin_def:5,
846  reserved_ho_margin_def:3;
847  uint8_t ms_txpwr_max_def:5,
848  reserved_ms_txpwr_max_def:3;
849 #elif OSMO_IS_BIG_ENDIAN
850 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
851  uint8_t reserved_rxlev_min_def:2, rxlev_min_def:6;
852  uint8_t reserved_ho_margin_def:3, ho_margin_def:5;
853  uint8_t reserved_ms_txpwr_max_def:3, ms_txpwr_max_def:5;
854 #endif
855 }__attribute__ ((packed));
856 
858 #if OSMO_IS_LITTLE_ENDIAN
859  uint8_t sdcch_ho_gsm:1,
860  sdcch_ho_umts:1,
861  reserved:6;
862 #elif OSMO_IS_BIG_ENDIAN
863 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
864  uint8_t reserved:6, sdcch_ho_umts:1, sdcch_ho_gsm:1;
865 #endif
866 }__attribute__ ((packed));
867 
869  uint8_t meas_rep_mode;
870  uint32_t meas_mode_flags;
871  struct ipac_preproc_ave_cfg ms_ave_cfg[3];
872  struct ipac_preproc_ave_cfg ave_cfg;
873  struct ipac_preproc_ho_thresh ho_thresh;
874  struct ipac_preproc_ho_comp ho_comp;
875  struct ipac_preproc_ncell_dflts ncell_dflts;
876  struct ipac_preproc_ho_ctl_param ho_ctl_param;
877 };
878 
Definition: gsm_08_58.h:152
Definition: gsm_08_58.h:328
Definition: gsm_08_58.h:237
Definition: gsm_08_58.h:228
Definition: gsm_08_58.h:410
Definition: gsm_08_58.h:186
Definition: gsm_08_58.h:345
Definition: gsm_08_58.h:159
uint8_t vbs_capable
Definition: gsm_08_58.h:523
Definition: gsm_08_58.h:150
Definition: gsm_08_58.h:200
uint8_t chan_rate
Definition: gsm_08_58.h:450
Definition: gsm_08_58.h:240
Definition: gsm_08_58.h:282
uint8_t oct3
Definition: gsm_08_58.h:494
Definition: gsm_08_58.h:171
Definition: gsm_08_58.h:154
Definition: gsm_08_58.h:256
Definition: gsm_08_58.h:302
Definition: gsm_08_58.h:307
Definition: gsm_08_58.h:700
Definition: gsm_08_58.h:190
Definition: gsm_08_58.h:247
Definition: gsm_08_58.h:351
Definition: gsm_08_58.h:195
RSL Channel Mode IF (Chapter 9.3.6)
Definition: gsm_08_58.h:446
Definition: gsm_08_58.h:180
Definition: gsm_08_58.h:868
Definition: gsm_08_58.h:663
Definition: gsm_08_58.h:212
uint8_t chan_rt
Definition: gsm_08_58.h:449
Definition: gsm_08_58.h:416
Definition: gsm_08_58.h:327
Definition: gsm_08_58.h:278
Definition: gsm_08_58.h:312
Definition: gsm_08_58.h:685
Definition: gsm_08_58.h:740
Definition: gsm_08_58.h:173
Definition: gsm_08_58.h:198
Definition: gsm_08_58.h:358
Definition: gsm_08_58.h:177
Definition: gsm_08_58.h:676
rsl_ipac_rtp_csd_format_d
Definition: gsm_08_58.h:674
Definition: gsm_08_58.h:203
RSL Channel Identification IE (Chapter 9.3.5)
Definition: gsm_08_58.h:489
Definition: gsm_08_58.h:169
Definition: gsm_08_58.h:181
Definition: gsm_08_58.h:295
Definition: gsm_08_58.h:308
Definition: gsm_08_58.h:253
uint8_t ie_chan
RSL_IE_CHAN_NR (tag)
Definition: gsm_08_58.h:100
Definition: gsm_08_58.h:334
Definition: gsm_08_58.h:162
Definition: gsm_08_58.h:272
Definition: gsm_08_58.h:172
Definition: gsm_08_58.h:155
Definition: gsm_08_58.h:400
Definition: gsm_08_58.h:301
rsl_rel_mode
Definition: gsm_08_58.h:711
Definition: gsm_08_58.h:291
Definition: gsm_08_58.h:141
Definition: gsm_08_58.h:281
Definition: gsm_08_58.h:260
Definition: gsm_08_58.h:333
Definition: gsm_08_58.h:179
Definition: gsm_08_58.h:724
Definition: gsm_08_58.h:742
Definition: gsm_08_58.h:357
rsl_mrpci_pwrclass
Definition: gsm_08_58.h:696
rsl_mrpci_phase
Definition: gsm_08_58.h:703
Definition: gsm_08_58.h:205
Definition: gsm_08_58.h:315
Definition: gsm_08_58.h:248
Definition: gsm_08_58.h:293
rsl_ipac_speech_mode_s
Definition: gsm_08_58.h:658
Definition: gsm_08_58.h:236
Definition: gsm_08_58.h:296
Definition: gsm_08_58.h:285
Definition: gsm_08_58.h:743
Definition: gsm_08_58.h:187
Definition: gsm_08_58.h:455
Definition: gsm_08_58.h:161
Definition: gsm_08_58.h:145
Definition: gsm_08_58.h:297
uint8_t chan_nr
Definition: gsm_08_58.h:86
abis_rsl_msgtype_siemens
Siemens vendor-specific RSL message types.
Definition: gsm_08_58.h:244
uint8_t msg_discr
message discriminator (ABIS_RSL_MDISC_*)
Definition: gsm_08_58.h:76
Definition: gsm_08_58.h:213
Definition: gsm_08_58.h:283
Definition: gsm_08_58.h:341
Definition: gsm_08_58.h:393
uint8_t spd_ind
Definition: gsm_08_58.h:448
Definition: gsm_08_58.h:350
Definition: gsm_08_58.h:189
Definition: gsm_08_58.h:206
Definition: gsm_08_58.h:183
uint8_t gsm_phase
Definition: gsm_08_58.h:523
union abis_rsl_link_id link_id_fields
RSL link identifier (value)
Definition: gsm_08_58.h:532
Definition: gsm_08_58.h:661
Definition: gsm_08_58.h:289
Definition: gsm_08_58.h:201
Definition: gsm_08_58.h:741
Definition: gsm_08_58.h:394
Definition: gsm_08_58.h:178
Definition: gsm_08_58.h:404
Definition: gsm_08_58.h:317
Definition: gsm_08_58.h:738
Definition: gsm_08_58.h:274
Definition: gsm_08_58.h:286
Definition: gsm_08_58.h:329
uint8_t chan_nr
Definition: gsm_08_58.h:102
Definition: gsm_08_58.h:214
Definition: gsm_08_58.h:677
Definition: gsm_08_58.h:412
Definition: gsm_08_58.h:706
Definition: gsm_08_58.h:160
Definition: gsm_08_58.h:748
Definition: gsm_08_58.h:219
Definition: gsm_08_58.h:675
abis_rsl_msgtype
Definition: gsm_08_58.h:139
Definition: gsm_08_58.h:204
Definition: gsm_08_58.h:271
Definition: gsm_08_58.h:300
Definition: gsm_08_58.h:704
Definition: gsm_08_58.h:320
Definition: gsm_08_58.h:352
Definition: gsm_08_58.h:142
Definition: gsm_08_58.h:654
uint8_t vgcs_capable
Definition: gsm_08_58.h:690
Definition: gsm_08_58.h:277
Definition: gsm_08_58.h:259
Definition: gsm_08_58.h:153
Definition: gsm_08_58.h:299
Definition: gsm_08_58.h:732
Definition: gsm_08_58.h:668
Definition: gsm_08_58.h:284
Definition: gsm_08_58.h:202
Definition: gsm_08_58.h:733
Definition: gsm_08_58.h:660
Definition: gsm_08_58.h:207
Definition: gsm_08_58.h:386
Definition: gsm_08_58.h:395
Definition: gsm_08_58.h:707
Definition: gsm_08_58.h:730
Definition: gsm_08_58.h:184
Definition: gsm_08_58.h:407
Definition: gsm_08_58.h:311
Definition: gsm_08_58.h:151
uint8_t chan_nr
Definition: gsm_08_58.h:43
Definition: gsm_08_58.h:276
Definition: gsm_08_58.h:721
Definition: gsm_08_58.h:168
rsl_ipac_rtp_payload
Definition: gsm_08_58.h:649
Definition: gsm_08_58.h:143
Definition: gsm_08_58.h:726
Definition: gsm_08_58.h:409
Definition: gsm_08_58.h:332
uint8_t msg_type
message type (abis_rsl_msgtype)
Definition: gsm_08_58.h:77
Definition: gsm_08_58.h:231
uint8_t data[0]
actual payload data
Definition: gsm_08_58.h:525
Definition: gsm_08_58.h:309
Definition: gsm_08_58.h:163
Definition: gsm_08_58.h:196
Definition: gsm_08_58.h:280
Definition: gsm_08_58.h:292
Definition: gsm_08_58.h:735
Definition: gsm_08_58.h:417
Definition: gsm_08_58.h:220
Definition: gsm_08_58.h:331
Definition: gsm_08_58.h:35
Definition: gsm_08_58.h:736
Definition: gsm_08_58.h:401
Definition: gsm_08_58.h:348
Definition: gsm_08_58.h:318
Definition: gsm_08_58.h:170
Definition: gsm_08_58.h:659
uint8_t oct4
Definition: gsm_08_58.h:495
Definition: gsm_08_58.h:221
Definition: gsm_08_58.h:415
Definition: gsm_08_58.h:279
Definition: gsm_08_58.h:144
Definition: gsm_08_58.h:82
uint8_t chan_nr
Definition: gsm_08_58.h:493
Definition: gsm_08_58.h:346
Definition: gsm_08_58.h:337
Definition: gsm_08_58.h:826
Definition: gsm_08_58.h:319
Definition: gsm_08_58.h:227
Definition: gsm_08_58.h:310
Definition: gsm_08_58.h:322
Definition: gsm_08_58.h:353
Definition: gsm_08_58.h:223
Definition: gsm_08_58.h:347
Definition: gsm_08_58.h:403
Definition: gsm_08_58.h:408
Definition: gsm_08_58.h:216
Definition: gsm_08_58.h:224
Definition: gsm_08_58.h:210
Definition: gsm_08_58.h:841
Definition: gsm_08_58.h:246
Definition: gsm_08_58.h:326
Definition: gsm_08_58.h:194
Definition: gsm_08_58.h:182
Definition: gsm_08_58.h:336
enum abis_rsl_msgtype __attribute__
uint8_t ie_link_id
RSL_IE_LINK_IDENT (tag)
Definition: gsm_08_58.h:89
Definition: gsm_08_58.h:338
Definition: gsm_08_58.h:188
Definition: gsm_08_58.h:218
Definition: gsm_08_58.h:235
Definition: gsm_08_58.h:193
Definition: gsm_08_58.h:287
Definition: gsm_08_58.h:652
Definition: gsm_08_58.h:275
Definition: gsm_08_58.h:306
uint8_t chan_nr
Definition: gsm_08_58.h:113
Definition: gsm_08_58.h:273
Definition: gsm_08_58.h:233
uint8_t len
Definition: gsm_04_11.h:465
Definition: gsm_08_58.h:245
Definition: gsm_08_58.h:249
Definition: gsm_08_58.h:737
Definition: gsm_08_58.h:405
Definition: gsm_08_58.h:699
Definition: gsm_08_58.h:406
Definition: gsm_08_58.h:411
Definition: gsm_08_58.h:718
Definition: gsm_08_58.h:164
Definition: gsm_08_58.h:167
Definition: gsm_08_58.h:199
Definition: gsm_08_58.h:670
Definition: gsm_08_58.h:192
Definition: gsm_08_58.h:744
Definition: gsm_08_58.h:217
Definition: gsm_08_58.h:722
Definition: gsm_08_58.h:270
Definition: gsm_08_58.h:355
Definition: gsm_08_58.h:149
Definition: gsm_08_58.h:254
Definition: gsm_08_58.h:731
Definition: gsm_08_58.h:325
Definition: gsm_08_58.h:651
Definition: gsm_08_58.h:230
Definition: gsm_08_58.h:225
Definition: gsm_08_58.h:356
Definition: gsm_08_58.h:457
Definition: gsm_08_58.h:683
Definition: gsm_08_58.h:109
Definition: gsm_08_58.h:323
Definition: gsm_08_58.h:313
Definition: gsm_08_58.h:720
RSL Cell Broadcast Command (Chapter 9.3.45)
Definition: gsm_08_58.h:605
rsl_ipac_rtp_csd_format_ir
Definition: gsm_08_58.h:681
Definition: gsm_08_58.h:713
Definition: gsm_08_58.h:250
Definition: gsm_08_58.h:98
Definition: gsm_08_58.h:857
Definition: gsm_08_58.h:165
Definition: gsm_08_58.h:354
rsl_cmod_spd
Definition: gsm_08_58.h:454
Definition: gsm_08_58.h:211
Definition: gsm_08_58.h:258
Definition: gsm_08_58.h:734
Definition: gsm_08_58.h:719
abis_rsl_ie
RSL Information Element Identifiers (Chapter 9.3)
Definition: gsm_08_58.h:269
Definition: gsm_08_58.h:701
Definition: gsm_08_58.h:729
uint8_t meas_rep_mode
Definition: gsm_08_58.h:869
Definition: gsm_08_58.h:723
Definition: gsm_08_58.h:712
Definition: gsm_08_58.h:226
Definition: gsm_08_58.h:324
uint8_t link_id
Definition: gsm_08_58.h:91
Definition: gsm_08_58.h:653
Definition: gsm_08_58.h:232
Definition: gsm_08_58.h:185
RSL common header.
Definition: gsm_08_58.h:75
Definition: gsm_08_58.h:148
Definition: gsm_08_58.h:255
rsl_ipac_embedded_ie
ip.access specific embedded information elements
Definition: gsm_08_58.h:717
Definition: gsm_08_58.h:146
Definition: gsm_08_58.h:316
Definition: gsm_08_58.h:689
union abis_rsl_chan_nr chan_nr_fields
RSL channel number (value)
Definition: gsm_08_58.h:527
abis_rsl_msgtype_ericsson
Ericsson vendor-specific RSL message types.
Definition: gsm_08_58.h:264
Definition: gsm_08_58.h:288
Definition: gsm_08_58.h:229
Definition: gsm_08_58.h:294
Definition: gsm_08_58.h:215
Definition: gsm_08_58.h:265
Definition: gsm_08_58.h:697
Definition: gsm_08_58.h:698
Definition: gsm_08_58.h:191
Definition: gsm_08_58.h:252
Definition: gsm_08_58.h:414
Definition: gsm_08_58.h:789
Definition: gsm_08_58.h:684
Definition: gsm_08_58.h:349
Definition: gsm_08_58.h:728
Definition: gsm_08_58.h:222
Definition: gsm_08_58.h:678
Definition: gsm_08_58.h:725
Definition: gsm_08_58.h:669
Definition: gsm_08_58.h:335
rsl_ipac_speech_mode_m
Definition: gsm_08_58.h:667
uint32_t meas_mode_flags
Definition: gsm_08_58.h:870
Definition: gsm_08_58.h:197
uint8_t ie_chan
RSL_IE_CHAN_NR (tag)
Definition: gsm_08_58.h:84
uint8_t iei
Definition: gsm_08_58.h:492
Definition: gsm_08_58.h:303
Definition: gsm_08_58.h:388
Definition: gsm_08_58.h:305
Definition: gsm_08_58.h:664
uint8_t dtx_dtu
Definition: gsm_08_58.h:447
Definition: gsm_08_58.h:238
Definition: gsm_08_58.h:387
Definition: gsm_08_58.h:290
Definition: gsm_08_58.h:343
Definition: gsm_08_58.h:158
Definition: gsm_08_58.h:342
uint8_t ie_chan
RSL_IE_CHAN_NR (tag)
Definition: gsm_08_58.h:111
Definition: gsm_08_58.h:344
Definition: gsm_08_58.h:321
Definition: gsm_08_58.h:456
Definition: gsm_08_58.h:176
struct abis_rsl_common_hdr c
Definition: gsm_08_58.h:523
Definition: gsm_08_58.h:234
uint8_t power_class
Definition: gsm_08_58.h:523
struct @67 chan_desc
Definition: gsm_08_58.h:413
Definition: gsm_08_58.h:762
Definition: gsm_08_58.h:147
Definition: gsm_08_58.h:402
Definition: gsm_08_58.h:251
Definition: gsm_08_58.h:662
Definition: gsm_08_58.h:257
Definition: gsm_08_58.h:682
Definition: gsm_08_58.h:304
Definition: gsm_08_58.h:650
Definition: gsm_08_58.h:314
Definition: gsm_08_58.h:727