From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olivier MATZ Subject: Re: [PATCH 1/2] mbuf: fix bitmask of Tx offload flags Date: Thu, 26 Jan 2017 16:05:16 +0100 Message-ID: <20170126160516.398ac002@glumotte.dev.6wind.com> References: <1485258454-86107-1-git-send-email-jingjing.wu@intel.com> <2601191342CEEE43887BDE71AB9772583F10D0CB@irsmsx105.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: "Wu, Jingjing" , "dev@dpdk.org" To: "Ananyev, Konstantin" Return-path: Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by dpdk.org (Postfix) with ESMTP id 5B06C108D for ; Thu, 26 Jan 2017 16:05:23 +0100 (CET) Received: by mail-wm0-f46.google.com with SMTP id r144so88814011wme.1 for ; Thu, 26 Jan 2017 07:05:23 -0800 (PST) In-Reply-To: <2601191342CEEE43887BDE71AB9772583F10D0CB@irsmsx105.ger.corp.intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Thu, 26 Jan 2017 14:58:08 +0000, "Ananyev, Konstantin" wrote: > Hi Jingjng, > > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jingjing Wu > > Sent: Tuesday, January 24, 2017 11:48 AM > > To: dev@dpdk.org > > Cc: Wu, Jingjing > > Subject: [dpdk-dev] [PATCH 1/2] mbuf: fix bitmask of Tx offload > > flags > > > > Some Tx offload flags are missed in Bitmask of all supported packet > > Tx offload features flags. > > This patch fixes it. > > Not sure what it exactly fixes? > As I remember these flags don't specify any TX offload for HW to > perform, But just provide information to the TX function. > Again, why only i40e code is modified? > As I remember we have the same code in other PMDs too. > Konstantin > > > > > Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation") > > Signed-off-by: Jingjing Wu > > --- > > lib/librte_mbuf/rte_mbuf.h | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h > > index bfce9f4..e57a4d2 100644 > > --- a/lib/librte_mbuf/rte_mbuf.h > > +++ b/lib/librte_mbuf/rte_mbuf.h > > @@ -295,8 +295,12 @@ extern "C" { > > */ > > #define PKT_TX_OFFLOAD_MASK ( \ > > PKT_TX_IP_CKSUM | \ > > + PKT_TX_IPV4 | \ > > + PKT_TX_IPV6 | \ > > PKT_TX_L4_MASK | \ > > PKT_TX_OUTER_IP_CKSUM | \ > > + PKT_TX_OUTER_IPV4 | \ > > + PKT_TX_OUTER_IPV6 | \ > > PKT_TX_TCP_SEG | \ > > PKT_TX_QINQ_PKT | \ > > PKT_TX_VLAN_PKT | \ > > -- > > 2.4.11 > Also, it looks like MACSEC is missing. To avoid forgetting flags in the future, what do you think about doing the following (not tested)? diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index b3cccfc..aa1dc76 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -182,9 +182,11 @@ extern "C" { */ #define PKT_RX_TIMESTAMP (1ULL << 17) -/* add new RX flags here */ +/* add new RX flags here, and update __PKT_RX_NEXT */ +#define __PKT_RX_NEXT (1ULL << 18) -/* add new TX flags here */ +/* add new TX flags here, and update __PKT_TX_NEXT */ +#define __PKT_TX_NEXT (1ULL << 43) /** * Offload the MACsec. This flag must be set by the application to enable @@ -295,17 +297,16 @@ extern "C" { #define PKT_TX_OUTER_IPV6 (1ULL << 60) /** + * Bitmask of all supported packet Rx offload features flags, + * which can be set for packet. + */ +#define PKT_RX_OFFLOAD_MASK (__PKT_RX_NEXT - 1) + +/** * Bitmask of all supported packet Tx offload features flags, * which can be set for packet. */ -#define PKT_TX_OFFLOAD_MASK ( \ - PKT_TX_IP_CKSUM | \ - PKT_TX_L4_MASK | \ - PKT_TX_OUTER_IP_CKSUM | \ - PKT_TX_TCP_SEG | \ - PKT_TX_QINQ_PKT | \ - PKT_TX_VLAN_PKT | \ - PKT_TX_TUNNEL_MASK) +#define PKT_TX_OFFLOAD_MASK ((~(__PKT_TX_NEXT - 1)) & 0x1fffffffffffffff) #define __RESERVED (1ULL << 61) /**< reserved for future mbuf use */