diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2023-10-11 05:14:19 +0700 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2023-11-02 14:41:23 +0700 |
commit | e73a604de0ed5af7b7ef4c61ad3a92ec7a062ee8 (patch) | |
tree | 8e5951f5acaad9cad660fd934ec5095c22482257 /src/host/layer23/include/osmocom/bb/common | |
parent | 011308cbcc1cb4f0b93bf6b9c04513f59c3b2d93 (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.h | 44 | ||||
-rw-r--r-- | src/host/layer23/include/osmocom/bb/common/support.h | 8 |
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; |