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

Wei Hu (Xavier) xavier_huwei at 163.com
Mon Mar 2 01:58:58 CET 2020


Hi, Chas Williams
    Could you please give some suggestion on these patches?
    Thanks.

    Regards
Xavier

On 2020/2/28 9:31, Wei Hu (Xavier) wrote:
> 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