libosmogsm  1.5.2
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 /* Osmocom specific IE to negotiate repeated ACCH capabilities */
121 #if OSMO_IS_BIG_ENDIAN
122  uint8_t reserved:1,
123  rxqual:3,
124  ul_sacch:1,
125  dl_sacch:1,
126  dl_facch_all:1,
127  dl_facch_cmd:1;
128 #elif OSMO_IS_LITTLE_ENDIAN
129  uint8_t dl_facch_cmd:1,
130  dl_facch_all:1,
131  dl_sacch:1,
132  ul_sacch:1,
133  rxqual:3,
134  reserved:1;
135 #endif
136 } __attribute__ ((packed));
137 
138 /* Chapter 9.1 */
139 /* RSL Message Discriminator: RLL */
140 #define ABIS_RSL_MDISC_RLL 0x02
141 /* RSL Message Discriminator: Dedicated Channel */
142 #define ABIS_RSL_MDISC_DED_CHAN 0x08
143 /* RSL Message Discriminator: Common Channel */
144 #define ABIS_RSL_MDISC_COM_CHAN 0x0c
145 /* RSL Message Discriminator: TRX Management */
146 #define ABIS_RSL_MDISC_TRX 0x10
147 /* RSL Message Discriminator: Location Service */
148 #define ABIS_RSL_MDISC_LOC 0x20
149 /* RSL Message Discriminator: ip.access */
150 #define ABIS_RSL_MDISC_IPACCESS 0x7e
151 #define ABIS_RSL_MDISC_TRANSP 0x01
152 
153 /* Check if given RSL message discriminator is transparent */
154 #define ABIS_RSL_MDISC_IS_TRANSP(x) (x & 0x01)
155 
156 /* RSL Message Type (Chapter 9.1) */
158  /* Radio Link Layer Management */
170  RSL_MT_SUSP_REQ, /* non-standard elements */
173  RSL_MT_RECON_REQ, /* 0x0f */
174 
175  /* Common Channel Management / TRX Management */
183  RSL_MT_CHAN_CONF, /* non-standard element */
184  /* empty */
191  RSL_MT_NOT_CMD, /* 0x1f */
192 
193  /* Dedicate Channel Management */
224  RSL_MT_TFO_MOD_REQ, /* 0x3f */
226 
227  /* ip.access specific RSL message types */
244  RSL_MT_IPAC_MEAS_PREPROC_DFT = 0x60, /*Extented Common Channel Management */
247  RSL_MT_IPAC_CRCX = 0x70, /* Bind to local BTS RTP port */
257 
259 };
260 
279 };
280 
284 };
285 
316  /* reserved */
322  RSL_IE_IMM_ASS_INFO, /* Phase 1 (3.6.0), later Full below */
348  /* Siemens vendor-specific */
357 
358  /* Osmocom specific */
360 
361  /* ip.access */
380 };
381 
382 /* Ericsson specific IEs, clash with above partially, so they're not
383  * part of the enum */
384 #define RSL_IE_ERIC_PAGING_GROUP 0x0e
385 #define RSL_IE_ERIC_INST_NR 0x48
386 #define RSL_IE_ERIC_PGSL_TIMERS 0x49
387 #define RSL_IE_ERIC_REPEAT_DL_FACCH 0x4a
388 #define RSL_IE_ERIC_POWER_INFO 0xf0
389 #define RSL_IE_ERIC_MOBILE_ID 0xf1
390 #define RSL_IE_ERIC_BCCH_MAPPING 0xf2
391 #define RSL_IE_ERIC_PACKET_PAG_IND 0xf3
392 #define RSL_IE_ERIC_CNTR_CTRL 0xf4
393 #define RSL_IE_ERIC_CNTR_CTRL_ACK 0xf5
394 #define RSL_IE_ERIC_CNTR_REPORT 0xf6
395 #define RSL_IE_ERIC_ICP_CONN 0xf7
396 #define RSL_IE_ERIC_EMR_SUPPORT 0xf8
397 #define RSL_IE_ERIC_EGPRS_REQ_REF 0xf9
398 #define RSL_IE_ERIC_VGCS_REL 0xfa
399 #define RSL_IE_ERIC_REP_PER_NCH 0xfb
400 #define RSL_IE_ERIC_NY2 0xfc
401 #define RSL_IE_ERIC_T3115 0xfd
402 #define RSL_IE_ERIC_ACTIVATE_FLAG 0xfe
403 #define RSL_IE_ERIC_FULL_NCH_INFO 0xff
404 
405 /* IPAC MEAS_PREPROC AVERAGING METHOD */
406 enum {
410  /* EWMA is an Osmocom specific extension */
412 };
413 
414 /* IPAC MEAS_PREPROC AVERAGING PARAMID */
415 enum {
419 };
420 
421 /* IPAC MEAS_PREPROC HO CAUSES */
422 enum {
441 };
442 
443 /* Chapter 9.3.1 */
444 #define RSL_CHAN_NR_MASK 0xf8
445 #define RSL_CHAN_NR_1 0x08 /*< bit to add for 2nd,... lchan */
446 #define RSL_CHAN_Bm_ACCHs 0x08
447 #define RSL_CHAN_Lm_ACCHs 0x10 /* .. 0x18 */
448 #define RSL_CHAN_SDCCH4_ACCH 0x20 /* .. 0x38 */
449 #define RSL_CHAN_SDCCH8_ACCH 0x40 /* ...0x78 */
450 #define RSL_CHAN_BCCH 0x80
451 #define RSL_CHAN_RACH 0x88
452 #define RSL_CHAN_PCH_AGCH 0x90
453 #define RSL_CHAN_OSMO_PDCH 0xc0 /*< non-standard, for dyn TS */
454 #define RSL_CHAN_OSMO_CBCH4 0xc8 /*< non-standard, for CBCH/SDCCH4 */
455 #define RSL_CHAN_OSMO_CBCH8 0xd0 /*< non-standard, for CBCH/SDCCH8 */
456 
457 /* Chapter 9.3.3 */
458 #define RSL_ACT_TYPE_INITIAL 0x00
459 #define RSL_ACT_TYPE_REACT 0x80
460 #define RSL_ACT_INTRA_IMM_ASS 0x00
461 #define RSL_ACT_INTRA_NORM_ASS 0x01
462 #define RSL_ACT_INTER_ASYNC 0x02
463 #define RSL_ACT_INTER_SYNC 0x03
464 #define RSL_ACT_SECOND_ADD 0x04
465 #define RSL_ACT_SECOND_MULTI 0x05
466 #define RSL_ACT_OSMO_PDCH 0x0f /*< non-standard, for dyn TS */
467 
470  uint8_t dtx_dtu;
471  uint8_t spd_ind;
472  uint8_t chan_rt;
473  uint8_t chan_rate;
474 } __attribute__ ((packed));
475 #define RSL_CMOD_DTXu 0x01 /* uplink */
476 #define RSL_CMOD_DTXd 0x02 /* downlink */
481 };
482 #define RSL_CMOD_CRT_SDCCH 0x01
483 #define RSL_CMOD_CRT_TCH_Bm 0x08 /* full-rate */
484 #define RSL_CMOD_CRT_TCH_Lm 0x09 /* half-rate */
485 /* FIXME: More CRT types */
486 /* Speech */
487 #define RSL_CMOD_SP_GSM1 0x01
488 #define RSL_CMOD_SP_GSM2 0x11
489 #define RSL_CMOD_SP_GSM3 0x21
490 /* non-transparent data */
491 #define RSL_CMOD_CSD_NT_43k5 0x74
492 #define RSL_CMOD_CSD_NT_28k8 0x71
493 #define RSL_CMOD_CSD_NT_14k5 0x58
494 #define RSL_CMOD_CSD_NT_12k0 0x50
495 #define RSL_CMOD_CSD_NT_6k0 0x51
496 /* legacy #defines with wrong name */
497 #define RSL_CMOD_SP_NT_14k5 RSL_CMOD_CSD_NT_14k5
498 #define RSL_CMOD_SP_NT_12k0 RSL_CMOD_CSD_NT_12k0
499 #define RSL_CMOD_SP_NT_6k0 RSL_CMOD_CSD_NT_6k0
500 /* transparent data */
501 #define RSL_CMOD_CSD_T_32000 0x38
502 #define RSL_CMOD_CSD_T_29000 0x39
503 #define RSL_CMOD_CSD_T_14400 0x18
504 #define RSL_CMOD_CSD_T_9600 0x10
505 #define RSL_CMOD_CSD_T_4800 0x11
506 #define RSL_CMOD_CSD_T_2400 0x12
507 #define RSL_CMOD_CSD_T_1200 0x13
508 #define RSL_CMOD_CSD_T_600 0x14
509 #define RSL_CMOD_CSD_T_1200_75 0x15
510 
513  /* GSM 04.08 10.5.2.5 */
514  struct {
515  uint8_t iei;
516  uint8_t chan_nr; /* enc_chan_nr */
517  uint8_t oct3;
518  uint8_t oct4;
519  } chan_desc;
520 #if 0 /* spec says we need this but Abissim doesn't use it */
521  struct {
522  uint8_t tag;
523  uint8_t len;
524  } mobile_alloc;
525 #endif
526 } __attribute__ ((packed));
528 /* Chapter 9.3.22 */
529 #define RLL_CAUSE_T200_EXPIRED 0x01
530 #define RLL_CAUSE_REEST_REQ 0x02
531 #define RLL_CAUSE_UNSOL_UA_RESP 0x03
532 #define RLL_CAUSE_UNSOL_DM_RESP 0x04
533 #define RLL_CAUSE_UNSOL_DM_RESP_MF 0x05
534 #define RLL_CAUSE_UNSOL_SPRV_RESP 0x06
535 #define RLL_CAUSE_SEQ_ERR 0x07
536 #define RLL_CAUSE_UFRM_INC_PARAM 0x08
537 #define RLL_CAUSE_SFRM_INC_PARAM 0x09
538 #define RLL_CAUSE_IFRM_INC_MBITS 0x0a
539 #define RLL_CAUSE_IFRM_INC_LEN 0x0b
540 #define RLL_CAUSE_FRM_UNIMPL 0x0c
541 #define RLL_CAUSE_SABM_MF 0x0d
542 #define RLL_CAUSE_SABM_INFO_NOTALL 0x0e
543 
544 /* Chapter 9.3.26 */
545 #define RSL_ERRCLS_NORMAL 0x00
546 #define RSL_ERRCLS_RESOURCE_UNAVAIL 0x20
547 #define RSL_ERRCLS_SERVICE_UNAVAIL 0x30
548 #define RSL_ERRCLS_SERVICE_UNIMPL 0x40
549 #define RSL_ERRCLS_INVAL_MSG 0x50
550 #define RSL_ERRCLS_PROTO_ERROR 0x60
551 #define RSL_ERRCLS_INTERWORKING 0x70
552 
553 /* normal event */
554 #define RSL_ERR_RADIO_IF_FAIL 0x00
555 #define RSL_ERR_RADIO_LINK_FAIL 0x01
556 #define RSL_ERR_HANDOVER_ACC_FAIL 0x02
557 #define RSL_ERR_TALKER_ACC_FAIL 0x03
558 #define RSL_ERR_OM_INTERVENTION 0x07
559 #define RSL_ERR_NORMAL_UNSPEC 0x0f
560 #define RSL_ERR_T_MSRFPCI_EXP 0x18
561 /* resource unavailable */
562 #define RSL_ERR_EQUIPMENT_FAIL 0x20
563 #define RSL_ERR_RR_UNAVAIL 0x21
564 #define RSL_ERR_TERR_CH_FAIL 0x22
565 #define RSL_ERR_CCCH_OVERLOAD 0x23
566 #define RSL_ERR_ACCH_OVERLOAD 0x24
567 #define RSL_ERR_PROCESSOR_OVERLOAD 0x25
568 #define RSL_ERR_BTS_NOT_EQUIPPED 0x27
569 #define RSL_ERR_REMOTE_TRANSC_FAIL 0x28
570 #define RSL_ERR_NOTIFICATION_OVERFL 0x29
571 #define RSL_ERR_RES_UNAVAIL 0x2f
572 /* service or option not available */
573 #define RSL_ERR_TRANSC_UNAVAIL 0x30
574 #define RSL_ERR_SERV_OPT_UNAVAIL 0x3f
575 /* service or option not implemented */
576 #define RSL_ERR_ENCR_UNIMPL 0x40
577 #define RSL_ERR_SERV_OPT_UNIMPL 0x4f
578 /* invalid message */
579 #define RSL_ERR_RCH_ALR_ACTV_ALLOC 0x50
580 #define RSL_ERR_INVALID_MESSAGE 0x5f
581 /* protocol error */
582 #define RSL_ERR_MSG_DISCR 0x60
583 #define RSL_ERR_MSG_TYPE 0x61
584 #define RSL_ERR_MSG_SEQ 0x62
585 #define RSL_ERR_IE_ERROR 0x63
586 #define RSL_ERR_MAND_IE_ERROR 0x64
587 #define RSL_ERR_OPT_IE_ERROR 0x65
588 #define RSL_ERR_IE_NONEXIST 0x66
589 #define RSL_ERR_IE_LENGTH 0x67
590 #define RSL_ERR_IE_CONTENT 0x68
591 #define RSL_ERR_PROTO 0x6f
592 /* interworking */
593 #define RSL_ERR_INTERWORKING 0x7f
594 
595 /* Chapter 9.3.30 */
596 #define RSL_SYSTEM_INFO_8 0x00
597 #define RSL_SYSTEM_INFO_1 0x01
598 #define RSL_SYSTEM_INFO_2 0x02
599 #define RSL_SYSTEM_INFO_3 0x03
600 #define RSL_SYSTEM_INFO_4 0x04
601 #define RSL_SYSTEM_INFO_5 0x05
602 #define RSL_SYSTEM_INFO_6 0x06
603 #define RSL_SYSTEM_INFO_7 0x07
604 #define RSL_SYSTEM_INFO_16 0x08
605 #define RSL_SYSTEM_INFO_17 0x09
606 #define RSL_SYSTEM_INFO_2bis 0x0a
607 #define RSL_SYSTEM_INFO_2ter 0x0b
608 #define RSL_SYSTEM_INFO_5bis 0x0d
609 #define RSL_SYSTEM_INFO_5ter 0x0e
610 #define RSL_SYSTEM_INFO_10 0x0f
611 #define RSL_EXT_MEAS_ORDER 0x47
612 #define RSL_MEAS_INFO 0x48
613 #define RSL_SYSTEM_INFO_13 0x28
614 #define RSL_ERIC_SYSTEM_INFO_13 0x0C
615 #define RSL_SYSTEM_INFO_2quater 0x29
616 #define RSL_SYSTEM_INFO_9 0x2a
617 #define RSL_SYSTEM_INFO_18 0x2b
618 #define RSL_SYSTEM_INFO_19 0x2c
619 #define RSL_SYSTEM_INFO_20 0x2d
620 
621 /* Chapter 9.3.40 */
622 #define RSL_CHANNEED_ANY 0x00
623 #define RSL_CHANNEED_SDCCH 0x01
624 #define RSL_CHANNEED_TCH_F 0x02
625 #define RSL_CHANNEED_TCH_ForH 0x03
626 
629 #if OSMO_IS_LITTLE_ENDIAN
630  uint8_t last_block:2;
631  uint8_t spare:1;
632  uint8_t def_bcast:1;
633  uint8_t command:4;
634 #elif OSMO_IS_BIG_ENDIAN
635 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
636  uint8_t command:4, def_bcast:1, spare:1, last_block:2;
637 #endif
638 } __attribute__ ((packed));
639 /* ->command */
640 #define RSL_CB_CMD_TYPE_NORMAL 0x00
641 #define RSL_CB_CMD_TYPE_SCHEDULE 0x08
642 #define RSL_CB_CMD_TYPE_DEFAULT 0x0e
643 #define RSL_CB_CMD_TYPE_NULL 0x0f
644 /* ->def_bcast */
645 #define RSL_CB_CMD_DEFBCAST_NORMAL 0
646 #define RSL_CB_CMD_DEFBCAST_NULL 1
647 /* ->last_block */
648 #define RSL_CB_CMD_LASTBLOCK_4 0
649 #define RSL_CB_CMD_LASTBLOCK_1 1
650 #define RSL_CB_CMD_LASTBLOCK_2 2
651 #define RSL_CB_CMD_LASTBLOCK_3 3
652 
653 /* Chapter 3.3.2.3 Brocast control channel */
654 /* CCCH-CONF, NC is not combined */
655 #define RSL_BCCH_CCCH_CONF_1_NC 0x00
656 #define RSL_BCCH_CCCH_CONF_1_C 0x01
657 #define RSL_BCCH_CCCH_CONF_2_NC 0x02
658 #define RSL_BCCH_CCCH_CONF_3_NC 0x04
659 #define RSL_BCCH_CCCH_CONF_4_NC 0x06
660 
661 /* BS-PA-MFRMS */
662 #define RSL_BS_PA_MFRMS_2 0x00
663 #define RSL_BS_PA_MFRMS_3 0x01
664 #define RSL_BS_PA_MFRMS_4 0x02
665 #define RSL_BS_PA_MFRMS_5 0x03
666 #define RSL_BS_PA_MFRMS_6 0x04
667 #define RSL_BS_PA_MFRMS_7 0x05
668 #define RSL_BS_PA_MFRMS_8 0x06
669 #define RSL_BS_PA_MFRMS_9 0x07
670 
671 /* RSL_IE_IPAC_RTP_PAYLOAD[2] */
678 };
679 
680 /* RSL_IE_IPAC_SPEECH_MODE, lower four bits */
682  RSL_IPAC_SPEECH_GSM_FR = 0, /* GSM FR (Type 1, FS) */
683  RSL_IPAC_SPEECH_GSM_EFR = 1, /* GSM EFR (Type 2, FS) */
684  RSL_IPAC_SPEECH_GSM_AMR_FR = 2, /* GSM AMR/FR (Type 3, FS) */
685  RSL_IPAC_SPEECH_GSM_HR = 3, /* GSM HR (Type 1, HS) */
686  RSL_IPAC_SPEECH_GSM_AMR_HR = 5, /* GSM AMR/hr (Type 3, HS) */
687  RSL_IPAC_SPEECH_AS_RTP = 0xf, /* As specified by RTP Payload IE */
688 };
689 /* RSL_IE_IPAC_SPEECH_MODE, upper four bits */
691  RSL_IPAC_SPEECH_M_RXTX = 0, /* Send and Receive */
692  RSL_IPAC_SPEECH_M_RX = 1, /* Receive only */
693  RSL_IPAC_SPEECH_M_TX = 2, /* Send only */
694 };
695 
696 /* RSL_IE_IPAC_RTP_CSD_FMT, lower four bits */
702 };
703 /* RSL_IE_IPAC_RTP_CSD_FMT, upper four bits */
709 };
710 
711 /* Siemens vendor-specific RSL extensions */
712 struct rsl_mrpci {
713  uint8_t power_class:3,
714  vgcs_capable:1,
715  vbs_capable:1,
716  gsm_phase:2;
717 } __attribute__ ((packed));
718 
725 };
728  /* reserved */
731 };
732 
733 /* 9.3.20 Release Mode */
737 };
738 
762  /* additional IPAC measurement pre-processing related IEI */
768 
769 };
770 
772 #if OSMO_IS_LITTLE_ENDIAN
773  uint8_t h_reqave:5,
774  param_id:2,
775  reserved:1;
776  uint8_t h_reqt:5,
777  ave_method:3;
778  uint8_t params[0];
779 #elif OSMO_IS_BIG_ENDIAN
780 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
781  uint8_t reserved:1, param_id:2, h_reqave:5;
782  uint8_t ave_method:3, h_reqt:5;
783  uint8_t params[0];
784 #endif
785 }__attribute__ ((packed));
786 
789 #if OSMO_IS_LITTLE_ENDIAN
790  uint8_t l_rxlev:6, reserved_l_rxlev:2;
791  uint8_t u_rxlev:6, reserved_u_rxlev:2;
792  uint8_t u_rxqual:3, reserved_u_rxqual:1,
793  l_rxqual:3, reserved_l_rxqual:1;
794 #elif OSMO_IS_BIG_ENDIAN
795  uint8_t reserved_l_rxlev:2, l_rxlev:6;
796  uint8_t reserved_u_rxlev:2, u_rxlev:6;
797  uint8_t reserved_l_rxqual:1, l_rxqual:3,
798  reserved_u_rxqual:1, u_rxqual:3;
799 #endif
800 }__attribute__ ((packed));
801 
804 #if OSMO_IS_LITTLE_ENDIAN
805  uint8_t l_rxlev_ul_h:6,
806  reserved_l_rxlev_ul:2;
807  uint8_t l_rxlev_dl_h:6,
808  reserved_l_rxlev_dl:2;
809  uint8_t rxlev_ul_ih:6,
810  reserved_rxlev_ul:2;
811  uint8_t rxlev_dl_ih:6,
812  reserved_rxlev_dl:2;
813  uint8_t l_rxqual_ul_h:3,
814  reserved_rxlqual_ul:1,
815  l_rxqual_dl_h:3,
816  reserved_rxqual_dl:1;
817  uint8_t ms_range_max:6,
818  reserved_ms_range:2;
819 #elif OSMO_IS_BIG_ENDIAN
820 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
821  uint8_t reserved_l_rxlev_ul:2, l_rxlev_ul_h:6;
822  uint8_t reserved_l_rxlev_dl:2, l_rxlev_dl_h:6;
823  uint8_t reserved_rxlev_ul:2, rxlev_ul_ih:6;
824  uint8_t reserved_rxlev_dl:2, rxlev_dl_ih:6;
825  uint8_t reserved_rxqual_dl:1, l_rxqual_dl_h:3, reserved_rxlqual_ul:1, l_rxqual_ul_h:3;
826  uint8_t reserved_ms_range:2, ms_range_max:6;
827 #endif
828 }__attribute__ ((packed));
829 
832 #if OSMO_IS_LITTLE_ENDIAN
833  uint8_t p1:5, reserved_p1:3;
834  uint8_t n1:5, reserved_n1:3;
835  uint8_t p2:5, reserved_p2:3;
836  uint8_t n2:5, reserved_n2:3;
837  uint8_t p3:5, reserved_p3:3;
838  uint8_t n3:5, reserved_n3:3;
839  uint8_t p4:5, reserved_p4:3;
840  uint8_t n4:5, reserved_n4:3;
841  uint8_t pc_interval:5, reserved_pc:3;
842  uint8_t red_step_size:4, inc_step_size:4;
843 #elif OSMO_IS_BIG_ENDIAN
844  uint8_t reserved_p1:3, p1:5;
845  uint8_t reserved_n1:3, n1:5;
846  uint8_t reserved_p2:3, p2:5;
847  uint8_t reserved_n2:3, n2:5;
848  uint8_t reserved_p3:3, p3:5;
849  uint8_t reserved_n3:3, n3:5;
850  uint8_t reserved_p4:3, p4:5;
851  uint8_t reserved_n4:3, n4:5;
852  uint8_t reserved_pc:3, pc_interval:5;
853  uint8_t inc_step_size:4, red_step_size:4;
854 #endif
855 }__attribute__ ((packed));
856 
859 #if OSMO_IS_LITTLE_ENDIAN
860  uint8_t p5:5,
861  reserved_p5:3;
862  uint8_t n5:5,
863  reserved_n5:3;
864  uint8_t p6:5,
865  reserved_p6:3;
866  uint8_t n6:5,
867  reserved_n6:3;
868  uint8_t p7:5,
869  reserved_p7:3;
870  uint8_t n7:5,
871  reserved_n7:3;
872  uint8_t p8:5,
873  reserved_p8:3;
874  uint8_t n8:5,
875  reserved_n8:3;
876  uint8_t ho_interval:5,
877  reserved_ho:3;
878  uint8_t reserved;
879 
880 #elif OSMO_IS_BIG_ENDIAN
881 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
882  uint8_t reserved_p5:3, p5:5;
883  uint8_t reserved_n5:3, n5:5;
884  uint8_t reserved_p6:3, p6:5;
885  uint8_t reserved_n6:3, n6:5;
886  uint8_t reserved_p7:3, p7:5;
887  uint8_t reserved_n7:3, n7:5;
888  uint8_t reserved_p8:3, p8:5;
889  uint8_t reserved_n8:3, n8:5;
890  uint8_t reserved_ho:3, ho_interval:5;
891  uint8_t reserved;
892 #endif
893 }__attribute__ ((packed));
894 
896 #if OSMO_IS_LITTLE_ENDIAN
897  uint8_t bsic:6,
898  reserved0:2;
899  uint8_t bcch_freq:5,
900  ba_used:1,
901  s:1,
902  reserved1:1;
903 #elif OSMO_IS_BIG_ENDIAN
904 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
905  uint8_t reserved0:2, bsic:6;
906  uint8_t reserved1:1, s:1, ba_used:1, bcch_freq:5;
907 #endif
908 }__attribute__ ((packed));
909 
911 #if OSMO_IS_LITTLE_ENDIAN
912  uint8_t rxlev_min_def:6,
913  reserved_rxlev_min_def:2;
914  uint8_t ho_margin_def:5,
915  reserved_ho_margin_def:3;
916  uint8_t ms_txpwr_max_def:5,
917  reserved_ms_txpwr_max_def:3;
918 #elif OSMO_IS_BIG_ENDIAN
919 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
920  uint8_t reserved_rxlev_min_def:2, rxlev_min_def:6;
921  uint8_t reserved_ho_margin_def:3, ho_margin_def:5;
922  uint8_t reserved_ms_txpwr_max_def:3, ms_txpwr_max_def:5;
923 #endif
924 }__attribute__ ((packed));
925 
927 #if OSMO_IS_LITTLE_ENDIAN
928  uint8_t sdcch_ho_gsm:1,
929  sdcch_ho_umts:1,
930  reserved:6;
931 #elif OSMO_IS_BIG_ENDIAN
932 /* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */
933  uint8_t reserved:6, sdcch_ho_umts:1, sdcch_ho_gsm:1;
934 #endif
935 }__attribute__ ((packed));
936 
938  uint8_t meas_rep_mode;
939  uint32_t meas_mode_flags;
940  struct ipac_preproc_ave_cfg ms_ave_cfg[3];
941  struct ipac_preproc_ave_cfg ave_cfg;
942  struct ipac_preproc_ho_thresh ho_thresh;
943  struct ipac_preproc_ho_comp ho_comp;
944  struct ipac_preproc_ncell_dflts ncell_dflts;
945  struct ipac_preproc_ho_ctl_param ho_ctl_param;
946 };
947 
948 struct rsl_l1_info {
949 #if OSMO_IS_BIG_ENDIAN
950  uint8_t ms_pwr:5,
951  fpc_epc:1,
952  srr_sro:1,
953  reserved:1;
954  uint8_t ta;
955 #elif OSMO_IS_LITTLE_ENDIAN
956  uint8_t reserved:1,
957  srr_sro:1,
958  fpc_epc:1,
959  ms_pwr:5;
960  uint8_t ta;
961 #endif
962 } __attribute__ ((packed));
963 
Definition: gsm_08_58.h:170
Definition: gsm_08_58.h:346
Definition: gsm_08_58.h:255
Definition: gsm_08_58.h:246
Definition: gsm_08_58.h:204
Definition: gsm_08_58.h:366
Definition: gsm_08_58.h:177
uint8_t vbs_capable
Definition: gsm_08_58.h:526
Definition: gsm_08_58.h:168
Definition: gsm_08_58.h:218
uint8_t chan_rate
Definition: gsm_08_58.h:473
Definition: gsm_08_58.h:258
Definition: gsm_08_58.h:300
uint8_t oct3
Definition: gsm_08_58.h:517
Definition: gsm_08_58.h:189
Definition: gsm_08_58.h:432
Definition: gsm_08_58.h:172
Definition: gsm_08_58.h:274
Definition: gsm_08_58.h:320
Definition: gsm_08_58.h:325
Definition: gsm_08_58.h:723
Definition: gsm_08_58.h:208
Definition: gsm_08_58.h:265
Definition: gsm_08_58.h:372
Definition: gsm_08_58.h:213
RSL Channel Mode IF (Chapter 9.3.6)
Definition: gsm_08_58.h:469
Definition: gsm_08_58.h:198
Definition: gsm_08_58.h:937
Definition: gsm_08_58.h:686
Definition: gsm_08_58.h:230
uint8_t chan_rt
Definition: gsm_08_58.h:472
Definition: gsm_08_58.h:345
Definition: gsm_08_58.h:296
Definition: gsm_08_58.h:330
Definition: gsm_08_58.h:708
Definition: gsm_08_58.h:763
Definition: gsm_08_58.h:191
Definition: gsm_08_58.h:216
Definition: gsm_08_58.h:379
Definition: gsm_08_58.h:195
Definition: gsm_08_58.h:699
rsl_ipac_rtp_csd_format_d
Definition: gsm_08_58.h:697
Definition: gsm_08_58.h:221
RSL Channel Identification IE (Chapter 9.3.5)
Definition: gsm_08_58.h:512
Definition: gsm_08_58.h:187
Definition: gsm_08_58.h:199
Definition: gsm_08_58.h:313
Definition: gsm_08_58.h:326
Definition: gsm_08_58.h:271
uint8_t ie_chan
RSL_IE_CHAN_NR (tag)
Definition: gsm_08_58.h:100
Definition: gsm_08_58.h:352
Definition: gsm_08_58.h:180
Definition: gsm_08_58.h:290
Definition: gsm_08_58.h:190
Definition: gsm_08_58.h:173
Definition: gsm_08_58.h:319
rsl_rel_mode
Definition: gsm_08_58.h:734
Definition: gsm_08_58.h:309
Definition: gsm_08_58.h:159
Definition: gsm_08_58.h:299
Definition: gsm_08_58.h:278
Definition: gsm_08_58.h:351
Definition: gsm_08_58.h:439
Definition: gsm_08_58.h:197
Definition: gsm_08_58.h:747
Definition: gsm_08_58.h:765
Definition: gsm_08_58.h:378
rsl_mrpci_pwrclass
Definition: gsm_08_58.h:719
rsl_mrpci_phase
Definition: gsm_08_58.h:726
Definition: gsm_08_58.h:223
Definition: gsm_08_58.h:333
Definition: gsm_08_58.h:266
Definition: gsm_08_58.h:311
Definition: gsm_08_58.h:430
rsl_ipac_speech_mode_s
Definition: gsm_08_58.h:681
Definition: gsm_08_58.h:254
Definition: gsm_08_58.h:408
Definition: gsm_08_58.h:314
Definition: gsm_08_58.h:303
Definition: gsm_08_58.h:766
Definition: gsm_08_58.h:205
Definition: gsm_08_58.h:478
Definition: gsm_08_58.h:179
Definition: gsm_08_58.h:163
Definition: gsm_08_58.h:315
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:262
uint8_t msg_discr
message discriminator (ABIS_RSL_MDISC_*)
Definition: gsm_08_58.h:76
Definition: gsm_08_58.h:231
Definition: gsm_08_58.h:301
Definition: gsm_08_58.h:362
uint8_t spd_ind
Definition: gsm_08_58.h:471
Definition: gsm_08_58.h:371
Definition: gsm_08_58.h:207
Definition: gsm_08_58.h:224
Definition: gsm_08_58.h:407
Definition: gsm_08_58.h:201
uint8_t gsm_phase
Definition: gsm_08_58.h:526
union abis_rsl_link_id link_id_fields
RSL link identifier (value)
Definition: gsm_08_58.h:535
Definition: gsm_08_58.h:684
Definition: gsm_08_58.h:307
Definition: gsm_08_58.h:219
Definition: gsm_08_58.h:764
Definition: gsm_08_58.h:196
Definition: gsm_08_58.h:335
Definition: gsm_08_58.h:761
Definition: gsm_08_58.h:292
Definition: gsm_08_58.h:304
Definition: gsm_08_58.h:347
uint8_t chan_nr
Definition: gsm_08_58.h:102
Definition: gsm_08_58.h:232
Definition: gsm_08_58.h:700
Definition: gsm_08_58.h:729
Definition: gsm_08_58.h:178
Definition: gsm_08_58.h:771
Definition: gsm_08_58.h:237
Definition: gsm_08_58.h:698
abis_rsl_msgtype
Definition: gsm_08_58.h:157
Definition: gsm_08_58.h:222
Definition: gsm_08_58.h:433
Definition: gsm_08_58.h:289
Definition: gsm_08_58.h:318
Definition: gsm_08_58.h:727
Definition: gsm_08_58.h:338
Definition: gsm_08_58.h:373
Definition: gsm_08_58.h:160
Definition: gsm_08_58.h:677
uint8_t vgcs_capable
Definition: gsm_08_58.h:713
Definition: gsm_08_58.h:295
Definition: gsm_08_58.h:277
Definition: gsm_08_58.h:171
Definition: gsm_08_58.h:317
Definition: gsm_08_58.h:755
Definition: gsm_08_58.h:691
Definition: gsm_08_58.h:302
Definition: gsm_08_58.h:220
Definition: gsm_08_58.h:438
Definition: gsm_08_58.h:756
Definition: gsm_08_58.h:683
Definition: gsm_08_58.h:948
Definition: gsm_08_58.h:225
Definition: gsm_08_58.h:730
Definition: gsm_08_58.h:753
Definition: gsm_08_58.h:202
Definition: gsm_08_58.h:436
struct @91 chan_desc
Definition: gsm_08_58.h:329
Definition: gsm_08_58.h:169
uint8_t chan_nr
Definition: gsm_08_58.h:43
Definition: gsm_08_58.h:294
Definition: gsm_08_58.h:744
Definition: gsm_08_58.h:186
rsl_ipac_rtp_payload
Definition: gsm_08_58.h:672
Definition: gsm_08_58.h:161
Definition: gsm_08_58.h:749
Definition: gsm_08_58.h:350
uint8_t msg_type
message type (abis_rsl_msgtype)
Definition: gsm_08_58.h:77
Definition: gsm_08_58.h:249
uint8_t data[0]
actual payload data
Definition: gsm_08_58.h:528
Definition: gsm_08_58.h:327
Definition: gsm_08_58.h:181
Definition: gsm_08_58.h:214
Definition: gsm_08_58.h:298
Definition: gsm_08_58.h:310
Definition: gsm_08_58.h:758
Definition: gsm_08_58.h:238
Definition: gsm_08_58.h:349
Definition: gsm_08_58.h:35
Definition: gsm_08_58.h:759
Definition: gsm_08_58.h:423
Definition: gsm_08_58.h:369
Definition: gsm_08_58.h:336
Definition: gsm_08_58.h:188
Definition: gsm_08_58.h:682
uint8_t oct4
Definition: gsm_08_58.h:518
Definition: gsm_08_58.h:428
Definition: gsm_08_58.h:239
Definition: gsm_08_58.h:297
Definition: gsm_08_58.h:162
Definition: gsm_08_58.h:82
Definition: gsm_08_58.h:411
uint8_t chan_nr
Definition: gsm_08_58.h:516
Definition: gsm_08_58.h:367
Definition: gsm_08_58.h:355
Definition: gsm_08_58.h:895
Definition: gsm_08_58.h:337
Definition: gsm_08_58.h:245
Definition: gsm_08_58.h:328
Definition: gsm_08_58.h:340
Definition: gsm_08_58.h:374
Definition: gsm_08_58.h:241
Definition: gsm_08_58.h:368
Definition: gsm_08_58.h:417
Definition: gsm_08_58.h:234
Definition: gsm_08_58.h:242
Definition: gsm_08_58.h:228
Definition: gsm_08_58.h:910
Definition: gsm_08_58.h:437
Definition: gsm_08_58.h:264
Definition: gsm_08_58.h:344
Definition: gsm_08_58.h:212
Definition: gsm_08_58.h:200
Definition: gsm_08_58.h:354
Definition: gsm_08_58.h:425
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:356
Definition: gsm_08_58.h:206
Definition: gsm_08_58.h:236
MS/BS Power Control Thresholds.
Definition: gsm_08_58.h:788
Definition: gsm_08_58.h:253
Definition: gsm_08_58.h:211
Definition: gsm_08_58.h:305
Definition: gsm_08_58.h:675
Definition: gsm_08_58.h:293
Definition: gsm_08_58.h:418
Definition: gsm_08_58.h:324
uint8_t chan_nr
Definition: gsm_08_58.h:113
Definition: gsm_08_58.h:291
Definition: gsm_08_58.h:251
uint8_t len
Definition: gsm_04_11.h:466
Definition: gsm_08_58.h:263
Definition: gsm_08_58.h:267
Definition: gsm_08_58.h:760
Definition: gsm_08_58.h:359
Definition: gsm_08_58.h:429
Definition: gsm_08_58.h:435
Definition: gsm_08_58.h:722
Definition: gsm_08_58.h:741
Definition: gsm_08_58.h:182
Definition: gsm_08_58.h:185
Definition: gsm_08_58.h:217
Definition: gsm_08_58.h:693
Definition: gsm_08_58.h:210
Definition: gsm_08_58.h:767
Definition: gsm_08_58.h:427
Definition: gsm_08_58.h:235
Definition: gsm_08_58.h:745
Definition: gsm_08_58.h:416
Definition: gsm_08_58.h:288
Definition: gsm_08_58.h:376
Definition: gsm_08_58.h:167
Definition: gsm_08_58.h:272
Definition: gsm_08_58.h:754
Definition: gsm_08_58.h:120
Definition: gsm_08_58.h:343
Definition: gsm_08_58.h:674
Definition: gsm_08_58.h:248
Definition: gsm_08_58.h:243
Definition: gsm_08_58.h:377
Definition: gsm_08_58.h:480
Definition: gsm_08_58.h:706
Definition: gsm_08_58.h:109
Definition: gsm_08_58.h:341
Definition: gsm_08_58.h:331
Definition: gsm_08_58.h:743
RSL Cell Broadcast Command (Chapter 9.3.45)
Definition: gsm_08_58.h:628
rsl_ipac_rtp_csd_format_ir
Definition: gsm_08_58.h:704
Definition: gsm_08_58.h:736
Definition: gsm_08_58.h:268
Definition: gsm_08_58.h:98
Definition: gsm_08_58.h:926
Definition: gsm_08_58.h:183
Definition: gsm_08_58.h:375
rsl_cmod_spd
Definition: gsm_08_58.h:477
Definition: gsm_08_58.h:409
Definition: gsm_08_58.h:229
Definition: gsm_08_58.h:276
Definition: gsm_08_58.h:757
Definition: gsm_08_58.h:742
abis_rsl_ie
RSL Information Element Identifiers (Chapter 9.3)
Definition: gsm_08_58.h:287
Definition: gsm_08_58.h:426
PC Threshold Comparators.
Definition: gsm_08_58.h:831
Definition: gsm_08_58.h:724
Definition: gsm_08_58.h:752
Definition: gsm_08_58.h:440
uint8_t meas_rep_mode
Definition: gsm_08_58.h:938
Definition: gsm_08_58.h:746
Definition: gsm_08_58.h:735
Definition: gsm_08_58.h:244
Definition: gsm_08_58.h:342
uint8_t link_id
Definition: gsm_08_58.h:91
Definition: gsm_08_58.h:676
Definition: gsm_08_58.h:250
Definition: gsm_08_58.h:203
RSL common header.
Definition: gsm_08_58.h:75
Definition: gsm_08_58.h:166
Definition: gsm_08_58.h:273
rsl_ipac_embedded_ie
ip.access specific embedded information elements
Definition: gsm_08_58.h:740
Definition: gsm_08_58.h:164
Definition: gsm_08_58.h:334
Definition: gsm_08_58.h:712
union abis_rsl_chan_nr chan_nr_fields
RSL channel number (value)
Definition: gsm_08_58.h:530
abis_rsl_msgtype_ericsson
Ericsson vendor-specific RSL message types.
Definition: gsm_08_58.h:282
Definition: gsm_08_58.h:306
Definition: gsm_08_58.h:247
Definition: gsm_08_58.h:312
Definition: gsm_08_58.h:233
Definition: gsm_08_58.h:283
Definition: gsm_08_58.h:720
Definition: gsm_08_58.h:721
Definition: gsm_08_58.h:209
Definition: gsm_08_58.h:270
HO Threshold Comparators.
Definition: gsm_08_58.h:858
Definition: gsm_08_58.h:707
Definition: gsm_08_58.h:370
Definition: gsm_08_58.h:751
Definition: gsm_08_58.h:240
Definition: gsm_08_58.h:701
Definition: gsm_08_58.h:748
Definition: gsm_08_58.h:692
Definition: gsm_08_58.h:353
rsl_ipac_speech_mode_m
Definition: gsm_08_58.h:690
uint32_t meas_mode_flags
Definition: gsm_08_58.h:939
Definition: gsm_08_58.h:215
uint8_t ie_chan
RSL_IE_CHAN_NR (tag)
Definition: gsm_08_58.h:84
uint8_t iei
Definition: gsm_08_58.h:515
Definition: gsm_08_58.h:321
Definition: gsm_08_58.h:323
Definition: gsm_08_58.h:687
uint8_t dtx_dtu
Definition: gsm_08_58.h:470
Definition: gsm_08_58.h:256
Definition: gsm_08_58.h:308
Definition: gsm_08_58.h:364
Definition: gsm_08_58.h:176
Definition: gsm_08_58.h:363
uint8_t ie_chan
RSL_IE_CHAN_NR (tag)
Definition: gsm_08_58.h:111
Definition: gsm_08_58.h:424
Definition: gsm_08_58.h:365
Definition: gsm_08_58.h:339
Definition: gsm_08_58.h:479
Definition: gsm_08_58.h:194
struct abis_rsl_common_hdr c
Definition: gsm_08_58.h:526
Definition: gsm_08_58.h:252
Definition: gsm_08_58.h:434
uint8_t power_class
Definition: gsm_08_58.h:526
Handover Thresholds.
Definition: gsm_08_58.h:803
Definition: gsm_08_58.h:165
Definition: gsm_08_58.h:269
Definition: gsm_08_58.h:431
Definition: gsm_08_58.h:685
Definition: gsm_08_58.h:275
Definition: gsm_08_58.h:705
Definition: gsm_08_58.h:322
Definition: gsm_08_58.h:673
Definition: gsm_08_58.h:332
Definition: gsm_08_58.h:750