Re: [dpdk-dev] [PATCH 1/2] net/bonding: fix MAC address when switching active port
From: Wei Hu (Xavier) <hidden>
Date: 2020-02-28 01:32:55
Hi,Ferruh Yigit On 2020/2/28 1:03, Ferruh Yigit wrote:
On 2/25/2020 9:29 AM, Wei Hu (Xavier) wrote:quoted
From: "Wei Hu (Xavier)" <redacted> Currently, based on a active-backup bond device, when the link status of the primary port changes from up to down, one slave port changes to the primary port, but the new primary port's MAC address cannot change to the bond device's MAC address. And we can't continue receive packets whose destination MAC addresses are the same as the bond devices's MAC address. The current bonding PMD driver call mac_address_slaves_update function to modify the MAC address of all slaves devices: the primary port using bond device's MAC address, and other slaves devices using the respective MAC address. We found that one error using primary_port instead of current_primary_port in mac_address_slaves_update function. On the other hand, The current bonding PMD driver sets slave devices's MAC address according to the variable named current_primary_port. The variable named current_primary_port changes in the following scenario: 1. Add the slave devices to bond, the first slave port will be regardes as the current_primary_port. If changing the order of adding the slave devices, the value of the variable named current_primary_port will be different. 2. The upper application specifies primary_port via calling the rte_eth_bond_primary_set API function. 3. Delete the primary slave device. 4. The link status of the primary port changes from up to down. We have tested the above 4 cases and found that there are problems that the new primary port's MAC address didn't change to the bond device's MAC address when running case 3 and 4. When current_primary_port changes, the new primary port's MAC address should change at the same time. We also need to call mac_address_slaves_update function to update MAC addresses in case 3 and 4. For more details please refer to: https://bugs.dpdk.org/show_bug.cgi?id=256 Bugzilla ID: 256 Fixes: 2efb58cbab6e ("bond: new link bonding library") Cc: stable@dpdk.org Reported-by: Chunsong Feng <redacted> Signed-off-by: Chunsong Feng <redacted> Signed-off-by: Wei Hu (Xavier) <redacted>Please cc the maintainer on the patches. cc'ed Chas for this one. I am using './devtools/get-maintainer.sh' script, once you set it up, it helps a lot.
Thanks for your suggestion. Regards Xavier