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 <[email protected]>
Gerrit-MessageType: newchange

Reply via email to