Changes of Revision 24
open5gs_2.7.3.dsc -> open5gs_2.7.4.dsc
Changed
x
1
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.3
6
+Version: 2.7.4
7
Maintainer: Harald Welte <laforge@gnumonks.org>
8
Uploaders: Sukchan Lee <acetcom@gmail.com>
9
Homepage: https://open5gs.org
10
11
open5gs-udr deb net optional arch=any
12
open5gs-upf deb net optional arch=any
13
Checksums-Sha1:
14
- dd88f5f0a72ec11c3ea6a7980461ab01368a4541 14529912 open5gs_2.7.3.tar.xz
15
+ 00c5d85960fc8a4761d1367e9d7ae77916fc6b8b 14531268 open5gs_2.7.4.tar.xz
16
Checksums-Sha256:
17
- 50582518d95d573ec40d88c700f466bf73283b20a875ae40718852e5f9961731 14529912 open5gs_2.7.3.tar.xz
18
+ 3057efeef445770a432db1389a8f3285e306137c1b5daf4ca45f52ce191a8803 14531268 open5gs_2.7.4.tar.xz
19
Files:
20
- 5e3cf881cfcbca0fbbc3024809758d27 14529912 open5gs_2.7.3.tar.xz
21
+ 2b3939d1a5bd92de0b91381f87cb3526 14531268 open5gs_2.7.4.tar.xz
22
open5gs_2.7.3.tar.xz/.tarball-version -> open5gs_2.7.4.tar.xz/.tarball-version
Changed
4
1
2
-2.7.3
3
+2.7.4
4
open5gs_2.7.3.tar.xz/debian/changelog -> open5gs_2.7.4.tar.xz/debian/changelog
Changed
41
1
2
+open5gs (2.7.4) unstable; urgency=medium
3
+
4
+ * Bug Fixed
5
+
6
+ -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 20:01:32 +0900
7
+
8
+open5gs (2.7.4~oracular1) oracular; urgency=medium
9
+
10
+ * Bug Fixed
11
+
12
+ -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:59:26 +0900
13
+
14
+open5gs (2.7.4~noble1) noble; urgency=medium
15
+
16
+ * Bug Fixed
17
+
18
+ -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:57:53 +0900
19
+
20
+open5gs (2.7.4~jammy1) jammy; urgency=medium
21
+
22
+ * Bug Fixed
23
+
24
+ -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:56:48 +0900
25
+
26
+open5gs (2.7.4~focal1) focal; urgency=medium
27
+
28
+ * Bug Fixed
29
+
30
+ -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:54:26 +0900
31
+
32
+open5gs (2.7.4~bionic1) bionic; urgency=medium
33
+
34
+ * Bug Fixed
35
+
36
+ -- Sukchan Lee <acetcom@gmail.com> Wed, 26 Mar 2025 19:52:28 +0900
37
+
38
open5gs (2.7.3) unstable; urgency=medium
39
40
* Bug Fixed
41
open5gs_2.7.4.tar.xz/docs/_posts/2025-03-26-release-v2.7.4.md
Added
52
1
2
+---
3
+title: "v2.7.4 - Bug fixed"
4
+date: 2025-03-26 20:08:00 +0900
5
+categories:
6
+ - Release
7
+tags:
8
+ - News
9
+ - Release
10
+head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
11
+---
12
+
13
+# Open5GS Release Note Summary
14
+
15
+This release introduces numerous improvements and bug fixes across core network components, enhancing overall stability, performance, and security. Below is a concise overview of the key updates:
16
+
17
+## Session & Subscription Management
18
+- **SMF Enhancements:**
19
+ Improved handling of SDM subscriptions to UDM during the PDU session lifetime.
20
+- **Optional PLMN-ID:**
21
+ Added support for an optional PLMN-ID parameter in SDM GET queries (AMF/SMF).
22
+- **5GMM Cause Reporting:**
23
+ AMF now sends a 5GMM cause in the request to SMF when initiating a session release.
24
+
25
+## Mobility & Authentication Improvements
26
+- **Mobility Fixes:**
27
+ Corrected QoS values for 2G to 4G mobility and fixed issues with UE context release and cell reselection.
28
+- **Security & Authentication:**
29
+ Enhanced UE authentication processes, prevented crashes during security mode command failures, and implemented HSS selection improvements.
30
+
31
+## Interface & Protocol Enhancements
32
+- **Diameter & PFCP:**
33
+ - Integrated statistics into the main loop for Diameter interfaces, with enhanced debug logging for HSS and PCRF.
34
+ - Addressed multiple PFCP issues, including memory management, header handling, and correct TEID restoration.
35
+- **NAS Module:**
36
+ Fixed a heap-buffer overflow vulnerability in NAS message decoding.
37
+
38
+## SBI and Other Module Updates
39
+- **SBI Enhancements:**
40
+ Enabled custom User-Agent header information for HTTP/2 requests, support for custom port numbers, and direct NRF communication.
41
+- **Additional Fixes:**
42
+ - Resolved UE context handling issues during handovers and state transitions.
43
+ - Implemented various cosmetic fixes, typo corrections, and documentation updates.
44
+ - Introduced support for new parameters and refined subscription conditions.
45
+
46
+Overall, this release emphasizes improved network reliability, enhanced security measures, and better support for 5G core operations while also addressing legacy issues.
47
+
48
+See Release Note(https://github.com/open5gs/open5gs/releases/tag/v2.7.4)
49
+
50
+Download -- v2.7.4.tar.gz(https://github.com/open5gs/open5gs/archive/v2.7.4.tar.gz)
51
+{: .notice--info}
52
open5gs_2.7.3.tar.xz/lib/sbi/message.h -> open5gs_2.7.4.tar.xz/lib/sbi/message.h
Changed
10
1
2
"N5g-ddnmf_Discovery_MonitorUpdateResult"
3
#define OGS_SBI_CALLBACK_N5G_DDNMF_DISCOVERY_MATCH_INFORMATION \
4
"N5g-ddnmf_Discovery_MatchInformation"
5
+#define OGS_SBI_CALLBACK_NAMF_COMMUNICATION_ONN1N2TRANSFERFAILURE \
6
+ "Namf_Communication_onN1N2TransferFailure"
7
8
typedef struct ogs_sbi_header_s {
9
char *method;
10
open5gs_2.7.3.tar.xz/lib/sbi/nnrf-build.c -> open5gs_2.7.4.tar.xz/lib/sbi/nnrf-build.c
Changed
588
1
2
static OpenAPI_amf_info_t *build_amf_info(ogs_sbi_nf_info_t *nf_info);
3
static OpenAPI_scp_info_t *build_scp_info(ogs_sbi_nf_info_t *nf_info);
4
static OpenAPI_sepp_info_t *build_sepp_info(ogs_sbi_nf_info_t *nf_info);
5
+static void free_smf_info(OpenAPI_smf_info_t *SmfInfo);
6
+static void free_amf_info(OpenAPI_amf_info_t *AmfInfo);
7
+static void free_scp_info(OpenAPI_scp_info_t *ScpInfo);
8
+static void free_sepp_info(OpenAPI_sepp_info_t *SeppInfo);
9
10
ogs_sbi_request_t *ogs_nnrf_nfm_build_register(void)
11
{
12
13
if (SmfInfoMap) {
14
SmfInfo = SmfInfoMap->value;
15
if (SmfInfo)
16
- OpenAPI_smf_info_free(SmfInfo);
17
+ free_smf_info(SmfInfo);
18
if (SmfInfoMap->key)
19
ogs_free(SmfInfoMap->key);
20
ogs_free(SmfInfoMap);
21
22
OpenAPI_list_free(NFProfile->smf_info_list);
23
24
if (NFProfile->smf_info)
25
- OpenAPI_smf_info_free(NFProfile->smf_info);
26
+ free_smf_info(NFProfile->smf_info);
27
28
OpenAPI_list_for_each(NFProfile->amf_info_list, node) {
29
AmfInfoMap = node->data;
30
if (AmfInfoMap) {
31
AmfInfo = AmfInfoMap->value;
32
if (AmfInfo)
33
- OpenAPI_amf_info_free(AmfInfo);
34
+ free_amf_info(AmfInfo);
35
if (AmfInfoMap->key)
36
ogs_free(AmfInfoMap->key);
37
ogs_free(AmfInfoMap);
38
39
OpenAPI_list_free(NFProfile->amf_info_list);
40
41
if (NFProfile->amf_info)
42
- OpenAPI_amf_info_free(NFProfile->amf_info);
43
+ free_amf_info(NFProfile->amf_info);
44
45
if (NFProfile->scp_info)
46
- OpenAPI_scp_info_free(NFProfile->scp_info);
47
+ free_scp_info(NFProfile->scp_info);
48
49
if (NFProfile->sepp_info)
50
- OpenAPI_sepp_info_free(NFProfile->sepp_info);
51
+ free_sepp_info(NFProfile->sepp_info);
52
53
ogs_free(NFProfile);
54
}
55
56
sNssaiSmfInfoList = OpenAPI_list_create();
57
if (!sNssaiSmfInfoList) {
58
ogs_error("No sNssaiSmfInfoList");
59
- OpenAPI_smf_info_free(SmfInfo);
60
+ free_smf_info(SmfInfo);
61
return NULL;
62
}
63
64
65
DnnSmfInfoList = OpenAPI_list_create();
66
if (!DnnSmfInfoList) {
67
ogs_error("No DnnSmfInfoList");
68
- OpenAPI_smf_info_free(SmfInfo);
69
+ free_smf_info(SmfInfo);
70
OpenAPI_list_free(sNssaiSmfInfoList);
71
return NULL;
72
}
73
74
ogs_error("CHECK CONFIGURATION: No DNN");
75
76
OpenAPI_list_free(DnnSmfInfoList);
77
- OpenAPI_smf_info_free(SmfInfo);
78
+ free_smf_info(SmfInfo);
79
OpenAPI_list_free(sNssaiSmfInfoList);
80
81
return NULL;
82
83
TaiList = OpenAPI_list_create();
84
if (!TaiList) {
85
ogs_error("No TaiList");
86
- OpenAPI_smf_info_free(SmfInfo);
87
+ free_smf_info(SmfInfo);
88
return NULL;
89
}
90
91
92
TaiItem = ogs_calloc(1, sizeof(*TaiItem));
93
if (!TaiItem) {
94
ogs_error("No TaiItem");
95
- OpenAPI_smf_info_free(SmfInfo);
96
+ free_smf_info(SmfInfo);
97
OpenAPI_list_free(TaiList);
98
return NULL;
99
}
100
101
ogs_error("No TaiItem->plmn_id");
102
if (TaiItem)
103
ogs_free(TaiItem);
104
- OpenAPI_smf_info_free(SmfInfo);
105
+ free_smf_info(SmfInfo);
106
OpenAPI_list_free(TaiList);
107
return NULL;
108
}
109
110
TaiRangeList = OpenAPI_list_create();
111
if (!TaiRangeList) {
112
ogs_error("No TaiRangeList");
113
- OpenAPI_smf_info_free(SmfInfo);
114
+ free_smf_info(SmfInfo);
115
return NULL;
116
}
117
118
119
TacRangeList = OpenAPI_list_create();
120
if (!TacRangeList) {
121
ogs_error("No TacRangeList");
122
- OpenAPI_smf_info_free(SmfInfo);
123
+ free_smf_info(SmfInfo);
124
OpenAPI_list_free(TaiRangeList);
125
return NULL;
126
}
127
128
ogs_error("CHECK CONFIGURATION: No Start/End in TacRange");
129
130
OpenAPI_list_free(TacRangeList);
131
- OpenAPI_smf_info_free(SmfInfo);
132
+ free_smf_info(SmfInfo);
133
OpenAPI_list_free(TaiRangeList);
134
135
return NULL;
136
137
AmfInfo->amf_set_id = ogs_msprintf("%03x", nf_info->amf.amf_set_id);
138
if (!AmfInfo->amf_set_id) {
139
ogs_error("No amf_set_id");
140
- OpenAPI_amf_info_free(AmfInfo);
141
+ free_amf_info(AmfInfo);
142
return NULL;
143
}
144
AmfInfo->amf_region_id = ogs_msprintf("%02x", nf_info->amf.amf_region_id);
145
if (!AmfInfo->amf_region_id) {
146
ogs_error("No amf_region_id");
147
- OpenAPI_amf_info_free(AmfInfo);
148
+ free_amf_info(AmfInfo);
149
return NULL;
150
}
151
152
153
guamiAmfInfoList = OpenAPI_list_create();
154
if (!guamiAmfInfoList) {
155
ogs_error("No guamiAmfInfoList");
156
- OpenAPI_amf_info_free(AmfInfo);
157
+ free_amf_info(AmfInfo);
158
return NULL;
159
}
160
161
162
TaiList = OpenAPI_list_create();
163
if (!TaiList) {
164
ogs_error("No TaiList");
165
- OpenAPI_amf_info_free(AmfInfo);
166
+ free_amf_info(AmfInfo);
167
return NULL;
168
}
169
170
171
TaiItem = ogs_calloc(1, sizeof(*TaiItem));
172
if (!TaiItem) {
173
ogs_error("No TaiItem");
174
- OpenAPI_amf_info_free(AmfInfo);
175
+ free_amf_info(AmfInfo);
176
OpenAPI_list_free(TaiList);
177
return NULL;
178
}
179
180
TaiRangeList = OpenAPI_list_create();
181
if (!TaiRangeList) {
182
ogs_error("No TaiRangeList");
183
- OpenAPI_amf_info_free(AmfInfo);
184
+ free_amf_info(AmfInfo);
185
return NULL;
186
}
187
188
189
TacRangeList = OpenAPI_list_create();
190
if (!TacRangeList) {
191
ogs_error("No TacRangeList");
192
- OpenAPI_amf_info_free(AmfInfo);
193
+ free_amf_info(AmfInfo);
194
OpenAPI_list_free(TaiRangeList);
195
return NULL;
196
}
197
198
ogs_error("CHECK CONFIGURATION: No Start/End in TacRange");
199
200
OpenAPI_list_free(TacRangeList);
201
- OpenAPI_amf_info_free(AmfInfo);
202
+ free_amf_info(AmfInfo);
203
OpenAPI_list_free(TaiRangeList);
204
205
return NULL;
206
207
TaiRangeItem = ogs_calloc(1, sizeof(*TaiRangeItem));
208
if (!TaiRangeItem) {
209
ogs_error("No TaiRangeItem");
210
- OpenAPI_amf_info_free(AmfInfo);
211
+ free_amf_info(AmfInfo);
212
OpenAPI_list_free(TaiRangeList);
213
return NULL;
214
}
215
216
if (!TaiRangeItem->plmn_id) {
217
ogs_error("No TaiRangeItem->plmn_id");
218
ogs_free(TaiRangeItem);
219
- OpenAPI_amf_info_free(AmfInfo);
220
+ free_amf_info(AmfInfo);
221
OpenAPI_list_free(TaiRangeList);
222
return NULL;
223
}
224
225
PortList = OpenAPI_list_create();
226
if (!PortList) {
227
ogs_error("No PortList");
228
- OpenAPI_scp_info_free(ScpInfo);
229
+ free_scp_info(ScpInfo);
230
return NULL;
231
}
232
233
if (nf_info->scp.http.presence) {
234
PortMap = OpenAPI_map_create(
235
- ogs_strdup("http"), ogs_alloc_double(nf_info->scp.http.port));
236
+ (char *)"http", ogs_alloc_double(nf_info->scp.http.port));
237
if (!PortMap) {
238
ogs_error("No PortMap");
239
- OpenAPI_scp_info_free(ScpInfo);
240
+ free_scp_info(ScpInfo);
241
return NULL;
242
}
243
OpenAPI_list_add(PortList, PortMap);
244
}
245
if (nf_info->scp.https.presence) {
246
PortMap = OpenAPI_map_create(
247
- ogs_strdup("https"), ogs_alloc_double(nf_info->scp.https.port));
248
+ (char *)"https", ogs_alloc_double(nf_info->scp.https.port));
249
if (!PortMap) {
250
ogs_error("No PortMap");
251
- OpenAPI_scp_info_free(ScpInfo);
252
+ free_scp_info(ScpInfo);
253
return NULL;
254
}
255
OpenAPI_list_add(PortList, PortMap);
256
257
DomainInfoList = OpenAPI_list_create();
258
if (!DomainInfoList) {
259
ogs_error("No DomainInfoList");
260
- OpenAPI_scp_info_free(ScpInfo);
261
+ free_scp_info(ScpInfo);
262
return NULL;
263
}
264
for (i = 0; i < nf_info->scp.num_of_domain; i++) {
265
266
DomainInfo = ogs_calloc(1, sizeof(*DomainInfo));
267
if (!DomainInfo) {
268
ogs_error("No DomainInfo");
269
- OpenAPI_scp_info_free(ScpInfo);
270
+ free_scp_info(ScpInfo);
271
return NULL;
272
}
273
274
275
PortList = OpenAPI_list_create();
276
if (!PortList) {
277
ogs_error("No PortList");
278
- OpenAPI_scp_info_free(ScpInfo);
279
+ free_scp_info(ScpInfo);
280
return NULL;
281
}
282
283
284
ogs_alloc_double(nf_info->scp.domaini.http.port));
285
if (!PortMap) {
286
ogs_error("No PortMap");
287
- OpenAPI_scp_info_free(ScpInfo);
288
+ free_scp_info(ScpInfo);
289
return NULL;
290
}
291
OpenAPI_list_add(PortList, PortMap);
292
293
ogs_alloc_double(nf_info->scp.domaini.https.port));
294
if (!PortMap) {
295
ogs_error("No PortMap");
296
- OpenAPI_scp_info_free(ScpInfo);
297
+ free_scp_info(ScpInfo);
298
return NULL;
299
}
300
OpenAPI_list_add(PortList, PortMap);
301
302
nf_info->scp.domaini.name, DomainInfo);
303
if (!DomainInfoMap) {
304
ogs_error("No PortMap");
305
- OpenAPI_scp_info_free(ScpInfo);
306
+ free_scp_info(ScpInfo);
307
return NULL;
308
}
309
310
311
PortList = OpenAPI_list_create();
312
if (!PortList) {
313
ogs_error("No PortList");
314
- OpenAPI_sepp_info_free(SeppInfo);
315
+ free_sepp_info(SeppInfo);
316
return NULL;
317
}
318
319
320
(char *)"http", ogs_alloc_double(nf_info->sepp.http.port));
321
if (!PortMap) {
322
ogs_error("No PortMap");
323
- OpenAPI_sepp_info_free(SeppInfo);
324
+ free_sepp_info(SeppInfo);
325
return NULL;
326
}
327
OpenAPI_list_add(PortList, PortMap);
328
329
(char *)"https", ogs_alloc_double(nf_info->sepp.https.port));
330
if (!PortMap) {
331
ogs_error("No PortMap");
332
- OpenAPI_sepp_info_free(SeppInfo);
333
+ free_sepp_info(SeppInfo);
334
return NULL;
335
}
336
OpenAPI_list_add(PortList, PortMap);
337
338
return SeppInfo;
339
}
340
341
+static void free_smf_info(OpenAPI_smf_info_t *SmfInfo)
342
+{
343
+ OpenAPI_list_t *sNssaiSmfInfoList = NULL;
344
+ OpenAPI_snssai_smf_info_item_t *sNssaiSmfInfoItem = NULL;
345
+ OpenAPI_ext_snssai_t *sNssai = NULL;
346
+ OpenAPI_list_t *DnnSmfInfoList = NULL;
347
+ OpenAPI_dnn_smf_info_item_t *DnnSmfInfoItem = NULL;
348
+
349
+ OpenAPI_list_t *TaiList = NULL;
350
+ OpenAPI_tai_t *TaiItem = NULL;
351
+ OpenAPI_list_t *TaiRangeList = NULL;
352
+ OpenAPI_tai_range_t *TaiRangeItem = NULL;
353
+ OpenAPI_list_t *TacRangeList = NULL;
354
+ OpenAPI_tac_range_t *TacRangeItem = NULL;
355
+
356
+ OpenAPI_lnode_t *node = NULL, *node2 = NULL;
357
+
358
+ ogs_assert(SmfInfo);
359
+
360
+ sNssaiSmfInfoList = SmfInfo->s_nssai_smf_info_list;
361
+ OpenAPI_list_for_each(sNssaiSmfInfoList, node) {
362
+ sNssaiSmfInfoItem = node->data;
363
+ ogs_assert(sNssaiSmfInfoItem);
364
+
365
+ DnnSmfInfoList = sNssaiSmfInfoItem->dnn_smf_info_list;
366
+ OpenAPI_list_for_each(DnnSmfInfoList, node2) {
367
+ DnnSmfInfoItem = node2->data;
368
+ ogs_assert(DnnSmfInfoItem);
369
+ ogs_free(DnnSmfInfoItem);
370
+ }
371
+ OpenAPI_list_free(DnnSmfInfoList);
372
+
373
+ sNssai = sNssaiSmfInfoItem->s_nssai;
374
+ if (sNssai) {
375
+ if (sNssai->sd)
376
+ ogs_free(sNssai->sd);
377
+ ogs_free(sNssai);
378
+ }
379
+
380
+ ogs_free(sNssaiSmfInfoItem);
381
+ }
382
+ OpenAPI_list_free(sNssaiSmfInfoList);
383
+
384
+ TaiList = SmfInfo->tai_list;
385
+ OpenAPI_list_for_each(TaiList, node) {
386
+ TaiItem = node->data;
387
+ ogs_assert(TaiItem);
388
+ if (TaiItem->plmn_id)
389
+ ogs_sbi_free_plmn_id(TaiItem->plmn_id);
390
+ if (TaiItem->tac)
391
+ ogs_free(TaiItem->tac);
392
+ ogs_free(TaiItem);
393
+ }
394
+ OpenAPI_list_free(TaiList);
395
+
396
+ TaiRangeList = SmfInfo->tai_range_list;
397
+ OpenAPI_list_for_each(TaiRangeList, node) {
398
+ TaiRangeItem = node->data;
399
+ ogs_assert(TaiRangeItem);
400
+
401
+ if (TaiRangeItem->plmn_id)
402
+ ogs_sbi_free_plmn_id(TaiRangeItem->plmn_id);
403
+
404
+ TacRangeList = TaiRangeItem->tac_range_list;
405
+ OpenAPI_list_for_each(TacRangeList, node2) {
406
+ TacRangeItem = node2->data;
407
+ ogs_assert(TacRangeItem);
408
+ if (TacRangeItem->start)
409
+ ogs_free(TacRangeItem->start);
410
+ if (TacRangeItem->end)
411
+ ogs_free(TacRangeItem->end);
412
+
413
+ ogs_free(TacRangeItem);
414
+ }
415
+ OpenAPI_list_free(TacRangeList);
416
+
417
+ ogs_free(TaiRangeItem);
418
+ }
419
+ OpenAPI_list_free(TaiRangeList);
420
+
421
+ ogs_free(SmfInfo);
422
+}
423
+
424
+static void free_amf_info(OpenAPI_amf_info_t *AmfInfo)
425
+{
426
+ OpenAPI_list_t *guamiAmfInfoList = NULL;
427
+ OpenAPI_guami_t *guamiAmfInfoItem = NULL;
428
+
429
+ OpenAPI_list_t *TaiList = NULL;
430
+ OpenAPI_tai_t *TaiItem = NULL;
431
+ OpenAPI_list_t *TaiRangeList = NULL;
432
+ OpenAPI_tai_range_t *TaiRangeItem = NULL;
433
+ OpenAPI_list_t *TacRangeList = NULL;
434
+ OpenAPI_tac_range_t *TacRangeItem = NULL;
435
+
436
+ OpenAPI_lnode_t *node = NULL, *node2 = NULL;
437
+
438
+ ogs_assert(AmfInfo);
439
+
440
+ if (AmfInfo->amf_set_id)
441
+ ogs_free(AmfInfo->amf_set_id);
442
+ if (AmfInfo->amf_region_id)
443
+ ogs_free(AmfInfo->amf_region_id);
444
+
445
+ guamiAmfInfoList = AmfInfo->guami_list;
446
+ OpenAPI_list_for_each(guamiAmfInfoList, node) {
447
+ guamiAmfInfoItem = node->data;
448
+ if (guamiAmfInfoItem) {
449
+ if (guamiAmfInfoItem->plmn_id) {
450
+ if (guamiAmfInfoItem->plmn_id->mcc)
451
+ ogs_free(guamiAmfInfoItem->plmn_id->mcc);
452
+ if (guamiAmfInfoItem->plmn_id->mnc)
453
+ ogs_free(guamiAmfInfoItem->plmn_id->mnc);
454
+ ogs_free(guamiAmfInfoItem->plmn_id);
455
+ }
456
+ if (guamiAmfInfoItem->amf_id)
457
+ ogs_free(guamiAmfInfoItem->amf_id);
458
+ }
459
+ ogs_free(guamiAmfInfoItem);
460
+ }
461
+
462
+ OpenAPI_list_free(guamiAmfInfoList);
463
+
464
+ TaiList = AmfInfo->tai_list;
465
+ OpenAPI_list_for_each(TaiList, node) {
466
+ TaiItem = node->data;
467
+ ogs_assert(TaiItem);
468
+ if (TaiItem->plmn_id)
469
+ ogs_sbi_free_plmn_id(TaiItem->plmn_id);
470
+ if (TaiItem->tac)
471
+ ogs_free(TaiItem->tac);
472
+ ogs_free(TaiItem);
473
+ }
474
+ OpenAPI_list_free(TaiList);
475
+
476
+ TaiRangeList = AmfInfo->tai_range_list;
477
+ OpenAPI_list_for_each(TaiRangeList, node) {
478
+ TaiRangeItem = node->data;
479
+ ogs_assert(TaiRangeItem);
480
+
481
+ if (TaiRangeItem->plmn_id)
482
+ ogs_sbi_free_plmn_id(TaiRangeItem->plmn_id);
483
+
484
+ TacRangeList = TaiRangeItem->tac_range_list;
485
+ OpenAPI_list_for_each(TacRangeList, node2) {
486
+ TacRangeItem = node2->data;
487
+ ogs_assert(TacRangeItem);
488
+ if (TacRangeItem->start)
489
+ ogs_free(TacRangeItem->start);
490
+ if (TacRangeItem->end)
491
+ ogs_free(TacRangeItem->end);
492
+
493
+ ogs_free(TacRangeItem);
494
+ }
495
+ OpenAPI_list_free(TacRangeList);
496
+
497
+ ogs_free(TaiRangeItem);
498
+ }
499
+ OpenAPI_list_free(TaiRangeList);
500
+
501
+ ogs_free(AmfInfo);
502
+}
503
+
504
+static void free_scp_info(OpenAPI_scp_info_t *ScpInfo)
505
+{
506
+ OpenAPI_map_t *PortMap = NULL;
507
+ OpenAPI_lnode_t *node = NULL, *node2 = NULL;
508
+
509
+ OpenAPI_map_t *DomainInfoMap = NULL;
510
+ OpenAPI_scp_domain_info_t *DomainInfo = NULL;
511
+
512
+ ogs_assert(ScpInfo);
513
+
514
+ OpenAPI_list_for_each(ScpInfo->scp_ports, node) {
515
+ PortMap = node->data;
516
+ if (PortMap) {
517
+ ogs_free(PortMap->value);
518
+ OpenAPI_map_free(PortMap);
519
+ }
520
+ }
521
+ OpenAPI_list_free(ScpInfo->scp_ports);
522
+
523
+ OpenAPI_list_for_each(ScpInfo->scp_domain_info_list, node) {
524
+ DomainInfoMap = node->data;
525
+ if (DomainInfoMap) {
526
+ DomainInfo = DomainInfoMap->value;
527
+ if (DomainInfo) {
528
+ OpenAPI_list_for_each(DomainInfo->scp_ports, node2) {
529
+ PortMap = node2->data;
530
+ if (PortMap) {
531
+ ogs_free(PortMap->value);
532
+ OpenAPI_map_free(PortMap);
533
+ }
534
+ }
535
+ OpenAPI_list_free(DomainInfo->scp_ports);
536
+ ogs_free(DomainInfo);
537
+ }
538
+ OpenAPI_map_free(DomainInfoMap);
539
+ }
540
+ }
541
+ OpenAPI_list_free(ScpInfo->scp_domain_info_list);
542
+
543
+ ogs_free(ScpInfo);
544
+}
545
+
546
+static void free_sepp_info(OpenAPI_sepp_info_t *SeppInfo)
547
+{
548
+ OpenAPI_map_t *PortMap = NULL;
549
+ OpenAPI_lnode_t *node = NULL;
550
+
551
+ ogs_assert(SeppInfo);
552
+
553
+ OpenAPI_list_for_each(SeppInfo->sepp_ports, node) {
554
+ PortMap = node->data;
555
+ if (PortMap) {
556
+ ogs_free(PortMap->value);
557
+ OpenAPI_map_free(PortMap);
558
+ }
559
+ }
560
+ OpenAPI_list_free(SeppInfo->sepp_ports);
561
+
562
+ ogs_free(SeppInfo);
563
+}
564
+
565
ogs_sbi_request_t *ogs_nnrf_nfm_build_update(void)
566
{
567
ogs_sbi_nf_instance_t *nf_instance = NULL;
568
569
570
message.SubscriptionData = SubscriptionData;
571
572
- message.http.custom.callback =
573
- (char *)OGS_SBI_CALLBACK_NNRF_NFMANAGEMENT_NF_STATUS_NOTIFY;
574
-
575
request = ogs_sbi_build_request(&message);
576
ogs_expect(request);
577
578
579
message.h.method = (char *)OGS_SBI_HTTP_METHOD_DELETE;
580
message.h.uri = subscription_data->resource_uri;
581
582
- message.http.custom.callback =
583
- (char *)OGS_SBI_CALLBACK_NNRF_NFMANAGEMENT_NF_STATUS_NOTIFY;
584
-
585
request = ogs_sbi_build_request(&message);
586
ogs_expect(request);
587
588
open5gs_2.7.3.tar.xz/meson.build -> open5gs_2.7.4.tar.xz/meson.build
Changed
19
1
2
# along with this program. If not, see <https://www.gnu.org/licenses/>.
3
4
project('open5gs', 'c', 'cpp',
5
- version : '2.7.3',
6
+ version : '2.7.4',
7
license : 'AGPL-3.0-or-later',
8
meson_version : '>= 0.43.0',
9
default_options :
10
11
,
12
)
13
14
-libogslib_version = '2.7.3'
15
+libogslib_version = '2.7.4'
16
17
prefix = get_option('prefix')
18
bindir = join_paths(prefix, get_option('bindir'))
19
open5gs_2.7.3.tar.xz/src/amf/nsmf-build.c -> open5gs_2.7.4.tar.xz/src/amf/nsmf-build.c
Changed
36
1
2
message.http.accept = (char *)(OGS_SBI_CONTENT_JSON_TYPE ","
3
OGS_SBI_CONTENT_NGAP_TYPE "," OGS_SBI_CONTENT_PROBLEM_TYPE);
4
5
+/*
6
+ * Callback Header Configuration
7
+ *
8
+ * The 3gpp-Sbi-Callback HTTP header (per 3GPP TS 29.500 v17.9.0) indicates that
9
+ * a message is an asynchronous notification or callback. This header should be
10
+ * included only in HTTP POST requests that are callbacks (e.g., event or
11
+ * notification messages) and must not be added to regular service requests,
12
+ * such as registration (HTTP PUT) or subscription requests.
13
+ */
14
message.http.custom.callback =
15
(char *)OGS_SBI_CALLBACK_NSMF_PDUSESSION_STATUS_NOTIFY;
16
17
18
19
message.N1N2MsgTxfrFailureNotification = &N1N2MsgTxfrFailureNotification;
20
21
+/*
22
+ * Callback Header Configuration
23
+ *
24
+ * The 3gpp-Sbi-Callback HTTP header (per 3GPP TS 29.500 v17.9.0) indicates that
25
+ * a message is an asynchronous notification or callback. This header should be
26
+ * included only in HTTP POST requests that are callbacks (e.g., event or
27
+ * notification messages) and must not be added to regular service requests,
28
+ * such as registration (HTTP PUT) or subscription requests.
29
+ */
30
+ message.http.custom.callback =
31
+ (char *)OGS_SBI_CALLBACK_NAMF_COMMUNICATION_ONN1N2TRANSFERFAILURE;
32
+
33
request = ogs_sbi_build_request(&message);
34
ogs_expect(request);
35
36
open5gs_2.7.3.tar.xz/src/amf/nudm-build.c -> open5gs_2.7.4.tar.xz/src/amf/nudm-build.c
Changed
21
1
2
3
message.Amf3GppAccessRegistration = &Amf3GppAccessRegistration;
4
5
- message.http.custom.callback =
6
- (char *)OGS_SBI_CALLBACK_NUDM_UECM_DEREGISTRATION_NOTIFICATION;
7
-
8
request = ogs_sbi_build_request(&message);
9
ogs_expect(request);
10
11
12
13
message.SDMSubscription = &SDMSubscription;
14
15
- message.http.custom.callback =
16
- (char *)OGS_SBI_CALLBACK_NUDM_SDM_NOTIFICATION;
17
-
18
request = ogs_sbi_build_request(&message);
19
ogs_expect(request);
20
21
open5gs_2.7.3.tar.xz/src/nrf/nnrf-build.c -> open5gs_2.7.4.tar.xz/src/nrf/nnrf-build.c
Changed
19
1
2
goto end;
3
}
4
}
5
+/*
6
+ * Callback Header Configuration
7
+ *
8
+ * The 3gpp-Sbi-Callback HTTP header (per 3GPP TS 29.500 v17.9.0) indicates that
9
+ * a message is an asynchronous notification or callback. This header should be
10
+ * included only in HTTP POST requests that are callbacks (e.g., event or
11
+ * notification messages) and must not be added to regular service requests,
12
+ * such as registration (HTTP PUT) or subscription requests.
13
+ */
14
+ message.http.custom.callback =
15
+ (char *)OGS_SBI_CALLBACK_NNRF_NFMANAGEMENT_NF_STATUS_NOTIFY;
16
17
message.NotificationData = NotificationData;
18
19
open5gs_2.7.3.tar.xz/src/smf/nudm-build.c -> open5gs_2.7.4.tar.xz/src/smf/nudm-build.c
Changed
11
1
2
3
message.SDMSubscription = &SDMSubscription;
4
5
- message.http.custom.callback =
6
- (char *)OGS_SBI_CALLBACK_NUDM_SDM_NOTIFICATION;
7
-
8
request = ogs_sbi_build_request(&message);
9
ogs_expect(request);
10
11