aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/rsl.c
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-06-29 12:20:28 +0200
committerpespin <pespin@sysmocom.de>2021-07-05 08:03:08 +0000
commitae783bcb0e74a74e8bdd3453a2c681a4aadadda3 (patch)
treebcc848270c740118f0cf446779b121c7a1ddbeb2 /src/common/rsl.c
parenta4b90739898a9cf652c8365518b87b01806d5e9c (diff)
Support SDCCH8 in osmo dyn ts
Diffstat (limited to 'src/common/rsl.c')
-rw-r--r--src/common/rsl.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c
index 8043f989..57a95a15 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -1425,6 +1425,7 @@ static int dyn_ts_l1_reconnect(struct gsm_bts_trx_ts *ts, struct msgb *msg)
switch (ts->dyn.pchan_want) {
case GSM_PCHAN_TCH_F:
case GSM_PCHAN_TCH_H:
+ case GSM_PCHAN_SDCCH8_SACCH8C:
break;
case GSM_PCHAN_PDCH:
/* Only the first lchan matters for PDCH */
@@ -1448,14 +1449,23 @@ static int dyn_ts_l1_reconnect(struct gsm_bts_trx_ts *ts, struct msgb *msg)
static enum gsm_phys_chan_config dyn_pchan_from_chan_nr(uint8_t chan_nr)
{
- uint8_t cbits = chan_nr & RSL_CHAN_NR_MASK;
+ uint8_t cbits = chan_nr >> 3;
switch (cbits) {
- case RSL_CHAN_Bm_ACCHs:
+ case ABIS_RSL_CHAN_NR_CBITS_Bm_ACCHs:
return GSM_PCHAN_TCH_F;
- case RSL_CHAN_Lm_ACCHs:
- case (RSL_CHAN_Lm_ACCHs + RSL_CHAN_NR_1):
+ case ABIS_RSL_CHAN_NR_CBITS_Lm_ACCHs(0):
+ case ABIS_RSL_CHAN_NR_CBITS_Lm_ACCHs(1):
return GSM_PCHAN_TCH_H;
- case RSL_CHAN_OSMO_PDCH:
+ case ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(0):
+ case ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(1):
+ case ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(2):
+ case ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(3):
+ case ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(4):
+ case ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(5):
+ case ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(6):
+ case ABIS_RSL_CHAN_NR_CBITS_SDCCH8_ACCH(7):
+ return GSM_PCHAN_SDCCH8_SACCH8C;
+ case ABIS_RSL_CHAN_NR_CBITS_OSMO_PDCH:
return GSM_PCHAN_PDCH;
default:
LOGP(DRSL, LOGL_ERROR,
@@ -3009,6 +3019,7 @@ static void osmo_dyn_ts_disconnected(struct gsm_bts_trx_ts *ts)
switch (ts->dyn.pchan_want) {
case GSM_PCHAN_TCH_F:
case GSM_PCHAN_TCH_H:
+ case GSM_PCHAN_SDCCH8_SACCH8C:
case GSM_PCHAN_PDCH:
break;
default: