Projects
osmocom:nightly
open5gs
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 583
View file
open5gs_2.7.0.66.dcdfc.202401242026.dsc -> open5gs_2.7.0.70.3886.202401252026.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.66.dcdfc.202401242026 +Version: 2.7.0.70.3886.202401252026 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: - a70ac2edd1aeddc5da7f989e8e8c411acc543a65 14471100 open5gs_2.7.0.66.dcdfc.202401242026.tar.xz + ce67d1e43c28a014e219e95e57e36ccd44f6d84d 14470816 open5gs_2.7.0.70.3886.202401252026.tar.xz Checksums-Sha256: - 0be063d1a73e3fd45b373a2a816db5317604452956435fef1b238d1fb94746b7 14471100 open5gs_2.7.0.66.dcdfc.202401242026.tar.xz + 6cbffa27324151b8ef59753503d8a6c5c926b150c38acb420283417dde7ca403 14470816 open5gs_2.7.0.70.3886.202401252026.tar.xz Files: - 3e1c2fd0bbfa2cccc9f3b7fa969f956a 14471100 open5gs_2.7.0.66.dcdfc.202401242026.tar.xz + a4e341af9195cb3686ccbeec0d533892 14470816 open5gs_2.7.0.70.3886.202401252026.tar.xz
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/.tarball-version -> open5gs_2.7.0.70.3886.202401252026.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.7.0.66-dcdfc.202401242026 +2.7.0.70-3886.202401252026
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/debian/changelog -> open5gs_2.7.0.70.3886.202401252026.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -open5gs (2.7.0.66.dcdfc.202401242026) unstable; urgency=medium +open5gs (2.7.0.70.3886.202401252026) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom nightly feed - -- Osmocom OBS scripts <info@osmocom.org> Wed, 24 Jan 2024 20:27:40 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Thu, 25 Jan 2024 20:27:32 +0000 open5gs (2.7.0) unstable; urgency=medium
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/core/ogs-timer.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/core/ogs-timer.c
Changed
@@ -146,7 +146,6 @@ manager = timer->manager; ogs_assert(manager); timer = ogs_timer_cycle(manager, timer); - ogs_assert(timer); if (!timer) { ogs_fatal("ogs_timer_stop() failed in %s", file_line); ogs_assert_if_reached();
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gx/message.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gx/message.c
Changed
@@ -1,4 +1,4 @@ -/* +/* Gx Interface, 3GPP TS 29.212 section 4 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * * This file is part of Open5GS.
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gx/message.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gx/message.h
Changed
@@ -1,4 +1,4 @@ -/* +/* Gx Interface, 3GPP TS 29.212 section 4 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * * This file is part of Open5GS.
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gx/ogs-diameter-gx.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gx/ogs-diameter-gx.h
Changed
@@ -1,4 +1,4 @@ -/* +/* Gx Interface, 3GPP TS 29.212 section 4 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * * This file is part of Open5GS.
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gy/message.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gy/message.c
Changed
@@ -1,4 +1,4 @@ -/* +/* Gy Interface, 3GPP TS 32.299 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> *
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gy/message.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gy/message.h
Changed
@@ -1,4 +1,4 @@ -/* +/* Gy Interface, 3GPP TS 32.299 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> *
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/lib/diameter/gy/ogs-diameter-gy.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/lib/diameter/gy/ogs-diameter-gy.h
Changed
@@ -1,4 +1,4 @@ -/* +/* Gy Interface, 3GPP TS 32.299 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> *
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/mme/mme-sm.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/mme/mme-sm.c
Changed
@@ -407,8 +407,53 @@ break; case MME_EVENT_S6A_MESSAGE: - mme_ue = e->mme_ue; - ogs_assert(mme_ue); + /* + * A race condition can occur in the following situations. + * In conclusion, we can use this situation to determine + * whether or not the UE Context has been removed and avoiding a crash. + * + * For example, suppose a UE Context is removed in the followings. + * + * 1. Attach Request + * 2. Authentication-Information-Request + * 3. Authentication-Information-Answer + * 4. Authentication Request + * 5. Authentication Response(MAC Failed) + * 6. Authentication Reject + * 7. UEContextReleaseCommand + * 8. UEContextReleaseComplete + * + * The MME then sends a Purge-UE-request to the HSS and deletes + * the UE context as soon as it receives a Purge-UE-Answer. + * + * Suppose an Attach Request is received from the same UE + * between Purge-UE-Request/Answer, then the MME and HSS start + * the Authentication-Information-Request/Answer process. + * + * This can lead to the following situations. + * + * 1. Purge-UE-Request + * 2. Attach Request + * 3. Authentication-Information-Request + * 4. Purge-UE-Answer + * 5. UE Context Removed + * 6. Authentication-Information-Answer + * + * Since the UE Context has already been deleted + * when the Authentication-Information-Answer is received, + * it cannot be processed properly. + * + * Therefore, mme_ue_cycle() is used to check + * whether the UE Context has been deleted and + * decide whether to process or + * ignore the Authentication-Information-Answer as shown below. + */ + mme_ue = mme_ue_cycle(e->mme_ue); + if (!mme_ue) { + ogs_error("UE(mme-ue) context has already been removed"); + goto cleanup; + } + s6a_message = e->s6a_message; ogs_assert(s6a_message); @@ -473,6 +518,8 @@ ogs_error("Invalid Type%d", s6a_message->cmd_code); break; } + +cleanup: ogs_subscription_data_free(&s6a_message->idr_message.subscription_data); ogs_subscription_data_free(&s6a_message->ula_message.subscription_data); ogs_free(s6a_message);
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/mme/s1ap-build.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/mme/s1ap-build.c
Changed
@@ -574,7 +574,28 @@ emmbuf = NULL; } - ogs_assert(E_RABToBeSetupListCtxtSUReq->list.count); + if (!E_RABToBeSetupListCtxtSUReq->list.count) { + ogs_error(" IMSI%s NAS-EPS Type%d " + "ENB_UE_S1AP_ID%d MME_UE_S1AP_ID%d", + mme_ue->imsi_bcd, mme_ue->nas_eps.type, + enb_ue->enb_ue_s1ap_id, enb_ue->mme_ue_s1ap_id); + ogs_list_for_each(&mme_ue->sess_list, sess) { + ogs_error(" APN%s", + sess->session ? sess->session->name : "Unknown"); + ogs_list_for_each(&sess->bearer_list, bearer) { + if (OGS_FSM_CHECK(&bearer->sm, esm_state_inactive)) + ogs_error(" IN-ACTIVE"); + else if (OGS_FSM_CHECK(&bearer->sm, esm_state_active)) + ogs_error(" ACTIVE"); + else + ogs_error(" OTHER STATE"); + + ogs_error(" EBI%d QCI%d SGW-S1U-TEID%d", + bearer->ebi, bearer->qos.index, bearer->sgw_s1u_teid); + } + } + return NULL; + } ie = CALLOC(1, sizeof(S1AP_InitialContextSetupRequestIEs_t)); ASN_SEQUENCE_ADD(&InitialContextSetupRequest->protocolIEs, ie);
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/pcrf/pcrf-gx-path.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/pcrf/pcrf-gx-path.c
Changed
@@ -1,4 +1,4 @@ -/* +/* Gx Interface, 3GPP TS 29.212 section 4 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * * This file is part of Open5GS. @@ -55,8 +55,8 @@ static ogs_thread_mutex_t sess_state_mutex; static struct session_handler *pcrf_gx_reg = NULL; -static struct disp_hdl *hdl_gx_fb = NULL; -static struct disp_hdl *hdl_gx_ccr = NULL; +static struct disp_hdl *hdl_gx_fb = NULL; +static struct disp_hdl *hdl_gx_ccr = NULL; static void pcrf_gx_raa_cb(void *data, struct msg **msg); @@ -169,7 +169,7 @@ ogs_assert(gx); ogs_assert(sid); - + ogs_list_for_each(&gx->rx_list, rx_sess_data) { if (!strcmp((char *)rx_sess_data->sid, (char *)sid)) return rx_sess_data; @@ -199,13 +199,13 @@ ogs_free(sess_data->sid); remove_rx_state_all(sess_data); - + ogs_thread_mutex_lock(&sess_state_mutex); ogs_pool_free(&sess_state_pool, sess_data); ogs_thread_mutex_unlock(&sess_state_mutex); } -static int pcrf_gx_fb_cb(struct msg **msg, struct avp *avp, +static int pcrf_gx_fb_cb(struct msg **msg, struct avp *avp, struct session *sess, void *opaque, enum disp_action *act) { /* This CB should never be called */ @@ -214,7 +214,7 @@ return ENOTSUP; } -static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp, +static int pcrf_gx_ccr_cb( struct msg **msg, struct avp *avp, struct session *sess, void *opaque, enum disp_action *act) { int rv; @@ -486,7 +486,7 @@ ret = fd_msg_avp_add (avp, MSG_BRW_LAST_CHILD, avpch1); ogs_assert(ret == 0); } - + if (gx_message.session_data.session.ambr.downlink) { ret = fd_msg_avp_new( ogs_diam_gx_apn_aggregate_max_bitrate_dl, 0, &avpch1); @@ -779,7 +779,7 @@ rx_message->result_code = OGS_DIAM_INVALID_AVP_VALUE; goto out; } - + for (j = 0; j < gx_message.session_data.num_of_pcc_rule; j++) { if (gx_message.session_data.pcc_rulej.qos.index == qos_index) { @@ -814,7 +814,7 @@ ogs_error("CHECK WEBUI : No PCC Rule in DB QoS Index:%d", qos_index); ogs_error("Please add PCC Rule using WEBUI"); - rx_message->result_code = + rx_message->result_code = OGS_DIAM_RX_DIAMETER_REQUESTED_SERVICE_NOT_AUTHORIZED; goto out; } @@ -827,7 +827,7 @@ } if (!pcc_rule) { - pcc_rule = + pcc_rule = &rx_sess_data->pcc_rulerx_sess_data->num_of_pcc_rule; /* Device PCC Rule Info from DB Profile */ @@ -871,7 +871,7 @@ rv = ogs_pcc_rule_install_flow_from_media( pcc_rule, media_component); if (rv != OGS_OK) { - rx_message->result_code = + rx_message->result_code = OGS_DIAM_RX_DIAMETER_FILTER_RESTRICTIONS; ogs_error("install_flow() failed"); goto out; @@ -995,16 +995,16 @@ ret = clock_gettime(CLOCK_REALTIME, &sess_data->ts); ogs_assert(ret == 0); - - /* Keep a pointer to the session data for debug purpose, + + /* Keep a pointer to the session data for debug purpose, * in real life we would not need it */ svg = sess_data; - + /* Store this value in the session */ ret = fd_sess_state_store(pcrf_gx_reg, session, &sess_data); ogs_assert(ret == 0); ogs_assert(sess_data == NULL); - + /* Send the request */ ret = fd_msg_send(&req, pcrf_gx_raa_cb, svg); ogs_assert(ret == 0); @@ -1043,7 +1043,7 @@ unsigned long dur; int error = 0; int new; - + uint32_t result_code; ogs_debug("PCRF Re-Auth-Answer"); @@ -1055,7 +1055,7 @@ ret = fd_msg_sess_get(fd_g_config->cnf_dict, *msg, &session, &new); ogs_assert(ret == 0); ogs_assert(new == 0); - + ret = fd_sess_state_retrieve(pcrf_gx_reg, session, &sess_data); ogs_assert(ret == 0); ogs_assert(sess_data); @@ -1116,11 +1116,11 @@ /* Free the message */ ogs_assert(pthread_mutex_lock(&ogs_diam_logger_self()->stats_lock) == 0); - dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) + + dur = ((ts.tv_sec - sess_data->ts.tv_sec) * 1000000) + ((ts.tv_nsec - sess_data->ts.tv_nsec) / 1000); if (ogs_diam_logger_self()->stats.nb_recv) { /* Ponderate in the avg */ - ogs_diam_logger_self()->stats.avg = (ogs_diam_logger_self()->stats.avg * + ogs_diam_logger_self()->stats.avg = (ogs_diam_logger_self()->stats.avg * ogs_diam_logger_self()->stats.nb_recv + dur) / (ogs_diam_logger_self()->stats.nb_recv + 1); /* Min, max */ @@ -1135,18 +1135,18 @@ } if (error) ogs_diam_logger_self()->stats.nb_errs++; - else + else ogs_diam_logger_self()->stats.nb_recv++; ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0); - + /* Display how long it took */ if (ts.tv_nsec > sess_data->ts.tv_nsec) - ogs_trace("in %d.%06ld sec", + ogs_trace("in %d.%06ld sec", (int)(ts.tv_sec - sess_data->ts.tv_sec), (long)(ts.tv_nsec - sess_data->ts.tv_nsec) / 1000); else - ogs_trace("in %d.%06ld sec", + ogs_trace("in %d.%06ld sec", (int)(ts.tv_sec + 1 - sess_data->ts.tv_sec), (long)(1000000000 + ts.tv_nsec - sess_data->ts.tv_nsec) / 1000); @@ -1157,7 +1157,7 @@ ret = fd_msg_free(*msg); ogs_assert(ret == 0); *msg = NULL; - + return; } @@ -1202,7 +1202,7 @@ int ret; ret = fd_sess_handler_destroy(&pcrf_gx_reg, NULL); - ogs_assert(ret == 0); + ogs_assert(ret == 0); if (hdl_gx_fb) (void) fd_disp_unregister(&hdl_gx_fb, NULL); @@ -1242,7 +1242,7 @@ ret = fd_msg_avp_new(ogs_diam_gx_flow_information, 0, &avpch2); ogs_assert(ret == 0); - ret = fd_msg_avp_new(ogs_diam_gx_flow_direction, 0, &avpch3); + ret = fd_msg_avp_new(ogs_diam_gx_flow_direction, 0, &avpch3); ogs_assert(ret == 0); val.i32 = flow->direction; ret = fd_msg_avp_setvalue(avpch3, &val); @@ -1250,7 +1250,7 @@
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gx-handler.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gx-handler.c
Changed
@@ -1,4 +1,4 @@ -/* +/* Gx Interface, 3GPP TS 29.212 section 4 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> *
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gx-handler.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gx-handler.h
Changed
@@ -1,4 +1,4 @@ -/* +/* Gx Interface, 3GPP TS 29.212 section 4 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * * This file is part of Open5GS.
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gx-path.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gx-path.c
Changed
@@ -1,4 +1,4 @@ -/* +/* Gx Interface, 3GPP TS 29.212 section 4 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * * This file is part of Open5GS. @@ -87,6 +87,7 @@ ogs_thread_mutex_unlock(&sess_state_mutex); } +/* 3GPP TS 29.212 5.6.2 Credit-Control-Request */ void smf_gx_send_ccr(smf_sess_t *sess, ogs_gtp_xact_t *xact, uint32_t cc_request_type) { @@ -701,6 +702,7 @@ ogs_assert(pthread_mutex_unlock(&ogs_diam_logger_self()->stats_lock) == 0); } +/* 3GPP TS 29.212 5b.6.5 Credit-Control-Answer */ static void smf_gx_cca_cb(void *data, struct msg **msg) { int rv;
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gy-handler.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gy-handler.c
Changed
@@ -1,4 +1,4 @@ -/* +/* Gy Interface, 3GPP TS 32.299 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> *
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gy-handler.h -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gy-handler.h
Changed
@@ -1,4 +1,4 @@ -/* +/* Gy Interface, 3GPP TS 32.299 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> *
View file
open5gs_2.7.0.66.dcdfc.202401242026.tar.xz/src/smf/gy-path.c -> open5gs_2.7.0.70.3886.202401252026.tar.xz/src/smf/gy-path.c
Changed
@@ -1,4 +1,4 @@ -/* +/* Gy Interface, 3GPP TS 32.299 * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com> * Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de> *
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
.