aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-11-11 12:58:34 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2020-11-16 10:48:25 +0100
commitdb15fa7c06c9e4cf5d05919cda05e0de55c63f39 (patch)
treeb8499d086a2c0c2cdfd23e76c2b675f02bf14f06
parent2354d6a97dce31ee947ef4741fca0b2c97eda36e (diff)
pcu: Introduce test TC_mcs_max_ul
-rw-r--r--pcu/PCU_Tests.ttcn50
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() );