From patchwork Mon Oct 28 10:16:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Krawczyk X-Patchwork-Id: 62101 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 8285A343C; Mon, 28 Oct 2019 11:16:31 +0100 (CET) Received: from mail-lf1-f66.google.com (mail-lf1-f66.google.com [209.85.167.66]) by dpdk.org (Postfix) with ESMTP id 445721BF1F for ; Mon, 28 Oct 2019 11:16:30 +0100 (CET) Received: by mail-lf1-f66.google.com with SMTP id u16so7352155lfq.3 for ; Mon, 28 Oct 2019 03:16:30 -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:mime-version :content-transfer-encoding; bh=idTbxQsLum9vouLtt7Z5S11vX9DUmBKBrB8x+9ZTnd8=; b=fVDqf07vbviCn6VVh/q7EG44vCxAYk0dJ+Tq0nC42QOditWqsHo2jZC0S91Ml/zk1H B6acxaGhoCwoAESLJCWPFyQlXz0/0Sl9sn4//aDvTv4RvWc5c4eBGs2xgLn36d/snFFN Ro4+ydmadyytlXPEjnUiuwqxLMk3HPRYB19N2zuZ0w1erNxkrqeCedkYJ/9vN/Dd/6Hl ToTsRFVjRTpiqttFAX7L0pFvrQhsYBOuU3oj+rQoAeKawmAZE47Kadb8cA4ExyVi/CAS nsa0ji/mjlpeoHut1yWf6VSj86cOZvKvonD0wbWFbVG0yjKoTDcjQdSlHs9ytueTI+2X wnKg== 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:mime-version :content-transfer-encoding; bh=idTbxQsLum9vouLtt7Z5S11vX9DUmBKBrB8x+9ZTnd8=; b=tQ8AU1N1l81E7pzZQqEszsY4+o0jbu2VJK+QDq/xhHxDPQzCymcycBbj8riL+VTe9i GNe/0FMeVUxhPEmiF8qEbFQP87S7NBJ6MNntxd4MF5i/NzViazU/d1cyeJypUCErTV6O ve3ZFbVbEGuveLiaJDCK2Q6vJ7CkFSORkHc7mCl6z8XdeQJ27wio07YuOnUqrGoh0heR sbh7WdIDQGy5fWADADKgGO02NvYabRo8xlOr2bJvWHDo9EtNOD/XJsH9q8gGMOVPBNCe nuCprLugEUoN4JXQfOq4q1lWnGF6VjnkbC4UZNfmylg/Z5SgMCo0y3U2ijqzPBcZkG41 V0gg== X-Gm-Message-State: APjAAAW7w309eH4mztCcXg4HBPxWJFnM41DRVcxQ34pOEDDPuEZ3++CF VnDGZIPH6HsxlN0gK5hZRwt1cQ== X-Google-Smtp-Source: APXvYqxkhd/BRjg57HqgaRe2TUH0ZKh7qev83YDS4IwMOV7FNOa/tUTOptWrs1jUwe8Z7xANO5pOJw== X-Received: by 2002:ac2:46d7:: with SMTP id p23mr4603894lfo.104.1572257789621; Mon, 28 Oct 2019 03:16:29 -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 g25sm5876400ljk.36.2019.10.28.03.16.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Oct 2019 03:16:28 -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:16:04 +0100 Message-Id: <20191028101604.12072-1-mk@semihalf.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH] 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" 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 --- drivers/net/ena/ena_ethdev.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 2.20.1 diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index aa84fabc5..55b4982da 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -272,9 +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; --