lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37796?usp=email )
Change subject: SGSN: add paging a whole routing area with multiple cells ......................................................................
SGSN: add paging a whole routing area with multiple cells
1. Attach + PDP Request 2. Wait for UE to be in Standby 3. Transmit to GTP Userdata 4. See the Paging on 2 BVCIs within the Routing Area
Change-Id: I88dc95669d57278a96e05ec84f934ebf70b319e5 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 51 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/96/37796/1
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index fe4b086..ecdd778 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -2603,6 +2603,56 @@ f_cleanup(); }
+/* + * Wait for T3314 expiration and check that PS PAGING is created on DL PDU + * Use a Routing Area with 2 cells and expect paging on both cells. + * + * MS <-> SGSN: Attach Procedure + * MS <-> SGSN: PDP Context Request/Response + * MS SGSN: Timeout of T3314, MS location known only on Routing Area precision + * GGSN -> SGSN: User Data + * MS <-- SGSN: Paging PS all BVCI within the Routing Area + */ +private function f_TC_paging_ps_ra_multiple_cells(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + var default d; + + f_bssgp_client_unregister(g_pars.imsi, BSSGP_PROC[0]); + f_bssgp_client_register(g_pars.imsi, g_pars.tlli, BSSGP_PROC[1]); + f_bssgp_client_register(g_pars.imsi, g_pars.tlli, BSSGP_PROC[2]); + + /* first perform regular attach */ + f_gmm_attach(false, false, ran_index := 1); + /* then activate PDP context */ + f_pdp_ctx_act(apars, ran_index := 1); + + /* do a RAU to second BVCI */ + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100), ran_index := 1); + + /* now wait for T3314 expiration (test_CT below has reduced it to 3s) */ + f_sleep(5.0); + + /* now data should be flowing again, but with PS PAGING */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100), ran_index := 1); + BSSGP_SIG[1].receive(tr_BSSGP_PS_PAGING(?)); + BSSGP_SIG[2].receive(tr_BSSGP_PS_PAGING(?)); + + /* FIXME: simulate paging response */ + /* FIXME: verify PDU actually arrives only after paging response was successful */ +} + +testcase TC_paging_ps_ra_multiple_cells() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_vty_config(SGSNVTY, "sgsn", "timer 3314 3"); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_paging_ps_ra_multiple_cells), testcasename(), g_gb, 52); + vc_conn.done; + f_vty_config(SGSNVTY, "sgsn", "timer 3314 default"); + f_cleanup(); +} + /* Run a RIM single report procedure over the sgsn. Since the SGSN will only do a transparent routing of the * RIM messages this basically tests if the message is correctly transfered from one GB interface to the * other and vice versa. */ @@ -3168,6 +3218,7 @@ execute( TC_suspend_resume() ); execute( TC_suspend_rau() ); execute( TC_paging_ps() ); + execute( TC_paging_ps_ra_multiple_cells() );
execute( TC_bssgp_rim_single_report() ); execute( TC_rim_eutran_to_geran() );