[dpdk-dev] [PATCH v3 06/22] net/hns3: fix the jumbo frame flag condition for mtu set

oulijun oulijun at huawei.com
Mon Jan 18 02:30:18 CET 2021


Acked-by: Lijun Ou <oulijun at huawei.com>

在 2021/1/14 17:46, Steve Yang 写道:
> The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition,
> but the Ether overhead is larger than 18 when it supports dual VLAN tags.
> That will cause the jumbo flag rx offload is wrong when MTU size is
> 'RTE_ETHER_MTU'.
> 
> This fix will change the boundary condition with 'HSN3_DEFAULT_FRAME_LEN',
> that perhaps impacts the cases of the jumbo frame related.
> 
> Fixes: 1f5ca0b460cd ("net/hns3: support some device operations")
> Fixes: a5475d61fa34 ("net/hns3: support VF")
> 
> Signed-off-by: Steve Yang <stevex.yang at intel.com>
> ---
>   drivers/net/hns3/hns3_ethdev.c    | 2 +-
>   drivers/net/hns3/hns3_ethdev_vf.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
> index 7c34e382fb..10e0c0de46 100644
> --- a/drivers/net/hns3/hns3_ethdev.c
> +++ b/drivers/net/hns3/hns3_ethdev.c
> @@ -2467,7 +2467,7 @@ hns3_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
>   	}
>   
>   	rte_spinlock_lock(&hw->lock);
> -	is_jumbo_frame = frame_size > RTE_ETHER_MAX_LEN ? true : false;
> +	is_jumbo_frame = frame_size > HNS3_DEFAULT_FRAME_LEN ? true : false;
>   	frame_size = RTE_MAX(frame_size, HNS3_DEFAULT_FRAME_LEN);
>   
>   	/*
> diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
> index f09cabcd82..ef03fb1c4e 100644
> --- a/drivers/net/hns3/hns3_ethdev_vf.c
> +++ b/drivers/net/hns3/hns3_ethdev_vf.c
> @@ -928,7 +928,7 @@ hns3vf_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
>   		rte_spinlock_unlock(&hw->lock);
>   		return ret;
>   	}
> -	if (frame_size > RTE_ETHER_MAX_LEN)
> +	if (mtu > RTE_ETHER_MTU)
>   		dev->data->dev_conf.rxmode.offloads |=
>   						DEV_RX_OFFLOAD_JUMBO_FRAME;
>   	else
> 


More information about the dev mailing list