eliminate lchan->rsl_cmode

Related: SYS#5315 OS#4940
Change-Id: I1c167b22bb6638a929488d093bde0f1a5fb227ad
This commit is contained in:
Neels Hofmeyr 2021-04-29 14:47:19 +02:00
parent 8a2156543b
commit 3625c90c22
5 changed files with 26 additions and 43 deletions

View File

@ -668,7 +668,6 @@ struct gsm_lchan {
/* The logical channel type */
enum gsm_chan_t type;
/* RSL channel mode */
enum rsl_cmod_spd rsl_cmode;
enum lchan_csd_mode csd_mode;
/* Power levels for MS and BTS */
uint8_t bs_power;
@ -1390,4 +1389,6 @@ struct gsm_power_ctrl_params {
extern const struct gsm_power_ctrl_params power_ctrl_params_def;
enum rsl_cmod_spd chan_mode_to_rsl_cmod_spd(enum gsm48_chan_mode chan_mode);
#endif /* _GSM_DATA_H */

View File

@ -364,12 +364,11 @@ static int channel_mode_from_lchan(struct rsl_ie_chan_mode *cm,
cm->dtx_dtu |= RSL_CMOD_DTXd;
/* set TCH Speech/Data */
cm->spd_ind = lchan->rsl_cmode;
if (lchan->rsl_cmode == RSL_CMOD_SPD_SIGN &&
ch_mode_rate->chan_mode != GSM48_CMODE_SIGN)
LOGP(DRSL, LOGL_ERROR, "unsupported: rsl_mode == signalling, "
"but tch_mode != signalling\n");
cm->spd_ind = chan_mode_to_rsl_cmod_spd(ch_mode_rate->chan_mode);
if (cm->spd_ind < 0) {
LOGP(DRSL, LOGL_ERROR, "unsupported: chan_mode = 0x%02x\n", ch_mode_rate->chan_mode);
return cm->spd_ind;
}
switch (lchan->type) {
case GSM_LCHAN_SDCCH:

View File

@ -678,24 +678,6 @@ int gsm48_rx_rr_modif_ack(struct msgb *msg)
return -1;
}
/* update the channel type */
switch (mod->mode) {
case GSM48_CMODE_SIGN:
msg->lchan->rsl_cmode = RSL_CMOD_SPD_SIGN;
break;
case GSM48_CMODE_SPEECH_V1:
case GSM48_CMODE_SPEECH_EFR:
case GSM48_CMODE_SPEECH_AMR:
msg->lchan->rsl_cmode = RSL_CMOD_SPD_SPEECH;
break;
case GSM48_CMODE_DATA_14k5:
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_6k0:
case GSM48_CMODE_DATA_3k6:
msg->lchan->rsl_cmode = RSL_CMOD_SPD_DATA;
break;
}
return 0;
}

View File

@ -1059,3 +1059,22 @@ const struct gsm_power_ctrl_params power_ctrl_params_def = {
.h_reqt = 6, /* TODO: investigate a reasonable default value */
},
};
enum rsl_cmod_spd chan_mode_to_rsl_cmod_spd(enum gsm48_chan_mode chan_mode)
{
switch (chan_mode) {
case GSM48_CMODE_SIGN:
return RSL_CMOD_SPD_SIGN;
case GSM48_CMODE_SPEECH_V1:
case GSM48_CMODE_SPEECH_EFR:
case GSM48_CMODE_SPEECH_AMR:
return RSL_CMOD_SPD_SPEECH;
case GSM48_CMODE_DATA_14k5:
case GSM48_CMODE_DATA_12k0:
case GSM48_CMODE_DATA_6k0:
case GSM48_CMODE_DATA_3k6:
return RSL_CMOD_SPD_DATA;
default:
return -EINVAL;
}
}

View File

@ -653,24 +653,6 @@ static void lchan_fsm_wait_ts_ready_onenter(struct osmo_fsm_inst *fi, uint32_t p
}
}
switch (info->ch_mode_rate.chan_mode) {
case GSM48_CMODE_SIGN:
lchan->rsl_cmode = RSL_CMOD_SPD_SIGN;
break;
case GSM48_CMODE_SPEECH_V1:
case GSM48_CMODE_SPEECH_EFR:
case GSM48_CMODE_SPEECH_AMR:
lchan->rsl_cmode = RSL_CMOD_SPD_SPEECH;
break;
default:
lchan_fail("Not implemented: cannot activate for chan mode %s",
gsm48_chan_mode_name(info->ch_mode_rate.chan_mode));
return;
}
use_mgwep_ci = lchan_use_mgw_endpoint_ci_bts(lchan);
LOG_LCHAN(lchan, LOGL_INFO,