fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/32027 ) Change subject: rsl: rsl_handle_chan_mod_ie(): add missing GSM48_CMODE_* values ...................................................................... rsl: rsl_handle_chan_mod_ie(): add missing GSM48_CMODE_* values Change-Id: Iec397f1ef4cb5ac1c48abf869f54e272ed0fbb55 Depends: libosmocore.git I6adda28698c0e479ef20f5d090c1f7f76a2ec97e Depends: libosmocore.git Ia6b428e5b6aaecf151cbfa980b89eff6d0fe6006 Related: OS#1572 --- M src/common/rsl.c 1 file changed, 53 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index c537998..8f1ff5d 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -161,14 +161,14 @@ lchan->tch_mode = GSM48_CMODE_SPEECH_AMR; break; case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM4): + lchan->tch_mode = GSM48_CMODE_SPEECH_V4; + break; case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM5): + lchan->tch_mode = GSM48_CMODE_SPEECH_V5; + break; case RSL_CMODE(RSL_CMOD_SPD_SPEECH, RSL_CMOD_SP_GSM6): - /* TODO: also handle RSL_CMOD_SP_{GSM4,GSM5,GSM6} */ - LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " - "unhandled speech coding algorithm 0x%02x\n", - cm->chan_rate); - *cause = RSL_ERR_IE_CONTENT; - return -ENOTSUP; + lchan->tch_mode = GSM48_CMODE_SPEECH_V6; + break; /* If octet 4 indicates non-transparent data */ case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_14k5): @@ -181,35 +181,59 @@ lchan->tch_mode = GSM48_CMODE_DATA_6k0; break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_43k5): + lchan->tch_mode = GSM48_CMODE_DATA_43k5; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NT_28k8): + /* 28.8 kbit/s services, 29.0 kbit/s radio interface rate */ + lchan->tch_mode = GSM48_CMODE_DATA_29k0; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_43k5_14k5): + lchan->tch_mode = GSM48_CMODE_DATA_43k5_14k5; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_29k0_14k5): + lchan->tch_mode = GSM48_CMODE_DATA_29k0_14k5; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_43k5_29k0): + lchan->tch_mode = GSM48_CMODE_DATA_43k5_29k0; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_14k5_43k5): + lchan->tch_mode = GSM48_CMODE_DATA_14k5_43k5; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_14k5_29k0): + lchan->tch_mode = GSM48_CMODE_DATA_14k5_29k0; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_NTA_29k0_43k5): - /* TODO: also handle other non-transparent data rates */ - LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " - "unhandled non-transparent CSD data rate 0x%02x\n", - cm->chan_rate & 0x3f); - *cause = RSL_ERR_IE_CONTENT; - return -ENOTSUP; + lchan->tch_mode = GSM48_CMODE_DATA_29k0_43k5; + break; /* If octet 4 indicates transparent data */ case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_32000): + /* 32.0 kbit/s services, 32.0 kbit/s radio interface rate */ + lchan->tch_mode = GSM48_CMODE_DATA_32k0; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_29000): + /* 29.0 kbit/s services, 29.0 kbit/s radio interface rate */ + lchan->tch_mode = GSM48_CMODE_DATA_29k0; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_14400): + /* 14.4 kbit/s services, 14.5 kbit/s radio interface rate */ + lchan->tch_mode = GSM48_CMODE_DATA_14k5; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_9600): + /* 9.6 kbit/s services, 12.0 kbit/s radio interface rate */ + lchan->tch_mode = GSM48_CMODE_DATA_12k0; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_4800): + /* 4.8 kbit/s services, 6.0 kbit/s radio interface rate */ + lchan->tch_mode = GSM48_CMODE_DATA_6k0; + break; case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_2400): case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_1200): case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_600): case RSL_CMODE(RSL_CMOD_SPD_DATA, RSL_CMOD_CSD_T_1200_75): - LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " - "unhandled transparent CSD data rate 0x%02x\n", - cm->chan_rate & 0x3f); - *cause = RSL_ERR_IE_CONTENT; - return -ENOTSUP; + /* 2.4 kbit/s *and less* services, 3.6 kbit/s radio interface rate */ + lchan->tch_mode = GSM48_CMODE_DATA_3k6; + break; default: LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains " -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/32027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iec397f1ef4cb5ac1c48abf869f54e272ed0fbb55 Gerrit-Change-Number: 32027 Gerrit-PatchSet: 3 Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: pespin <pespin@sysmocom.de> Gerrit-MessageType: merged