Change in osmo-ttcn3-hacks[master]: library/GSM_RestOctets: initial SI2quater Rest Octets definition

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/.

fixeria gerrit-no-reply at lists.osmocom.org
Tue Jun 30 20:14:05 UTC 2020


fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19082 )


Change subject: library/GSM_RestOctets: initial SI2quater Rest Octets definition
......................................................................

library/GSM_RestOctets: initial SI2quater Rest Octets definition

Change-Id: I6a12c9ee12f8df8b4fc0976dd593152dc1195718
Related: SYS#4870
---
M library/GSM_RestOctets.ttcn
1 file changed, 342 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/82/19082/1

diff --git a/library/GSM_RestOctets.ttcn b/library/GSM_RestOctets.ttcn
index 531528c..73059de 100644
--- a/library/GSM_RestOctets.ttcn
+++ b/library/GSM_RestOctets.ttcn
@@ -1,7 +1,9 @@
 /**
  * GSM Rest Octets definitions as per 3GPP TS 44.018.
  *
+ * (C) 2020 by sysmocom s.f.m.c. GmbH <info at sysmocom.de>
  * (C) 2020 Vadim Yanitskiy <axilirator at gmail.com>
+ *
  * All rights reserved.
  *
  * Released under the terms of GNU General Public License, Version 2 or
@@ -15,6 +17,346 @@
 import from General_Types all;
 import from Osmocom_Types all;
 
+/* 10.5.2.33b SI 2quater Rest Octets */
+type record SI2quaterRestOctets {
+	BIT1			ba_ind,
+	BIT1			ba_3g_ind,
+	BIT1			mp_change_mark,
+	uint4_t			si2quater_index,
+	uint4_t			si2quater_count,
+
+	/* Measurement Parameters Description */
+	MeasParamsDescOpt	meas_params_desc,
+	/* GPRS specific parameters */
+	record {
+		GPRS_RealTimeDiffDescOpt	rt_diff_desc,
+		GPRS_BSICDescOpt		bsic_desc,
+		GPRS_ReportPrioDescOpt		rep_prio_desc,
+		MeasParamsDescOpt		meas_params_desc
+	} gprs,
+	/* NC Measurement Parameters Description */
+	NCMeasParamsOpt			nc_meas_params,
+	/* SI2quater Extension Information */
+	SI2quaterExtInfoOpt		ext_info,
+
+	/* 3G Neighbour Cell Description */
+	UTRAN_NeighDescOpt		utran_neigh_desc,
+	/* 3G Measurement Parameters Description */
+	UTRAN_MeasParamsDescOpt		utran_meas_params_desc,
+	/* GPRS 3G Measurement Parameters Description */
+	UTRAN_GPRSMeasParamsDescOpt	utran_gprs_meas_params_desc,
+
+	/* SI2quater Rel-{5,6,7,8,9,10} Additions (Matrioshka!) */
+	SI2quaterAdditions		rel_additions
+} with {
+	/* The TITAN's RAW encoder generates an octet-aligned octetstring,
+	 * so we should make sure that unused bits contain proper padding. */
+	variant "PADDING(yes), PADDING_PATTERN('00101011'B)"
+};
+
+/* Measurement Parameters Description */
+private type record MeasParamsDesc {
+	BIT1			report_type,
+	BIT2			serving_band_reporting
+} with { variant "" };
+
+private type record MeasParamsDescOpt {
+	BIT1			presence, // 0/1
+	MeasParamsDesc		desc optional
+} with {
+	variant (desc) "PRESENCE(presence = '1'B)"
+};
+
+/* GPRS Real Time Difference Description (not implemented) */
+private type record GPRS_RealTimeDiffDescOpt {
+	BIT1			presence ('0'B) // 0/1
+	// TODO: GPRS_RealTimeDiffDesc	desc optional
+} with { variant "" };
+
+/* GPRS BSIC Description (not implemented) */
+private type record GPRS_BSICDescOpt {
+	BIT1			presence ('0'B) // 0/1
+	// TODO: GPRS_BSICDesc		desc optional
+} with { variant "" };
+
+/* GPRS Report Priority Description (not implemented) */
+private type record GPRS_ReportPrioDescOpt {
+	BIT1			presence ('0'B) // 0/1
+	// TODO: GPRS_ReportPrioDesc	desc optional
+} with { variant "" };
+
+/* NC (Network Controlled?) Measurement Parameters */
+private type record NCMeasParams {
+	/* Network Control Order */
+	BIT2			nco,
+	BIT1			p_presence,
+	NCMeasPeriods		p optional
+} with {
+	variant (p) "PRESENCE(p_presence = '1'B)"
+};
+
+/* NC Measurement Periods */
+private type record NCMeasPeriods {
+	BIT3			non_drx_period,
+	BIT3			rep_period_i,
+	BIT3			rep_period_t
+} with { variant "" };
+
+private type record NCMeasParamsOpt {
+	BIT1			presence, // 0/1
+	NCMeasParams		params optional
+} with {
+	variant (params) "PRESENCE(presence = '1'B)"
+};
+
+/* SI2quater Extersion Information */
+private type record SI2quaterExtInfo {
+	uint8_t			len,
+	CCNSupportDescOpt	ccn_supp_desc optional,
+	bitstring		padding /* Octet alignment? */
+} with {
+	variant (len) "LENGTHTO(ccn_supp_desc,padding) + 1"
+	variant (len) "UNIT(bits)"
+};
+
+private type record SI2quaterExtInfoOpt {
+	BIT1			presence, // 0/1
+	SI2quaterExtInfo	info optional
+} with {
+	variant (info) "PRESENCE(presence = '1'B)"
+};
+
+/* CCN Support Description */
+private type record CCNSupportDesc {
+	uint7_t			nr_of_cells,
+	bitstring		ccn_supported
+} with {
+	variant (nr_of_cells) "LENGTHTO(ccn_supported)"
+	variant (nr_of_cells) "UNIT(bits)"
+};
+
+private type record CCNSupportDescOpt {
+	BIT1			presence, // 0/1
+	CCNSupportDesc		desc optional
+} with {
+	variant (desc) "PRESENCE(presence = '1'B)"
+};
+
+/* 3G Neighbour Cell Description */
+private type record UTRAN_NeighDesc {
+	BIT1			idx_start_3g_presence,
+	uint7_t			idx_start_3g optional,
+	BIT1			abs_idx_start_emr_presence,
+	uint7_t			abs_idx_start_emr optional,
+	UTRAN_FDDDescOpt	fdd_desc,
+	UTRAN_TDDDescOpt	tdd_desc
+} with {
+	variant (idx_start_3g) "PRESENCE(idx_start_3g_presence = '1'B)"
+	variant (abs_idx_start_emr) "PRESENCE(abs_idx_start_emr_presence = '1'B)"
+};
+
+private type record UTRAN_NeighDescOpt {
+	BIT1			presence, // 0/1
+	UTRAN_NeighDesc		desc optional
+} with {
+	variant (desc) "PRESENCE(presence = '1'B)"
+};
+
+/* UTRAN (3G) FDD/TDD Description (not implementaed).
+ *
+ * TODO: Repeated UTRAN FDD/TDD Neighbour Cells structure contains a variable length
+ * field, that needs to be computed using tables (see 9.1.54.1a and 9.1.54.1b) with
+ * magic numbers. This cannot be described uing TITAN's RAW codec attributes. */
+private type record UTRAN_FDDDescOpt {
+	BIT1				presence ('0'B) // 0/1
+	// UTRAN_FDDDesc		desc optional
+} with { variant "" };
+
+private type record UTRAN_TDDDescOpt {
+	BIT1				presence ('0'B) // 0/1
+	// UTRAN_TDDDesc		desc optional
+} with { variant "" };
+
+/* 3G Measurement Parameters Description (not implemented) */
+private type record UTRAN_MeasParamsDescOpt {
+	BIT1				presence ('0'B) // 0/1
+	// TODO: UTRAN_MeasParamsDesc	desc optional
+} with { variant "" };
+
+/* GPRS 3G Measurement Parameters Description (not implemented) */
+private type record UTRAN_GPRSMeasParamsDescOpt {
+	BIT1				presence ('0'B) // 0/1
+	// TODO: UTRAN_GPRSMeasParamsDesc	desc optional
+} with { variant "" };
+
+/* SI2quater Rel-{5,6,7,8,9,10} Additions */
+private type record SI2quaterAdditions {
+	BIT1				rel5_presence, // L/H
+	SI2quaterR5Additions		rel5 optional
+} with {
+	variant (rel5_presence) "CSN.1 L/H"
+	variant (rel5) "PRESENCE(rel5_presence = '1'B)"
+};
+
+/* SI2quater Rel-5 and Rel-{6,7,8,9,10} Additions */
+private type record SI2quaterR5Additions {
+	UMTS_AddMeasParamsDescOpt	umts_add_meas_params_desc,
+	UMTS_AddMeasParamsDesc2Opt	umts_add_meas_params_desc2,
+	BIT1				rel6_presence, // L/H
+	SI2quaterR6Additions		rel6 optional
+} with {
+	variant (rel6_presence) "CSN.1 L/H"
+	variant (rel6) "PRESENCE(rel6_presence = '1'B)"
+};
+
+/* 3G Additional Measurement Parameters Description */
+private type record UMTS_AddMeasParamsDesc {
+	BIT3				fdd_qmin_offset,
+	BIT4				fdd_rscpmin
+} with { variant "" };
+
+private type record UMTS_AddMeasParamsDescOpt {
+	BIT1				presence, // 0/1
+	UMTS_AddMeasParamsDesc		desc optional
+} with {
+	variant (desc) "PRESENCE(presence = '1'B)"
+};
+
+/* 3G Additional Measurement Parameters Description 2 */
+private type record UMTS_AddMeasParamsDesc2 {
+	/* FDD Reporting Threshold 2 */
+	BIT1				presence, // 0/1
+	uint6_t				threshold optional
+} with {
+	variant (threshold) "PRESENCE(presence = '1'B)"
+};
+
+private type record UMTS_AddMeasParamsDesc2Opt {
+	BIT1				presence, // 0/1
+	UMTS_AddMeasParamsDesc		desc optional
+} with {
+	variant (desc) "PRESENCE(presence = '1'B)"
+};
+
+/* SI2quater Rel-6 and Rel-{7,8,9,10} Additions */
+private type record SI2quaterR6Additions {
+	BIT1				umts_ccn_active,
+	BIT1				rel7_presence, // L/H
+	SI2quaterR7Additions		rel7 optional
+} with {
+	variant (rel7_presence) "CSN.1 L/H"
+	variant (rel7) "PRESENCE(rel7_presence = '1'B)"
+};
+
+/* SI2quater Rel-7 and Rel-{8,9,10} Additions */
+private type record SI2quaterR7Additions {
+	Rel7RepOffseThresholdOpt	rep700,
+	Rel7RepOffseThresholdOpt	rep810,
+	BIT1				rel8_presence, // L/H
+	SI2quaterR8Additions		rel8 optional
+} with {
+	variant (rel8_presence) "CSN.1 L/H"
+	variant (rel8) "PRESENCE(rel8_presence = '1'B)"
+};
+
+/* Additions in Rel-7: Reporting Offset & Threshold */
+private type record Rel7RepOffseThreshold {
+	BIT3			offset,
+	BIT3			threshold
+} with { variant "" };
+
+private type record Rel7RepOffseThresholdOpt {
+	BIT1				presence, // 0/1
+	Rel7RepOffseThreshold		val optional
+} with {
+	variant (val) "PRESENCE(presence = '1'B)"
+};
+
+/* SI2quater Rel-8 and Rel-{9,10} Additions */
+private type record SI2quaterR8Additions {
+	Rel8PrioEUTRANParamsDescOpt	prio_eutran_params_desc,
+	Rel8UTRANCSGDescOpt		utran_csg_desc,
+	Rel8EUTRANCSGDescOpt		eutran_csg_desc,
+	BIT1				rel9_presence // L/H
+	// TODO: SI2quaterR9Additions	rel9 optional
+} with {
+	variant (rel9_presence) "CSN.1 L/H"
+};
+
+/* Additions in Rel-8: Priority and E-UTRAN Parameters Description */
+private type record Rel8PrioEUTRANParamsDesc {
+	ServingCellPrioParamsDescOpt	sc_prio_params_desc,
+	UTRANPrioParamsDescOpt		utran_prio_params_desc,
+	EUTRANParamsDescOpt		eutran_params_desc
+} with { variant "" };
+
+private type record Rel8PrioEUTRANParamsDescOpt {
+	BIT1				presence, // 0/1
+	Rel8PrioEUTRANParamsDesc	desc optional
+} with {
+	variant (desc) "PRESENCE(presence = '1'B)"
+};
+
+/* Serving Cell Priority Parameters Description */
+private type record ServingCellPrioParamsDesc {
+	BIT3			geran_priority,
+	BIT4			thresh_priority_search,
+	BIT4			thresh_gsm_low,
+	BIT2			h_prio,
+	BIT2			t_reselection
+} with { variant "" };
+
+private type record ServingCellPrioParamsDescOpt {
+	BIT1				presence, // 0/1
+	ServingCellPrioParamsDesc	desc optional
+} with {
+	variant (desc) "PRESENCE(presence = '1'B)"
+};
+
+/* 3G Priority Parameters Description (not implemented) */
+private type record UTRANPrioParamsDescOpt {
+	BIT1				presence // 0/1
+	// TODO: UTRANPrioParamsDesc	desc optional
+} with { variant "" };
+
+/* TODO: E-UTRAN Parameters Description */
+private type record EUTRANParamsDesc {
+	BIT1				ccn_active,
+	BIT1				e_start,
+	BIT1				e_stop
+	/* TODO: 0 | 1 << E-UTRAN Measurement Parameters Description >> */
+	/* TODO: 0 | 1 << GPRS E-UTRAN Measurement Parameters Description >> */
+	/* TODO: 1 << Repeated E-UTRAN Neighbour Cells >> ** 0 */
+	/* TODO: 1 << Repeated E-UTRAN Not Allowed Cells >> ** 0 */
+	/* TODO: 1 << Repeated E-UTRAN PCID to TA mapping >> ** 0 */
+} with { variant "" };
+
+private type record EUTRANParamsDescOpt {
+	BIT1				presence, // 0/1
+	EUTRANParamsDesc		desc optional
+} with {
+	variant (desc) "PRESENCE(presence = '1'B)"
+};
+
+/* Additions in Rel-8: 3G CSG Description (not implemented) */
+private type record Rel8UTRANCSGDescOpt {
+	BIT1				presence // 0/1
+	// TODO: Rel8UTRANCSGDesc	desc optional
+} with { variant "" };
+
+/* Additions in Rel-8: E-UTRAN CSG Description (not implemented) */
+private type record Rel8EUTRANCSGDescOpt {
+	BIT1				presence // 0/1
+	// TODO: Rel8EUTRANCSGDesc	desc optional
+} with { variant "" };
+
+
+external function enc_SI2quaterRestOctets(in SI2quaterRestOctets ro) return octetstring
+	with { extension "prototype(convert) encode(RAW)" };
+external function dec_SI2quaterRestOctets(in octetstring stream) return SI2quaterRestOctets
+	with { extension "prototype(convert) decode(RAW)" };
+
+
 /* 10.5.2.34 SI 3 Rest Octets */
 type record SI3RestOctets {
 	SelectionParamsOpt	sel_params,

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

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I6a12c9ee12f8df8b4fc0976dd593152dc1195718
Gerrit-Change-Number: 19082
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200630/2e6e7a54/attachment.htm>


More information about the gerrit-log mailing list