pcu: Introduce test TC_n3101_max_t3169

This test currently fails to pass in master osmo-pcu (and latest) due to
T3169 not being implemented exactly as per specs (due to limitations in
detecting lost UL blocks with assigned USF).

Related: OS#5033
Change-Id: I56177850f084cdaf4fcac63ebdcdff9cef4e7a5d
diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn
index 5266743..57cd837 100644
--- a/pcu/GPRS_Components.ttcn
+++ b/pcu/GPRS_Components.ttcn
@@ -701,6 +701,20 @@
 	return 0; /* make compiler happy */
 }
 
+function f_rlcmac_dl_block_get_usf(RlcmacDlBlock dl_block)
+runs on MS_BTS_IFACE_CT return uint3_t {
+	if (ischosen(dl_block.data)) {
+		return dl_block.data.mac_hdr.mac_hdr.usf;
+	} else if (ischosen(dl_block.data_egprs)) {
+		return dl_block.data_egprs.mac_hdr.usf;
+	} else { /* Ctrl block */
+		return dl_block.ctrl.mac_hdr.usf;
+	}
+	setverdict(fail, "DlBlock doesn't contain a USF:", dl_block);
+	f_shutdown(__BFILE__, __LINE__);
+	return 0; /* make compiler happy */
+}
+
 /* Get the Chan coding command from a dl block containing PACCH UL Assignment */
 function f_rlcmac_dl_block_get_assigned_ul_cs_mcs(RlcmacDlBlock dl_block)
 runs on MS_BTS_IFACE_CT return CodingScheme {