From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2CC03A04B5; Fri, 30 Oct 2020 12:32:20 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8AF00C8C6; Fri, 30 Oct 2020 12:31:42 +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 555CDC876 for ; Fri, 30 Oct 2020 12:31:38 +0100 (CET) Received: by mail-lf1-f66.google.com with SMTP id j30so7434272lfp.4 for ; Fri, 30 Oct 2020 04:31: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=GnxreAGIcSqr6VGPvC8SffwKUnjLZWr++t9DwVzm8NA=; b=fUAY4WMIpEVjTzH39Xm8uDgp7UTQnCmm+R7dU5wLggQs55FuV0YIPel2LAljm/I7xT 6hz27J0F3U/evhArNNNzvrcVAv36rXq6G7lzfGUbshsiAIWyXz7uq1B4PYySjAXy65Kr M0UuPRartQJB5Ejq8lDzPznu9FKs0Kfz+yrusQRbDc35i+W/OnkWzpakH8qoykWZA/t1 LJ1IgWfHQYSeJhhEkvd9pm0oKGHhEhEudV4AEv7n7LzjMvX9xUbx4EVn7eLsDYmXXuDe /YvUVAkLMYhR5y3p5zqz93u1TInR6pKBG16kJZj5mo3xGnYbt5E65h4xd3HNNXJcRk5B ldXA== 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=GnxreAGIcSqr6VGPvC8SffwKUnjLZWr++t9DwVzm8NA=; b=PwRzXsoKNO2VnvaMtlgBe2oIcFJJtAi4y/kTOXN8Jab2Q8wgpuM9P7QgEtt742tyxa xLoA1wayFMJMT59My699L+zhwzenTPxmilkXkTNblCt0AXp4JuSGS7PC8SFaafqGuDli ykw0XEEJ1gj7JSwAvjp3asdw+YW3WbPuXexbg16wYNP7V6mk7aoAKqEs+j+aHAyaJiSH uiTJsgXyiyparBrsjUTtjxqNifEaW5zndgd7zsvZ5iMPZdNq28sfgwScXwlDJsCh1cuz ASG4K4GRG7YBKw9Cz5XgiF35Q3M80+boomgYSkAOWPYSUDfRIn47fZVPvfbNNimUlyfI Oz7w== X-Gm-Message-State: AOAM530wIDrs9EePEpkTrzpmWVoMz/3jTLSgTqPTDZTD9ZxuQBBz8Q6z WbYxmm8wDo1FUDp2MybY+cOhKLAMDEn2OQ== X-Google-Smtp-Source: ABdhPJx6iIN8Ljfq2p8oHP67QAvPJeSf4BtDD2w1/NIEwd0122Bu5R4CvDXtnQyJkU1l0NlFeXBDEg== X-Received: by 2002:a19:be8d:: with SMTP id o135mr801495lff.200.1604057496693; Fri, 30 Oct 2020 04:31:36 -0700 (PDT) Received: from mkPC.int.semihalf.com (193-106-246-138.noc.fibertech.net.pl. [193.106.246.138]) by smtp.gmail.com with ESMTPSA id m11sm596965lfa.112.2020.10.30.04.31.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Oct 2020 04:31:35 -0700 (PDT) From: Michal Krawczyk To: dev@dpdk.org Cc: mw@semihalf.com, igorch@amazon.com, gtzalik@amazon.com, Michal Krawczyk , stable@dpdk.org Date: Fri, 30 Oct 2020 12:31:17 +0100 Message-Id: <20201030113121.1310305-3-mk@semihalf.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201030113121.1310305-1-mk@semihalf.com> References: <20201030113121.1310305-1-mk@semihalf.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH 2/6] net/ena: fix setting Rx checksum flags in mbuf 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" The driver was never setting PKT_RX_*_CKSUM_GOOD flags, so the only way of checking if the checksum was checked was by testing for the PKT_RX_*_CKSUM_BAD. In that situation, the application couldn't detect if the checksum was valid or unknown, as unknown flag is equal to 0. Moreover, the l3_csum_err value is only valid if the l3_proto is indicating IPv4, so it shouldn't be checked for other protocols. Fixes: 1173fca25af9 ("ena: add polling-mode driver") Cc: stable@dpdk.org Signed-off-by: Michal Krawczyk Reviewed-by: Igor Chauskin Reviewed-by: Guy Tzalik --- drivers/net/ena/ena_ethdev.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index 7ab9b93ba9..ad593c882c 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -296,21 +296,23 @@ static inline void ena_rx_mbuf_prepare(struct rte_mbuf *mbuf, else if (ena_rx_ctx->l4_proto == ENA_ETH_IO_L4_PROTO_UDP) packet_type |= RTE_PTYPE_L4_UDP; - if (ena_rx_ctx->l3_proto == ENA_ETH_IO_L3_PROTO_IPV4) + if (ena_rx_ctx->l3_proto == ENA_ETH_IO_L3_PROTO_IPV4) { packet_type |= RTE_PTYPE_L3_IPV4; - else if (ena_rx_ctx->l3_proto == ENA_ETH_IO_L3_PROTO_IPV6) + if (unlikely(ena_rx_ctx->l3_csum_err)) + ol_flags |= PKT_RX_IP_CKSUM_BAD; + else + ol_flags |= PKT_RX_IP_CKSUM_GOOD; + } else if (ena_rx_ctx->l3_proto == ENA_ETH_IO_L3_PROTO_IPV6) { packet_type |= RTE_PTYPE_L3_IPV6; + } - if (!ena_rx_ctx->l4_csum_checked) + if (!ena_rx_ctx->l4_csum_checked || ena_rx_ctx->frag) ol_flags |= PKT_RX_L4_CKSUM_UNKNOWN; else - if (unlikely(ena_rx_ctx->l4_csum_err) && !ena_rx_ctx->frag) + if (unlikely(ena_rx_ctx->l4_csum_err)) 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; + ol_flags |= PKT_RX_L4_CKSUM_GOOD; mbuf->ol_flags = ol_flags; mbuf->packet_type = packet_type; -- 2.25.1