pcu: Use BS_CV_MAX in f_tx_rlcmac_ul_n_blocks

Also increment BSN with each new submitted packet.

Change-Id: I685d1535154197bb85e18875e0a4d41122a24fa0
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 044d368..a550650 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -136,6 +136,9 @@
 	var uint8_t g_mcs_max_dl := 9;
 	var uint8_t g_mcs_max_ul := 9;
 
+	/* Value at which Countdown Procedure starts. Announced by network (GPRS Cell Options as per TS 04.60 Chapter 12.24) */
+	var uint4_t g_bs_cv_max := 4;
+
 	var boolean g_egprs_only := false;
 	var boolean g_force_two_phase_access := false;
 
@@ -533,8 +536,8 @@
 runs on RAW_PCU_Test_CT {
 	var template (value) RlcmacUlBlock ul_data := t_RLCMAC_UL_DATA(
 		tfi := tfi,
-		cv := num_blocks - 1, /* num UL blocks to be sent (to be overridden in loop) */
-		bsn := 0, /* TODO: what should be here? */
+		cv := 15, /* num UL blocks to be sent (to be overridden in loop) */
+		bsn := 0, /* TODO: what should be initial value? */
 		blocks := { /* To be generated in loop */ });
 
 	if (not istemplatekind(tlli, "omit")) {
@@ -544,7 +547,12 @@
 
 	for (var integer i := 0; i < num_blocks; i := i + 1) {
 		/* Prepare a new UL block (CV, random payload) */
-		ul_data.data.mac_hdr.countdown := (num_blocks - i - 1);
+		var integer cv := num_blocks - i - 1;
+		if (cv > g_bs_cv_max) {
+			cv := 15;
+		}
+		ul_data.data.mac_hdr.countdown := cv;
+		ul_data.data.mac_hdr.bsn := i;
 		ul_data.data.blocks := { valueof(t_RLCMAC_LLCBLOCK(f_rnd_octstring(10))) };
 		f_tx_rlcmac_ul_block(ul_data);
 	}