X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=VNFs%2FDPPD-PROX%2Fstats_parser.c;h=c94280721f022fc43d2266ca73fb45cb7a09e744;hb=00f5630bf8a9a625a6ff4b35169a2f1f6ff23703;hp=aa9d6741b34fe12cf1c46819cca895a08bc65848;hpb=cb94e0036256c6a3fb0aadb682a04d8ad30ddd2a;p=samplevnf.git diff --git a/VNFs/DPPD-PROX/stats_parser.c b/VNFs/DPPD-PROX/stats_parser.c index aa9d6741..c9428072 100644 --- a/VNFs/DPPD-PROX/stats_parser.c +++ b/VNFs/DPPD-PROX/stats_parser.c @@ -30,6 +30,8 @@ #include "stats_latency.h" #include "stats_global.h" #include "stats_prio_task.h" +#include "stats_irq.h" +#include "prox_compat.h" struct stats_path_str { const char *str; @@ -108,6 +110,26 @@ static uint64_t sp_task_rx_prio(int argc, const char *argv[]) return stats_get_prio_task_stats_sample_by_core_task(c, t, 1)->rx_prio[atoi(argv[2])]; } +static uint64_t sp_task_max_irq(int argc, const char *argv[]) +{ + struct task_stats_sample *last; + uint32_t c, t; + + if (args_to_core_task(argv[0], argv[1], &c, &t)) + return -1; + return get_max_irq_stats_by_core_task(c, t); +} + +static uint64_t sp_task_irq(int argc, const char *argv[]) +{ + struct task_stats_sample *last; + uint32_t c, t; + + if (args_to_core_task(argv[0], argv[1], &c, &t)) + return -1; + return get_irq_stats_by_core_task(c, t, atoi(argv[2])); +} + static uint64_t sp_task_drop_discard(int argc, const char *argv[]) { struct task_stats_sample *last; @@ -128,6 +150,23 @@ static uint64_t sp_task_drop_handled(int argc, const char *argv[]) return stats_get_task_stats_sample(c, t, 1)->drop_handled; } +static uint64_t sp_task_rx_non_dp(int argc, const char *argv[]) +{ + struct task_stats_sample *last; + uint32_t c, t; + if (args_to_core_task(argv[0], argv[1], &c, &t)) + return -1; + return stats_get_task_stats_sample(c, t, 1)->rx_non_dp; +} + +static uint64_t sp_task_tx_non_dp(int argc, const char *argv[]) +{ + struct task_stats_sample *last; + uint32_t c, t; + if (args_to_core_task(argv[0], argv[1], &c, &t)) + return -1; + return stats_get_task_stats_sample(c, t, 1)->tx_non_dp; +} static uint64_t sp_task_rx_bytes(int argc, const char *argv[]) { return -1; @@ -767,6 +806,10 @@ struct stats_path_str stats_paths[] = { {"task.core(#).task(#).tsc", sp_task_tsc}, {"task.core(#).task(#).drop.tx_fail_prio(#)", sp_task_drop_tx_fail_prio}, {"task.core(#).task(#).rx_prio(#)", sp_task_rx_prio}, + {"task.core(#).task(#).max_irq", sp_task_max_irq}, + {"task.core(#).task(#).irq(#)", sp_task_irq}, + {"task.core(#).task(#).rx_non_dp", sp_task_rx_non_dp}, + {"task.core(#).task(#).tx_non_dp", sp_task_tx_non_dp}, {"port(#).no_mbufs", sp_port_no_mbufs}, {"port(#).ierrors", sp_port_ierrors}, @@ -868,7 +911,7 @@ uint64_t stats_parser_get(const char *stats_path) char stats_path_cpy[128]; - strncpy(stats_path_cpy, stats_path, sizeof(stats_path_cpy)); + prox_strncpy(stats_path_cpy, stats_path, sizeof(stats_path_cpy)); stats_path_len = strlen(stats_path); size_t max_argc = 16;