summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pcu/PCU_Tests.ttcn40
-rw-r--r--pcu/PCU_Tests_RAW.ttcn26
2 files changed, 66 insertions, 0 deletions
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 80a1bd1..4dce7dd 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -663,6 +663,46 @@ function f_establish_dl_tbf() runs on dummy_CT {
f_sleep(10.0);
}
+/* FIXME: merge this into BSSGP_Client_CT ? */
+type component bssgp_CT extends BSSGP_Client_CT {
+ var NS_CT ns_component;
+ var BSSGP_CT bssgp_component;
+ var boolean g_initialized := false;
+}
+
+/* FIXME: merge this into BSSGP_Client_CT ? */
+function f_init_bssgp() runs on bssgp_CT {
+ var MmContext mmctx := {
+ imsi := '262420000000001'H,
+ tlli := 'FFFFFFFF'O,
+ n_u := 0
+ };
+
+
+ if (g_initialized == true) {
+ return;
+ }
+ g_initialized := true;
+
+ /* create a new NS component */
+ ns_component := NS_CT.create;
+ bssgp_component := BSSGP_CT.create;
+ /* connect our BSSGP port to the BSSGP Emulation */
+ connect(self:BSSGP[0], bssgp_component:BSSGP_SP);
+ connect(self:BSSGP_SIG[0], bssgp_component:BSSGP_SP_SIG);
+ connect(self:BSSGP_PROC[0], bssgp_component:BSSGP_PROC);
+ /* connect lower-end of BSSGP with BSSGP_CODEC_PORT (maps to NS_PT*/
+ connect(bssgp_component:BSCP, ns_component:NS_SP);
+ /* connect lower-end of NS emulation to NS_CODEC_PORT (on top of IPl4) */
+ map(ns_component:NSCP, system:NS_CODEC_PORT);
+ ns_component.start(NSStart(mp_nsconfig));
+ bssgp_component.start(BssgpStart(mp_gb_cfg));
+
+ f_bssgp_client_register(mmctx.imsi, mmctx.tlli, mp_gb_cfg.cell_id);
+ f_bssgp_establish();
+}
+
+
control {
execute(TC_selftest_ns());
diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn
index 3e38fa8..96a3f86 100644
--- a/pcu/PCU_Tests_RAW.ttcn
+++ b/pcu/PCU_Tests_RAW.ttcn
@@ -8,6 +8,9 @@ module PCU_Tests_RAW {
import from General_Types all;
import from Osmocom_Types all;
+import from GSM_Types all;
+import from GSM_RR_Types all;
+
import from NS_Types all;
import from BSSGP_Types all;
import from Osmocom_Gb_Types all;
@@ -405,6 +408,27 @@ testcase TC_ns_so_block() runs on RAW_Test_CT {
setverdict(pass);
}
+/* Test component with PCUIF + BSSGP/NS Emulation (no L1CTL) */
+type component bssgp_pcuif_CT extends bssgp_CT, RAW_PCU_CT {
+}
+
+testcase TC_pcuif_suspend() runs on bssgp_pcuif_CT {
+ var OCT6 ra_id := enc_RoutingAreaIdentification(mp_gb_cfg.cell_id.ra_id);
+ var GprsTlli tlli := 'FFFFFFFF'O;
+
+ /* Initialize PCU interface side */
+ f_init_pcuif();
+
+ /* Initialize NS/BSSGP side */
+ f_init_bssgp();
+
+ f_sleep(1.0);
+ f_pcuif_tx(ts_PCUIF_SUSP_REQ(0, tlli, ra_id, 0));
+ BSSGP_SIG[0].receive(tr_BD_BSSGP(tr_BSSGP_SUSPEND(tlli, mp_gb_cfg.cell_id.ra_id)));
+
+ setverdict(pass);
+}
+
control {
execute( TC_ns_reset() );
@@ -415,6 +439,8 @@ control {
execute( TC_ns_unblock_retrans() );
execute( TC_ns_full_bringup() );
execute( TC_ns_so_block() );
+
+ execute( TC_pcuif_suspend() );
}