[dpdk-dev] Regarding bond and slave driver configuration in DPDK 19.11

Robin Fahy rfahy at juniper.net
Tue Sep 29 02:12:05 CEST 2020


Hi Chas & DPDK team,


One of our engineers at Juniper Networks is blocked on an issue related to a mismatch between dev_conf and dev_info when attempting to configure a bond and slave driver using DPDK 19.11.

Are there any similar known issues with this configuration, or knowledge resources on hand to help us troubleshoot?

Let us know if anything leaps to mind!


Thank you,
Robin


PS: Details included below.



From: Nandini Rangaswamy <nrangaswamy at juniper.net>
Date: Friday, September 11, 2020 at 10:23 AM
To: "chas3 at att.com" <chas3 at att.com>
Cc: Kiran KN <kirankn at juniper.net>, Sachchidanand Vaidya <vaidyasd at juniper.net>, Robin Fahy <rfahy at juniper.net>
Subject: FW: Regarding bond and slave driver configuration in DPDK 19.11

Hi Chas,
I had emailed dev at dpdk.org<mailto:dev at dpdk.org> with a question about configuring bond and slave interfaces in DPDK application using DPDK 19.11 library.
I have not received any response yet. Since your email id was listed in the maintainers list for the bonding driver, I am forwarding this question to you.
It would be great if you could take a look at the question below and provide some inputs on how it can be resolved.
Thanks and Regards,
Nandini

From: Nandini Rangaswamy <nrangaswamy at juniper.net>
Date: Monday, August 31, 2020 at 12:02 PM
To: "dev at dpdk.org" <dev at dpdk.org>
Subject: Regarding bond and slave driver configuration in DPDK 19.11

Hi ,
I am attempting to setup/configure bond and slave interfaces in DPDK application and it fails in DPDK 19.11.

DPDK daemon is started with the following command line arguments:
--no-daemon --socket-mem 1024 1024 --vdev eth_bond_bond0,mode=4,xmit_policy=l34,socket_id=1,mac=ac:1f:6b:8d:d7:c6,lacp_rate=1,slave=0000:81:00.0,slave=0000:81:00.1


  1.  DPDK application initializes the bond interface first . It sets rx and tx offloads in dev_conf structure as (DEV_RX_OFFLOAD_CHECKSUM | DEV_RX_OFFLOAD_JUMBO_FRAME )

and (DEV_TX_OFFLOAD_UDP_CKSUM | DEV_TX_OFFLOAD_TCP_CKSUM | DEV_TX_OFFLOAD_IPV4_CKSUM) respectively.
Then the application invokes rte_eth_dev_configure to setup bond. This causes some conditions such as below to fail In DPDK 19.11 :

        if ((dev_conf->rxmode.offloads & dev_info.rx_offload_capa) !=
             dev_conf->rxmode.offloads) {
                RTE_ETHDEV_LOG(ERR,
                        "Ethdev port_id=%u requested
                        Rx offloads 0x%"PRIx64" doesn't match Rx     offloads "
                        "capabilities 0x%"PRIx64" in %s()\n",
                        port_id, dev_conf->rxmode.offloads,
                        dev_info.rx_offload_capa,
                        __func__);
            Return -EINVAL;
        }
        if ((dev_conf->txmode.offloads & dev_info.tx_offload_capa) !=
             dev_conf->txmode.offloads) {
                RTE_ETHDEV_LOG(ERR,
                        "Ethdev port_id=%u requested Tx offloads
                       0x%"PRIx64" doesn't match Tx offloads "
                        "capabilities 0x%"PRIx64" in %s()\n",
                        port_id, dev_conf->txmode.offloads,
                        dev_info.tx_offload_capa,
                        __func__);
             Return -EINVAL;
        }
       Since no slaves are configured yet, the offloads in dev_info structure of bond are set to 0.Hence there is a mismatch between dev_conf structure whose offloads are set in DPDK application and dev_info structure in which all the values 0.

         Finally this causes bond and slave driver setup to fail. How can this issue be fixed ?

Thanks and Regards,
Nandini




Juniper Business Use Only


Juniper Business Use Only


More information about the dev mailing list