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 DB6F2A00BE for ; Wed, 8 Jul 2020 10:59:39 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A492F1D999; Wed, 8 Jul 2020 10:59:39 +0200 (CEST) Received: from huawei.com (szxga07-in.huawei.com [45.249.212.35]) by dpdk.org (Postfix) with ESMTP id 0F17A1DCF3 for ; Wed, 8 Jul 2020 10:59:38 +0200 (CEST) Received: from DGGEMS409-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 804569B35FC84375D4DD for ; Wed, 8 Jul 2020 16:59:36 +0800 (CST) Received: from localhost (10.174.186.46) by DGGEMS409-HUB.china.huawei.com (10.3.19.209) with Microsoft SMTP Server id 14.3.487.0; Wed, 8 Jul 2020 16:59:30 +0800 From: luyicai To: CC: Yicai Lu , Date: Wed, 8 Jul 2020 16:59:25 +0800 Message-ID: <1594198765-10836-1-git-send-email-luyicai@huawei.com> X-Mailer: git-send-email 1.9.5.msysgit.1 In-Reply-To: <1589887092-26360-1> References: <1589887092-26360-1> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.174.186.46] X-CFilter-Loop: Reflected Subject: [dpdk-stable] [PATCH V2] net/bonding: fix lacp negotiation failed X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" From: Yicai Lu When two host is connected directly without any devices like switch, rx_machine_update would recieving partner lacp negotiation packets, which partner's port mac filled with zeros. So in this situation, it would never go rx_machine branch with correct mac! 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. -- 1.9.5.msysgit.1