From 2f8b9d25f8428980e35ed8f8b2dc44324bc4566a Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 18 Jun 2017 11:12:13 +0300 Subject: Add vty command "radio-link-timeout infinite" for uplink rx testing When we are performing Rx sensitivity testing on a BTS, we want to deactivate the connection failure criterion / radio link timeout, i.e. no matter how many SACCH frames in uplink are failed to decode, the BTS should never close the channel. OsmoBTS Change-Id I736f21f6528db5c16fa80cdb905af20673797be5 covers a way how this behavior can be requested from the BTS via an OML attribute. This patch adds support to the BSC to actually set that attribute. Do not use this in production networks, as the BTS will keep open radio channels indefinitely even if the phone is gone and no longer transmitting anything. This is a pure testing feature. Change-Id: I6cb94e0f024934f7baeeb728ca9ed3042fbf16d2 --- openbsc/include/openbsc/gsm_04_08.h | 14 -------------- openbsc/include/openbsc/gsm_data.h | 3 +++ openbsc/include/openbsc/gsm_data_shared.h | 2 ++ 3 files changed, 5 insertions(+), 14 deletions(-) (limited to 'openbsc/include') diff --git a/openbsc/include/openbsc/gsm_04_08.h b/openbsc/include/openbsc/gsm_04_08.h index fe19ff441..a8b2de958 100644 --- a/openbsc/include/openbsc/gsm_04_08.h +++ b/openbsc/include/openbsc/gsm_04_08.h @@ -26,20 +26,6 @@ static inline struct msgb *gsm48_msgb_alloc_name(const char *name) name); } -static inline int get_radio_link_timeout(struct gsm48_cell_options *cell_options) -{ - return (cell_options->radio_link_timeout + 1) << 2; -} - -static inline void set_radio_link_timeout(struct gsm48_cell_options *cell_options, int value) -{ - if (value < 4) - value = 4; - if (value > 64) - value = 64; - cell_options->radio_link_timeout = (value >> 2) - 1; -} - /* config options controlling the behaviour of the lower leves */ void gsm0408_allow_everyone(int allow); void gsm0408_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause); diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index 5ab7c3fbd..a97405105 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -590,4 +590,7 @@ void bts_depend_clear(struct gsm_bts *bts, int dep); int bts_depend_check(struct gsm_bts *bts); int bts_depend_is_depedency(struct gsm_bts *base, struct gsm_bts *other); +int gsm_bts_get_radio_link_timeout(const struct gsm_bts *bts); +void gsm_bts_set_radio_link_timeout(struct gsm_bts *bts, int value); + #endif /* _GSM_DATA_H */ diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h index d3fd75700..4c71a075e 100644 --- a/openbsc/include/openbsc/gsm_data_shared.h +++ b/openbsc/include/openbsc/gsm_data_shared.h @@ -872,6 +872,8 @@ struct gsm_bts { } data; } si_common; bool early_classmark_allowed; + /* for testing only: Have an infinitely long radio link timeout */ + bool infinite_radio_link_timeout; /* do we use static (user-defined) system information messages? (bitmask) */ uint32_t si_mode_static; -- cgit v1.2.3