summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include/osmocom/bb/common
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-10-11 05:14:19 +0700
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-11-02 14:41:23 +0700
commite73a604de0ed5af7b7ef4c61ad3a92ec7a062ee8 (patch)
tree8e5951f5acaad9cad660fd934ec5095c22482257 /src/host/layer23/include/osmocom/bb/common
parent011308cbcc1cb4f0b93bf6b9c04513f59c3b2d93 (diff)
mobile: add support for Circuit Switched Data calls
This patch implements the signalling part for mobile originating and mobile terminating CSD calls. The user plane interface is to be implemented in follow-up patches. Change-Id: I1995fa0a7a68d9b980852b664d472d4633777ac6 Related: OS#4396
Diffstat (limited to 'src/host/layer23/include/osmocom/bb/common')
-rw-r--r--src/host/layer23/include/osmocom/bb/common/settings.h44
-rw-r--r--src/host/layer23/include/osmocom/bb/common/support.h8
2 files changed, 52 insertions, 0 deletions
diff --git a/src/host/layer23/include/osmocom/bb/common/settings.h b/src/host/layer23/include/osmocom/bb/common/settings.h
index 3b9473f9..468e8cd1 100644
--- a/src/host/layer23/include/osmocom/bb/common/settings.h
+++ b/src/host/layer23/include/osmocom/bb/common/settings.h
@@ -1,6 +1,8 @@
#ifndef _settings_h
#define _settings_h
+#include <stdbool.h>
+
#include <osmocom/core/utils.h>
#include <osmocom/core/linuxlist.h>
#include <osmocom/gsm/protocol/gsm_23_003.h>
@@ -82,6 +84,35 @@ struct test_sim_settings {
} locigprs;
};
+enum data_call_type {
+ DATA_CALL_TYPE_ISDN,
+ DATA_CALL_TYPE_ANALOG,
+};
+
+enum data_call_rate {
+ DATA_CALL_RATE_V110_300,
+ DATA_CALL_RATE_V110_1200,
+ DATA_CALL_RATE_V110_2400,
+ DATA_CALL_RATE_V110_4800,
+ DATA_CALL_RATE_V110_9600,
+ 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;
+};
+
struct gsm_settings {
char layer2_socket_path[128];
char sap_socket_path[128];
@@ -161,6 +192,14 @@ struct gsm_settings {
uint8_t ch_cap; /* channel capability */
int8_t min_rxlev_dbm; /* min dBm to access */
+ /* CSD modes */
+ bool csd_tch_f144;
+ bool csd_tch_f96;
+ bool csd_tch_f48;
+ bool csd_tch_h48;
+ bool csd_tch_f24;
+ bool csd_tch_h24;
+
/* support for ASCI */
bool vgcs; /* support of VGCS */
bool vbs; /* support of VBS */
@@ -192,6 +231,11 @@ struct gsm_settings {
/* ASCI settings */
bool uplink_release_local;
bool asci_allow_any;
+
+ /* call parameters */
+ struct {
+ struct data_call_params data;
+ } call_params;
};
struct gsm_settings_abbrev {
diff --git a/src/host/layer23/include/osmocom/bb/common/support.h b/src/host/layer23/include/osmocom/bb/common/support.h
index 2fae57ec..b0c71f5a 100644
--- a/src/host/layer23/include/osmocom/bb/common/support.h
+++ b/src/host/layer23/include/osmocom/bb/common/support.h
@@ -91,6 +91,14 @@ struct gsm_support {
uint8_t half_v1;
uint8_t half_v3;
+ /* CSD modes */
+ uint8_t csd_tch_f144;
+ uint8_t csd_tch_f96;
+ uint8_t csd_tch_f48;
+ uint8_t csd_tch_h48;
+ uint8_t csd_tch_f24;
+ uint8_t csd_tch_h24;
+
/* EDGE / UMTS / CDMA */
uint8_t edge_ms_sup;
uint8_t edge_psk_sup;