Hi, > -----Original Message----- > From: Ferruh Yigit <ferruh.yi...@intel.com> > Sent: Monday, January 25, 2021 8:16 PM > To: Wenzhuo Lu <wenzhuo...@intel.com>; Xiaoyun Li > <xiaoyun...@intel.com>; Bernard Iremonger > <bernard.iremon...@intel.com>; Steve Yang <stevex.y...@intel.com> > Cc: Ferruh Yigit <ferruh.yi...@intel.com>; dev@dpdk.org; sta...@dpdk.org; > lance.richard...@broadcom.com; ouli...@huawei.com; Wisam Monther > <wis...@nvidia.com>; lihuis...@huawei.com > Subject: [PATCH v5] app/testpmd: fix setting maximum packet length > > From: Steve Yang <stevex.y...@intel.com> > > "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: sta...@dpdk.org > > Signed-off-by: Steve Yang <stevex.y...@intel.com> > Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> > --- > > 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.richard...@broadcom.com > Cc: ouli...@huawei.com > Cc: wis...@mellanox.com > Cc: lihuis...@huawei.com > ---
It fixed this bug indeed: https://bugs.dpdk.org/show_bug.cgi?id=625 Thanks Acked-by: Wisam Jaddo <wis...@nvidia.com> BRs, Wisam Jaddo