Changes of Revision 110

commit_0e0085c69f0c7bd00c93c9dc5145c75ea6cee194.txt Added
commit_ce7b60dbb52a898f51834f923e87dddc45462a39.txt Deleted
open5gs_2.5.5.90.ce7b6.dsc -> open5gs_2.5.5.91.0e00.dsc Changed
x
 
1
@@ -2,7 +2,7 @@
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.5.90.ce7b6
6
+Version: 2.5.5.91.0e00
7
 Maintainer: Harald Welte <laforge@gnumonks.org>
8
 Uploaders: Sukchan Lee <acetcom@gmail.com>
9
 Homepage: https://open5gs.org
10
@@ -31,8 +31,8 @@
11
  open5gs-udr deb net optional arch=any
12
  open5gs-upf deb net optional arch=any
13
 Checksums-Sha1:
14
- 3728e322b356c019549a3debfb053c3091aa8428 13609484 open5gs_2.5.5.90.ce7b6.tar.xz
15
+ c6b83e79c9ca7b0645d812b852cab237296ac27f 13608528 open5gs_2.5.5.91.0e00.tar.xz
16
 Checksums-Sha256:
17
- fc55d0fb629bf1e7c4da6fa8e61a7a66db8d35f0646884d924c8ffbf0bf6a1c1 13609484 open5gs_2.5.5.90.ce7b6.tar.xz
18
+ 11edb7fdbd79057a933398866ee17226863258d7c4cf1aaae39c7435c8f97c19 13608528 open5gs_2.5.5.91.0e00.tar.xz
19
 Files:
20
- 73977d71ffdb5901c2a2e9466943905a 13609484 open5gs_2.5.5.90.ce7b6.tar.xz
21
+ 954a4e486d856dc273b3af6afacbfaab 13608528 open5gs_2.5.5.91.0e00.tar.xz
22
open5gs_2.5.5.90.ce7b6.tar.xz/.tarball-version -> open5gs_2.5.5.91.0e00.tar.xz/.tarball-version Changed
4
 
1
@@ -1 +1 @@
2
-2.5.5.90-ce7b6
3
+2.5.5.91-0e00
4
open5gs_2.5.5.90.ce7b6.tar.xz/debian/changelog -> open5gs_2.5.5.91.0e00.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-open5gs (2.5.5.90.ce7b6) unstable; urgency=medium
3
+open5gs (2.5.5.91.0e00) unstable; urgency=medium
4
 
5
   * Automatically generated changelog entry for building the Osmocom master feed
6
 
7
- -- Osmocom OBS scripts <info@osmocom.org>  Wed, 18 Jan 2023 13:48:39 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org>  Wed, 18 Jan 2023 14:39:25 +0000
9
 
10
 open5gs (2.5.6) unstable; urgency=medium
11
 
12
open5gs_2.5.5.90.ce7b6.tar.xz/lib/pfcp/context.c -> open5gs_2.5.5.91.0e00.tar.xz/lib/pfcp/context.c Changed
47
 
1
@@ -929,6 +929,20 @@
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
@@ -997,9 +1011,21 @@
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.5.90.ce7b6.tar.xz/lib/pfcp/context.h -> open5gs_2.5.5.91.0e00.tar.xz/lib/pfcp/context.h Changed
9
 
1
@@ -397,6 +397,7 @@
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.5.90.ce7b6.tar.xz/tests/vonr/simple-test.c -> open5gs_2.5.5.91.0e00.tar.xz/tests/vonr/simple-test.c Changed
22
 
1
@@ -418,6 +418,20 @@
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