From 27b3801bed0ad36324a1ffddfb16715865155acb Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Tue, 1 Sep 2020 05:14:46 +0700 Subject: [PATCH] library/GSM_RR_Types: add minimalistic AssignmentCommand Unfortunately, the existing implementation [1] is somewhat incomplete and unfriendly to build templates on: - some fields holding integer numbers defined as BITx, so we would have to do bit2int() / int2bit(); - some bit-map fields defined as octetstrings; - some fields are not decoded at all (raw octetstrings). Let's work this around by defining a minimalistic implementation of (RR) Assignment Command with all mandatory and some optional fields. Reuse some IEs directly from MobileL3_RRM_Types. [1] titan.ProtocolModules.MobileL3_v13.4.0 MobileL3_RRM_Types.PDU_RRM_AssignmentCommand_NW_MS Change-Id: If1a5244a688abed6e6de2bf3f6e19e0e28129ea5 Related: SYS#4868, OS#4545 --- library/GSM_RR_Types.ttcn | 26 ++++++++++++++++++++++++++ sysinfo/gen_links.sh | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn index 59fe6d5a7..e4c0d5796 100644 --- a/library/GSM_RR_Types.ttcn +++ b/library/GSM_RR_Types.ttcn @@ -17,6 +17,7 @@ module GSM_RR_Types { import from GSM_Types all; import from RLCMAC_CSN1_Types all; import from MobileL3_CommonIE_Types all; + import from MobileL3_RRM_Types all; /* Table 10.4.1 of Section 10.4 / 3GPP TS 44.018 */ type enumerated RrMessageType { @@ -671,6 +672,29 @@ module GSM_RR_Types { type record of NcellReport NcellReports; + /* 3GPP TS 44.018, section 9.1.2 (minimalistic implementation) */ + type record AssignmentCommand { + ChannelDescription chan_desc, + PowerCommand_V power_cmd, + FrequencyList_TLV freq_list_at optional, + CellChannelDescription_TV cell_chan_desc optional, + /* TODO: Multislot Allocation IE */ + ChannelMode_TV chan1_mode optional, + ChannelMode_TV chan2_mode optional, + /* TODO: Mode of Channel Set 3..8 IE */ + MobileAllocationTLV mobile_allocation optional + /* TODO: more optional IEs... */ + } with { + variant "TAG( + freq_list_at, elementIdentifier = '05'O; + cell_chan_desc, elementIdentifier = '62'O; + chan1_mode, elementIdentifier = '63'O; + chan2_mode, elementIdentifier = '11'O; + mobile_allocation, iei = '72'O; + )" + }; + + /* 9.1.18 */ type record ImmediateAssignment { DedicatedModeOrTbf ded_or_tbf, @@ -828,6 +852,7 @@ module GSM_RR_Types { type union RrL3Union { PagingResponse paging_response, MeasurementReport meas_rep, + AssignmentCommand ass_cmd, octetstring other }; @@ -837,6 +862,7 @@ module GSM_RR_Types { } with { variant (payload) "CROSSTAG( paging_response, header.message_type = PAGING_RESPONSE; meas_rep, header.message_type = MEASUREMENT_REPORT; + ass_cmd, header.message_type = ASSIGNMENT_COMMAND; other, OTHERWISE; )" } diff --git a/sysinfo/gen_links.sh b/sysinfo/gen_links.sh index 0648e7b86..fa3cd33a3 100755 --- a/sysinfo/gen_links.sh +++ b/sysinfo/gen_links.sh @@ -9,7 +9,7 @@ FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc gen_links $DIR $FILES DIR=$BASEDIR/titan.ProtocolModules.MobileL3_v13.4.0/src -FILES="MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn" +FILES="MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn MobileL3_RRM_Types.ttcn" gen_links $DIR $FILES DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src