From 56829e15bdce24a3eb4f8dfa43355d4b25632c48 Mon Sep 17 00:00:00 2001 From: Amin Ben Romdhane <amin.benromdhane@iopsys.eu> Date: Fri, 24 May 2024 14:27:24 +0200 Subject: [PATCH] Data Model: Align with new reference APIs --- bbf_plugin/qos_bbf.c | 49 ++++++++++---------------------------------- 1 file changed, 11 insertions(+), 38 deletions(-) diff --git a/bbf_plugin/qos_bbf.c b/bbf_plugin/qos_bbf.c index 97d07f8..542a38f 100644 --- a/bbf_plugin/qos_bbf.c +++ b/bbf_plugin/qos_bbf.c @@ -381,30 +381,15 @@ static int get_QInterface(char *refparam, struct dmctx *ctx, void *data, char *i { char *linker = NULL; char buf[4096] = {0}; - int pos = 0; dmuci_get_value_by_section_string(((struct dm_data *)data)->config_section, "ifname", &linker); if (DM_STRLEN(linker) == 0) return 0; - bbf_get_reference_param("Device.IP.Interface.", "Name", linker, value); - if (DM_STRLEN(*value)) - pos += snprintf(&buf[pos], sizeof(buf) - pos, "%s,", *value); - - bbf_get_reference_param("Device.PPP.Interface.", "Name", linker, value); - if (DM_STRLEN(*value)) - pos += snprintf(&buf[pos], sizeof(buf) - pos, "%s,", *value); - - bbf_get_reference_param("Device.Ethernet.Interface.", "Name", linker, value); - if (DM_STRLEN(*value)) - pos += snprintf(&buf[pos], sizeof(buf) - pos, "%s,", *value); - - bbf_get_reference_param("Device.WiFi.Radio.", "Name", linker, value); - if (DM_STRLEN(*value)) - pos += snprintf(&buf[pos], sizeof(buf) - pos, "%s,", *value); - - if (pos) - buf[pos - 1] = 0; + bbfdm_get_references(ctx, MATCH_FIRST, "Device.IP.Interface.", "Name", linker, buf, sizeof(buf)); + bbfdm_get_references(ctx, MATCH_FIRST, "Device.PPP.Interface.", "Name", linker, buf, sizeof(buf)); + bbfdm_get_references(ctx, MATCH_FIRST, "Device.Ethernet.Interface.", "Name", linker, buf, sizeof(buf)); + bbfdm_get_references(ctx, MATCH_FIRST, "Device.WiFi.Radio.", "Name", linker, buf, sizeof(buf)); *value = dmstrdup(buf); return 0; @@ -420,7 +405,7 @@ static int set_QInterface(char *refparam, struct dmctx *ctx, void *data, char *i NULL}; struct dm_reference reference = {0}; - bbf_get_reference_args(value, &reference); + bbfdm_get_reference_linker(ctx, value, &reference); switch (action) { case VALUECHECK: @@ -1734,7 +1719,7 @@ static int get_QoSQueueStats_Queue(char *refparam, struct dmctx *ctx, void *data char *queue_link = NULL; dmuci_get_value_by_section_string((struct uci_section *)data, "queue", &queue_link); - bbf_get_reference_param("Device.QoS.Queue.", "Alias", queue_link, value); + _bbfdm_get_references(ctx, "Device.QoS.Queue.", "Alias", queue_link, value); return 0; } @@ -1743,7 +1728,7 @@ static int set_QoSQueueStats_Queue(char *refparam, struct dmctx *ctx, void *data char *allowed_objects[] = {"Device.QoS.Queue.", NULL}; struct dm_reference reference = {0}; - bbf_get_reference_args(value, &reference); + bbfdm_get_reference_linker(ctx, value, &reference); switch (action) { case VALUECHECK: @@ -1765,26 +1750,14 @@ static int get_QoSQueueStats_Interface(char *refparam, struct dmctx *ctx, void * { char *linker = NULL; char buf[4096] = {0}; - int pos = 0; dmuci_get_value_by_section_string((struct uci_section *)data, "interface", &linker); if (DM_STRLEN(linker) == 0) return 0; - bbf_get_reference_param("Device.Ethernet.Interface.", "Name", linker, value); - if (DM_STRLEN(*value)) - pos += snprintf(&buf[pos], sizeof(buf) - pos, "%s,", *value); - - bbf_get_reference_param("Device.IP.Interface.", "Name", linker, value); - if (DM_STRLEN(*value)) - pos += snprintf(&buf[pos], sizeof(buf) - pos, "%s,", *value); - - bbf_get_reference_param("Device.PPP.Interface.", "Name", linker, value); - if (DM_STRLEN(*value)) - pos += snprintf(&buf[pos], sizeof(buf) - pos, "%s,", *value); - - if (pos) - buf[pos - 1] = 0; + bbfdm_get_references(ctx, MATCH_FIRST, "Device.Ethernet.Interface.", "Name", linker, buf, sizeof(buf)); + bbfdm_get_references(ctx, MATCH_FIRST, "Device.IP.Interface.", "Name", linker, buf, sizeof(buf)); + bbfdm_get_references(ctx, MATCH_FIRST, "Device.PPP.Interface.", "Name", linker, buf, sizeof(buf)); *value = dmstrdup(buf); return 0; @@ -1799,7 +1772,7 @@ static int set_QoSQueueStats_Interface(char *refparam, struct dmctx *ctx, void * NULL}; struct dm_reference reference = {0}; - bbf_get_reference_args(value, &reference); + bbfdm_get_reference_linker(ctx, value, &reference); switch (action) { case VALUECHECK: -- GitLab