[dpdk-dev,v4] i40e: Fix the statistics issue of i40e
Commit Message
The old statistics on i40e only counted the packets on ports.
So the discarding packets on VSI were not counted.
This patch is to make statistics for packets both on ports and VSI.
Also update release notes.
Signed-off-by: Xutao Sun <xutao.sun@intel.com>
---
v2:
- reword comments
v3:
- update release notes
v4:
- fix the wrong release notes and move the doc as part of this patch
doc/guides/rel_notes/release_2_2.rst | 4 ++++
drivers/net/i40e/i40e_ethdev.c | 23 ++++++++++++++---------
2 files changed, 18 insertions(+), 9 deletions(-)
@@ -8,6 +8,10 @@ New Features
Resolved Issues
---------------
+* **i40e: Fix statistics of packets.**
+
+ Add discarding packets on VSI to the stats and rectify the old statistics.
+
Known Issues
------------
@@ -1511,21 +1511,26 @@ i40e_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
if (pf->main_vsi)
i40e_update_vsi_stats(pf->main_vsi);
- stats->ipackets = ns->eth.rx_unicast + ns->eth.rx_multicast +
- ns->eth.rx_broadcast;
- stats->opackets = ns->eth.tx_unicast + ns->eth.tx_multicast +
- ns->eth.tx_broadcast;
- stats->ibytes = ns->eth.rx_bytes;
- stats->obytes = ns->eth.tx_bytes;
- stats->oerrors = ns->eth.tx_errors;
- stats->imcasts = ns->eth.rx_multicast;
+ stats->ipackets = pf->main_vsi->eth_stats.rx_unicast +
+ pf->main_vsi->eth_stats.rx_multicast +
+ pf->main_vsi->eth_stats.rx_broadcast -
+ pf->main_vsi->eth_stats.rx_discards;
+ stats->opackets = pf->main_vsi->eth_stats.tx_unicast +
+ pf->main_vsi->eth_stats.tx_multicast +
+ pf->main_vsi->eth_stats.tx_broadcast;
+ stats->ibytes = pf->main_vsi->eth_stats.rx_bytes;
+ stats->obytes = pf->main_vsi->eth_stats.tx_bytes;
+ stats->oerrors = ns->eth.tx_errors +
+ pf->main_vsi->eth_stats.tx_errors;
+ stats->imcasts = pf->main_vsi->eth_stats.rx_multicast;
stats->fdirmatch = ns->fd_sb_match;
/* Rx Errors */
stats->ibadcrc = ns->crc_errors;
stats->ibadlen = ns->rx_length_errors + ns->rx_undersize +
ns->rx_oversize + ns->rx_fragments + ns->rx_jabber;
- stats->imissed = ns->eth.rx_discards;
+ stats->imissed = ns->eth.rx_discards +
+ pf->main_vsi->eth_stats.rx_discards;
stats->ierrors = stats->ibadcrc + stats->ibadlen + stats->imissed;
PMD_DRV_LOG(DEBUG, "***************** PF stats start *******************");