summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/host/layer23/include/osmocom/bb/common/settings.h15
-rw-r--r--src/host/layer23/src/common/settings.c2
-rw-r--r--src/host/layer23/src/mobile/mnccms.c18
-rw-r--r--src/host/layer23/src/mobile/vty_interface.c8
4 files changed, 10 insertions, 33 deletions
diff --git a/src/host/layer23/include/osmocom/bb/common/settings.h b/src/host/layer23/include/osmocom/bb/common/settings.h
index 38736112..ecebae86 100644
--- a/src/host/layer23/include/osmocom/bb/common/settings.h
+++ b/src/host/layer23/include/osmocom/bb/common/settings.h
@@ -6,6 +6,7 @@
#include <osmocom/core/utils.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/gsm/protocol/gsm_23_003.h>
+#include <osmocom/gsm/protocol/gsm_04_08.h>
#include <osmocom/gsm/gsm23003.h>
#include <osmocom/gsm/gsm48.h>
@@ -130,19 +131,11 @@ enum data_call_rate {
DATA_CALL_RATE_V110_14400,
};
-/* Connection Element (transparency) */
-enum data_call_ce {
- DATA_CALL_CE_TRANSP,
- DATA_CALL_CE_TRANSP_PREF,
- DATA_CALL_CE_NON_TRANSP,
- DATA_CALL_CE_NON_TRANSP_PREF,
-};
-
/* Data (CSD) call parameters */
struct data_call_params {
- enum data_call_type type;
- enum data_call_rate rate;
- enum data_call_ce ce;
+ enum data_call_type type;
+ enum data_call_rate rate;
+ enum gsm48_bcap_transp transp;
};
struct gsm_settings {
diff --git a/src/host/layer23/src/common/settings.c b/src/host/layer23/src/common/settings.c
index 3fca52d8..6ffb0959 100644
--- a/src/host/layer23/src/common/settings.c
+++ b/src/host/layer23/src/common/settings.c
@@ -138,7 +138,7 @@ int gsm_settings_init(struct osmocom_ms *ms)
set->call_params.data = (struct data_call_params) {
.type = DATA_CALL_TYPE_ISDN,
.rate = DATA_CALL_RATE_V110_9600,
- .ce = DATA_CALL_CE_TRANSP,
+ .transp = GSM48_BCAP_TR_TRANSP,
};
return 0;
diff --git a/src/host/layer23/src/mobile/mnccms.c b/src/host/layer23/src/mobile/mnccms.c
index c03eed5e..4bdb8454 100644
--- a/src/host/layer23/src/mobile/mnccms.c
+++ b/src/host/layer23/src/mobile/mnccms.c
@@ -218,7 +218,7 @@ static void mncc_set_bcap_data(struct gsm_mncc *mncc,
.rate_adaption = GSM48_BCAP_RA_V110_X30,
.sig_access = GSM48_BCAP_SA_I440_I450,
.async = 1,
- /* .transp is set below */
+ .transp = cp->transp,
.nr_data_bits = 8,
.parity = GSM48_BCAP_PAR_NONE,
.nr_stop_bits = 1,
@@ -284,22 +284,6 @@ static void mncc_set_bcap_data(struct gsm_mncc *mncc,
break;
}
- /* Connection element (octet 6c) */
- switch (cp->ce) {
- case DATA_CALL_CE_TRANSP:
- bcap->data.transp = GSM48_BCAP_TR_TRANSP;
- break;
- case DATA_CALL_CE_TRANSP_PREF:
- bcap->data.transp = GSM48_BCAP_TR_TR_PREF;
- break;
- case DATA_CALL_CE_NON_TRANSP:
- bcap->data.transp = GSM48_BCAP_TR_RLP;
- break;
- case DATA_CALL_CE_NON_TRANSP_PREF:
- bcap->data.transp = GSM48_BCAP_TR_RLP_PREF;
- break;
- }
-
/* FAX calls are special (see 3GPP TS 24.008, Annex D.3) */
if (call_type == GSM_CALL_T_DATA_FAX) {
bcap->data.rate_adaption = GSM48_BCAP_RA_NONE;
diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c
index 62937680..05a20e48 100644
--- a/src/host/layer23/src/mobile/vty_interface.c
+++ b/src/host/layer23/src/mobile/vty_interface.c
@@ -741,14 +741,14 @@ DEFUN(call_params_data_ce,
if (!strcmp(argv[1], "transparent")) {
if (argc > 2)
- cp->ce = DATA_CALL_CE_TRANSP_PREF;
+ cp->transp = GSM48_BCAP_TR_TR_PREF;
else
- cp->ce = DATA_CALL_CE_TRANSP;
+ cp->transp = GSM48_BCAP_TR_TRANSP;
} else if (!strcmp(argv[1], "non-transparent")) {
if (argc > 2)
- cp->ce = DATA_CALL_CE_NON_TRANSP_PREF;
+ cp->transp = GSM48_BCAP_TR_RLP_PREF;
else
- cp->ce = DATA_CALL_CE_NON_TRANSP;
+ cp->transp = GSM48_BCAP_TR_RLP;
} else { /* should not happen */
return CMD_WARNING;
}