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:
parent
2570c03357
commit
4d44217b06
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user