Bug ID 1662
Summary [dpdk-25.03] [NNT] pmd_bonded_8023ad: port start failed after set bonding lacp
Product DPDK
Version 24.07
Hardware x86
OS Linux
Status UNCONFIRMED
Severity normal
Priority Normal
Component testpmd
Assignee dev@dpdk.org
Reporter songx.jiale@intel.com
Target Milestone ---

Environment
===========
DPDK version: e5176f23ae8b31437c3e5eb875c81f95bf3a9942 version: 25.03-rc1
OS: Ubuntu24.04.1 LTS (Noble Numbat)/6.8.0-41-generic
Compiler:  gcc version 13.2.0
Hardware platform: Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz
NIC hardware: NNT(82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb)
NIC firmware: 
  driver: ixgbe-5.22.25
  FW: 0x000161bf

Test Setup
Steps to reproduce
==================
1. bind ports to dpdk 
./usertools/dpdk-devbind.py -b vfio-pci 0000:b1:00.0 0000:b1:00.1
2. launch testpmd
x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-39 -n 4 -a 0000:b1:00.0 -a
0000:b1:00.1 -- -i
3. create bonding device
port stop all
create bonding device 4 1
add bonding member 0 2
add bonding member 1 2
4. set bonding lacp
set bonding lacp dedicated_queues 2 enable
port start all
show port info all


Results: 
========
the link status of all ports is down and have some error info.

Please remove port 0 from bonding device.
Please remove port 1 from bonding device.
Configuring Port 2 (socket 1)
ETHDEV: Device with port_id=0 already stopped
ETHDEV: Device with port_id=1 already stopped
ETHDEV: Device with port_id=0 already stopped
IXGBE_INIT: ixgbe_dev_tx_queue_setup(): tx_rs_thresh + tx_free_thresh must not
exceed nb_desc. (tx_rs_thresh=32 tx_free_thresh=32 nb_desc=32 port = 0 queue=1)
BOND: member_configure_slow_queue(1726) - rte_eth_tx_queue_setup: port=0
queue_id 1, err (-22)
ETHDEV: Device with port_id=1 already stopped
IXGBE_INIT: ixgbe_dev_tx_queue_setup(): tx_rs_thresh + tx_free_thresh must not
exceed nb_desc. (tx_rs_thresh=32 tx_free_thresh=32 nb_desc=32 port = 1 queue=1)
BOND: member_configure_slow_queue(1726) - rte_eth_tx_queue_setup: port=1
queue_id 1, err (-22)
Port 2: 90:E2:BA:D5:B2:38
Checking link statuses...
Done

Expected Result:
================
The status of all ports is normal.

bad commit:
===========
commit 4da0705bf896327af062212b5a1e6cb1f1366aa5
Author: Long Wu <long.wu@corigine.com>
Date:   Thu Dec 26 09:26:18 2024 +0800

    net/bonding: fix dedicated queue setup

    The bonding PMD hardcoded the value of dedicated hardware Rx/Tx
    queue size as (128/512). This will cause the bonding port start
    fail if some NIC requires more Rx/Tx descriptors than the hardcoded
    number.

    Therefore, use the minimum hardware queue size of the member port
    to initialize dedicated hardware Rx/Tx queue. If obtaining the
    minimum queue size failed, use the default queue size.

    Fixes: 112891cd27e5 ("net/bonding: add dedicated HW queues for LACP
control")
    Cc: stable@dpdk.org

    Signed-off-by: Long Wu <long.wu@corigine.com>
    Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>

 drivers/net/bonding/rte_eth_bond_8023ad.h |  3 +++
 drivers/net/bonding/rte_eth_bond_pmd.c    | 25 ++++++++++++++++++++++---
 2 files changed, 25 insertions, 3 deletions
          


You are receiving this mail because: