[dpdk-dev] [PATCH 1/2] net/bonding: fix MAC address when switching active port

Wei Hu (Xavier) xavier_huwei at 163.com
Fri Feb 28 02:31:59 CET 2020


Hi,Ferruh Yigit

On 2020/2/28 1:03, Ferruh Yigit wrote:
> On 2/25/2020 9:29 AM, Wei Hu (Xavier) wrote:
>> From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
>>
>> 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 at dpdk.org
>>
>> Reported-by: Chunsong Feng <fengchunsong at huawei.com>
>> Signed-off-by: Chunsong Feng <fengchunsong at huawei.com>
>> Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
> 
> 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



More information about the dev mailing list