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