From patchwork Wed Jan 20 12:44:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Rybchenko X-Patchwork-Id: 86975 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C8DA1A0A05; Wed, 20 Jan 2021 13:44:52 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6E629140D05; Wed, 20 Jan 2021 13:44:52 +0100 (CET) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 8D05B140D03 for ; Wed, 20 Jan 2021 13:44:51 +0100 (CET) Received: by shelob.oktetlabs.ru (Postfix, from userid 122) id 232247F5E4; Wed, 20 Jan 2021 15:44:51 +0300 (MSK) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shelob.oktetlabs.ru X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_DISCARD autolearn=no autolearn_force=no version=3.4.2 Received: from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17]) by shelob.oktetlabs.ru (Postfix) with ESMTP id 6CC747F59B; Wed, 20 Jan 2021 15:44:47 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 6CC747F59B Authentication-Results: shelob.oktetlabs.ru/6CC747F59B; dkim=none; dkim-atps=neutral From: Andrew Rybchenko To: Thomas Monjalon , Ferruh Yigit Cc: dev@dpdk.org, Stephen Hemminger , Viacheslav Galaktionov Date: Wed, 20 Jan 2021 15:44:17 +0300 Message-Id: <20210120124418.2745343-1-andrew.rybchenko@oktetlabs.ru> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 1/2] ethdev: clarify what is included in generic byte statistics X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Viacheslav Galaktionov Different hardware gathers statistics differently, so some general rules need to be established. Signed-off-by: Viacheslav Galaktionov Signed-off-by: Andrew Rybchenko Reviewed-by: Ferruh Yigit --- lib/librte_ethdev/rte_ethdev.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index f5f8919186..a2dce7c161 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -240,6 +240,9 @@ void rte_eth_iterator_cleanup(struct rte_dev_iterator *iter); * Not all statistics fields in struct rte_eth_stats are supported * by any type of network interface card (NIC). If any statistics * field is not supported, its value is 0. + * All byte-related statistics do not include Ethernet FCS regardless + * of whether these bytes have been delivered to the application + * (see DEV_RX_OFFLOAD_KEEP_CRC). */ struct rte_eth_stats { uint64_t ipackets; /**< Total number of successfully received packets. */ From patchwork Wed Jan 20 12:44:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Rybchenko X-Patchwork-Id: 86976 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A16C2A0A05; Wed, 20 Jan 2021 13:44:58 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 74203140D12; Wed, 20 Jan 2021 13:44:56 +0100 (CET) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id B7F88140D12; Wed, 20 Jan 2021 13:44:54 +0100 (CET) Received: by shelob.oktetlabs.ru (Postfix, from userid 122) id 7E9817F5E4; Wed, 20 Jan 2021 15:44:54 +0300 (MSK) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shelob.oktetlabs.ru X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_DISCARD autolearn=no autolearn_force=no version=3.4.2 Received: from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17]) by shelob.oktetlabs.ru (Postfix) with ESMTP id C98997F5D8; Wed, 20 Jan 2021 15:44:47 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru C98997F5D8 Authentication-Results: shelob.oktetlabs.ru/C98997F5D8; dkim=none; dkim-atps=neutral From: Andrew Rybchenko To: Andrew Lee , Robert Stonehouse Cc: dev@dpdk.org, Stephen Hemminger , Viacheslav Galaktionov , stable@dpdk.org Date: Wed, 20 Jan 2021 15:44:18 +0300 Message-Id: <20210120124418.2745343-2-andrew.rybchenko@oktetlabs.ru> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210120124418.2745343-1-andrew.rybchenko@oktetlabs.ru> References: <20210120124418.2745343-1-andrew.rybchenko@oktetlabs.ru> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 2/2] net/sfc: fix generic byte statistics to exclude FCS bytes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Viacheslav Galaktionov Generic byte statistics should not include Ethernet FCS bytes. Fixes: 1caab2f1e684 ("net/sfc: add basic statistics") Cc: stable@dpdk.org Signed-off-by: Viacheslav Galaktionov Signed-off-by: Andrew Rybchenko --- drivers/net/sfc/sfc_ethdev.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index 93fc7baa0d..f5007c84ad 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -640,10 +640,19 @@ sfc_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) mac_stats[EFX_MAC_VADAPTER_TX_BROADCAST_BYTES]; stats->imissed = mac_stats[EFX_MAC_VADAPTER_RX_BAD_PACKETS]; stats->oerrors = mac_stats[EFX_MAC_VADAPTER_TX_BAD_PACKETS]; + + /* CRC is included in these stats, but shouldn't be */ + stats->ibytes -= stats->ipackets * RTE_ETHER_CRC_LEN; + stats->obytes -= stats->opackets * RTE_ETHER_CRC_LEN; } else { stats->opackets = mac_stats[EFX_MAC_TX_PKTS]; stats->ibytes = mac_stats[EFX_MAC_RX_OCTETS]; stats->obytes = mac_stats[EFX_MAC_TX_OCTETS]; + + /* CRC is included in these stats, but shouldn't be */ + stats->ibytes -= mac_stats[EFX_MAC_RX_PKTS] * RTE_ETHER_CRC_LEN; + stats->obytes -= mac_stats[EFX_MAC_TX_PKTS] * RTE_ETHER_CRC_LEN; + /* * Take into account stats which are whenever supported * on EF10. If some stat is not supported by current