RTE_ETH_EVENT_INTR_LSC callbacks are not called when all slaves goes down in bond_ethdev_lsc_event_callback. It causes that link status change of bonded device is not propagated up.
Fixes: deba8a2f8b0b ("net/bonding: fix link properties management") Signed-off-by: Tomasz Kulasek <tomaszx.kula...@intel.com> --- drivers/net/bonding/rte_eth_bond_pmd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 8f9a860..3ee70ba 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -2535,6 +2535,9 @@ struct bwg_slave { /* Remove from active slave list */ deactivate_slave(bonded_eth_dev, port_id); + if (internals->active_slave_count < 1) + lsc_flag = 1; + /* Update primary id, take first active slave from list or if none * available set to -1 */ if (port_id == internals->current_primary_port) { -- 1.9.1