diff --git a/library/RLCMAC_CSN1_Templates.ttcn b/library/RLCMAC_CSN1_Templates.ttcn index eebda7f15..9f53c3f38 100644 --- a/library/RLCMAC_CSN1_Templates.ttcn +++ b/library/RLCMAC_CSN1_Templates.ttcn @@ -123,10 +123,10 @@ module RLCMAC_CSN1_Templates { 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 e2abd84a9..939a814fe 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -329,6 +329,23 @@ module RLCMAC_Templates { } } + 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 8b9a47150..4a26814ed 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -1096,13 +1096,13 @@ private function f_TC_mt_ping_pong(template (omit) MSRadioAccessCapabilityV_BSSG 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 */