[dpdk-dev,v3,1/4] net/i40e: fix bitmask of supported Tx flags

Message ID 1486437727-83972-2-git-send-email-jingjing.wu@intel.com (mailing list archive)
State Superseded, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel compilation fail Compilation issues

Commit Message

Jingjing Wu Feb. 7, 2017, 3:22 a.m. UTC
  PKT_TX_TUNNEL_MASK and PKT_TX_IEEE1588_TMST are missed in bitmask
of all supported packet Tx flags by i40e. It will cause packet preparing
fail when sending tunnel packets with Tx offload.
This patch fixes it.

Fixes: 3f33e643e5c6 ("net/i40e: add Tx preparation")
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
---
 drivers/net/i40e/i40e_rxtx.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
  

Comments

Ferruh Yigit Feb. 7, 2017, 1:48 p.m. UTC | #1
On 2/7/2017 3:22 AM, Jingjing Wu wrote:
> PKT_TX_TUNNEL_MASK and PKT_TX_IEEE1588_TMST are missed in bitmask
> of all supported packet Tx flags by i40e. It will cause packet preparing
> fail when sending tunnel packets with Tx offload.
> This patch fixes it.
> 
> Fixes: 3f33e643e5c6 ("net/i40e: add Tx preparation")
> Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
> ---
>  drivers/net/i40e/i40e_rxtx.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
> index 608685f..48429cc 100644
> --- a/drivers/net/i40e/i40e_rxtx.c
> +++ b/drivers/net/i40e/i40e_rxtx.c
> @@ -75,6 +75,12 @@
>  
>  #define I40E_TXD_CMD (I40E_TX_DESC_CMD_EOP | I40E_TX_DESC_CMD_RS)
>  
> +#ifdef RTE_LIBRTE_IEEE1588
> +#define I40E_TX_IEEE1588_TMST PKT_TX_IEEE1588_TMST
> +#else
> +#define I40E_TX_IEEE1588_TMST 0
> +#endif
> +
>  #define I40E_TX_CKSUM_OFFLOAD_MASK (		 \
>  		PKT_TX_IP_CKSUM |		 \
>  		PKT_TX_L4_MASK |		 \
> @@ -87,7 +93,9 @@
>  		PKT_TX_OUTER_IP_CKSUM | \
>  		PKT_TX_TCP_SEG |        \
>  		PKT_TX_QINQ_PKT |       \
> -		PKT_TX_VLAN_PKT)
> +		PKT_TX_VLAN_PKT |	\
> +		PKT_TX_TUNNEL_MASK |	\
> +		I40E_TX_IEEE1588_TMST)

PKT_TX_IEEE1588_TMST added into I40E_TX_OFFLOAD_MASK, but not into
PKT_TX_OFFLOAD_MASK (patch 4/4)

Shouldn't PKT_TX_OFFLOAD_MASK be a super set of driver ones. Otherwise
PKT_TX_IEEE1588_TMST will be marked as not supported according below XOR
logic.

>  
>  #define I40E_TX_OFFLOAD_NOTSUP_MASK \
>  		(PKT_TX_OFFLOAD_MASK ^ I40E_TX_OFFLOAD_MASK)
>
  
Jingjing Wu Feb. 7, 2017, 3:45 p.m. UTC | #2
> > +#ifdef RTE_LIBRTE_IEEE1588
> > +#define I40E_TX_IEEE1588_TMST PKT_TX_IEEE1588_TMST #else #define
> > +I40E_TX_IEEE1588_TMST 0 #endif
> > +
> >  #define I40E_TX_CKSUM_OFFLOAD_MASK (		 \
> >  		PKT_TX_IP_CKSUM |		 \
> >  		PKT_TX_L4_MASK |		 \
> > @@ -87,7 +93,9 @@
> >  		PKT_TX_OUTER_IP_CKSUM | \
> >  		PKT_TX_TCP_SEG |        \
> >  		PKT_TX_QINQ_PKT |       \
> > -		PKT_TX_VLAN_PKT)
> > +		PKT_TX_VLAN_PKT |	\
> > +		PKT_TX_TUNNEL_MASK |	\
> > +		I40E_TX_IEEE1588_TMST)
> 
> PKT_TX_IEEE1588_TMST added into I40E_TX_OFFLOAD_MASK, but not into
> PKT_TX_OFFLOAD_MASK (patch 4/4)
> 
> Shouldn't PKT_TX_OFFLOAD_MASK be a super set of driver ones. Otherwise
> PKT_TX_IEEE1588_TMST will be marked as not supported according below
> XOR logic.
> 

Yes, you are right. Should I send a new version patch set? Or just update the [4/4]?

Thanks
Jingjing
> >
> >  #define I40E_TX_OFFLOAD_NOTSUP_MASK \
> >  		(PKT_TX_OFFLOAD_MASK ^ I40E_TX_OFFLOAD_MASK)
> >
  
Ferruh Yigit Feb. 7, 2017, 4:01 p.m. UTC | #3
On 2/7/2017 3:45 PM, Wu, Jingjing wrote:
>>> +#ifdef RTE_LIBRTE_IEEE1588
>>> +#define I40E_TX_IEEE1588_TMST PKT_TX_IEEE1588_TMST #else #define
>>> +I40E_TX_IEEE1588_TMST 0 #endif
>>> +
>>>  #define I40E_TX_CKSUM_OFFLOAD_MASK (		 \
>>>  		PKT_TX_IP_CKSUM |		 \
>>>  		PKT_TX_L4_MASK |		 \
>>> @@ -87,7 +93,9 @@
>>>  		PKT_TX_OUTER_IP_CKSUM | \
>>>  		PKT_TX_TCP_SEG |        \
>>>  		PKT_TX_QINQ_PKT |       \
>>> -		PKT_TX_VLAN_PKT)
>>> +		PKT_TX_VLAN_PKT |	\
>>> +		PKT_TX_TUNNEL_MASK |	\
>>> +		I40E_TX_IEEE1588_TMST)
>>
>> PKT_TX_IEEE1588_TMST added into I40E_TX_OFFLOAD_MASK, but not into
>> PKT_TX_OFFLOAD_MASK (patch 4/4)
>>
>> Shouldn't PKT_TX_OFFLOAD_MASK be a super set of driver ones. Otherwise
>> PKT_TX_IEEE1588_TMST will be marked as not supported according below
>> XOR logic.
>>
> 
> Yes, you are right. Should I send a new version patch set? Or just update the [4/4]?

Please send a new version of the set.

Thanks,
ferruh
  

Patch

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 608685f..48429cc 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -75,6 +75,12 @@ 
 
 #define I40E_TXD_CMD (I40E_TX_DESC_CMD_EOP | I40E_TX_DESC_CMD_RS)
 
+#ifdef RTE_LIBRTE_IEEE1588
+#define I40E_TX_IEEE1588_TMST PKT_TX_IEEE1588_TMST
+#else
+#define I40E_TX_IEEE1588_TMST 0
+#endif
+
 #define I40E_TX_CKSUM_OFFLOAD_MASK (		 \
 		PKT_TX_IP_CKSUM |		 \
 		PKT_TX_L4_MASK |		 \
@@ -87,7 +93,9 @@ 
 		PKT_TX_OUTER_IP_CKSUM | \
 		PKT_TX_TCP_SEG |        \
 		PKT_TX_QINQ_PKT |       \
-		PKT_TX_VLAN_PKT)
+		PKT_TX_VLAN_PKT |	\
+		PKT_TX_TUNNEL_MASK |	\
+		I40E_TX_IEEE1588_TMST)
 
 #define I40E_TX_OFFLOAD_NOTSUP_MASK \
 		(PKT_TX_OFFLOAD_MASK ^ I40E_TX_OFFLOAD_MASK)