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 <nrangasw...@juniper.net>
Date: Friday, September 11, 2020 at 10:23 AM
To: "ch...@att.com" <ch...@att.com>
Cc: Kiran KN <kira...@juniper.net>, Sachchidanand Vaidya 
<vaidy...@juniper.net>, Robin Fahy <rf...@juniper.net>
Subject: FW: Regarding bond and slave driver configuration in DPDK 19.11

Hi Chas,
I had emailed dev@dpdk.org<mailto:dev@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 <nrangasw...@juniper.net>
Date: Monday, August 31, 2020 at 12:02 PM
To: "dev@dpdk.org" <dev@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

Reply via email to