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
changes/24/19924/2
Vadim Yanitskiy 2 years ago
parent 12941bd6b0
commit 27b3801bed
  1. 26
      library/GSM_RR_Types.ttcn
  2. 2
      sysinfo/gen_links.sh

@ -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;
)" }

@ -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

Loading…
Cancel
Save