pcu: Introduce several tests TC_nacc_outbound_pkt_cell_chg_notif_dup*
These tests verify retransmission of duplicated Pkt Cell Change
Notification messages are ignored once the NACC procedure is already
ongoig.
Related: SYS#4909
Change-Id: Ib83eacfab7a73a2a51ab08801ff1c00c0058057c
diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn
index e59c18d..34406b9 100644
--- a/pcu/GPRS_Components.ttcn
+++ b/pcu/GPRS_Components.ttcn
@@ -822,7 +822,8 @@
altstep as_ms_rx_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si,
inout uint5_t exp_container_idx /* := 0 */,
inout integer si_offset /* := 0 */,
- template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum)
+ template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum,
+ boolean single_step := false)
runs on MS_BTS_IFACE_CT {
var integer len;
var octetstring exp_si_chunk;
@@ -874,7 +875,7 @@
exp_container_idx := exp_container_idx + 1;
- if (do_repeat) {
+ if (not single_step and do_repeat) {
BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr,
sapi := PCU_IF_SAPI_PDTCH, fn := 0,
arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)),
@@ -885,12 +886,13 @@
}
/* Handle groups of PKT NEIGHBOUR CELL DATA packets */
-function f_ms_handle_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si)
+function f_ms_handle_pkt_neighbor_cell_data(inout GprsMS ms, octetstring exp_si,
+ template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum,
+ uint5_t exp_container_idx := 0,
+ integer si_offset := 0,
+ boolean single_step := false)
runs on MS_BTS_IFACE_CT {
- var uint5_t exp_container_idx := 0;
- var integer si_offset := 0;
var BTS_PDTCH_Block data_msg;
- template (value) TsTrxBtsNum nr := ts_TsTrxBtsNum;
BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr,
sapi := PCU_IF_SAPI_PDTCH, fn := 0,
@@ -899,7 +901,7 @@
alt {
[exp_container_idx == 0] as_ms_rx_ignore_dummy(ms, nr);
[exp_container_idx > 0] as_ms_rx_fail_dummy(ms, nr);
- [] as_ms_rx_pkt_neighbor_cell_data(ms, exp_si, exp_container_idx, si_offset, nr);
+ [] as_ms_rx_pkt_neighbor_cell_data(ms, exp_si, exp_container_idx, si_offset, nr, single_step);
[] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH),
tr_RLCMAC_DL_CTRL(?, ?)
)) -> value data_msg {