lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43457?usp=email )
Change subject: SGSN: Iu: follow Service Request according to ETSI PMM IDLE exception ......................................................................
SGSN: Iu: follow Service Request according to ETSI PMM IDLE exception
The Service Request is not always responded with a Service Accept. When the UE is in PMM IDLE, a Security Command is equivalent to a Service Accept. See 3GPP TS 124 008, 4.7.13.3 Service request procedure accepted by the network.
Change-Id: I04d980d27c0c61830da8e1c52b988d6fecace171 --- M sgsn/SGSN_Tests_Iu.ttcn 1 file changed, 14 insertions(+), 7 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/57/43457/1
diff --git a/sgsn/SGSN_Tests_Iu.ttcn b/sgsn/SGSN_Tests_Iu.ttcn index a1a89bc..f9fca39 100644 --- a/sgsn/SGSN_Tests_Iu.ttcn +++ b/sgsn/SGSN_Tests_Iu.ttcn @@ -216,7 +216,7 @@
/* first perform regular attach */ f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, ran_index := ran_index); - f_service_request(apars, service_type := SERVICE_TYPE_Signalling, ran_index := ran_index); + f_service_request(apars, service_type := SERVICE_TYPE_Signalling, expect_service_acc := false, ran_index := ran_index); f_pdp_tx_ctx_act(apars, ran_index := ran_index); as_ggsn_gtp_ctx_act_req(apars, send_recovery := false); T.start; @@ -253,7 +253,7 @@ /* first perform regular attach */ f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, ran_index := 3);
- f_service_request(apars, service_type := SERVICE_TYPE_Signalling, ran_index := 3); + f_service_request(apars, service_type := SERVICE_TYPE_Signalling, expect_service_acc := false, ran_index := 3);
f_pdp_ctx_act(apars, ran_index := 3);
@@ -264,7 +264,7 @@
/* Now UE tries to send new data after a while of being IDLE. * SGSN recreates the Iu ctx and recovers the Direct Tunnel RNC<->GGSN: */ - f_service_request(apars, service_type := SERVICE_TYPE_Data, pdp_status := '2000'O /*NSAPI=5*/, ran_index := 3); + f_service_request(apars, service_type := SERVICE_TYPE_Data, pdp_status := '2000'O /*NSAPI=5*/, expect_service_acc := false, ran_index := 3); as_ranap_rab_ass_req(apars); as_ggsn_gtp_ctx_upd_req(apars, exp_dir_tun := true, ran_index := 3);
@@ -325,7 +325,7 @@ /* first perform regular attach */ f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, ran_index := 3);
- f_service_request(apars, service_type := SERVICE_TYPE_Signalling, ran_index := 3); + f_service_request(apars, service_type := SERVICE_TYPE_Signalling, expect_service_acc := false, ran_index := 3);
f_pdp_ctx_act(apars, ran_index := 3);
@@ -344,7 +344,7 @@
/* Ue comes back, answering the paging: * SGSN recreates the Iu ctx and recovers the Direct Tunnel RNC<->GGSN: */ - f_service_request(apars, service_type := SERVICE_TYPE_Data, pdp_status := '2000'O /*NSAPI=5*/, ran_index := 3); + f_service_request(apars, service_type := SERVICE_TYPE_Data, pdp_status := '2000'O /*NSAPI=5*/, expect_service_acc := false, ran_index := 3); as_ranap_rab_ass_req(apars); as_ggsn_gtp_ctx_upd_req(apars, exp_dir_tun := true, ran_index := 3);
@@ -373,7 +373,10 @@ /* first perform regular attach */ f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, ran_index := ran_index);
- f_service_request(apars, service_type := SERVICE_TYPE_Signalling, ran_index := ran_index); + f_service_request(apars, + service_type := SERVICE_TYPE_Signalling, + expect_service_acc := false, + ran_index := ran_index);
f_pdp_ctx_act(apars, ran_index := ran_index);
@@ -405,7 +408,11 @@
/* Ue comes back, answering the paging: * SGSN recreates the Iu ctx and recovers the Direct Tunnel RNC<->GGSN: */ - f_service_request(apars, service_type := SERVICE_TYPE_Data, pdp_status := '2000'O /*NSAPI=5*/, ran_index := ran_index); + f_service_request(apars, + service_type := SERVICE_TYPE_Data, + pdp_status := '2000'O /*NSAPI=5*/, + expect_service_acc := false, + ran_index := ran_index); as_ranap_rab_ass_req(apars); as_ggsn_gtp_ctx_upd_req(apars, exp_dir_tun := true, ran_index := ran_index);