Change in osmo-bts[master]: [VAMOS] l1sap_chan_act(): handle Osmocom specific TSC IE

laforge gerrit-no-reply at lists.osmocom.org
Fri Jun 4 20:04:15 UTC 2021


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/24329 )

Change subject: [VAMOS] l1sap_chan_act(): handle Osmocom specific TSC IE
......................................................................

[VAMOS] l1sap_chan_act(): handle Osmocom specific TSC IE

This is an Osmocom specific RSL IE that, if present, takes
precedence over the values indicated via the A-bis/OML.

Change-Id: I717e5b2a6ca5b4faeaab9cae4bb971907945871b
Related: SYS#4895, OS#4941
---
M src/common/rsl.c
1 file changed, 33 insertions(+), 0 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified



diff --git a/src/common/rsl.c b/src/common/rsl.c
index bb53aa5..516e609 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -134,6 +134,16 @@
 	case RSL_CMOD_CRT_TCH_Bm:
 	case RSL_CMOD_CRT_TCH_Lm:
 		break;
+	case RSL_CMOD_CRT_OSMO_TCH_VAMOS_Bm:
+	case RSL_CMOD_CRT_OSMO_TCH_VAMOS_Lm:
+		/* Make sure that Osmocom specific TSC IE is present */
+		if (!TLVP_PRES_LEN(tp, RSL_IE_OSMO_TRAINING_SEQUENCE, 2)) {
+			LOGPLCHAN(lchan, DRSL, LOGL_ERROR,
+				  "Training Sequence IE is not present\n");
+			*cause = RSL_ERR_MAND_IE_ERROR;
+			return -ENODEV;
+		}
+		break;
 	default:
 		LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "Channel Mode IE contains "
 			  "unknown 'Channel rate and type' value 0x%02x\n",
@@ -265,6 +275,24 @@
 	return 0;
 }
 
+/* Handle Osmocom specific TSC IE */
+static int rsl_handle_osmo_tsc_ie(struct gsm_lchan *lchan,
+				  const struct tlv_parsed *tp,
+				  uint8_t *cause)
+{
+	/* Osmocom specific IE indicating Training Sequence Code and Set */
+	if (TLVP_PRES_LEN(tp, RSL_IE_OSMO_TRAINING_SEQUENCE, 2)) {
+		const uint8_t *ie = TLVP_VAL(tp, RSL_IE_OSMO_TRAINING_SEQUENCE);
+		lchan->ts->tsc_set = ie[0] & 0x03; /* Range: 0..3 */
+		lchan->ts->tsc     = ie[1] & 0x07; /* Range: 0..7 */
+	} else {
+		lchan->ts->tsc = lchan->ts->tsc_oml;
+		lchan->ts->tsc_set = 0;
+	}
+
+	return 0;
+}
+
 
 /*
  * support
@@ -1482,6 +1510,8 @@
 			return rsl_tx_chan_act_nack(lchan, cause);
 		if (rsl_handle_chan_ident_ie(lchan, &tp, &cause) != 0)
 			return rsl_tx_chan_act_nack(lchan, cause);
+		if (rsl_handle_osmo_tsc_ie(lchan, &tp, &cause) != 0)
+			return rsl_tx_chan_act_nack(lchan, cause);
 	}
 
 	/* 9.3.7 Encryption Information */
@@ -1996,6 +2026,9 @@
 	/* 9.3.5 Channel Identification */
 	if (rsl_handle_chan_ident_ie(lchan, &tp, &cause) != 0)
 		return rsl_tx_mode_modif_nack(lchan, cause);
+	/* Osmocom specific TSC IE for VAMOS */
+	if (rsl_handle_osmo_tsc_ie(lchan, &tp, &cause) != 0)
+		return rsl_tx_mode_modif_nack(lchan, cause);
 
 	/* 9.3.7 Encryption Information */
 	if (TLVP_PRESENT(&tp, RSL_IE_ENCR_INFO)) {

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/24329
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I717e5b2a6ca5b4faeaab9cae4bb971907945871b
Gerrit-Change-Number: 24329
Gerrit-PatchSet: 9
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210604/5eca6a3d/attachment.htm>


More information about the gerrit-log mailing list