net/enetc: fix jumbo frame flag condition for MTU set

The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition.
If the Ether overhead is larger than 18 when it supports VLAN tag,
that will cause the jumbo flag rx offload is wrong when MTU size is
'RTE_ETHER_MTU'.

This fix will normalize the boundary condition with 'RTE_ETHER_MTU'
and overhead even though current overhead is 18.

Fixes: 5d5589b0c8 ("net/enetc: support MTU update and jumbo frames")
Cc: stable@dpdk.org

Signed-off-by: Steve Yang <stevex.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Steve Yang 2021-01-18 07:04:25 +00:00 committed by Ferruh Yigit
parent 2570c03357
commit 4d44217b06
2 changed files with 5 additions and 1 deletions

View File

@ -29,6 +29,10 @@
/* maximum frame size supported */
#define ENETC_MAC_MAXFRM_SIZE 9600
/* The max frame size with default MTU */
#define ENETC_ETH_MAX_LEN (RTE_ETHER_MTU + \
RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN)
/*
* upper_32_bits - return bits 32-63 of a number
* @n: the number we're accessing

View File

@ -677,7 +677,7 @@ enetc_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
return -EINVAL;
}
if (frame_size > RTE_ETHER_MAX_LEN)
if (frame_size > ENETC_ETH_MAX_LEN)
dev->data->dev_conf.rxmode.offloads &=
DEV_RX_OFFLOAD_JUMBO_FRAME;
else