Changes of Revision 986

open5gs_2.7.2.4623.6c67.202503032026.dsc -> open5gs_2.7.2.4625.4012.202503042026.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-sepp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg
4
 Architecture: any
5
-Version: 2.7.2.4623.6c67.202503032026
6
+Version: 2.7.2.4625.4012.202503042026
7
 Maintainer: Harald Welte <laforge@gnumonks.org>
8
 Uploaders: Sukchan Lee <acetcom@gmail.com>
9
 Homepage: https://open5gs.org
10
@@ -32,8 +32,8 @@
11
  open5gs-udr deb net optional arch=any
12
  open5gs-upf deb net optional arch=any
13
 Checksums-Sha1:
14
- c390ebcd225281b1d76500c3b3973add697d7155 14526096 open5gs_2.7.2.4623.6c67.202503032026.tar.xz
15
+ d74c8af25129ee0977e9091079d285d963f0ccdf 14526816 open5gs_2.7.2.4625.4012.202503042026.tar.xz
16
 Checksums-Sha256:
17
- a4988fb2ac0594903c5449b74e6947625caef1e4b15e56f5c41c8fd4ba246f75 14526096 open5gs_2.7.2.4623.6c67.202503032026.tar.xz
18
+ 2479a67042b6c1b6f3f7225d70979b371a3653d7a43e9b29176175ae0a95e8de 14526816 open5gs_2.7.2.4625.4012.202503042026.tar.xz
19
 Files:
20
- 2a05e14472623266dd5fcba123e33093 14526096 open5gs_2.7.2.4623.6c67.202503032026.tar.xz
21
+ 8563a17bb419ea1eca28f55f326f8f16 14526816 open5gs_2.7.2.4625.4012.202503042026.tar.xz
22
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/.tarball-version -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/.tarball-version Changed
4
 
1
@@ -1 +1 @@
2
-2.7.2.4623-6c67.202503032026
3
+2.7.2.4625-4012.202503042026
4
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/debian/changelog -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-open5gs (2.7.2.4623.6c67.202503032026) unstable; urgency=medium
3
+open5gs (2.7.2.4625.4012.202503042026) unstable; urgency=medium
4
 
5
   * Automatically generated changelog entry for building the Osmocom nightly feed
6
 
7
- -- Osmocom OBS scripts <info@osmocom.org>  Mon, 03 Mar 2025 20:27:52 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org>  Tue, 04 Mar 2025 20:27:54 +0000
9
 
10
 open5gs (2.7.2) unstable; urgency=medium
11
 
12
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/lib/sbi/client.h -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/lib/sbi/client.h Changed
46
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -40,15 +40,15 @@
9
             client = ((__cTX)->client); \
10
             ogs_assert(client); \
11
             if (client->fqdn) { \
12
-                ogs_warn("NF EndPoint(fqdn) updated %s:%d", \
13
+                ogs_warn("UnRef NF EndPoint(fqdn) %s:%d", \
14
                         client->fqdn, client->fqdn_port); \
15
             } \
16
             if (client->addr) { \
17
-                ogs_warn("NF EndPoint(addr) updated %s:%d", \
18
+                ogs_warn("UnRef NF EndPoint(addr) %s:%d", \
19
                     OGS_ADDR(client->addr, buf), OGS_PORT(client->addr)); \
20
             } \
21
             if (client->addr6) { \
22
-                ogs_warn("NF EndPoint(addr6) updated %s:%d", \
23
+                ogs_warn("UnRef NF EndPoint(addr6) %s:%d", \
24
                     OGS_ADDR(client->addr6, buf), OGS_PORT(client->addr6)); \
25
             } \
26
             ogs_sbi_client_remove(client); \
27
@@ -58,15 +58,15 @@
28
         ((__cTX)->client) = (__pClient); \
29
         ogs_debug("CLIENT Ref %d", (__pClient)->reference_count); \
30
         if ((__pClient)->fqdn) { \
31
-            ogs_info("NF EndPoint(fqdn) setup %s:%d", \
32
+            ogs_info("Setup NF EndPoint(fqdn) %s:%d", \
33
                     (__pClient)->fqdn, (__pClient)->fqdn_port); \
34
         } \
35
         if ((__pClient)->addr) { \
36
-            ogs_info("NF EndPoint(addr) setup %s:%d", \
37
+            ogs_info("Setup NF EndPoint(addr) %s:%d", \
38
                 OGS_ADDR((__pClient)->addr, buf), OGS_PORT((__pClient)->addr)); \
39
         } \
40
         if ((__pClient)->addr6) { \
41
-            ogs_info("NF EndPoint(addr6) setup %s:%d", \
42
+            ogs_info("Setup NF EndPoint(addr6) %s:%d", \
43
                 OGS_ADDR((__pClient)->addr6, buf), \
44
                 OGS_PORT((__pClient)->addr6)); \
45
         } \
46
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/lib/sbi/context.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/lib/sbi/context.c Changed
60
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2024 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -1390,7 +1390,19 @@
9
 {
10
     ogs_sbi_nf_instance_t *nf_instance = NULL;
11
 
12
-    ogs_assert(id);
13
+    /*
14
+     * This is related to Issue #3093.
15
+     *
16
+     * We want to be able to use 'ogs_sbi_nf_instance_id_find(char *id)'
17
+     * even if the 'id' is NULL as in the use case below.
18
+     *
19
+     * ogs_sbi_nf_instance_find(
20
+     *    sess->sbi.service_type_arrayservice_type.nf_instance_id));
21
+     *
22
+     * To do so, we changed the 'assert(id)' to 'if (!id) return NULL',
23
+     * as shown below.
24
+     */
25
+    if (!id) return NULL;
26
 
27
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance) {
28
         if (nf_instance->id && strcmp(nf_instance->id, id) == 0)
29
@@ -2394,7 +2406,7 @@
30
         }
31
     }
32
 
33
-    return nf_instance->client;
34
+    return NULL;
35
 }
36
 
37
 ogs_sbi_client_t *ogs_sbi_client_find_by_service_type(
38
@@ -2417,10 +2429,21 @@
39
 
40
 void ogs_sbi_object_free(ogs_sbi_object_t *sbi_object)
41
 {
42
+    int i;
43
+
44
     ogs_assert(sbi_object);
45
 
46
     if (ogs_list_count(&sbi_object->xact_list))
47
         ogs_error("SBI running %d", ogs_list_count(&sbi_object->xact_list));
48
+
49
+    for (i = 0; i < OGS_SBI_MAX_NUM_OF_SERVICE_TYPE; i++) {
50
+        if (sbi_object->service_type_arrayi.nf_instance_id)
51
+            ogs_free(sbi_object->service_type_arrayi.nf_instance_id);
52
+    }
53
+    for (i = 0; i < OGS_SBI_MAX_NUM_OF_NF_TYPE; i++) {
54
+        if (sbi_object->nf_type_arrayi.nf_instance_id)
55
+            ogs_free(sbi_object->nf_type_arrayi.nf_instance_id);
56
+    }
57
 }
58
 
59
 ogs_sbi_xact_t *ogs_sbi_xact_add(
60
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/lib/sbi/context.h -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/lib/sbi/context.h Changed
125
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -202,8 +202,9 @@
9
     ogs_sbi_obj_type_e type;
10
 
11
     struct {
12
-        ogs_sbi_nf_instance_t *nf_instance;
13
+        char *nf_instance_id;
14
 
15
+#if ENABLE_VALIDITY_TIMEOUT
16
         /*
17
          * Search.Result stored in nf_instance->time.validity_duration;
18
          *
19
@@ -213,6 +214,7 @@
20
          * if no validityPeriod in SearchResult, validity_timeout is 0.
21
          */
22
         ogs_time_t validity_timeout;
23
+#endif
24
     } nf_type_arrayOGS_SBI_MAX_NUM_OF_NF_TYPE,
25
       service_type_arrayOGS_SBI_MAX_NUM_OF_SERVICE_TYPE;
26
 
27
@@ -478,49 +480,77 @@
28
 
29
 int ogs_sbi_default_client_port(OpenAPI_uri_scheme_e scheme);
30
 
31
+#if ENABLE_VALIDITY_TIMEOUT
32
 #define OGS_SBI_SETUP_NF_INSTANCE(__cTX, __nFInstance) \
33
     do { \
34
         ogs_assert(__nFInstance); \
35
         ogs_assert((__nFInstance)->id); \
36
+        ogs_assert((__nFInstance)->nf_type); \
37
         ogs_assert((__nFInstance)->t_validity); \
38
         \
39
-        if ((__cTX).nf_instance) { \
40
-            ogs_warn("%s NF Instance updated type:%s validity:%ds", \
41
-                    ((__cTX).nf_instance)->id, \
42
-                    OpenAPI_nf_type_ToString(((__cTX).nf_instance)->nf_type), \
43
-                    ((__cTX).nf_instance)->time.validity_duration); \
44
+        if ((__cTX).nf_instance_id) { \
45
+            ogs_warn("%s Unlink NF Instance " \
46
+                    "type:%s validity:%d timeout:%lds", \
47
+                    ((__cTX).nf_instance_id), \
48
+                    OpenAPI_nf_type_ToString((__nFInstance)->nf_type), \
49
+                    (__nFInstance)->time.validity_duration, \
50
+                    (long)((__cTX).validity_timeout)); \
51
+            ogs_free((__cTX).nf_instance_id); \
52
         } \
53
         \
54
-        ((__cTX).nf_instance) = __nFInstance; \
55
+        ((__cTX).nf_instance_id) = ogs_strdup((__nFInstance)->id); \
56
         if ((__nFInstance)->time.validity_duration) { \
57
             ((__cTX).validity_timeout) = (__nFInstance)->t_validity->timeout; \
58
         } else { \
59
             ((__cTX).validity_timeout) = 0; \
60
         } \
61
-        ogs_info("%s NF Instance setup type:%s validity:%ds", \
62
-                (__nFInstance)->id, \
63
+        ogs_info("%s Setup NF Instance type:%s validity:%d timeout:%lds", \
64
+                ((__cTX).nf_instance_id), \
65
                 OpenAPI_nf_type_ToString((__nFInstance)->nf_type), \
66
-                (__nFInstance)->time.validity_duration); \
67
+                (__nFInstance)->time.validity_duration, \
68
+                (long)((__cTX).validity_timeout)); \
69
     } while(0)
70
+#else
71
+#define OGS_SBI_SETUP_NF_INSTANCE(__cTX, __nFInstance) \
72
+    do { \
73
+        ogs_assert(__nFInstance); \
74
+        ogs_assert((__nFInstance)->id); \
75
+        ogs_assert((__nFInstance)->nf_type); \
76
+        \
77
+        if ((__cTX).nf_instance_id) { \
78
+            ogs_warn("%s Unlink NF Instance type:%s", \
79
+                    ((__cTX).nf_instance_id), \
80
+                    OpenAPI_nf_type_ToString((__nFInstance)->nf_type)); \
81
+            ogs_free((__cTX).nf_instance_id); \
82
+        } \
83
+        \
84
+        ((__cTX).nf_instance_id) = ogs_strdup((__nFInstance)->id); \
85
+        ogs_info("%s Setup NF Instance type:%s", \
86
+                ((__cTX).nf_instance_id), \
87
+                OpenAPI_nf_type_ToString((__nFInstance)->nf_type)); \
88
+    } while(0)
89
+#endif
90
 
91
 /*
92
- * Search.Result stored in nf_instance->time.validity_duration;
93
+ * Issue #3470
94
  *
95
- * validity_timeout = nf_instance->validity->timeout =
96
- *     ogs_get_monotonic_time() + nf_instance->time.validity_duration;
97
+ * Previously, nf_instance pointers were stored in nf_type_array and
98
+ * service_type_array. This led to a dangling pointer problem when an
99
+ * nf_instance was removed via ogs_sbi_nf_instance_remove().
100
  *
101
- * if no validityPeriod in SearchResult, validity_timeout is 0.
102
+ * To resolve this, we now store nf_instance_id instead, and use
103
+ * ogs_sbi_nf_instance_find(nf_instance_id) to verify the validity of an
104
+ * nf_instance.
105
  */
106
+#if ENABLE_VALIDITY_TIMEOUT
107
 #define OGS_SBI_GET_NF_INSTANCE(__cTX) \
108
     ((__cTX).validity_timeout == 0 || \
109
      (__cTX).validity_timeout > ogs_get_monotonic_time() ? \
110
-        ((__cTX).nf_instance) : NULL)
111
-
112
-#define OGS_SBI_NF_INSTANCE_VALID(__nFInstance) \
113
-    (((__nFInstance) && ((__nFInstance)->t_validity) && \
114
-     ((__nFInstance)->time.validity_duration == 0 || \
115
-      (__nFInstance)->t_validity->timeout > ogs_get_monotonic_time())) ? \
116
-         true : false)
117
+        (ogs_sbi_nf_instance_find((__cTX).nf_instance_id)) : NULL)
118
+#else
119
+#define OGS_SBI_GET_NF_INSTANCE(__cTX) \
120
+        ogs_sbi_nf_instance_find((__cTX).nf_instance_id)
121
+#endif
122
 
123
 bool ogs_sbi_discovery_param_is_matched(
124
         ogs_sbi_nf_instance_t *nf_instance,
125
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/lib/sbi/mhd-server.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/lib/sbi/mhd-server.c Changed
31
 
1
@@ -32,6 +32,7 @@
2
 
3
 static int server_start(ogs_sbi_server_t *server,
4
         int (*cb)(ogs_sbi_request_t *request, void *data));
5
+static void server_graceful_shutdown(ogs_sbi_server_t *server);
6
 static void server_stop(ogs_sbi_server_t *server);
7
 
8
 static bool server_send_rspmem_persistent(
9
@@ -49,6 +50,7 @@
10
     server_final,
11
 
12
     server_start,
13
+    server_graceful_shutdown,
14
     server_stop,
15
 
16
     server_send_rspmem_persistent,
17
@@ -287,6 +289,13 @@
18
     return OGS_OK;
19
 }
20
 
21
+static void server_graceful_shutdown(ogs_sbi_server_t *server)
22
+{
23
+    ogs_assert(server);
24
+
25
+    /* No need to shutdown gracefully */
26
+}
27
+
28
 static void server_stop(ogs_sbi_server_t *server)
29
 {
30
     ogs_assert(server);
31
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/lib/sbi/nghttp2-server.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/lib/sbi/nghttp2-server.c Changed
51
 
1
@@ -30,6 +30,7 @@
2
 
3
 static int server_start(ogs_sbi_server_t *server,
4
         int (*cb)(ogs_sbi_request_t *request, void *data));
5
+static void server_graceful_shutdown(ogs_sbi_server_t *server);
6
 static void server_stop(ogs_sbi_server_t *server);
7
 
8
 static bool server_send_rspmem_persistent(
9
@@ -47,6 +48,7 @@
10
     server_final,
11
 
12
     server_start,
13
+    server_graceful_shutdown,
14
     server_stop,
15
 
16
     server_send_rspmem_persistent,
17
@@ -442,6 +444,33 @@
18
     return OGS_OK;
19
 }
20
 
21
+/* Gracefully shutdown the server by sending GOAWAY to each session. */
22
+static void server_graceful_shutdown(ogs_sbi_server_t *server)
23
+{
24
+    ogs_sbi_session_t *sbi_sess = NULL;
25
+    ogs_sbi_session_t *next_sbi_sess = NULL;
26
+    int rv;
27
+
28
+    /* Iterate over all active sessions in the server. */
29
+    ogs_list_for_each_safe(&server->session_list, next_sbi_sess, sbi_sess) {
30
+        /* Submit a GOAWAY frame using the last stream ID. */
31
+        rv = nghttp2_submit_goaway(sbi_sess->session,
32
+                                   NGHTTP2_FLAG_NONE,
33
+                                   sbi_sess->last_stream_id,
34
+                                   NGHTTP2_NO_ERROR,
35
+                                   NULL, 0);
36
+        if (rv != 0) {
37
+            ogs_error("nghttp2_submit_goaway() failed (%d:%s)",
38
+                      rv, nghttp2_strerror(rv));
39
+        }
40
+
41
+        /* Send the GOAWAY frame to the client. */
42
+        if (session_send(sbi_sess) != OGS_OK) {
43
+            ogs_error("session_send() failed during graceful shutdown");
44
+        }
45
+    }
46
+}
47
+
48
 static void server_stop(ogs_sbi_server_t *server)
49
 {
50
     ogs_assert(server);
51
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/lib/sbi/path.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/lib/sbi/path.c Changed
27
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -282,7 +282,17 @@
9
         ogs_assert(scp_client);
10
     }
11
 
12
-    /* Target NF-Instance */
13
+/*
14
+ * Issue #3470
15
+ *
16
+ * Previously, nf_instance pointers were stored in nf_type_array and
17
+ * service_type_array. This led to a dangling pointer problem when an
18
+ * nf_instance was removed via ogs_sbi_nf_instance_remove().
19
+ *
20
+ * To resolve this, we now store nf_instance_id instead, and use
21
+ * ogs_sbi_nf_instance_find(nf_instance_id) to verify the validity of an
22
+ * nf_instance.
23
+ */
24
     nf_instance = OGS_SBI_GET_NF_INSTANCE(
25
             sbi_object->service_type_arrayservice_type);
26
     ogs_debug("OGS_SBI_GET_NF_INSTANCE nf_instance:%p,service_name:%s",
27
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/lib/sbi/server.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/lib/sbi/server.c Changed
16
 
1
@@ -156,6 +156,14 @@
2
     return OGS_OK;
3
 }
4
 
5
+void ogs_sbi_server_graceful_shutdown_all(void)
6
+{
7
+    ogs_sbi_server_t *server = NULL, *next_server = NULL;
8
+
9
+    ogs_list_for_each_safe(&ogs_sbi_self()->server_list, next_server, server)
10
+        ogs_sbi_server_actions.graceful_shutdown(server);
11
+}
12
+
13
 void ogs_sbi_server_stop_all(void)
14
 {
15
     ogs_sbi_server_t *server = NULL, *next_server = NULL;
16
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/lib/sbi/server.h -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/lib/sbi/server.h Changed
17
 
1
@@ -59,6 +59,7 @@
2
 
3
     int (*start)(ogs_sbi_server_t *server,
4
             int (*cb)(ogs_sbi_request_t *request, void *data));
5
+    void (*graceful_shutdown)(ogs_sbi_server_t *server);
6
     void (*stop)(ogs_sbi_server_t *server);
7
 
8
     bool (*send_rspmem_persistent)(
9
@@ -87,6 +88,7 @@
10
 
11
 int ogs_sbi_server_start_all(
12
         int (*cb)(ogs_sbi_request_t *request, void *data));
13
+void ogs_sbi_server_graceful_shutdown_all(void);
14
 void ogs_sbi_server_stop_all(void);
15
 
16
 bool ogs_sbi_server_send_rspmem_persistent(
17
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/amf/gmm-handler.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/amf/gmm-handler.c Changed
8
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/amf/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/amf/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -80,6 +80,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/amf/namf-build.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/amf/namf-build.c Changed
8
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019,2020 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/amf/namf-handler.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/amf/namf-handler.c Changed
8
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/amf/nnrf-handler.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/amf/nnrf-handler.c Changed
8
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/amf/sbi-path.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/amf/sbi-path.c Changed
8
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2022 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/ausf/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/ausf/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -65,6 +65,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/bsf/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/bsf/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -67,6 +67,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/nrf/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/nrf/init.c Changed
20
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -59,9 +59,8 @@
9
 
10
 static void event_termination(void)
11
 {
12
-    /*
13
-     * Add business-login during Daemon termination
14
-     */
15
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
16
+    ogs_sbi_server_graceful_shutdown_all();
17
 
18
     /* Start holding timer */
19
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
20
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/nssf/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/nssf/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -65,6 +65,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/pcf/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/pcf/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -78,6 +78,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/scp/context.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/scp/context.c Changed
10
 
1
@@ -339,8 +339,6 @@
2
 
3
     if (assoc->client)
4
         ogs_sbi_client_remove(assoc->client);
5
-    if (assoc->nrf_client)
6
-        ogs_sbi_client_remove(assoc->nrf_client);
7
 
8
     if (assoc->target_apiroot)
9
         ogs_free(assoc->target_apiroot);
10
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/scp/context.h -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/scp/context.h Changed
9
 
1
@@ -46,7 +46,6 @@
2
     ogs_pool_id_t stream_id;
3
 
4
     ogs_sbi_client_t *client;
5
-    ogs_sbi_client_t *nrf_client;
6
 
7
     ogs_sbi_request_t *request;
8
 
9
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/scp/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/scp/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -67,6 +67,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/sepp/context.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/sepp/context.c Changed
10
 
1
@@ -567,8 +567,6 @@
2
 
3
     if (assoc->client)
4
         ogs_sbi_client_remove(assoc->client);
5
-    if (assoc->nrf_client)
6
-        ogs_sbi_client_remove(assoc->nrf_client);
7
 
8
     ogs_pool_free(&sepp_assoc_pool, assoc);
9
 }
10
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/sepp/context.h -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/sepp/context.h Changed
9
 
1
@@ -85,7 +85,6 @@
2
     ogs_pool_id_t stream_id;
3
 
4
     ogs_sbi_client_t *client;
5
-    ogs_sbi_client_t *nrf_client;
6
 
7
     ogs_sbi_request_t *request;
8
     ogs_sbi_service_type_e service_type;
9
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/sepp/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/sepp/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2023-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -72,6 +72,9 @@
9
     ogs_list_for_each(&sepp_self()->peer_list, sepp_node)
10
         sepp_handshake_fsm_fini(sepp_node);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/smf/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/smf/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -105,6 +105,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/udm/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/udm/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -65,6 +65,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18
open5gs_2.7.2.4623.6c67.202503032026.tar.xz/src/udr/init.c -> open5gs_2.7.2.4625.4012.202503042026.tar.xz/src/udr/init.c Changed
18
 
1
@@ -1,5 +1,5 @@
2
 /*
3
- * Copyright (C) 2019-2023 by Sukchan Lee <acetcom@gmail.com>
4
+ * Copyright (C) 2019-2025 by Sukchan Lee <acetcom@gmail.com>
5
  *
6
  * This file is part of Open5GS.
7
  *
8
@@ -68,6 +68,9 @@
9
     ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance)
10
         ogs_sbi_nf_fsm_fini(nf_instance);
11
 
12
+    /* Gracefully shutdown the server by sending GOAWAY to each session. */
13
+    ogs_sbi_server_graceful_shutdown_all();
14
+
15
     /* Starting holding timer */
16
     t_termination_holding = ogs_timer_add(ogs_app()->timer_mgr, NULL, NULL);
17
     ogs_assert(t_termination_holding);
18