pcu: TC_mo_ping_pong: Check DL block is sent and ACK it

Function f_rx_rlcmac_dl_block_exp_data() still misses proper
verification of data. Apparently the received message has 2 blocks,
first with expected 10 bytes, but next one contains 18 bytes with 4
actual bytes and other bits are padding.

Last DL ACK/NACK sent is not yet working correctly. osmo-pcu seems to be
unable to match it against sent DL block (I think due to non-matching
FN), and instead drops it and schedules after timeout an IMM ASS to try
to send DL block again.

Change-Id: Icf66dd5c07690368722c586632c38fb7e770053c
diff --git a/library/RLCMAC_CSN1_Types.ttcn b/library/RLCMAC_CSN1_Types.ttcn
index 29ec07b..a2f9a92 100644
--- a/library/RLCMAC_CSN1_Types.ttcn
+++ b/library/RLCMAC_CSN1_Types.ttcn
@@ -643,11 +643,11 @@
 		}
 	}
 
-	private const ILevel iNone := {
+	const ILevel iNone := {
 		presence := '0'B,
 		i_level := omit
 	}
-	private const ChannelQualityReport c_ChQualRep_default := {
+	const ChannelQualityReport c_ChQualRep_default := {
 		c_value := 0,
 		rxqual := 0,
 		sign_var := 0,
diff --git a/library/RLCMAC_Types.ttcn b/library/RLCMAC_Types.ttcn
index b0dac35..8e6942e 100644
--- a/library/RLCMAC_Types.ttcn
+++ b/library/RLCMAC_Types.ttcn
@@ -256,7 +256,30 @@
 		}
 	}
 
-	/* Template fro uplink Data block */
+	/* Send Template for Downlink ACK/NACK */
+	template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK(template uint5_t tfi, AckNackDescription andesc, boolean retry := false) := {
+		ctrl := {
+			mac_hdr := {
+				payload_type := MAC_PT_RLCMAC_NO_OPT,
+				spare := '00000'B,
+				retry := retry
+			},
+			payload := {
+				msg_type := PACKET_DL_ACK_NACK,
+				u := {
+					dl_ack_nack := {
+						dl_tfi := tfi,
+						ack_nack_desc := andesc,
+						chreq_desc_presence := '0'B,
+						chreq_desc := omit,
+						ch_qual_rep := c_ChQualRep_default
+					}
+				}
+			}
+		}
+	}
+
+	/* Template for uplink Data block */
 	template RlcmacUlBlock t_RLCMAC_UL_DATA(template uint5_t tfi, template uint4_t cv, template uint7_t bsn,
 						template LlcBlocks blocks := {}, template boolean stall := false) := {
 		data := {