diff options
Diffstat (limited to 'pcu')
-rw-r--r-- | pcu/PCU_Tests.ttcn | 40 | ||||
-rw-r--r-- | pcu/PCU_Tests_RAW.ttcn | 26 |
2 files changed, 66 insertions, 0 deletions
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 80a1bd11..4dce7dd1 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 3e38fa8f..96a3f862 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() ); } |