From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <xutaosun@shecgisg004.sh.intel.com>
Received: from mga11.intel.com (mga11.intel.com [192.55.52.93])
 by dpdk.org (Postfix) with ESMTP id 950195963
 for <dev@dpdk.org>; Thu, 29 Oct 2015 09:02:43 +0100 (CET)
Received: from fmsmga001.fm.intel.com ([10.253.24.23])
 by fmsmga102.fm.intel.com with ESMTP; 29 Oct 2015 01:02:42 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.20,213,1444719600"; d="scan'208";a="822096186"
Received: from shvmail01.sh.intel.com ([10.239.29.42])
 by fmsmga001.fm.intel.com with ESMTP; 29 Oct 2015 01:02:42 -0700
Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com
 [10.239.29.89])
 by shvmail01.sh.intel.com with ESMTP id t9T82cDg022043;
 Thu, 29 Oct 2015 16:02:38 +0800
Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1])
 by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id
 t9T82Yis028060; Thu, 29 Oct 2015 16:02:36 +0800
Received: (from xutaosun@localhost)
 by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t9T82YtK028056;
 Thu, 29 Oct 2015 16:02:34 +0800
From: Xutao Sun <xutao.sun@intel.com>
To: dev@dpdk.org
Date: Thu, 29 Oct 2015 16:02:30 +0800
Message-Id: <1446105751-28018-2-git-send-email-xutao.sun@intel.com>
X-Mailer: git-send-email 1.7.4.1
In-Reply-To: <1446105751-28018-1-git-send-email-xutao.sun@intel.com>
References: <1446096966-31815-1-git-send-email-xutao.sun@intel.com>
 <1446105751-28018-1-git-send-email-xutao.sun@intel.com>
Subject: [dpdk-dev] [PATCH v3 1/2] i40e: Fix the statistics issue of i40e
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 29 Oct 2015 08:02:44 -0000

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.

Signed-off-by: Xutao Sun <xutao.sun@intel.com>
---
v2:
 - reword comments

 drivers/net/i40e/i40e_ethdev.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 40b0526..5e20fa7 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -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 *******************");
-- 
1.9.3