Changes of Revision 26

open5gs_2.4.8.202207220002.dsc -> open5gs_2.4.8.202207230002.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-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg
4
 Architecture: any
5
-Version: 2.4.8.202207220002
6
+Version: 2.4.8.202207230002
7
 Maintainer: Harald Welte <laforge@gnumonks.org>
8
 Uploaders: Sukchan Lee <acetcom@gmail.com>
9
 Homepage: https://open5gs.org
10
@@ -30,8 +30,8 @@
11
  open5gs-udr deb net optional arch=any
12
  open5gs-upf deb net optional arch=any
13
 Checksums-Sha1:
14
- b9efa502536ebab6ef50e36aa019d66b254e8eba 11456560 open5gs_2.4.8.202207220002.tar.xz
15
+ 2cf53104f8228b150818d61a9090c6060e3a4c02 11456616 open5gs_2.4.8.202207230002.tar.xz
16
 Checksums-Sha256:
17
- ed1cafb29ea9c5520eac58f97f01622e6fd70b567d6506b2f7d93d4d8655b5d4 11456560 open5gs_2.4.8.202207220002.tar.xz
18
+ 9b4fa72d6af7269d7708858335fadc841216646912c7f4005869d3d806424a5d 11456616 open5gs_2.4.8.202207230002.tar.xz
19
 Files:
20
- 3e733ed0047a55252a9e5be45a3073d8 11456560 open5gs_2.4.8.202207220002.tar.xz
21
+ bb963db6fbbccfe0d55489c3738c5433 11456616 open5gs_2.4.8.202207230002.tar.xz
22
open5gs_2.4.8.202207220002.tar.xz/debian/changelog -> open5gs_2.4.8.202207230002.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-open5gs (2.4.8.202207220002) UNRELEASED; urgency=medium
3
+open5gs (2.4.8.202207230002) UNRELEASED; urgency=medium
4
 
5
   * Snapshot build
6
 
7
- -- Sukchan Lee <acetcom@gmail.com>  Fri, 22 Jul 2022 00:09:03 +0000
8
+ -- Sukchan Lee <acetcom@gmail.com>  Sat, 23 Jul 2022 00:09:16 +0000
9
 
10
 open5gs (2.4.8) unstable; urgency=medium
11
 
12
open5gs_2.4.8.202207220002.tar.xz/debian/control -> open5gs_2.4.8.202207230002.tar.xz/debian/control Changed
163
 
1
@@ -31,7 +31,7 @@
2
 Package: open5gs-common
3
 Architecture: any
4
 Multi-Arch: same
5
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
6
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
7
          ${misc:Depends}
8
 Description: 5G Core and EPC (Shared Files)
9
  Open5GS is a C-language implementation of 5G Core and EPC
10
@@ -43,7 +43,7 @@
11
 Package: open5gs-mme
12
 Architecture: any
13
 Multi-Arch: same
14
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
15
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
16
          ${misc:Depends},
17
          open5gs-common (= ${binary:Version})
18
 Description: MME (Mobility Management Entity)
19
@@ -58,7 +58,7 @@
20
 Package: open5gs-sgwc
21
 Architecture: any
22
 Multi-Arch: same
23
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
24
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
25
          ${misc:Depends},
26
          open5gs-common (= ${binary:Version})
27
 Description: SGW-C (Serving Gateway - Control Plane)
28
@@ -72,7 +72,7 @@
29
 Package: open5gs-smf
30
 Architecture: any
31
 Multi-Arch: same
32
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
33
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
34
          ${misc:Depends},
35
          open5gs-common (= ${binary:Version})
36
 Description: SMF (Session Management Function)
37
@@ -84,7 +84,7 @@
38
 Package: open5gs-amf
39
 Architecture: any
40
 Multi-Arch: same
41
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
42
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
43
          ${misc:Depends},
44
          open5gs-common (= ${binary:Version})
45
 Description: AMF (Access and Mobility Management Function)
46
@@ -96,7 +96,7 @@
47
 Package: open5gs-sgwu
48
 Architecture: any
49
 Multi-Arch: same
50
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
51
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
52
          ${misc:Depends},
53
          open5gs-common (= ${binary:Version})
54
 Description: SGW-U (Serving Gateway - User Plane)
55
@@ -110,7 +110,7 @@
56
 Package: open5gs-upf
57
 Architecture: any
58
 Multi-Arch: same
59
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
60
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
61
          ${misc:Depends},
62
          udev,
63
          open5gs-common (= ${binary:Version})
64
@@ -123,7 +123,7 @@
65
 Package: open5gs-hss
66
 Architecture: any
67
 Multi-Arch: same
68
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
69
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
70
          ${misc:Depends},
71
          mongodb-org | mongodb,
72
          open5gs-common (= ${binary:Version})
73
@@ -140,7 +140,7 @@
74
 Package: open5gs-pcrf
75
 Architecture: any
76
 Multi-Arch: same
77
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
78
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
79
          ${misc:Depends},
80
          mongodb-org | mongodb,
81
          open5gs-common (= ${binary:Version})
82
@@ -156,7 +156,7 @@
83
 Package: open5gs-nrf
84
 Architecture: any
85
 Multi-Arch: same
86
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
87
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
88
          ${misc:Depends},
89
          open5gs-common (= ${binary:Version})
90
 Description: NRF (Network Repository Function)
91
@@ -168,7 +168,7 @@
92
 Package: open5gs-ausf
93
 Architecture: any
94
 Multi-Arch: same
95
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
96
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
97
          ${misc:Depends},
98
          open5gs-common (= ${binary:Version})
99
 Description: AUSF (Authentication Server Function)
100
@@ -180,7 +180,7 @@
101
 Package: open5gs-udm
102
 Architecture: any
103
 Multi-Arch: same
104
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
105
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
106
          ${misc:Depends},
107
          open5gs-common (= ${binary:Version})
108
 Description: UDM (Unified Data Management)
109
@@ -192,7 +192,7 @@
110
 Package: open5gs-pcf
111
 Architecture: any
112
 Multi-Arch: same
113
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
114
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
115
          ${misc:Depends},
116
          open5gs-common (= ${binary:Version})
117
 Description: PCF (Policy Control Function)
118
@@ -204,7 +204,7 @@
119
 Package: open5gs-nssf
120
 Architecture: any
121
 Multi-Arch: same
122
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
123
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
124
          ${misc:Depends},
125
          open5gs-common (= ${binary:Version})
126
 Description: NSSF (Network Slice Selection Function)
127
@@ -216,7 +216,7 @@
128
 Package: open5gs-bsf
129
 Architecture: any
130
 Multi-Arch: same
131
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
132
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
133
          ${misc:Depends},
134
          open5gs-common (= ${binary:Version})
135
 Description: BSF (Binding Support Function)
136
@@ -228,7 +228,7 @@
137
 Package: open5gs-udr
138
 Architecture: any
139
 Multi-Arch: same
140
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${shlibs:Depends},
141
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${shlibs:Depends},
142
          ${misc:Depends},
143
          open5gs-common (= ${binary:Version})
144
 Description: UDR (Unified Data Repository)
145
@@ -240,7 +240,7 @@
146
 Package: open5gs
147
 Architecture: any
148
 Multi-Arch: same
149
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${misc:Depends},
150
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${misc:Depends},
151
          open5gs-common (= ${binary:Version}),
152
          open5gs-mme (= ${binary:Version}),
153
          open5gs-sgwc (= ${binary:Version}),
154
@@ -266,7 +266,7 @@
155
 Package: open5gs-dbg
156
 Architecture: any
157
 Multi-Arch: same
158
-Depends: osmocom-nightly (= 1.0.0.202207220002), ${misc:Depends},
159
+Depends: osmocom-nightly (= 1.0.0.202207230002), ${misc:Depends},
160
          open5gs (= ${binary:Version})
161
 Description: Debug symbols for Open5GS
162
  Open5GS is a C-language implementation of 5G Core and EPC
163
open5gs_2.4.8.202207220002.tar.xz/lib/sbi/context.c -> open5gs_2.4.8.202207230002.tar.xz/lib/sbi/context.c Changed
28
 
1
@@ -1341,6 +1341,26 @@
2
     }
3
 }
4
 
5
+void ogs_sbi_select_nf_by_instanceid(
6
+        ogs_sbi_object_t *sbi_object, OpenAPI_nf_type_e nf_type, void *state,
7
+        char *nf_instance_id)
8
+{
9
+    ogs_sbi_nf_instance_t *nf_instance = NULL;
10
+
11
+    ogs_assert(sbi_object);
12
+    ogs_assert(nf_type);
13
+    ogs_assert(state);
14
+
15
+    ogs_list_for_each(&ogs_sbi_self()->nf_instance_list, nf_instance) {
16
+        if (OGS_FSM_CHECK(&nf_instance->sm, state) &&
17
+            (nf_instance->nf_type == nf_type) &&
18
+            (!(strcmp(nf_instance->id, nf_instance_id)))) {
19
+            OGS_SBI_SETUP_NF(sbi_object, nf_type, nf_instance);
20
+            break;
21
+        }
22
+    }
23
+}
24
+
25
 bool ogs_sbi_client_associate(ogs_sbi_nf_instance_t *nf_instance)
26
 {
27
     ogs_sbi_client_t *client = NULL;
28
open5gs_2.4.8.202207220002.tar.xz/lib/sbi/context.h -> open5gs_2.4.8.202207230002.tar.xz/lib/sbi/context.h Changed
11
 
1
@@ -339,6 +339,9 @@
2
 
3
 void ogs_sbi_select_nf(
4
         ogs_sbi_object_t *sbi_object, OpenAPI_nf_type_e nf_type, void *state);
5
+void ogs_sbi_select_nf_by_instanceid(
6
+    ogs_sbi_object_t *sbi_object, OpenAPI_nf_type_e nf_type, void *state,
7
+    char *nf_instance_id);
8
 
9
 void ogs_sbi_object_free(ogs_sbi_object_t *sbi_object);
10
 
11
open5gs_2.4.8.202207220002.tar.xz/lib/sbi/nnrf-build.c -> open5gs_2.4.8.202207230002.tar.xz/lib/sbi/nnrf-build.c Changed
28
 
1
@@ -480,6 +480,26 @@
2
     return request;
3
 }
4
 
5
+ogs_sbi_request_t *ogs_nnrf_nfm_build_profile_retrieve(char *nf_instance_id)
6
+{
7
+    ogs_sbi_message_t message;
8
+    ogs_sbi_request_t *request = NULL;
9
+
10
+    ogs_assert(nf_instance_id);
11
+
12
+    memset(&message, 0, sizeof(message));
13
+    message.h.method = (char *)OGS_SBI_HTTP_METHOD_GET;
14
+    message.h.service.name = (char *)OGS_SBI_SERVICE_NAME_NNRF_NFM;
15
+    message.h.api.version = (char *)OGS_SBI_API_V1;
16
+    message.h.resource.component0 =
17
+        (char *)OGS_SBI_RESOURCE_NAME_NF_INSTANCES;
18
+    message.h.resource.component1 = nf_instance_id;
19
+
20
+    request = ogs_sbi_build_request(&message);
21
+
22
+    return request;
23
+}
24
+
25
 ogs_sbi_request_t *ogs_nnrf_disc_build_discover(
26
         OpenAPI_nf_type_e target_nf_type, OpenAPI_nf_type_e requester_nf_type)
27
 {
28
open5gs_2.4.8.202207220002.tar.xz/lib/sbi/nnrf-build.h -> open5gs_2.4.8.202207230002.tar.xz/lib/sbi/nnrf-build.h Changed
9
 
1
@@ -34,6 +34,7 @@
2
         ogs_sbi_subscription_t *subscription);
3
 ogs_sbi_request_t *ogs_nnrf_nfm_build_status_unsubscribe(
4
         ogs_sbi_subscription_t *subscription);
5
+ogs_sbi_request_t *ogs_nnrf_nfm_build_profile_retrieve(char *nf_instance_id);
6
 
7
 ogs_sbi_request_t *ogs_nnrf_disc_build_discover(
8
         OpenAPI_nf_type_e target_nf_type, OpenAPI_nf_type_e requester_nf_type);
9
open5gs_2.4.8.202207220002.tar.xz/lib/sbi/path.c -> open5gs_2.4.8.202207230002.tar.xz/lib/sbi/path.c Changed
78
 
1
@@ -141,6 +141,51 @@
2
     return ogs_sbi_scp_send_request(client, client->cb, request, nf_instance);
3
 }
4
 
5
+bool ogs_sbi_discover_by_nf_instanceid_and_send(ogs_sbi_xact_t *xact,
6
+        ogs_fsm_handler_t nf_state_registered, ogs_sbi_client_cb_f client_cb,
7
+        char *nf_instance_id)
8
+{
9
+    ogs_sbi_nf_instance_t *nf_instance = NULL;
10
+
11
+    ogs_assert(xact);
12
+    ogs_assert(xact->sbi_object);
13
+    ogs_assert(xact->target_nf_type);
14
+    ogs_assert(nf_state_registered);
15
+    ogs_assert(client_cb);
16
+    ogs_assert(nf_instance_id);
17
+
18
+    /* Target NF-Instance - search by NF Instance Id */
19
+    ogs_assert(xact->target_nf_type != OpenAPI_nf_type_NRF);
20
+    ogs_sbi_select_nf_by_instanceid(
21
+        xact->sbi_object, xact->target_nf_type, nf_state_registered,
22
+        nf_instance_id);
23
+
24
+    nf_instance = OGS_SBI_NF_INSTANCE(
25
+            xact->sbi_object, xact->target_nf_type);
26
+
27
+    if (nf_instance) {
28
+        return ogs_sbi_send(nf_instance, client_cb, xact);
29
+    }
30
+
31
+    /* NRF NF-Instance */
32
+    nf_instance = OGS_SBI_NF_INSTANCE(xact->sbi_object, OpenAPI_nf_type_NRF);
33
+    if (!nf_instance) {
34
+        ogs_sbi_select_nf(
35
+                xact->sbi_object, OpenAPI_nf_type_NRF, nf_state_registered);
36
+        nf_instance = OGS_SBI_NF_INSTANCE(
37
+                xact->sbi_object, OpenAPI_nf_type_NRF);
38
+    }
39
+
40
+    if (nf_instance) {
41
+        ogs_warn("Try to retrieve %s", nf_instance_id);
42
+        return ogs_nnrf_nfm_send_nf_profile_retrieve(nf_instance,
43
+                nf_instance_id, xact);
44
+    }
45
+
46
+    ogs_error("Cannot retrieve %s", nf_instance_id);
47
+    return false;
48
+}
49
+
50
 bool ogs_nnrf_nfm_send_nf_update(ogs_sbi_nf_instance_t *nf_instance)
51
 {
52
     ogs_sbi_request_t *request = NULL;
53
@@ -171,6 +216,24 @@
54
     return ogs_sbi_scp_send_request(client, client->cb, request, nf_instance);
55
 }
56
 
57
+bool ogs_nnrf_nfm_send_nf_profile_retrieve(ogs_sbi_nf_instance_t *nf_instance,
58
+        char *nf_instance_id, void *data)
59
+{
60
+    ogs_sbi_request_t *request = NULL;
61
+    ogs_sbi_client_t *client = NULL;
62
+
63
+    ogs_assert(nf_instance);
64
+    client = nf_instance->client;
65
+    ogs_assert(client);
66
+    ogs_assert(nf_instance_id);
67
+
68
+    request = ogs_nnrf_nfm_build_profile_retrieve(nf_instance_id);
69
+    ogs_expect_or_return_val(request, false);
70
+
71
+    return ogs_sbi_client_send_request(
72
+            client, client->cb, request, data);
73
+}
74
+
75
 bool ogs_nnrf_nfm_send_nf_status_subscribe(ogs_sbi_client_t *client,
76
         OpenAPI_nf_type_e req_nf_type, char *req_nf_instance_id,
77
         OpenAPI_nf_type_e subscr_cond_nf_type)
78
open5gs_2.4.8.202207220002.tar.xz/lib/sbi/path.h -> open5gs_2.4.8.202207230002.tar.xz/lib/sbi/path.h Changed
18
 
1
@@ -30,11 +30,16 @@
2
         ogs_sbi_client_cb_f client_cb, ogs_sbi_xact_t *xact);
3
 bool ogs_sbi_discover_and_send(ogs_sbi_xact_t *xact,
4
         ogs_fsm_handler_t nf_state_registered, ogs_sbi_client_cb_f client_cb);
5
+bool ogs_sbi_discover_by_nf_instanceid_and_send(ogs_sbi_xact_t *xact,
6
+        ogs_fsm_handler_t nf_state_registered, ogs_sbi_client_cb_f client_cb,
7
+        char *nf_instance_id);
8
 
9
 bool ogs_nnrf_nfm_send_nf_register(
10
         ogs_sbi_nf_instance_t *nf_instance, ogs_sbi_request_t *(*build)(void));
11
 bool ogs_nnrf_nfm_send_nf_update(ogs_sbi_nf_instance_t *nf_instance);
12
 bool ogs_nnrf_nfm_send_nf_de_register(ogs_sbi_nf_instance_t *nf_instance);
13
+bool ogs_nnrf_nfm_send_nf_profile_retrieve(ogs_sbi_nf_instance_t *nf_instance,
14
+        char *nf_instance_id, void *data);
15
 
16
 bool ogs_nnrf_nfm_send_nf_status_subscribe(ogs_sbi_client_t *client,
17
         OpenAPI_nf_type_e req_nf_type, char *req_nf_instance_id,
18
open5gs_2.4.8.202207220002.tar.xz/src/mme/mme-fd-path.c -> open5gs_2.4.8.202207230002.tar.xz/src/mme/mme-fd-path.c Changed
12
 
1
@@ -791,8 +791,8 @@
2
             ogs_assert(ret == 0);
3
             mme_ue->network_access_mode = hdr->avp_value->i32;
4
         } else {
5
-            ogs_error("no_Network-Access-Mode");
6
-            error++;
7
+       mme_ue->network_access_mode = 0;
8
+            ogs_warn("no subscribed Network-Access-Mode, defaulting to PACKET_AND_CIRCUIT (0)");
9
         }
10
 
11
         /* AVP: 'AMBR'(1435)
12
open5gs_2.4.8.202207220002.tar.xz/src/smf/context.c -> open5gs_2.4.8.202207230002.tar.xz/src/smf/context.c Changed
10
 
1
@@ -1658,6 +1658,8 @@
2
 
3
     if (sess->pcf_id)
4
         ogs_free(sess->pcf_id);
5
+    if (sess->serving_nf_id)
6
+        ogs_free(sess->serving_nf_id);
7
 
8
     /* Free SBI object memory */
9
     ogs_sbi_object_free(&sess->sbi);
10
open5gs_2.4.8.202207220002.tar.xz/src/smf/context.h -> open5gs_2.4.8.202207230002.tar.xz/src/smf/context.h Changed
11
 
1
@@ -300,6 +300,9 @@
2
     /* PCF ID */
3
     char            *pcf_id;
4
 
5
+    /* Serving NF (AMF) Id */
6
+    char            *serving_nf_id;
7
+
8
     /* Integrity protection maximum data rate */
9
     struct {
10
         uint8_t mbr_dl;
11
open5gs_2.4.8.202207220002.tar.xz/src/smf/nnrf-handler.c -> open5gs_2.4.8.202207230002.tar.xz/src/smf/nnrf-handler.c Changed
78
 
1
@@ -346,3 +346,76 @@
2
         ogs_assert(true == smf_sbi_send(nf_instance, xact));
3
     }
4
 }
5
+
6
+void smf_nnrf_handle_nf_profile_retrieve(
7
+        ogs_sbi_xact_t *xact, ogs_sbi_message_t *recvmsg)
8
+{
9
+    ogs_sbi_object_t *sbi_object = NULL;
10
+    ogs_sbi_nf_instance_t *nf_instance = NULL;
11
+
12
+    OpenAPI_nf_profile_t *NFProfile = NULL;
13
+    bool handled;
14
+
15
+    ogs_assert(xact);
16
+    sbi_object = xact->sbi_object;
17
+    ogs_assert(sbi_object);
18
+    ogs_assert(recvmsg);
19
+
20
+    NFProfile = recvmsg->NFProfile;
21
+    if (!NFProfile) {
22
+        ogs_error("No NFProfile");
23
+        return;
24
+    }
25
+
26
+    nf_instance = ogs_sbi_nf_instance_find(NFProfile->nf_instance_id);
27
+    if (!nf_instance) {
28
+        nf_instance = ogs_sbi_nf_instance_add();
29
+        ogs_assert(nf_instance);
30
+        ogs_sbi_nf_instance_set_id(nf_instance, NFProfile->nf_instance_id);
31
+
32
+        smf_nf_fsm_init(nf_instance);
33
+
34
+        ogs_info("%s (NF-discover) NF registered", nf_instance->id);
35
+    } else {
36
+        nf_instance->reference_count++;
37
+
38
+        OGS_FSM_TRAN(&nf_instance->sm, smf_nf_state_registered);
39
+        ogs_fsm_dispatch(&nf_instance->sm, NULL);
40
+
41
+        ogs_warn("%s (NF-discover) NF has already been added",
42
+                NFProfile->nf_instance_id);
43
+    }
44
+
45
+    if (NF_INSTANCE_IS_OTHERS(nf_instance->id)) {
46
+        smf_sess_t *sess = NULL;
47
+
48
+        handled = ogs_sbi_nnrf_handle_nf_profile(
49
+                    nf_instance, NFProfile, NULL, NULL);
50
+        if (!handled) {
51
+            ogs_error("ogs_sbi_nnrf_handle_nf_profile() failed %s",
52
+                    nf_instance->id);
53
+            SMF_NF_INSTANCE_CLEAR("NRF-discover", nf_instance);
54
+            return;
55
+        }
56
+
57
+        handled = ogs_sbi_client_associate(nf_instance);
58
+        if (!handled) {
59
+            ogs_error("%s Cannot assciate NF EndPoint", nf_instance->id);
60
+            SMF_NF_INSTANCE_CLEAR("NRF-discover", nf_instance);
61
+            return;
62
+        }
63
+
64
+        sess = (smf_sess_t *)sbi_object;
65
+        ogs_assert(sess);
66
+        smf_sess_select_nf(sess, nf_instance->nf_type);
67
+
68
+        ogs_info("%s (NF-discover) NF Profile updated", nf_instance->id);
69
+    }
70
+
71
+    if (!nf_instance) {
72
+        ogs_error("(NF discover) No %s",
73
+                OpenAPI_nf_type_ToString(xact->target_nf_type));
74
+    } else {
75
+        ogs_assert(true == smf_sbi_send(nf_instance, xact));
76
+    }
77
+}
78
open5gs_2.4.8.202207220002.tar.xz/src/smf/nnrf-handler.h -> open5gs_2.4.8.202207230002.tar.xz/src/smf/nnrf-handler.h Changed
10
 
1
@@ -36,6 +36,8 @@
2
 
3
 void smf_nnrf_handle_nf_discover(
4
         ogs_sbi_xact_t *xact, ogs_sbi_message_t *recvmsg);
5
+void smf_nnrf_handle_nf_profile_retrieve(
6
+        ogs_sbi_xact_t *xact, ogs_sbi_message_t *recvmsg);
7
 
8
 #ifdef __cplusplus
9
 }
10
open5gs_2.4.8.202207220002.tar.xz/src/smf/nsmf-handler.c -> open5gs_2.4.8.202207230002.tar.xz/src/smf/nsmf-handler.c Changed
14
 
1
@@ -197,6 +197,12 @@
2
         ogs_assert(sess->pcf_id);
3
     }
4
 
5
+    if (SmContextCreateData->serving_nf_id) {
6
+        if (sess->serving_nf_id) ogs_free(sess->serving_nf_id);
7
+        sess->serving_nf_id = ogs_strdup(SmContextCreateData->serving_nf_id);
8
+        ogs_assert(sess->serving_nf_id);
9
+    }
10
+
11
     /*
12
      * NOTE : The pkbuf created in the SBI message will be removed
13
      *        from ogs_sbi_message_free().
14
open5gs_2.4.8.202207220002.tar.xz/src/smf/sbi-path.c -> open5gs_2.4.8.202207230002.tar.xz/src/smf/sbi-path.c Changed
17
 
1
@@ -200,8 +200,13 @@
2
 
3
     xact->state = param->state;
4
 
5
-    ogs_sbi_discover_and_send(xact,
6
-            (ogs_fsm_handler_t)smf_nf_state_registered, client_cb);
7
+    if (ogs_sbi_discover_by_nf_instanceid_and_send(xact,
8
+            (ogs_fsm_handler_t)smf_nf_state_registered, client_cb,
9
+            sess->serving_nf_id) != true)
10
+    {
11
+        ogs_error("smf_namf_comm_send_n1_n2_message_transfer() failed");
12
+        ogs_sbi_xact_remove(xact);
13
+    }
14
 }
15
 
16
 void smf_sbi_send_sm_context_create_error(
17
open5gs_2.4.8.202207220002.tar.xz/src/smf/smf-sm.c -> open5gs_2.4.8.202207230002.tar.xz/src/smf/smf-sm.c Changed
34
 
1
@@ -658,12 +658,27 @@
2
 
3
             SWITCH(sbi_message.h.resource.component0)
4
             CASE(OGS_SBI_RESOURCE_NAME_NF_INSTANCES)
5
-                nf_instance = e->sbi.data;
6
-                ogs_assert(nf_instance);
7
-                ogs_assert(OGS_FSM_STATE(&nf_instance->sm));
8
 
9
-                e->sbi.message = &sbi_message;
10
-                ogs_fsm_dispatch(&nf_instance->sm, e);
11
+                SWITCH(sbi_message.h.method)
12
+                CASE(OGS_SBI_HTTP_METHOD_GET)
13
+                    sbi_xact = e->sbi.data;
14
+                    ogs_assert(sbi_xact);
15
+
16
+                    if (sbi_message.res_status == OGS_SBI_HTTP_STATUS_OK)
17
+                        smf_nnrf_handle_nf_profile_retrieve(
18
+                            sbi_xact, &sbi_message);
19
+                    else
20
+                        ogs_error("HTTP response error %d",
21
+                                sbi_message.res_status);
22
+                    break;
23
+                DEFAULT
24
+                    nf_instance = e->sbi.data;
25
+                    ogs_assert(nf_instance);
26
+                    ogs_assert(OGS_FSM_STATE(&nf_instance->sm));
27
+
28
+                    e->sbi.message = &sbi_message;
29
+                    ogs_fsm_dispatch(&nf_instance->sm, e);
30
+                END
31
                 break;
32
 
33
             CASE(OGS_SBI_RESOURCE_NAME_SUBSCRIPTIONS)
34