fixeria has submitted this change. (
https://gerrit.osmocom.org/c/osmocom-bb/+/34807?usp=email )
Change subject: mobile: mnccms: use constants from libosmogsm (gsm_04_08.h)
......................................................................
mobile: mnccms: use constants from libosmogsm (gsm_04_08.h)
Change-Id: I5ce59db39ad865620aaed2d778bc3710cf37bc3b
Related: OS#4396
---
M src/host/layer23/src/mobile/mnccms.c
1 file changed, 37 insertions(+), 24 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
pespin: Looks good to me, but someone else must approve
diff --git a/src/host/layer23/src/mobile/mnccms.c b/src/host/layer23/src/mobile/mnccms.c
index a068ee9..c20dd7a 100644
--- a/src/host/layer23/src/mobile/mnccms.c
+++ b/src/host/layer23/src/mobile/mnccms.c
@@ -22,6 +22,7 @@
#include <stdlib.h>
#include <osmocom/core/talloc.h>
+#include <osmocom/gsm/protocol/gsm_04_08.h>
#include <osmocom/bb/common/logging.h>
#include <osmocom/bb/common/osmocom_data.h>
@@ -84,7 +85,7 @@
static int8_t mncc_get_bearer(struct gsm_settings *set, uint8_t speech_ver)
{
switch (speech_ver) {
- case 4:
+ case GSM48_BCAP_SV_AMR_F:
if (set->full_v3)
LOGP(DMNCC, LOGL_INFO, " net suggests full rate v3\n");
else {
@@ -92,7 +93,7 @@
speech_ver = -1;
}
break;
- case 2:
+ case GSM48_BCAP_SV_EFR:
if (set->full_v2)
LOGP(DMNCC, LOGL_INFO, " net suggests full rate v2\n");
else {
@@ -100,7 +101,7 @@
speech_ver = -1;
}
break;
- case 0: /* mandatory */
+ case GSM48_BCAP_SV_FR: /* mandatory */
if (set->full_v1)
LOGP(DMNCC, LOGL_INFO, " net suggests full rate v1\n");
else {
@@ -108,7 +109,7 @@
speech_ver = -1;
}
break;
- case 5:
+ case GSM48_BCAP_SV_AMR_H:
if (set->half_v3)
LOGP(DMNCC, LOGL_INFO, " net suggests half rate v3\n");
else {
@@ -116,7 +117,7 @@
speech_ver = -1;
}
break;
- case 1:
+ case GSM48_BCAP_SV_HR:
if (set->half_v1)
LOGP(DMNCC, LOGL_INFO, " net suggests half rate v1\n");
else {
@@ -140,13 +141,13 @@
int i = 0;
mncc->fields |= MNCC_F_BEARER_CAP;
- mncc->bearer_cap.coding = 0;
+ mncc->bearer_cap.coding = GSM48_BCAP_CODING_GSM_STD;
if (set->ch_cap == GSM_CAP_SDCCH_TCHF_TCHH
&& (set->half_v1 || set->half_v3)) {
- mncc->bearer_cap.radio = 3;
+ mncc->bearer_cap.radio = GSM48_BCAP_RRQ_DUAL_FR;
LOGP(DMNCC, LOGL_INFO, " support TCH/H also\n");
} else {
- mncc->bearer_cap.radio = 1;
+ mncc->bearer_cap.radio = GSM48_BCAP_RRQ_FR_ONLY;
LOGP(DMNCC, LOGL_INFO, " support TCH/F only\n");
}
mncc->bearer_cap.speech_ctm = 0;
@@ -154,41 +155,41 @@
if (speech_ver < 0) {
/* if half rate is supported and preferred */
if (set->half_v3 && set->half && set->half_prefer) {
- mncc->bearer_cap.speech_ver[i++] = 5;
+ mncc->bearer_cap.speech_ver[i++] = GSM48_BCAP_SV_AMR_H;
LOGP(DMNCC, LOGL_INFO, " support half rate v3\n");
}
if (set->half_v1 && set->half && set->half_prefer) {
- mncc->bearer_cap.speech_ver[i++] = 1;
+ mncc->bearer_cap.speech_ver[i++] = GSM48_BCAP_SV_HR;
LOGP(DMNCC, LOGL_INFO, " support half rate v1\n");
}
/* if full rate is supported */
if (set->full_v3) {
- mncc->bearer_cap.speech_ver[i++] = 4;
+ mncc->bearer_cap.speech_ver[i++] = GSM48_BCAP_SV_AMR_F;
LOGP(DMNCC, LOGL_INFO, " support full rate v3\n");
}
if (set->full_v2) {
- mncc->bearer_cap.speech_ver[i++] = 2;
+ mncc->bearer_cap.speech_ver[i++] = GSM48_BCAP_SV_EFR;
LOGP(DMNCC, LOGL_INFO, " support full rate v2\n");
}
if (set->full_v1) { /* mandatory, so it's always true */
- mncc->bearer_cap.speech_ver[i++] = 0;
+ mncc->bearer_cap.speech_ver[i++] = GSM48_BCAP_SV_FR;
LOGP(DMNCC, LOGL_INFO, " support full rate v1\n");
}
/* if half rate is supported and not preferred */
if (set->half_v3 && set->half && !set->half_prefer) {
- mncc->bearer_cap.speech_ver[i++] = 5;
+ mncc->bearer_cap.speech_ver[i++] = GSM48_BCAP_SV_AMR_H;
LOGP(DMNCC, LOGL_INFO, " support half rate v3\n");
}
if (set->half_v1 && set->half && !set->half_prefer) {
- mncc->bearer_cap.speech_ver[i++] = 1;
+ mncc->bearer_cap.speech_ver[i++] = GSM48_BCAP_SV_HR;
LOGP(DMNCC, LOGL_INFO, " support half rate v1\n");
}
/* if specific speech_ver is given (it must be supported) */
} else
mncc->bearer_cap.speech_ver[i++] = speech_ver;
mncc->bearer_cap.speech_ver[i] = -1; /* end of list */
- mncc->bearer_cap.transfer = 0;
- mncc->bearer_cap.mode = 0;
+ mncc->bearer_cap.transfer = GSM48_BCAP_ITCAP_SPEECH;
+ mncc->bearer_cap.mode = GSM48_BCAP_TMOD_CIRCUIT;
}
/*
@@ -401,19 +402,21 @@
int i;
for (i = 0; data->bearer_cap.speech_ver[i] >= 0; i++) {
-
- temp = mncc_get_bearer(set,
- data->bearer_cap.speech_ver[i]);
- if (temp < 0)
- continue;
- if (temp == 5 || temp == 1) { /* half */
+ temp = mncc_get_bearer(set, data->bearer_cap.speech_ver[i]);
+ switch (temp) {
+ case GSM48_BCAP_SV_AMR_H:
+ case GSM48_BCAP_SV_HR:
/* only the first half rate */
if (speech_ver_half < 0)
speech_ver_half = temp;
- } else {
+ break;
+ default:
+ if (temp < 0)
+ continue;
/* only the first full rate */
if (speech_ver < 0)
speech_ver = temp;
+ break;
}
}
/* half and full given */
--
To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/34807?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I5ce59db39ad865620aaed2d778bc3710cf37bc3b
Gerrit-Change-Number: 34807
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged