diff options
Diffstat (limited to 'library')
-rw-r--r-- | library/RLCMAC_Templates.ttcn | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn index be751d7..1774197 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -93,6 +93,46 @@ module RLCMAC_Templates { return CS_1; } + function f_rlcmac_block_ChCodingCommand2cs_mcs(ChCodingCommand chcc) return CodingScheme { + select (chcc) { + case (CH_CODING_CS1) { return CS_1; } + case (CH_CODING_CS2) { return CS_2; } + case (CH_CODING_CS3) { return CS_3; } + case (CH_CODING_CS4) { return CS_4; } + } + return CS_1; + } + + function f_rlcmac_block_EgprsChCodingCommand2cs_mcs(EgprsChCodingCommand echcc) return CodingScheme { + select (echcc) { + case (CH_CODING_MCS1) { return MCS_1; } + case (CH_CODING_MCS2) { return MCS_2; } + case (CH_CODING_MCS3) { return MCS_3; } + case (CH_CODING_MCS4) { return MCS_4; } + case (CH_CODING_MCS5) { return MCS_5; } + case (CH_CODING_MCS6) { return MCS_6; } + case (CH_CODING_MCS7) { return MCS_7; } + case (CH_CODING_MCS8) { return MCS_8; } + case (CH_CODING_MCS9) { return MCS_9; } + /* CH_CODING_MCS5_7 */ + /* CH_CODING_MCS6_9 */ + } + return MCS_1; + } + + /* 1 -> CS_1 / MCS_1, 2 -> CS_2 / MCS_2, etc. */ + function f_rlcmac_block_int2cs_mcs(integer n, boolean is_mcs) return CodingScheme { + var CodingScheme cs_mcs; + if (not is_mcs) { + int2enum(n - 1, cs_mcs); + return cs_mcs; + } else { + cs_mcs := MCS_0; + int2enum(enum2int(cs_mcs) + n, cs_mcs); + return cs_mcs; + } + } + /* Coding and Puncturing Scheme indicator field for Header type 1 in EGPRS TBF or EC TBF or downlink EGPRS2 TBF */ function f_rlcmac_cps_htype1_to_mcs(uint3_t cps) return CodingScheme { var CodingSchemeArray egprs_Header_type1_coding_puncturing_scheme_to_mcs := { |