aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/libbsc/bts_ipaccess_nanobts_omlattr.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-06-18 11:12:13 +0300
committerHarald Welte <laforge@gnumonks.org>2017-06-18 12:56:00 +0300
commit2f8b9d25f8428980e35ed8f8b2dc44324bc4566a (patch)
tree3c817ad2ce141ca6fa8437d34dfa1f4d5c3e3418 /openbsc/src/libbsc/bts_ipaccess_nanobts_omlattr.c
parent8b1a2f8cd7a81c6b8c7cdb0963dcf89de7c46100 (diff)
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
Diffstat (limited to 'openbsc/src/libbsc/bts_ipaccess_nanobts_omlattr.c')
-rw-r--r--openbsc/src/libbsc/bts_ipaccess_nanobts_omlattr.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/openbsc/src/libbsc/bts_ipaccess_nanobts_omlattr.c b/openbsc/src/libbsc/bts_ipaccess_nanobts_omlattr.c
index 0291129d0..473e1caea 100644
--- a/openbsc/src/libbsc/bts_ipaccess_nanobts_omlattr.c
+++ b/openbsc/src/libbsc/bts_ipaccess_nanobts_omlattr.c
@@ -38,6 +38,7 @@ struct msgb *nanobts_attr_bts_get(struct gsm_bts *bts)
{
struct msgb *msgb;
uint8_t buf[256];
+ int rlt;
msgb = msgb_alloc(1024, "nanobts_attr_bts");
memcpy(buf, "\x55\x5b\x61\x67\x6d\x73", 6);
@@ -46,9 +47,16 @@ struct msgb *nanobts_attr_bts_get(struct gsm_bts *bts)
/* interference avg. period in numbers of SACCH multifr */
msgb_tv_put(msgb, NM_ATT_INTAVE_PARAM, 0x06);
- /* conn fail based on SACCH error rate */
- buf[0] = 0x01;
- buf[1] = get_radio_link_timeout(&bts->si_common.cell_options);
+ rlt = gsm_bts_get_radio_link_timeout(bts);
+ if (rlt == -1) {
+ /* Osmocom extension: Use infinite radio link timeout */
+ buf[0] = 0xFF;
+ buf[1] = 0x00;
+ } else {
+ /* conn fail based on SACCH error rate */
+ buf[0] = 0x01;
+ buf[1] = rlt;
+ }
msgb_tl16v_put(msgb, NM_ATT_CONN_FAIL_CRIT, 2, buf);
memcpy(buf, "\x1e\x24\x24\xa8\x34\x21\xa8", 7);