dexter has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33540 )
Change subject: PCU_Tests: test NACC procedure with UTRAN and E-UTRAN cell
......................................................................
PCU_Tests: test NACC procedure with UTRAN and E-UTRAN cell
When the PacketCellChangeNotification proposes an UTRAN or E-UTRAN cell,
then the PCU will not provide system information. Instead it will directly
conclude the NACC procedure with a PacketCellChangeContinue message.
Related: OS#6044
Change-Id: Idae86a458fd44ac81bab183ed1865b1c1bdbfd66
---
M library/RLCMAC_CSN1_Templates.ttcn
M pcu/PCU_Tests.ttcn
2 files changed, 175 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/33540/1
diff --git a/library/RLCMAC_CSN1_Templates.ttcn b/library/RLCMAC_CSN1_Templates.ttcn
index ef8c952..ded61b2 100644
--- a/library/RLCMAC_CSN1_Templates.ttcn
+++ b/library/RLCMAC_CSN1_Templates.ttcn
@@ -180,6 +180,97 @@
}
};
+ /* TS 44.060 sec 11.2.3a */
+ template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF_UTRAN(uint5_t tfi,
+ uint14_t uarfcn,
+ uint10_t scrambling_code,
+ template (value) CCNMeasReport ccn_meas_rep := ccn_meas_rep_def)
+ := {
+ msg_type := PACKET_CELL_CHANGE_NOTIFICATION,
+ u := {
+ cell_chg_notif := {
+ gtfi := {
+ is_dl_tfi := false,
+ tfi := tfi
+ },
+ u := {
+ u10 := {
+ tag := '10'B,
+ utran_target_cell := {
+ fdd_presence := '1'B,
+ fdd := {
+ arfcn := uarfcn,
+ bandwidth_presence := '0'B,
+ bandwidth := omit,
+ scrambling_code := scrambling_code
+ },
+ tdd_presence := '0'B,
+ tdd := omit,
+ reporting_quantity := 1
+ }
+ }
+ },
+ ba_psi3_presence := '0'B,
+ ba_used := '0'B,
+ psi3_change_mark := omit,
+ pmo_used := '0'B,
+ pccn_sending := '0'B,
+ ccn_meas_rep := ccn_meas_rep,
+ rel_additions := omit
+ }
+ }
+ };
+
+ /* TS 44.060 sec 11.2.3a */
+ template (value) RlcmacUlCtrlMsg ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF_EUTRAN(uint5_t tfi,
+ uint16_t earfcn,
+ uint9_t phys_layer_cell_id,
+ template (value) CCNMeasReport ccn_meas_rep := ccn_meas_rep_def)
+ := {
+ msg_type := PACKET_CELL_CHANGE_NOTIFICATION,
+ u := {
+ cell_chg_notif := {
+ gtfi := {
+ is_dl_tfi := false,
+ tfi := tfi
+ },
+ u := {
+ u110 := {
+ tag := '110'B,
+ arfcn_bsic_presence := '0'B,
+ arfcn := omit,
+ bsic := omit,
+
+ utran_target_cell_presence := '0'B,
+ utran_target_cell := omit,
+
+ eutran_target_cell_presence := '1'B,
+ eutran_target_cell := {
+ earfcn := earfcn,
+ meas_bandwidth_presence := '0'B,
+ meas_bandwidth := omit,
+ phys_layer_cell_id := phys_layer_cell_id,
+ reporting_quantity := 1
+ },
+ eutran_ccn_meas_rep_presence := '1'B,
+ eutran_ccn_meas_rep := {
+ utran_ba_used := 0,
+ n_eutran := 1,
+ cells := {{frequency_list_index := 1, cell_identity := phys_layer_cell_id,
reporting_quantity := 1}}
+ }
+ }
+ },
+ ba_psi3_presence := '0'B,
+ ba_used := '0'B,
+ psi3_change_mark := omit,
+ pmo_used := '0'B,
+ pccn_sending := '0'B,
+ ccn_meas_rep := ccn_meas_rep,
+ rel_additions := omit
+ }
+ }
+ };
+
/* TS 44.060 sec 11.2.2a */
template RlcmacDlCtrlMsg tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE(template GlobalTfi tfi :=
?)
:= {
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 440d133..1fe2a26 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -5332,6 +5332,51 @@
}
}
+/* Start NACC from MS side, propose an E-UTRAN cell */
+private function f_outbound_nacc_success_utran_eutran(inout GprsMS ms, PCUIF_info_ind
info_ind,
+ boolean exp_rac_ci_query := true, boolean exp_si_query := true,
+ boolean skip_final_ctrl_ack := false,
+ boolean use_old_ctrl_iface := false,
+ boolean eutran := false)
+runs on RAW_PCU_Test_CT {
+ var template (value) RlcmacUlCtrlMsg cell_chg_notif;
+ var template RlcmacDlCtrlMsg cell_chg_cont;
+ var RlcmacDlBlock dl_block;
+ var uint32_t sched_fn;
+
+ /* Start NACC from MS side */
+ if (eutran) {
+ var uint16_t req_earfcn := 1234;
+ var uint9_t phys_layer_cell_id := 456;
+ cell_chg_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF_EUTRAN(ms.ul_tbf.tfi, req_earfcn,
phys_layer_cell_id);
+ } else {
+ var uint14_t req_uarfcn := 1234;
+ var uint10_t req_scrambling_code := 456;
+ cell_chg_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF_UTRAN(ms.ul_tbf.tfi, req_uarfcn,
req_scrambling_code);
+ }
+
+ log("======================================");
+ log(cell_chg_notif);
+
+ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chg_notif), 0, nr :=
f_ms_tx_TsTrxBtsNum(ms));
+
+ /* Obtain a Downlink block and make sure it is a PacketCellChangeContine. We also make
sure that this
+ * PacketCellChangeContine message does not contain any ARFCN/BSIC. */
+ f_rx_rlcmac_dl_block(dl_block, sched_fn);
+ cell_chg_cont := tr_RlcMacDlCtrl_PKT_CELL_CHG_CONTINUE
+ cell_chg_cont.u.cell_chg_continue.arfcn_bsic_presence := '0'B
+ if (not match(dl_block, tr_RLCMAC_DL_CTRL(?, cell_chg_cont))) {
+ setverdict(fail, "Rx unexpected DL block: ", dl_block);
+ f_shutdown(__BFILE__, __LINE__);
+ }
+
+ /* PKT CELL CHG CONTINUE ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
+ if (not skip_final_ctrl_ack and dl_block.ctrl.mac_hdr.rrbp_valid) {
+ sched_fn := f_rrbp_ack_fn(sched_fn, dl_block.ctrl.mac_hdr.rrbp);
+ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
+ }
+}
+
/* Start NACC from MS side, propose a GERAN cell */
private function f_outbound_nacc_success(inout GprsMS ms, PCUIF_info_ind info_ind,
boolean exp_rac_ci_query := true, boolean exp_si_query := true,
@@ -5382,7 +5427,7 @@
}
/* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC, TS 44.060
sec 8.8). */
-testcase TC_nacc_outbound_success() runs on RAW_PCU_Test_CT {
+function f_TC_nacc_outbound_success(integer ran_type) runs on RAW_PCU_Test_CT {
var PollFnCtx pollctx;
var GprsMS ms;
var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default);
@@ -5415,11 +5460,32 @@
f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts);
/* Start NACC from MS side */
- f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface);
+ if (ran_type == 0) {
+ /* GERAN */
+ f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface);
+ } else if (ran_type == 1) {
+ /* UTRAN */
+ f_outbound_nacc_success_utran_eutran(ms, info_ind, use_old_ctrl_iface :=
use_old_ctrl_iface, eutran := false);
+ } else if (ran_type == 2) {
+ /* EUTRAN */
+ f_outbound_nacc_success_utran_eutran(ms, info_ind, use_old_ctrl_iface :=
use_old_ctrl_iface, eutran := true);
+ }
f_shutdown(__BFILE__, __LINE__, final := true);
}
+testcase TC_nacc_outbound_success() runs on RAW_PCU_Test_CT {
+ f_TC_nacc_outbound_success(0);
+}
+
+testcase TC_nacc_outbound_success_utran() runs on RAW_PCU_Test_CT {
+ f_TC_nacc_outbound_success(1);
+}
+
+testcase TC_nacc_outbound_success_eutran() runs on RAW_PCU_Test_CT {
+ f_TC_nacc_outbound_success(2);
+}
+
/* Verify Pkt Cell Change Continue is retransmitted if not CTRL ACKed */
testcase TC_nacc_outbound_success_no_ctrl_ack() runs on RAW_PCU_Test_CT {
var PollFnCtx pollctx;
@@ -7224,6 +7290,8 @@
execute( TC_pcuif_info_ind_subsequent() );
execute( TC_nacc_outbound_success() );
+ execute( TC_nacc_outbound_success_utran() );
+ execute( TC_nacc_outbound_success_eutran() );
execute( TC_nacc_outbound_success_no_ctrl_ack() );
execute( TC_nacc_outbound_success_twice() );
execute( TC_nacc_outbound_success_twice_nocache() );
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/33540
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Idae86a458fd44ac81bab183ed1865b1c1bdbfd66
Gerrit-Change-Number: 33540
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newchange