Bug 549

Summary: With offloads, bond device initialization fails with command-line bond arguments
Product: DPDK Reporter: Kiran (kiran.kn80)
Component: eventdevAssignee: Declan Doherty (declan.doherty)
Status: CONFIRMED ---    
Severity: critical    
Priority: High    
Version: 20.11   
Target Milestone: 20.11   
Hardware: All   
OS: All   

Description Kiran 2020-10-09 20:23:03 CEST
In Tungsten fabric, we are trying to initialize bond device using the command-line vdev argument - 

"--vdev eth_bond_bond0,mode=4,xmit_policy=l34,socket_id=0,mac=00:1b:21:bb:f9:48,lacp_rate=0,slave=0000:02:00.0,slave=0000:02:00.1"

We have the bond device offloads set - DEV_RX_OFFLOAD_CHECKSUM and DEV_RX_OFFLOAD_JUMBO_FRAME

It fails here - https://github.com/DPDK/dpdk/blob/main/lib/librte_ethdev/rte_ethdev.c#L1378

In DPDK 18.05, this "return" was not present, but it's added in DPDK 19.11.

The reason it fails there is because bond inherits offloads from slave. But in case where command-line arguments are present for the bond, the slave is initialized from the bond driver later and so it is not initialized. Due to this, offloads are not inherited to the bond device and the above check fails.

I have discussed this with Doherty, Declan <declan.doherty@intel.com> and he agrees this needs to be fixed.