From 2742bcd6fdf4196a7d1c6fb3ff32c7cbf58851df Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Sun, 10 May 2020 12:45:18 +0700 Subject: [PATCH] PCU: introduce f_rrbp_ack_fn(), fix poll frame number calculation The resulting frame number shall be within the period of TDMA hyperframe. Change-Id: I794a14f69293cbbc937d62d09dd5794956b882db Signed-off-by: Vadim Yanitskiy --- library/RLCMAC_Templates.ttcn | 5 +++++ pcu/PCU_Tests.ttcn | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/library/RLCMAC_Templates.ttcn b/library/RLCMAC_Templates.ttcn index 38147f39f..bcd2b23c8 100644 --- a/library/RLCMAC_Templates.ttcn +++ b/library/RLCMAC_Templates.ttcn @@ -29,6 +29,11 @@ module RLCMAC_Templates { return 0; } + function f_rrbp_ack_fn(uint32_t current_fn, MacRrbp rrbp) + return uint32_t { + return (current_fn + f_rrbp_fn_delay(rrbp)) mod 2715648; + } + function f_rlcmac_mcs2headertype(CodingScheme mcs) return EgprsHeaderType { select (mcs) { case (MCS_0) { return RLCMAC_HDR_TYPE_3; } diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 32df39e10..eff20f73a 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -547,7 +547,7 @@ runs on RAW_PCU_Test_CT { f_shutdown(__BFILE__, __LINE__); } - poll_fn := dl_fn + f_rrbp_fn_delay(dl_block.ctrl.mac_hdr.rrbp); + poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); } private function f_rx_rlcmac_dl_block_exp_dummy(out RlcmacDlBlock dl_block) @@ -571,7 +571,7 @@ runs on RAW_PCU_Test_CT { f_shutdown(__BFILE__, __LINE__); } - poll_fn := dl_fn + f_rrbp_fn_delay(dl_block.ctrl.mac_hdr.rrbp); + poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); } private function f_rx_rlcmac_dl_block_exp_pkt_ul_ass(out RlcmacDlBlock dl_block, out uint32_t poll_fn) @@ -584,7 +584,7 @@ runs on RAW_PCU_Test_CT { f_shutdown(__BFILE__, __LINE__); } - poll_fn := dl_fn + f_rrbp_fn_delay(dl_block.ctrl.mac_hdr.rrbp); + poll_fn := f_rrbp_ack_fn(dl_fn, dl_block.ctrl.mac_hdr.rrbp); } @@ -606,7 +606,7 @@ private function f_rlcmac_dl_block_verify_data_gprs(RlcmacDlBlock dl_block, uint runs on RAW_PCU_Test_CT { log("verifying dl data block (gprs): ", dl_block); - ack_fn := dl_fn + f_rrbp_fn_delay(dl_block.data.mac_hdr.mac_hdr.rrbp); + ack_fn := f_rrbp_ack_fn(dl_fn, dl_block.data.mac_hdr.mac_hdr.rrbp); if (not match(dl_block.data.mac_hdr.hdr_ext.bsn, exp_bsn)) { setverdict(fail, "DL block BSN doesn't match: ", @@ -645,7 +645,7 @@ private function f_rlcmac_dl_block_verify_data_egprs(RlcmacDlBlock dl_block, uin runs on RAW_PCU_Test_CT { log("verifying dl data block (egprs): ", dl_block); - ack_fn := dl_fn + f_rrbp_fn_delay(dl_block.data_egprs.mac_hdr.rrbp); + ack_fn := f_rrbp_ack_fn(dl_fn, dl_block.data_egprs.mac_hdr.rrbp); if (not match(dl_block.data_egprs.mac_hdr.bsn1, exp_bsn)) { setverdict(fail, "DL block BSN doesn't match: ",