pcu: TC_mt_ping_pong: Request UL TBF on last DL ACK
Let's test the code path where UL TBF is requested through DL ACK/NACK
here, since we already test the usual UL TBF through CCCH approach in
most tests.
rlc_mode is changed to ACKED since that's the mode we are using so far
in tests.
Change-Id: I5a9a2e8107c87fdbf74cc2f09ae5eeafbb13ad55
diff --git a/library/RLCMAC_CSN1_Templates.ttcn b/library/RLCMAC_CSN1_Templates.ttcn
index eebda7f..9f53c3f 100644
--- a/library/RLCMAC_CSN1_Templates.ttcn
+++ b/library/RLCMAC_CSN1_Templates.ttcn
@@ -123,10 +123,10 @@
return ms_rac2;
}
- private const ChannelReqDescription c_ChReqDesc_default := {
+ const ChannelReqDescription c_ChReqDesc_default := {
peak_tput_class := 0,
priority := 0,
- rlc_mode := RLC_MODE_UNACKNOWLEDGED,
+ rlc_mode := RLC_MODE_ACKNOWLEDGED,
llc_pdu_type := LLC_PDU_IS_NOT_SACK_OR_ACK,
RlcOctetCount := 0
}
diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn
index e2abd84..939a814 100644
--- a/library/RLCMAC_Templates.ttcn
+++ b/library/RLCMAC_Templates.ttcn
@@ -329,6 +329,23 @@
}
}
+ 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
+ }
+ }
+ }
+ }
+ }
+
/* 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) := {
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 8b9a471..4a26814 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -1096,13 +1096,13 @@
f_sleep(X2002);
f_rx_rlcmac_dl_block_exp_data(dl_block, dl_fn, data, 0, exp_cs_mcs);
- /* ACK the DL block */
+ /* ACK the DL block, and request UL TBF at the same time */
f_acknackdesc_ack_block(ms.dl_tbf.acknack_desc, dl_block, '1'B);
- f_ms_tx_ul_block(ms, ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf.tfi, ms.dl_tbf.acknack_desc),
+ f_ms_tx_ul_block(ms, ts_RLCMAC_DL_ACK_NACK_CHREQ(ms.dl_tbf.tfi, ms.dl_tbf.acknack_desc),
f_dl_block_ack_fn(dl_block, dl_fn));
- /* Now MS wants to answer the DL data, Establish an Uplink TBF */
- f_ms_establish_ul_tbf(ms);
+ /* Expect UL ass */
+ f_ms_rx_imm_ass_pacch(ms, sched_fn, tr_RLCMAC_UL_PACKET_ASS);
/* Send one UL block (with TLLI since we are in One-Phase Access
contention resoultion) and make sure it is ACKED fine */