[MERGED] osmo-bts[master]: OML Add osmocom-specific way to deactivate radio link timeout

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Sun Jun 18 10:00:43 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: OML Add osmocom-specific way to deactivate radio link timeout
......................................................................


OML Add osmocom-specific way to deactivate radio link timeout

In some situations (e.g. when trying to do measurements/testing on the
BTS receiver / uplink) it is useful to have a way to disable the radio
link timeout and keep any channel open until deactivated, irrespective
of whether (valid) data is received or not.

This adds a related feature that can be activated by using an
osmocom-specific value of 0xff for the TS 12.21 Connection Failure
Criterion (9.4.14).

Change-Id: I736f21f6528db5c16fa80cdb905af20673797be5
---
M include/osmo-bts/gsm_data.h
M src/common/l1sap.c
M src/common/oml.c
3 files changed, 22 insertions(+), 6 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h
index 772a705..c513b27 100644
--- a/include/osmo-bts/gsm_data.h
+++ b/include/osmo-bts/gsm_data.h
@@ -94,7 +94,9 @@
 		uint8_t tc4_ctr;
 	} si;
 	struct gsm_time gsm_time;
-	uint8_t radio_link_timeout;
+	/* Radio Link Timeout counter. -1 disables timeout for
+	 * lab/measurement purpose */
+	int radio_link_timeout;
 
 	int ul_power_target;		/* Uplink Rx power target */
 
diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index fd8c54e..b9104b7 100644
--- a/src/common/l1sap.c
+++ b/src/common/l1sap.c
@@ -809,6 +809,10 @@
 {
 	struct gsm_bts_role_bts *btsb = lchan->ts->trx->bts->role;
 
+	/* Bypass radio link timeout if set to -1 */
+	if (btsb->radio_link_timeout < 0)
+		return;
+
 	/* if link loss criterion already reached */
 	if (lchan->s == 0) {
 		DEBUGP(DMEAS, "%s radio link counter S already 0.\n",
diff --git a/src/common/oml.c b/src/common/oml.c
index 982713e..fe35e85 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -627,17 +627,27 @@
 	if (TLVP_PRES_LEN(&tp, NM_ATT_CONN_FAIL_CRIT, 1)) {
 		const uint8_t *val = TLVP_VAL(&tp, NM_ATT_CONN_FAIL_CRIT);
 
-		if (TLVP_LEN(&tp, NM_ATT_CONN_FAIL_CRIT) < 2
-		 || val[0] != 0x01 || val[1] < 4 || val[1] > 64) {
+		switch (val[0]) {
+		case 0xFF: /* Osmocom specific Extension of TS 12.21 */
+			LOGP(DOML, LOGL_NOTICE, "WARNING: Radio Link Timeout "
+			     "explicitly disabled, only use this for lab testing!\n");
+			btsb->radio_link_timeout = -1;
+			break;
+		case 0x01: /* Based on uplink SACCH (radio link timeout) */
+			if (TLVP_LEN(&tp, NM_ATT_CONN_FAIL_CRIT) >= 2 &&
+			    val[1] >= 4 && val[1] <= 64) {
+				btsb->radio_link_timeout = val[1];
+				break;
+			}
+			/* fall-through */
+		case 0x02: /* Based on RXLEV/RXQUAL measurements */
+		default:
 			LOGP(DOML, LOGL_NOTICE, "Given Conn. Failure Criterion "
 				"not supported. Please use critetion 0x01 with "
 				"RADIO_LINK_TIMEOUT value of 4..64\n");
 			return oml_fom_ack_nack(msg, NM_NACK_PARAM_RANGE);
 		}
-		btsb->radio_link_timeout = val[1];
 	}
-	/* if val[0] != 0x01: can be 'operator dependent' and needs to
-	 * be parsed by bts driver */
 
 	/* 9.4.53 T200 */
 	if (TLVP_PRES_LEN(&tp, NM_ATT_T200, ARRAY_SIZE(btsb->t200_ms))) {

-- 
To view, visit https://gerrit.osmocom.org/2946
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I736f21f6528db5c16fa80cdb905af20673797be5
Gerrit-PatchSet: 2
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list