[dpdk-dev] [PATCH v4] net/bonding: change the state machine to defaulted

Ferruh Yigit ferruh.yigit at intel.com
Tue Jul 21 01:28:30 CEST 2020


On 7/18/2020 8:08 AM, Wei Hu (Xavier) wrote:
> Hi, Weifeng Li
> 
> 
> On 2020/7/18 12:35, Weifeng Li wrote:
>> A dpdk bonding 802.3ad network as follows:
>> +----------+                        +-----------+
>> |dpdk lacp |bond1.1 <------> bond2.1|switch lacp|
>> |          |bond1.2 <------> bond2.2|           |
>> +----------+                        +-----------+
>> If a fiber optic go wrong about single pass during normal running like
>> this:
>> bond1.2 -----> bond2.2 ok
>> bond1.2 <--x-- bond2.2 error: bond1.2 receive no LACPDU Some packets from
>>                                switch to dpdk will choose bond2.2 and lost.
>>
>> DPDK lacp state machine will transits to the expired state if no LACPDU
>> is received before the current_while_timer expires. But if no LACPDU is
>> received before the current_while_timer expires again, DPDK lacp state
>> machine has no change. Bond2.2 can not change to inactive depend on the
>> received LACPDU.
>> According to IEEE 802.3ad, if no lacpdu is received before the
>> current_while_timer expires again, the state machine should transits from
>> expired to defaulted. Bond2.2 will change to inactive depend on the LACPDU
>> with defaulted state.
>>
>> This patch adds a state machine change from expired to defaulted when no
>> lacpdu is received before the current_while_timer expires again according
>> to IEEE 802.3ad:
>> If no LACPDU is received before the current_while timer expires again,
>> the state machine transits to the DEFAULTED state. The record Default
>> function overwrites the current operational parameters for the Partner
>> with administratively configured values. This allows configuration of
>> aggregations and individual links when no protocol partner is present,
>> while still permitting an active partner to override default settings.
>> The update_Default_Selected function sets the Selected variable FALSE
>> if the Link Aggregation Group has changed. Since all operational parameters
>> are now set to locally administered values there can be no disagreement as
>> to the Link Aggregation Group, so the Matched variable is set TRUE.
>>
>> The relevant description is in the chapter 43.4.12 of the link below:
>> https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=850426
> 
> Fixes: 46fb43683679 ("bond: add mode 4")
> Cc: stable at dpdk.org
>> Signed-off-by: Weifeng Li <liweifeng96 at 126.com>
> 
> Acked-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
> 

Applied to dpdk-next-net/master, thanks.


More information about the dev mailing list