Projects
osmocom:latest
open5gs
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 12
View file
open5gs_2.5.7.dsc -> open5gs_2.5.8.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-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg Architecture: any -Version: 2.5.7 +Version: 2.5.8 Maintainer: Harald Welte <laforge@gnumonks.org> Uploaders: Sukchan Lee <acetcom@gmail.com> Homepage: https://open5gs.org @@ -31,8 +31,8 @@ open5gs-udr deb net optional arch=any open5gs-upf deb net optional arch=any Checksums-Sha1: - d6c5d6d5f14991e71f3563c490835e14abd4db90 13114432 open5gs_2.5.7.tar.xz + e897336da0dd76c1ec44566c805b0790198a4625 13114496 open5gs_2.5.8.tar.xz Checksums-Sha256: - 9304b8df7b683fe9f2e3fa592297e75690285476e613f687c2e4d39c36bf4769 13114432 open5gs_2.5.7.tar.xz + f3ddbb82da91464a5ffdcb11f039fbf42b0dfe5b200796e8162f0bfb72430575 13114496 open5gs_2.5.8.tar.xz Files: - 93d783f336c306276721bfd5dc88e74d 13114432 open5gs_2.5.7.tar.xz + 9788e2808cc95a64f41d19c33cfe8307 13114496 open5gs_2.5.8.tar.xz
View file
open5gs_2.5.7.tar.xz/.tarball-version -> open5gs_2.5.8.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.5.7 +2.5.8
View file
open5gs_2.5.7.tar.xz/debian/changelog -> open5gs_2.5.8.tar.xz/debian/changelog
Changed
@@ -1,3 +1,33 @@ +open5gs (2.5.8) unstable; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:58:46 +0900 + +open5gs (2.5.8~kinetic) kinetic; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:57:23 +0900 + +open5gs (2.5.8~jammy) jammy; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:55:19 +0900 + +open5gs (2.5.8~bionic) bionic; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:53:56 +0900 + +open5gs (2.5.8~focal) focal; urgency=medium + + * Bug Fixed + + -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:52:22 +0900 + open5gs (2.5.7) unstable; urgency=medium * Bug Fixed
View file
open5gs_2.5.7.tar.xz/lib/app/ogs-context.c -> open5gs_2.5.8.tar.xz/lib/app/ogs-context.c
Changed
@@ -425,10 +425,10 @@ const char *v = ogs_yaml_iter_value(&pool_iter); if (v) self.pool.defconfig.cluster_2048_pool = atoi(v); - } else if (!strcmp(pool_key, "8192")) { + } else if (!strcmp(pool_key, "16384")) { const char *v = ogs_yaml_iter_value(&pool_iter); if (v) - self.pool.defconfig.cluster_8192_pool = atoi(v); + self.pool.defconfig.cluster_16384_pool = atoi(v); } else if (!strcmp(pool_key, "big")) { const char *v = ogs_yaml_iter_value(&pool_iter); if (v)
View file
open5gs_2.5.7.tar.xz/lib/core/ogs-pkbuf.c -> open5gs_2.5.8.tar.xz/lib/core/ogs-pkbuf.c
Changed
@@ -28,15 +28,27 @@ #define OGS_CLUSTER_512_SIZE 512 #define OGS_CLUSTER_1024_SIZE 1024 #define OGS_CLUSTER_2048_SIZE 2048 -#define OGS_CLUSTER_8192_SIZE 8192 -#define OGS_CLUSTER_BIG_SIZE 1024*1024 +#define OGS_CLUSTER_16384_SIZE 16384 + +/* + * + * In lib/core/ogs-kqueue.c:69 + * context->change_list = ogs_calloc( + * pollset->capacity, sizeof(struct kevent)); + * 1. pollset->capacity : 1024*16 + * 2. sizeof(struct kevent) : 64 + * 3. sizeof(ogs_pkbuf_t *) is headroom in ogs_calloc() + * + * So, we use BIG_SIZE : 1024*(16*64=1024)*64+8 + */ +#define OGS_CLUSTER_BIG_SIZE (1024*1024+sizeof(ogs_pkbuf_t *)) typedef uint8_t ogs_cluster_128_tOGS_CLUSTER_128_SIZE; typedef uint8_t ogs_cluster_256_tOGS_CLUSTER_256_SIZE; typedef uint8_t ogs_cluster_512_tOGS_CLUSTER_512_SIZE; typedef uint8_t ogs_cluster_1024_tOGS_CLUSTER_1024_SIZE; typedef uint8_t ogs_cluster_2048_tOGS_CLUSTER_2048_SIZE; -typedef uint8_t ogs_cluster_8192_tOGS_CLUSTER_8192_SIZE; +typedef uint8_t ogs_cluster_16384_tOGS_CLUSTER_16384_SIZE; typedef uint8_t ogs_cluster_big_tOGS_CLUSTER_BIG_SIZE; OGS_STATIC_ASSERT(sizeof(ogs_cluster_128_t) % sizeof(void *) == 0); @@ -44,7 +56,7 @@ OGS_STATIC_ASSERT(sizeof(ogs_cluster_512_t) % sizeof(void *) == 0); OGS_STATIC_ASSERT(sizeof(ogs_cluster_1024_t) % sizeof(void *) == 0); OGS_STATIC_ASSERT(sizeof(ogs_cluster_2048_t) % sizeof(void *) == 0); -OGS_STATIC_ASSERT(sizeof(ogs_cluster_8192_t) % sizeof(void *) == 0); +OGS_STATIC_ASSERT(sizeof(ogs_cluster_16384_t) % sizeof(void *) == 0); OGS_STATIC_ASSERT(sizeof(ogs_cluster_big_t) % sizeof(void *) == 0); typedef struct ogs_pkbuf_pool_s { @@ -56,7 +68,7 @@ OGS_POOL(cluster_512, ogs_cluster_512_t); OGS_POOL(cluster_1024, ogs_cluster_1024_t); OGS_POOL(cluster_2048, ogs_cluster_2048_t); - OGS_POOL(cluster_8192, ogs_cluster_8192_t); + OGS_POOL(cluster_16384, ogs_cluster_16384_t); OGS_POOL(cluster_big, ogs_cluster_big_t); ogs_thread_mutex_t mutex; @@ -104,7 +116,7 @@ config->cluster_512_pool = 4096; config->cluster_1024_pool = 2048; config->cluster_2048_pool = 1024; - config->cluster_8192_pool = 512; + config->cluster_16384_pool = 512; config->cluster_big_pool = 8; #endif } @@ -139,7 +151,7 @@ tmp = config->cluster_128_pool + config->cluster_256_pool + config->cluster_512_pool + config->cluster_1024_pool + - config->cluster_2048_pool + config->cluster_8192_pool + + config->cluster_2048_pool + config->cluster_16384_pool + config->cluster_big_pool; ogs_pool_init(&pool->pkbuf, tmp); @@ -150,7 +162,7 @@ ogs_pool_init(&pool->cluster_512, config->cluster_512_pool); ogs_pool_init(&pool->cluster_1024, config->cluster_1024_pool); ogs_pool_init(&pool->cluster_2048, config->cluster_2048_pool); - ogs_pool_init(&pool->cluster_8192, config->cluster_8192_pool); + ogs_pool_init(&pool->cluster_16384, config->cluster_16384_pool); ogs_pool_init(&pool->cluster_big, config->cluster_big_pool); #endif @@ -188,7 +200,7 @@ ogs_pool_final(&pool->cluster_512); ogs_pool_final(&pool->cluster_1024); ogs_pool_final(&pool->cluster_2048); - ogs_pool_final(&pool->cluster_8192); + ogs_pool_final(&pool->cluster_16384); ogs_pool_final(&pool->cluster_big); ogs_thread_mutex_destroy(&pool->mutex); @@ -378,10 +390,10 @@ ogs_pool_alloc(&pool->cluster_2048, (ogs_cluster_2048_t**)&buffer); ogs_expect_or_return_val(buffer, NULL); cluster->size = OGS_CLUSTER_2048_SIZE; - } else if (size <= OGS_CLUSTER_8192_SIZE) { - ogs_pool_alloc(&pool->cluster_8192, (ogs_cluster_8192_t**)&buffer); + } else if (size <= OGS_CLUSTER_16384_SIZE) { + ogs_pool_alloc(&pool->cluster_16384, (ogs_cluster_16384_t**)&buffer); ogs_expect_or_return_val(buffer, NULL); - cluster->size = OGS_CLUSTER_8192_SIZE; + cluster->size = OGS_CLUSTER_16384_SIZE; } else if (size <= OGS_CLUSTER_BIG_SIZE) { ogs_pool_alloc(&pool->cluster_big, (ogs_cluster_big_t**)&buffer); ogs_expect_or_return_val(buffer, NULL); @@ -419,9 +431,9 @@ ogs_pool_free( &pool->cluster_2048, (ogs_cluster_2048_t*)cluster->buffer); break; - case OGS_CLUSTER_8192_SIZE: + case OGS_CLUSTER_16384_SIZE: ogs_pool_free( - &pool->cluster_8192, (ogs_cluster_8192_t*)cluster->buffer); + &pool->cluster_16384, (ogs_cluster_16384_t*)cluster->buffer); break; case OGS_CLUSTER_BIG_SIZE: ogs_pool_free(&pool->cluster_big, (ogs_cluster_big_t*)cluster->buffer);
View file
open5gs_2.5.7.tar.xz/lib/core/ogs-pkbuf.h -> open5gs_2.5.8.tar.xz/lib/core/ogs-pkbuf.h
Changed
@@ -68,7 +68,7 @@ int cluster_512_pool; int cluster_1024_pool; int cluster_2048_pool; - int cluster_8192_pool; + int cluster_16384_pool; int cluster_big_pool; } ogs_pkbuf_config_t;
View file
open5gs_2.5.7.tar.xz/lib/core/ogs-strings.h -> open5gs_2.5.8.tar.xz/lib/core/ogs-strings.h
Changed
@@ -54,7 +54,7 @@ extern "C" { #endif -#define OGS_HUGE_LEN 8192 +#define OGS_HUGE_LEN 16384 #if defined(_WIN32) #define ogs_strtok_r strtok_s
View file
open5gs_2.5.7.tar.xz/lib/pfcp/context.c -> open5gs_2.5.8.tar.xz/lib/pfcp/context.c
Changed
@@ -929,6 +929,20 @@ self.object_teid_hash, &teid, sizeof(teid)); } +int ogs_pfcp_object_count_by_teid(ogs_pfcp_sess_t *sess, uint32_t teid) +{ + ogs_pfcp_pdr_t *pdr = NULL; + int count = 0; + + ogs_assert(sess); + + ogs_list_for_each(&sess->pdr_list, pdr) { + if (pdr->f_teid.teid == teid) count++; + } + + return count; +} + ogs_pfcp_pdr_t *ogs_pfcp_pdr_find_by_choose_id( ogs_pfcp_sess_t *sess, uint8_t choose_id) { @@ -997,9 +1011,21 @@ ogs_pfcp_rule_remove_all(pdr); - if (pdr->hash.teid.len) - ogs_hash_set(self.object_teid_hash, - &pdr->hash.teid.key, pdr->hash.teid.len, NULL); + if (pdr->hash.teid.len) { + /* + * Issues #2003 + * + * In 5G Core, two PDRs can use different QFIDs for the same TEID. + * So, before deleting a TEID, we should check if there is a PDR + * using the same TEID. + * + * Since this PDR has already been deleted with ogs_list_remove() above, + * if the current list has a TEID count of 0, there are no other PDRs. + */ + if (ogs_pfcp_object_count_by_teid(pdr->sess, pdr->f_teid.teid) == 0) + ogs_hash_set(self.object_teid_hash, + &pdr->hash.teid.key, pdr->hash.teid.len, NULL); + } if (pdr->dnn) ogs_free(pdr->dnn);
View file
open5gs_2.5.7.tar.xz/lib/pfcp/context.h -> open5gs_2.5.8.tar.xz/lib/pfcp/context.h
Changed
@@ -397,6 +397,7 @@ void ogs_pfcp_object_teid_hash_set( ogs_pfcp_object_type_e type, ogs_pfcp_pdr_t *pdr); ogs_pfcp_object_t *ogs_pfcp_object_find_by_teid(uint32_t teid); +int ogs_pfcp_object_count_by_teid(ogs_pfcp_sess_t *sess, uint32_t teid); ogs_pfcp_pdr_t *ogs_pfcp_pdr_find_by_choose_id( ogs_pfcp_sess_t *sess, uint8_t choose_id);
View file
open5gs_2.5.7.tar.xz/lib/pfcp/rule-match.c -> open5gs_2.5.8.tar.xz/lib/pfcp/rule-match.c
Changed
@@ -143,8 +143,8 @@ proto = ip_h->ip_p; ip_hlen = (ip_h->ip_hl)*4; - src_addr = &ip_h->ip_src.s_addr; - dst_addr = &ip_h->ip_dst.s_addr; + src_addr = (void *)&ip_h->ip_src.s_addr; + dst_addr = (void *)&ip_h->ip_dst.s_addr; addr_len = OGS_IPV4_LEN; } else if (ip_h->ip_v == 6) { ip_h = NULL; @@ -152,8 +152,8 @@ decode_ipv6_header(ip6_h, &proto, &ip_hlen); - src_addr = (uint32_t *)ip6_h->ip6_src.s6_addr; - dst_addr = (uint32_t *)ip6_h->ip6_dst.s6_addr; + src_addr = (void *)ip6_h->ip6_src.s6_addr; + dst_addr = (void *)ip6_h->ip6_dst.s6_addr; addr_len = OGS_IPV6_LEN; } else { ogs_error("Invalid packet IP version:%d, Packet Length:%d",
View file
open5gs_2.5.7.tar.xz/lib/proto/types.h -> open5gs_2.5.8.tar.xz/lib/proto/types.h
Changed
@@ -51,7 +51,7 @@ #define OGS_MAX_NUM_OF_GTPU_RESOURCE 4 -#define OGS_MAX_SDU_LEN 8192 +#define OGS_MAX_SDU_LEN OGS_HUGE_LEN #define OGS_MAX_PKT_LEN 2048 #define OGS_PLMN_ID_LEN 3 #define OGS_MAX_PLMN_ID_BCD_LEN 6
View file
open5gs_2.5.7.tar.xz/lib/sbi/client.c -> open5gs_2.5.8.tar.xz/lib/sbi/client.c
Changed
@@ -372,6 +372,8 @@ request->h.uri = uri; } + curl_easy_setopt(conn->easy, CURLOPT_BUFFERSIZE, OGS_MAX_SDU_LEN*2); + /* HTTP Method */ if (strcmp(request->h.method, OGS_SBI_HTTP_METHOD_PUT) == 0 || strcmp(request->h.method, OGS_SBI_HTTP_METHOD_PATCH) == 0 ||
View file
open5gs_2.5.7.tar.xz/meson.build -> open5gs_2.5.8.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.5.7', + version : '2.5.8', license : 'AGPL-3.0-or-later', meson_version : '>= 0.43.0', default_options : @@ -24,7 +24,7 @@ , ) -libogslib_version = '2.5.7' +libogslib_version = '2.5.8' prefix = get_option('prefix') bindir = join_paths(prefix, get_option('bindir'))
View file
open5gs_2.5.7.tar.xz/src/amf/nas-path.c -> open5gs_2.5.8.tar.xz/src/amf/nas-path.c
Changed
@@ -655,6 +655,7 @@ rv = nas_5gs_send_to_gnb(amf_ue, ngapbuf); ogs_expect(rv == OGS_OK); } else if (gmmbuf) { + ogs_pkbuf_free(n2smbuf); ngapbuf = ngap_build_downlink_nas_transport( ran_ue, gmmbuf, false, false); if (!ngapbuf) {
View file
open5gs_2.5.7.tar.xz/src/scp/sbi-path.c -> open5gs_2.5.8.tar.xz/src/scp/sbi-path.c
Changed
@@ -552,7 +552,7 @@ ogs_error("No NF-Instance ID"); } - ogs_assert(true == ogs_sbi_server_send_response(stream, response)); + ogs_expect(true == ogs_sbi_server_send_response(stream, response)); scp_assoc_remove(assoc); return OGS_OK;
View file
open5gs_2.5.7.tar.xz/src/upf/gtp-path.c -> open5gs_2.5.8.tar.xz/src/upf/gtp-path.c
Changed
@@ -421,7 +421,7 @@ ogs_assert(far); if (ip_h->ip_v == 4 && sess->ipv4) { - src_addr = &ip_h->ip_src.s_addr; + src_addr = (void *)&ip_h->ip_src.s_addr; ogs_assert(src_addr); /* @@ -452,7 +452,7 @@ } else if (ip_h->ip_v == 6 && sess->ipv6) { struct ip6_hdr *ip6_h = (struct ip6_hdr *)pkbuf->data; ogs_assert(ip6_h); - src_addr = (uint32_t *)ip6_h->ip6_src.s6_addr; + src_addr = (void *)ip6_h->ip6_src.s6_addr; ogs_assert(src_addr); /*
View file
open5gs_2.5.7.tar.xz/tests/registration/multi-ue-test.c -> open5gs_2.5.8.tar.xz/tests/registration/multi-ue-test.c
Changed
@@ -58,6 +58,7 @@ /* Receive NG-Setup Response */ recvbuf = testgnb_ngap_read(ngap); ABTS_PTR_NOTNULL(tc, recvbuf); + ogs_pkbuf_free(recvbuf); for (i = 0; i < NUM_OF_TEST_UE; i++) { uint64_t imsi_index;
View file
open5gs_2.5.7.tar.xz/tests/vonr/simple-test.c -> open5gs_2.5.8.tar.xz/tests/vonr/simple-test.c
Changed
@@ -423,6 +423,20 @@ /* Test Bearer Remove */ test_bearer_remove(qos_flow); + /* 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); + + /* Receive GTP-U ICMP Packet */ + recvbuf = testgnb_gtpu_read(gtpu); + ABTS_PTR_NOTNULL(tc, recvbuf); + ogs_pkbuf_free(recvbuf); + + /* Wait for PDU session resource modify complete */ + ogs_msleep(100); + /* Send UEContextReleaseRequest */ sendbuf = testngap_build_ue_context_release_request(test_ue, NGAP_Cause_PR_radioNetwork, NGAP_CauseRadioNetwork_user_inactivity,
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
.