From 1b51a78b886ff1099128537437658ba7c140100f Mon Sep 17 00:00:00 2001 From: Amin Ben Romdhane <amin.benromdhane@iopsys.eu> Date: Fri, 7 Jun 2024 10:01:59 +0200 Subject: [PATCH] Align Device.QoS.QueueStats.{i}. to use dm_data --- bbf_plugin/qos_bbf.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/bbf_plugin/qos_bbf.c b/bbf_plugin/qos_bbf.c index 2dfc286..67fc0aa 100644 --- a/bbf_plugin/qos_bbf.c +++ b/bbf_plugin/qos_bbf.c @@ -78,7 +78,7 @@ static int browseQoSClassificationInst(struct dmctx *dmctx, DMNODE *parent_node, inst = handle_instance(dmctx, parent_node, curr_data->dmmap_section, "classify_instance", "classify_alias"); - if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)curr_data, inst) == DM_STOP) + if (DM_LINK_INST_OBJ(dmctx, parent_node, curr_data, inst) == DM_STOP) break; } free_dmmap_config_dup_list(&dup_list); @@ -96,7 +96,7 @@ static int browseQoSPolicerInst(struct dmctx *dmctx, DMNODE *parent_node, void * inst = handle_instance(dmctx, parent_node, curr_data->dmmap_section, "policer_instance", "policeralias"); - if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)curr_data, inst) == DM_STOP) + if (DM_LINK_INST_OBJ(dmctx, parent_node, curr_data, inst) == DM_STOP) break; } free_dmmap_config_dup_list(&dup_list); @@ -117,7 +117,7 @@ static int browseQoSQueueInst(struct dmctx *dmctx, DMNODE *parent_node, void *pr inst = handle_instance(dmctx, parent_node, curr_data->dmmap_section, "queueinstance", "queuealias"); - if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)curr_data, inst) == DM_STOP) + if (DM_LINK_INST_OBJ(dmctx, parent_node, curr_data, inst) == DM_STOP) break; } free_dmmap_config_dup_list(&dup_list); @@ -126,14 +126,17 @@ static int browseQoSQueueInst(struct dmctx *dmctx, DMNODE *parent_node, void *pr static int browseQoSQueueStatsInst(struct dmctx *dmctx, DMNODE *parent_node, void *prev_data, char *prev_instance) { + struct dm_data curr_data = {0}; struct uci_section *s = NULL; char *inst = NULL; uci_path_foreach_sections(bbfdm, "dmmap_qstats", "queue_stats", s) { + curr_data.config_section = s; + inst = handle_instance(dmctx, parent_node, s, "q_instance", "q_alias"); - if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)s, inst) == DM_STOP) + if (DM_LINK_INST_OBJ(dmctx, parent_node, &curr_data, inst) == DM_STOP) break; } return 0; @@ -150,7 +153,7 @@ static int browseQoSShaperInst(struct dmctx *dmctx, DMNODE *parent_node, void *p inst = handle_instance(dmctx, parent_node, curr_data->dmmap_section, "shaperinstance", "shaperalias"); - if (DM_LINK_INST_OBJ(dmctx, parent_node, (void *)curr_data, inst) == DM_STOP) + if (DM_LINK_INST_OBJ(dmctx, parent_node, curr_data, inst) == DM_STOP) break; } free_dmmap_config_dup_list(&dup_list); @@ -325,7 +328,7 @@ static int delObjQoSQueueStats(char *refparam, struct dmctx *ctx, void *data, ch switch (del_action) { case DEL_INST: - dmuci_delete_by_section((struct uci_section *)data, NULL, NULL); + dmuci_delete_by_section(((struct dm_data *)data)->config_section, NULL, NULL); break; case DEL_ALL: uci_path_foreach_sections_safe(bbfdm, "dmmap_qstats", "queue_stats", stmp, s) { @@ -1695,7 +1698,7 @@ static int set_QoSQueue_ShapingBurstSize(char *refparam, struct dmctx *ctx, void static int get_QoSQueueStats_Enable(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - *value = dmuci_get_value_by_section_fallback_def((struct uci_section *)data, "enabled", "0"); + *value = dmuci_get_value_by_section_fallback_def(((struct dm_data *)data)->config_section, "enabled", "0"); return 0; } @@ -1710,7 +1713,7 @@ static int set_QoSQueueStats_Enable(char *refparam, struct dmctx *ctx, void *dat break; case VALUESET: string_to_bool(value, &b); - dmuci_set_value_by_section((struct uci_section *)data, "enabled", b ? "1" : "0"); + dmuci_set_value_by_section(((struct dm_data *)data)->config_section, "enabled", b ? "1" : "0"); break; } return 0; @@ -1726,19 +1729,19 @@ static int get_QoSQueueStats_Status(char *refparam, struct dmctx *ctx, void *dat static int get_QoSQueueStats_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - return bbf_get_alias(ctx, (struct uci_section *)data, "alias", instance, value); + return bbf_get_alias(ctx, ((struct dm_data *)data)->config_section, "alias", instance, value); } static int set_QoSQueueStats_Alias(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) { - return bbf_set_alias(ctx, (struct uci_section *)data, "alias", instance, value); + return bbf_set_alias(ctx, ((struct dm_data *)data)->config_section, "alias", instance, value); } static int get_QoSQueueStats_Queue(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { char *queue_link = NULL; - dmuci_get_value_by_section_string((struct uci_section *)data, "queue", &queue_link); + dmuci_get_value_by_section_string(((struct dm_data *)data)->config_section, "queue", &queue_link); _bbfdm_get_references(ctx, "Device.QoS.Queue.", "Alias", queue_link, value); return 0; } @@ -1760,7 +1763,7 @@ static int set_QoSQueueStats_Queue(char *refparam, struct dmctx *ctx, void *data break; case VALUESET: - dmuci_set_value_by_section((struct uci_section *)data, "queue", reference.value); + dmuci_set_value_by_section(((struct dm_data *)data)->config_section, "queue", reference.value); break; } return 0; @@ -1771,7 +1774,7 @@ static int get_QoSQueueStats_Interface(char *refparam, struct dmctx *ctx, void * char *linker = NULL; char buf[4096] = {0}; - dmuci_get_value_by_section_string((struct uci_section *)data, "interface", &linker); + dmuci_get_value_by_section_string(((struct dm_data *)data)->config_section, "interface", &linker); if (DM_STRLEN(linker) == 0) return 0; @@ -1804,7 +1807,7 @@ static int set_QoSQueueStats_Interface(char *refparam, struct dmctx *ctx, void * break; case VALUESET: - dmuci_set_value_by_section((struct uci_section *)data, "interface", reference.value); + dmuci_set_value_by_section(((struct dm_data *)data)->config_section, "interface", reference.value); break; } return 0; @@ -1815,8 +1818,8 @@ static int get_QoSQueueStats_value(void *data, char *option, char **value) char *queue_link = NULL, *intf_link = NULL; *value = "0"; - dmuci_get_value_by_section_string((struct uci_section *)data, "queue", &queue_link); - dmuci_get_value_by_section_string((struct uci_section *)data, "interface", &intf_link); + dmuci_get_value_by_section_string(((struct dm_data *)data)->config_section, "queue", &queue_link); + dmuci_get_value_by_section_string(((struct dm_data *)data)->config_section, "interface", &intf_link); if (queue_link && *queue_link && intf_link && *intf_link) { json_object *res = NULL; -- GitLab