From 12cf3d908aefd7953fc7ec6b4fca8023c3072d9e Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Tue, 5 May 2020 00:19:50 +0700 Subject: BTS: manually compose Rest Octets for SI Type 3 and 4 Finally, we can get rid of hard-coded octetstrings and control every field of the Rest Octets we're sending to the IUT. Note that template 'ts_SI4_default' did not contain any Rest Octets at all, thus the GPRS indicator was (and still is) absent. This will be fixed in a follow up change. Change-Id: I0a95b34b495267edf1f48692e24fcd5ede8ccdd1 Signed-off-by: Vadim Yanitskiy --- library/GSM_RestOctets.ttcn | 50 +++++++++++++++++++++++++++++++++++++++++++++ library/Osmocom_Types.ttcn | 4 ++++ 2 files changed, 54 insertions(+) (limited to 'library') diff --git a/library/GSM_RestOctets.ttcn b/library/GSM_RestOctets.ttcn index 045d177e..531528cd 100644 --- a/library/GSM_RestOctets.ttcn +++ b/library/GSM_RestOctets.ttcn @@ -142,4 +142,54 @@ external function dec_SI4RestOctets(in octetstring stream) return SI4RestOctets with { extension "prototype(convert) decode(RAW)" }; +/* Basic templates to be extended in place */ +template (value) SI3RestOctets ts_SI3RestOctets := { + sel_params := { + presence := CSN1_L, + params := omit + }, + pwr_offset := { + presence := CSN1_L, + offset := omit + }, + si_2ter_ind := CSN1_L, + early_cm_ind := CSN1_L, + sched_where := { + presence := CSN1_L, + where := omit + }, + gprs_ind := { + presence := CSN1_L, + ind := omit + }, + umts_early_cm_ind := CSN1_L, + si2_quater_ind := { + presence := CSN1_L, + ind := omit + }, + iu_mode_ind := omit, + si21_ind := { + presence := CSN1_L, + pos := omit + } +} + +template (value) SI4RestOctets ts_SI4RestOctets := { + sel_params := { + presence := CSN1_L, + params := omit + }, + pwr_offset := { + presence := CSN1_L, + offset := omit + }, + gprs_ind := { + presence := CSN1_L, + ind := omit + }, + s_presence := CSN1_L, + s := omit +} + + } with { encode "RAW"; variant "FIELDORDER(msb)" } diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn index 3b2ca174..16395df0 100644 --- a/library/Osmocom_Types.ttcn +++ b/library/Osmocom_Types.ttcn @@ -40,6 +40,10 @@ module Osmocom_Types { const uint16_t c_UINT16_MAX := 65535; const uint32_t c_UINT32_MAX := 4294967295; + /* CSN.1 L/H placeholders */ + const BIT1 CSN1_L := '0'B; + const BIT1 CSN1_H := '1'B; + type record Arfcn { boolean pcs, uint15_t arfcn -- cgit v1.2.3