Fix toeplitz initialization key and rss key len for mlx4
[samplevnf.git] / VNFs / DPPD-PROX / stats_parser.c
index aa9d674..c942807 100644 (file)
@@ -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;