Changes of Revision 12
open5gs_2.5.7.dsc -> open5gs_2.5.8.dsc
Changed
x
1
2
Source: open5gs
3
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
4
Architecture: any
5
-Version: 2.5.7
6
+Version: 2.5.8
7
Maintainer: Harald Welte <laforge@gnumonks.org>
8
Uploaders: Sukchan Lee <acetcom@gmail.com>
9
Homepage: https://open5gs.org
10
11
open5gs-udr deb net optional arch=any
12
open5gs-upf deb net optional arch=any
13
Checksums-Sha1:
14
- d6c5d6d5f14991e71f3563c490835e14abd4db90 13114432 open5gs_2.5.7.tar.xz
15
+ e897336da0dd76c1ec44566c805b0790198a4625 13114496 open5gs_2.5.8.tar.xz
16
Checksums-Sha256:
17
- 9304b8df7b683fe9f2e3fa592297e75690285476e613f687c2e4d39c36bf4769 13114432 open5gs_2.5.7.tar.xz
18
+ f3ddbb82da91464a5ffdcb11f039fbf42b0dfe5b200796e8162f0bfb72430575 13114496 open5gs_2.5.8.tar.xz
19
Files:
20
- 93d783f336c306276721bfd5dc88e74d 13114432 open5gs_2.5.7.tar.xz
21
+ 9788e2808cc95a64f41d19c33cfe8307 13114496 open5gs_2.5.8.tar.xz
22
open5gs_2.5.7.tar.xz/.tarball-version -> open5gs_2.5.8.tar.xz/.tarball-version
Changed
4
1
2
-2.5.7
3
+2.5.8
4
open5gs_2.5.7.tar.xz/debian/changelog -> open5gs_2.5.8.tar.xz/debian/changelog
Changed
35
1
2
+open5gs (2.5.8) unstable; urgency=medium
3
+
4
+ * Bug Fixed
5
+
6
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:58:46 +0900
7
+
8
+open5gs (2.5.8~kinetic) kinetic; urgency=medium
9
+
10
+ * Bug Fixed
11
+
12
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:57:23 +0900
13
+
14
+open5gs (2.5.8~jammy) jammy; urgency=medium
15
+
16
+ * Bug Fixed
17
+
18
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:55:19 +0900
19
+
20
+open5gs (2.5.8~bionic) bionic; urgency=medium
21
+
22
+ * Bug Fixed
23
+
24
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:53:56 +0900
25
+
26
+open5gs (2.5.8~focal) focal; urgency=medium
27
+
28
+ * Bug Fixed
29
+
30
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 23 Jan 2023 10:52:22 +0900
31
+
32
open5gs (2.5.7) unstable; urgency=medium
33
34
* Bug Fixed
35
open5gs_2.5.7.tar.xz/lib/app/ogs-context.c -> open5gs_2.5.8.tar.xz/lib/app/ogs-context.c
Changed
14
1
2
const char *v = ogs_yaml_iter_value(&pool_iter);
3
if (v)
4
self.pool.defconfig.cluster_2048_pool = atoi(v);
5
- } else if (!strcmp(pool_key, "8192")) {
6
+ } else if (!strcmp(pool_key, "16384")) {
7
const char *v = ogs_yaml_iter_value(&pool_iter);
8
if (v)
9
- self.pool.defconfig.cluster_8192_pool = atoi(v);
10
+ self.pool.defconfig.cluster_16384_pool = atoi(v);
11
} else if (!strcmp(pool_key, "big")) {
12
const char *v = ogs_yaml_iter_value(&pool_iter);
13
if (v)
14
open5gs_2.5.7.tar.xz/lib/core/ogs-pkbuf.c -> open5gs_2.5.8.tar.xz/lib/core/ogs-pkbuf.c
Changed
112
1
2
#define OGS_CLUSTER_512_SIZE 512
3
#define OGS_CLUSTER_1024_SIZE 1024
4
#define OGS_CLUSTER_2048_SIZE 2048
5
-#define OGS_CLUSTER_8192_SIZE 8192
6
-#define OGS_CLUSTER_BIG_SIZE 1024*1024
7
+#define OGS_CLUSTER_16384_SIZE 16384
8
+
9
+/*
10
+ *
11
+ * In lib/core/ogs-kqueue.c:69
12
+ * context->change_list = ogs_calloc(
13
+ * pollset->capacity, sizeof(struct kevent));
14
+ * 1. pollset->capacity : 1024*16
15
+ * 2. sizeof(struct kevent) : 64
16
+ * 3. sizeof(ogs_pkbuf_t *) is headroom in ogs_calloc()
17
+ *
18
+ * So, we use BIG_SIZE : 1024*(16*64=1024)*64+8
19
+ */
20
+#define OGS_CLUSTER_BIG_SIZE (1024*1024+sizeof(ogs_pkbuf_t *))
21
22
typedef uint8_t ogs_cluster_128_tOGS_CLUSTER_128_SIZE;
23
typedef uint8_t ogs_cluster_256_tOGS_CLUSTER_256_SIZE;
24
typedef uint8_t ogs_cluster_512_tOGS_CLUSTER_512_SIZE;
25
typedef uint8_t ogs_cluster_1024_tOGS_CLUSTER_1024_SIZE;
26
typedef uint8_t ogs_cluster_2048_tOGS_CLUSTER_2048_SIZE;
27
-typedef uint8_t ogs_cluster_8192_tOGS_CLUSTER_8192_SIZE;
28
+typedef uint8_t ogs_cluster_16384_tOGS_CLUSTER_16384_SIZE;
29
typedef uint8_t ogs_cluster_big_tOGS_CLUSTER_BIG_SIZE;
30
31
OGS_STATIC_ASSERT(sizeof(ogs_cluster_128_t) % sizeof(void *) == 0);
32
33
OGS_STATIC_ASSERT(sizeof(ogs_cluster_512_t) % sizeof(void *) == 0);
34
OGS_STATIC_ASSERT(sizeof(ogs_cluster_1024_t) % sizeof(void *) == 0);
35
OGS_STATIC_ASSERT(sizeof(ogs_cluster_2048_t) % sizeof(void *) == 0);
36
-OGS_STATIC_ASSERT(sizeof(ogs_cluster_8192_t) % sizeof(void *) == 0);
37
+OGS_STATIC_ASSERT(sizeof(ogs_cluster_16384_t) % sizeof(void *) == 0);
38
OGS_STATIC_ASSERT(sizeof(ogs_cluster_big_t) % sizeof(void *) == 0);
39
40
typedef struct ogs_pkbuf_pool_s {
41
42
OGS_POOL(cluster_512, ogs_cluster_512_t);
43
OGS_POOL(cluster_1024, ogs_cluster_1024_t);
44
OGS_POOL(cluster_2048, ogs_cluster_2048_t);
45
- OGS_POOL(cluster_8192, ogs_cluster_8192_t);
46
+ OGS_POOL(cluster_16384, ogs_cluster_16384_t);
47
OGS_POOL(cluster_big, ogs_cluster_big_t);
48
49
ogs_thread_mutex_t mutex;
50
51
config->cluster_512_pool = 4096;
52
config->cluster_1024_pool = 2048;
53
config->cluster_2048_pool = 1024;
54
- config->cluster_8192_pool = 512;
55
+ config->cluster_16384_pool = 512;
56
config->cluster_big_pool = 8;
57
#endif
58
}
59
60
61
tmp = config->cluster_128_pool + config->cluster_256_pool +
62
config->cluster_512_pool + config->cluster_1024_pool +
63
- config->cluster_2048_pool + config->cluster_8192_pool +
64
+ config->cluster_2048_pool + config->cluster_16384_pool +
65
config->cluster_big_pool;
66
67
ogs_pool_init(&pool->pkbuf, tmp);
68
69
ogs_pool_init(&pool->cluster_512, config->cluster_512_pool);
70
ogs_pool_init(&pool->cluster_1024, config->cluster_1024_pool);
71
ogs_pool_init(&pool->cluster_2048, config->cluster_2048_pool);
72
- ogs_pool_init(&pool->cluster_8192, config->cluster_8192_pool);
73
+ ogs_pool_init(&pool->cluster_16384, config->cluster_16384_pool);
74
ogs_pool_init(&pool->cluster_big, config->cluster_big_pool);
75
#endif
76
77
78
ogs_pool_final(&pool->cluster_512);
79
ogs_pool_final(&pool->cluster_1024);
80
ogs_pool_final(&pool->cluster_2048);
81
- ogs_pool_final(&pool->cluster_8192);
82
+ ogs_pool_final(&pool->cluster_16384);
83
ogs_pool_final(&pool->cluster_big);
84
85
ogs_thread_mutex_destroy(&pool->mutex);
86
87
ogs_pool_alloc(&pool->cluster_2048, (ogs_cluster_2048_t**)&buffer);
88
ogs_expect_or_return_val(buffer, NULL);
89
cluster->size = OGS_CLUSTER_2048_SIZE;
90
- } else if (size <= OGS_CLUSTER_8192_SIZE) {
91
- ogs_pool_alloc(&pool->cluster_8192, (ogs_cluster_8192_t**)&buffer);
92
+ } else if (size <= OGS_CLUSTER_16384_SIZE) {
93
+ ogs_pool_alloc(&pool->cluster_16384, (ogs_cluster_16384_t**)&buffer);
94
ogs_expect_or_return_val(buffer, NULL);
95
- cluster->size = OGS_CLUSTER_8192_SIZE;
96
+ cluster->size = OGS_CLUSTER_16384_SIZE;
97
} else if (size <= OGS_CLUSTER_BIG_SIZE) {
98
ogs_pool_alloc(&pool->cluster_big, (ogs_cluster_big_t**)&buffer);
99
ogs_expect_or_return_val(buffer, NULL);
100
101
ogs_pool_free(
102
&pool->cluster_2048, (ogs_cluster_2048_t*)cluster->buffer);
103
break;
104
- case OGS_CLUSTER_8192_SIZE:
105
+ case OGS_CLUSTER_16384_SIZE:
106
ogs_pool_free(
107
- &pool->cluster_8192, (ogs_cluster_8192_t*)cluster->buffer);
108
+ &pool->cluster_16384, (ogs_cluster_16384_t*)cluster->buffer);
109
break;
110
case OGS_CLUSTER_BIG_SIZE:
111
ogs_pool_free(&pool->cluster_big, (ogs_cluster_big_t*)cluster->buffer);
112
open5gs_2.5.7.tar.xz/lib/core/ogs-pkbuf.h -> open5gs_2.5.8.tar.xz/lib/core/ogs-pkbuf.h
Changed
10
1
2
int cluster_512_pool;
3
int cluster_1024_pool;
4
int cluster_2048_pool;
5
- int cluster_8192_pool;
6
+ int cluster_16384_pool;
7
int cluster_big_pool;
8
} ogs_pkbuf_config_t;
9
10
open5gs_2.5.7.tar.xz/lib/core/ogs-strings.h -> open5gs_2.5.8.tar.xz/lib/core/ogs-strings.h
Changed
10
1
2
extern "C" {
3
#endif
4
5
-#define OGS_HUGE_LEN 8192
6
+#define OGS_HUGE_LEN 16384
7
8
#if defined(_WIN32)
9
#define ogs_strtok_r strtok_s
10
open5gs_2.5.7.tar.xz/lib/pfcp/context.c -> open5gs_2.5.8.tar.xz/lib/pfcp/context.c
Changed
47
1
2
self.object_teid_hash, &teid, sizeof(teid));
3
}
4
5
+int ogs_pfcp_object_count_by_teid(ogs_pfcp_sess_t *sess, uint32_t teid)
6
+{
7
+ ogs_pfcp_pdr_t *pdr = NULL;
8
+ int count = 0;
9
+
10
+ ogs_assert(sess);
11
+
12
+ ogs_list_for_each(&sess->pdr_list, pdr) {
13
+ if (pdr->f_teid.teid == teid) count++;
14
+ }
15
+
16
+ return count;
17
+}
18
+
19
ogs_pfcp_pdr_t *ogs_pfcp_pdr_find_by_choose_id(
20
ogs_pfcp_sess_t *sess, uint8_t choose_id)
21
{
22
23
24
ogs_pfcp_rule_remove_all(pdr);
25
26
- if (pdr->hash.teid.len)
27
- ogs_hash_set(self.object_teid_hash,
28
- &pdr->hash.teid.key, pdr->hash.teid.len, NULL);
29
+ if (pdr->hash.teid.len) {
30
+ /*
31
+ * Issues #2003
32
+ *
33
+ * In 5G Core, two PDRs can use different QFIDs for the same TEID.
34
+ * So, before deleting a TEID, we should check if there is a PDR
35
+ * using the same TEID.
36
+ *
37
+ * Since this PDR has already been deleted with ogs_list_remove() above,
38
+ * if the current list has a TEID count of 0, there are no other PDRs.
39
+ */
40
+ if (ogs_pfcp_object_count_by_teid(pdr->sess, pdr->f_teid.teid) == 0)
41
+ ogs_hash_set(self.object_teid_hash,
42
+ &pdr->hash.teid.key, pdr->hash.teid.len, NULL);
43
+ }
44
45
if (pdr->dnn)
46
ogs_free(pdr->dnn);
47
open5gs_2.5.7.tar.xz/lib/pfcp/context.h -> open5gs_2.5.8.tar.xz/lib/pfcp/context.h
Changed
9
1
2
void ogs_pfcp_object_teid_hash_set(
3
ogs_pfcp_object_type_e type, ogs_pfcp_pdr_t *pdr);
4
ogs_pfcp_object_t *ogs_pfcp_object_find_by_teid(uint32_t teid);
5
+int ogs_pfcp_object_count_by_teid(ogs_pfcp_sess_t *sess, uint32_t teid);
6
7
ogs_pfcp_pdr_t *ogs_pfcp_pdr_find_by_choose_id(
8
ogs_pfcp_sess_t *sess, uint8_t choose_id);
9
open5gs_2.5.7.tar.xz/lib/pfcp/rule-match.c -> open5gs_2.5.8.tar.xz/lib/pfcp/rule-match.c
Changed
23
1
2
proto = ip_h->ip_p;
3
ip_hlen = (ip_h->ip_hl)*4;
4
5
- src_addr = &ip_h->ip_src.s_addr;
6
- dst_addr = &ip_h->ip_dst.s_addr;
7
+ src_addr = (void *)&ip_h->ip_src.s_addr;
8
+ dst_addr = (void *)&ip_h->ip_dst.s_addr;
9
addr_len = OGS_IPV4_LEN;
10
} else if (ip_h->ip_v == 6) {
11
ip_h = NULL;
12
13
14
decode_ipv6_header(ip6_h, &proto, &ip_hlen);
15
16
- src_addr = (uint32_t *)ip6_h->ip6_src.s6_addr;
17
- dst_addr = (uint32_t *)ip6_h->ip6_dst.s6_addr;
18
+ src_addr = (void *)ip6_h->ip6_src.s6_addr;
19
+ dst_addr = (void *)ip6_h->ip6_dst.s6_addr;
20
addr_len = OGS_IPV6_LEN;
21
} else {
22
ogs_error("Invalid packet IP version:%d, Packet Length:%d",
23
open5gs_2.5.7.tar.xz/lib/proto/types.h -> open5gs_2.5.8.tar.xz/lib/proto/types.h
Changed
10
1
2
3
#define OGS_MAX_NUM_OF_GTPU_RESOURCE 4
4
5
-#define OGS_MAX_SDU_LEN 8192
6
+#define OGS_MAX_SDU_LEN OGS_HUGE_LEN
7
#define OGS_MAX_PKT_LEN 2048
8
#define OGS_PLMN_ID_LEN 3
9
#define OGS_MAX_PLMN_ID_BCD_LEN 6
10
open5gs_2.5.7.tar.xz/lib/sbi/client.c -> open5gs_2.5.8.tar.xz/lib/sbi/client.c
Changed
10
1
2
request->h.uri = uri;
3
}
4
5
+ curl_easy_setopt(conn->easy, CURLOPT_BUFFERSIZE, OGS_MAX_SDU_LEN*2);
6
+
7
/* HTTP Method */
8
if (strcmp(request->h.method, OGS_SBI_HTTP_METHOD_PUT) == 0 ||
9
strcmp(request->h.method, OGS_SBI_HTTP_METHOD_PATCH) == 0 ||
10
open5gs_2.5.7.tar.xz/meson.build -> open5gs_2.5.8.tar.xz/meson.build
Changed
19
1
2
# along with this program. If not, see <https://www.gnu.org/licenses/>.
3
4
project('open5gs', 'c', 'cpp',
5
- version : '2.5.7',
6
+ version : '2.5.8',
7
license : 'AGPL-3.0-or-later',
8
meson_version : '>= 0.43.0',
9
default_options :
10
11
,
12
)
13
14
-libogslib_version = '2.5.7'
15
+libogslib_version = '2.5.8'
16
17
prefix = get_option('prefix')
18
bindir = join_paths(prefix, get_option('bindir'))
19
open5gs_2.5.7.tar.xz/src/amf/nas-path.c -> open5gs_2.5.8.tar.xz/src/amf/nas-path.c
Changed
9
1
2
rv = nas_5gs_send_to_gnb(amf_ue, ngapbuf);
3
ogs_expect(rv == OGS_OK);
4
} else if (gmmbuf) {
5
+ ogs_pkbuf_free(n2smbuf);
6
ngapbuf = ngap_build_downlink_nas_transport(
7
ran_ue, gmmbuf, false, false);
8
if (!ngapbuf) {
9
open5gs_2.5.7.tar.xz/src/scp/sbi-path.c -> open5gs_2.5.8.tar.xz/src/scp/sbi-path.c
Changed
10
1
2
ogs_error("No NF-Instance ID");
3
}
4
5
- ogs_assert(true == ogs_sbi_server_send_response(stream, response));
6
+ ogs_expect(true == ogs_sbi_server_send_response(stream, response));
7
scp_assoc_remove(assoc);
8
9
return OGS_OK;
10
open5gs_2.5.7.tar.xz/src/upf/gtp-path.c -> open5gs_2.5.8.tar.xz/src/upf/gtp-path.c
Changed
19
1
2
ogs_assert(far);
3
4
if (ip_h->ip_v == 4 && sess->ipv4) {
5
- src_addr = &ip_h->ip_src.s_addr;
6
+ src_addr = (void *)&ip_h->ip_src.s_addr;
7
ogs_assert(src_addr);
8
9
/*
10
11
} else if (ip_h->ip_v == 6 && sess->ipv6) {
12
struct ip6_hdr *ip6_h = (struct ip6_hdr *)pkbuf->data;
13
ogs_assert(ip6_h);
14
- src_addr = (uint32_t *)ip6_h->ip6_src.s6_addr;
15
+ src_addr = (void *)ip6_h->ip6_src.s6_addr;
16
ogs_assert(src_addr);
17
18
/*
19
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
9
1
2
/* Receive NG-Setup Response */
3
recvbuf = testgnb_ngap_read(ngap);
4
ABTS_PTR_NOTNULL(tc, recvbuf);
5
+ ogs_pkbuf_free(recvbuf);
6
7
for (i = 0; i < NUM_OF_TEST_UE; i++) {
8
uint64_t imsi_index;
9
open5gs_2.5.7.tar.xz/tests/vonr/simple-test.c -> open5gs_2.5.8.tar.xz/tests/vonr/simple-test.c
Changed
22
1
2
/* Test Bearer Remove */
3
test_bearer_remove(qos_flow);
4
5
+ /* Send GTP-U ICMP Packet */
6
+ qos_flow = test_qos_flow_find_by_qfi(sess, 1);
7
+ ogs_assert(qos_flow);
8
+ rv = test_gtpu_send_ping(gtpu, qos_flow, TEST_PING_IPV4);
9
+ ABTS_INT_EQUAL(tc, OGS_OK, rv);
10
+
11
+ /* Receive GTP-U ICMP Packet */
12
+ recvbuf = testgnb_gtpu_read(gtpu);
13
+ ABTS_PTR_NOTNULL(tc, recvbuf);
14
+ ogs_pkbuf_free(recvbuf);
15
+
16
+ /* Wait for PDU session resource modify complete */
17
+ ogs_msleep(100);
18
+
19
/* Send UEContextReleaseRequest */
20
sendbuf = testngap_build_ue_context_release_request(test_ue,
21
NGAP_Cause_PR_radioNetwork, NGAP_CauseRadioNetwork_user_inactivity,
22