From patchwork Mon Oct 28 10:23:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 62102 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 22A0F1BEA7; Mon, 28 Oct 2019 11:23:40 +0100 (CET) Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by dpdk.org (Postfix) with ESMTP id 7390C1BEA7 for ; Mon, 28 Oct 2019 11:23:38 +0100 (CET) Received: by mail-lj1-f193.google.com with SMTP id l21so10690061lje.4 for ; Mon, 28 Oct 2019 03:23:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pZT3fqFYEGoXSegC4wV9APFXoNf6xwuZm49Ms9DSmWY=; b=u9R4fBfuwkwCmGzUBpGKYMKulPvdKt9egUWYUzTAFkK6lJ/dJB8CcY49rk9AGqrKQL cGsQRFr2/mV4n3SuhhJ/j49f6h98mlI3PceJCubX8fivK1CJ4b0kKtZ9ZpawOT9WdpYM XgiJ2k16xYVWuZUaji3TFEaEf/iEkk8M0FQ8ouJKadwohozjPmJT5QOv8Jx25MdUD6Nq CPfj7Ry39Oc1NquNqQd7uX6yb9PzJxcphG1ayMXoMX/UaUg68CvSKx7s6iXULqHgzbnc rPx/GuPL0QhDNJYNVvF6YanQ7jqDveaMVZW4QB4NqW0tjcKTV0ANHmv4xx5Qc/7maX0t Ucug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pZT3fqFYEGoXSegC4wV9APFXoNf6xwuZm49Ms9DSmWY=; b=RYluWvjEthjnb3MGnIQY+nXLkF3pK9Eu4JKyc3jHd8mMWIrSDc6ux2AQoouTht+NvH 3l3tnZvBGPg9B3C0qxs+nvBKs/PQ7nR6R8FZbBKtrK50Hc7Cq5yQhg3LWmCHFMUPM7c2 5W0hizy1viFdqUeLEsDyFw0UCZlOiDgjEkcR2XBvF5Gmh0IY/cMaUpGURo+968HQd6eQ 6lKc1dBnj4T/C/hyNDpb1e/Zi2wROEIviDASiVhjaSZ+gs+P6KGgfLkNfBdQbZZB8//1 FkbxJzUbhR38+lgGIvRvcQH3u1eCGmUop3iV/3ovRrBE8jymEgDZjQUwWzPJamOx4Ojs x5xg== X-Gm-Message-State: APjAAAWYQTqYHGWFp/kbfkRnBKoCLXEKCoAAWhM06PoQAwUYET11CKug nRzXVSCvp6iXnJt5h7tkNeF5Fw== X-Google-Smtp-Source: APXvYqykIAWJrbuiuKIXoSJzagFdRKo7AoUxIQMkQUQSxRV9F061azJ/Xi1hmIwcdwdqNsCmhgRsbA== X-Received: by 2002:a2e:998a:: with SMTP id w10mr4482992lji.152.1572258217844; Mon, 28 Oct 2019 03:23:37 -0700 (PDT) Received: from localhost.localdomain (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id e26sm4873270ljj.76.2019.10.28.03.23.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Oct 2019 03:23:37 -0700 (PDT) From: Michal Krawczyk To: Marcin Wojtas , Michal Krawczyk , Guy Tzalik , Evgeny Schemeilin , Igor Chauskin Cc: dev@dpdk.org, stable@dpdk.org, Maciej Bielski Date: Mon, 28 Oct 2019 11:23:33 +0100 Message-Id: <20191028102333.15439-1-mk@semihalf.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191028101604.12072-1-mk@semihalf.com> References: <20191028101604.12072-1-mk@semihalf.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2] net/ena: fix false indication of bad L4 Rx csums 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: Igor Chauskin Add checking of l4_csum_checked and frag flags before checking the l4_csum_error flag. In case of IP fragment/unchecked L4 csum - add PKT_RX_L4_CKSUM_UNKNOWN flag to the indicated mbuf. Fixes: 1173fca25af9 ("ena: add polling-mode driver") Cc: stable@dpdk.org Signed-off-by: Igor Chauskin Reviewed-by: Maciej Bielski Reviewed-by: Michal Krawczyk --- v2: * Update ENA PMD version to the v2.0.2 drivers/net/ena/ena_ethdev.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index aa84fabc5..8bbd80dfb 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -27,7 +27,7 @@ #define DRV_MODULE_VER_MAJOR 2 #define DRV_MODULE_VER_MINOR 0 -#define DRV_MODULE_VER_SUBMINOR 1 +#define DRV_MODULE_VER_SUBMINOR 2 #define ENA_IO_TXQ_IDX(q) (2 * (q)) #define ENA_IO_RXQ_IDX(q) (2 * (q) + 1) @@ -272,8 +272,14 @@ static inline void ena_rx_mbuf_prepare(struct rte_mbuf *mbuf, else if (ena_rx_ctx->l3_proto == ENA_ETH_IO_L3_PROTO_IPV6) packet_type |= RTE_PTYPE_L3_IPV6; - if (unlikely(ena_rx_ctx->l4_csum_err)) - ol_flags |= PKT_RX_L4_CKSUM_BAD; + if (!ena_rx_ctx->l4_csum_checked) + ol_flags |= PKT_RX_L4_CKSUM_UNKNOWN; + else + if (unlikely(ena_rx_ctx->l4_csum_err) && !ena_rx_ctx->frag) + ol_flags |= PKT_RX_L4_CKSUM_BAD; + else + ol_flags |= PKT_RX_L4_CKSUM_UNKNOWN; + if (unlikely(ena_rx_ctx->l3_csum_err)) ol_flags |= PKT_RX_IP_CKSUM_BAD;