diff options
author | Patrice Buriez <patrice.buriez@intel.com> | 2019-06-12 18:39:15 +0200 |
---|---|---|
committer | Patrice Buriez <patrice.buriez@intel.com> | 2019-06-14 16:43:03 +0200 |
commit | 585612f163e1d434d9a21632d157dced5dc4a8c6 (patch) | |
tree | 56143c5962bbaa98b9fa3d21c6cd100538af2060 | |
parent | f7f4553772881fb4d49bd55d94c3fc3eaccc8403 (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.c | 9 | ||||
-rw-r--r-- | VNFs/DPPD-PROX/stats_task.c | 5 | ||||
-rw-r--r-- | VNFs/DPPD-PROX/stats_task.h | 1 |
3 files changed, 11 insertions, 4 deletions
diff --git a/VNFs/DPPD-PROX/cmd_parser.c b/VNFs/DPPD-PROX/cmd_parser.c index 927abc29..4f79359a 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 2aed7720..3f138982 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 362b718c..7dc54eab 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); |