summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrice Buriez <patrice.buriez@intel.com>2019-06-12 18:39:15 +0200
committerPatrice Buriez <patrice.buriez@intel.com>2019-06-14 16:43:03 +0200
commit585612f163e1d434d9a21632d157dced5dc4a8c6 (patch)
tree56143c5962bbaa98b9fa3d21c6cd100538af2060
parentf7f4553772881fb4d49bd55d94c3fc3eaccc8403 (diff)
Add "total TX fail" count to "dp core stats" command output
Warning: This change breaks backward-compatibility of PROX socket scripting API, because the "total TX fail" count is reported before the "last TSC" field. As a result, PROX scripts that make use of the "dp core stats" command, such as the core_stats() method in helper-scripts/openstackrapid/prox_ctrl.py, MUST be reworked to correctly parse the returned set of fields. Change-Id: I3fe7f37dccee19f5f0b2719f262c6cfa7bad850f Signed-off-by: Xavier Simonart <xavier.simonart@intel.com> Signed-off-by: Patrice Buriez <patrice.buriez@intel.com>
-rw-r--r--VNFs/DPPD-PROX/cmd_parser.c9
-rw-r--r--VNFs/DPPD-PROX/stats_task.c5
-rw-r--r--VNFs/DPPD-PROX/stats_task.h1
3 files changed, 11 insertions, 4 deletions
diff --git a/VNFs/DPPD-PROX/cmd_parser.c b/VNFs/DPPD-PROX/cmd_parser.c
index 927abc2..4f79359 100644
--- a/VNFs/DPPD-PROX/cmd_parser.c
+++ b/VNFs/DPPD-PROX/cmd_parser.c
@@ -1657,6 +1657,7 @@ static int parse_cmd_dp_core_stats(const char *str, struct input *input)
lcore_id = lcores[i];
uint64_t tot_rx = stats_core_task_tot_rx(lcore_id, task_id);
uint64_t tot_tx = stats_core_task_tot_tx(lcore_id, task_id);
+ uint64_t tot_tx_fail = stats_core_task_tot_tx_fail(lcore_id, task_id);
uint64_t tot_rx_non_dp = stats_core_task_tot_rx_non_dp(lcore_id, task_id);
uint64_t tot_tx_non_dp = stats_core_task_tot_tx_non_dp(lcore_id, task_id);
uint64_t tot_drop = stats_core_task_tot_drop(lcore_id, task_id);
@@ -1665,13 +1666,13 @@ static int parse_cmd_dp_core_stats(const char *str, struct input *input)
if (input->reply) {
char buf[128];
snprintf(buf, sizeof(buf),
- "%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64"\n",
- tot_rx, tot_tx, tot_rx_non_dp, tot_tx_non_dp, tot_drop, last_tsc, rte_get_tsc_hz());
+ "%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64",%"PRIu64"\n",
+ tot_rx, tot_tx, tot_rx_non_dp, tot_tx_non_dp, tot_drop, tot_tx_fail, last_tsc, rte_get_tsc_hz());
input->reply(input, buf, strlen(buf));
}
else {
- plog_info("RX: %"PRIu64", TX: %"PRIu64", RX_NON_DP: %"PRIu64", TX_NON_DP: %"PRIu64", DROP: %"PRIu64"\n",
- tot_rx, tot_tx, tot_rx_non_dp, tot_tx_non_dp, tot_drop);
+ plog_info("RX: %"PRIu64", TX: %"PRIu64", RX_NON_DP: %"PRIu64", TX_NON_DP: %"PRIu64", DROP: %"PRIu64", TX_FAIL: %"PRIu64"\n",
+ tot_rx, tot_tx, tot_rx_non_dp, tot_tx_non_dp, tot_drop, tot_tx_fail);
}
}
}
diff --git a/VNFs/DPPD-PROX/stats_task.c b/VNFs/DPPD-PROX/stats_task.c
index 2aed772..3f13898 100644
--- a/VNFs/DPPD-PROX/stats_task.c
+++ b/VNFs/DPPD-PROX/stats_task.c
@@ -73,6 +73,11 @@ uint64_t stats_core_task_tot_tx(uint8_t lcore_id, uint8_t task_id)
return lcore_task_stats_all[lcore_id].task_stats[task_id].tot_tx_pkt_count;
}
+uint64_t stats_core_task_tot_tx_fail(uint8_t lcore_id, uint8_t task_id)
+{
+ return lcore_task_stats_all[lcore_id].task_stats[task_id].tot_drop_tx_fail;
+}
+
uint64_t stats_core_task_tot_drop(uint8_t lcore_id, uint8_t task_id)
{
return lcore_task_stats_all[lcore_id].task_stats[task_id].tot_drop_tx_fail +
diff --git a/VNFs/DPPD-PROX/stats_task.h b/VNFs/DPPD-PROX/stats_task.h
index 362b718..7dc54ea 100644
--- a/VNFs/DPPD-PROX/stats_task.h
+++ b/VNFs/DPPD-PROX/stats_task.h
@@ -153,6 +153,7 @@ void stats_task_get_host_rx_tx_packets(uint64_t *rx, uint64_t *tx, uint64_t *tsc
uint64_t stats_core_task_tot_rx(uint8_t lcore_id, uint8_t task_id);
uint64_t stats_core_task_tot_tx(uint8_t lcore_id, uint8_t task_id);
+uint64_t stats_core_task_tot_tx_fail(uint8_t lcore_id, uint8_t task_id);
uint64_t stats_core_task_tot_drop(uint8_t lcore_id, uint8_t task_id);
uint64_t stats_core_task_last_tsc(uint8_t lcore_id, uint8_t task_id);
uint64_t stats_core_task_tot_rx_non_dp(uint8_t lcore_id, uint8_t task_id);