Change in osmo-ttcn3-hacks[master]: pcu: Introduce test TC_mcs_max_dl

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Thu Nov 12 20:14:42 UTC 2020


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21128 )


Change subject: pcu: Introduce test TC_mcs_max_dl
......................................................................

pcu: Introduce test TC_mcs_max_dl

Change-Id: If6c58cc18b537c4a1354f1b8263db8321347fbd7
---
M pcu/PCU_Tests.ttcn
1 file changed, 53 insertions(+), 12 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/28/21128/1

diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 779d430..c35c478 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -868,14 +868,25 @@
 }
 
 /* Verify scheduling of multiple Downlink data blocks, enough to reach CS4 */
-function f_dl_data_exp_cs(template CodingScheme exp_cs := ?) runs on RAW_PCU_Test_CT {
-	var octetstring data := f_rnd_octstring(1000);
+function f_dl_data_exp_cs(template CodingScheme exp_final_cs := ?, template MSRadioAccessCapabilityV_BSSGP ms_racap := omit) runs on RAW_PCU_Test_CT {
+	var octetstring data := f_rnd_octstring(1400);
 	var RlcmacDlBlock prev_dl_block, dl_block;
 	var uint32_t ack_fn;
 	var uint32_t fn;
 	var GprsMS ms;
-	var integer tx_data_remain := 5;
+	var integer tx_data_remain := 10;
 	var integer bsn := 0;
+	var boolean using_egprs := f_rlcmac_cs_mcs_is_mcs(valueof(exp_final_cs));
+	var integer bsn_mod;
+	var template CodingScheme exp_tmp_csmcs;
+
+	if (using_egprs) {
+		exp_tmp_csmcs := mcs_egprs_any;
+		bsn_mod := 2048;
+	} else {
+		exp_tmp_csmcs := cs_gprs_any;
+		bsn_mod := 128;
+	}
 
 	/* Establish BSSGP connection to the PCU */
 	f_bssgp_establish();
@@ -884,14 +895,14 @@
 	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
 
 	/* SGSN sends some DL data, PCU will page on CCCH (PCH) */
-	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+	BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, ms_racap));
 	f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH);
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS */
 	f_sleep(X2002);
 
-	for (var integer i := 0; i < 250; i := i + 1) {
-		bsn := i mod 128;
+	for (var integer i := 0; i < 800; i := i + 1) {
+		bsn := i mod bsn_mod;
 		f_rx_rlcmac_dl_block(dl_block, fn);
 
 		if (match(dl_block, tr_RLCMAC_DUMMY_CTRL)) {
@@ -899,15 +910,15 @@
 			break;
 		}
 
-		f_rlcmac_dl_block_exp_data(dl_block, ?, bsn, cs_gprs_any);
+		f_rlcmac_dl_block_exp_data(dl_block, ?, bsn, exp_tmp_csmcs);
 
 		/* Keep Ack/Nack description updated */
-		f_acknackdesc_ack_block(ms.dl_tbf.acknack_desc, dl_block);
+		f_dltbf_ack_block(ms.dl_tbf, dl_block);
 
 		/* TDMA frame number on which we are supposed to send the ACK */
-		if (dl_block.data.mac_hdr.mac_hdr.rrbp_valid) {
+		if (f_dl_block_rrbp_valid(dl_block)) {
 			ack_fn := f_dl_block_ack_fn(dl_block, fn);
-			f_ms_tx_ul_block(ms, ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf.tfi, ms.dl_tbf.acknack_desc), ack_fn);
+			f_ms_tx_ul_block(ms, f_dltbf_ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf, using_egprs), ack_fn);
 			if (tx_data_remain != 0) {
 				/* Submit more data from time to time to keep the TBF ongoing */
 				BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
@@ -917,8 +928,8 @@
 		prev_dl_block := dl_block;
 	}
 
-	bsn := (bsn + 127) mod 128; /* previous bsn: bsn -1 */
-	f_rlcmac_dl_block_exp_data(prev_dl_block, ?, bsn, exp_cs);
+	bsn := (bsn + (bsn_mod-1)) mod bsn_mod; /* previous bsn: bsn -1 */
+	f_rlcmac_dl_block_exp_data(prev_dl_block, ?, bsn, exp_final_cs);
 
 
 	f_shutdown(__BFILE__, __LINE__, final := true);
@@ -1150,6 +1161,35 @@
 	f_shutdown(__BFILE__, __LINE__, final := true);
 }
 
+/* Verify DL MCS above "mcs max" set by VTY is never used */
+testcase TC_mcs_max_dl() runs on RAW_PCU_Test_CT {
+	/* Initialize NS/BSSGP side */
+	f_init_bssgp();
+	/* Initialize GPRS MS side */
+	f_init_gprs_ms();
+
+	/* Initialize the PCU interface abstraction */
+	f_init_raw(testcasename());
+
+	/* Set maximum allowed DL CS to 3 */
+	g_mcs_initial_dl := 1;
+	g_mcs_max_dl := 3;
+	f_pcuvty_set_allowed_cs_mcs();
+	f_pcuvty_set_link_quality_ranges();
+
+	var MultislotCap_GPRS_BSSGP mscap_gprs := {
+		gprsmultislotclass := '00011'B,
+		gprsextendeddynalloccap := '0'B
+	};
+	var MultislotCap_EGPRS_BSSGP mscap_egprs := {
+		egprsmultislotclass := '00011'B,
+		egprsextendeddynalloccap := '0'B
+	};
+	var MSRadioAccessCapabilityV_BSSGP ms_racap := { valueof(ts_RaCapRec_BSSGP('0001'B /* E-GSM */, mscap_gprs, mscap_egprs)) };
+
+	f_dl_data_exp_cs(f_rlcmac_block_int2cs_mcs(g_mcs_max_dl, true), ms_racap);
+}
+
 /* Verify PCU drops TBF after some time of inactivity. */
 testcase TC_t3169() runs on RAW_PCU_Test_CT {
 	var PCUIF_info_ind info_ind;
@@ -3222,6 +3262,7 @@
 	execute( TC_mcs_initial_ul() );
 	execute( TC_mcs_max_ul() );
 	execute( TC_mcs_initial_dl() );
+	execute( TC_mcs_max_dl() );
 	execute( TC_t3169() );
 	execute( TC_t3193() );
 	execute( TC_countdown_procedure() );

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21128
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: If6c58cc18b537c4a1354f1b8263db8321347fbd7
Gerrit-Change-Number: 21128
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201112/b0e11475/attachment.htm>


More information about the gerrit-log mailing list