[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <fcacaf54-5f4e-fd6e-d00c-9de7e74d26f4@huawei.com>
Date:   Thu, 16 Feb 2017 17:20:38 +0800
From:   zhou zhengwu <zhouzhengwu@...wei.com>
To:     Jay Vosburgh <j.vosburgh@...il.com>,
        Veaceslav Falico <vfalico@...il.com>,
        Andy Gospodarek <andy@...yhouse.net>
CC:     <netdev@...r.kernel.org>
Subject: [BUG] LACP state machine will find nothing and do nothing when link
 is single passing
Hi
[1]Problem description:
    ServerA [bond] ----------- [bond] ServerB
    I have two servers which connected with bonding interfaces LACP 
enabled. Two bonding interfaces are configured like following:
    insmod ./bonding.ko mode=4 lacp_rate=1 all_slaves_active=1
    echo +trunk1 > /sys/class/net/bonding_masters
    echo +eth0 > /sys/class/net/trunk1/bonding/slaves
    echo +eth1 > /sys/class/net/trunk1/bonding/slaves
    Firstly, it works well.
    Then, one port (for example, eth0) in serverB failed, it can just 
send but not receive packets, however it still is UP.
    Result:
    In serverB, lcap is work well.
    While In serverA, eth0 connecting with eth0 in serverB is in the 
same lacp aggregator with eth1 and traffic is still sent through it.
[2]From the lacp implementation, we can see:
    In above condition, eth0 in server A will receive lacpdu which show 
that AD_STATE_SYNCHRONIZATION is unset in actor_state to indicate there 
is something wrong in eth0 of server B. However, our implementation of 
lacp will just check the port parameters and not check the port state.
If the peer port state changes, local lacp state machine will not find 
which will cause the lacp state machine works wrong.
Powered by blists - more mailing lists
 
