Thread (37 messages) 37 messages, 7 authors, 2021-01-29

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help