From patchwork Tue Jun 11 13:06:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liron Himi X-Patchwork-Id: 54653 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D887C1C3AB; Tue, 11 Jun 2019 12:53:44 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 8C6471C385 for ; Tue, 11 Jun 2019 12:53:40 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x5BAf4fh019518; Tue, 11 Jun 2019 03:53:39 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=pfpt0818; bh=4lvuZfZFrL/kAiNakZSfadWdmQtcacO2eRLdfKDQOno=; b=I73KUHX34hX4uYhz97a7Q0vcG4/yxh/yR0I22av5Wr3EZ9BWtnMmEpErRyTVEkvlGmnU nvn7ujrOiWe9ztN0wLIxgHf7so0eGA0zE/Jk6Z0GaVZUWLgX+5Kqupz4ytWwwqykfIVu aEk3rlK2MfPmYCqAekZkOiYLar3Mu7RwJ8pE42JJaw26XJpVCG5UBRL/0NZfnUd0ln9w 4AP9E3VmEuewwbSVLj142w2pqLG9rBnTDwplcWL9CexGAqkQDo8CCvwCe+h366JyznNz 5Vak051ZLbIrYB3Uqmhud7q9Agp5YL3gMKu/6BPTbyrae72iCTE5D4kgklvx0uN/e2rf Ow== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 2t20f4tb7r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 11 Jun 2019 03:53:38 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 11 Jun 2019 03:53:36 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 11 Jun 2019 03:53:36 -0700 Received: from pt-lxl0023.marvell.com (pt-lxl0023.marvell.com [10.5.213.12]) by maili.marvell.com (Postfix) with ESMTP id 931C33F7044; Tue, 11 Jun 2019 03:53:35 -0700 (PDT) From: To: CC: , , Liron Himi Date: Tue, 11 Jun 2019 16:06:45 +0300 Message-ID: <1560258407-26378-2-git-send-email-lironh@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1560258407-26378-1-git-send-email-lironh@marvell.com> References: <1560258407-26378-1-git-send-email-lironh@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-06-11_05:, , signatures=0 Subject: [dpdk-dev] [PATCH 1/3] net/mvneta: fix: ierror counted twice X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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: Liron Himi Change-Id: Ieaac221e774e4caf1f9105e6761540df04313d4f Signed-off-by: Liron Himi Reviewed-by: Yuri Chipchev Tested-by: Liron Himi --- drivers/net/mvneta/mvneta_ethdev.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/net/mvneta/mvneta_ethdev.c b/drivers/net/mvneta/mvneta_ethdev.c index 9657444..d6e64a8 100644 --- a/drivers/net/mvneta/mvneta_ethdev.c +++ b/drivers/net/mvneta/mvneta_ethdev.c @@ -707,10 +707,7 @@ mvneta_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) stats->imissed += ppio_stats.rx_discard + ppio_stats.rx_overrun - priv->prev_stats.imissed; - - stats->ierrors = ppio_stats.rx_packets_err + - ppio_stats.rx_errors + - ppio_stats.rx_crc_error - + stats->ierrors = ppio_stats.rx_packets_err - priv->prev_stats.ierrors; stats->oerrors = ppio_stats.tx_errors - priv->prev_stats.oerrors; From patchwork Tue Jun 11 13:06:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liron Himi X-Patchwork-Id: 54652 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8F3BE1C39A; Tue, 11 Jun 2019 12:53:41 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id E5D4C1C385 for ; Tue, 11 Jun 2019 12:53:39 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x5BAZSEE007574; Tue, 11 Jun 2019 03:53:39 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=pfpt0818; bh=dtRoUnueGtqY+gfIT6L1DDUfazMqdq8z/CbGGty6gMU=; b=wYRX8YX2hEPHJbOPonE7l0CDchotNqENDFdHsB6koZo0jnnhNqA3LZMXC4/ZbMjT8PXh 0aYuUzVunUluv7gAJQ50D6BofzB7blVnO9XOeT+fGNHopGgHQ4ZEveJ2DD53ZSuEyfh2 CiZoh/kHNhuoXnMDJfZXPZ/RA9f8iYYCkfqsbvdf97TorHqRWjSlf47fooyYRSzpKczc pU2NCOzMwjRm7S3vlkRw/v5UZoMnbdVk/ycYV1fS/QDj8A8aFrPYMgmCKb6HFYvcLlU/ aF1KnKgP17dDqbYUczIsk43sUg0k/S2HqZjFD+OqVO9lCM4+9OUu0E6lUCnV9WNINCQ8 vg== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0a-0016f401.pphosted.com with ESMTP id 2t29sc89a4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 11 Jun 2019 03:53:38 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 11 Jun 2019 03:53:38 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 11 Jun 2019 03:53:38 -0700 Received: from pt-lxl0023.marvell.com (pt-lxl0023.marvell.com [10.5.213.12]) by maili.marvell.com (Postfix) with ESMTP id 09BDC3F7043; Tue, 11 Jun 2019 03:53:36 -0700 (PDT) From: To: CC: , , Yuri Chipchev Date: Tue, 11 Jun 2019 16:06:46 +0300 Message-ID: <1560258407-26378-3-git-send-email-lironh@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1560258407-26378-1-git-send-email-lironh@marvell.com> References: <1560258407-26378-1-git-send-email-lironh@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-06-11_05:, , signatures=0 Subject: [dpdk-dev] [PATCH 2/3] net/mvneta: reset stats during device start X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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: Yuri Chipchev Change-Id: I5e46a1c930759d059816fa851697df95f7333b51 Signed-off-by: Yuri Chipchev Reviewed-by: Liron Himi Tested-by: Yuri Chipchev --- drivers/net/mvneta/mvneta_ethdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/mvneta/mvneta_ethdev.c b/drivers/net/mvneta/mvneta_ethdev.c index d6e64a8..f324d93 100644 --- a/drivers/net/mvneta/mvneta_ethdev.c +++ b/drivers/net/mvneta/mvneta_ethdev.c @@ -57,6 +57,8 @@ struct mvneta_ifnames { static int mvneta_dev_num; +static void mvneta_stats_reset(struct rte_eth_dev *dev); + /** * Deinitialize packet processor. */ @@ -359,6 +361,8 @@ mvneta_dev_start(struct rte_eth_dev *dev) } priv->ppio_id = priv->ppio->port_id; + mvneta_stats_reset(dev); + /* * In case there are some some stale uc/mc mac addresses flush them * here. It cannot be done during mvneta_dev_close() as port information From patchwork Tue Jun 11 13:06:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liron Himi X-Patchwork-Id: 54655 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 28F531C3C4; Tue, 11 Jun 2019 12:54:04 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 448401C3BB for ; Tue, 11 Jun 2019 12:54:01 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x5BAeSSc018731; Tue, 11 Jun 2019 03:54:00 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=pfpt0818; bh=8kO7KNQDlTjbi5fPvufOHqEKTCg9OLsHGOGAPLIBg2E=; b=f7pup+gqyCCTGYI9U3CrTXu5ZuEzc93+dd2DKfVbyItK94IyVhLjbQbuZhWQGTacpNXa 5fYkoRIfW5FUgOGdR2cPzBXrtjI+Z+Wl8IqTSqyTp6Tbolgyf6p2EcjAn6YIretx6Lk6 pecSXVlKv2ONghsR+fRLmh2IoinMZ2p71p/GGhBnk2Qvn9wzdwGdyhQr5fmuQou0it5J M5L9jKCT2E5bDiVWl6NryfJbSX7Fzy0iJ5M0RFYnBh8yGgvlpnroephQAy7gP75oRt0l gUOipeekZQ3gzT7HHkY0SmMswT3jCIdyDT3u1QFQiy7IAmKV/Baj4aTsICy5YRI4XBg3 0w== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2t20f4tb5s-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 11 Jun 2019 03:54:00 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 11 Jun 2019 03:53:39 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 11 Jun 2019 03:53:39 -0700 Received: from pt-lxl0023.marvell.com (pt-lxl0023.marvell.com [10.5.213.12]) by maili.marvell.com (Postfix) with ESMTP id 73C4B3F7040; Tue, 11 Jun 2019 03:53:38 -0700 (PDT) From: To: CC: , , Liron Himi Date: Tue, 11 Jun 2019 16:06:47 +0300 Message-ID: <1560258407-26378-4-git-send-email-lironh@marvell.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1560258407-26378-1-git-send-email-lironh@marvell.com> References: <1560258407-26378-1-git-send-email-lironh@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-06-11_05:, , signatures=0 Subject: [dpdk-dev] [PATCH 3/3] net/mvneta: only use ol_flags for checksum generation offload X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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: Liron Himi Change-Id: I3b9c6360c885043d74c1a7a11d38268b61dae8d5 Signed-off-by: Liron Himi Reviewed-by: Yuri Chipchev Tested-by: Liron Himi --- drivers/net/mvneta/mvneta_ethdev.c | 9 ------ drivers/net/mvneta/mvneta_ethdev.h | 14 +++++++++ drivers/net/mvneta/mvneta_rxtx.c | 62 ++++++++++++++------------------------ 3 files changed, 36 insertions(+), 49 deletions(-) diff --git a/drivers/net/mvneta/mvneta_ethdev.c b/drivers/net/mvneta/mvneta_ethdev.c index f324d93..d46a13b 100644 --- a/drivers/net/mvneta/mvneta_ethdev.c +++ b/drivers/net/mvneta/mvneta_ethdev.c @@ -27,15 +27,6 @@ #define MVNETA_IFACE_NAME_ARG "iface" -#define MVNETA_RX_OFFLOADS (DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_CHECKSUM) - -/** Port Tx offloads capabilities */ -#define MVNETA_TX_OFFLOADS (DEV_TX_OFFLOAD_IPV4_CKSUM | \ - DEV_TX_OFFLOAD_UDP_CKSUM | \ - DEV_TX_OFFLOAD_TCP_CKSUM | \ - DEV_TX_OFFLOAD_MULTI_SEGS) - #define MVNETA_PKT_SIZE_MAX (16382 - MV_MH_SIZE) /* 9700B */ #define MVNETA_DEFAULT_MTU 1500 diff --git a/drivers/net/mvneta/mvneta_ethdev.h b/drivers/net/mvneta/mvneta_ethdev.h index d892d6c..ef80677 100644 --- a/drivers/net/mvneta/mvneta_ethdev.h +++ b/drivers/net/mvneta/mvneta_ethdev.h @@ -53,6 +53,20 @@ #define MRVL_NETA_MTU_TO_MRU(mtu) ((mtu) + MRVL_NETA_HDRS_LEN) #define MRVL_NETA_MRU_TO_MTU(mru) ((mru) - MRVL_NETA_HDRS_LEN) +/** Rx offloads capabilities */ +#define MVNETA_RX_OFFLOADS (DEV_RX_OFFLOAD_JUMBO_FRAME | \ + DEV_RX_OFFLOAD_CHECKSUM) + +/** Tx offloads capabilities */ +#define MVNETA_TX_OFFLOAD_CHECKSUM (DEV_TX_OFFLOAD_IPV4_CKSUM | \ + DEV_TX_OFFLOAD_UDP_CKSUM | \ + DEV_TX_OFFLOAD_TCP_CKSUM) +#define MVNETA_TX_OFFLOADS (MVNETA_TX_OFFLOAD_CHECKSUM | \ + DEV_TX_OFFLOAD_MULTI_SEGS) + +#define MVNETA_TX_PKT_OFFLOADS (PKT_TX_IP_CKSUM | \ + PKT_TX_TCP_CKSUM | \ + PKT_TX_UDP_CKSUM) struct mvneta_priv { /* Hot fields, used in fast path. */ diff --git a/drivers/net/mvneta/mvneta_rxtx.c b/drivers/net/mvneta/mvneta_rxtx.c index 62caa68..10b6f57 100644 --- a/drivers/net/mvneta/mvneta_rxtx.c +++ b/drivers/net/mvneta/mvneta_rxtx.c @@ -280,8 +280,6 @@ mvneta_desc_to_packet_type_and_offset(struct neta_ppio_desc *desc, * * @param ol_flags * Offload flags. - * @param packet_type - * Packet type bitfield. * @param l3_type * Pointer to the neta_ouq_l3_type structure. * @param l4_type @@ -290,41 +288,34 @@ mvneta_desc_to_packet_type_and_offset(struct neta_ppio_desc *desc, * Will be set to 1 in case l3 checksum is computed. * @param l4_cksum * Will be set to 1 in case l4 checksum is computed. - * - * @return - * 0 on success, negative error value otherwise. */ -static inline int -mvneta_prepare_proto_info(uint64_t ol_flags, uint32_t packet_type, - enum neta_outq_l3_type *l3_type, - enum neta_outq_l4_type *l4_type, - int *gen_l3_cksum, - int *gen_l4_cksum) +static inline void +mvneta_prepare_proto_info(uint64_t ol_flags, + enum neta_outq_l3_type *l3_type, + enum neta_outq_l4_type *l4_type, + int *gen_l3_cksum, + int *gen_l4_cksum) { /* * Based on ol_flags prepare information * for neta_ppio_outq_desc_set_proto_info() which setups descriptor * for offloading. + * in most of the checksum cases ipv4 must be set, so this is the + * default value */ - if (ol_flags & PKT_TX_IPV4) { - *l3_type = NETA_OUTQ_L3_TYPE_IPV4; - *gen_l3_cksum = ol_flags & PKT_TX_IP_CKSUM ? 1 : 0; - } else if (ol_flags & PKT_TX_IPV6) { + *l3_type = NETA_OUTQ_L3_TYPE_IPV4; + *gen_l3_cksum = ol_flags & PKT_TX_IP_CKSUM ? 1 : 0; + + if (ol_flags & PKT_TX_IPV6) { *l3_type = NETA_OUTQ_L3_TYPE_IPV6; /* no checksum for ipv6 header */ *gen_l3_cksum = 0; - } else { - /* if something different then stop processing */ - return -1; } - ol_flags &= PKT_TX_L4_MASK; - if ((packet_type & RTE_PTYPE_L4_TCP) && - ol_flags == PKT_TX_TCP_CKSUM) { + if (ol_flags & PKT_TX_TCP_CKSUM) { *l4_type = NETA_OUTQ_L4_TYPE_TCP; *gen_l4_cksum = 1; - } else if ((packet_type & RTE_PTYPE_L4_UDP) && - ol_flags == PKT_TX_UDP_CKSUM) { + } else if (ol_flags & PKT_TX_UDP_CKSUM) { *l4_type = NETA_OUTQ_L4_TYPE_UDP; *gen_l4_cksum = 1; } else { @@ -332,8 +323,6 @@ mvneta_prepare_proto_info(uint64_t ol_flags, uint32_t packet_type, /* no checksum for other type */ *gen_l4_cksum = 0; } - - return 0; } /** @@ -385,8 +374,7 @@ mvneta_tx_pkt_burst(void *txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) struct mvneta_txq *q = txq; struct mvneta_shadow_txq *sq; struct neta_ppio_desc descs[nb_pkts]; - - int i, ret, bytes_sent = 0; + int i, bytes_sent = 0; uint16_t num, sq_free_size; uint64_t addr; @@ -419,13 +407,10 @@ mvneta_tx_pkt_burst(void *txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) bytes_sent += rte_pktmbuf_pkt_len(mbuf); - ret = mvneta_prepare_proto_info(mbuf->ol_flags, - mbuf->packet_type, - &l3_type, &l4_type, - &gen_l3_cksum, - &gen_l4_cksum); - if (unlikely(ret)) + if (!(mbuf->ol_flags & MVNETA_TX_PKT_OFFLOADS)) continue; + mvneta_prepare_proto_info(mbuf->ol_flags, &l3_type, &l4_type, + &gen_l3_cksum, &gen_l4_cksum); neta_ppio_outq_desc_set_proto_info(&descs[i], l3_type, l4_type, mbuf->l2_len, @@ -473,7 +458,7 @@ mvneta_tx_sg_pkt_burst(void *txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) struct neta_ppio_desc descs[nb_pkts * NETA_PPIO_DESC_NUM_FRAGS]; struct neta_ppio_sg_pkts pkts; uint8_t frags[nb_pkts]; - int i, j, ret, bytes_sent = 0; + int i, j, bytes_sent = 0; int tail, tail_first; uint16_t num, sq_free_size; uint16_t nb_segs, total_descs = 0; @@ -549,13 +534,10 @@ mvneta_tx_sg_pkt_burst(void *txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) bytes_sent += rte_pktmbuf_pkt_len(mbuf); - ret = mvneta_prepare_proto_info(mbuf->ol_flags, - mbuf->packet_type, - &l3_type, &l4_type, - &gen_l3_cksum, - &gen_l4_cksum); - if (unlikely(ret)) + if (!(mbuf->ol_flags & MVNETA_TX_PKT_OFFLOADS)) continue; + mvneta_prepare_proto_info(mbuf->ol_flags, &l3_type, &l4_type, + &gen_l3_cksum, &gen_l4_cksum); neta_ppio_outq_desc_set_proto_info(&descs[tail_first], l3_type, l4_type,