From patchwork Wed Jan 17 15:04:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chas Williams <3chas3@gmail.com> X-Patchwork-Id: 33928 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E96C11B16C; Wed, 17 Jan 2018 16:05:09 +0100 (CET) Received: from mail-qk0-f196.google.com (mail-qk0-f196.google.com [209.85.220.196]) by dpdk.org (Postfix) with ESMTP id BAAA01B04C for ; Wed, 17 Jan 2018 16:05:07 +0100 (CET) Received: by mail-qk0-f196.google.com with SMTP id l64so25501703qke.13 for ; Wed, 17 Jan 2018 07:05:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=OMMiO/OZYr0XFaeqM5tszcGjww3+m2VrEagQm4PTtBs=; b=FtrXyROS8AF44t2f0OVeEEtJ0XEGiEEcR1YDddwW368yegRmLnOKStImzAFdrbhD4d FTSqjHNswzB4Fg/yrR/TVaIiqCr1XlQq3AIph7DWb+cAKL/iRW61ydGxZxXvKc4fyVW+ tTznI6wDRRJHZfQcswCdH/09I5dTyGtTl9j+oezCzMwZPX5xyMgql7Ua2+SEkoMp5BxW 9FZjz4z6d5nqE6yu72IISy7Rt27MmX+PtoCPdBYG17H20ZVa31sDMAD1QQFCTQyZrdl6 BvpHa7XBLyCBzYi4ODaJOxdXtkfMPtSKfieX0xVOQYpYZbqFRtRWvnnWjMgOu8IOv5DU jYnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=OMMiO/OZYr0XFaeqM5tszcGjww3+m2VrEagQm4PTtBs=; b=r2nvmHkpgHG8VIxfZEDMKAl69jcYV6V2KP1hxqyMRO8xLB2+fdP90MyZIVT+4U6OwJ MRbAUZDXpEHwaORKrTLagbzv1ULbUeJjtYs7fglnXnID4mK5piAzV7lTFLePcIBACazb ZZVKMEDixNdke/bM7ldxuEJPiP9nk31qTiapSbfgw32WnQfkYjXEOBtLYfp/Z7uM9zK/ VuLEEo4f5FasvRZ8VtoRprFcjeUHUA8FbWKHEcSP0aLo5K21dxbDpu0BOMVOvLoAoeVi jiJQc6n8MpPMhqeyqaWoxWP/rkDRA5UL05uwYToM+WhA5WobfJgFpi2PM03Y4RS8KYS9 Oxkg== X-Gm-Message-State: AKwxytfmVuuT+tngtuZUzrhpK+NDOQVSm/t0ycSI66e2fK8mMHUgJ7Y+ fKWlteKFFQvHg5rTnBAJaqV32g== X-Google-Smtp-Source: ACJfBos1zPKhtj0d00+7HWHbMnBJZ7Yvkv34pXdoDXwFlBKvuC9vzwYxTHweMPAIDIV1piWikxgA7Q== X-Received: by 10.55.10.7 with SMTP id 7mr8094318qkk.353.1516201506921; Wed, 17 Jan 2018 07:05:06 -0800 (PST) Received: from monolith.home (pool-173-79-224-159.washdc.fios.verizon.net. [173.79.224.159]) by smtp.gmail.com with ESMTPSA id u17sm2951881qka.18.2018.01.17.07.05.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Jan 2018 07:05:06 -0800 (PST) From: Chas Williams <3chas3@gmail.com> To: dev@dpdk.org Cc: skhare@vmware.com, "Charles (Chas) Williams" , Chas Williams Date: Wed, 17 Jan 2018 10:04:57 -0500 Message-Id: <20180117150457.17806-2-3chas3@gmail.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180117150457.17806-1-3chas3@gmail.com> References: <20180117150457.17806-1-3chas3@gmail.com> Subject: [dpdk-dev] [PATCH 2/2] net/vmxnet3: keep consistent link status 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" From: "Charles (Chas) Williams" Bonding may examine the link properties to ensure that matching interfaces are bound together. If the link is going to have fixed properties, these need to remain consistent regardless of the link_status or the state of the adapter. Signed-off-by: Chas Williams --- drivers/net/vmxnet3/vmxnet3_ethdev.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index 776a0da..d5379dd 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -267,6 +267,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev) struct rte_pci_device *pci_dev; struct vmxnet3_hw *hw = eth_dev->data->dev_private; uint32_t mac_hi, mac_lo, ver; + struct rte_eth_link link; PMD_INIT_FUNC_TRACE(); @@ -369,6 +370,13 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev) memset(hw->saved_tx_stats, 0, sizeof(hw->saved_tx_stats)); memset(hw->saved_rx_stats, 0, sizeof(hw->saved_rx_stats)); + /* set the initial link status */ + memset(&link, 0, sizeof(link)); + link.link_duplex = ETH_LINK_FULL_DUPLEX; + link.link_speed = ETH_SPEED_NUM_10G; + link.link_autoneg = ETH_LINK_SPEED_FIXED; + vmxnet3_dev_atomic_write_link_status(eth_dev, &link); + return 0; } @@ -857,6 +865,9 @@ vmxnet3_dev_stop(struct rte_eth_dev *dev) /* Clear recorded link status */ memset(&link, 0, sizeof(link)); + link.link_duplex = ETH_LINK_FULL_DUPLEX; + link.link_speed = ETH_SPEED_NUM_10G; + link.link_autoneg = ETH_LINK_SPEED_FIXED; vmxnet3_dev_atomic_write_link_status(dev, &link); } @@ -1145,12 +1156,11 @@ __vmxnet3_dev_link_update(struct rte_eth_dev *dev, VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD, VMXNET3_CMD_GET_LINK); ret = VMXNET3_READ_BAR1_REG(hw, VMXNET3_REG_CMD); - if (ret & 0x1) { + if (ret & 0x1) link.link_status = ETH_LINK_UP; - link.link_duplex = ETH_LINK_FULL_DUPLEX; - link.link_speed = ETH_SPEED_NUM_10G; - link.link_autoneg = ETH_LINK_AUTONEG; - } + link.link_duplex = ETH_LINK_FULL_DUPLEX; + link.link_speed = ETH_SPEED_NUM_10G; + link.link_autoneg = ETH_LINK_AUTONEG; vmxnet3_dev_atomic_write_link_status(dev, &link);