From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D345BA0543; Fri, 28 Oct 2022 05:12:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 792DB410D4; Fri, 28 Oct 2022 05:12:33 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 3022D40146; Fri, 28 Oct 2022 05:12:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1666926751; x=1698462751; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=gGWJ1N1VeCsU5fSsvWX8L73/iaoZZuDAJiVyvgQvBPY=; b=MHFu1vEE3/vV68iJuOv/uV87SQBqMiLhM6JOMRl2buYioTkaVEtkLUhB Y6btX/n3ZAGS4gBjLnKwsrr7k/oUGWr+BWcyl9KSIgR50I3EJScF+wALz 2YvW7BtxQArPCM2zs3B2ZxUNZHN/DmQN8zy+xJAd5/5H9WZOyD/Zjyajw GnIQ2MJLFl2FznUrBkJ9taLY3f2Sf195So8CmHU2N5I0BAz0glj9vyL1h 7xh38cqjf4xDru9sKqZPWDK9nScyOTmROVnSBXA5qiNPZVNjmVlErT6a7 GXl7IcKvmhmFXNOBxkwvHrvyC09Spv26frzbD27/Zz7Sx7QtWZ9eR8ws6 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10513"; a="291698063" X-IronPort-AV: E=Sophos;i="5.95,219,1661842800"; d="scan'208";a="291698063" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2022 20:12:19 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10513"; a="757935301" X-IronPort-AV: E=Sophos;i="5.95,219,1661842800"; d="scan'208";a="757935301" Received: from unknown (HELO yemj..) ([10.239.252.253]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2022 20:12:16 -0700 From: Mingjin Ye To: dev@dpdk.org Cc: stable@dpdk.org, yidingx.zhou@intel.com, Mingjin Ye , Qiming Yang , Qi Zhang , Somnath Kotur , Andrew Rybchenko , Ajit Khaparde , Olivier Matz , Haiyue Wang , Xiaolong Ye Subject: [PATCH v2] net/ice: fix rx scalar path offload parse Date: Fri, 28 Oct 2022 10:59:12 +0000 Message-Id: <20221028105912.528529-1-mingjinx.ye@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 The status_0 field of the rx descriptor is incorrectly parsed as the error field, which causes the parsing error of offload features. This patch is to fixe the parsing of wrong fields. Fixes: daa02b5cddbb ("mbuf: add namespace to offload flags") Fixes: dbf3c0e77a22 ("net/ice: handle Rx flex descriptor") Cc: stable@dpdk.org Signed-off-by: Mingjin Ye --- drivers/net/ice/ice_rxtx.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index 71e5c6f5d6..3c558b32bd 100644 --- a/drivers/net/ice/ice_rxtx.c +++ b/drivers/net/ice/ice_rxtx.c @@ -1485,36 +1485,36 @@ ice_rx_queue_count(void *rx_queue) (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_EIPE_S) | \ (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_EUDPE_S) | \ (1 << ICE_RX_FLEX_DESC_STATUS0_RXE_S)) - +#define ICE_RXD_QW1_ERROR_SHIFT 19 /* Rx L3/L4 checksum */ static inline uint64_t ice_rxd_error_to_pkt_flags(uint16_t stat_err0) { uint64_t flags = 0; - /* check if HW has decoded the packet and checksum */ - if (unlikely(!(stat_err0 & (1 << ICE_RX_FLEX_DESC_STATUS0_L3L4P_S)))) - return 0; + uint64_t error_bits = (stat_err0 >> ICE_RXD_QW1_ERROR_SHIFT) & 0x7D; - if (likely(!(stat_err0 & ICE_RX_FLEX_ERR0_BITS))) { - flags |= (RTE_MBUF_F_RX_IP_CKSUM_GOOD | RTE_MBUF_F_RX_L4_CKSUM_GOOD); + if (likely(!(error_bits & ICE_RX_FLEX_ERR0_BITS))) { + flags |= (RTE_MBUF_F_RX_IP_CKSUM_GOOD | + RTE_MBUF_F_RX_L4_CKSUM_GOOD | + RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD); return flags; } - if (unlikely(stat_err0 & (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_IPE_S))) + if (unlikely(error_bits & (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_IPE_S))) flags |= RTE_MBUF_F_RX_IP_CKSUM_BAD; else flags |= RTE_MBUF_F_RX_IP_CKSUM_GOOD; - if (unlikely(stat_err0 & (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_L4E_S))) + if (unlikely(error_bits & (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_L4E_S))) flags |= RTE_MBUF_F_RX_L4_CKSUM_BAD; else flags |= RTE_MBUF_F_RX_L4_CKSUM_GOOD; - if (unlikely(stat_err0 & (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_EIPE_S))) + if (unlikely(error_bits & (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_EIPE_S))) flags |= RTE_MBUF_F_RX_OUTER_IP_CKSUM_BAD; - if (unlikely(stat_err0 & (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_EUDPE_S))) + if (unlikely(error_bits & (1 << ICE_RX_FLEX_DESC_STATUS0_XSUM_EUDPE_S))) flags |= RTE_MBUF_F_RX_OUTER_L4_CKSUM_BAD; else flags |= RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD; -- 2.34.1