diff options
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_08_58.h | 4 | ||||
-rw-r--r-- | src/gsm/rsl.c | 10 |
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); |