osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/32369 )
Change subject: CSD: support non-transparent data rates ......................................................................
CSD: support non-transparent data rates
Implement gsm0808_data_rate_non_transp_to_gsm0408.
Related: OS#4393 Change-Id: Ib5f4bdf17a9833f65a0b623a033da838a2594d68 --- M src/osmo-bsc/data_rate_pref.c 1 file changed, 29 insertions(+), 4 deletions(-)
Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved
diff --git a/src/osmo-bsc/data_rate_pref.c b/src/osmo-bsc/data_rate_pref.c index 443fea7..44a733f 100644 --- a/src/osmo-bsc/data_rate_pref.c +++ b/src/osmo-bsc/data_rate_pref.c @@ -72,10 +72,23 @@ } }
-static int gsm0808_data_rate_non_transp_to_gsm0408(enum gsm0808_data_rate_non_transp rate) +static int gsm0808_data_rate_non_transp_to_gsm0408(enum gsm0808_data_rate_non_transp rate, bool full_rate) { - LOGP(DMSC, LOGL_ERROR, "%s is not implemented\n", __func__); /* FIXME */ - return -1; + switch (rate) { + case GSM0808_DATA_RATE_NON_TRANSP_12000_6000: + if (full_rate) + return GSM48_CMODE_DATA_12k0; + return GSM48_CMODE_DATA_6k0; + case GSM0808_DATA_RATE_NON_TRANSP_14k5: + return GSM48_CMODE_DATA_14k5; + case GSM0808_DATA_RATE_NON_TRANSP_12k0: + return GSM48_CMODE_DATA_12k0; + case GSM0808_DATA_RATE_NON_TRANSP_6k0: + return GSM48_CMODE_DATA_6k0; + default: + LOGP(DMSC, LOGL_ERROR, "Unsupported non-transparent data rate 0x%x\n", rate); + return -1; + } }
static int gsm0808_data_rate_non_transp_to_gsm0858(enum gsm0808_data_rate_non_transp rate, bool full_rate) @@ -142,7 +155,7 @@ return -1; ch_mode_rate->data_rate.nt = rc;
- rc = gsm0808_data_rate_non_transp_to_gsm0408(ct->data_rate); + rc = gsm0808_data_rate_non_transp_to_gsm0408(ct->data_rate, full_rate); if (rc == -1) return -1; ch_mode_rate->chan_mode = rc;