Changes of Revision 641

open5gs_2.7.0.114.1dc43.202403222026.dsc Deleted
x
 
1
@@ -1,39 +0,0 @@
2
-Format: 3.0 (native)
3
-Source: open5gs
4
-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
5
-Architecture: any
6
-Version: 2.7.0.114.1dc43.202403222026
7
-Maintainer: Harald Welte <laforge@gnumonks.org>
8
-Uploaders: Sukchan Lee <acetcom@gmail.com>
9
-Homepage: https://open5gs.org
10
-Standards-Version: 4.3.0
11
-Vcs-Browser: https://github.com/open5gs/open5gs
12
-Vcs-Git: git://github.com/open5gs/open5gs
13
-Build-Depends: debhelper (>= 11), git, pkg-config, meson (>= 0.43.0), cmake, flex, bison, libgnutls28-dev, libgcrypt-dev, libssl-dev, libidn11-dev, libmongoc-dev, libbson-dev, libsctp-dev, libyaml-dev, libmicrohttpd-dev, libcurl4-gnutls-dev, libnghttp2-dev, libtins-dev, libtalloc-dev
14
-Package-List:
15
- open5gs deb net optional arch=any
16
- open5gs-amf deb net optional arch=any
17
- open5gs-ausf deb net optional arch=any
18
- open5gs-bsf deb net optional arch=any
19
- open5gs-common deb net optional arch=any
20
- open5gs-dbg deb net optional arch=any
21
- open5gs-hss deb net optional arch=any
22
- open5gs-mme deb net optional arch=any
23
- open5gs-nrf deb net optional arch=any
24
- open5gs-nssf deb net optional arch=any
25
- open5gs-pcf deb net optional arch=any
26
- open5gs-pcrf deb net optional arch=any
27
- open5gs-scp deb net optional arch=any
28
- open5gs-sepp deb net optional arch=any
29
- open5gs-sgwc deb net optional arch=any
30
- open5gs-sgwu deb net optional arch=any
31
- open5gs-smf deb net optional arch=any
32
- open5gs-udm deb net optional arch=any
33
- open5gs-udr deb net optional arch=any
34
- open5gs-upf deb net optional arch=any
35
-Checksums-Sha1:
36
- eb3a1920ec2621aad0d8ec9d90572a591c9e5469 14485372 open5gs_2.7.0.114.1dc43.202403222026.tar.xz
37
-Checksums-Sha256:
38
- a255370177ab4cfb738166f889c296382de204125cbb501ce77ee851659d5351 14485372 open5gs_2.7.0.114.1dc43.202403222026.tar.xz
39
-Files:
40
- 236931bf8a1bdba5eae5bf0750159054 14485372 open5gs_2.7.0.114.1dc43.202403222026.tar.xz
41
open5gs_2.7.0.115.a667.202403232026.dsc Added
41
 
1
@@ -0,0 +1,39 @@
2
+Format: 3.0 (native)
3
+Source: open5gs
4
+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
5
+Architecture: any
6
+Version: 2.7.0.115.a667.202403232026
7
+Maintainer: Harald Welte <laforge@gnumonks.org>
8
+Uploaders: Sukchan Lee <acetcom@gmail.com>
9
+Homepage: https://open5gs.org
10
+Standards-Version: 4.3.0
11
+Vcs-Browser: https://github.com/open5gs/open5gs
12
+Vcs-Git: git://github.com/open5gs/open5gs
13
+Build-Depends: debhelper (>= 11), git, pkg-config, meson (>= 0.43.0), cmake, flex, bison, libgnutls28-dev, libgcrypt-dev, libssl-dev, libidn11-dev, libmongoc-dev, libbson-dev, libsctp-dev, libyaml-dev, libmicrohttpd-dev, libcurl4-gnutls-dev, libnghttp2-dev, libtins-dev, libtalloc-dev
14
+Package-List:
15
+ open5gs deb net optional arch=any
16
+ open5gs-amf deb net optional arch=any
17
+ open5gs-ausf deb net optional arch=any
18
+ open5gs-bsf deb net optional arch=any
19
+ open5gs-common deb net optional arch=any
20
+ open5gs-dbg deb net optional arch=any
21
+ open5gs-hss deb net optional arch=any
22
+ open5gs-mme deb net optional arch=any
23
+ open5gs-nrf deb net optional arch=any
24
+ open5gs-nssf deb net optional arch=any
25
+ open5gs-pcf deb net optional arch=any
26
+ open5gs-pcrf deb net optional arch=any
27
+ open5gs-scp deb net optional arch=any
28
+ open5gs-sepp deb net optional arch=any
29
+ open5gs-sgwc deb net optional arch=any
30
+ open5gs-sgwu deb net optional arch=any
31
+ open5gs-smf deb net optional arch=any
32
+ open5gs-udm deb net optional arch=any
33
+ open5gs-udr deb net optional arch=any
34
+ open5gs-upf deb net optional arch=any
35
+Checksums-Sha1:
36
+ 867212c8f8f23e1f9662d2ab44a9033d35e71d01 14485012 open5gs_2.7.0.115.a667.202403232026.tar.xz
37
+Checksums-Sha256:
38
+ f8d079bb16b2381a1f2f2a6bd17a5fb0ad3c2ff775a7ac76a1969677ae2026bd 14485012 open5gs_2.7.0.115.a667.202403232026.tar.xz
39
+Files:
40
+ 9c66f34d17f5374571dd701501702105 14485012 open5gs_2.7.0.115.a667.202403232026.tar.xz
41
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/.tarball-version -> open5gs_2.7.0.115.a667.202403232026.tar.xz/.tarball-version Changed
4
 
1
@@ -1 +1 @@
2
-2.7.0.114-1dc43.202403222026
3
+2.7.0.115-a667.202403232026
4
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/debian/changelog -> open5gs_2.7.0.115.a667.202403232026.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-open5gs (2.7.0.114.1dc43.202403222026) unstable; urgency=medium
3
+open5gs (2.7.0.115.a667.202403232026) unstable; urgency=medium
4
 
5
   * Automatically generated changelog entry for building the Osmocom nightly feed
6
 
7
- -- Osmocom OBS scripts <info@osmocom.org>  Fri, 22 Mar 2024 20:27:41 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org>  Sat, 23 Mar 2024 20:27:39 +0000
9
 
10
 open5gs (2.7.0) unstable; urgency=medium
11
 
12
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/gtp/path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/gtp/path.c Changed
25
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -128,16 +128,3 @@
9
 
10
     return OGS_OK;
11
 }
12
-
13
-void ogs_gtp_send_error_message(
14
-        ogs_gtp_xact_t *xact, uint32_t teid, uint8_t type, uint8_t cause_value)
15
-{
16
-    switch (xact->gtp_version) {
17
-    case 1:
18
-        ogs_gtp1_send_error_message(xact, teid, type, cause_value);
19
-        break;
20
-    case 2:
21
-        ogs_gtp2_send_error_message(xact, teid, type, cause_value);
22
-        break;
23
-    }
24
-}
25
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/gtp/path.h -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/gtp/path.h Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -72,9 +72,6 @@
9
 int ogs_gtp_send(ogs_gtp_node_t *gnode, ogs_pkbuf_t *pkbuf);
10
 int ogs_gtp_sendto(ogs_gtp_node_t *gnode, ogs_pkbuf_t *pkbuf);
11
 
12
-void ogs_gtp_send_error_message(
13
-        ogs_gtp_xact_t *xact, uint32_t teid, uint8_t type, uint8_t cause_value);
14
-
15
 #ifdef __cplusplus
16
 }
17
 #endif
18
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/gtp/v2/message.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/gtp/v2/message.c Changed
17
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -20,7 +20,7 @@
9
 /*******************************************************************************
10
  * This file had been created by gtp-tlv.py script v0.1.0
11
  * Please do not modify this file but regenerate it via script.
12
- * Created on: 2023-08-26 16:35:12.648272 by acetcom
13
+ * Created on: 2024-03-23 07:21:22.444548 by acetcom
14
  * from 29274-h70.docx
15
  ******************************************************************************/
16
 
17
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/gtp/v2/message.h -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/gtp/v2/message.h Changed
27
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -20,7 +20,7 @@
9
 /*******************************************************************************
10
  * This file had been created by gtp-tlv.py script v0.1.0
11
  * Please do not modify this file but regenerate it via script.
12
- * Created on: 2023-08-26 16:35:12.642445 by acetcom
13
+ * Created on: 2024-03-23 07:21:22.438775 by acetcom
14
  * from 29274-h70.docx
15
  ******************************************************************************/
16
 
17
@@ -44,6 +44,9 @@
18
         struct {
19
 #define OGS_GTP2_VERSION_0 0
20
 #define OGS_GTP2_VERSION_1 1
21
+
22
+#define OGS_GTP2_TEID_NO_PRESENCE 0
23
+#define OGS_GTP2_TEID_PRESENCE 1
24
         ED4(uint8_t version:3;,
25
             uint8_t piggybacked:1;,
26
             uint8_t teid_presence:1;,
27
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/gtp/v2/path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/gtp/v2/path.c Changed
45
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -160,8 +160,8 @@
9
     return pkb_resp;
10
 }
11
 
12
-void ogs_gtp2_send_error_message(
13
-        ogs_gtp_xact_t *xact, uint32_t teid, uint8_t type, uint8_t cause_value)
14
+void ogs_gtp2_send_error_message(ogs_gtp_xact_t *xact,
15
+        int teid_presence, uint32_t teid, uint8_t type, uint8_t cause_value)
16
 {
17
     int rv;
18
     ogs_gtp2_message_t errmsg;
19
@@ -170,6 +170,7 @@
20
     ogs_pkbuf_t *pkbuf = NULL;
21
 
22
     memset(&errmsg, 0, sizeof(ogs_gtp2_message_t));
23
+    errmsg.h.teid_presence = teid_presence;
24
     errmsg.h.teid = teid;
25
     errmsg.h.type = type;
26
 
27
@@ -257,7 +258,7 @@
28
 
29
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
30
     h.type = OGS_GTP2_ECHO_REQUEST_TYPE;
31
-    h.teid = 0;
32
+    h.teid_presence = OGS_GTP2_TEID_NO_PRESENCE;
33
 
34
     pkbuf = ogs_gtp2_build_echo_request(h.type, recovery, features);
35
     if (!pkbuf) {
36
@@ -284,7 +285,7 @@
37
 
38
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
39
     h.type = OGS_GTP2_ECHO_RESPONSE_TYPE;
40
-    h.teid = 0;
41
+    h.teid_presence = OGS_GTP2_TEID_NO_PRESENCE;
42
 
43
     pkbuf = ogs_gtp2_build_echo_response(h.type, recovery, features);
44
     if (!pkbuf) {
45
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/gtp/v2/path.h -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/gtp/v2/path.h Changed
19
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -36,8 +36,8 @@
9
         ogs_pkbuf_t *pkbuf);
10
 
11
 ogs_pkbuf_t *ogs_gtp2_handle_echo_req(ogs_pkbuf_t *pkb);
12
-void ogs_gtp2_send_error_message(
13
-        ogs_gtp_xact_t *xact, uint32_t teid, uint8_t type, uint8_t cause_value);
14
+void ogs_gtp2_send_error_message(ogs_gtp_xact_t *xact,
15
+        int teid_presence, uint32_t teid, uint8_t type, uint8_t cause_value);
16
 
17
 void ogs_gtp2_send_echo_request(
18
         ogs_gtp_node_t *gnode, uint8_t recovery, uint8_t features);
19
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/gtp/v2/support/gtp-tlv.py -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/gtp/v2/support/gtp-tlv.py Changed
26
 
1
@@ -1,4 +1,4 @@
2
-# Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
3
+# Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
4
 
5
 # This file is part of Open5GS.
6
 
7
@@ -60,7 +60,7 @@
8
 def output_header_to_file(f):
9
     now = datetime.datetime.now()
10
     f.write("""/*
11
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
12
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
13
  *
14
  * This file is part of Open5GS.
15
  *
16
@@ -461,6 +461,9 @@
17
         struct {
18
 #define OGS_GTP2_VERSION_0 0
19
 #define OGS_GTP2_VERSION_1 1
20
+
21
+#define OGS_GTP2_TEID_NO_PRESENCE 0
22
+#define OGS_GTP2_TEID_PRESENCE 1
23
         ED4(uint8_t version:3;,
24
             uint8_t piggybacked:1;,
25
             uint8_t teid_presence:1;,
26
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/gtp/xact.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/gtp/xact.c Changed
34
 
1
@@ -1,6 +1,7 @@
2
 /*
3
  * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
  * Copyright (C) 2022 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
5
+ * Copyright (C) 2023-2024 by Sukchan Lee <acetcom@gmail.com>
6
  *
7
  * This file is part of Open5GS.
8
  *
9
@@ -407,7 +408,7 @@
10
         return OGS_ERROR;
11
     }
12
 
13
-    if (hdesc->type > OGS_GTP2_VERSION_NOT_SUPPORTED_INDICATION_TYPE) {
14
+    if (hdesc->teid_presence) {
15
         gtp_hlen = OGS_GTPV2C_HEADER_LEN;
16
     } else {
17
         gtp_hlen = OGS_GTPV2C_HEADER_LEN - OGS_GTP2_TEID_LEN;
18
@@ -420,12 +421,12 @@
19
     h->version = 2;
20
     h->type = hdesc->type;
21
 
22
-    if (hdesc->type > OGS_GTP2_VERSION_NOT_SUPPORTED_INDICATION_TYPE) {
23
-        h->teid_presence = 1;
24
+    if (hdesc->teid_presence) {
25
+        h->teid_presence = OGS_GTP2_TEID_PRESENCE;
26
         h->teid = htobe32(hdesc->teid);
27
         h->sqn = OGS_GTP2_XID_TO_SQN(xact->xid);
28
     } else {
29
-        h->teid_presence = 0;
30
+        h->teid_presence = OGS_GTP2_TEID_NO_PRESENCE;
31
         h->sqn_only = OGS_GTP2_XID_TO_SQN(xact->xid);
32
     }
33
     h->length = htobe16(pkbuf->len - 4);
34
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/pfcp/message.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/pfcp/message.c Changed
17
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -20,7 +20,7 @@
9
 /*******************************************************************************
10
  * This file had been created by pfcp-tlv.py script v0.1.0
11
  * Please do not modify this file but regenerate it via script.
12
- * Created on: 2024-01-19 23:36:01.346970 by acetcom
13
+ * Created on: 2024-03-23 07:20:44.691773 by acetcom
14
  * from 29244-h71-modified.docx
15
  ******************************************************************************/
16
 
17
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/pfcp/message.h -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/pfcp/message.h Changed
26
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -20,7 +20,7 @@
9
 /*******************************************************************************
10
  * This file had been created by pfcp-tlv.py script v0.1.0
11
  * Please do not modify this file but regenerate it via script.
12
- * Created on: 2024-01-19 23:36:01.327925 by acetcom
13
+ * Created on: 2024-03-23 07:20:44.672650 by acetcom
14
  * from 29244-h71-modified.docx
15
  ******************************************************************************/
16
 
17
@@ -41,6 +41,8 @@
18
 typedef struct ogs_pfcp_header_s {
19
     union {
20
         struct {
21
+#define OGS_PFCP_SEID_NO_PRESENCE 0
22
+#define OGS_PFCP_SEID_PRESENCE 1
23
         ED4(uint8_t version:3;,
24
             uint8_t spare1:3;,
25
             uint8_t mp:1;,
26
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/pfcp/path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/pfcp/path.c Changed
79
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -140,7 +140,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
11
     h.type = OGS_PFCP_HEARTBEAT_REQUEST_TYPE;
12
-    h.seid = 0;
13
+    h.seid_presence = OGS_PFCP_SEID_NO_PRESENCE;
14
 
15
     xact = ogs_pfcp_xact_local_create(node, cb, node);
16
     if (!xact) {
17
@@ -176,7 +176,7 @@
18
 
19
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
20
     h.type = OGS_PFCP_HEARTBEAT_RESPONSE_TYPE;
21
-    h.seid = 0;
22
+    h.seid_presence = OGS_PFCP_SEID_NO_PRESENCE;
23
 
24
     pkbuf = ogs_pfcp_build_heartbeat_response(h.type);
25
     if (!pkbuf) {
26
@@ -217,7 +217,7 @@
27
 
28
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
29
     h.type = OGS_PFCP_ASSOCIATION_SETUP_REQUEST_TYPE;
30
-    h.seid = 0;
31
+    h.seid_presence = OGS_PFCP_SEID_NO_PRESENCE;
32
 
33
     xact = ogs_pfcp_xact_local_create(node, cb, node);
34
     if (!xact) {
35
@@ -254,7 +254,7 @@
36
 
37
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
38
     h.type = OGS_PFCP_ASSOCIATION_SETUP_RESPONSE_TYPE;
39
-    h.seid = 0;
40
+    h.seid_presence = OGS_PFCP_SEID_NO_PRESENCE;
41
 
42
     pkbuf = ogs_pfcp_cp_build_association_setup_response(h.type, cause);
43
     if (!pkbuf) {
44
@@ -286,7 +286,7 @@
45
 
46
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
47
     h.type = OGS_PFCP_ASSOCIATION_SETUP_REQUEST_TYPE;
48
-    h.seid = 0;
49
+    h.seid_presence = OGS_PFCP_SEID_NO_PRESENCE;
50
 
51
     xact = ogs_pfcp_xact_local_create(node, cb, node);
52
     if (!xact) {
53
@@ -323,7 +323,7 @@
54
 
55
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
56
     h.type = OGS_PFCP_ASSOCIATION_SETUP_RESPONSE_TYPE;
57
-    h.seid = 0;
58
+    h.seid_presence = OGS_PFCP_SEID_NO_PRESENCE;
59
 
60
     pkbuf = ogs_pfcp_up_build_association_setup_response(h.type, cause);
61
     if (!pkbuf) {
62
@@ -468,7 +468,7 @@
63
 }
64
 
65
 void ogs_pfcp_send_error_message(
66
-    ogs_pfcp_xact_t *xact, uint64_t seid, uint8_t type,
67
+    ogs_pfcp_xact_t *xact, int seid_presence, uint64_t seid, uint8_t type,
68
     uint8_t cause_value, uint16_t offending_ie_value)
69
 {
70
     int rv;
71
@@ -480,6 +480,7 @@
72
     ogs_assert(xact);
73
 
74
     memset(&errmsg, 0, sizeof(ogs_pfcp_message_t));
75
+    errmsg.h.seid_presence = seid_presence;
76
     errmsg.h.seid = seid;
77
     errmsg.h.type = type;
78
 
79
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/pfcp/path.h -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/pfcp/path.h Changed
17
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -86,7 +86,7 @@
9
 void ogs_pfcp_send_buffered_packet(ogs_pfcp_pdr_t *pdr);
10
 
11
 void ogs_pfcp_send_error_message(
12
-    ogs_pfcp_xact_t *xact, uint64_t seid, uint8_t type,
13
+    ogs_pfcp_xact_t *xact, int seid_presence, uint64_t seid, uint8_t type,
14
     uint8_t cause_value, uint16_t offending_ie_value);
15
 
16
 #ifdef __cplusplus
17
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/pfcp/support/pfcp-tlv.py -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/pfcp/support/pfcp-tlv.py Changed
25
 
1
@@ -1,4 +1,4 @@
2
-# Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
3
+# Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
4
 
5
 # This file is part of Open5GS.
6
 
7
@@ -54,7 +54,7 @@
8
 def output_header_to_file(f):
9
     now = datetime.datetime.now()
10
     f.write("""/*
11
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
12
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
13
  *
14
  * This file is part of Open5GS.
15
  *
16
@@ -541,6 +541,8 @@
17
 typedef struct ogs_pfcp_header_s {
18
     union {
19
         struct {
20
+#define OGS_PFCP_SEID_NO_PRESENCE 0
21
+#define OGS_PFCP_SEID_PRESENCE 1
22
         ED4(uint8_t version:3;,
23
             uint8_t spare1:3;,
24
             uint8_t mp:1;,
25
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/lib/pfcp/xact.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/lib/pfcp/xact.c Changed
26
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -251,7 +251,7 @@
9
         return OGS_ERROR;
10
     }
11
 
12
-    if (hdesc->type >= OGS_PFCP_SESSION_ESTABLISHMENT_REQUEST_TYPE) {
13
+    if (hdesc->seid_presence) {
14
         pfcp_hlen = OGS_PFCP_HEADER_LEN;
15
     } else {
16
         pfcp_hlen = OGS_PFCP_HEADER_LEN - OGS_PFCP_SEID_LEN;
17
@@ -264,7 +264,7 @@
18
     h->version = OGS_PFCP_VERSION;
19
     h->type = hdesc->type;
20
 
21
-    if (h->type >= OGS_PFCP_SESSION_ESTABLISHMENT_REQUEST_TYPE) {
22
+    if (hdesc->seid_presence) {
23
         h->seid_presence = 1;
24
         h->seid = htobe64(hdesc->seid);
25
         h->sqn = OGS_PFCP_XID_TO_SQN(xact->xid);
26
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/mme/mme-gtp-path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/mme/mme-gtp-path.c Changed
96
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -254,6 +254,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
11
     h.type = OGS_GTP2_CREATE_SESSION_REQUEST_TYPE;
12
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
13
     h.teid = sgw_ue->sgw_s11_teid;
14
 
15
     pkbuf = mme_s11_build_create_session_request(h.type, sess, create_action);
16
@@ -293,6 +294,7 @@
17
 
18
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
19
     h.type = OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE;
20
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
21
     h.teid = sgw_ue->sgw_s11_teid;
22
 
23
     pkbuf = mme_s11_build_modify_bearer_request(h.type, mme_ue, uli_presence);
24
@@ -332,6 +334,7 @@
25
 
26
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
27
     h.type = OGS_GTP2_DELETE_SESSION_REQUEST_TYPE;
28
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
29
     h.teid = sgw_ue->sgw_s11_teid;
30
 
31
     s11buf = mme_s11_build_delete_session_request(h.type, sess, action);
32
@@ -400,6 +403,7 @@
33
 
34
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
35
     h.type = OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE;
36
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
37
     h.teid = sgw_ue->sgw_s11_teid;
38
 
39
     pkbuf = mme_s11_build_create_bearer_response(h.type, bearer, cause_value);
40
@@ -445,6 +449,7 @@
41
 
42
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
43
     h.type = OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE;
44
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
45
     h.teid = sgw_ue->sgw_s11_teid;
46
 
47
     pkbuf = mme_s11_build_update_bearer_response(h.type, bearer, cause_value);
48
@@ -490,6 +495,7 @@
49
 
50
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
51
     h.type = OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE;
52
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
53
     h.teid = sgw_ue->sgw_s11_teid;
54
 
55
     pkbuf = mme_s11_build_delete_bearer_response(h.type, bearer, cause_value);
56
@@ -525,6 +531,7 @@
57
 
58
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
59
     h.type = OGS_GTP2_RELEASE_ACCESS_BEARERS_REQUEST_TYPE;
60
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
61
     h.teid = sgw_ue->sgw_s11_teid;
62
 
63
     pkbuf = mme_s11_build_release_access_bearers_request(h.type);
64
@@ -622,6 +629,7 @@
65
     /* Build Downlink data notification ack */
66
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
67
     h.type = OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE;
68
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
69
     h.teid = sgw_ue->sgw_s11_teid;
70
 
71
     s11buf = mme_s11_build_downlink_data_notification_ack(h.type, cause_value);
72
@@ -657,6 +665,7 @@
73
 
74
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
75
     h.type = OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE;
76
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
77
     h.teid = sgw_ue->sgw_s11_teid;
78
 
79
     pkbuf = mme_s11_build_create_indirect_data_forwarding_tunnel_request(
80
@@ -696,6 +705,7 @@
81
 
82
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
83
     h.type = OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_REQUEST_TYPE;
84
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
85
     h.teid = sgw_ue->sgw_s11_teid;
86
 
87
     pkbuf = ogs_pkbuf_alloc(NULL, OGS_TLV_MAX_HEADROOM);
88
@@ -738,6 +748,7 @@
89
 
90
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
91
     h.type = OGS_GTP2_BEARER_RESOURCE_COMMAND_TYPE;
92
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
93
     h.teid = sgw_ue->sgw_s11_teid;
94
 
95
     pkbuf = mme_s11_build_bearer_resource_command(h.type, bearer, nas_message);
96
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/mme/mme-s11-handler.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/mme/mme-s11-handler.c Changed
63
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -820,7 +820,9 @@
9
     }
10
 
11
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
12
-        ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0,
13
+        ogs_gtp2_send_error_message(xact,
14
+                sgw_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
15
+                sgw_ue ? sgw_ue->sgw_s11_teid : 0,
16
                 OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
17
         return;
18
     }
19
@@ -856,7 +858,9 @@
20
     }
21
 
22
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
23
-        ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0,
24
+        ogs_gtp2_send_error_message(xact,
25
+                sgw_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
26
+                sgw_ue ? sgw_ue->sgw_s11_teid : 0,
27
                 OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
28
         return;
29
     }
30
@@ -1012,7 +1016,9 @@
31
     }
32
 
33
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
34
-        ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0,
35
+        ogs_gtp2_send_error_message(xact,
36
+                sgw_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
37
+                sgw_ue ? sgw_ue->sgw_s11_teid : 0,
38
                 OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value);
39
         return;
40
     }
41
@@ -1183,7 +1189,9 @@
42
     }
43
 
44
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
45
-        ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0,
46
+        ogs_gtp2_send_error_message(xact,
47
+                sgw_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
48
+                sgw_ue ? sgw_ue->sgw_s11_teid : 0,
49
                 OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE,
50
                 OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND);
51
         return;
52
@@ -1440,7 +1448,9 @@
53
     }
54
 
55
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
56
-        ogs_gtp2_send_error_message(xact, sgw_ue ? sgw_ue->sgw_s11_teid : 0,
57
+        ogs_gtp2_send_error_message(xact,
58
+                sgw_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
59
+                sgw_ue ? sgw_ue->sgw_s11_teid : 0,
60
                 OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_ACKNOWLEDGE_TYPE,
61
                 OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND);
62
         return;
63
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/sgwc/gtp-path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/sgwc/gtp-path.c Changed
24
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -182,6 +182,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
11
     h.type = OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE;
12
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
13
     h.teid = sgwc_ue->mme_s11_teid;
14
 
15
     pkbuf = sgwc_s11_build_create_session_response(h.type, sess);
16
@@ -229,6 +230,7 @@
17
 
18
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
19
     h.type = OGS_GTP2_DOWNLINK_DATA_NOTIFICATION_TYPE;
20
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
21
     h.teid = sgwc_ue->mme_s11_teid;
22
 
23
     pkbuf = sgwc_s11_build_downlink_data_notification(cause_value, bearer);
24
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/sgwc/pfcp-path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/sgwc/pfcp-path.c Changed
48
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -222,6 +222,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
11
     h.type = OGS_PFCP_SESSION_MODIFICATION_REQUEST_TYPE;
12
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
13
     h.seid = sess->sgwu_sxa_seid;
14
 
15
     sxabuf = sgwc_sxa_build_bearer_to_modify_list(h.type, sess, xact);
16
@@ -302,6 +303,7 @@
17
  *   over N4 towards another SMF or another PFCP entity in the SMF
18
  *   as specified in clause 5.22.2 and clause 5.22.3.
19
  */
20
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
21
     h.seid = sess->sgwu_sxa_seid;
22
 
23
     sxabuf = sgwc_sxa_build_session_establishment_request(h.type, sess);
24
@@ -389,6 +391,7 @@
25
 
26
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
27
     h.type = OGS_PFCP_SESSION_MODIFICATION_REQUEST_TYPE;
28
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
29
     h.seid = sess->sgwu_sxa_seid;
30
 
31
     sxabuf = sgwc_sxa_build_bearer_to_modify_list(h.type, sess, xact);
32
@@ -437,6 +440,7 @@
33
 
34
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
35
     h.type = OGS_PFCP_SESSION_DELETION_REQUEST_TYPE;
36
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
37
     h.seid = sess->sgwu_sxa_seid;
38
 
39
     sxabuf = sgwc_sxa_build_session_deletion_request(h.type, sess);
40
@@ -466,6 +470,7 @@
41
 
42
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
43
     h.type = OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE;
44
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
45
     h.seid = sess->sgwu_sxa_seid;
46
 
47
     sxabuf = ogs_pfcp_build_session_report_response(h.type, cause);
48
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/sgwc/s11-handler.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/sgwc/s11-handler.c Changed
201
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -173,8 +173,9 @@
9
     }
10
 
11
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
12
-        ogs_gtp_send_error_message(
13
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
14
+        ogs_gtp2_send_error_message(s11_xact,
15
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
16
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
17
                 OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
18
         return;
19
     }
20
@@ -214,8 +215,9 @@
21
     }
22
 
23
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
24
-        ogs_gtp_send_error_message(
25
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
26
+        ogs_gtp2_send_error_message(s11_xact,
27
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
28
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
29
                 OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
30
         return;
31
     }
32
@@ -262,8 +264,9 @@
33
     /* Check if selected SGW-U is associated with SGW-C */
34
     ogs_assert(sess->pfcp_node);
35
     if (!OGS_FSM_CHECK(&sess->pfcp_node->sm, sgwc_pfcp_state_associated)) {
36
-        ogs_gtp_send_error_message(
37
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
38
+        ogs_gtp2_send_error_message(s11_xact,
39
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
40
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
41
                 OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE,
42
                 OGS_GTP2_CAUSE_REMOTE_PEER_NOT_RESPONDING);
43
         return;
44
@@ -423,8 +426,9 @@
45
     }
46
 
47
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
48
-        ogs_gtp_send_error_message(
49
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
50
+        ogs_gtp2_send_error_message(s11_xact,
51
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
52
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
53
                 OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value);
54
         return;
55
     }
56
@@ -531,8 +535,9 @@
57
 
58
     if (i == 0) {
59
         ogs_error("No Bearer");
60
-        ogs_gtp_send_error_message(
61
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
62
+        ogs_gtp2_send_error_message(s11_xact,
63
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
64
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
65
                 OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value);
66
         return;
67
     }
68
@@ -609,8 +614,9 @@
69
     }
70
 
71
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
72
-        ogs_gtp_send_error_message(
73
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
74
+        ogs_gtp2_send_error_message(s11_xact,
75
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
76
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
77
                 OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, cause_value);
78
         return;
79
     }
80
@@ -629,8 +635,9 @@
81
         indication->operation_indication == 1 &&
82
         indication->scope_indication == 1) {
83
         ogs_error("Invalid Indication");
84
-        ogs_gtp_send_error_message(
85
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
86
+        ogs_gtp2_send_error_message(s11_xact,
87
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
88
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
89
                 OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE,
90
                 OGS_GTP2_CAUSE_INVALID_MESSAGE_FORMAT);
91
         return;
92
@@ -656,6 +663,7 @@
93
 
94
     } else {
95
         message->h.type = OGS_GTP2_DELETE_SESSION_REQUEST_TYPE;
96
+        message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
97
         message->h.teid = sess->pgw_s5c_teid;
98
 
99
         gtpbuf = ogs_gtp2_build_msg(message);
100
@@ -762,7 +770,9 @@
101
             sgwc_pfcp_send_bearer_modification_request(
102
                 bearer, NULL, NULL,
103
                 OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_REMOVE));
104
-        ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
105
+        ogs_gtp2_send_error_message(s5c_xact,
106
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
107
+                sess ? sess->pgw_s5c_teid : 0,
108
                 OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
109
         return;
110
     }
111
@@ -781,7 +791,9 @@
112
             sgwc_pfcp_send_bearer_modification_request(
113
                 bearer, NULL, NULL,
114
                 OGS_PFCP_MODIFY_UL_ONLY|OGS_PFCP_MODIFY_REMOVE));
115
-        ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
116
+        ogs_gtp2_send_error_message(s5c_xact,
117
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
118
+                sess ? sess->pgw_s5c_teid : 0,
119
                 OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
120
         return;
121
     }
122
@@ -915,7 +927,9 @@
123
     }
124
 
125
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
126
-        ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
127
+        ogs_gtp2_send_error_message(s5c_xact,
128
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
129
+                sess ? sess->pgw_s5c_teid : 0,
130
                 OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value);
131
         return;
132
     }
133
@@ -930,7 +944,9 @@
134
     cause_value = cause->value;
135
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
136
         ogs_error("GTP Bearer Cause VALUE:%d", cause_value);
137
-        ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
138
+        ogs_gtp2_send_error_message(s5c_xact,
139
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
140
+                sess ? sess->pgw_s5c_teid : 0,
141
                 OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value);
142
         return;
143
     }
144
@@ -940,7 +956,9 @@
145
     cause_value = cause->value;
146
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
147
         ogs_error("GTP Cause Value:%d", cause_value);
148
-        ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
149
+        ogs_gtp2_send_error_message(s5c_xact,
150
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
151
+                sess ? sess->pgw_s5c_teid : 0,
152
                 OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE, cause_value);
153
         return;
154
     }
155
@@ -957,6 +975,7 @@
156
         sess->sgw_s5c_teid, sess->pgw_s5c_teid);
157
 
158
     message->h.type = OGS_GTP2_UPDATE_BEARER_RESPONSE_TYPE;
159
+    message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
160
     message->h.teid = sess->pgw_s5c_teid;
161
 
162
     pkbuf = ogs_gtp2_build_msg(message);
163
@@ -1128,8 +1147,9 @@
164
     }
165
 
166
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
167
-        ogs_gtp_send_error_message(
168
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
169
+        ogs_gtp2_send_error_message(s11_xact,
170
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
171
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
172
                 OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause_value);
173
         return;
174
     }
175
@@ -1235,8 +1255,9 @@
176
     }
177
 
178
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
179
-        ogs_gtp_send_error_message(
180
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
181
+        ogs_gtp2_send_error_message(s11_xact,
182
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
183
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
184
                 OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE,
185
                 cause_value);
186
         return;
187
@@ -1253,8 +1274,9 @@
188
     for (i = 0; req->bearer_contextsi.presence; i++) {
189
         if (req->bearer_contextsi.eps_bearer_id.presence == 0) {
190
             ogs_error("No EBI");
191
-            ogs_gtp_send_error_message(
192
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
193
+            ogs_gtp2_send_error_message(s11_xact,
194
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
195
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
196
                 OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE,
197
                 OGS_GTP2_CAUSE_MANDATORY_IE_MISSING);
198
             return;
199
@@ -1276,8 +1298,9 @@
200
 
201
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/sgwc/s5c-handler.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/sgwc/s5c-handler.c Changed
201
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024444 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -122,8 +122,9 @@
9
     }
10
 
11
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
12
-        ogs_gtp_send_error_message(
13
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
14
+        ogs_gtp2_send_error_message(s11_xact,
15
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
16
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
17
                 OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
18
         return;
19
     }
20
@@ -160,8 +161,9 @@
21
     }
22
 
23
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
24
-        ogs_gtp_send_error_message(
25
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
26
+        ogs_gtp2_send_error_message(s11_xact,
27
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
28
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
29
                 OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
30
         return;
31
     }
32
@@ -185,8 +187,10 @@
33
         bearer_cause = cause->value;
34
         if (bearer_cause != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
35
             ogs_error("GTP Bearer Cause VALUE:%d", bearer_cause);
36
-            ogs_gtp_send_error_message(
37
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
38
+            ogs_gtp2_send_error_message(s11_xact,
39
+                    sgwc_ue ? OGS_GTP2_TEID_PRESENCE :
40
+                        OGS_GTP2_TEID_NO_PRESENCE,
41
+                    sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
42
                     OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, bearer_cause);
43
             return;
44
         }
45
@@ -199,8 +203,9 @@
46
         session_cause !=
47
             OGS_GTP2_CAUSE_NEW_PDN_TYPE_DUE_TO_SINGLE_ADDRESS_BEARER_ONLY) {
48
         ogs_error("GTP Cause VALUE:%d", session_cause);
49
-        ogs_gtp_send_error_message(
50
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
51
+        ogs_gtp2_send_error_message(s11_xact,
52
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
53
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
54
                 OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, session_cause);
55
         return;
56
     }
57
@@ -233,8 +238,10 @@
58
         bearer = sgwc_bearer_find_by_sess_ebi(sess,
59
                     rsp->bearer_contexts_createdi.eps_bearer_id.u8);
60
         if (!bearer) {
61
-            ogs_gtp_send_error_message(
62
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
63
+            ogs_gtp2_send_error_message(s11_xact,
64
+                    sgwc_ue ? OGS_GTP2_TEID_PRESENCE :
65
+                        OGS_GTP2_TEID_NO_PRESENCE,
66
+                    sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
67
                     OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE,
68
                     OGS_GTP2_CAUSE_MANDATORY_IE_MISSING);
69
             return;
70
@@ -253,8 +260,10 @@
71
 
72
         rv = ogs_gtp2_f_teid_to_ip(pgw_s5u_teid, &ul_tunnel->remote_ip);
73
         if (rv != OGS_OK) {
74
-            ogs_gtp_send_error_message(
75
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
76
+            ogs_gtp2_send_error_message(s11_xact,
77
+                    sgwc_ue ? OGS_GTP2_TEID_PRESENCE :
78
+                        OGS_GTP2_TEID_NO_PRESENCE,
79
+                    sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
80
                     OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE,
81
                     OGS_GTP2_CAUSE_MANDATORY_IE_MISSING);
82
             return;
83
@@ -354,13 +363,15 @@
84
 
85
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
86
         if (modify_action == OGS_GTP_MODIFY_IN_PATH_SWITCH_REQUEST)
87
-            ogs_gtp_send_error_message(
88
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
89
-                    OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
90
+            ogs_gtp2_send_error_message(s11_xact,
91
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
92
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
93
+                OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
94
         else
95
-            ogs_gtp_send_error_message(
96
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
97
-                    OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value);
98
+            ogs_gtp2_send_error_message(s11_xact,
99
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
100
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
101
+                OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value);
102
         return;
103
     }
104
 
105
@@ -376,13 +387,15 @@
106
 
107
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
108
         if (modify_action == OGS_GTP_MODIFY_IN_PATH_SWITCH_REQUEST)
109
-            ogs_gtp_send_error_message(
110
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
111
-                    OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
112
+            ogs_gtp2_send_error_message(s11_xact,
113
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
114
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
115
+                OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
116
         else
117
-            ogs_gtp_send_error_message(
118
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
119
-                    OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value);
120
+            ogs_gtp2_send_error_message(s11_xact,
121
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
122
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
123
+                OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value);
124
         return;
125
     }
126
 
127
@@ -394,13 +407,15 @@
128
     if (session_cause != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
129
         ogs_error("GTP Cause VALUE:%d", session_cause);
130
         if (modify_action == OGS_GTP_MODIFY_IN_PATH_SWITCH_REQUEST)
131
-            ogs_gtp_send_error_message(
132
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
133
-                    OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, session_cause);
134
+            ogs_gtp2_send_error_message(s11_xact,
135
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
136
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
137
+                OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, session_cause);
138
         else
139
-            ogs_gtp_send_error_message(
140
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
141
-                    OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, session_cause);
142
+            ogs_gtp2_send_error_message(s11_xact,
143
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
144
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
145
+                OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, session_cause);
146
         return;
147
     }
148
 
149
@@ -420,6 +435,7 @@
150
             sgwc_gtp_send_create_session_response(sess, s11_xact));
151
     } else {
152
         message->h.type = OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE;
153
+        message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
154
         message->h.teid = sgwc_ue->mme_s11_teid;
155
 
156
         pkbuf = ogs_gtp2_build_msg(message);
157
@@ -493,8 +509,9 @@
158
     }
159
 
160
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
161
-        ogs_gtp_send_error_message(
162
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
163
+        ogs_gtp2_send_error_message(s11_xact,
164
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
165
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
166
                 OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, cause_value);
167
         return;
168
     }
169
@@ -573,7 +590,9 @@
170
     }
171
 
172
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
173
-        ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
174
+        ogs_gtp2_send_error_message(s5c_xact,
175
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
176
+                sess ? sess->pgw_s5c_teid : 0,
177
                 OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
178
         return;
179
     }
180
@@ -601,7 +620,9 @@
181
     }
182
 
183
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
184
-        ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
185
+        ogs_gtp2_send_error_message(s5c_xact,
186
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
187
+                sess ? sess->pgw_s5c_teid : 0,
188
                 OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
189
         return;
190
     }
191
@@ -631,7 +652,9 @@
192
 
193
     rv = ogs_gtp2_f_teid_to_ip(pgw_s5u_teid, &ul_tunnel->remote_ip);
194
     if (rv != OGS_OK) {
195
-        ogs_gtp_send_error_message(s5c_xact, sess ? sess->pgw_s5c_teid : 0,
196
+        ogs_gtp2_send_error_message(s5c_xact,
197
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
198
+                sess ? sess->pgw_s5c_teid : 0,
199
                 OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE,
200
                 OGS_GTP2_CAUSE_MANDATORY_IE_MISSING);
201
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/sgwc/sxa-handler.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/sgwc/sxa-handler.c Changed
201
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -245,8 +245,9 @@
9
 
10
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
11
         if (sess) sgwc_ue = sess->sgwc_ue;
12
-        ogs_gtp_send_error_message(
13
-                s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
14
+        ogs_gtp2_send_error_message(s11_xact,
15
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
16
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
17
                 OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
18
         return;
19
     }
20
@@ -269,10 +270,11 @@
21
 
22
         if (dl_tunnel->local_addr == NULL && dl_tunnel->local_addr6 == NULL) {
23
             ogs_error("No UP F-TEID");
24
-            ogs_gtp_send_error_message(
25
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
26
-                    OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE,
27
-                    OGS_GTP2_CAUSE_GRE_KEY_NOT_FOUND);
28
+            ogs_gtp2_send_error_message(s11_xact,
29
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
30
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
31
+                OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE,
32
+                OGS_GTP2_CAUSE_GRE_KEY_NOT_FOUND);
33
             return;
34
         }
35
 
36
@@ -347,6 +349,7 @@
37
         memset(&send_message, 0, sizeof(ogs_gtp2_message_t));
38
 
39
         send_message.h.type = OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE;
40
+        send_message.h.teid_presence = OGS_GTP2_TEID_PRESENCE;
41
         send_message.h.teid = sess->pgw_s5c_teid;
42
 
43
         /* Send Control Plane(DL) : SGW-S5C */
44
@@ -396,6 +399,7 @@
45
 
46
         /* Create Session Request */
47
         recv_message->h.type = OGS_GTP2_CREATE_SESSION_REQUEST_TYPE;
48
+        recv_message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
49
         recv_message->h.teid = sess->pgw_s5c_teid;
50
 
51
         /* Send Control Plane(DL) : SGW-S5C */
52
@@ -581,9 +585,10 @@
53
             s5c_xact = pfcp_xact->assoc_xact;
54
 
55
             if (s5c_xact) {
56
-                ogs_gtp_send_error_message(
57
-                        s5c_xact, sess ? sess->pgw_s5c_teid : 0,
58
-                        OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE, cause_value);
59
+                ogs_gtp2_send_error_message(s5c_xact,
60
+                    sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
61
+                    sess ? sess->pgw_s5c_teid : 0,
62
+                    OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE, cause_value);
63
             }
64
 
65
             sgwc_bearer_remove(bearer);
66
@@ -591,8 +596,9 @@
67
             s5c_xact = pfcp_xact->assoc_xact;
68
             ogs_assert(s5c_xact);
69
 
70
-            ogs_gtp_send_error_message(
71
-                    s5c_xact, sess ? sess->pgw_s5c_teid : 0,
72
+            ogs_gtp2_send_error_message(s5c_xact,
73
+                    sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
74
+                    sess ? sess->pgw_s5c_teid : 0,
75
                     OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE, cause_value);
76
 
77
 
78
@@ -601,16 +607,20 @@
79
                 s11_xact = pfcp_xact->assoc_xact;
80
                 ogs_assert(s11_xact);
81
 
82
-                ogs_gtp_send_error_message(
83
-                        s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
84
+                ogs_gtp2_send_error_message(s11_xact,
85
+                        sgwc_ue ? OGS_GTP2_TEID_PRESENCE :
86
+                            OGS_GTP2_TEID_NO_PRESENCE,
87
+                        sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
88
                         OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, cause_value);
89
 
90
             } else if (flags & OGS_PFCP_MODIFY_DL_ONLY) {
91
                 s11_xact = pfcp_xact->assoc_xact;
92
                 ogs_assert(s11_xact);
93
 
94
-                ogs_gtp_send_error_message(
95
-                        s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
96
+                ogs_gtp2_send_error_message(s11_xact,
97
+                        sgwc_ue ? OGS_GTP2_TEID_PRESENCE :
98
+                            OGS_GTP2_TEID_NO_PRESENCE,
99
+                        sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
100
                         OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value);
101
             } else {
102
                 ogs_fatal("Invalid modify_flags0x%llx", (long long)flags);
103
@@ -620,9 +630,10 @@
104
             s11_xact = pfcp_xact->assoc_xact;
105
             ogs_assert(s11_xact);
106
 
107
-            ogs_gtp_send_error_message(
108
-                    s11_xact, sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
109
-                    OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause_value);
110
+            ogs_gtp2_send_error_message(s11_xact,
111
+                sgwc_ue ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
112
+                sgwc_ue ? sgwc_ue->mme_s11_teid : 0,
113
+                OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE, cause_value);
114
         }
115
 
116
         ogs_pfcp_xact_commit(pfcp_xact);
117
@@ -694,6 +705,7 @@
118
 
119
                 send_message.h.type =
120
                 OGS_GTP2_DELETE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE;
121
+                send_message.h.teid_presence = OGS_GTP2_TEID_PRESENCE;
122
                 send_message.h.teid = sgwc_ue->mme_s11_teid;
123
 
124
                 pkbuf = ogs_gtp2_build_msg(&send_message);
125
@@ -720,6 +732,7 @@
126
             if (s5c_xact) {
127
                 ogs_assert(recv_message);
128
                 recv_message->h.type = OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE;
129
+                recv_message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
130
                 recv_message->h.teid = sess->pgw_s5c_teid;
131
 
132
                 pkbuf = ogs_gtp2_build_msg(recv_message);
133
@@ -769,6 +782,7 @@
134
             gtp_req->bearer_contexts.s1_u_enodeb_f_teid.len = len;
135
 
136
             recv_message->h.type = OGS_GTP2_CREATE_BEARER_REQUEST_TYPE;
137
+            recv_message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
138
             recv_message->h.teid = sgwc_ue->mme_s11_teid;
139
 
140
             pkbuf = ogs_gtp2_build_msg(recv_message);
141
@@ -836,6 +850,7 @@
142
             gtp_rsp->bearer_contexts.s5_s8_u_pgw_f_teid.len = len;
143
 
144
             recv_message->h.type = OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE;
145
+            recv_message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
146
             recv_message->h.teid = sess->pgw_s5c_teid;
147
 
148
             pkbuf = ogs_gtp2_build_msg(recv_message);
149
@@ -962,6 +977,7 @@
150
 
151
                 send_message.h.type =
152
                 OGS_GTP2_CREATE_INDIRECT_DATA_FORWARDING_TUNNEL_RESPONSE_TYPE;
153
+                send_message.h.teid_presence = OGS_GTP2_TEID_PRESENCE;
154
                 send_message.h.teid = sgwc_ue->mme_s11_teid;
155
 
156
                 pkbuf = ogs_gtp2_build_msg(&send_message);
157
@@ -1046,6 +1062,7 @@
158
             }
159
 
160
             recv_message->h.type = OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE;
161
+            recv_message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
162
             recv_message->h.teid = sgwc_ue->mme_s11_teid;
163
 
164
             pkbuf = ogs_gtp2_build_msg(recv_message);
165
@@ -1083,6 +1100,7 @@
166
 
167
                 if (indication && indication->handover_indication) {
168
                     recv_message->h.type = OGS_GTP2_MODIFY_BEARER_REQUEST_TYPE;
169
+                    recv_message->h.teid_presence = OGS_GTP2_TEID_PRESENCE;
170
                     recv_message->h.teid = sess->pgw_s5c_teid;
171
 
172
                     pkbuf = ogs_gtp2_build_msg(recv_message);
173
@@ -1168,6 +1186,7 @@
174
                     }
175
 
176
                     send_message.h.type = OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE;
177
+                    send_message.h.teid_presence = OGS_GTP2_TEID_PRESENCE;
178
                     send_message.h.teid = sgwc_ue->mme_s11_teid;
179
 
180
                     pkbuf = ogs_gtp2_build_msg(&send_message);
181
@@ -1233,6 +1252,7 @@
182
 
183
                 send_message.h.type =
184
                     OGS_GTP2_RELEASE_ACCESS_BEARERS_RESPONSE_TYPE;
185
+                send_message.h.teid_presence = OGS_GTP2_TEID_PRESENCE;
186
                 send_message.h.teid = sgwc_ue->mme_s11_teid;
187
 
188
                 pkbuf = ogs_gtp2_build_msg(&send_message);
189
@@ -1264,6 +1284,7 @@
190
 {
191
     int rv;
192
     uint8_t cause_value = 0;
193
+    int teid_presence = OGS_GTP2_TEID_NO_PRESENCE;
194
     uint32_t teid = 0;
195
 
196
     sgwc_ue_t *sgwc_ue = NULL;
197
@@ -1315,6 +1336,8 @@
198
          * 2. SMF sends Delete Session Response to SGW/MME.
199
          */
200
         if (sess) sgwc_ue = sess->sgwc_ue;
201
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/sgwu/pfcp-path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/sgwu/pfcp-path.c Changed
40
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -180,6 +180,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
11
     h.type = OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE;
12
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
13
     h.seid = sess->sgwc_sxa_f_seid.seid;
14
 
15
     sxabuf = sgwu_sxa_build_session_establishment_response(
16
@@ -213,6 +214,7 @@
17
 
18
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
19
     h.type = OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE;
20
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
21
     h.seid = sess->sgwc_sxa_f_seid.seid;
22
 
23
     sxabuf = sgwu_sxa_build_session_modification_response(
24
@@ -245,6 +247,7 @@
25
 
26
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
27
     h.type = OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE;
28
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
29
     h.seid = sess->sgwc_sxa_f_seid.seid;
30
 
31
     sxabuf = sgwu_sxa_build_session_deletion_response(h.type, sess);
32
@@ -295,6 +298,7 @@
33
 
34
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
35
     h.type = OGS_PFCP_SESSION_REPORT_REQUEST_TYPE;
36
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
37
     h.seid = sess->sgwc_sxa_f_seid.seid;
38
 
39
     xact = ogs_pfcp_xact_local_create(sess->pfcp_node, sess_timeout, sess);
40
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/sgwu/sxa-handler.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/sgwu/sxa-handler.c Changed
60
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -45,7 +45,8 @@
9
 
10
     if (!sess) {
11
         ogs_error("No Context");
12
-        ogs_pfcp_send_error_message(xact, 0,
13
+        ogs_pfcp_send_error_message(xact,
14
+                OGS_PFCP_SEID_NO_PRESENCE, 0,
15
                 OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE,
16
                 OGS_PFCP_CAUSE_MANDATORY_IE_MISSING, 0);
17
         return;
18
@@ -142,7 +143,9 @@
19
 
20
 cleanup:
21
     ogs_pfcp_sess_clear(&sess->pfcp);
22
-    ogs_pfcp_send_error_message(xact, sess ? sess->sgwu_sxa_seid : 0,
23
+    ogs_pfcp_send_error_message(xact,
24
+            sess ? OGS_PFCP_SEID_PRESENCE : OGS_PFCP_SEID_NO_PRESENCE,
25
+            sess ? sess->sgwu_sxa_seid : 0,
26
             OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE,
27
             cause_value, offending_ie_value);
28
 }
29
@@ -168,7 +171,8 @@
30
 
31
     if (!sess) {
32
         ogs_error("No Context");
33
-        ogs_pfcp_send_error_message(xact, 0,
34
+        ogs_pfcp_send_error_message(xact,
35
+                OGS_PFCP_SEID_NO_PRESENCE, 0,
36
                 OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE,
37
                 OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0);
38
         return;
39
@@ -309,7 +313,9 @@
40
 
41
 cleanup:
42
     ogs_pfcp_sess_clear(&sess->pfcp);
43
-    ogs_pfcp_send_error_message(xact, sess ? sess->sgwu_sxa_seid : 0,
44
+    ogs_pfcp_send_error_message(xact,
45
+            sess ? OGS_PFCP_SEID_PRESENCE : OGS_PFCP_SEID_NO_PRESENCE,
46
+            sess ? sess->sgwu_sxa_seid : 0,
47
             OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE,
48
             cause_value, offending_ie_value);
49
 }
50
@@ -325,7 +331,8 @@
51
 
52
     if (!sess) {
53
         ogs_error("No Context");
54
-        ogs_pfcp_send_error_message(xact, 0,
55
+        ogs_pfcp_send_error_message(xact,
56
+                OGS_PFCP_SEID_NO_PRESENCE, 0,
57
                 OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE,
58
                 OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0);
59
         return;
60
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/smf/binding.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/smf/binding.c Changed
24
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -363,6 +363,7 @@
9
 
10
                 memset(&h, 0, sizeof(ogs_gtp2_header_t));
11
                 h.type = OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE;
12
+                h.teid_presence = OGS_GTP2_TEID_PRESENCE;
13
                 h.teid = sess->sgw_s5c_teid;
14
 
15
                 pkbuf = smf_s5c_build_update_bearer_request(
16
@@ -439,6 +440,7 @@
17
     ogs_assert(sess);
18
 
19
     h.type = OGS_GTP2_CREATE_BEARER_REQUEST_TYPE;
20
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
21
     h.teid = sess->sgw_s5c_teid;
22
 
23
     memset(&tft, 0, sizeof tft);
24
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/smf/gsm-sm.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/smf/gsm-sm.c Changed
44
 
1
@@ -1,6 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
-
5
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
6
  *
7
  * This file is part of Open5GS.
8
  *
9
@@ -74,7 +73,9 @@
10
         ogs_gtp1_send_error_message(gtp_xact, sess->sgw_s5c_teid,
11
             OGS_GTP1_CREATE_PDP_CONTEXT_RESPONSE_TYPE, gtp_cause);
12
     else
13
-        ogs_gtp2_send_error_message(gtp_xact, sess->sgw_s5c_teid,
14
+        ogs_gtp2_send_error_message(gtp_xact,
15
+            sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
16
+            sess->sgw_s5c_teid,
17
             OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE, gtp_cause);
18
 }
19
 
20
@@ -85,7 +86,9 @@
21
         ogs_gtp1_send_error_message(gtp_xact, sess->sgw_s5c_teid,
22
             OGS_GTP1_DELETE_PDP_CONTEXT_RESPONSE_TYPE, gtp_cause);
23
     else
24
-        ogs_gtp2_send_error_message(gtp_xact, sess->sgw_s5c_teid,
25
+        ogs_gtp2_send_error_message(gtp_xact,
26
+            sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
27
+            sess->sgw_s5c_teid,
28
             OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, gtp_cause);
29
 }
30
 
31
@@ -775,8 +778,10 @@
32
                             sess, e->gtp_xact,
33
                             &gtp2_message->delete_session_request);
34
             if (gtp2_cause != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
35
-                ogs_gtp2_send_error_message(e->gtp_xact, sess->sgw_s5c_teid,
36
-                        OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, gtp2_cause);
37
+                ogs_gtp2_send_error_message(e->gtp_xact,
38
+                    sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
39
+                    sess->sgw_s5c_teid,
40
+                    OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE, gtp2_cause);
41
                 return;
42
             }
43
             OGS_FSM_TRAN(s, smf_gsm_state_wait_pfcp_deletion);
44
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/smf/gtp-path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/smf/gtp-path.c Changed
40
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -444,6 +444,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
11
     h.type = OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE;
12
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
13
     h.teid = sess->sgw_s5c_teid;
14
 
15
     pkbuf = smf_s5c_build_create_session_response(h.type, sess);
16
@@ -478,6 +479,7 @@
17
 
18
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
19
     h.type = OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE;
20
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
21
     h.teid = sess->sgw_s5c_teid;
22
 
23
     pkbuf = smf_s5c_build_modify_bearer_response(
24
@@ -511,6 +513,7 @@
25
 
26
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
27
     h.type = OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE;
28
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
29
     h.teid = sess->sgw_s5c_teid;
30
 
31
     pkbuf = smf_s5c_build_delete_session_response(h.type, sess);
32
@@ -548,6 +551,7 @@
33
 
34
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
35
     h.type = OGS_GTP2_DELETE_BEARER_REQUEST_TYPE;
36
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
37
     h.teid = sess->sgw_s5c_teid;
38
 
39
     pkbuf = smf_s5c_build_delete_bearer_request(
40
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/smf/n4-handler.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/smf/n4-handler.c Changed
56
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -971,6 +971,7 @@
9
 
10
             memset(&h, 0, sizeof(ogs_gtp2_header_t));
11
             h.teid = sess->sgw_s5c_teid;
12
+            h.teid_presence = OGS_GTP2_TEID_PRESENCE;
13
             h.type = OGS_GTP2_DELETE_BEARER_REQUEST_TYPE;
14
 
15
             pkbuf = smf_s5c_build_delete_bearer_request(
16
@@ -1182,7 +1183,8 @@
17
     }
18
 
19
     if (cause_value != OGS_PFCP_CAUSE_REQUEST_ACCEPTED) {
20
-        ogs_pfcp_send_error_message(pfcp_xact, 0,
21
+        ogs_pfcp_send_error_message(pfcp_xact,
22
+                OGS_PFCP_SEID_NO_PRESENCE, 0,
23
                 OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE,
24
                 cause_value, 0);
25
         return;
26
@@ -1222,7 +1224,8 @@
27
                     if (paging_policy_indication_value) {
28
                         ogs_warn("Not implement - "
29
                                 "Paging Policy Indication Value");
30
-                        ogs_pfcp_send_error_message(pfcp_xact, 0,
31
+                        ogs_pfcp_send_error_message(pfcp_xact,
32
+                                OGS_PFCP_SEID_NO_PRESENCE, 0,
33
                                 OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE,
34
                                 OGS_PFCP_CAUSE_SERVICE_NOT_SUPPORTED, 0);
35
                         return;
36
@@ -1232,7 +1235,8 @@
37
                         qos_flow = smf_qos_flow_find_by_qfi(sess, qfi);
38
                         if (!qos_flow) {
39
                             ogs_error("Cannot find the QoS Flow%d", qfi);
40
-                            ogs_pfcp_send_error_message(pfcp_xact, 0,
41
+                            ogs_pfcp_send_error_message(pfcp_xact,
42
+                                OGS_PFCP_SEID_NO_PRESENCE, 0,
43
                                 OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE,
44
                                 OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0);
45
                             return;
46
@@ -1257,7 +1261,8 @@
47
 
48
         if (!pdr) {
49
             ogs_error("No Context");
50
-            ogs_pfcp_send_error_message(pfcp_xact, 0,
51
+            ogs_pfcp_send_error_message(pfcp_xact,
52
+                    OGS_PFCP_SEID_NO_PRESENCE, 0,
53
                     OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE,
54
                     OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0);
55
             return;
56
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/smf/pfcp-path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/smf/pfcp-path.c Changed
56
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -353,6 +353,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
11
     h.type = OGS_PFCP_SESSION_MODIFICATION_REQUEST_TYPE;
12
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
13
     h.seid = sess->upf_n4_seid;
14
 
15
     n4buf = (*modify_list)(h.type, sess, xact);
16
@@ -430,6 +431,7 @@
17
  *   over N4 towards another SMF or another PFCP entity in the SMF
18
  *   as specified in clause 5.22.2 and clause 5.22.3.
19
  */
20
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
21
     h.seid = sess->upf_n4_seid;
22
 
23
     n4buf = smf_n4_build_session_establishment_request(h.type, sess, xact);
24
@@ -532,6 +534,7 @@
25
 
26
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
27
     h.type = OGS_PFCP_SESSION_DELETION_REQUEST_TYPE;
28
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
29
     h.seid = sess->upf_n4_seid;
30
 
31
     n4buf = smf_n4_build_session_deletion_request(h.type, sess);
32
@@ -605,6 +608,7 @@
33
  *   over N4 towards another SMF or another PFCP entity in the SMF
34
  *   as specified in clause 5.22.2 and clause 5.22.3.
35
  */
36
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
37
     h.seid = sess->upf_n4_seid;
38
 
39
     n4buf = smf_n4_build_session_establishment_request(h.type, sess, xact);
40
@@ -748,6 +752,7 @@
41
 
42
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
43
     h.type = OGS_PFCP_SESSION_DELETION_REQUEST_TYPE;
44
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
45
     h.seid = sess->upf_n4_seid;
46
 
47
     n4buf = smf_n4_build_session_deletion_request(h.type, sess);
48
@@ -846,6 +851,7 @@
49
 
50
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
51
     h.type = OGS_PFCP_SESSION_REPORT_RESPONSE_TYPE;
52
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
53
     h.seid = sess->upf_n4_seid;
54
 
55
     sxabuf = ogs_pfcp_build_session_report_response(h.type, cause);
56
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/smf/pfcp-sm.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/smf/pfcp-sm.c Changed
28
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -317,7 +317,8 @@
9
                         OGS_GTP1_CREATE_PDP_CONTEXT_RESPONSE_TYPE,
10
                         OGS_GTP1_CAUSE_CONTEXT_NOT_FOUND);
11
                 else
12
-                    ogs_gtp2_send_error_message(gtp_xact, 0,
13
+                    ogs_gtp2_send_error_message(gtp_xact,
14
+                        OGS_GTP2_TEID_NO_PRESENCE, 0,
15
                         OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE,
16
                         OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND);
17
                 break;
18
@@ -352,7 +353,8 @@
19
                         OGS_GTP1_DELETE_PDP_CONTEXT_RESPONSE_TYPE,
20
                         OGS_GTP1_CAUSE_CONTEXT_NOT_FOUND);
21
                 else
22
-                    ogs_gtp2_send_error_message(gtp_xact, 0,
23
+                    ogs_gtp2_send_error_message(gtp_xact,
24
+                        OGS_GTP2_TEID_NO_PRESENCE, 0,
25
                         OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE,
26
                         OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND);
27
                 break;
28
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/smf/s5c-handler.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/smf/s5c-handler.c Changed
85
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -504,7 +504,9 @@
9
     }
10
 
11
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
12
-        ogs_gtp2_send_error_message(gtp_xact, sess ? sess->sgw_s5c_teid : 0,
13
+        ogs_gtp2_send_error_message(gtp_xact,
14
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
15
+                sess ? sess->sgw_s5c_teid : 0,
16
                 OGS_GTP2_MODIFY_BEARER_RESPONSE_TYPE, cause_value);
17
         return;
18
     }
19
@@ -1186,7 +1188,9 @@
20
     }
21
 
22
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
23
-        ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0,
24
+        ogs_gtp2_send_error_message(xact,
25
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
26
+                sess ? sess->sgw_s5c_teid : 0,
27
                 OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value);
28
         return;
29
     }
30
@@ -1211,7 +1215,9 @@
31
     }
32
 
33
     if (cause_value != OGS_GTP2_CAUSE_REQUEST_ACCEPTED) {
34
-        ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0,
35
+        ogs_gtp2_send_error_message(xact,
36
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
37
+                sess ? sess->sgw_s5c_teid : 0,
38
                 OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE, cause_value);
39
         return;
40
     }
41
@@ -1240,8 +1246,10 @@
42
             pf = smf_pf_find_by_id(bearer, tft.pfi.identifier+1);
43
             if (pf) {
44
                 if (reconfigure_packet_filter(pf, &tft, i) < 0) {
45
-                    ogs_gtp2_send_error_message(
46
-                        xact, sess ? sess->sgw_s5c_teid : 0,
47
+                    ogs_gtp2_send_error_message(xact,
48
+                        sess ? OGS_GTP2_TEID_PRESENCE :
49
+                            OGS_GTP2_TEID_NO_PRESENCE,
50
+                        sess ? sess->sgw_s5c_teid : 0,
51
                         OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE,
52
                         OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER);
53
                     return;
54
@@ -1309,8 +1317,9 @@
55
             ogs_assert(pf);
56
 
57
             if (reconfigure_packet_filter(pf, &tft, i) < 0) {
58
-                ogs_gtp2_send_error_message(
59
-                    xact, sess ? sess->sgw_s5c_teid : 0,
60
+                ogs_gtp2_send_error_message(xact,
61
+                    sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
62
+                    sess ? sess->sgw_s5c_teid : 0,
63
                     OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE,
64
                     OGS_GTP2_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER);
65
                 return;
66
@@ -1396,7 +1405,9 @@
67
 
68
     if (tft_update == 0 && tft_delete == 0 && qos_update == 0) {
69
         /* No modification */
70
-        ogs_gtp2_send_error_message(xact, sess ? sess->sgw_s5c_teid : 0,
71
+        ogs_gtp2_send_error_message(xact,
72
+                sess ? OGS_GTP2_TEID_PRESENCE : OGS_GTP2_TEID_NO_PRESENCE,
73
+                sess ? sess->sgw_s5c_teid : 0,
74
                 OGS_GTP2_BEARER_RESOURCE_FAILURE_INDICATION_TYPE,
75
                 OGS_GTP2_CAUSE_SERVICE_NOT_SUPPORTED);
76
         return;
77
@@ -1422,6 +1433,7 @@
78
     } else {
79
         memset(&h, 0, sizeof(ogs_gtp2_header_t));
80
         h.teid = sess->sgw_s5c_teid;
81
+        h.teid_presence = OGS_GTP2_TEID_PRESENCE;
82
         h.type = OGS_GTP2_UPDATE_BEARER_REQUEST_TYPE;
83
 
84
         pkbuf = smf_s5c_build_update_bearer_request(
85
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/smf/smf-sm.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/smf/smf-sm.c Changed
28
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -144,7 +144,8 @@
9
             }
10
             if (!sess) {
11
                 ogs_error("No Session");
12
-                ogs_gtp2_send_error_message(gtp_xact, 0,
13
+                ogs_gtp2_send_error_message(gtp_xact,
14
+                        OGS_GTP2_TEID_NO_PRESENCE, 0,
15
                         OGS_GTP2_CREATE_SESSION_RESPONSE_TYPE,
16
                         OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND);
17
                 break;
18
@@ -158,7 +159,8 @@
19
             smf_metrics_inst_gtp_node_inc(smf_gnode->metrics, SMF_METR_GTP_NODE_CTR_S5C_RX_DELETESESSIONREQ);
20
             if (!sess) {
21
                 ogs_error("No Session");
22
-                ogs_gtp2_send_error_message(gtp_xact, 0,
23
+                ogs_gtp2_send_error_message(gtp_xact,
24
+                        OGS_GTP2_TEID_NO_PRESENCE, 0,
25
                         OGS_GTP2_DELETE_SESSION_RESPONSE_TYPE,
26
                         OGS_GTP2_CAUSE_CONTEXT_NOT_FOUND);
27
                 break;
28
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/upf/n4-handler.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/upf/n4-handler.c Changed
60
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -69,7 +69,8 @@
9
 
10
     if (!sess) {
11
         ogs_error("No Context");
12
-        ogs_pfcp_send_error_message(xact, 0,
13
+        ogs_pfcp_send_error_message(xact,
14
+                OGS_PFCP_SEID_NO_PRESENCE, 0,
15
                 OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE,
16
                 OGS_PFCP_CAUSE_MANDATORY_IE_MISSING, 0);
17
         upf_metrics_inst_by_cause_add(OGS_PFCP_CAUSE_MANDATORY_IE_MISSING,
18
@@ -214,7 +215,9 @@
19
     upf_metrics_inst_by_cause_add(cause_value,
20
             UPF_METR_CTR_SM_N4SESSIONESTABFAIL, 1);
21
     ogs_pfcp_sess_clear(&sess->pfcp);
22
-    ogs_pfcp_send_error_message(xact, sess ? sess->smf_n4_f_seid.seid : 0,
23
+    ogs_pfcp_send_error_message(xact,
24
+            sess ? OGS_PFCP_SEID_PRESENCE : OGS_PFCP_SEID_NO_PRESENCE,
25
+            sess ? sess->smf_n4_f_seid.seid : 0,
26
             OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE,
27
             cause_value, offending_ie_value);
28
 }
29
@@ -240,7 +243,8 @@
30
 
31
     if (!sess) {
32
         ogs_error("No Context");
33
-        ogs_pfcp_send_error_message(xact, 0,
34
+        ogs_pfcp_send_error_message(xact,
35
+                OGS_PFCP_SEID_NO_PRESENCE, 0,
36
                 OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE,
37
                 OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0);
38
         return;
39
@@ -413,7 +417,9 @@
40
 
41
 cleanup:
42
     ogs_pfcp_sess_clear(&sess->pfcp);
43
-    ogs_pfcp_send_error_message(xact, sess ? sess->smf_n4_f_seid.seid : 0,
44
+    ogs_pfcp_send_error_message(xact,
45
+            sess ? OGS_PFCP_SEID_PRESENCE : OGS_PFCP_SEID_NO_PRESENCE,
46
+            sess ? sess->smf_n4_f_seid.seid : 0,
47
             OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE,
48
             cause_value, offending_ie_value);
49
 }
50
@@ -431,7 +437,8 @@
51
 
52
     if (!sess) {
53
         ogs_error("No Context");
54
-        ogs_pfcp_send_error_message(xact, 0,
55
+        ogs_pfcp_send_error_message(xact,
56
+                OGS_PFCP_SEID_NO_PRESENCE, 0,
57
                 OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE,
58
                 OGS_PFCP_CAUSE_SESSION_CONTEXT_NOT_FOUND, 0);
59
         return;
60
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/src/upf/pfcp-path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/src/upf/pfcp-path.c Changed
40
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -183,6 +183,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
11
     h.type = OGS_PFCP_SESSION_ESTABLISHMENT_RESPONSE_TYPE;
12
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
13
     h.seid = sess->smf_n4_f_seid.seid;
14
 
15
     n4buf = upf_n4_build_session_establishment_response(
16
@@ -216,6 +217,7 @@
17
 
18
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
19
     h.type = OGS_PFCP_SESSION_MODIFICATION_RESPONSE_TYPE;
20
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
21
     h.seid = sess->smf_n4_f_seid.seid;
22
 
23
     n4buf = upf_n4_build_session_modification_response(
24
@@ -248,6 +250,7 @@
25
 
26
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
27
     h.type = OGS_PFCP_SESSION_DELETION_RESPONSE_TYPE;
28
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
29
     h.seid = sess->smf_n4_f_seid.seid;
30
 
31
     n4buf = upf_n4_build_session_deletion_response(h.type, sess);
32
@@ -300,6 +303,7 @@
33
 
34
     memset(&h, 0, sizeof(ogs_pfcp_header_t));
35
     h.type = OGS_PFCP_SESSION_REPORT_REQUEST_TYPE;
36
+    h.seid_presence = OGS_PFCP_SEID_PRESENCE;
37
     h.seid = sess->smf_n4_f_seid.seid;
38
 
39
     xact = ogs_pfcp_xact_local_create(sess->pfcp_node, sess_timeout, sess);
40
open5gs_2.7.0.114.1dc43.202403222026.tar.xz/tests/non3gpp/gtp-path.c -> open5gs_2.7.0.115.a667.202403232026.tar.xz/tests/non3gpp/gtp-path.c Changed
40
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019,2020 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -135,6 +135,7 @@
9
 
10
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
11
     h.type = OGS_GTP2_CREATE_SESSION_REQUEST_TYPE;
12
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
13
     h.teid = sess->smf_s2b_c_teid;
14
 
15
     pkbuf = test_s2b_build_create_session_request(h.type, sess, handover_ind);
16
@@ -166,6 +167,7 @@
17
 
18
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
19
     h.type = OGS_GTP2_DELETE_SESSION_REQUEST_TYPE;
20
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
21
     h.teid = sess->smf_s2b_c_teid;
22
 
23
     pkbuf = test_s2b_build_delete_session_request(h.type, sess);
24
@@ -201,6 +203,7 @@
25
 
26
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
27
     h.type = OGS_GTP2_CREATE_BEARER_RESPONSE_TYPE;
28
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
29
     h.teid = sess->smf_s2b_c_teid;
30
 
31
     pkbuf = test_s2b_build_create_bearer_response(h.type, bearer);
32
@@ -236,6 +239,7 @@
33
 
34
     memset(&h, 0, sizeof(ogs_gtp2_header_t));
35
     h.type = OGS_GTP2_DELETE_BEARER_RESPONSE_TYPE;
36
+    h.teid_presence = OGS_GTP2_TEID_PRESENCE;
37
     h.teid = sess->smf_s2b_c_teid;
38
 
39
     pkbuf = test_s2b_build_delete_bearer_response(h.type, bearer);
40