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

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I6a12c9ee12f8df8b4fc0976dd593152dc1195718 </div>
<div style="display:none"> Gerrit-Change-Number: 19082 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>