summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/gsm/protocol/gsm_08_58.h4
-rw-r--r--src/gsm/rsl.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h
index 3ea4e638..1d4530d1 100644
--- a/include/osmocom/gsm/protocol/gsm_08_58.h
+++ b/include/osmocom/gsm/protocol/gsm_08_58.h
@@ -50,6 +50,8 @@ union abis_rsl_chan_nr {
#define ABIS_RSL_CHAN_NR_CBITS_RACH 0x11
#define ABIS_RSL_CHAN_NR_CBITS_PCH_AGCH 0x12
#define ABIS_RSL_CHAN_NR_CBITS_OSMO_PDCH 0x18 /*< non-standard, for dyn TS */
+#define ABIS_RSL_CHAN_NR_CBITS_OSMO_CBCH4 0x19 /*< non-standard, for CBCH/SDCCH4 */
+#define ABIS_RSL_CHAN_NR_CBITS_OSMO_CBCH8 0x1a /*< non-standard, for CBCH/SDCCH8 */
/* Link Identifier 9.3.2 */
union abis_rsl_link_id {
@@ -424,6 +426,8 @@ enum {
#define RSL_CHAN_RACH 0x88
#define RSL_CHAN_PCH_AGCH 0x90
#define RSL_CHAN_OSMO_PDCH 0xc0 /*< non-standard, for dyn TS */
+#define RSL_CHAN_OSMO_CBCH4 0xc8 /*< non-standard, for CBCH/SDCCH4 */
+#define RSL_CHAN_OSMO_CBCH8 0xd0 /*< non-standard, for CBCH/SDCCH8 */
/* Chapter 9.3.3 */
#define RSL_ACT_TYPE_INITIAL 0x00
diff --git a/src/gsm/rsl.c b/src/gsm/rsl.c
index 17774799..0409734e 100644
--- a/src/gsm/rsl.c
+++ b/src/gsm/rsl.c
@@ -209,6 +209,12 @@ int rsl_dec_chan_nr(uint8_t chan_nr, uint8_t *type, uint8_t *subch, uint8_t *tim
} else if ((chan_nr & 0xf8) == RSL_CHAN_OSMO_PDCH) {
*type = RSL_CHAN_OSMO_PDCH;
*subch = 0;
+ } else if ((chan_nr & 0xf8) == RSL_CHAN_OSMO_CBCH4) {
+ *type = RSL_CHAN_OSMO_CBCH4;
+ *subch = 0;
+ } else if ((chan_nr & 0xf8) == RSL_CHAN_OSMO_CBCH8) {
+ *type = RSL_CHAN_OSMO_CBCH8;
+ *subch = 0;
} else
return -EINVAL;
@@ -242,6 +248,10 @@ char *rsl_chan_nr_str_buf(char *buf, size_t buf_len, uint8_t chan_nr)
snprintf(buf, buf_len, "PCH/AGCH on TS%d", ts);
else if (cbits == 0x18)
snprintf(buf, buf_len, "PDCH on TS%d", ts);
+ else if (cbits == 0x19)
+ snprintf(buf, buf_len, "CBCH(SDCCH/4) on TS%d", ts);
+ else if (cbits == 0x1a)
+ snprintf(buf, buf_len, "CBCH(SDCCH/8) on TS%d", ts);
else
snprintf(buf, buf_len, "UNKNOWN on TS%d", ts);