From 84d220abc1c577ac273c0612cc03812ba353983f Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 11 May 2023 09:30:47 +0200 Subject: [PATCH] Store "Channel rate and type" from RSL Channel Mode IE in BTS The RSL "Channel rate and type" field from the RSL Channel Mode IE in RSL_CHAN_ACTIV and RSL_MODE_MODIFY_REQ messages is the only place where the BSC differentiates between a normal TCH and the special TCH modes used in VGCS or VBS. Let's copy this field from the RSL message into the lchan state, so that BTS models can actually (in subsequent patches) reflect it when activating the L1. Change-Id: I6d531bf528bcb81f44d91336471a46ef790d7646 Related: OS#4851 --- include/osmo-bts/lchan.h | 2 ++ src/common/rsl.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/include/osmo-bts/lchan.h b/include/osmo-bts/lchan.h index d17bf96c9..80ebb0c80 100644 --- a/include/osmo-bts/lchan.h +++ b/include/osmo-bts/lchan.h @@ -141,6 +141,8 @@ struct gsm_lchan { uint8_t nr; /* The logical channel type */ enum gsm_chan_t type; + /* RSL channel rate and type */ + enum rsl_cmod_crt rsl_chan_rt; /* RSL channel mode */ enum rsl_cmod_spd rsl_cmode; /* If TCH, traffic channel mode */ diff --git a/src/common/rsl.c b/src/common/rsl.c index df1614962..b71310a4e 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -113,6 +113,7 @@ static int rsl_handle_chan_mod_ie(struct gsm_lchan *lchan, cm = (const struct rsl_ie_chan_mode *) TLVP_VAL(tp, RSL_IE_CHAN_MODE); lchan->rsl_cmode = cm->spd_ind; + lchan->rsl_chan_rt = cm->chan_rt; lchan->ts->trx->bts->dtxd = (cm->dtx_dtu & RSL_CMOD_DTXd) ? true : false; /* Octet 5: Channel rate and type */ @@ -120,6 +121,10 @@ static int rsl_handle_chan_mod_ie(struct gsm_lchan *lchan, case RSL_CMOD_CRT_SDCCH: case RSL_CMOD_CRT_TCH_Bm: case RSL_CMOD_CRT_TCH_Lm: + case RSL_CMOD_CRT_TCH_GROUP_Bm: + case RSL_CMOD_CRT_TCH_GROUP_Lm: + case RSL_CMOD_CRT_TCH_BCAST_Bm: + case RSL_CMOD_CRT_TCH_BCAST_Lm: break; case RSL_CMOD_CRT_OSMO_TCH_VAMOS_Bm: case RSL_CMOD_CRT_OSMO_TCH_VAMOS_Lm: