diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-11-11 12:58:34 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-11-16 10:48:25 +0100 |
commit | db15fa7c06c9e4cf5d05919cda05e0de55c63f39 (patch) | |
tree | b8499d086a2c0c2cdfd23e76c2b675f02bf14f06 | |
parent | 2354d6a97dce31ee947ef4741fca0b2c97eda36e (diff) |
pcu: Introduce test TC_mcs_max_ul
Change-Id: I4cc77988832a2ae431ac3c5b85de940c2419bf09
-rw-r--r-- | pcu/PCU_Tests.ttcn | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 604db31a..adbc9c83 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1047,6 +1047,55 @@ testcase TC_mcs_initial_ul() runs on RAW_PCU_Test_CT { f_shutdown(__BFILE__, __LINE__, final := true); } +/* Test the maximum UL MCS set by VTY works fine */ +testcase TC_mcs_max_ul() runs on RAW_PCU_Test_CT { + var RlcmacDlBlock dl_block; + var EgprsChCodingCommand last_ch_coding; + var PollFnCtx pollctx; + var uint32_t unused_fn, sched_fn; + var GprsMS ms; + var MultislotCap_GPRS mscap_gprs := { + gprsmultislotclass := '00011'B, + gprsextendeddynalloccap := '0'B + }; + var MultislotCap_EGPRS mscap_egprs := { + egprsmultislotclass := '00011'B, + egprsextendeddynalloccap := '0'B + }; + var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, mscap_egprs)) }; + + + /* Initialize GPRS MS side */ + f_init_gprs_ms(); + ms := g_ms[0]; /* We only use first MS in this test */ + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename()); + + /* Set maximum allowed UL MCS to 5 */ + g_mcs_max_ul := 5; + f_pcuvty_set_allowed_cs_mcs(); + f_pcuvty_set_link_quality_ranges(); + + /* Send PACKET RESOURCE REQUEST to upgrade to EGPRS */ + pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap)); + /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */ + f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); + + ms.lqual_cb := 40*10; /* 40 dB */ + f_ms_tx_ul_data_block_multi(ms, 16); + + f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, unused_fn); + last_ch_coding := dl_block.ctrl.payload.u.ul_ack_nack.egprs.ch_coding_cmd; + + if (last_ch_coding != CH_CODING_MCS5) { + setverdict(fail, "Channel Coding does not match our expectations (MCS-5): ", last_ch_coding); + f_shutdown(__BFILE__, __LINE__); + } + + f_shutdown(__BFILE__, __LINE__, final := true); +} + /* Verify PCU drops TBF after some time of inactivity. */ testcase TC_t3169() runs on RAW_PCU_Test_CT { var PCUIF_info_ind info_ind; @@ -3117,6 +3166,7 @@ control { execute( TC_cs_max_dl() ); execute( TC_dl_cs1_to_cs4() ); execute( TC_mcs_initial_ul() ); + execute( TC_mcs_max_ul() ); execute( TC_t3169() ); execute( TC_t3193() ); execute( TC_countdown_procedure() ); |