From 8a15b45ea1f5543bea1ed23d0f8fc0f55d15b43b Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Mon, 13 Feb 2023 01:39:57 +0700 Subject: [PATCH] PCU_Tests: fix TC_nacc_outbound_pkt_cell_chg_notif_dup The TC_nacc_outbound_pkt_cell_chg_notif_dup is currently failing because in [1] we changed the default hard-coded MCC/MNC values in ts_BssgpCellIdDstAddr_default, however these it's still using hardcoded MCC=023/MNC=43. I overlooked this in [2]. Let's split up the f_handle_nacc_rac_ci_query() into four functions: * f_ctrl_rx_nacc_rac_ci_req() / f_ctrl_tx_nacc_rac_ci_rsp(), * f_pcuif_rx_nacc_rac_ci_req() / f_pcuif_tx_nacc_rac_ci_rsp(), and use them in TC_nacc_outbound_pkt_cell_chg_notif_dup. Also employ them in TC_nacc_outbound_pkt_cell_chg_notif_twice. Change-Id: I3e84f55eedd278fb239600d6a0465bd34fd8cd0b Related: [1] 03f74d413258a125d6e64a4241a82d8384693895 Fixes: [2] 7295661af52ab397acd7376023817b64e1db5a66 Related: OS#5901 --- pcu/PCU_Tests.ttcn | 105 ++++++++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 44 deletions(-) diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 439ffeacd..954216f64 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -5189,38 +5189,67 @@ runs on RAW_PCU_Test_CT { } } +private function f_ctrl_rx_nacc_rac_ci_req(out CtrlMessage ctrl_req, + PCUIF_info_ind info_ind, + GsmArfcn req_arfcn, + uint6_t req_bsic) +runs on RAW_PCU_Test_CT { + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + f_ipa_ctrl_wait_link_up(); + IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value ctrl_req; +} + +private function f_ctrl_tx_nacc_rac_ci_rsp(in CtrlMessage ctrl_req) +runs on RAW_PCU_Test_CT { + var BssgpCellId addr := valueof(ts_BssgpCellIdDstAddr_default); + IPA_CTRL.send(ts_CtrlMsgGetRepl(ctrl_req.cmd.id, + ctrl_req.cmd.variable, + hex2str(c_BssgpCellMcc) & "-" & + hex2str(c_BssgpCellMnc) & "-" & + int2str(addr.ra_id.lai.lac) & "-" & + int2str(addr.ra_id.rac) & "-" & + int2str(addr.cell_id))); +} + +private function f_pcuif_rx_nacc_rac_ci_req(out PCUIF_Message addr_req, + PCUIF_info_ind info_ind, + GsmArfcn req_arfcn, + uint6_t req_bsic) +runs on RAW_PCU_Test_CT { + BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, + req_arfcn, req_bsic)) -> value addr_req; +} + +private function f_pcuif_tx_nacc_rac_ci_rsp(in PCUIF_Message addr_req) +runs on RAW_PCU_Test_CT { + var BssgpCellId addr := valueof(ts_BssgpCellIdDstAddr_default); + BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, addr_req.u.container.u.neigh_addr_req, 0, + str2int(hex2str(c_BssgpCellMcc)), + str2int(hex2str(c_BssgpCellMnc)), + lengthof(c_BssgpCellMnc) - 2, + addr.ra_id.lai.lac, + addr.ra_id.rac, + addr.cell_id)); +} + private function f_handle_nacc_rac_ci_query(PCUIF_info_ind info_ind, GsmArfcn req_arfcn, uint6_t req_bsic, boolean answer := true, boolean use_old_ctrl_iface := false) runs on RAW_PCU_Test_CT { if (use_old_ctrl_iface == true) { - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); + var CtrlMessage ctrl_req; + f_ctrl_rx_nacc_rac_ci_req(ctrl_req, info_ind, req_arfcn, req_bsic); if (answer) { - var BssgpCellId addr := valueof(ts_BssgpCellIdDstAddr_default); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, hex2str(c_BssgpCellMcc) & "-" & - hex2str(c_BssgpCellMnc) & "-" & - int2str(addr.ra_id.lai.lac) & "-" & - int2str(addr.ra_id.rac) & "-" & - int2str(addr.cell_id)); - } else { - f_ctrl_exp_get(IPA_CTRL, ctrl_var, omit); + f_ctrl_tx_nacc_rac_ci_rsp(ctrl_req); } } else { - var PCUIF_Message pcu_msg; - BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + var PCUIF_Message pcuif_req; + f_pcuif_rx_nacc_rac_ci_req(pcuif_req, info_ind, req_arfcn, req_bsic); if (answer) { - var BssgpCellId addr := valueof(ts_BssgpCellIdDstAddr_default); - BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, - str2int(hex2str(c_BssgpCellMcc)), - str2int(hex2str(c_BssgpCellMnc)), - lengthof(c_BssgpCellMnc) - 2, - addr.ra_id.lai.lac, - addr.ra_id.rac, - addr.cell_id)); + f_pcuif_tx_nacc_rac_ci_rsp(pcuif_req); } } } @@ -5747,15 +5776,9 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_dup() runs on RAW_PCU_Test_CT { /* osmo-pcu should now ask for resolution: */ if (use_old_ctrl_iface) { - f_ipa_ctrl_wait_link_up(); - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + f_ctrl_rx_nacc_rac_ci_req(rx_ctrl, info_ind, req_arfcn, req_bsic); } else { - BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + f_pcuif_rx_nacc_rac_ci_req(pcu_msg, info_ind, req_arfcn, req_bsic); } /* Before receiving CTRL response, MS retransmits Pkt cell Chg Notif */ @@ -5763,9 +5786,9 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_dup() runs on RAW_PCU_Test_CT { f_sleep(0.2); /* let some time to avoid race conditons between CTRL and RLCMAC */ if (use_old_ctrl_iface) { - IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, ctrl_var, "023-43-423-2-5")); + f_ctrl_tx_nacc_rac_ci_rsp(rx_ctrl); } else { - BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, 23, 43, 0, 423, 2, 5)); + f_pcuif_tx_nacc_rac_ci_rsp(pcu_msg); } timer T := 2.0; @@ -6133,24 +6156,18 @@ testcase TC_nacc_outbound_pkt_cell_chg_notif_twice() runs on RAW_PCU_Test_CT { /* osmo-pcu should now ask for resolution: */ if (use_old_ctrl_iface) { - f_ipa_ctrl_wait_link_up(); - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + f_ctrl_rx_nacc_rac_ci_req(rx_ctrl, info_ind, req_arfcn, req_bsic); } else { - BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + f_pcuif_rx_nacc_rac_ci_req(pcu_msg, info_ind, req_arfcn, req_bsic); } /* Before receiving CTRL response, MS retransmits Pkt cell Chg Notif with different tgt arfcn */ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); f_sleep(0.2); /* let some time to avoid race conditons between CTRL and RLCMAC */ if (use_old_ctrl_iface) { - IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, ctrl_var, "023-43-423-2-5")); + f_ctrl_tx_nacc_rac_ci_rsp(rx_ctrl); } else { - BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, 23, 43, 0, 423, 2, 5)); + f_pcuif_tx_nacc_rac_ci_rsp(pcu_msg); } /* We should now receive a 2nd CTRL request with the new ARFCN+BSIC */ f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface);