dpdk: fix mlx5 dpdk init with no-multi-seg 37/36437/2
authorTianyu Li <tianyu.li@arm.com>
Fri, 10 Jun 2022 09:30:47 +0000 (09:30 +0000)
committerMatthew Smith <mgsmith@netgate.com>
Mon, 18 Jul 2022 21:22:53 +0000 (21:22 +0000)
commit574d99439d34cea6bf01619fca32493249f4dc3a
tree42fc0be1c1745428841026e65bee3e3031d3e1d4
parent651cc01b642f0fb373ce15533bf820196b1b5d8f
dpdk: fix mlx5 dpdk init with no-multi-seg

Build vpp with MLX DPDK PMD,
make DPDK_MLX4_PMD=y DPDK_MLX5_PMD=y DPDK_MLX5_COMMON_PMD=y build-release
With no-multi-seg in startup.conf,
Mellanox NIC init failed with following message,

rte_eth_rx_queue_setup[port:2, errno:-12]: Unknown error -12
mlx5_net: port 2 Rx queue 0: Scatter offload is not configured and
no enough mbuf space(2176) to contain the maximum RX packet length(2065)
with head-room(128)

In Mellanox NIC PMD driver, 'di.max_rx_pktlen' is returned as 65536,
and 'di.max_mtu' is returned as 65535, which makes
the driver_frame_overhead logic not suitable for Mellanox NICs.
So skip the logic code if MAX_MTU is returned as 65535.

Type: fix
Fixes: 1cd0e5dd533f ("vnet: distinguish between max_frame_size and MTU")
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I027b76b8d07fb453015b8eebb36d160b4bc8df9c
src/plugins/dpdk/device/init.c