struct rte_tel_data *spd4_data = rte_tel_data_alloc();
struct rte_tel_data *spd6_data = rte_tel_data_alloc();
struct rte_tel_data *sad_data = rte_tel_data_alloc();
-
unsigned int coreid = UINT32_MAX;
+ int rc = 0;
/* verify allocated telemetry data structures */
- if (!spd4_data || !spd6_data || !sad_data)
- return -ENOMEM;
+ if (!spd4_data || !spd6_data || !sad_data) {
+ rc = -ENOMEM;
+ goto exit;
+ }
/* initialize telemetry data structs as dicts */
rte_tel_data_start_dict(data);
if (params) {
coreid = (uint32_t)atoi(params);
- if (rte_lcore_is_enabled(coreid) == 0)
- return -EINVAL;
+ if (rte_lcore_is_enabled(coreid) == 0) {
+ rc = -EINVAL;
+ goto exit;
+ }
}
update_statistics(&total_stats, coreid);
rte_tel_data_add_dict_container(data, "sad", sad_data, 0);
- return 0;
+exit:
+ if (rc) {
+ rte_tel_data_free(spd4_data);
+ rte_tel_data_free(spd6_data);
+ rte_tel_data_free(sad_data);
+ }
+ return rc;
}
static int
struct rte_tel_data *spd4_data = rte_tel_data_alloc();
struct rte_tel_data *spd6_data = rte_tel_data_alloc();
struct rte_tel_data *sad_data = rte_tel_data_alloc();
-
unsigned int coreid = UINT32_MAX;
+ int rc = 0;
/* verify allocated telemetry data structures */
- if (!spd4_data || !spd6_data || !sad_data)
- return -ENOMEM;
+ if (!spd4_data || !spd6_data || !sad_data) {
+ rc = -ENOMEM;
+ goto exit;
+ }
/* initialize telemetry data structs as dicts */
rte_tel_data_start_dict(data);
if (params) {
coreid = (uint32_t)atoi(params);
- if (rte_lcore_is_enabled(coreid) == 0)
- return -EINVAL;
+ if (rte_lcore_is_enabled(coreid) == 0) {
+ rc = -EINVAL;
+ goto exit;
+ }
}
update_statistics(&total_stats, coreid);
rte_tel_data_add_dict_container(data, "spd6", spd6_data, 0);
- return 0;
+exit:
+ if (rc) {
+ rte_tel_data_free(spd4_data);
+ rte_tel_data_free(spd6_data);
+ rte_tel_data_free(sad_data);
+ }
+ return rc;
}
static int
struct rte_tel_data *lpm4_data = rte_tel_data_alloc();
struct rte_tel_data *lpm6_data = rte_tel_data_alloc();
-
unsigned int coreid = UINT32_MAX;
+ int rc = 0;
+
+ /* verify allocated telemetry data structures */
+ if (!lpm4_data || !lpm6_data) {
+ rc = -ENOMEM;
+ goto exit;
+ }
/* initialize telemetry data structs as dicts */
rte_tel_data_start_dict(data);
if (params) {
coreid = (uint32_t)atoi(params);
- if (rte_lcore_is_enabled(coreid) == 0)
- return -EINVAL;
+ if (rte_lcore_is_enabled(coreid) == 0) {
+ rc = -EINVAL;
+ goto exit;
+ }
}
update_statistics(&total_stats, coreid);
rte_tel_data_add_dict_container(data, "IPv6 LPM", lpm6_data, 0);
- return 0;
+exit:
+ if (rc) {
+ rte_tel_data_free(lpm4_data);
+ rte_tel_data_free(lpm6_data);
+ }
+ return rc;
}
static void