Projects
osmocom:master
open5gs
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 391
View file
commit_3f0979dab2b4c825c1f363dbb9847675b986a90c.txt
Deleted
View file
commit_47419be650e57160a2e94575a1e316655c0af508.txt
Added
View file
open5gs_2.7.0.76.3f097.dsc -> open5gs_2.7.0.77.47419.dsc
Changed
@@ -2,7 +2,7 @@ Source: open5gs Binary: open5gs-common, open5gs-mme, open5gs-sgwc, open5gs-smf, open5gs-amf, open5gs-sgwu, open5gs-upf, open5gs-hss, open5gs-pcrf, open5gs-nrf, open5gs-scp, open5gs-sepp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg Architecture: any -Version: 2.7.0.76.3f097 +Version: 2.7.0.77.47419 Maintainer: Harald Welte <laforge@gnumonks.org> Uploaders: Sukchan Lee <acetcom@gmail.com> Homepage: https://open5gs.org @@ -32,8 +32,8 @@ open5gs-udr deb net optional arch=any open5gs-upf deb net optional arch=any Checksums-Sha1: - 52d0cddbf1c93aa05ea7bdfddccd049f88003e12 14473388 open5gs_2.7.0.76.3f097.tar.xz + f87b95a9643431682cc2d456fd5cdbf2b7e0284f 14472804 open5gs_2.7.0.77.47419.tar.xz Checksums-Sha256: - bda34e545084cd5bb87bd068b3e26e8ee33e8505edf1e8cd3404f164b26db716 14473388 open5gs_2.7.0.76.3f097.tar.xz + 8ead51a1b62de3001a281fde0db067064bdb11edf89916dc9cbbe2e5fd59e77d 14472804 open5gs_2.7.0.77.47419.tar.xz Files: - 1ad2f5bc536e3c1326eb0cf148303691 14473388 open5gs_2.7.0.76.3f097.tar.xz + ec1e3da9ca9bb4332d4564250528d07a 14472804 open5gs_2.7.0.77.47419.tar.xz
View file
open5gs_2.7.0.76.3f097.tar.xz/.tarball-version -> open5gs_2.7.0.77.47419.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.7.0.76-3f097 +2.7.0.77-47419
View file
open5gs_2.7.0.76.3f097.tar.xz/debian/changelog -> open5gs_2.7.0.77.47419.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -open5gs (2.7.0.76.3f097) unstable; urgency=medium +open5gs (2.7.0.77.47419) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Fri, 02 Feb 2024 12:27:33 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Sat, 03 Feb 2024 00:42:48 +0000 open5gs (2.7.0) unstable; urgency=medium
View file
open5gs_2.7.0.76.3f097.tar.xz/src/amf/amf-sm.c -> open5gs_2.7.0.77.47419.tar.xz/src/amf/amf-sm.c
Changed
@@ -488,10 +488,9 @@ ogs_info("%s:%d Release SM context %d", amf_ue->supi, sess->psi, sbi_message.res_status); } else { - ogs_error("%s HTTP response error %d", - amf_ue->supi, sbi_message.res_status); + ogs_error("%s:%d HTTP response error %d", + amf_ue->supi, sess->psi, sbi_message.res_status); } - amf_nsmf_pdusession_handle_release_sm_context(sess, state); break; @@ -518,6 +517,8 @@ * So, if CreateSMContext is failed, * we'll clear SM_CONTEXT_REF. */ + ogs_error("%s:%d create_sm_context failed() %d", + amf_ue->supi, sess->psi, sbi_message.res_status); AMF_SESS_CLEAR(sess); } END
View file
open5gs_2.7.0.76.3f097.tar.xz/src/amf/context.h -> open5gs_2.7.0.77.47419.tar.xz/src/amf/context.h
Changed
@@ -509,6 +509,8 @@ /* SMF sends the RESPONSE * of POST /nsmf-pdusession/v1/sm-contexts */ char *sm_context_ref; + bool pdu_session_release_complete_received; + bool pdu_session_resource_release_response_received; /* SMF sends the REQUEST * of POST /namf-comm/v1/ue-contexts/{supi}/n1-n2-messages */ @@ -818,7 +820,6 @@ sbi_object = &(__sESS)->sbi; \ ogs_assert(sbi_object); \ \ - ogs_error("AMF_SESS_CLEAR"); \ if (ogs_list_count(&sbi_object->xact_list)) { \ ogs_error("SBI running %d", \ ogs_list_count(&sbi_object->xact_list)); \
View file
open5gs_2.7.0.76.3f097.tar.xz/src/amf/gmm-handler.c -> open5gs_2.7.0.77.47419.tar.xz/src/amf/gmm-handler.c
Changed
@@ -1099,6 +1099,23 @@ if (!sess) { sess = amf_sess_add(amf_ue, *pdu_session_id); ogs_assert(sess); + } else { + /* + * These are variables that should be initialized + * when a PDU session establishment message is received + * for an existing session. + * + * It should be noted that XXX_recieved, which is initialized now, + * has a different initialization location than XXX_gsm_type. + * + * XXX_received is initialized in the ESTABLISHMENT phase, + * but XXX_gsm_type is initialized in the RELEASE phase + * when a PDU session release command with a Reactivation Request + * and a PDU session release complete are sent simultaneously. + */ + sess->pdu_session_resource_release_response_received = false; + sess->pdu_session_release_complete_received = false; + } } else { sess = amf_sess_find_by_psi(amf_ue, *pdu_session_id); @@ -1386,8 +1403,10 @@ } break; case OGS_NAS_5GS_PDU_SESSION_RELEASE_COMPLETE: - /* Prevent to invoke SMF for this session */ - CLEAR_SM_CONTEXT_REF(sess); + sess->pdu_session_release_complete_received = true; + if (sess->pdu_session_resource_release_response_received == + true) + CLEAR_SM_CONTEXT_REF(sess); break; default: break;
View file
open5gs_2.7.0.76.3f097.tar.xz/src/amf/ngap-handler.c -> open5gs_2.7.0.77.47419.tar.xz/src/amf/ngap-handler.c
Changed
@@ -2514,7 +2514,12 @@ ogs_assert(r != OGS_ERROR); ogs_pkbuf_free(param.n2smbuf); + + sess->pdu_session_resource_release_response_received = true; + if (sess->pdu_session_release_complete_received == true) + CLEAR_SM_CONTEXT_REF(sess); } + } void ngap_handle_uplink_ran_configuration_transfer(
View file
open5gs_2.7.0.76.3f097.tar.xz/src/amf/nsmf-handler.c -> open5gs_2.7.0.77.47419.tar.xz/src/amf/nsmf-handler.c
Changed
@@ -1056,8 +1056,21 @@ ogs_error("%s:%d Do not remove Session due to Reactivation-requested", amf_ue->supi, sess->psi); - /* Initialize the context instead of using amf_sess_remove() */ - + /* + * Issue #2917 + * + * These are variables that need to be initialized + * when a PDU session release command with a Reactivation Request + * and a PDU session release complete are sent at the same time. + * + * It is important to note that XXX_gsm_type, which is initialized now, + * has a different initialization location than + * pdu_session_release_complete_received/ + * pdu_session_resource_release_response_received + * + * XXX_received is initialized in the ESTABLISHMENT phase, + * but XXX_gsm_type must be initialized in the RELEASE phase. + */ sess->old_gsm_type = 0; sess->current_gsm_type = 0; @@ -1068,7 +1081,7 @@ } else { ogs_info("%s:%d Release SM Context state:%d", amf_ue->supi, sess->psi, state); - amf_sess_remove(sess); + AMF_SESS_CLEAR(sess); } if (state == AMF_RELEASE_SM_CONTEXT_REGISTRATION_ACCEPT) {
View file
open5gs_2.7.0.76.3f097.tar.xz/src/smf/gsm-sm.c -> open5gs_2.7.0.77.47419.tar.xz/src/smf/gsm-sm.c
Changed
@@ -284,8 +284,6 @@ case SMF_EVT_5GSM_MESSAGE: nas_message = e->nas.message; ogs_assert(nas_message); - sess = e->sess; - ogs_assert(sess); stream = e->h.sbi.data; ogs_assert(stream); smf_ue = sess->smf_ue; @@ -436,8 +434,6 @@ sbi_message = e->h.sbi.message; ogs_assert(sbi_message); - sess = e->sess; - ogs_assert(sess); smf_ue = sess->smf_ue; ogs_assert(smf_ue); @@ -850,8 +846,6 @@ sbi_message = e->h.sbi.message; ogs_assert(sbi_message); - sess = e->sess; - ogs_assert(sess); smf_ue = sess->smf_ue; ogs_assert(smf_ue); @@ -1002,8 +996,6 @@ case SMF_EVT_5GSM_MESSAGE: nas_message = e->nas.message; ogs_assert(nas_message); - sess = e->sess; - ogs_assert(sess); stream = e->h.sbi.data; ogs_assert(stream); smf_ue = sess->smf_ue; @@ -1069,8 +1061,6 @@ break; case SMF_EVT_NGAP_MESSAGE: - sess = e->sess; - ogs_assert(sess); stream = e->h.sbi.data; ogs_assert(stream); smf_ue = sess->smf_ue; @@ -1364,8 +1354,6 @@ sbi_message = e->h.sbi.message; ogs_assert(sbi_message); - sess = e->sess; - ogs_assert(sess); smf_ue = sess->smf_ue; ogs_assert(smf_ue); @@ -1588,8 +1576,6 @@ sbi_message = e->h.sbi.message; ogs_assert(sbi_message); - sess = e->sess; - ogs_assert(sess); smf_ue = sess->smf_ue; ogs_assert(smf_ue); @@ -1638,8 +1624,6 @@ break; case SMF_EVT_NGAP_MESSAGE: - sess = e->sess; - ogs_assert(sess); stream = e->h.sbi.data; ogs_assert(stream); smf_ue = sess->smf_ue; @@ -1713,8 +1697,6 @@ case SMF_EVT_5GSM_MESSAGE: nas_message = e->nas.message; ogs_assert(nas_message); - sess = e->sess; - ogs_assert(sess); stream = e->h.sbi.data; ogs_assert(stream); smf_ue = sess->smf_ue; @@ -1794,8 +1776,6 @@ sbi_message = e->h.sbi.message; ogs_assert(sbi_message); - sess = e->sess; - ogs_assert(sess); smf_ue = sess->smf_ue; ogs_assert(smf_ue); @@ -1874,11 +1854,19 @@ void smf_gsm_state_5gc_session_will_deregister(ogs_fsm_t *s, smf_event_t *e) { + smf_sess_t *sess = NULL; + + ogs_sbi_stream_t *stream = NULL; + ogs_sbi_message_t *sbi_message = NULL; + ogs_assert(s); ogs_assert(e); smf_sm_debug(e); + sess = e->sess; + ogs_assert(sess); + switch (e->h.id) { case OGS_FSM_ENTRY_SIG: break; @@ -1886,6 +1874,41 @@ case OGS_FSM_EXIT_SIG: break; + case OGS_EVENT_SBI_SERVER: + sbi_message = e->h.sbi.message; + ogs_assert(sbi_message); + stream = e->h.sbi.data; + ogs_assert(stream); + + SWITCH(sbi_message->h.service.name) + CASE(OGS_SBI_SERVICE_NAME_NSMF_PDUSESSION) + SWITCH(sbi_message->h.resource.component2) + CASE(OGS_SBI_RESOURCE_NAME_RELEASE) + ogs_assert(true == ogs_sbi_send_response( + stream, OGS_SBI_HTTP_STATUS_TOO_MANY_REQUESTS)); + break; + DEFAULT + ogs_error("Invalid resource name %s", + sbi_message->h.resource.component2); + ogs_assert(true == + ogs_sbi_server_send_error(stream, + OGS_SBI_HTTP_STATUS_BAD_REQUEST, sbi_message, + "Invalid resource name %s", + sbi_message->h.resource.component2)); + OGS_FSM_TRAN(s, smf_gsm_state_exception); + END + break; + + DEFAULT + ogs_error("Invalid API name %s", sbi_message->h.service.name); + ogs_assert(true == + ogs_sbi_server_send_error(stream, + OGS_SBI_HTTP_STATUS_BAD_REQUEST, sbi_message, + "Invalid API name", sbi_message->h.service.name)); + OGS_FSM_TRAN(s, smf_gsm_state_exception); + END + break; + default: ogs_error("Unknown event %s", smf_event_get_name(e)); break;
View file
open5gs_2.7.0.76.3f097.tar.xz/tests/registration/dereg-test.c -> open5gs_2.7.0.77.47419.tar.xz/tests/registration/dereg-test.c
Changed
@@ -1584,6 +1584,304 @@ test_ue_remove(test_ue); } +static void test6_issues2917_func(abts_case *tc, void *data) +{ + int rv; + ogs_socknode_t *ngap; + ogs_socknode_t *gtpu; + ogs_pkbuf_t *gmmbuf; + ogs_pkbuf_t *gsmbuf; + ogs_pkbuf_t *nasbuf; + ogs_pkbuf_t *sendbuf; + ogs_pkbuf_t *recvbuf; + ogs_ngap_message_t message; + int i; + + ogs_nas_5gs_mobile_identity_suci_t mobile_identity_suci; + test_ue_t *test_ue = NULL; + test_sess_t *sess = NULL; + test_bearer_t *qos_flow = NULL; + + bson_t *doc = NULL; + + /* Setup Test UE & Session Context */ + memset(&mobile_identity_suci, 0, sizeof(mobile_identity_suci)); + + mobile_identity_suci.h.supi_format = OGS_NAS_5GS_SUPI_FORMAT_IMSI; + mobile_identity_suci.h.type = OGS_NAS_5GS_MOBILE_IDENTITY_SUCI; + mobile_identity_suci.routing_indicator1 = 0; + mobile_identity_suci.routing_indicator2 = 0xf; + mobile_identity_suci.routing_indicator3 = 0xf; + mobile_identity_suci.routing_indicator4 = 0xf; + mobile_identity_suci.protection_scheme_id = OGS_PROTECTION_SCHEME_NULL; + mobile_identity_suci.home_network_pki_value = 0; + + test_ue = test_ue_add_by_suci(&mobile_identity_suci, "0000203190"); + ogs_assert(test_ue); + + test_ue->nr_cgi.cell_id = 0x40001; + + test_ue->nas.registration.tsc = 0; + test_ue->nas.registration.ksi = OGS_NAS_KSI_NO_KEY_IS_AVAILABLE; + test_ue->nas.registration.follow_on_request = 1; + test_ue->nas.registration.value = OGS_NAS_5GS_REGISTRATION_TYPE_INITIAL; + + test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc"; + test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca"; + + /* gNB connects to AMF */ + ngap = testngap_client(AF_INET); + ABTS_PTR_NOTNULL(tc, ngap); + + /* gNB connects to UPF */ + gtpu = test_gtpu_server(1, AF_INET); + ABTS_PTR_NOTNULL(tc, gtpu); + + /* Send NG-Setup Reqeust */ + sendbuf = testngap_build_ng_setup_request(0x4000, 26); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive NG-Setup Response */ + recvbuf = testgnb_ngap_read(ngap); + ABTS_PTR_NOTNULL(tc, recvbuf); + testngap_recv(test_ue, recvbuf); + + /********** Insert Subscriber in Database */ + doc = test_db_new_simple(test_ue); + ABTS_PTR_NOTNULL(tc, doc); + ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue, doc)); + + /* Send Registration request */ + gmmbuf = testgmm_build_registration_request(test_ue, NULL, false, false); + ABTS_PTR_NOTNULL(tc, gmmbuf); + + test_ue->registration_request_param.gmm_capability = 1; + test_ue->registration_request_param.s1_ue_network_capability = 1; + test_ue->registration_request_param.requested_nssai = 1; + test_ue->registration_request_param.last_visited_registered_tai = 1; + test_ue->registration_request_param.ue_usage_setting = 1; + nasbuf = testgmm_build_registration_request(test_ue, NULL, false, false); + ABTS_PTR_NOTNULL(tc, nasbuf); + + sendbuf = testngap_build_initial_ue_message(test_ue, gmmbuf, + NGAP_RRCEstablishmentCause_mo_Signalling, false, true); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive Authentication request */ + recvbuf = testgnb_ngap_read(ngap); + ABTS_PTR_NOTNULL(tc, recvbuf); + testngap_recv(test_ue, recvbuf); + + /* Send Authentication response */ + gmmbuf = testgmm_build_authentication_response(test_ue); + ABTS_PTR_NOTNULL(tc, gmmbuf); + sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive Security mode command */ + recvbuf = testgnb_ngap_read(ngap); + ABTS_PTR_NOTNULL(tc, recvbuf); + testngap_recv(test_ue, recvbuf); + + /* Send Security mode complete */ + gmmbuf = testgmm_build_security_mode_complete(test_ue, nasbuf); + ABTS_PTR_NOTNULL(tc, gmmbuf); + sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive InitialContextSetupRequest + + * Registration accept */ + recvbuf = testgnb_ngap_read(ngap); + ABTS_PTR_NOTNULL(tc, recvbuf); + testngap_recv(test_ue, recvbuf); + ABTS_INT_EQUAL(tc, + NGAP_ProcedureCode_id_InitialContextSetup, + test_ue->ngap_procedure_code); + + /* Send UERadioCapabilityInfoIndication */ + sendbuf = testngap_build_ue_radio_capability_info_indication(test_ue); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Send InitialContextSetupResponse */ + sendbuf = testngap_build_initial_context_setup_response(test_ue, false); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Send Registration complete */ + gmmbuf = testgmm_build_registration_complete(test_ue); + ABTS_PTR_NOTNULL(tc, gmmbuf); + sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive Configuration update command */ + recvbuf = testgnb_ngap_read(ngap); + ABTS_PTR_NOTNULL(tc, recvbuf); + testngap_recv(test_ue, recvbuf); + + /* Send PDU session establishment request */ + sess = test_sess_add_by_dnn_and_psi(test_ue, "internet", 5); + ogs_assert(sess); + + sess->ul_nas_transport_param.request_type = + OGS_NAS_5GS_REQUEST_TYPE_INITIAL; + sess->ul_nas_transport_param.dnn = 1; + sess->ul_nas_transport_param.s_nssai = 1; + + sess->pdu_session_establishment_param.ssc_mode = 1; + sess->pdu_session_establishment_param.epco = 1; + + gsmbuf = testgsm_build_pdu_session_establishment_request(sess); + ABTS_PTR_NOTNULL(tc, gsmbuf); + gmmbuf = testgmm_build_ul_nas_transport(sess, + OGS_NAS_PAYLOAD_CONTAINER_N1_SM_INFORMATION, gsmbuf); + ABTS_PTR_NOTNULL(tc, gmmbuf); + sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive PDUSessionResourceSetupRequest + + * DL NAS transport + + * PDU session establishment accept */ + recvbuf = testgnb_ngap_read(ngap); + ABTS_PTR_NOTNULL(tc, recvbuf); + testngap_recv(test_ue, recvbuf); + ABTS_INT_EQUAL(tc, + NGAP_ProcedureCode_id_PDUSessionResourceSetup, + test_ue->ngap_procedure_code); + + /* Send GTP-U ICMP Packet */ + qos_flow = test_qos_flow_find_by_qfi(sess, 1); + ogs_assert(qos_flow); + rv = test_gtpu_send_ping(gtpu, qos_flow, TEST_PING_IPV4); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Send PDUSessionResourceSetupResponse */ + sendbuf = testngap_sess_build_pdu_session_resource_setup_response(sess); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive GTP-U ICMP Packet */ + recvbuf = testgnb_gtpu_read(gtpu); + ABTS_PTR_NOTNULL(tc, recvbuf); + ogs_pkbuf_free(recvbuf); + + /* Send GTP-U ICMP Packet */ + rv = test_gtpu_send_ping(gtpu, qos_flow, TEST_PING_IPV4); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive GTP-U ICMP Packet */ + recvbuf = testgnb_gtpu_read(gtpu); + ABTS_PTR_NOTNULL(tc, recvbuf); + ogs_pkbuf_free(recvbuf); + + /* Send PDU Session release request */ + sess->ul_nas_transport_param.request_type = 0; + sess->ul_nas_transport_param.dnn = 0; + sess->ul_nas_transport_param.s_nssai = 0; + + sess->pdu_session_establishment_param.ssc_mode = 0; + sess->pdu_session_establishment_param.epco = 0; + + gsmbuf = testgsm_build_pdu_session_release_request(sess); + ABTS_PTR_NOTNULL(tc, gsmbuf); + gmmbuf = testgmm_build_ul_nas_transport(sess, + OGS_NAS_PAYLOAD_CONTAINER_N1_SM_INFORMATION, gsmbuf); + ABTS_PTR_NOTNULL(tc, gmmbuf); + sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive PDUSessionResourceReleaseCommand + + * DL NAS transport + + * PDU session release command */ + recvbuf = testgnb_ngap_read(ngap); + ABTS_PTR_NOTNULL(tc, recvbuf); + testngap_recv(test_ue, recvbuf); + ABTS_INT_EQUAL(tc, + NGAP_ProcedureCode_id_PDUSessionResourceRelease, + test_ue->ngap_procedure_code); + + /* Send UplinkNASTransport + + * UL NAS trasnport + + * PDU session resource release complete */ + sess->ul_nas_transport_param.request_type = 0; + sess->ul_nas_transport_param.dnn = 0; + sess->ul_nas_transport_param.s_nssai = 0; + + sess->pdu_session_establishment_param.ssc_mode = 0; + sess->pdu_session_establishment_param.epco = 0; + + gsmbuf = testgsm_build_pdu_session_release_complete(sess); + ABTS_PTR_NOTNULL(tc, gsmbuf); + gmmbuf = testgmm_build_ul_nas_transport(sess, + OGS_NAS_PAYLOAD_CONTAINER_N1_SM_INFORMATION, gsmbuf); + ABTS_PTR_NOTNULL(tc, gmmbuf); + sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Send PDUSessionResourceReleaseResponse */ + sendbuf = testngap_build_pdu_session_resource_release_response(sess); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + ogs_msleep(100); + + /* Send De-registration request */ + gmmbuf = testgmm_build_de_registration_request(test_ue, 1, true, true); + ABTS_PTR_NOTNULL(tc, gmmbuf); + sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + /* Receive UEContextReleaseCommand */ + recvbuf = testgnb_ngap_read(ngap); + ABTS_PTR_NOTNULL(tc, recvbuf); + testngap_recv(test_ue, recvbuf); + ABTS_INT_EQUAL(tc, + NGAP_ProcedureCode_id_UEContextRelease, + test_ue->ngap_procedure_code); + + /* Send UEContextReleaseComplete */ + sendbuf = testngap_build_ue_context_release_complete(test_ue); + ABTS_PTR_NOTNULL(tc, sendbuf); + rv = testgnb_ngap_send(ngap, sendbuf); + ABTS_INT_EQUAL(tc, OGS_OK, rv); + + ogs_msleep(300); + + /********** Remove Subscriber in Database */ + ABTS_INT_EQUAL(tc, OGS_OK, test_db_remove_ue(test_ue)); + + /* gNB disonncect from UPF */ + testgnb_gtpu_close(gtpu); + + /* gNB disonncect from AMF */ + testgnb_ngap_close(ngap); + + /* Clear Test UE Context */ + test_ue_remove(test_ue); +} + abts_suite *test_dereg(abts_suite *suite) { suite = ADD_SUITE(suite) @@ -1593,6 +1891,7 @@ abts_run_test(suite, test3_func, NULL); abts_run_test(suite, test4_func, NULL); abts_run_test(suite, test5_func, NULL); + abts_run_test(suite, test6_issues2917_func, NULL); return suite; }
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.