Re: [dpdk-dev] [PATCH v5] app/testpmd: fix setting maximum packet length
From: Wisam Monther <hidden>
Date: 2021-01-28 09:18:49
Hi Ferruh,
-----Original Message-----
From: Ferruh Yigit <redacted>
Sent: Monday, January 25, 2021 8:16 PM
To: Wenzhuo Lu <redacted>; Xiaoyun Li
[off-list ref]; Bernard Iremonger
[off-list ref]; Steve Yang [off-list ref]
Cc: Ferruh Yigit <redacted>; dev@dpdk.org; stable@dpdk.org;
lance.richardson@broadcom.com; oulijun@huawei.com; Wisam Monther
[off-list ref]; lihuisong@huawei.com
Subject: [PATCH v5] app/testpmd: fix setting maximum packet length
From: Steve Yang <redacted>
"port config all max-pkt-len" command fails because it doesn't set the
'DEV_RX_OFFLOAD_JUMBO_FRAME' offload flag properly.
Commit in the fixes line moved the 'DEV_RX_OFFLOAD_JUMBO_FRAME'
offload flag update from 'cmd_config_max_pkt_len_parsed()' to
'init_config()'.
'init_config()' function is only called during testpmd startup, but the flag
status needs to be calculated whenever 'max_rx_pkt_len' changes.
The issue can be reproduce as [1], where the 'max-pkt-len' reduced and
'DEV_RX_OFFLOAD_JUMBO_FRAME' offload flag should be cleared but it
didn't.
Adding the 'update_jumbo_frame_offload()' helper function to update
'DEV_RX_OFFLOAD_JUMBO_FRAME' offload flag and 'max_rx_pkt_len'. This
function is called both by 'init_config()' and
'cmd_config_max_pkt_len_parsed()'.
Default 'max-pkt-len' value set to zero, 'update_jumbo_frame_offload()'
updates it to "RTE_ETHER_MTU + PMD specific Ethernet overhead" when it is
zero.
If '--max-pkt-len=N' argument provided, it will be used instead.
And with each "port config all max-pkt-len" command, the
'DEV_RX_OFFLOAD_JUMBO_FRAME' offload flag, 'max-pkt-len' and MTU is
updated.
[1]
--------------------------------------------------------------------------
dpdk-testpmd -c 0xf -n 4 -- -i --max-pkt-len=9000 --tx-offloads=0x8000
--rxq=4 --txq=4 --disable-rss
testpmd> set verbose 3
testpmd> port stop all
testpmd> port config all max-pkt-len 1518 port start all
// Got fail error info without this patch Configuring Port 0 (socket 1) Ethdev
port_id=0 rx_queue_id=0, new added offloads 0x800 must be within per-
queue offload capabilities 0x0 in rte_eth_rx_queue_setup() Fail to configure
port 0 rx queues //<-- Fail error info;
--------------------------------------------------------------------------
Fixes: 761c4d66900f ("app/testpmd: fix max Rx packet length for VLAN
packets")
Cc: stable@dpdk.org
Signed-off-by: Steve Yang <redacted>
Signed-off-by: Ferruh Yigit <redacted>
---
v5:
* 'update_jumbo_frame_offload()' helper updated
* check zero 'max-pkt-len' value
* Update how queue offload flags updated
* Update MTU if JUMBO_FRAME flag is not set
* Default testpmd 'max-pkt-len' value set to zero
Cc: lance.richardson@broadcom.com
Cc: oulijun@huawei.com
Cc: wisamm@mellanox.com
Cc: lihuisong@huawei.com
---I think we need to have https://bugs.dpdk.org/show_bug.cgi?id=625 ID in the commit log as fix, In order to allow the scripts to close related bugs directly from Bugzilla. BRs, Wisam Jaddo