jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42775?usp=email )
Change subject: C5G: Release UE Context before sending Service request ......................................................................
C5G: Release UE Context before sending Service request
A recent fix in Open5GS rejects RAN_UE_NGAP_ID in InitialUEMessage. This causes all tests to fail that send a subsequent InitialUEMessage with the same RAN_UE_NGAP_ID.
Release the UE Context before re-using the RAN_UE_NGAP_ID, because the connection handler can only handle one context at a time.
Note that the AMF_UE_NGAP_ID is incremented by Open5GS for every context.
This fixes: TC_ue_service_request_cm_idle_inact_sess TC_ue_service_request_cm_idle_ul_data TC_ue_service_request_cm_idle_unknown_sess_active
Related: Open5GS Issues #4481 Change-Id: If6fae56487aebd810c51cbab170d95d5dec7e138 --- M 5gc/C5G_Tests.ttcn 1 file changed, 14 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/42775/1
diff --git a/5gc/C5G_Tests.ttcn b/5gc/C5G_Tests.ttcn index f1c46c8..a89d023 100644 --- a/5gc/C5G_Tests.ttcn +++ b/5gc/C5G_Tests.ttcn @@ -579,11 +579,14 @@
f_register(); f_pdu_sess_establish(configure_userplane := false); + f_sleep(1.0); + f_ue_context_release(); + f_sleep(1.0); pdu_session_status := f_PDU_SessionStatus(); f_service_request_cm_idle(ul_data_status := pdu_session_status, pdu_sess_status := pdu_session_status);
- as_ngap_handle_PDUSessionResourceSetupReq(); + as_ngap_handle_InitialCtxReq_withPDUSessionList();
NGAP.receive(cr_NG_SERVICE_ACCEPT(p_PDU_SessionStatus := cr_PDU_SessionStatus('00000010'B, '00000000'B)));
@@ -602,9 +605,15 @@ /* 3GPP TS 23.502 4.2.3.2 UE Triggered Service Request. * UE signals that the active session is now inactive. AMF sends a PFCP Session Delete to SMF. */ private function f_TC_ue_service_request_cm_idle_inact_sess() runs on ConnHdlr { + var NGAP_PDU rx_ngap; + f_register(); f_pdu_sess_establish(configure_userplane := false); + f_sleep(1.0); + f_ue_context_release(); + f_sleep(1.0); f_service_request_cm_idle(pdu_sess_status := cs_PDU_SessionStatus('00000000'B, '00000000'B)); + g_pars.ue_pars.amf_id := g_pars.ue_pars.amf_id + 1; NGAP.receive(cr_NG_SERVICE_ACCEPT(p_PDU_SessionStatus := cr_PDU_SessionStatus('00000000'B, '00000000'B))); f_deregister(); } @@ -622,7 +631,11 @@ * UE signals that a session unknown to network is active: */ private function f_TC_ue_service_request_cm_idle_unknown_sess_active() runs on ConnHdlr { f_register(); + f_sleep(1.0); + f_ue_context_release(); + f_sleep(1.0); f_service_request_cm_idle(pdu_sess_status := cs_PDU_SessionStatus('00000010'B, '00000000'B)); + g_pars.ue_pars.amf_id := g_pars.ue_pars.amf_id + 1; NGAP.receive(cr_NG_SERVICE_ACCEPT(p_PDU_SessionStatus := cr_PDU_SessionStatus('00000000'B, '00000000'B))); f_deregister(); }