From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chas Williams <3chas3@gmail.com> Subject: [PATCH] net/bonding: fix link properties with autoneg Date: Tue, 13 Feb 2018 17:54:30 -0500 Message-ID: <20180213225430.15556-1-3chas3@gmail.com> Cc: declan.doherty@intel.com, Chas Williams To: dev@dpdk.org Return-path: Received: from mail-qk0-f195.google.com (mail-qk0-f195.google.com [209.85.220.195]) by dpdk.org (Postfix) with ESMTP id B3D0D1B1B3 for ; Tue, 13 Feb 2018 23:54:36 +0100 (CET) Received: by mail-qk0-f195.google.com with SMTP id n198so167716qke.7 for ; Tue, 13 Feb 2018 14:54:36 -0800 (PST) List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Chas Williams If a link is carrier down and using autonegotiation, then the PMD may not have detected a speed yet. In this case the best we can do is ignore the link speed and duplex since they aren't valid. To be completely correct, there should be additional checks to prevent a slave that negotiates a different speed from being activated. Signed-off-by: Chas Williams --- drivers/net/bonding/rte_eth_bond_pmd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 92ad688..5559879 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -1545,9 +1545,10 @@ link_properties_valid(struct rte_eth_dev *ethdev, if (bond_ctx->mode == BONDING_MODE_8023AD) { struct rte_eth_link *bond_link = &bond_ctx->mode4.slave_link; - if (bond_link->link_duplex != slave_link->link_duplex || - bond_link->link_autoneg != slave_link->link_autoneg || - bond_link->link_speed != slave_link->link_speed) + if (bond_link->link_autoneg != slave_link->link_autoneg || + (bond_link->link_autoneg != ETH_LINK_AUTONEG && + (bond_link->link_duplex != slave_link->link_duplex || + bond_link->link_speed != slave_link->link_speed))) return -1; } -- 2.9.5