From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B9948A0528; Sat, 11 Jul 2020 03:21:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D281C1DADE; Sat, 11 Jul 2020 03:21:05 +0200 (CEST) Received: from huawei.com (szxga04-in.huawei.com [45.249.212.190]) by dpdk.org (Postfix) with ESMTP id F34221C1FB; Sat, 11 Jul 2020 03:21:03 +0200 (CEST) Received: from DGGEMS401-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 75C0CA2F21FA6CDA780D; Sat, 11 Jul 2020 09:21:00 +0800 (CST) Received: from [10.69.31.206] (10.69.31.206) by DGGEMS401-HUB.china.huawei.com (10.3.19.201) with Microsoft SMTP Server id 14.3.487.0; Sat, 11 Jul 2020 09:20:52 +0800 To: luyicai , , Thomas Monjalon References: <1589887092-26360-1> <1594351775-30864-1-git-send-email-luyicai@huawei.com> CC: , , , , , , , "Wei Hu (Xavier)" From: "Wei Hu (Xavier)" Message-ID: <9fc7792c-690d-8745-57d8-7235c48cad8f@huawei.com> Date: Sat, 11 Jul 2020 09:20:52 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <1594351775-30864-1-git-send-email-luyicai@huawei.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.69.31.206] X-CFilter-Loop: Reflected Subject: Re: [dpdk-dev] [PATCH V2] net/bonding: fix lacp negotiation failed X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Reviewed-by: Wei Hu (Xavier) On 2020/7/10 11:29, luyicai wrote: > From: Yicai Lu > > When two host is connected directly without any devices like switch, > rx_machine_update would recieving partner lacp negotiation packets, > and partner's port mac is filled with zeros in this packet, > which is different with internal's mode4 mac. So in this situation, > it would never go rx_machine branch and then execute mac swap for negotiation! > Thus bond mode 4 will negotiation failed. > > Fixes: 56cbc0817399 ("net/bonding: fix LACP negotiation") > Cc: stable@dpdk.org > > Signed-off-by: luyicai > --- > v1 -> v2: Adjust commit info style > --- > drivers/net/bonding/rte_eth_bond_8023ad.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c > index b77a37d..2002ec0 100644 > --- a/drivers/net/bonding/rte_eth_bond_8023ad.c > +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c > @@ -798,7 +798,8 @@ > RTE_ASSERT(lacp->lacpdu.subtype == SLOW_SUBTYPE_LACP); > > partner = &lacp->lacpdu.partner; > - if (rte_is_same_ether_addr(&partner->port_params.system, > + if (rte_is_zero_ether_addr(&partner->port_params.system) || > + rte_is_same_ether_addr(&partner->port_params.system, > &internals->mode4.mac_addr)) { > /* This LACP frame is sending to the bonding port > * so pass it to rx_machine.