From 41b4dd8957d900feec67a09f02040605269bede5 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Wed, 22 Jul 2020 14:00:56 +0700 Subject: [PATCH] library/RLCMAC_CSN1_Types: fix definition of PacketDlAssignment - s/PacketDlAssignmentRel1999SubStruct/PktDlAssR99EGPRS/g, - fix Additions in Release 1999 (missing spare bit), - fix RLC_MODE field (it takes 1 bit, not 2), - fix PRESENCE(p0) attribute (defined twice). Change-Id: I98efe66bf43853b580f38bed36487fa10a53298a --- library/RLCMAC_CSN1_Types.ttcn | 52 +++++++++++++++++++++------------- library/RLCMAC_Templates.ttcn | 9 ++---- 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn index 00b6f2db1..4ebdd751a 100644 --- a/library/RLCMAC_CSN1_Types.ttcn +++ b/library/RLCMAC_CSN1_Types.ttcn @@ -122,14 +122,6 @@ module RLCMAC_CSN1_Types { TenTlli tlli }; - type record PacketDlAssignmentRel1999SubStruct { - EgprsWindowSize window_size, - BIT2 link_quality_meas_mode, - BIT1 bep_period2_present, - BIT4 bep_period2 optional - } with { - variant (bep_period2) "PRESENCE(bep_period2_present = '1'B)" - }; /* 11.2.7 Packet Downlink Assignment */ type record PacketDlAssignment { PageMode page_mode, @@ -138,7 +130,7 @@ module RLCMAC_CSN1_Types { GlobalTfiOrTlli tfi_or_tlli, BIT1 egprs2('0'B), /* TODO: implement union with egprs2 */ BIT2 mac_mode, - BIT2 rlc_mode, + BIT1 rlc_mode, BIT1 control_ack, BIT8 timeslot_alloc, PacketTimingAdvance pkt_ta, @@ -154,29 +146,51 @@ module RLCMAC_CSN1_Types { PowerControlParameters pwr_ctrl optional, BIT1 tbf_starting_time_present, StartingFnDesc tbf_starting_time optional, - BIT1 release1999('1'B), - BIT1 sub_present, - PacketDlAssignmentRel1999SubStruct sub optional, - BIT1 pkt_ext_ta_present, - BIT2 pkt_ext_ta optional, - BIT1 compact_reduced_ma_present, - COMPACTreducedMA compact_reduced_ma optional - /* TODO: Additions for REL-5 */ + /* The value '1' was allocated in an earlier version of the protocol */ + BIT1 spare ('0'B), + /* Rel-{99,5,6,7,9,10,12,14} Additions (Matrioshka) */ + PktDlAssRelAdditions rel_additions optional } with { variant (persistence_levels) "PRESENCE(pres1 = '1'B)" variant (p0) "PRESENCE(p0_present = '1'B)" - variant (p0) "PRESENCE(p0_present = '1'B)" variant (reserved) "PRESENCE(p0_present = '1'B)" variant (pr_mode) "PRESENCE(p0_present = '1'B)" variant (freq_par) "PRESENCE(freq_par_present = '1'B)" variant (dl_tfi_assignment) "PRESENCE(dl_tfi_ass_present = '1'B)" variant (pwr_ctrl) "PRESENCE(pwr_ctrl_present = '1'B)" variant (tbf_starting_time) "PRESENCE(tbf_starting_time_present = '1'B)" - variant (sub) "PRESENCE(sub_present = '1'B)" + }; + + private type record PktDlAssRelAdditions { + BIT1 rel99_presence, // 0/1 + PktDlAssR99Additions rel99 optional + } with { + variant (rel99) "PRESENCE(rel99_presence = '1'B)" + }; + + private type record PktDlAssR99Additions { + BIT1 egprs_present, + PktDlAssR99EGPRS egprs optional, + BIT1 pkt_ext_ta_present, + BIT2 pkt_ext_ta optional, + BIT1 compact_reduced_ma_present, + COMPACTreducedMA compact_reduced_ma optional + /* TODO: Additions for REL-5 */ + } with { + variant (egprs) "PRESENCE(egprs_present = '1'B)" variant (pkt_ext_ta) "PRESENCE(pkt_ext_ta_present = '1'B)" variant (compact_reduced_ma) "PRESENCE(compact_reduced_ma_present = '1'B)" }; + private type record PktDlAssR99EGPRS { + EgprsWindowSize window_size, + BIT2 link_quality_meas_mode, + BIT1 bep_period2_present, + BIT4 bep_period2 optional + } with { + variant (bep_period2) "PRESENCE(bep_period2_present = '1'B)" + }; + /* 11.2.29 Packet Uplink Assignment */ type record O_Gtfi { BIT1 presence ('0'B), diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn index a217f46bb..5bdc17d48 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -504,13 +504,8 @@ module RLCMAC_Templates { pwr_ctrl := *, tbf_starting_time_present := ?, tbf_starting_time := *, - release1999 := '1'B, - sub_present := ?, - sub := *, - pkt_ext_ta_present := ?, - pkt_ext_ta := *, - compact_reduced_ma_present := ?, - compact_reduced_ma := * + spare := '0'B, + rel_additions := * } } }