osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/32367 )
Change subject: CSD: support 29k0, 32k0 transp data ......................................................................
CSD: support 29k0, 32k0 transp data
Related: OS#4393 Change-Id: I03fd3ca19b08d5cff8748ba9cf2f21d4befaf338 --- M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/data_rate_pref.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/lchan_rtp_fsm.c M src/osmo-bsc/lchan_select.c 6 files changed, 28 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/32367/1
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 6370942..37f0e81 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -456,6 +456,8 @@ case GSM48_CMODE_SPEECH_AMR: cm->chan_rate = RSL_CMOD_SP_GSM3; break; + case GSM48_CMODE_DATA_32k0: + case GSM48_CMODE_DATA_29k0: case GSM48_CMODE_DATA_14k5: case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: @@ -2695,6 +2697,8 @@ int ipacc_payload_type(enum gsm48_chan_mode tch_mode, enum gsm_chan_t type) { switch (gsm48_chan_mode_to_non_vamos(tch_mode)) { + case GSM48_CMODE_DATA_32k0: + case GSM48_CMODE_DATA_29k0: case GSM48_CMODE_DATA_14k5: case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 02ca29c..b631767 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -361,6 +361,8 @@
case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_14k5: + case GSM48_CMODE_DATA_29k0: + case GSM48_CMODE_DATA_32k0: case GSM48_CMODE_SPEECH_EFR: /* these services all explicitly require a TCH/F */ return type == GSM_LCHAN_TCH_F; @@ -378,6 +380,8 @@ static int chan_mode_to_ch_indctr(enum gsm48_chan_mode chan_mode) { switch (gsm48_chan_mode_to_non_vamos(chan_mode)) { + case GSM48_CMODE_DATA_32k0: + case GSM48_CMODE_DATA_29k0: case GSM48_CMODE_DATA_14k5: case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: diff --git a/src/osmo-bsc/data_rate_pref.c b/src/osmo-bsc/data_rate_pref.c index 443fea7..2c98169 100644 --- a/src/osmo-bsc/data_rate_pref.c +++ b/src/osmo-bsc/data_rate_pref.c @@ -55,6 +55,10 @@ static int gsm0808_data_rate_transp_to_gsm0408(enum gsm0808_data_rate_transp rate) { switch (rate) { + case GSM0808_DATA_RATE_TRANSP_32k0: + return GSM48_CMODE_DATA_32k0; + case GSM0808_DATA_RATE_TRANSP_28k8: + return GSM48_CMODE_DATA_29k0; case GSM0808_DATA_RATE_TRANSP_14k4: return GSM48_CMODE_DATA_14k5; case GSM0808_DATA_RATE_TRANSP_9k6: diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 012149a..1e132f4 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1034,6 +1034,8 @@ case GSM48_CMODE_SPEECH_EFR: case GSM48_CMODE_SPEECH_AMR: return RSL_CMOD_SPD_SPEECH; + case GSM48_CMODE_DATA_32k0: + case GSM48_CMODE_DATA_29k0: case GSM48_CMODE_DATA_14k5: case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: diff --git a/src/osmo-bsc/lchan_rtp_fsm.c b/src/osmo-bsc/lchan_rtp_fsm.c index 7e9c31f..8b6faad 100644 --- a/src/osmo-bsc/lchan_rtp_fsm.c +++ b/src/osmo-bsc/lchan_rtp_fsm.c @@ -871,6 +871,8 @@ static enum mgcp_codecs chan_mode_to_mgcp_codec(enum gsm48_chan_mode chan_mode, bool full_rate) { switch (gsm48_chan_mode_to_non_vamos(chan_mode)) { + case GSM48_CMODE_DATA_32k0: + case GSM48_CMODE_DATA_29k0: case GSM48_CMODE_DATA_14k5: case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c index 1e12d96..9e0da86 100644 --- a/src/osmo-bsc/lchan_select.c +++ b/src/osmo-bsc/lchan_select.c @@ -184,6 +184,8 @@ /* fall through */ case GSM48_CMODE_SPEECH_V1: case GSM48_CMODE_SPEECH_AMR: + case GSM48_CMODE_DATA_32k0: + case GSM48_CMODE_DATA_29k0: case GSM48_CMODE_DATA_14k5: case GSM48_CMODE_DATA_12k0: case GSM48_CMODE_DATA_6k0: