When using testpmd to test bonding, the following sequence of commands will fail as described: testpmd> port stop all testpmd> create bonded device 4 0 testpmd> add bonding slave 0 2 testpmd> add bonding slave 1 2 __eth_bond_slave_add_lock_free(352) - Invalid link properties for slave 1 in bonding mode 4 Failed to add slave 1 to master port = 2 Root cause is a mismatch in port link status caused by testpmd implementation that does not re-check all ports, but stops at the first port that shows link down. To work around the issue insert "show port info all" command after "port stop all" if using testpmd, or make sure that the application either calls rte_eth_link_get on all ports that will be bound, or on none of them. Patch addressing the issue: https://dpdk.org/dev/patchwork/patch/39567/
A V5 is available for review with an ACK by Declan. https://patches.dpdk.org/patch/43187/ We can close this once Ferruh applies it. Next AI is on Ferruh.
The patch is merged.