Change in osmo-ttcn3-hacks[master]: pcu: Verify CodingScheme of received data blocks

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/.

laforge gerrit-no-reply at lists.osmocom.org
Sun Mar 22 19:19:29 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17527 )

Change subject: pcu: Verify CodingScheme of received data blocks
......................................................................

pcu: Verify CodingScheme of received data blocks

Change-Id: I0a5247650548f8a03f7b025aae65652fb424c156
---
M library/RLCMAC_Types.ttcn
M pcu/PCU_Tests_RAW.ttcn
2 files changed, 76 insertions(+), 6 deletions(-)

Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve
  laforge: Looks good to me, approved



diff --git a/library/RLCMAC_Types.ttcn b/library/RLCMAC_Types.ttcn
index 8f9f2a5..dbcf4ae 100644
--- a/library/RLCMAC_Types.ttcn
+++ b/library/RLCMAC_Types.ttcn
@@ -41,6 +41,67 @@
 		return 0;
 	}
 
+	type enumerated CodingScheme {
+		CS_1,
+		CS_2,
+		CS_3,
+		CS_4,
+		MCS_1,
+		MCS_2,
+		MCS_3,
+		MCS_4,
+		MCS_5,
+		MCS_6,
+		MCS_7,
+		MCS_8,
+		MCS_9
+		//MCS5_7, ?
+		// MCS6_9 ?
+	};
+
+	function f_rlcmac_cs_mcs2block_len(CodingScheme cs_mcs) return uint32_t {
+		select (cs_mcs) {
+		case (CS_1) { return 23; }
+		case (CS_2) { return 34; }
+		case (CS_3) { return 40; }
+		case (CS_4) { return 54; }
+		case (MCS_1) { return 27; }
+		case (MCS_2) { return 33; }
+		case (MCS_3) { return 42; }
+		case (MCS_4) { return 49; }
+		case (MCS_5) { return 61; }
+		case (MCS_6) { return 79; }
+		case (MCS_7) { return 119; }
+		case (MCS_8) { return 143; }
+		case (MCS_9) { return 155; }
+		}
+		return 0;
+	}
+
+	function f_rlcmac_block_len2cs_mcs(uint32_t len) return CodingScheme {
+		select (len) {
+			case (23) { return CS_1; }
+			case (34) { return CS_2; }
+			case (40) { return CS_3; }
+			case (54) { return CS_4; }
+			case (27) { return MCS_1; }
+			case (33) { return MCS_2; }
+			case (42) { return MCS_3; }
+			case (49) { return MCS_4; }
+			case (60) { return MCS_5; }
+			case (61) { return MCS_5; }
+			case (78) { return MCS_6; }
+			case (79) { return MCS_6; }
+			case (118) { return MCS_7; }
+			case (119) { return MCS_7; }
+			case (142) { return MCS_8; }
+			case (143) { return MCS_8; }
+			case (154) { return MCS_9; }
+			case (155) { return MCS_9; }
+		}
+		return CS_1;
+	}
+
 	/* Partof DL RLC data block and DL RLC/MAC ctrl block */
 	type record DlMacHeader {
 		MacPayloadType	payload_type,
diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn
index ad89c69..2564617 100644
--- a/pcu/PCU_Tests_RAW.ttcn
+++ b/pcu/PCU_Tests_RAW.ttcn
@@ -419,12 +419,19 @@
 	}
 }
 
-private function f_rx_rlcmac_dl_block(out RlcmacDlBlock dl_block, out uint32_t dl_fn)
+private function f_rx_rlcmac_dl_block(out RlcmacDlBlock dl_block, out uint32_t dl_fn, template (present) CodingScheme exp_cs_mcs := ?)
 runs on RAW_PCU_Test_CT {
 	var PCUIF_Message pcu_msg;
 	f_pcuif_rx_data_req(pcu_msg);
 	dl_block := dec_RlcmacDlBlock(pcu_msg.u.data_req.data);
 	dl_fn := pcu_msg.u.data_req.fn;
+
+	var integer len := lengthof(pcu_msg.u.data_req.data);
+	var CodingScheme cs_mcs := f_rlcmac_block_len2cs_mcs(len)
+	if (not match(f_rlcmac_block_len2cs_mcs(len), exp_cs_mcs)) {
+		setverdict(fail, "Failed to match Coding Scheme exp ", exp_cs_mcs, " vs ", cs_mcs, " (", len, ")");
+		mtc.stop;
+	}
 }
 
 private function f_rx_rlcmac_dl_block_exp_ack_nack(out RlcmacDlBlock dl_block, out uint32_t poll_fn)
@@ -475,7 +482,7 @@
 	}
 }
 
-private function f_rx_rlcmac_dl_block_exp_data(out RlcmacDlBlock dl_block, out uint32_t ack_fn, octetstring data, template (present) uint7_t exp_bsn := ?)
+private function f_rx_rlcmac_dl_block_exp_data(out RlcmacDlBlock dl_block, out uint32_t ack_fn, octetstring data, template (present) uint7_t exp_bsn := ?, template (present) CodingScheme exp_cs := ?)
 runs on RAW_PCU_Test_CT {
 	var PCUIF_Message pcu_msg;
 	var uint32_t dl_fn;
@@ -1202,7 +1209,7 @@
 /* Test scenario where SGSN wants to send some data against MS and it is
  * answered by the MS on PDCH, so TBFs for downlink and later for uplink are created.
  */
-private function f_TC_mt_ping_pong(template (omit) MSRadioAccessCapabilityV_BSSGP ms_racap := omit) runs on RAW_PCU_Test_CT {
+private function f_TC_mt_ping_pong(template (omit) MSRadioAccessCapabilityV_BSSGP ms_racap := omit, template (present) CodingScheme exp_cs_mcs := ?) runs on RAW_PCU_Test_CT {
 	var GsmRrMessage rr_imm_ass;
 	var PacketUlAssign ul_tbf_ass;
 	var PacketDlAssign dl_tbf_ass;
@@ -1236,7 +1243,7 @@
 
 	/* Wait timer X2002 and DL block is available after CCCH IMM ASS: */
 	f_sleep(X2002);
-	f_rx_rlcmac_dl_block_exp_data(dl_block, sched_fn, data, 0);
+	f_rx_rlcmac_dl_block_exp_data(dl_block, sched_fn, data, 0, exp_cs_mcs);
 
 	/* ACK the DL block */
 	f_acknackdesc_ack_block(ack_nack_desc, dl_block.data.mac_hdr.hdr_ext.bsn, '1'B);
@@ -1265,7 +1272,8 @@
 }
 
 testcase TC_mt_ping_pong() runs on RAW_PCU_Test_CT {
-	f_TC_mt_ping_pong(omit);
+	var CodingScheme exp_cs_mcs := CS_1;
+	f_TC_mt_ping_pong(omit, exp_cs_mcs);
 }
 
 /* TC_mt_ping_pong, but DL-UNITDATA contains RA Access capability with (M)CS
@@ -1276,7 +1284,8 @@
 		gprsextendeddynalloccap := '0'B
 	} ;
 	var MSRadioAccessCapabilityV_BSSGP ms_racap := { valueof(ts_RaCapRec_BSSGP('0001'B /* E-GSM */, mscap_gprs, omit)) };
-	f_TC_mt_ping_pong(ms_racap);
+	var CodingScheme exp_cs_mcs := CS_2;
+	f_TC_mt_ping_pong(ms_racap, exp_cs_mcs);
 }
 
 /* Verify that if PCU doesn't get an ACK for first DL block after IMM ASS, it

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17527
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: I0a5247650548f8a03f7b025aae65652fb424c156
Gerrit-Change-Number: 17527
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <axilirator at gmail.com>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200322/1e404989/attachment.htm>


More information about the gerrit-log mailing list