pcu: Implement ACKing EGPRS Dl TBF blocks

Change-Id: I9f1b621a8365e69d2e1a33d59cb8c7a59639ad94
diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn
index e6f982f..d59c74e 100644
--- a/library/RLCMAC_Templates.ttcn
+++ b/library/RLCMAC_Templates.ttcn
@@ -361,8 +361,16 @@
 		}
 	}
 
+	private function f_presence_bit_chreq_desc(template (omit) ChannelReqDescription chreq_desc) return BIT1 {
+		if (istemplatekind(chreq_desc, "omit")) {
+			return '0'B;
+		}
+		return '1'B;
+	}
+
 	/* Send Template for Downlink ACK/NACK */
-	template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK(template uint5_t tfi, AckNackDescription andesc, boolean retry := false) := {
+	template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK(template uint5_t tfi, AckNackDescription andesc, boolean retry := false,
+						     template (omit) ChannelReqDescription chreq_desc := omit) := {
 		ctrl := {
 			mac_hdr := {
 				payload_type := MAC_PT_RLCMAC_NO_OPT,
@@ -375,8 +383,8 @@
 					dl_ack_nack := {
 						dl_tfi := tfi,
 						ack_nack_desc := andesc,
-						chreq_desc_presence := '0'B,
-						chreq_desc := omit,
+						chreq_desc_presence := f_presence_bit_chreq_desc(chreq_desc),
+						chreq_desc := chreq_desc,
 						ch_qual_rep := c_ChQualRep_default
 					}
 				}
@@ -384,25 +392,9 @@
 		}
 	}
 
-	template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK_CHREQ(template uint5_t tfi,
-							   AckNackDescription andesc,
-							   boolean retry := false,
-							   template ChannelReqDescription chreq_desc := c_ChReqDesc_default)
-	modifies ts_RLCMAC_DL_ACK_NACK := {
-		ctrl := {
-			payload := {
-				u := {
-					dl_ack_nack := {
-						chreq_desc_presence := '1'B,
-						chreq_desc := chreq_desc
-					}
-				}
-			}
-		}
-	}
-
 	/* Send Template for Egprs Downlink ACK/NACK */
-	template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK_EGPRS(template uint5_t tfi, EgprsAckNackDescription andesc, boolean retry := false) := {
+	template RlcmacUlBlock ts_RLCMAC_DL_ACK_NACK_EGPRS(template uint5_t tfi, EgprsAckNackDescription andesc, boolean retry := false,
+							   template (omit) ChannelReqDescription chreq_desc := omit) := {
 		ctrl := {
 			mac_hdr := {
 				payload_type := MAC_PT_RLCMAC_NO_OPT,
@@ -417,8 +409,8 @@
 						ms_oom := '0'B,
 						egprs_ch_qual_rep_presence := '0'B,
 						egprs_ch_qual_rep := omit,
-						chreq_desc_presence := '0'B,
-						chreq_desc := omit,
+						chreq_desc_presence := f_presence_bit_chreq_desc(chreq_desc),
+						chreq_desc := chreq_desc,
 						pfi_presence := '0'B,
 						pfi := omit,
 						epdan_presence := '0'B,