Coverage Report

Created: 2026-08-17 06:12

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/perf_data.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "perf_data.h"
6
7
OpenAPI_perf_data_t *OpenAPI_perf_data_create(
8
    char *avg_traffic_rate,
9
    char *max_traffic_rate,
10
    char *min_traffic_rate,
11
    char *agg_traffic_rate,
12
    bool is_var_traffic_rate,
13
    float var_traffic_rate,
14
    OpenAPI_list_t *traf_rate_ue_ids,
15
    bool is_ave_packet_delay,
16
    int ave_packet_delay,
17
    bool is_max_packet_delay,
18
    int max_packet_delay,
19
    bool is_var_packet_delay,
20
    float var_packet_delay,
21
    OpenAPI_list_t *pack_delay_ue_ids,
22
    bool is_avg_packet_loss_rate,
23
    int avg_packet_loss_rate,
24
    bool is_max_packet_loss_rate,
25
    int max_packet_loss_rate,
26
    bool is_var_packet_loss_rate,
27
    float var_packet_loss_rate,
28
    OpenAPI_list_t *pack_loss_ue_ids,
29
    bool is_num_of_ue,
30
    int num_of_ue
31
)
32
0
{
33
0
    OpenAPI_perf_data_t *perf_data_local_var = ogs_malloc(sizeof(OpenAPI_perf_data_t));
34
0
    ogs_assert(perf_data_local_var);
35
36
0
    perf_data_local_var->avg_traffic_rate = avg_traffic_rate;
37
0
    perf_data_local_var->max_traffic_rate = max_traffic_rate;
38
0
    perf_data_local_var->min_traffic_rate = min_traffic_rate;
39
0
    perf_data_local_var->agg_traffic_rate = agg_traffic_rate;
40
0
    perf_data_local_var->is_var_traffic_rate = is_var_traffic_rate;
41
0
    perf_data_local_var->var_traffic_rate = var_traffic_rate;
42
0
    perf_data_local_var->traf_rate_ue_ids = traf_rate_ue_ids;
43
0
    perf_data_local_var->is_ave_packet_delay = is_ave_packet_delay;
44
0
    perf_data_local_var->ave_packet_delay = ave_packet_delay;
45
0
    perf_data_local_var->is_max_packet_delay = is_max_packet_delay;
46
0
    perf_data_local_var->max_packet_delay = max_packet_delay;
47
0
    perf_data_local_var->is_var_packet_delay = is_var_packet_delay;
48
0
    perf_data_local_var->var_packet_delay = var_packet_delay;
49
0
    perf_data_local_var->pack_delay_ue_ids = pack_delay_ue_ids;
50
0
    perf_data_local_var->is_avg_packet_loss_rate = is_avg_packet_loss_rate;
51
0
    perf_data_local_var->avg_packet_loss_rate = avg_packet_loss_rate;
52
0
    perf_data_local_var->is_max_packet_loss_rate = is_max_packet_loss_rate;
53
0
    perf_data_local_var->max_packet_loss_rate = max_packet_loss_rate;
54
0
    perf_data_local_var->is_var_packet_loss_rate = is_var_packet_loss_rate;
55
0
    perf_data_local_var->var_packet_loss_rate = var_packet_loss_rate;
56
0
    perf_data_local_var->pack_loss_ue_ids = pack_loss_ue_ids;
57
0
    perf_data_local_var->is_num_of_ue = is_num_of_ue;
58
0
    perf_data_local_var->num_of_ue = num_of_ue;
59
60
0
    return perf_data_local_var;
61
0
}
62
63
void OpenAPI_perf_data_free(OpenAPI_perf_data_t *perf_data)
64
0
{
65
0
    OpenAPI_lnode_t *node = NULL;
66
67
0
    if (NULL == perf_data) {
68
0
        return;
69
0
    }
70
0
    if (perf_data->avg_traffic_rate) {
71
0
        ogs_free(perf_data->avg_traffic_rate);
72
0
        perf_data->avg_traffic_rate = NULL;
73
0
    }
74
0
    if (perf_data->max_traffic_rate) {
75
0
        ogs_free(perf_data->max_traffic_rate);
76
0
        perf_data->max_traffic_rate = NULL;
77
0
    }
78
0
    if (perf_data->min_traffic_rate) {
79
0
        ogs_free(perf_data->min_traffic_rate);
80
0
        perf_data->min_traffic_rate = NULL;
81
0
    }
82
0
    if (perf_data->agg_traffic_rate) {
83
0
        ogs_free(perf_data->agg_traffic_rate);
84
0
        perf_data->agg_traffic_rate = NULL;
85
0
    }
86
0
    if (perf_data->traf_rate_ue_ids) {
87
0
        OpenAPI_list_for_each(perf_data->traf_rate_ue_ids, node) {
88
0
            ogs_free(node->data);
89
0
        }
90
0
        OpenAPI_list_free(perf_data->traf_rate_ue_ids);
91
0
        perf_data->traf_rate_ue_ids = NULL;
92
0
    }
93
0
    if (perf_data->pack_delay_ue_ids) {
94
0
        OpenAPI_list_for_each(perf_data->pack_delay_ue_ids, node) {
95
0
            ogs_free(node->data);
96
0
        }
97
0
        OpenAPI_list_free(perf_data->pack_delay_ue_ids);
98
0
        perf_data->pack_delay_ue_ids = NULL;
99
0
    }
100
0
    if (perf_data->pack_loss_ue_ids) {
101
0
        OpenAPI_list_for_each(perf_data->pack_loss_ue_ids, node) {
102
0
            ogs_free(node->data);
103
0
        }
104
0
        OpenAPI_list_free(perf_data->pack_loss_ue_ids);
105
0
        perf_data->pack_loss_ue_ids = NULL;
106
0
    }
107
0
    ogs_free(perf_data);
108
0
}
109
110
cJSON *OpenAPI_perf_data_convertToJSON(OpenAPI_perf_data_t *perf_data)
111
0
{
112
0
    cJSON *item = NULL;
113
0
    OpenAPI_lnode_t *node = NULL;
114
115
0
    if (perf_data == NULL) {
116
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [PerfData]");
117
0
        return NULL;
118
0
    }
119
120
0
    item = cJSON_CreateObject();
121
0
    if (perf_data->avg_traffic_rate) {
122
0
    if (cJSON_AddStringToObject(item, "avgTrafficRate", perf_data->avg_traffic_rate) == NULL) {
123
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [avg_traffic_rate]");
124
0
        goto end;
125
0
    }
126
0
    }
127
128
0
    if (perf_data->max_traffic_rate) {
129
0
    if (cJSON_AddStringToObject(item, "maxTrafficRate", perf_data->max_traffic_rate) == NULL) {
130
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [max_traffic_rate]");
131
0
        goto end;
132
0
    }
133
0
    }
134
135
0
    if (perf_data->min_traffic_rate) {
136
0
    if (cJSON_AddStringToObject(item, "minTrafficRate", perf_data->min_traffic_rate) == NULL) {
137
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [min_traffic_rate]");
138
0
        goto end;
139
0
    }
140
0
    }
141
142
0
    if (perf_data->agg_traffic_rate) {
143
0
    if (cJSON_AddStringToObject(item, "aggTrafficRate", perf_data->agg_traffic_rate) == NULL) {
144
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [agg_traffic_rate]");
145
0
        goto end;
146
0
    }
147
0
    }
148
149
0
    if (perf_data->is_var_traffic_rate) {
150
0
    if (cJSON_AddNumberToObject(item, "varTrafficRate", perf_data->var_traffic_rate) == NULL) {
151
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [var_traffic_rate]");
152
0
        goto end;
153
0
    }
154
0
    }
155
156
0
    if (perf_data->traf_rate_ue_ids) {
157
0
    cJSON *traf_rate_ue_idsList = cJSON_AddArrayToObject(item, "trafRateUeIds");
158
0
    if (traf_rate_ue_idsList == NULL) {
159
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [traf_rate_ue_ids]");
160
0
        goto end;
161
0
    }
162
0
    OpenAPI_list_for_each(perf_data->traf_rate_ue_ids, node) {
163
0
        if (cJSON_AddStringToObject(traf_rate_ue_idsList, "", (char*)node->data) == NULL) {
164
0
            ogs_error("OpenAPI_perf_data_convertToJSON() failed [traf_rate_ue_ids]");
165
0
            goto end;
166
0
        }
167
0
    }
168
0
    }
169
170
0
    if (perf_data->is_ave_packet_delay) {
171
0
    if (cJSON_AddNumberToObject(item, "avePacketDelay", perf_data->ave_packet_delay) == NULL) {
172
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [ave_packet_delay]");
173
0
        goto end;
174
0
    }
175
0
    }
176
177
0
    if (perf_data->is_max_packet_delay) {
178
0
    if (cJSON_AddNumberToObject(item, "maxPacketDelay", perf_data->max_packet_delay) == NULL) {
179
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [max_packet_delay]");
180
0
        goto end;
181
0
    }
182
0
    }
183
184
0
    if (perf_data->is_var_packet_delay) {
185
0
    if (cJSON_AddNumberToObject(item, "varPacketDelay", perf_data->var_packet_delay) == NULL) {
186
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [var_packet_delay]");
187
0
        goto end;
188
0
    }
189
0
    }
190
191
0
    if (perf_data->pack_delay_ue_ids) {
192
0
    cJSON *pack_delay_ue_idsList = cJSON_AddArrayToObject(item, "packDelayUeIds");
193
0
    if (pack_delay_ue_idsList == NULL) {
194
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [pack_delay_ue_ids]");
195
0
        goto end;
196
0
    }
197
0
    OpenAPI_list_for_each(perf_data->pack_delay_ue_ids, node) {
198
0
        if (cJSON_AddStringToObject(pack_delay_ue_idsList, "", (char*)node->data) == NULL) {
199
0
            ogs_error("OpenAPI_perf_data_convertToJSON() failed [pack_delay_ue_ids]");
200
0
            goto end;
201
0
        }
202
0
    }
203
0
    }
204
205
0
    if (perf_data->is_avg_packet_loss_rate) {
206
0
    if (cJSON_AddNumberToObject(item, "avgPacketLossRate", perf_data->avg_packet_loss_rate) == NULL) {
207
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [avg_packet_loss_rate]");
208
0
        goto end;
209
0
    }
210
0
    }
211
212
0
    if (perf_data->is_max_packet_loss_rate) {
213
0
    if (cJSON_AddNumberToObject(item, "maxPacketLossRate", perf_data->max_packet_loss_rate) == NULL) {
214
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [max_packet_loss_rate]");
215
0
        goto end;
216
0
    }
217
0
    }
218
219
0
    if (perf_data->is_var_packet_loss_rate) {
220
0
    if (cJSON_AddNumberToObject(item, "varPacketLossRate", perf_data->var_packet_loss_rate) == NULL) {
221
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [var_packet_loss_rate]");
222
0
        goto end;
223
0
    }
224
0
    }
225
226
0
    if (perf_data->pack_loss_ue_ids) {
227
0
    cJSON *pack_loss_ue_idsList = cJSON_AddArrayToObject(item, "packLossUeIds");
228
0
    if (pack_loss_ue_idsList == NULL) {
229
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [pack_loss_ue_ids]");
230
0
        goto end;
231
0
    }
232
0
    OpenAPI_list_for_each(perf_data->pack_loss_ue_ids, node) {
233
0
        if (cJSON_AddStringToObject(pack_loss_ue_idsList, "", (char*)node->data) == NULL) {
234
0
            ogs_error("OpenAPI_perf_data_convertToJSON() failed [pack_loss_ue_ids]");
235
0
            goto end;
236
0
        }
237
0
    }
238
0
    }
239
240
0
    if (perf_data->is_num_of_ue) {
241
0
    if (cJSON_AddNumberToObject(item, "numOfUe", perf_data->num_of_ue) == NULL) {
242
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed [num_of_ue]");
243
0
        goto end;
244
0
    }
245
0
    }
246
247
0
end:
248
0
    return item;
249
0
}
250
251
OpenAPI_perf_data_t *OpenAPI_perf_data_parseFromJSON(cJSON *perf_dataJSON)
252
0
{
253
0
    OpenAPI_perf_data_t *perf_data_local_var = NULL;
254
0
    OpenAPI_lnode_t *node = NULL;
255
0
    cJSON *avg_traffic_rate = NULL;
256
0
    cJSON *max_traffic_rate = NULL;
257
0
    cJSON *min_traffic_rate = NULL;
258
0
    cJSON *agg_traffic_rate = NULL;
259
0
    cJSON *var_traffic_rate = NULL;
260
0
    cJSON *traf_rate_ue_ids = NULL;
261
0
    OpenAPI_list_t *traf_rate_ue_idsList = NULL;
262
0
    cJSON *ave_packet_delay = NULL;
263
0
    cJSON *max_packet_delay = NULL;
264
0
    cJSON *var_packet_delay = NULL;
265
0
    cJSON *pack_delay_ue_ids = NULL;
266
0
    OpenAPI_list_t *pack_delay_ue_idsList = NULL;
267
0
    cJSON *avg_packet_loss_rate = NULL;
268
0
    cJSON *max_packet_loss_rate = NULL;
269
0
    cJSON *var_packet_loss_rate = NULL;
270
0
    cJSON *pack_loss_ue_ids = NULL;
271
0
    OpenAPI_list_t *pack_loss_ue_idsList = NULL;
272
0
    cJSON *num_of_ue = NULL;
273
0
    avg_traffic_rate = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "avgTrafficRate");
274
0
    if (avg_traffic_rate) {
275
0
    if (!cJSON_IsString(avg_traffic_rate) && !cJSON_IsNull(avg_traffic_rate)) {
276
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [avg_traffic_rate]");
277
0
        goto end;
278
0
    }
279
0
    }
280
281
0
    max_traffic_rate = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "maxTrafficRate");
282
0
    if (max_traffic_rate) {
283
0
    if (!cJSON_IsString(max_traffic_rate) && !cJSON_IsNull(max_traffic_rate)) {
284
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [max_traffic_rate]");
285
0
        goto end;
286
0
    }
287
0
    }
288
289
0
    min_traffic_rate = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "minTrafficRate");
290
0
    if (min_traffic_rate) {
291
0
    if (!cJSON_IsString(min_traffic_rate) && !cJSON_IsNull(min_traffic_rate)) {
292
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [min_traffic_rate]");
293
0
        goto end;
294
0
    }
295
0
    }
296
297
0
    agg_traffic_rate = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "aggTrafficRate");
298
0
    if (agg_traffic_rate) {
299
0
    if (!cJSON_IsString(agg_traffic_rate) && !cJSON_IsNull(agg_traffic_rate)) {
300
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [agg_traffic_rate]");
301
0
        goto end;
302
0
    }
303
0
    }
304
305
0
    var_traffic_rate = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "varTrafficRate");
306
0
    if (var_traffic_rate) {
307
0
    if (!cJSON_IsNumber(var_traffic_rate)) {
308
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [var_traffic_rate]");
309
0
        goto end;
310
0
    }
311
0
    }
312
313
0
    traf_rate_ue_ids = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "trafRateUeIds");
314
0
    if (traf_rate_ue_ids) {
315
0
        cJSON *traf_rate_ue_ids_local = NULL;
316
0
        if (!cJSON_IsArray(traf_rate_ue_ids)) {
317
0
            ogs_error("OpenAPI_perf_data_parseFromJSON() failed [traf_rate_ue_ids]");
318
0
            goto end;
319
0
        }
320
321
0
        traf_rate_ue_idsList = OpenAPI_list_create();
322
323
0
        cJSON_ArrayForEach(traf_rate_ue_ids_local, traf_rate_ue_ids) {
324
0
            double *localDouble = NULL;
325
0
            int *localInt = NULL;
326
0
            if (!cJSON_IsString(traf_rate_ue_ids_local)) {
327
0
                ogs_error("OpenAPI_perf_data_parseFromJSON() failed [traf_rate_ue_ids]");
328
0
                goto end;
329
0
            }
330
0
            OpenAPI_list_add(traf_rate_ue_idsList, ogs_strdup(traf_rate_ue_ids_local->valuestring));
331
0
        }
332
0
    }
333
334
0
    ave_packet_delay = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "avePacketDelay");
335
0
    if (ave_packet_delay) {
336
0
    if (!cJSON_IsNumber(ave_packet_delay)) {
337
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [ave_packet_delay]");
338
0
        goto end;
339
0
    }
340
0
    }
341
342
0
    max_packet_delay = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "maxPacketDelay");
343
0
    if (max_packet_delay) {
344
0
    if (!cJSON_IsNumber(max_packet_delay)) {
345
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [max_packet_delay]");
346
0
        goto end;
347
0
    }
348
0
    }
349
350
0
    var_packet_delay = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "varPacketDelay");
351
0
    if (var_packet_delay) {
352
0
    if (!cJSON_IsNumber(var_packet_delay)) {
353
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [var_packet_delay]");
354
0
        goto end;
355
0
    }
356
0
    }
357
358
0
    pack_delay_ue_ids = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "packDelayUeIds");
359
0
    if (pack_delay_ue_ids) {
360
0
        cJSON *pack_delay_ue_ids_local = NULL;
361
0
        if (!cJSON_IsArray(pack_delay_ue_ids)) {
362
0
            ogs_error("OpenAPI_perf_data_parseFromJSON() failed [pack_delay_ue_ids]");
363
0
            goto end;
364
0
        }
365
366
0
        pack_delay_ue_idsList = OpenAPI_list_create();
367
368
0
        cJSON_ArrayForEach(pack_delay_ue_ids_local, pack_delay_ue_ids) {
369
0
            double *localDouble = NULL;
370
0
            int *localInt = NULL;
371
0
            if (!cJSON_IsString(pack_delay_ue_ids_local)) {
372
0
                ogs_error("OpenAPI_perf_data_parseFromJSON() failed [pack_delay_ue_ids]");
373
0
                goto end;
374
0
            }
375
0
            OpenAPI_list_add(pack_delay_ue_idsList, ogs_strdup(pack_delay_ue_ids_local->valuestring));
376
0
        }
377
0
    }
378
379
0
    avg_packet_loss_rate = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "avgPacketLossRate");
380
0
    if (avg_packet_loss_rate) {
381
0
    if (!cJSON_IsNumber(avg_packet_loss_rate)) {
382
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [avg_packet_loss_rate]");
383
0
        goto end;
384
0
    }
385
0
    }
386
387
0
    max_packet_loss_rate = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "maxPacketLossRate");
388
0
    if (max_packet_loss_rate) {
389
0
    if (!cJSON_IsNumber(max_packet_loss_rate)) {
390
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [max_packet_loss_rate]");
391
0
        goto end;
392
0
    }
393
0
    }
394
395
0
    var_packet_loss_rate = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "varPacketLossRate");
396
0
    if (var_packet_loss_rate) {
397
0
    if (!cJSON_IsNumber(var_packet_loss_rate)) {
398
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [var_packet_loss_rate]");
399
0
        goto end;
400
0
    }
401
0
    }
402
403
0
    pack_loss_ue_ids = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "packLossUeIds");
404
0
    if (pack_loss_ue_ids) {
405
0
        cJSON *pack_loss_ue_ids_local = NULL;
406
0
        if (!cJSON_IsArray(pack_loss_ue_ids)) {
407
0
            ogs_error("OpenAPI_perf_data_parseFromJSON() failed [pack_loss_ue_ids]");
408
0
            goto end;
409
0
        }
410
411
0
        pack_loss_ue_idsList = OpenAPI_list_create();
412
413
0
        cJSON_ArrayForEach(pack_loss_ue_ids_local, pack_loss_ue_ids) {
414
0
            double *localDouble = NULL;
415
0
            int *localInt = NULL;
416
0
            if (!cJSON_IsString(pack_loss_ue_ids_local)) {
417
0
                ogs_error("OpenAPI_perf_data_parseFromJSON() failed [pack_loss_ue_ids]");
418
0
                goto end;
419
0
            }
420
0
            OpenAPI_list_add(pack_loss_ue_idsList, ogs_strdup(pack_loss_ue_ids_local->valuestring));
421
0
        }
422
0
    }
423
424
0
    num_of_ue = cJSON_GetObjectItemCaseSensitive(perf_dataJSON, "numOfUe");
425
0
    if (num_of_ue) {
426
0
    if (!cJSON_IsNumber(num_of_ue)) {
427
0
        ogs_error("OpenAPI_perf_data_parseFromJSON() failed [num_of_ue]");
428
0
        goto end;
429
0
    }
430
0
    }
431
432
0
    perf_data_local_var = OpenAPI_perf_data_create (
433
0
        avg_traffic_rate && !cJSON_IsNull(avg_traffic_rate) ? ogs_strdup(avg_traffic_rate->valuestring) : NULL,
434
0
        max_traffic_rate && !cJSON_IsNull(max_traffic_rate) ? ogs_strdup(max_traffic_rate->valuestring) : NULL,
435
0
        min_traffic_rate && !cJSON_IsNull(min_traffic_rate) ? ogs_strdup(min_traffic_rate->valuestring) : NULL,
436
0
        agg_traffic_rate && !cJSON_IsNull(agg_traffic_rate) ? ogs_strdup(agg_traffic_rate->valuestring) : NULL,
437
0
        var_traffic_rate ? true : false,
438
0
        var_traffic_rate ? var_traffic_rate->valuedouble : 0,
439
0
        traf_rate_ue_ids ? traf_rate_ue_idsList : NULL,
440
0
        ave_packet_delay ? true : false,
441
0
        ave_packet_delay ? ave_packet_delay->valuedouble : 0,
442
0
        max_packet_delay ? true : false,
443
0
        max_packet_delay ? max_packet_delay->valuedouble : 0,
444
0
        var_packet_delay ? true : false,
445
0
        var_packet_delay ? var_packet_delay->valuedouble : 0,
446
0
        pack_delay_ue_ids ? pack_delay_ue_idsList : NULL,
447
0
        avg_packet_loss_rate ? true : false,
448
0
        avg_packet_loss_rate ? avg_packet_loss_rate->valuedouble : 0,
449
0
        max_packet_loss_rate ? true : false,
450
0
        max_packet_loss_rate ? max_packet_loss_rate->valuedouble : 0,
451
0
        var_packet_loss_rate ? true : false,
452
0
        var_packet_loss_rate ? var_packet_loss_rate->valuedouble : 0,
453
0
        pack_loss_ue_ids ? pack_loss_ue_idsList : NULL,
454
0
        num_of_ue ? true : false,
455
0
        num_of_ue ? num_of_ue->valuedouble : 0
456
0
    );
457
458
0
    return perf_data_local_var;
459
0
end:
460
0
    if (traf_rate_ue_idsList) {
461
0
        OpenAPI_list_for_each(traf_rate_ue_idsList, node) {
462
0
            ogs_free(node->data);
463
0
        }
464
0
        OpenAPI_list_free(traf_rate_ue_idsList);
465
0
        traf_rate_ue_idsList = NULL;
466
0
    }
467
0
    if (pack_delay_ue_idsList) {
468
0
        OpenAPI_list_for_each(pack_delay_ue_idsList, node) {
469
0
            ogs_free(node->data);
470
0
        }
471
0
        OpenAPI_list_free(pack_delay_ue_idsList);
472
0
        pack_delay_ue_idsList = NULL;
473
0
    }
474
0
    if (pack_loss_ue_idsList) {
475
0
        OpenAPI_list_for_each(pack_loss_ue_idsList, node) {
476
0
            ogs_free(node->data);
477
0
        }
478
0
        OpenAPI_list_free(pack_loss_ue_idsList);
479
0
        pack_loss_ue_idsList = NULL;
480
0
    }
481
0
    return NULL;
482
0
}
483
484
OpenAPI_perf_data_t *OpenAPI_perf_data_copy(OpenAPI_perf_data_t *dst, OpenAPI_perf_data_t *src)
485
0
{
486
0
    cJSON *item = NULL;
487
0
    char *content = NULL;
488
489
0
    ogs_assert(src);
490
0
    item = OpenAPI_perf_data_convertToJSON(src);
491
0
    if (!item) {
492
0
        ogs_error("OpenAPI_perf_data_convertToJSON() failed");
493
0
        return NULL;
494
0
    }
495
496
0
    content = cJSON_Print(item);
497
0
    cJSON_Delete(item);
498
499
0
    if (!content) {
500
0
        ogs_error("cJSON_Print() failed");
501
0
        return NULL;
502
0
    }
503
504
0
    item = cJSON_Parse(content);
505
0
    ogs_free(content);
506
0
    if (!item) {
507
0
        ogs_error("cJSON_Parse() failed");
508
0
        return NULL;
509
0
    }
510
511
0
    OpenAPI_perf_data_free(dst);
512
0
    dst = OpenAPI_perf_data_parseFromJSON(item);
513
0
    cJSON_Delete(item);
514
515
0
    return dst;
516
0
}
517