Changes of Revision 69

open5gs_2.4.9.47.c28f.202209030002.dsc Deleted
x
 
1
@@ -1,37 +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-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg
5
-Architecture: any
6
-Version: 2.4.9.47.c28f.202209030002
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), 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-sgwc deb net optional arch=any
28
- open5gs-sgwu deb net optional arch=any
29
- open5gs-smf deb net optional arch=any
30
- open5gs-udm deb net optional arch=any
31
- open5gs-udr deb net optional arch=any
32
- open5gs-upf deb net optional arch=any
33
-Checksums-Sha1:
34
- 9d784ed14450cd7392b15c753fd48e470ef7d9ca 11460208 open5gs_2.4.9.47.c28f.202209030002.tar.xz
35
-Checksums-Sha256:
36
- ab321a7edd9c4ae5572f089c22ca825ed062d9d0f22ea79f2df8b39c6ac0f8df 11460208 open5gs_2.4.9.47.c28f.202209030002.tar.xz
37
-Files:
38
- a82cdf4a0340ff40a8cab7255b9fb73b 11460208 open5gs_2.4.9.47.c28f.202209030002.tar.xz
39
open5gs_2.4.9.52.c716a.202209040002.dsc Added
39
 
1
@@ -0,0 +1,37 @@
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-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg
5
+Architecture: any
6
+Version: 2.4.9.52.c716a.202209040002
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), 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-sgwc deb net optional arch=any
28
+ open5gs-sgwu deb net optional arch=any
29
+ open5gs-smf deb net optional arch=any
30
+ open5gs-udm deb net optional arch=any
31
+ open5gs-udr deb net optional arch=any
32
+ open5gs-upf deb net optional arch=any
33
+Checksums-Sha1:
34
+ c34d34c0ec7f9211bbf22e1018ed3d23bea882b1 11460216 open5gs_2.4.9.52.c716a.202209040002.tar.xz
35
+Checksums-Sha256:
36
+ e3127837b196f660a67aec48994b68814bf78832dde9ee429c152a058ba644cb 11460216 open5gs_2.4.9.52.c716a.202209040002.tar.xz
37
+Files:
38
+ 7500e8203cc72a1c4e604b87956c5c25 11460216 open5gs_2.4.9.52.c716a.202209040002.tar.xz
39
open5gs_2.4.9.47.c28f.202209030002.tar.xz/.tarball-version -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/.tarball-version Changed
4
 
1
@@ -1 +1 @@
2
-2.4.9.47-c28f.202209030002
3
+2.4.9.52-c716a.202209040002
4
open5gs_2.4.9.47.c28f.202209030002.tar.xz/debian/changelog -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-open5gs (2.4.9.47.c28f.202209030002) unstable; urgency=medium
3
+open5gs (2.4.9.52.c716a.202209040002) unstable; urgency=medium
4
 
5
   * Automatically generated changelog entry for building the Osmocom nightly feed
6
 
7
- -- Osmocom OBS scripts <info@osmocom.org>  Sat, 03 Sep 2022 00:04:25 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org>  Sun, 04 Sep 2022 00:04:33 +0000
9
 
10
 open5gs (2.4.9) unstable; urgency=medium
11
 
12
open5gs_2.4.9.47.c28f.202209030002.tar.xz/lib/core/ogs-timer.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/lib/core/ogs-timer.c Changed
92
 
1
@@ -70,6 +70,12 @@
2
     ogs_free(manager);
3
 }
4
 
5
+static ogs_timer_t *ogs_timer_cycle(ogs_timer_mgr_t *manager, ogs_timer_t *timer)
6
+{
7
+    ogs_assert(manager);
8
+    return ogs_pool_cycle(&manager->pool, timer);
9
+}
10
+
11
 ogs_timer_t *ogs_timer_add(
12
         ogs_timer_mgr_t *manager, void (*cb)(void *data), void *data)
13
 {
14
@@ -77,7 +83,11 @@
15
     ogs_assert(manager);
16
 
17
     ogs_pool_alloc(&manager->pool, &timer);
18
-    ogs_assert(timer);
19
+    if (!timer) {
20
+        ogs_fatal("ogs_pool_alloc() failed");
21
+        return NULL;
22
+    }
23
+    ogs_expect_or_return_val(timer, NULL);
24
 
25
     memset(timer, 0, sizeof *timer);
26
     timer->cb = cb;
27
@@ -88,19 +98,25 @@
28
     return timer;
29
 }
30
 
31
-void ogs_timer_delete(ogs_timer_t *timer)
32
+void ogs_timer_delete_debug(ogs_timer_t *timer, const char *file_line)
33
 {
34
     ogs_timer_mgr_t *manager;
35
     ogs_assert(timer);
36
     manager = timer->manager;
37
     ogs_assert(manager);
38
+    timer = ogs_timer_cycle(manager, timer);
39
+    if (!timer) {
40
+        ogs_fatal("ogs_timer_delete() failed in %s", file_line);
41
+        ogs_assert_if_reached();
42
+    }
43
 
44
     ogs_timer_stop(timer);
45
 
46
     ogs_pool_free(&manager->pool, timer);
47
 }
48
 
49
-void ogs_timer_start(ogs_timer_t *timer, ogs_time_t duration)
50
+void ogs_timer_start_debug(
51
+        ogs_timer_t *timer, ogs_time_t duration, const char *file_line)
52
 {
53
     ogs_timer_mgr_t *manager = NULL;
54
     ogs_assert(timer);
55
@@ -108,6 +124,11 @@
56
 
57
     manager = timer->manager;
58
     ogs_assert(manager);
59
+    timer = ogs_timer_cycle(manager, timer);
60
+    if (!timer) {
61
+        ogs_fatal("ogs_timer_start() failed in %s", file_line);
62
+        ogs_assert_if_reached();
63
+    }
64
 
65
     if (timer->running == true)
66
         ogs_rbtree_delete(&manager->tree, timer);
67
@@ -116,12 +137,18 @@
68
     add_timer_node(&manager->tree, timer, duration);
69
 }
70
 
71
-void ogs_timer_stop(ogs_timer_t *timer)
72
+void ogs_timer_stop_debug(ogs_timer_t *timer, const char *file_line)
73
 {
74
     ogs_timer_mgr_t *manager = NULL;
75
     ogs_assert(timer);
76
     manager = timer->manager;
77
     ogs_assert(manager);
78
+    timer = ogs_timer_cycle(manager, timer);
79
+    ogs_assert(timer);
80
+    if (!timer) {
81
+        ogs_fatal("ogs_timer_stop() failed in %s", file_line);
82
+        ogs_assert_if_reached();
83
+    }
84
 
85
     if (timer->running == false)
86
         return;
87
@@ -178,4 +205,3 @@
88
             this->cb(this->data);
89
     }
90
 }
91
-
92
open5gs_2.4.9.47.c28f.202209030002.tar.xz/lib/core/ogs-timer.h -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/lib/core/ogs-timer.h Changed
22
 
1
@@ -46,10 +46,17 @@
2
 
3
 ogs_timer_t *ogs_timer_add(
4
         ogs_timer_mgr_t *manager, void (*cb)(void *data), void *data);
5
-void ogs_timer_delete(ogs_timer_t *timer);
6
+#define ogs_timer_delete(timer) \
7
+    ogs_timer_delete_debug(timer, OGS_FILE_LINE)
8
+void ogs_timer_delete_debug(ogs_timer_t *timer, const char *file_line);
9
 
10
-void ogs_timer_start(ogs_timer_t *timer, ogs_time_t duration);
11
-void ogs_timer_stop(ogs_timer_t *timer);
12
+#define ogs_timer_start(timer, duration) \
13
+    ogs_timer_start_debug(timer, duration, OGS_FILE_LINE)
14
+void ogs_timer_start_debug(
15
+        ogs_timer_t *timer, ogs_time_t duration, const char *file_line);
16
+#define ogs_timer_stop(timer) \
17
+    ogs_timer_stop_debug(timer, OGS_FILE_LINE)
18
+void ogs_timer_stop_debug(ogs_timer_t *timer, const char *file_line);
19
 
20
 ogs_time_t ogs_timer_mgr_next(ogs_timer_mgr_t *manager);
21
 void ogs_timer_mgr_expire(ogs_timer_mgr_t *manager);
22
open5gs_2.4.9.47.c28f.202209030002.tar.xz/lib/sbi/client.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/lib/sbi/client.c Changed
26
 
1
@@ -106,10 +106,13 @@
2
 
3
     ogs_assert(OGS_OK == ogs_copyaddrinfo(&client->node.addr, addr));
4
 
5
-    ogs_list_init(&client->connection_list);
6
-
7
     client->t_curl = ogs_timer_add(
8
             ogs_app()->timer_mgr, multi_timer_expired, client);
9
+    if (!client->t_curl) {
10
+        ogs_error("ogs_timer_add() failed");
11
+        ogs_pool_free(&client_pool, client);
12
+        return NULL;
13
+    }
14
 
15
     multi = client->multi = curl_multi_init();
16
     ogs_assert(multi);
17
@@ -122,6 +125,8 @@
18
                         ogs_app()->pool.stream);
19
 #endif
20
 
21
+    ogs_list_init(&client->connection_list);
22
+
23
     ogs_list_add(&ogs_sbi_self()->client_list, client);
24
 
25
     return client;
26
open5gs_2.4.9.47.c28f.202209030002.tar.xz/lib/sbi/message.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/lib/sbi/message.c Changed
66
 
1
@@ -305,17 +305,19 @@
2
         }
3
         if (ogs_sbi_self()->discovery_config.no_service_names == false &&
4
             discovery_option->num_of_service_names) {
5
-            char *v = NULL;
6
-            cJSON *item = NULL;
7
 
8
-            item = cJSON_CreateStringArray(
9
-                (const char * const*)discovery_option->service_names,
10
-                discovery_option->num_of_service_names);
11
-            ogs_expect_or_return_val(item, NULL);
12
+            /* send array items separated by a comma */
13
+            char *v = NULL;
14
 
15
-            v = cJSON_Print(item);
16
+            v = ogs_strdup(discovery_option->service_names0);
17
             ogs_expect_or_return_val(v, NULL);
18
-            cJSON_Delete(item);
19
+
20
+            if (discovery_option->num_of_service_names > 1)
21
+            {
22
+                int i;
23
+                for (i = 1; i < discovery_option->num_of_service_names; i++)
24
+                    v = ogs_mstrcatf(v, ",%s", discovery_option->service_namesi);
25
+            }
26
 
27
             ogs_sbi_header_set(
28
                     request->http.params, OGS_SBI_PARAM_SERVICE_NAMES, v);
29
@@ -523,23 +525,26 @@
30
         } else if (!strcmp(ogs_hash_this_key(hi),
31
                     OGS_SBI_PARAM_SERVICE_NAMES)) {
32
             char *v = NULL;
33
-            cJSON *array = NULL, *item = NULL;
34
+            char *service_names;
35
+            char *token;
36
+            char *saveptr;
37
 
38
             v = ogs_hash_this_val(hi);
39
             if (v) {
40
-                array = cJSON_Parse(v);
41
-                if (cJSON_IsArray(array)) {
42
+                service_names = ogs_strdup(v);
43
+                ogs_assert(service_names);
44
 
45
+                token = ogs_strtok_r(service_names, ",", &saveptr);
46
+                while (token != NULL)
47
+                {
48
                     discovery_option_presence = true;
49
+                    ogs_sbi_discovery_option_add_service_names(
50
+                        discovery_option, token);
51
 
52
-                    cJSON_ArrayForEach(item, array) {
53
-                        char *names = cJSON_GetStringValue(item);
54
-                        if (names)
55
-                            ogs_sbi_discovery_option_add_service_names(
56
-                                    discovery_option, names);
57
-                    }
58
+                    token = ogs_strtok_r(NULL, ",", &saveptr);
59
                 }
60
-                cJSON_Delete(array);
61
+
62
+                ogs_free(service_names);
63
             }
64
 
65
         /* URL Query Parameter */
66
open5gs_2.4.9.47.c28f.202209030002.tar.xz/lib/sbi/mhd-server.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/lib/sbi/mhd-server.c Changed
14
 
1
@@ -135,7 +135,11 @@
2
 
3
     sbi_sess->timer = ogs_timer_add(
4
             ogs_app()->timer_mgr, session_timer_expired, sbi_sess);
5
-    ogs_assert(sbi_sess->timer);
6
+    if (!sbi_sess->timer) {
7
+        ogs_error("ogs_timer_add() failed");
8
+        ogs_pool_free(&session_pool, sbi_sess);
9
+        return NULL;
10
+    }
11
 
12
     /* If User does not send HTTP response within deadline,
13
      * Open5GS will assert this program. */
14
open5gs_2.4.9.47.c28f.202209030002.tar.xz/src/amf/context.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/src/amf/context.c Changed
114
 
1
@@ -973,6 +973,14 @@
2
     ogs_assert(ran_ue);
3
     memset(ran_ue, 0, sizeof *ran_ue);
4
 
5
+    ran_ue->t_ng_holding = ogs_timer_add(
6
+            ogs_app()->timer_mgr, amf_timer_ng_holding_timer_expire, ran_ue);
7
+    if (!ran_ue->t_ng_holding) {
8
+        ogs_error("ogs_timer_add() failed");
9
+        ogs_pool_free(&ran_ue_pool, ran_ue);
10
+        return NULL;
11
+    }
12
+
13
     ran_ue->index = ogs_pool_index(&ran_ue_pool, ran_ue);
14
     ogs_assert(ran_ue->index > 0 && ran_ue->index <= ogs_app()->max.ue);
15
 
16
@@ -989,10 +997,6 @@
17
     ran_ue->gnb_ostream_id =
18
         OGS_NEXT_ID(gnb->ostream_id, 1, gnb->max_num_of_ostreams-1);
19
 
20
-    ran_ue->t_ng_holding = ogs_timer_add(
21
-            ogs_app()->timer_mgr, amf_timer_ng_holding_timer_expire, ran_ue);
22
-    ogs_assert(ran_ue->t_ng_holding);
23
-
24
     ran_ue->gnb = gnb;
25
 
26
     ogs_list_add(&gnb->ran_ue_list, ran_ue);
27
@@ -1163,41 +1167,71 @@
28
     ogs_assert(amf_ue);
29
     memset(amf_ue, 0, sizeof *amf_ue);
30
 
31
-    /* SBI Type */
32
-    amf_ue->sbi.type = OGS_SBI_OBJ_UE_TYPE;
33
-
34
-    /* SBI Features */
35
-    OGS_SBI_FEATURES_SET(amf_ue->am_policy_control_features,
36
-            OGS_SBI_NPCF_AM_POLICY_CONTROL_UE_AMBR_AUTHORIZATION);
37
-
38
-    ogs_list_init(&amf_ue->sess_list);
39
-
40
-    /* Initialization */
41
-    amf_ue->guami = &amf_self()->served_guami0;
42
-    amf_ue->nas.access_type = OGS_ACCESS_TYPE_3GPP;
43
-    amf_ue->nas.amf.ksi = OGS_NAS_KSI_NO_KEY_IS_AVAILABLE;
44
-    amf_ue->abba_len = 2;
45
-
46
     /* Add All Timers */
47
     amf_ue->t3513.timer = ogs_timer_add(
48
             ogs_app()->timer_mgr, amf_timer_t3513_expire, amf_ue);
49
+    if (!amf_ue->t3513.timer) {
50
+        ogs_error("ogs_timer_add() failed");
51
+        ogs_pool_free(&amf_ue_pool, amf_ue);
52
+        return NULL;
53
+    }
54
     amf_ue->t3513.pkbuf = NULL;
55
     amf_ue->t3522.timer = ogs_timer_add(
56
             ogs_app()->timer_mgr, amf_timer_t3522_expire, amf_ue);
57
+    if (!amf_ue->t3522.timer) {
58
+        ogs_error("ogs_timer_add() failed");
59
+        ogs_pool_free(&amf_ue_pool, amf_ue);
60
+        return NULL;
61
+    }
62
     amf_ue->t3522.pkbuf = NULL;
63
     amf_ue->t3550.timer = ogs_timer_add(
64
             ogs_app()->timer_mgr, amf_timer_t3550_expire, amf_ue);
65
+    if (!amf_ue->t3550.timer) {
66
+        ogs_error("ogs_timer_add() failed");
67
+        ogs_pool_free(&amf_ue_pool, amf_ue);
68
+        return NULL;
69
+    }
70
     amf_ue->t3550.pkbuf = NULL;
71
     amf_ue->t3555.timer = ogs_timer_add(
72
             ogs_app()->timer_mgr, amf_timer_t3555_expire, amf_ue);
73
+    if (!amf_ue->t3555.timer) {
74
+        ogs_error("ogs_timer_add() failed");
75
+        ogs_pool_free(&amf_ue_pool, amf_ue);
76
+        return NULL;
77
+    }
78
     amf_ue->t3555.pkbuf = NULL;
79
     amf_ue->t3560.timer = ogs_timer_add(
80
             ogs_app()->timer_mgr, amf_timer_t3560_expire, amf_ue);
81
+    if (!amf_ue->t3560.timer) {
82
+        ogs_error("ogs_timer_add() failed");
83
+        ogs_pool_free(&amf_ue_pool, amf_ue);
84
+        return NULL;
85
+    }
86
     amf_ue->t3560.pkbuf = NULL;
87
     amf_ue->t3570.timer = ogs_timer_add(
88
             ogs_app()->timer_mgr, amf_timer_t3570_expire, amf_ue);
89
+    if (!amf_ue->t3570.timer) {
90
+        ogs_error("ogs_timer_add() failed");
91
+        ogs_pool_free(&amf_ue_pool, amf_ue);
92
+        return NULL;
93
+    }
94
     amf_ue->t3570.pkbuf = NULL;
95
 
96
+    /* SBI Type */
97
+    amf_ue->sbi.type = OGS_SBI_OBJ_UE_TYPE;
98
+
99
+    /* SBI Features */
100
+    OGS_SBI_FEATURES_SET(amf_ue->am_policy_control_features,
101
+            OGS_SBI_NPCF_AM_POLICY_CONTROL_UE_AMBR_AUTHORIZATION);
102
+
103
+    ogs_list_init(&amf_ue->sess_list);
104
+
105
+    /* Initialization */
106
+    amf_ue->guami = &amf_self()->served_guami0;
107
+    amf_ue->nas.access_type = OGS_ACCESS_TYPE_3GPP;
108
+    amf_ue->nas.amf.ksi = OGS_NAS_KSI_NO_KEY_IS_AVAILABLE;
109
+    amf_ue->abba_len = 2;
110
+
111
     amf_ue_fsm_init(amf_ue);
112
 
113
     ogs_list_add(&self.amf_ue_list, amf_ue);
114
open5gs_2.4.9.47.c28f.202209030002.tar.xz/src/amf/nsmf-handler.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/src/amf/nsmf-handler.c Changed
9
 
1
@@ -412,6 +412,7 @@
2
             }
3
 
4
         } else {
5
+            SmContextUpdatedData = recvmsg->SmContextUpdatedData;
6
 
7
             if (state == AMF_UPDATE_SM_CONTEXT_ACTIVATED) {
8
                 /*
9
open5gs_2.4.9.47.c28f.202209030002.tar.xz/src/mme/mme-context.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/src/mme/mme-context.c Changed
113
 
1
@@ -1943,6 +1943,14 @@
2
     ogs_assert(enb_ue);
3
     memset(enb_ue, 0, sizeof *enb_ue);
4
 
5
+    enb_ue->t_s1_holding = ogs_timer_add(
6
+            ogs_app()->timer_mgr, mme_timer_s1_holding_timer_expire, enb_ue);
7
+    if (!enb_ue->t_s1_holding) {
8
+        ogs_error("ogs_timer_add() failed");
9
+        ogs_pool_free(&enb_ue_pool, enb_ue);
10
+        return NULL;
11
+    }
12
+
13
     enb_ue->index = ogs_pool_index(&enb_ue_pool, enb_ue);
14
     ogs_assert(enb_ue->index > 0 && enb_ue->index <= ogs_app()->max.ue);
15
 
16
@@ -1959,10 +1967,6 @@
17
     enb_ue->enb_ostream_id =
18
         OGS_NEXT_ID(enb->ostream_id, 1, enb->max_num_of_ostreams-1);
19
 
20
-    enb_ue->t_s1_holding = ogs_timer_add(
21
-            ogs_app()->timer_mgr, mme_timer_s1_holding_timer_expire, enb_ue);
22
-    ogs_assert(enb_ue->t_s1_holding);
23
-
24
     enb_ue->enb = enb;
25
 
26
     ogs_list_add(&enb->enb_ue_list, enb_ue);
27
@@ -2047,7 +2051,11 @@
28
 
29
     sgw_ue->t_s11_holding = ogs_timer_add(
30
             ogs_app()->timer_mgr, mme_timer_s11_holding_timer_expire, sgw_ue);
31
-    ogs_assert(sgw_ue->t_s11_holding);
32
+    if (!sgw_ue->t_s11_holding) {
33
+        ogs_error("ogs_timer_add() failed");
34
+        ogs_pool_free(&sgw_ue_pool, sgw_ue);
35
+        return NULL;
36
+    }
37
 
38
     sgw_ue->sgw = sgw;
39
 
40
@@ -2259,6 +2267,48 @@
41
     ogs_assert(mme_ue);
42
     memset(mme_ue, 0, sizeof *mme_ue);
43
 
44
+    /* Add All Timers */
45
+    mme_ue->t3413.timer = ogs_timer_add(
46
+            ogs_app()->timer_mgr, mme_timer_t3413_expire, mme_ue);
47
+    if (!mme_ue->t3413.timer) {
48
+        ogs_error("ogs_timer_add() failed");
49
+        ogs_pool_free(&mme_ue_pool, mme_ue);
50
+        return NULL;
51
+    }
52
+    mme_ue->t3413.pkbuf = NULL;
53
+    mme_ue->t3422.timer = ogs_timer_add(
54
+            ogs_app()->timer_mgr, mme_timer_t3422_expire, mme_ue);
55
+    if (!mme_ue->t3422.timer) {
56
+        ogs_error("ogs_timer_add() failed");
57
+        ogs_pool_free(&mme_ue_pool, mme_ue);
58
+        return NULL;
59
+    }
60
+    mme_ue->t3422.pkbuf = NULL;
61
+    mme_ue->t3450.timer = ogs_timer_add(
62
+            ogs_app()->timer_mgr, mme_timer_t3450_expire, mme_ue);
63
+    if (!mme_ue->t3450.timer) {
64
+        ogs_error("ogs_timer_add() failed");
65
+        ogs_pool_free(&mme_ue_pool, mme_ue);
66
+        return NULL;
67
+    }
68
+    mme_ue->t3450.pkbuf = NULL;
69
+    mme_ue->t3460.timer = ogs_timer_add(
70
+            ogs_app()->timer_mgr, mme_timer_t3460_expire, mme_ue);
71
+    if (!mme_ue->t3460.timer) {
72
+        ogs_error("ogs_timer_add() failed");
73
+        ogs_pool_free(&mme_ue_pool, mme_ue);
74
+        return NULL;
75
+    }
76
+    mme_ue->t3460.pkbuf = NULL;
77
+    mme_ue->t3470.timer = ogs_timer_add(
78
+            ogs_app()->timer_mgr, mme_timer_t3470_expire, mme_ue);
79
+    if (!mme_ue->t3470.timer) {
80
+        ogs_error("ogs_timer_add() failed");
81
+        ogs_pool_free(&mme_ue_pool, mme_ue);
82
+        return NULL;
83
+    }
84
+    mme_ue->t3470.pkbuf = NULL;
85
+
86
     mme_ebi_pool_init(mme_ue);
87
 
88
     ogs_list_init(&mme_ue->sess_list);
89
@@ -2290,23 +2340,6 @@
90
     mme_ue->csmap = NULL;
91
     mme_ue->vlr_ostream_id = 0;
92
 
93
-    /* Add All Timers */
94
-    mme_ue->t3413.timer = ogs_timer_add(
95
-            ogs_app()->timer_mgr, mme_timer_t3413_expire, mme_ue);
96
-    mme_ue->t3413.pkbuf = NULL;
97
-    mme_ue->t3422.timer = ogs_timer_add(
98
-            ogs_app()->timer_mgr, mme_timer_t3422_expire, mme_ue);
99
-    mme_ue->t3422.pkbuf = NULL;
100
-    mme_ue->t3450.timer = ogs_timer_add(
101
-            ogs_app()->timer_mgr, mme_timer_t3450_expire, mme_ue);
102
-    mme_ue->t3450.pkbuf = NULL;
103
-    mme_ue->t3460.timer = ogs_timer_add(
104
-            ogs_app()->timer_mgr, mme_timer_t3460_expire, mme_ue);
105
-    mme_ue->t3460.pkbuf = NULL;
106
-    mme_ue->t3470.timer = ogs_timer_add(
107
-            ogs_app()->timer_mgr, mme_timer_t3470_expire, mme_ue);
108
-    mme_ue->t3470.pkbuf = NULL;
109
-
110
     mme_ue_fsm_init(mme_ue);
111
 
112
     ogs_list_add(&self.mme_ue_list, mme_ue);
113
open5gs_2.4.9.47.c28f.202209030002.tar.xz/src/pcf/sbi-path.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/src/pcf/sbi-path.c Changed
48
 
1
@@ -79,6 +79,9 @@
2
     ogs_sbi_nf_instance_t *nf_instance = NULL;
3
     ogs_sbi_nf_service_t *service = NULL;
4
 
5
+    bool smpolicycontrol_enabled = false;
6
+    bool policyauthorization_enabled = false;
7
+
8
     /* To be notified when NF Instances registered/deregistered in NRF
9
      * or when their profile is modified */
10
     ogs_sbi_add_to_be_notified_nf_type(OpenAPI_nf_type_BSF);
11
@@ -117,6 +120,8 @@
12
                     service, OGS_SBI_API_V1, OGS_SBI_API_V1_0_0, NULL);
13
         ogs_sbi_nf_service_add_allowed_nf_type(service, OpenAPI_nf_type_SMF);
14
         ogs_sbi_nf_service_add_allowed_nf_type(service, OpenAPI_nf_type_NEF);
15
+
16
+        smpolicycontrol_enabled = true;
17
     }
18
 
19
     if (ogs_sbi_nf_service_is_available(
20
@@ -128,6 +133,27 @@
21
                     service, OGS_SBI_API_V1, OGS_SBI_API_V1_0_0, NULL);
22
         ogs_sbi_nf_service_add_allowed_nf_type(service, OpenAPI_nf_type_AF);
23
         ogs_sbi_nf_service_add_allowed_nf_type(service, OpenAPI_nf_type_NEF);
24
+
25
+        policyauthorization_enabled = true;
26
+    }
27
+
28
+    if ((smpolicycontrol_enabled == true &&
29
+            policyauthorization_enabled == false) ||
30
+        (smpolicycontrol_enabled == false &&
31
+            policyauthorization_enabled == true)) {
32
+        ogs_fatal("CHECK CONFIGURATION:");
33
+        ogs_fatal("   %s - %s",
34
+            OGS_SBI_SERVICE_NAME_NPCF_SMPOLICYCONTROL,
35
+            smpolicycontrol_enabled ? "enabled" : "disabled");
36
+        ogs_fatal("   %s - %s",
37
+            OGS_SBI_SERVICE_NAME_NPCF_POLICYAUTHORIZATION,
38
+            policyauthorization_enabled ? "enabled" : "disabled");
39
+        ogs_fatal("Only one of %s and %s cannot be enabled.",
40
+            OGS_SBI_SERVICE_NAME_NPCF_SMPOLICYCONTROL,
41
+            OGS_SBI_SERVICE_NAME_NPCF_POLICYAUTHORIZATION);
42
+        ogs_fatal("They can be enabled or disabled together.");
43
+
44
+        return OGS_ERROR;
45
     }
46
 
47
     /* Initialize NRF NF Instance */
48
open5gs_2.4.9.47.c28f.202209030002.tar.xz/src/smf/context.h -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/src/smf/context.h Changed
10
 
1
@@ -270,6 +270,8 @@
2
      * of POST /npcf-smpolocycontrol/v1/policies */
3
     char *policy_association_id;
4
 
5
+    OpenAPI_up_cnx_state_e up_cnx_state;
6
+
7
     /* PLMN ID & NID */
8
     ogs_plmn_id_t   plmn_id;
9
 
10
open5gs_2.4.9.47.c28f.202209030002.tar.xz/src/smf/n4-handler.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/src/smf/n4-handler.c Changed
17
 
1
@@ -400,7 +400,14 @@
2
 
3
         } else {
4
             sess->paging.ue_requested_pdu_session_establishment_done = true;
5
-            ogs_assert(true == ogs_sbi_send_http_status_no_content(stream));
6
+
7
+            if (sess->up_cnx_state == OpenAPI_up_cnx_state_ACTIVATING) {
8
+                sess->up_cnx_state = OpenAPI_up_cnx_state_ACTIVATED;
9
+                smf_sbi_send_sm_context_updated_data_up_cnx_state(
10
+                        sess, stream, OpenAPI_up_cnx_state_ACTIVATED);
11
+            } else {
12
+                ogs_assert(true == ogs_sbi_send_http_status_no_content(stream));
13
+            }
14
         }
15
 
16
     } else if (flags & OGS_PFCP_MODIFY_DEACTIVATE) {
17
open5gs_2.4.9.47.c28f.202209030002.tar.xz/src/smf/ngap-handler.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/src/smf/ngap-handler.c Changed
20
 
1
@@ -151,8 +151,18 @@
2
                 sess, stream, OGS_PFCP_MODIFY_DL_ONLY|OGS_PFCP_MODIFY_ACTIVATE,
3
                 0));
4
     } else {
5
+#if 0 /* Modified by pull request #1729 */
6
         /* ACTIVATED Is NOT Included in RESPONSE */
7
         ogs_assert(true == ogs_sbi_send_http_status_no_content(stream));
8
+#else
9
+        if (sess->up_cnx_state == OpenAPI_up_cnx_state_ACTIVATING) {
10
+            sess->up_cnx_state = OpenAPI_up_cnx_state_ACTIVATED;
11
+            smf_sbi_send_sm_context_updated_data_up_cnx_state(
12
+                    sess, stream, OpenAPI_up_cnx_state_ACTIVATED);
13
+        } else {
14
+            ogs_assert(true == ogs_sbi_send_http_status_no_content(stream));
15
+        }
16
+#endif
17
     }
18
 
19
     rv = OGS_OK;
20
open5gs_2.4.9.47.c28f.202209030002.tar.xz/src/smf/nsmf-handler.c -> open5gs_2.4.9.52.c716a.202209040002.tar.xz/src/smf/nsmf-handler.c Changed
10
 
1
@@ -350,6 +350,8 @@
2
 
3
     } else if (SmContextUpdateData->up_cnx_state) {
4
 
5
+        sess->up_cnx_state = SmContextUpdateData->up_cnx_state;
6
+
7
         if (SmContextUpdateData->up_cnx_state ==
8
                 OpenAPI_up_cnx_state_DEACTIVATED) {
9
 
10