aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-07-22 13:25:05 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2021-07-23 13:36:03 +0200
commit56eda358741a871a519db52a7eae896af503a712 (patch)
treef467ad91b29faed42930dd8ced40c2f16e467d96 /include
parent8e3320ac4835aa4b7cbe71ac3b3ccd4a7c07f20e (diff)
Introduce VTY option to forbid use of TCH for non-voicecall signalling
Usual allocation mechansim, when some signalling channel is needed, first tries to reserve an SDCCH, and if all of them are exhausted, then attempts to reserve a TCH as a last resort. This, however, may cause TCH starvation under certain situations, for instance if there high load on other services (LU, SMS, etc.). Hence, it may be desirable for the operator to forbid reservation of TCH slots once SDCCH become exhausted. This commit is thus adding a VTY command which allows forbidding it. The default behavior (allow using TCH timeslots when SDCCHs are exhausted) is kept as before. The above mentioned prohibition is applied only to non-voicecall related signalling services. That's because voicecall services will end up requiring a TCH anyway, and forbidding reservation of TCH straighaway when SDCCHs are exhausted would mean no voice calls could be initiated while still TCHs would be available. Related: SYS#5548 Change-Id: Ib08027125145df26602069bfb51847063b0ccc0c
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/bsc/bts.h4
-rw-r--r--include/osmocom/bsc/gsm_data.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index 72ef8d974..1d566f5d1 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -454,6 +454,10 @@ struct gsm_bts {
* interference reported in RSL Resource Indication. */
bool chan_alloc_avoid_interf;
+ /* When true (default), TCH can be allocated to serve
+ * non-voicecall-related signalling services when SDCCHs are exhausted */
+ bool chan_alloc_allow_tch_for_signalling;
+
enum neigh_list_manual_mode neigh_list_manual_mode;
/* parameters from which we build SYSTEM INFORMATION */
struct {
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 063294432..5a20e72d2 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -419,6 +419,11 @@ enum gsm_chreq_reason_t {
GSM_CHREQ_REASON_PDCH,
};
+static inline bool gsm_chreq_reason_is_voicecall(enum gsm_chreq_reason_t reason)
+{
+ return reason == GSM_CHREQ_REASON_EMERG || reason == GSM_CHREQ_REASON_CALL;
+}
+
/* lchans 0..3 are SDCCH in combined channel configuration,
use 4 as magic number for BCCH hack - see osmo-bts-../oml.c:opstart_compl() */
#define CCCH_LCHAN 4