Projects
osmocom:nightly
open5gs
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 1264
View file
open5gs_2.7.6.4837.6489.202512051800.dsc
Deleted
@@ -1,39 +0,0 @@ -Format: 3.0 (native) -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.6.4837.6489.202512051800 -Maintainer: Harald Welte <laforge@gnumonks.org> -Uploaders: Sukchan Lee <acetcom@gmail.com> -Homepage: https://open5gs.org -Standards-Version: 4.3.0 -Vcs-Browser: https://github.com/open5gs/open5gs -Vcs-Git: git://github.com/open5gs/open5gs -Build-Depends: debhelper (>= 11), git, pkg-config, meson (>= 0.43.0), cmake, flex, bison, libgnutls28-dev, libgcrypt-dev, libssl-dev, libidn-dev | libidn11-dev, libmongoc-dev, libbson-dev, libsctp-dev, libyaml-dev, libmicrohttpd-dev, libcurl4-gnutls-dev, libnghttp2-dev, libtins-dev, libtalloc-dev -Package-List: - open5gs deb net optional arch=any - open5gs-amf deb net optional arch=any - open5gs-ausf deb net optional arch=any - open5gs-bsf deb net optional arch=any - open5gs-common deb net optional arch=any - open5gs-dbg deb net optional arch=any - open5gs-hss deb net optional arch=any - open5gs-mme deb net optional arch=any - open5gs-nrf deb net optional arch=any - open5gs-nssf deb net optional arch=any - open5gs-pcf deb net optional arch=any - open5gs-pcrf deb net optional arch=any - open5gs-scp deb net optional arch=any - open5gs-sepp deb net optional arch=any - open5gs-sgwc deb net optional arch=any - open5gs-sgwu deb net optional arch=any - open5gs-smf deb net optional arch=any - open5gs-udm deb net optional arch=any - open5gs-udr deb net optional arch=any - open5gs-upf deb net optional arch=any -Checksums-Sha1: - 80c9e4782c0e559794add7b7b19d25a4f56be837 15109036 open5gs_2.7.6.4837.6489.202512051800.tar.xz -Checksums-Sha256: - 995c4267a3c19bb79868312f30cc49e3991965611d3d4c4b73780ce798e41174 15109036 open5gs_2.7.6.4837.6489.202512051800.tar.xz -Files: - 6fac2e9cc25bee02176857cb09a17d75 15109036 open5gs_2.7.6.4837.6489.202512051800.tar.xz
View file
open5gs_2.7.6.4840.782a.202512061800.dsc
Added
@@ -0,0 +1,39 @@ +Format: 3.0 (native) +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.6.4840.782a.202512061800 +Maintainer: Harald Welte <laforge@gnumonks.org> +Uploaders: Sukchan Lee <acetcom@gmail.com> +Homepage: https://open5gs.org +Standards-Version: 4.3.0 +Vcs-Browser: https://github.com/open5gs/open5gs +Vcs-Git: git://github.com/open5gs/open5gs +Build-Depends: debhelper (>= 11), git, pkg-config, meson (>= 0.43.0), cmake, flex, bison, libgnutls28-dev, libgcrypt-dev, libssl-dev, libidn-dev | libidn11-dev, libmongoc-dev, libbson-dev, libsctp-dev, libyaml-dev, libmicrohttpd-dev, libcurl4-gnutls-dev, libnghttp2-dev, libtins-dev, libtalloc-dev +Package-List: + open5gs deb net optional arch=any + open5gs-amf deb net optional arch=any + open5gs-ausf deb net optional arch=any + open5gs-bsf deb net optional arch=any + open5gs-common deb net optional arch=any + open5gs-dbg deb net optional arch=any + open5gs-hss deb net optional arch=any + open5gs-mme deb net optional arch=any + open5gs-nrf deb net optional arch=any + open5gs-nssf deb net optional arch=any + open5gs-pcf deb net optional arch=any + open5gs-pcrf deb net optional arch=any + open5gs-scp deb net optional arch=any + open5gs-sepp deb net optional arch=any + open5gs-sgwc deb net optional arch=any + open5gs-sgwu deb net optional arch=any + open5gs-smf deb net optional arch=any + open5gs-udm deb net optional arch=any + open5gs-udr deb net optional arch=any + open5gs-upf deb net optional arch=any +Checksums-Sha1: + 3fa2ff77e3da12f72df3356a454fe4cca87e192c 15108672 open5gs_2.7.6.4840.782a.202512061800.tar.xz +Checksums-Sha256: + f83044096bc5831e1e2cede4f093bc81d43985a8e0ada2bf6953c684dc6a4070 15108672 open5gs_2.7.6.4840.782a.202512061800.tar.xz +Files: + 907aa69dee02186cd62a13ddc2175e9b 15108672 open5gs_2.7.6.4840.782a.202512061800.tar.xz
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/.tarball-version -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.7.6.4837-6489.202512051800 +2.7.6.4840-782a.202512061800
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/debian/changelog -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -open5gs (2.7.6.4837.6489.202512051800) unstable; urgency=medium +open5gs (2.7.6.4840.782a.202512061800) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom nightly feed - -- Osmocom OBS scripts <info@osmocom.org> Fri, 05 Dec 2025 18:01:56 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Sat, 06 Dec 2025 18:01:53 +0000 open5gs (2.7.6) unstable; urgency=medium
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/lib/core/ogs-compat.h -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/lib/core/ogs-compat.h
Changed
@@ -61,6 +61,8 @@ #include <netinet/in.h> #include <sys/socket.h> +#include <ctype.h> + #endif #endif
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/lib/core/ogs-strings.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/lib/core/ogs-strings.c
Changed
@@ -420,3 +420,22 @@ return ogs_right_trimcharacter( ogs_left_trimcharacter(str, to_remove), to_remove); } + +char *ogs_strrstr(const char *haystack, const char *needle) +{ + char *result = NULL; + char *p = (char *)haystack; + + if (!haystack || !needle) + return NULL; + + if (*needle == '\0') + return (char *)haystack; + + while ((p = strstr(p, needle)) != NULL) { + result = p; + p++; + } + + return result; +}
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/lib/core/ogs-strings.h -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/lib/core/ogs-strings.h
Changed
@@ -149,6 +149,8 @@ char *ogs_right_trimcharacter(char *str, char to_remove); char *ogs_trimcharacter(char *str, char to_remove); +char *ogs_strrstr(const char *haystack, const char *needle); + #ifdef __cplusplus } #endif
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/lib/proto/types.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/lib/proto/types.c
Changed
@@ -129,8 +129,9 @@ } #define FQDN_3GPPNETWORK_ORG ".3gppnetwork.org" -#define FQDN_5GC_MNC "5gc.mnc" +#define FQDN_GPRS ".gprs" #define FQDN_MCC ".mcc" +#define FQDN_MNC ".mnc" char *ogs_serving_network_name_from_plmn_id(const ogs_plmn_id_t *plmn_id) { @@ -165,78 +166,65 @@ ogs_plmn_id_mnc(plmn_id), ogs_plmn_id_mcc(plmn_id)); } -char *ogs_home_network_domain_from_fqdn(char *fqdn) +char *ogs_dnn_oi_from_plmn_id(const ogs_plmn_id_t *plmn_id) { - char *p = NULL; + return ogs_msprintf("mnc%03d.mcc%03d" FQDN_GPRS, + ogs_plmn_id_mnc(plmn_id), ogs_plmn_id_mcc(plmn_id)); +} + +char *ogs_dnn_oi_from_fqdn(char *fqdn) +{ + char *mnc_pos = NULL; ogs_assert(fqdn); - if (strlen(fqdn) < - strlen(FQDN_5GC_MNC "XXX" FQDN_MCC "XXX" FQDN_3GPPNETWORK_ORG)) { + /* Find ".mnc" from right side */ + mnc_pos = ogs_strrstr(fqdn, FQDN_MNC); + if (!mnc_pos) return NULL; - } - p = fqdn + strlen(fqdn); - if (strncmp(p - strlen(FQDN_3GPPNETWORK_ORG), - FQDN_3GPPNETWORK_ORG, strlen(FQDN_3GPPNETWORK_ORG)) != 0) { + /* Ensure minimum required length for parsing */ + if ((mnc_pos + strlen(FQDN_MNC) + 3 + strlen(FQDN_MCC) + 3) > + fqdn + strlen(fqdn)) return NULL; - } - p -= (strlen(FQDN_3GPPNETWORK_ORG) + 3); - if (strncmp(p - strlen(FQDN_MCC), - FQDN_MCC, strlen(FQDN_MCC)) != 0) { + /* Validate that ".mnc" is followed by 3 digits */ + if (!isdigit(mnc_pos4) || + !isdigit(mnc_pos5) || + !isdigit(mnc_pos6)) return NULL; - } - p -= (strlen(FQDN_MCC) + 3); - if (strncmp(p - strlen(FQDN_5GC_MNC), - FQDN_5GC_MNC, strlen(FQDN_5GC_MNC)) != 0) { + /* Check format ".mcc" after MNC */ + if (strncmp(mnc_pos + 7, FQDN_MCC, strlen(FQDN_MCC)) != 0) return NULL; - } - return p - strlen(FQDN_5GC_MNC); + /* Validate MCC digits */ + if (!isdigit(mnc_pos11) || + !isdigit(mnc_pos12) || + !isdigit(mnc_pos13)) + return NULL; + + return mnc_pos+1; /* caller will parse MNC, MCC from here */ } uint16_t ogs_plmn_id_mcc_from_fqdn(char *fqdn) { - char mcc4; - char *p = NULL; - - ogs_assert(fqdn); - - p = ogs_home_network_domain_from_fqdn(fqdn); - if (p == NULL) { + char *p = ogs_dnn_oi_from_fqdn(fqdn); + if (!p) { ogs_error("Invalid FQDN %d:%s", (int)strlen(fqdn), fqdn); return 0; } - - p += strlen(FQDN_5GC_MNC) + 3 + strlen(FQDN_MCC); - - memcpy(mcc, p, 3); - mcc3 = 0; - - return atoi(mcc); + return (uint16_t)atoi(p + 10); /* after ".mcc" */ } uint16_t ogs_plmn_id_mnc_from_fqdn(char *fqdn) { - char mnc4; - char *p = NULL; - - ogs_assert(fqdn); - - p = ogs_home_network_domain_from_fqdn(fqdn); - if (p == NULL) { + char *p = ogs_dnn_oi_from_fqdn(fqdn); + if (!p) { ogs_error("Invalid FQDN %d:%s", (int)strlen(fqdn), fqdn); return 0; } - - p += strlen(FQDN_5GC_MNC); - - memcpy(mnc, p, 3); - mnc3 = 0; - - return atoi(mnc); + return (uint16_t)atoi(p + 3); /* after "mnc" */ } uint32_t ogs_amf_id_hexdump(const ogs_amf_id_t *amf_id)
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/lib/proto/types.h -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/lib/proto/types.h
Changed
@@ -246,7 +246,8 @@ char *ogs_epc_domain_from_plmn_id(const ogs_plmn_id_t *plmn_id); char *ogs_nrf_fqdn_from_plmn_id(const ogs_plmn_id_t *plmn_id); char *ogs_nssf_fqdn_from_plmn_id(const ogs_plmn_id_t *plmn_id); -char *ogs_home_network_domain_from_fqdn(char *fqdn); +char *ogs_dnn_oi_from_plmn_id(const ogs_plmn_id_t *plmn_id); +char *ogs_dnn_oi_from_fqdn(char *fqdn); uint16_t ogs_plmn_id_mnc_from_fqdn(char *fqdn); uint16_t ogs_plmn_id_mcc_from_fqdn(char *fqdn);
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/lib/sbi/context.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/lib/sbi/context.c
Changed
@@ -2907,7 +2907,7 @@ return false; } - if (ogs_home_network_domain_from_fqdn(fqdn) == NULL) { + if (ogs_dnn_oi_from_fqdn(fqdn) == NULL) { return false; }
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/amf/nsmf-build.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/amf/nsmf-build.c
Changed
@@ -95,15 +95,13 @@ * is absent, the serving core network operator shall be assumed. */ if (ogs_sbi_plmn_id_in_vplmn(&amf_ue->home_plmn_id) == true) { - char *home_network_domain = - ogs_home_network_domain_from_plmn_id(&amf_ue->home_plmn_id); - ogs_assert(home_network_domain); + char *dnn_oi = ogs_dnn_oi_from_plmn_id(&amf_ue->home_plmn_id); + ogs_assert(dnn_oi); - SmContextCreateData.dnn = - ogs_msprintf("%s.%s", sess->dnn, home_network_domain); + SmContextCreateData.dnn = ogs_msprintf("%s.%s", sess->dnn, dnn_oi); ogs_assert(SmContextCreateData.dnn); - ogs_free(home_network_domain); + ogs_free(dnn_oi); } else {
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/mme/emm-sm.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/mme/emm-sm.c
Changed
@@ -262,8 +262,6 @@ * detach timer such that the sum of the timer values is greater than * timer T3346. */ - ogs_debug("%s Starting Implicit Detach timer", - mme_ue->imsi_bcd); ogs_timer_start(mme_ue->t_implicit_detach.timer, ogs_time_from_sec(mme_self()->time.t3412.value + 240)); break; @@ -280,11 +278,8 @@ if (MME_CURRENT_P_TMSI_IS_AVAILABLE(mme_ue)) { ogs_assert(OGS_OK == sgsap_send_detach_indication(mme_ue)); } else { - enb_ue_t *enb_ue = enb_ue_find_by_id(mme_ue->enb_ue_id); - if (enb_ue) - mme_send_delete_session_or_detach(enb_ue, mme_ue); - else - ogs_error("ENB-S1 Context has already been removed"); + mme_send_delete_session_or_detach( + enb_ue_find_by_id(mme_ue->enb_ue_id), mme_ue); } OGS_FSM_TRAN(s, &emm_state_de_registered);
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/mme/mme-gtp-path.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/mme/mme-gtp-path.c
Changed
@@ -362,7 +362,6 @@ ogs_gtp_xact_t *xact = NULL; mme_ue_t *mme_ue = NULL; - ogs_assert(enb_ue); ogs_assert(action); ogs_assert(sess); mme_ue = mme_ue_find_by_id(sess->mme_ue_id); @@ -388,7 +387,10 @@ } xact->delete_action = action; xact->local_teid = mme_ue->gn.mme_gn_teid; - xact->enb_ue_id = enb_ue->id; + if (enb_ue) + xact->enb_ue_id = enb_ue->id; + else + xact->enb_ue_id = OGS_INVALID_POOL_ID; ogs_debug("delete_session_request - xact:%p, sess:%p", xact, sess); rv = ogs_gtp_xact_commit(xact); @@ -403,7 +405,6 @@ mme_sess_t *sess = NULL, *next_sess = NULL; sgw_ue_t *sgw_ue = NULL; - ogs_assert(enb_ue); ogs_assert(mme_ue); sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id); ogs_assert(sgw_ue);
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/mme/mme-path.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/mme/mme-path.c
Changed
@@ -29,7 +29,6 @@ { int r, xact_count; ogs_assert(mme_ue); - ogs_assert(enb_ue); xact_count = mme_ue_xact_count(mme_ue, OGS_GTP_LOCAL_ORIGINATOR);
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/mme/mme-s11-handler.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/mme/mme-s11-handler.c
Changed
@@ -729,11 +729,6 @@ return; } - if (!enb_ue) { - ogs_error("ENB-S1 Context has already been removed"); - return; - } - if (!mme_ue) { ogs_error("MME-UE Context has already been removed"); return; @@ -884,6 +879,11 @@ MME_SESS_CLEAR(sess); + if (!enb_ue) { + ogs_error("ENB-S1 Context has already been removed"); + return; + } + GTP_COUNTER_CHECK(mme_ue, GTP_COUNTER_DELETE_SESSION_BY_TAU, ogs_info("%s Send TAU accept(BCS match, active_flag=%d)",
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/mme/s1ap-handler.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/mme/s1ap-handler.c
Changed
@@ -2158,7 +2158,7 @@ CLEAR_MME_UE_ALL_TIMERS(mme_ue); if (OGS_FSM_CHECK(&mme_ue->sm, emm_state_registered)) { - ogs_debug("Mobile Reachable timer started for IMSI%s", + ogs_info("Mobile Reachable timer started for IMSI%s", mme_ue->imsi_bcd); /* * TS 24.301
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/pcf/npcf-handler.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/pcf/npcf-handler.c
Changed
@@ -234,7 +234,7 @@ uint16_t fqdn_port = 0; ogs_sockaddr_t *addr = NULL, *addr6 = NULL; - char *home_network_domain = NULL; + char *dnn_oi = NULL; ogs_assert(sess); pcf_ue_sm = pcf_ue_sm_find_by_id(sess->pcf_ue_sm_id); @@ -369,22 +369,20 @@ * The DNN of the PDU session, a full DNN with both the Network Identifier * and Operator Identifier, or a DNN with the Network Identifier only */ - home_network_domain = ogs_home_network_domain_from_fqdn( - SmPolicyContextData->dnn); + dnn_oi = ogs_dnn_oi_from_fqdn(SmPolicyContextData->dnn); - if (home_network_domain) { - char dnn_network_identiferOGS_MAX_DNN_LEN+1; + if (dnn_oi) { + char dnn_niOGS_MAX_DNN_LEN+1; uint16_t mcc = 0, mnc = 0; - ogs_assert(home_network_domain > SmPolicyContextData->dnn); + ogs_assert(dnn_oi > SmPolicyContextData->dnn); - ogs_cpystrn(dnn_network_identifer, SmPolicyContextData->dnn, - ogs_min(OGS_MAX_DNN_LEN, - home_network_domain - SmPolicyContextData->dnn)); + ogs_cpystrn(dnn_ni, SmPolicyContextData->dnn, + ogs_min(OGS_MAX_DNN_LEN, dnn_oi - SmPolicyContextData->dnn)); if (sess->dnn) ogs_free(sess->dnn); - sess->dnn = ogs_strdup(dnn_network_identifer); + sess->dnn = ogs_strdup(dnn_ni); ogs_assert(sess->dnn); if (sess->full_dnn)
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/smf/gx-path.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/smf/gx-path.c
Changed
@@ -138,7 +138,17 @@ size_t sidlen = strlen(sess->gx_sid); ret = fd_sess_fromsid_msg((os0_t)sess->gx_sid, sidlen, &session, &new); ogs_assert(ret == 0); - ogs_assert(new == 0); + if (new) { + ogs_error("Gx Session %s missing in Diameter stack. " + "Releasing PDU Session to recover.", sess->gx_sid); + ret = fd_msg_free(req); + ogs_assert(ret == 0); + + ogs_free(sess->gx_sid); + sess->gx_sid = NULL; + + return; + } ogs_debug(" Found Gx Session-Id: %s", sess->gx_sid);
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/smf/gy-path.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/smf/gy-path.c
Changed
@@ -673,7 +673,17 @@ size_t sidlen = strlen(sess->gy_sid); ret = fd_sess_fromsid_msg((os0_t)sess->gy_sid, sidlen, &session, &new); ogs_assert(ret == 0); - ogs_assert(new == 0); + if (new) { + ogs_error("Gy Session %s missing in Diameter stack. " + "Releasing PDU Session to recover.", sess->gy_sid); + ret = fd_msg_free(req); + ogs_assert(ret == 0); + + ogs_free(sess->gy_sid); + sess->gy_sid = NULL; + + return; + } ogs_debug(" Found Gy Session-Id: %s", sess->gy_sid); /* Add Session-Id to the message */
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/smf/npcf-build.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/smf/npcf-build.c
Changed
@@ -115,17 +115,16 @@ * and Operator Identifier, or a DNN with the Network Identifier only */ if (ogs_sbi_supi_in_vplmn(smf_ue->supi) == true) { - char *home_network_domain = NULL; + char *dnn_oi = NULL; - home_network_domain = - ogs_home_network_domain_from_plmn_id(&sess->home_plmn_id); - ogs_assert(home_network_domain); + dnn_oi = ogs_dnn_oi_from_plmn_id(&sess->home_plmn_id); + ogs_assert(dnn_oi); SmPolicyContextData.dnn = - ogs_msprintf("%s.%s", sess->session.name, home_network_domain); + ogs_msprintf("%s.%s", sess->session.name, dnn_oi); ogs_assert(SmPolicyContextData.dnn); - ogs_free(home_network_domain); + ogs_free(dnn_oi); } else { SmPolicyContextData.dnn = ogs_strdup(sess->session.name);
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/smf/nsmf-handler.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/smf/nsmf-handler.c
Changed
@@ -43,7 +43,7 @@ char *fqdn = NULL; uint16_t fqdn_port = 0; ogs_sockaddr_t *addr = NULL, *addr6 = NULL; - char *home_network_domain = NULL; + char *dnn_oi = NULL; OpenAPI_sm_context_create_data_t *SmContextCreateData = NULL; OpenAPI_nr_location_t *NrLocation = NULL; @@ -353,22 +353,20 @@ * the full DNN in LBO and non-roaming scenarios. If the Operator Identifier * is absent, the serving core network operator shall be assumed. */ - home_network_domain = - ogs_home_network_domain_from_fqdn(SmContextCreateData->dnn); + dnn_oi = ogs_dnn_oi_from_fqdn(SmContextCreateData->dnn); - if (home_network_domain) { - char dnn_network_identiferOGS_MAX_DNN_LEN+1; + if (dnn_oi) { + char dnn_niOGS_MAX_DNN_LEN+1; uint16_t mcc = 0, mnc = 0; - ogs_assert(home_network_domain > SmContextCreateData->dnn); + ogs_assert(dnn_oi > SmContextCreateData->dnn); - ogs_cpystrn(dnn_network_identifer, SmContextCreateData->dnn, - ogs_min(OGS_MAX_DNN_LEN, - home_network_domain - SmContextCreateData->dnn)); + ogs_cpystrn(dnn_ni, SmContextCreateData->dnn, + ogs_min(OGS_MAX_DNN_LEN, dnn_oi - SmContextCreateData->dnn)); if (sess->session.name) ogs_free(sess->session.name); - sess->session.name = ogs_strdup(dnn_network_identifer); + sess->session.name = ogs_strdup(dnn_ni); ogs_assert(sess->session.name); if (sess->full_dnn) @@ -1255,7 +1253,7 @@ char *fqdn = NULL; uint16_t fqdn_port = 0; ogs_sockaddr_t *addr = NULL, *addr6 = NULL; - char *home_network_domain = NULL; + char *dnn_oi = NULL; OpenAPI_pdu_session_create_data_t *PduSessionCreateData = NULL; OpenAPI_nr_location_t *NrLocation = NULL; @@ -1325,21 +1323,19 @@ return false; } - home_network_domain = - ogs_home_network_domain_from_fqdn(PduSessionCreateData->dnn); + dnn_oi = ogs_dnn_oi_from_fqdn(PduSessionCreateData->dnn); - if (home_network_domain) { - char dnn_network_identiferOGS_MAX_DNN_LEN+1; + if (dnn_oi) { + char dnn_niOGS_MAX_DNN_LEN+1; - ogs_assert(home_network_domain > PduSessionCreateData->dnn); + ogs_assert(dnn_oi > PduSessionCreateData->dnn); - ogs_cpystrn(dnn_network_identifer, PduSessionCreateData->dnn, - ogs_min(OGS_MAX_DNN_LEN, - home_network_domain - PduSessionCreateData->dnn)); + ogs_cpystrn(dnn_ni, PduSessionCreateData->dnn, + ogs_min(OGS_MAX_DNN_LEN, dnn_oi - PduSessionCreateData->dnn)); if (sess->session.name) ogs_free(sess->session.name); - sess->session.name = ogs_strdup(dnn_network_identifer); + sess->session.name = ogs_strdup(dnn_ni); ogs_assert(sess->session.name); if (sess->full_dnn)
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/src/smf/s6b-path.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/src/smf/s6b-path.c
Changed
@@ -128,7 +128,17 @@ size_t sidlen = strlen(sess->s6b_sid); ret = fd_sess_fromsid_msg((os0_t)sess->s6b_sid, sidlen, &session, &new); ogs_assert(ret == 0); - ogs_assert(new == 0); + if (new) { + ogs_error("S6b Session %s missing in Diameter stack. " + "Releasing PDU Session to recover.", sess->s6b_sid); + ret = fd_msg_free(req); + ogs_assert(ret == 0); + + ogs_free(sess->s6b_sid); + sess->s6b_sid = NULL; + + return; + } ogs_debug(" Found S6b Session-Id: %s", sess->s6b_sid); @@ -594,7 +604,17 @@ sidlen = strlen(sess->s6b_sid); ret = fd_sess_fromsid_msg((os0_t)sess->s6b_sid, sidlen, &session, &new); ogs_assert(ret == 0); - ogs_assert(new == 0); + if (new) { + ogs_error("S6b Session %s missing in Diameter stack. " + "Releasing PDU Session to recover.", sess->s6b_sid); + ret = fd_msg_free(req); + ogs_assert(ret == 0); + + ogs_free(sess->s6b_sid); + sess->s6b_sid = NULL; + + return; + } ogs_debug(" Found S6b Session-Id: %s", sess->s6b_sid);
View file
open5gs_2.7.6.4837.6489.202512051800.tar.xz/tests/unit/proto-message-test.c -> open5gs_2.7.6.4840.782a.202512061800.tar.xz/tests/unit/proto-message-test.c
Changed
@@ -49,29 +49,29 @@ static void proto_message_test2(abts_case *tc, void *data) { - char *home_network_domain = NULL; + char *dnn_oi = NULL; char *full_dnn = NULL; char dnn_niOGS_MAX_DNN_LEN+1; ogs_plmn_id_t plmn_id1, plmn_id2; ogs_plmn_id_build(&plmn_id1, 456, 123, 3); - home_network_domain = ogs_home_network_domain_from_plmn_id(&plmn_id1); + dnn_oi = ogs_dnn_oi_from_plmn_id(&plmn_id1); ABTS_STR_EQUAL(tc, - "5gc.mnc123.mcc456.3gppnetwork.org", home_network_domain); - full_dnn = ogs_msprintf("internet.realm.%s", home_network_domain); + "mnc123.mcc456.gprs", dnn_oi); + full_dnn = ogs_msprintf("internet.realm.%s", dnn_oi); ABTS_STR_EQUAL(tc, - "internet.realm.5gc.mnc123.mcc456.3gppnetwork.org", full_dnn); + "internet.realm.mnc123.mcc456.gprs", full_dnn); ABTS_STR_EQUAL(tc, - home_network_domain, ogs_home_network_domain_from_fqdn(full_dnn)); + dnn_oi, ogs_dnn_oi_from_fqdn(full_dnn)); ogs_cpystrn(dnn_ni, full_dnn, ogs_min(OGS_MAX_DNN_LEN, - ogs_home_network_domain_from_fqdn(full_dnn) - full_dnn)); + ogs_dnn_oi_from_fqdn(full_dnn) - full_dnn)); ABTS_STR_EQUAL(tc, "internet.realm", dnn_ni); ABTS_INT_EQUAL(tc, 456, ogs_plmn_id_mcc_from_fqdn(full_dnn)); ABTS_INT_EQUAL(tc, 123, ogs_plmn_id_mnc_from_fqdn(full_dnn)); - ogs_free(home_network_domain); + ogs_free(dnn_oi); ogs_free(full_dnn); }
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
.