From patchwork Mon Sep 26 16:18:46 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 16145 X-Patchwork-Delegate: bruce.richardson@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id DA4E46CD4; Mon, 26 Sep 2016 18:18:49 +0200 (CEST) Received: from mail-gw1-out.broadcom.com (mail-gw1-out.broadcom.com [216.31.210.62]) by dpdk.org (Postfix) with ESMTP id 6ECEB6CD3 for ; Mon, 26 Sep 2016 18:18:48 +0200 (CEST) X-IronPort-AV: E=Sophos;i="5.30,400,1470726000"; d="scan'208";a="105347830" Received: from mail-irv-18.broadcom.com ([10.15.198.37]) by mail-gw1-out.broadcom.com with ESMTP; 26 Sep 2016 11:23:23 -0700 Received: from mail-irva-12.broadcom.com (mail-irva-12.broadcom.com [10.11.16.101]) by mail-irv-18.broadcom.com (Postfix) with ESMTP id A312E850C4 for ; Mon, 26 Sep 2016 09:18:53 -0700 (PDT) Received: from C02PT1RBG8WP.aus.broadcom.com (dhcp-10-46-50-80.aus.broadcom.com [10.46.50.80]) by mail-irva-12.broadcom.com (Postfix) with ESMTP id D5026A6281 for ; Mon, 26 Sep 2016 09:18:46 -0700 (PDT) Date: Mon, 26 Sep 2016 11:18:46 -0500 From: Ajit Khaparde To: dev@dpdk.org Message-ID: <20160926161846.GA28157@C02PT1RBG8WP.aus.broadcom.com> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) Subject: [dpdk-dev] [v2 05/15] bnxt: Add support to load bnxt PMD on a SR-IOV VF X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add support to the bnxt PMD to load on a PCI VF. 1) VF cannot change parameters like - speed, autoneg and pause 2) If the VF MAC address shows up as all 0's it has to be provisioned by the PF in the hypervisor. Signed-off-by: Ajit Khaparde Reviewed-by: David Christensen --- drivers/net/bnxt/bnxt_ethdev.c | 15 ++++++++++++--- drivers/net/bnxt/bnxt_hwrm.c | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index d52c7c9..110ec2a 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -539,6 +539,11 @@ static void bnxt_mac_addr_add_op(struct rte_eth_dev *eth_dev, struct bnxt_vnic_info *vnic = STAILQ_FIRST(&bp->ff_pool[pool]); struct bnxt_filter_info *filter; + if (BNXT_VF(bp)) { + RTE_LOG(ERR, PMD, "Cannot add MAC address to a VF interface\n"); + return; + } + if (!vnic) { RTE_LOG(ERR, PMD, "VNIC not found for pool %d!\n", pool); return; @@ -857,8 +862,10 @@ static int bnxt_flow_ctrl_set_op(struct rte_eth_dev *dev, { struct bnxt *bp = (struct bnxt *)dev->data->dev_private; - if (BNXT_NPAR_PF(bp)) - return 0; + if (BNXT_NPAR_PF(bp) || BNXT_VF(bp)) { + RTE_LOG(ERR, PMD, "Flow Control Settings cannot be modified\n"); + return -ENOTSUP; + } switch (fc_conf->mode) { case RTE_FC_NONE: @@ -940,7 +947,9 @@ static struct eth_dev_ops bnxt_dev_ops = { static bool bnxt_vf_pciid(uint16_t id) { if (id == BROADCOM_DEV_ID_57304_VF || - id == BROADCOM_DEV_ID_57406_VF) + id == BROADCOM_DEV_ID_57406_VF || + id == BROADCOM_DEV_ID_5731X_VF || + id == BROADCOM_DEV_ID_5741X_VF) return true; return false; } diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 3a6ff5c..1846955 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -1452,7 +1452,7 @@ int bnxt_set_hwrm_link_config(struct bnxt *bp, bool link_up) struct bnxt_link_info link_req; uint16_t speed; - if (BNXT_NPAR_PF(bp)) + if (BNXT_NPAR_PF(bp) || BNXT_VF(bp)) return 0; rc = bnxt_valid_link_speed(dev_conf->link_speeds,