From: Steve Yang Date: Mon, 18 Jan 2021 07:04:28 +0000 (+0000) Subject: net/liquidio: fix jumbo frame flag condition for MTU set X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=92c87229a9b096a53a5a9763bfee0198d20a91ea;p=dpdk.git net/liquidio: 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: 9f1c00266d82 ("net/liquidio: add API to set MTU") Cc: stable@dpdk.org Signed-off-by: Steve Yang Reviewed-by: Ferruh Yigit --- diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c index d4dd3768cd..eb0fdab45a 100644 --- a/drivers/net/liquidio/lio_ethdev.c +++ b/drivers/net/liquidio/lio_ethdev.c @@ -481,7 +481,7 @@ lio_dev_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu) return -1; } - if (frame_len > RTE_ETHER_MAX_LEN) + if (frame_len > LIO_ETH_MAX_LEN) eth_dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME; else diff --git a/drivers/net/liquidio/lio_ethdev.h b/drivers/net/liquidio/lio_ethdev.h index 74cd2fb6c6..d33be1c44d 100644 --- a/drivers/net/liquidio/lio_ethdev.h +++ b/drivers/net/liquidio/lio_ethdev.h @@ -13,6 +13,9 @@ #define LIO_LSC_TIMEOUT 100000 /* 100000us (100ms) */ #define LIO_MAX_CMD_TIMEOUT 10000 /* 10000ms (10s) */ +/* The max frame size with default MTU */ +#define LIO_ETH_MAX_LEN (RTE_ETHER_MTU + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN) + #define LIO_DEV(_eth_dev) ((_eth_dev)->data->dev_private) /* LIO Response condition variable */