[dpdk-dev] net/mlx5: fix TSO header size in case of VLAN insertion

Message ID 1490272931-145077-1-git-send-email-shahafs@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

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

Commit Message

Shahaf Shuler March 23, 2017, 12:42 p.m. UTC
  When VLAN insertion is requested the vlan size must be added to the
calculation of the TSO header size, as it is not embedded within the
mbuf l2 length.

Fixes: 98083fd482a2 ("net/mlx5: add hardware TSO support")
Cc: stable@dpdk.org

Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
---
 drivers/net/mlx5/mlx5_rxtx.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
  

Comments

Nélio Laranjeiro March 24, 2017, 8:25 a.m. UTC | #1
On Thu, Mar 23, 2017 at 02:42:11PM +0200, Shahaf Shuler wrote:
> When VLAN insertion is requested the vlan size must be added to the
> calculation of the TSO header size, as it is not embedded within the
> mbuf l2 length.
> 
> Fixes: 98083fd482a2 ("net/mlx5: add hardware TSO support")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_rxtx.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
> index 823aac8..9e8c6d0 100644
> --- a/drivers/net/mlx5/mlx5_rxtx.c
> +++ b/drivers/net/mlx5/mlx5_rxtx.c
> @@ -548,10 +548,11 @@
>  							buf->ol_flags &
>  							(PKT_TX_TUNNEL_GRE |
>  							 PKT_TX_TUNNEL_VXLAN);
> +				uint8_t vlan_sz = (buf->ol_flags &
> +						  PKT_TX_VLAN_PKT) ? 4 : 0;
>  
> -				tso_header_sz = buf->l2_len + buf->l3_len +
> -						buf->l4_len;
> -
> +				tso_header_sz = buf->l2_len + vlan_sz +
> +						buf->l3_len + buf->l4_len;
>  				if (is_tunneled	&& txq->tunnel_en) {
>  					tso_header_sz += buf->outer_l2_len +
>  							 buf->outer_l3_len;
> -- 
> 1.8.3.1
> 

Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
  
Ferruh Yigit March 28, 2017, 4:02 p.m. UTC | #2
On 3/24/2017 8:25 AM, Nélio Laranjeiro wrote:
> On Thu, Mar 23, 2017 at 02:42:11PM +0200, Shahaf Shuler wrote:
>> When VLAN insertion is requested the vlan size must be added to the
>> calculation of the TSO header size, as it is not embedded within the
>> mbuf l2 length.
>>
>> Fixes: 98083fd482a2 ("net/mlx5: add hardware TSO support")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>

> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>

In next-net, squashed into 98083fd482a2, thanks.

(There were a few conflicts, can you please confirm related commits?)
  
Shahaf Shuler March 29, 2017, 5:23 a.m. UTC | #3
Tuesday, March 28, 2017 7:03 PM, Ferruh Yigit:
> On 3/24/2017 8:25 AM, Nélio Laranjeiro wrote:
> > On Thu, Mar 23, 2017 at 02:42:11PM +0200, Shahaf Shuler wrote:
> >> When VLAN insertion is requested the vlan size must be added to the
> >> calculation of the TSO header size, as it is not embedded within the
> >> mbuf l2 length.
> >>
> >> Fixes: 98083fd482a2 ("net/mlx5: add hardware TSO support")
> >> Cc: stable@dpdk.org
> >>
> >> Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
> 
> > Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
> 
> In next-net, squashed into 98083fd482a2, thanks.
> 
> (There were a few conflicts, can you please confirm related commits?)

Yes, looks OK. 
Thanks.
  

Patch

diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c
index 823aac8..9e8c6d0 100644
--- a/drivers/net/mlx5/mlx5_rxtx.c
+++ b/drivers/net/mlx5/mlx5_rxtx.c
@@ -548,10 +548,11 @@ 
 							buf->ol_flags &
 							(PKT_TX_TUNNEL_GRE |
 							 PKT_TX_TUNNEL_VXLAN);
+				uint8_t vlan_sz = (buf->ol_flags &
+						  PKT_TX_VLAN_PKT) ? 4 : 0;
 
-				tso_header_sz = buf->l2_len + buf->l3_len +
-						buf->l4_len;
-
+				tso_header_sz = buf->l2_len + vlan_sz +
+						buf->l3_len + buf->l4_len;
 				if (is_tunneled	&& txq->tunnel_en) {
 					tso_header_sz += buf->outer_l2_len +
 							 buf->outer_l3_len;