Commit d744cedf authored by Dimitris Lampridis's avatar Dimitris Lampridis Committed by Dimitris Lampridis

sw: add wrtd_reset_rule_stats()

parent a0d2fba5
......@@ -1166,3 +1166,28 @@ enum wrtd_status wrtd_disable_all_alarms(struct wrtd_dev *wrtd)
}
return WRTD_SUCCESS;
}
enum wrtd_status wrtd_reset_rule_stats(struct wrtd_dev *wrtd,
const char *rep_cap_id)
{
enum wrtd_status status;
unsigned idx;
struct wrtd_rule *rule;
status = wrtd_find_rule(wrtd, rep_cap_id, &idx);
WRTD_RETURN_IF_ERROR(status);
rule = &wrtd->rules[idx].rule;
if (rule->conf.enabled)
return wrtd_return_error(wrtd, WRTD_ERROR_RULE_ENABLED,
"rule is enabled");
/* Clear stats. */
memset(&rule->stat, 0, sizeof(struct wrtd_rule_stats));
/* Write-back. */
status = wrtd_write_rule(wrtd, idx);
WRTD_RETURN_IF_ERROR(status);
return WRTD_SUCCESS;
}
......@@ -765,6 +765,27 @@ static enum wrtd_status wrtd_cmd_del_rule(struct wrtd_dev *wrtd,
return WRTD_SUCCESS;
}
static enum wrtd_status wrtd_cmd_reset_rule_stats(struct wrtd_dev *wrtd,
int argc, char *argv[])
{
const char *id;
enum wrtd_status status;
if (argc != 1) {
fprintf(stderr, "missing rule name\n");
/* Don't print another message. */
return WRTD_SUCCESS;
}
id = argv[0];
status = wrtd_reset_rule_stats(wrtd, id);
WRTD_RETURN_IF_ERROR(status);
return WRTD_SUCCESS;
}
static enum wrtd_status wrtd_cmd_set_log(struct wrtd_dev *wrtd,
int argc, char *argv[])
{
......@@ -832,6 +853,8 @@ static struct wrtd_commands cmds[] = {
wrtd_cmd_disable_rule },
{ "del-rule", "<name>", "delete a rule",
wrtd_cmd_del_rule },
{ "reset-rule-stats", "<name", "reset rule statistics",
wrtd_cmd_reset_rule_stats },
{ "set-log", "on/off", "enable or disable log",
wrtd_cmd_set_log },
#if 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment