Projects
osmocom:latest
open5gs
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 24
View file
open5gs_2.7.3.dsc -> open5gs_2.7.4.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.3 +Version: 2.7.4 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: - dd88f5f0a72ec11c3ea6a7980461ab01368a4541 14529912 open5gs_2.7.3.tar.xz + 00c5d85960fc8a4761d1367e9d7ae77916fc6b8b 14531268 open5gs_2.7.4.tar.xz Checksums-Sha256: - 50582518d95d573ec40d88c700f466bf73283b20a875ae40718852e5f9961731 14529912 open5gs_2.7.3.tar.xz + 3057efeef445770a432db1389a8f3285e306137c1b5daf4ca45f52ce191a8803 14531268 open5gs_2.7.4.tar.xz Files: - 5e3cf881cfcbca0fbbc3024809758d27 14529912 open5gs_2.7.3.tar.xz + 2b3939d1a5bd92de0b91381f87cb3526 14531268 open5gs_2.7.4.tar.xz
View file
open5gs_2.7.3.tar.xz/.tarball-version -> open5gs_2.7.4.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.7.3 +2.7.4
View file
open5gs_2.7.3.tar.xz/debian/changelog -> open5gs_2.7.4.tar.xz/debian/changelog
Changed
@@ -1,3 +1,39 @@ +open5gs (2.7.4) unstable; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 20:01:32 +0900 + +open5gs (2.7.4~oracular1) oracular; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:59:26 +0900 + +open5gs (2.7.4~noble1) noble; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:57:53 +0900 + +open5gs (2.7.4~jammy1) jammy; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:56:48 +0900 + +open5gs (2.7.4~focal1) focal; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:54:26 +0900 + +open5gs (2.7.4~bionic1) bionic; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:52:28 +0900 + open5gs (2.7.3) unstable; urgency=medium * Bug Fixed
View file
open5gs_2.7.4.tar.xz/docs/_posts/2025-03-26-release-v2.7.4.md
Added
@@ -0,0 +1,50 @@ +--- +title: "v2.7.4 - Bug fixed" +date: 2025-03-26 20:08:00 +0900 +categories: + - Release +tags: + - News + - Release +head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>" +--- + +# Open5GS Release Note Summary + +This release introduces numerous improvements and bug fixes across core network components, enhancing overall stability, performance, and security. Below is a concise overview of the key updates: + +## Session & Subscription Management +- **SMF Enhancements:** + Improved handling of SDM subscriptions to UDM during the PDU session lifetime. +- **Optional PLMN-ID:** + Added support for an optional PLMN-ID parameter in SDM GET queries (AMF/SMF). +- **5GMM Cause Reporting:** + AMF now sends a 5GMM cause in the request to SMF when initiating a session release. + +## Mobility & Authentication Improvements +- **Mobility Fixes:** + Corrected QoS values for 2G to 4G mobility and fixed issues with UE context release and cell reselection. +- **Security & Authentication:** + Enhanced UE authentication processes, prevented crashes during security mode command failures, and implemented HSS selection improvements. + +## Interface & Protocol Enhancements +- **Diameter & PFCP:** + - Integrated statistics into the main loop for Diameter interfaces, with enhanced debug logging for HSS and PCRF. + - Addressed multiple PFCP issues, including memory management, header handling, and correct TEID restoration. +- **NAS Module:** + Fixed a heap-buffer overflow vulnerability in NAS message decoding. + +## SBI and Other Module Updates +- **SBI Enhancements:** + Enabled custom User-Agent header information for HTTP/2 requests, support for custom port numbers, and direct NRF communication. +- **Additional Fixes:** + - Resolved UE context handling issues during handovers and state transitions. + - Implemented various cosmetic fixes, typo corrections, and documentation updates. + - Introduced support for new parameters and refined subscription conditions. + +Overall, this release emphasizes improved network reliability, enhanced security measures, and better support for 5G core operations while also addressing legacy issues. + +See Release Note(https://github.com/open5gs/open5gs/releases/tag/v2.7.4) + +Download -- v2.7.4.tar.gz(https://github.com/open5gs/open5gs/archive/v2.7.4.tar.gz) +{: .notice--info}
View file
open5gs_2.7.3.tar.xz/lib/sbi/message.h -> open5gs_2.7.4.tar.xz/lib/sbi/message.h
Changed
@@ -411,6 +411,8 @@ "N5g-ddnmf_Discovery_MonitorUpdateResult" #define OGS_SBI_CALLBACK_N5G_DDNMF_DISCOVERY_MATCH_INFORMATION \ "N5g-ddnmf_Discovery_MatchInformation" +#define OGS_SBI_CALLBACK_NAMF_COMMUNICATION_ONN1N2TRANSFERFAILURE \ + "Namf_Communication_onN1N2TransferFailure" typedef struct ogs_sbi_header_s { char *method;
View file
open5gs_2.7.3.tar.xz/lib/sbi/nnrf-build.c -> open5gs_2.7.4.tar.xz/lib/sbi/nnrf-build.c
Changed
@@ -26,6 +26,10 @@ static OpenAPI_amf_info_t *build_amf_info(ogs_sbi_nf_info_t *nf_info); static OpenAPI_scp_info_t *build_scp_info(ogs_sbi_nf_info_t *nf_info); static OpenAPI_sepp_info_t *build_sepp_info(ogs_sbi_nf_info_t *nf_info); +static void free_smf_info(OpenAPI_smf_info_t *SmfInfo); +static void free_amf_info(OpenAPI_amf_info_t *AmfInfo); +static void free_scp_info(OpenAPI_scp_info_t *ScpInfo); +static void free_sepp_info(OpenAPI_sepp_info_t *SeppInfo); ogs_sbi_request_t *ogs_nnrf_nfm_build_register(void) { @@ -460,7 +464,7 @@ if (SmfInfoMap) { SmfInfo = SmfInfoMap->value; if (SmfInfo) - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); if (SmfInfoMap->key) ogs_free(SmfInfoMap->key); ogs_free(SmfInfoMap); @@ -469,14 +473,14 @@ OpenAPI_list_free(NFProfile->smf_info_list); if (NFProfile->smf_info) - OpenAPI_smf_info_free(NFProfile->smf_info); + free_smf_info(NFProfile->smf_info); OpenAPI_list_for_each(NFProfile->amf_info_list, node) { AmfInfoMap = node->data; if (AmfInfoMap) { AmfInfo = AmfInfoMap->value; if (AmfInfo) - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); if (AmfInfoMap->key) ogs_free(AmfInfoMap->key); ogs_free(AmfInfoMap); @@ -485,13 +489,13 @@ OpenAPI_list_free(NFProfile->amf_info_list); if (NFProfile->amf_info) - OpenAPI_amf_info_free(NFProfile->amf_info); + free_amf_info(NFProfile->amf_info); if (NFProfile->scp_info) - OpenAPI_scp_info_free(NFProfile->scp_info); + free_scp_info(NFProfile->scp_info); if (NFProfile->sepp_info) - OpenAPI_sepp_info_free(NFProfile->sepp_info); + free_sepp_info(NFProfile->sepp_info); ogs_free(NFProfile); } @@ -756,7 +760,7 @@ sNssaiSmfInfoList = OpenAPI_list_create(); if (!sNssaiSmfInfoList) { ogs_error("No sNssaiSmfInfoList"); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); return NULL; } @@ -764,7 +768,7 @@ DnnSmfInfoList = OpenAPI_list_create(); if (!DnnSmfInfoList) { ogs_error("No DnnSmfInfoList"); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); OpenAPI_list_free(sNssaiSmfInfoList); return NULL; } @@ -781,7 +785,7 @@ ogs_error("CHECK CONFIGURATION: No DNN"); OpenAPI_list_free(DnnSmfInfoList); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); OpenAPI_list_free(sNssaiSmfInfoList); return NULL; @@ -809,7 +813,7 @@ TaiList = OpenAPI_list_create(); if (!TaiList) { ogs_error("No TaiList"); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); return NULL; } @@ -817,7 +821,7 @@ TaiItem = ogs_calloc(1, sizeof(*TaiItem)); if (!TaiItem) { ogs_error("No TaiItem"); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); OpenAPI_list_free(TaiList); return NULL; } @@ -827,7 +831,7 @@ ogs_error("No TaiItem->plmn_id"); if (TaiItem) ogs_free(TaiItem); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); OpenAPI_list_free(TaiList); return NULL; } @@ -852,7 +856,7 @@ TaiRangeList = OpenAPI_list_create(); if (!TaiRangeList) { ogs_error("No TaiRangeList"); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); return NULL; } @@ -860,7 +864,7 @@ TacRangeList = OpenAPI_list_create(); if (!TacRangeList) { ogs_error("No TacRangeList"); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); OpenAPI_list_free(TaiRangeList); return NULL; } @@ -886,7 +890,7 @@ ogs_error("CHECK CONFIGURATION: No Start/End in TacRange"); OpenAPI_list_free(TacRangeList); - OpenAPI_smf_info_free(SmfInfo); + free_smf_info(SmfInfo); OpenAPI_list_free(TaiRangeList); return NULL; @@ -938,13 +942,13 @@ AmfInfo->amf_set_id = ogs_msprintf("%03x", nf_info->amf.amf_set_id); if (!AmfInfo->amf_set_id) { ogs_error("No amf_set_id"); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); return NULL; } AmfInfo->amf_region_id = ogs_msprintf("%02x", nf_info->amf.amf_region_id); if (!AmfInfo->amf_region_id) { ogs_error("No amf_region_id"); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); return NULL; } @@ -952,7 +956,7 @@ guamiAmfInfoList = OpenAPI_list_create(); if (!guamiAmfInfoList) { ogs_error("No guamiAmfInfoList"); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); return NULL; } @@ -998,7 +1002,7 @@ TaiList = OpenAPI_list_create(); if (!TaiList) { ogs_error("No TaiList"); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); return NULL; } @@ -1006,7 +1010,7 @@ TaiItem = ogs_calloc(1, sizeof(*TaiItem)); if (!TaiItem) { ogs_error("No TaiItem"); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); OpenAPI_list_free(TaiList); return NULL; } @@ -1041,7 +1045,7 @@ TaiRangeList = OpenAPI_list_create(); if (!TaiRangeList) { ogs_error("No TaiRangeList"); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); return NULL; } @@ -1049,7 +1053,7 @@ TacRangeList = OpenAPI_list_create(); if (!TacRangeList) { ogs_error("No TacRangeList"); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); OpenAPI_list_free(TaiRangeList); return NULL; } @@ -1075,7 +1079,7 @@ ogs_error("CHECK CONFIGURATION: No Start/End in TacRange"); OpenAPI_list_free(TacRangeList); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); OpenAPI_list_free(TaiRangeList); return NULL; @@ -1084,7 +1088,7 @@ TaiRangeItem = ogs_calloc(1, sizeof(*TaiRangeItem)); if (!TaiRangeItem) { ogs_error("No TaiRangeItem"); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); OpenAPI_list_free(TaiRangeList); return NULL; } @@ -1094,7 +1098,7 @@ if (!TaiRangeItem->plmn_id) { ogs_error("No TaiRangeItem->plmn_id"); ogs_free(TaiRangeItem); - OpenAPI_amf_info_free(AmfInfo); + free_amf_info(AmfInfo); OpenAPI_list_free(TaiRangeList); return NULL; } @@ -1134,26 +1138,26 @@ PortList = OpenAPI_list_create(); if (!PortList) { ogs_error("No PortList"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } if (nf_info->scp.http.presence) { PortMap = OpenAPI_map_create( - ogs_strdup("http"), ogs_alloc_double(nf_info->scp.http.port)); + (char *)"http", ogs_alloc_double(nf_info->scp.http.port)); if (!PortMap) { ogs_error("No PortMap"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } OpenAPI_list_add(PortList, PortMap); } if (nf_info->scp.https.presence) { PortMap = OpenAPI_map_create( - ogs_strdup("https"), ogs_alloc_double(nf_info->scp.https.port)); + (char *)"https", ogs_alloc_double(nf_info->scp.https.port)); if (!PortMap) { ogs_error("No PortMap"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } OpenAPI_list_add(PortList, PortMap); @@ -1167,7 +1171,7 @@ DomainInfoList = OpenAPI_list_create(); if (!DomainInfoList) { ogs_error("No DomainInfoList"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } for (i = 0; i < nf_info->scp.num_of_domain; i++) { @@ -1176,7 +1180,7 @@ DomainInfo = ogs_calloc(1, sizeof(*DomainInfo)); if (!DomainInfo) { ogs_error("No DomainInfo"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } @@ -1185,7 +1189,7 @@ PortList = OpenAPI_list_create(); if (!PortList) { ogs_error("No PortList"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } @@ -1195,7 +1199,7 @@ ogs_alloc_double(nf_info->scp.domaini.http.port)); if (!PortMap) { ogs_error("No PortMap"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } OpenAPI_list_add(PortList, PortMap); @@ -1206,7 +1210,7 @@ ogs_alloc_double(nf_info->scp.domaini.https.port)); if (!PortMap) { ogs_error("No PortMap"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } OpenAPI_list_add(PortList, PortMap); @@ -1221,7 +1225,7 @@ nf_info->scp.domaini.name, DomainInfo); if (!DomainInfoMap) { ogs_error("No PortMap"); - OpenAPI_scp_info_free(ScpInfo); + free_scp_info(ScpInfo); return NULL; } @@ -1253,7 +1257,7 @@ PortList = OpenAPI_list_create(); if (!PortList) { ogs_error("No PortList"); - OpenAPI_sepp_info_free(SeppInfo); + free_sepp_info(SeppInfo); return NULL; } @@ -1262,7 +1266,7 @@ (char *)"http", ogs_alloc_double(nf_info->sepp.http.port)); if (!PortMap) { ogs_error("No PortMap"); - OpenAPI_sepp_info_free(SeppInfo); + free_sepp_info(SeppInfo); return NULL; } OpenAPI_list_add(PortList, PortMap); @@ -1272,7 +1276,7 @@ (char *)"https", ogs_alloc_double(nf_info->sepp.https.port)); if (!PortMap) { ogs_error("No PortMap"); - OpenAPI_sepp_info_free(SeppInfo); + free_sepp_info(SeppInfo); return NULL; } OpenAPI_list_add(PortList, PortMap); @@ -1286,6 +1290,230 @@ return SeppInfo; } +static void free_smf_info(OpenAPI_smf_info_t *SmfInfo) +{ + OpenAPI_list_t *sNssaiSmfInfoList = NULL; + OpenAPI_snssai_smf_info_item_t *sNssaiSmfInfoItem = NULL; + OpenAPI_ext_snssai_t *sNssai = NULL; + OpenAPI_list_t *DnnSmfInfoList = NULL; + OpenAPI_dnn_smf_info_item_t *DnnSmfInfoItem = NULL; + + OpenAPI_list_t *TaiList = NULL; + OpenAPI_tai_t *TaiItem = NULL; + OpenAPI_list_t *TaiRangeList = NULL; + OpenAPI_tai_range_t *TaiRangeItem = NULL; + OpenAPI_list_t *TacRangeList = NULL; + OpenAPI_tac_range_t *TacRangeItem = NULL; + + OpenAPI_lnode_t *node = NULL, *node2 = NULL; + + ogs_assert(SmfInfo); + + sNssaiSmfInfoList = SmfInfo->s_nssai_smf_info_list; + OpenAPI_list_for_each(sNssaiSmfInfoList, node) { + sNssaiSmfInfoItem = node->data; + ogs_assert(sNssaiSmfInfoItem); + + DnnSmfInfoList = sNssaiSmfInfoItem->dnn_smf_info_list; + OpenAPI_list_for_each(DnnSmfInfoList, node2) { + DnnSmfInfoItem = node2->data; + ogs_assert(DnnSmfInfoItem); + ogs_free(DnnSmfInfoItem); + } + OpenAPI_list_free(DnnSmfInfoList); + + sNssai = sNssaiSmfInfoItem->s_nssai; + if (sNssai) { + if (sNssai->sd) + ogs_free(sNssai->sd); + ogs_free(sNssai); + } + + ogs_free(sNssaiSmfInfoItem); + } + OpenAPI_list_free(sNssaiSmfInfoList); + + TaiList = SmfInfo->tai_list; + OpenAPI_list_for_each(TaiList, node) { + TaiItem = node->data; + ogs_assert(TaiItem); + if (TaiItem->plmn_id) + ogs_sbi_free_plmn_id(TaiItem->plmn_id); + if (TaiItem->tac) + ogs_free(TaiItem->tac); + ogs_free(TaiItem); + } + OpenAPI_list_free(TaiList); + + TaiRangeList = SmfInfo->tai_range_list; + OpenAPI_list_for_each(TaiRangeList, node) { + TaiRangeItem = node->data; + ogs_assert(TaiRangeItem); + + if (TaiRangeItem->plmn_id) + ogs_sbi_free_plmn_id(TaiRangeItem->plmn_id); + + TacRangeList = TaiRangeItem->tac_range_list; + OpenAPI_list_for_each(TacRangeList, node2) { + TacRangeItem = node2->data; + ogs_assert(TacRangeItem); + if (TacRangeItem->start) + ogs_free(TacRangeItem->start); + if (TacRangeItem->end) + ogs_free(TacRangeItem->end); + + ogs_free(TacRangeItem); + } + OpenAPI_list_free(TacRangeList); + + ogs_free(TaiRangeItem); + } + OpenAPI_list_free(TaiRangeList); + + ogs_free(SmfInfo); +} + +static void free_amf_info(OpenAPI_amf_info_t *AmfInfo) +{ + OpenAPI_list_t *guamiAmfInfoList = NULL; + OpenAPI_guami_t *guamiAmfInfoItem = NULL; + + OpenAPI_list_t *TaiList = NULL; + OpenAPI_tai_t *TaiItem = NULL; + OpenAPI_list_t *TaiRangeList = NULL; + OpenAPI_tai_range_t *TaiRangeItem = NULL; + OpenAPI_list_t *TacRangeList = NULL; + OpenAPI_tac_range_t *TacRangeItem = NULL; + + OpenAPI_lnode_t *node = NULL, *node2 = NULL; + + ogs_assert(AmfInfo); + + if (AmfInfo->amf_set_id) + ogs_free(AmfInfo->amf_set_id); + if (AmfInfo->amf_region_id) + ogs_free(AmfInfo->amf_region_id); + + guamiAmfInfoList = AmfInfo->guami_list; + OpenAPI_list_for_each(guamiAmfInfoList, node) { + guamiAmfInfoItem = node->data; + if (guamiAmfInfoItem) { + if (guamiAmfInfoItem->plmn_id) { + if (guamiAmfInfoItem->plmn_id->mcc) + ogs_free(guamiAmfInfoItem->plmn_id->mcc); + if (guamiAmfInfoItem->plmn_id->mnc) + ogs_free(guamiAmfInfoItem->plmn_id->mnc); + ogs_free(guamiAmfInfoItem->plmn_id); + } + if (guamiAmfInfoItem->amf_id) + ogs_free(guamiAmfInfoItem->amf_id); + } + ogs_free(guamiAmfInfoItem); + } + + OpenAPI_list_free(guamiAmfInfoList); + + TaiList = AmfInfo->tai_list; + OpenAPI_list_for_each(TaiList, node) { + TaiItem = node->data; + ogs_assert(TaiItem); + if (TaiItem->plmn_id) + ogs_sbi_free_plmn_id(TaiItem->plmn_id); + if (TaiItem->tac) + ogs_free(TaiItem->tac); + ogs_free(TaiItem); + } + OpenAPI_list_free(TaiList); + + TaiRangeList = AmfInfo->tai_range_list; + OpenAPI_list_for_each(TaiRangeList, node) { + TaiRangeItem = node->data; + ogs_assert(TaiRangeItem); + + if (TaiRangeItem->plmn_id) + ogs_sbi_free_plmn_id(TaiRangeItem->plmn_id); + + TacRangeList = TaiRangeItem->tac_range_list; + OpenAPI_list_for_each(TacRangeList, node2) { + TacRangeItem = node2->data; + ogs_assert(TacRangeItem); + if (TacRangeItem->start) + ogs_free(TacRangeItem->start); + if (TacRangeItem->end) + ogs_free(TacRangeItem->end); + + ogs_free(TacRangeItem); + } + OpenAPI_list_free(TacRangeList); + + ogs_free(TaiRangeItem); + } + OpenAPI_list_free(TaiRangeList); + + ogs_free(AmfInfo); +} + +static void free_scp_info(OpenAPI_scp_info_t *ScpInfo) +{ + OpenAPI_map_t *PortMap = NULL; + OpenAPI_lnode_t *node = NULL, *node2 = NULL; + + OpenAPI_map_t *DomainInfoMap = NULL; + OpenAPI_scp_domain_info_t *DomainInfo = NULL; + + ogs_assert(ScpInfo); + + OpenAPI_list_for_each(ScpInfo->scp_ports, node) { + PortMap = node->data; + if (PortMap) { + ogs_free(PortMap->value); + OpenAPI_map_free(PortMap); + } + } + OpenAPI_list_free(ScpInfo->scp_ports); + + OpenAPI_list_for_each(ScpInfo->scp_domain_info_list, node) { + DomainInfoMap = node->data; + if (DomainInfoMap) { + DomainInfo = DomainInfoMap->value; + if (DomainInfo) { + OpenAPI_list_for_each(DomainInfo->scp_ports, node2) { + PortMap = node2->data; + if (PortMap) { + ogs_free(PortMap->value); + OpenAPI_map_free(PortMap); + } + } + OpenAPI_list_free(DomainInfo->scp_ports); + ogs_free(DomainInfo); + } + OpenAPI_map_free(DomainInfoMap); + } + } + OpenAPI_list_free(ScpInfo->scp_domain_info_list); + + ogs_free(ScpInfo); +} + +static void free_sepp_info(OpenAPI_sepp_info_t *SeppInfo) +{ + OpenAPI_map_t *PortMap = NULL; + OpenAPI_lnode_t *node = NULL; + + ogs_assert(SeppInfo); + + OpenAPI_list_for_each(SeppInfo->sepp_ports, node) { + PortMap = node->data; + if (PortMap) { + ogs_free(PortMap->value); + OpenAPI_map_free(PortMap); + } + } + OpenAPI_list_free(SeppInfo->sepp_ports); + + ogs_free(SeppInfo); +} + ogs_sbi_request_t *ogs_nnrf_nfm_build_update(void) { ogs_sbi_nf_instance_t *nf_instance = NULL; @@ -1458,9 +1686,6 @@ message.SubscriptionData = SubscriptionData; - message.http.custom.callback = - (char *)OGS_SBI_CALLBACK_NNRF_NFMANAGEMENT_NF_STATUS_NOTIFY; - request = ogs_sbi_build_request(&message); ogs_expect(request); @@ -1549,9 +1774,6 @@ message.h.method = (char *)OGS_SBI_HTTP_METHOD_DELETE; message.h.uri = subscription_data->resource_uri; - message.http.custom.callback = - (char *)OGS_SBI_CALLBACK_NNRF_NFMANAGEMENT_NF_STATUS_NOTIFY; - request = ogs_sbi_build_request(&message); ogs_expect(request);
View file
open5gs_2.7.3.tar.xz/meson.build -> open5gs_2.7.4.tar.xz/meson.build
Changed
@@ -16,7 +16,7 @@ # along with this program. If not, see <https://www.gnu.org/licenses/>. project('open5gs', 'c', 'cpp', - version : '2.7.3', + version : '2.7.4', license : 'AGPL-3.0-or-later', meson_version : '>= 0.43.0', default_options : @@ -25,7 +25,7 @@ , ) -libogslib_version = '2.7.3' +libogslib_version = '2.7.4' prefix = get_option('prefix') bindir = join_paths(prefix, get_option('bindir'))
View file
open5gs_2.7.3.tar.xz/src/amf/nsmf-build.c -> open5gs_2.7.4.tar.xz/src/amf/nsmf-build.c
Changed
@@ -224,6 +224,15 @@ message.http.accept = (char *)(OGS_SBI_CONTENT_JSON_TYPE "," OGS_SBI_CONTENT_NGAP_TYPE "," OGS_SBI_CONTENT_PROBLEM_TYPE); +/* + * Callback Header Configuration + * + * The 3gpp-Sbi-Callback HTTP header (per 3GPP TS 29.500 v17.9.0) indicates that + * a message is an asynchronous notification or callback. This header should be + * included only in HTTP POST requests that are callbacks (e.g., event or + * notification messages) and must not be added to regular service requests, + * such as registration (HTTP PUT) or subscription requests. + */ message.http.custom.callback = (char *)OGS_SBI_CALLBACK_NSMF_PDUSESSION_STATUS_NOTIFY; @@ -529,6 +538,18 @@ message.N1N2MsgTxfrFailureNotification = &N1N2MsgTxfrFailureNotification; +/* + * Callback Header Configuration + * + * The 3gpp-Sbi-Callback HTTP header (per 3GPP TS 29.500 v17.9.0) indicates that + * a message is an asynchronous notification or callback. This header should be + * included only in HTTP POST requests that are callbacks (e.g., event or + * notification messages) and must not be added to regular service requests, + * such as registration (HTTP PUT) or subscription requests. + */ + message.http.custom.callback = + (char *)OGS_SBI_CALLBACK_NAMF_COMMUNICATION_ONN1N2TRANSFERFAILURE; + request = ogs_sbi_build_request(&message); ogs_expect(request);
View file
open5gs_2.7.3.tar.xz/src/amf/nudm-build.c -> open5gs_2.7.4.tar.xz/src/amf/nudm-build.c
Changed
@@ -85,9 +85,6 @@ message.Amf3GppAccessRegistration = &Amf3GppAccessRegistration; - message.http.custom.callback = - (char *)OGS_SBI_CALLBACK_NUDM_UECM_DEREGISTRATION_NOTIFICATION; - request = ogs_sbi_build_request(&message); ogs_expect(request); @@ -243,9 +240,6 @@ message.SDMSubscription = &SDMSubscription; - message.http.custom.callback = - (char *)OGS_SBI_CALLBACK_NUDM_SDM_NOTIFICATION; - request = ogs_sbi_build_request(&message); ogs_expect(request);
View file
open5gs_2.7.3.tar.xz/src/nrf/nnrf-build.c -> open5gs_2.7.4.tar.xz/src/nrf/nnrf-build.c
Changed
@@ -81,6 +81,17 @@ goto end; } } +/* + * Callback Header Configuration + * + * The 3gpp-Sbi-Callback HTTP header (per 3GPP TS 29.500 v17.9.0) indicates that + * a message is an asynchronous notification or callback. This header should be + * included only in HTTP POST requests that are callbacks (e.g., event or + * notification messages) and must not be added to regular service requests, + * such as registration (HTTP PUT) or subscription requests. + */ + message.http.custom.callback = + (char *)OGS_SBI_CALLBACK_NNRF_NFMANAGEMENT_NF_STATUS_NOTIFY; message.NotificationData = NotificationData;
View file
open5gs_2.7.3.tar.xz/src/smf/nudm-build.c -> open5gs_2.7.4.tar.xz/src/smf/nudm-build.c
Changed
@@ -236,9 +236,6 @@ message.SDMSubscription = &SDMSubscription; - message.http.custom.callback = - (char *)OGS_SBI_CALLBACK_NUDM_SDM_NOTIFICATION; - request = ogs_sbi_build_request(&message); ogs_expect(request);
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
.