From 57b9b7f1dcf9f9ff5d39fe5af61304c1501f7bdd Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 18 Feb 2018 22:28:13 +0100 Subject: Add TC_attach_pdp_act_user_deact_mt for GGSN-originated PDP DEACT Change-Id: I7eb653694f487f8bbf122146300c93be625b0f87 Related: OS#2961 --- sgsn/SGSN_Tests.ttcn | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'sgsn') diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 06ed56be..a853c6d6 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -842,6 +842,22 @@ function f_pdp_ctx_deact_mo(inout PdpActPars apars, OCT1 cause) runs on BSSGP_Co } } +function f_pdp_ctx_deact_mt(inout PdpActPars apars, OCT1 cause) runs on BSSGP_ConnHdlr { + var Gtp1cUnitdata g_ud; + var integer seq_nr := 23; + var GtpPeer peer := valueof(ts_GtpPeerC(apars.sgsn_ip_c)); + + BSSGP.clear; + GTP.send(ts_GTPC_DeletePDP(peer, seq_nr, apars.sgsn_tei_c, apars.nsapi, omit)); + + interleave { + [] BSSGP.receive(tr_BD_L3_MT(tr_SM_DEACT_PDP_REQ_MT(apars.tid, ?))) { + BSSGP.send(ts_SM_DEACT_PDP_ACCEPT_MO(apars.tid)); + } + [] GTP.receive(tr_GTPC_MsgType(?, deletePDPContextResponse, apars.ggsn_tei_c)) { } + } +} + /* Table 10.5.156/3GPP TS 24.008 */ template (value) QoSV t_QosDefault := { @@ -1095,6 +1111,28 @@ testcase TC_attach_pdp_act_user_deact_mo() runs on test_CT { vc_conn.done; } +/* ATTACH + PDP CTX ACT + user plane traffic + PDP CTX DEACT in MT direction */ +private function f_TC_attach_pdp_act_user_deact_mt(charstring id) runs on BSSGP_ConnHdlr { + var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip)); + + /* first perform regular attach */ + f_TC_attach(id); + /* then activate PDP context */ + f_pdp_ctx_act(apars); + /* then transceive a downlink PDU */ + f_gtpu_xceive_mt(apars, f_rnd_octstring(100)); + f_gtpu_xceive_mo(apars, f_rnd_octstring(200)); + + f_pdp_ctx_deact_mt(apars, '00'O); +} +testcase TC_attach_pdp_act_user_deact_mt() runs on test_CT { + var BSSGP_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_TC_attach_pdp_act_user_deact_mt), testcasename(), g_gb[0], 22); + vc_conn.done; +} + + control { execute( TC_attach() ); @@ -1117,6 +1155,7 @@ control { execute( TC_attach_pdp_act_user() ); execute( TC_attach_pdp_act_ggsn_reject() ); execute( TC_attach_pdp_act_user_deact_mo() ); + execute( TC_attach_pdp_act_user_deact_mt() ); } -- cgit v1.2.3