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 7AE69A0564; Tue, 24 Mar 2020 05:45:08 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C50511C02B; Tue, 24 Mar 2020 05:45:07 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 138871C00E for ; Tue, 24 Mar 2020 05:45:05 +0100 (CET) IronPort-SDR: d+ec3vafHO1Gq61SA0K1jU55YBKiAWY5cE39CJ77AIl71zsJxjKcTtTjsnaN9yOTTDGe5wl1aq ZkF2/ImtZ4+A== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2020 21:45:04 -0700 IronPort-SDR: f6rufcOu6gr3qa5qWsOfXKWmBYxKlHeySGFpIdjXROdd1ZYuhibPUjVQ/kKNoCjoJTn4HNRo5m gH7PxTvP/baA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,299,1580803200"; d="scan'208";a="265015650" Received: from dpdk.sh.intel.com ([10.239.255.55]) by orsmga002.jf.intel.com with ESMTP; 23 Mar 2020 21:45:02 -0700 From: Guinan Sun To: dev@dpdk.org Cc: Qi Zhang , Guinan Sun Date: Tue, 24 Mar 2020 04:36:46 +0000 Message-Id: <20200324043646.3224-1-guinanx.sun@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH] net/i40e: enable VF to program MAC address 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" Due to the restriction of the flag I40E_FLAG_VF_MAC_BY_PF, VF cannot program the MAC address. In order to solve this inflexibility, the use of I40E_FLAG_VF_MAC_BY_PF has been deleted in the code implementation to ensure that VF can flexibly program the MAC address. Signed-off-by: Guinan Sun --- drivers/net/i40e/i40e_ethdev.h | 4 +--- drivers/net/i40e/i40e_ethdev_vf.c | 8 +------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h index aac89de91..8cabdba6a 100644 --- a/drivers/net/i40e/i40e_ethdev.h +++ b/drivers/net/i40e/i40e_ethdev.h @@ -124,7 +124,6 @@ enum i40e_flxpld_layer_idx { #define I40E_FLAG_FDIR (1ULL << 6) #define I40E_FLAG_VXLAN (1ULL << 7) #define I40E_FLAG_RSS_AQ_CAPABLE (1ULL << 8) -#define I40E_FLAG_VF_MAC_BY_PF (1ULL << 9) #define I40E_FLAG_ALL (I40E_FLAG_RSS | \ I40E_FLAG_DCB | \ I40E_FLAG_VMDQ | \ @@ -133,8 +132,7 @@ enum i40e_flxpld_layer_idx { I40E_FLAG_HEADER_SPLIT_ENABLED | \ I40E_FLAG_FDIR | \ I40E_FLAG_VXLAN | \ - I40E_FLAG_RSS_AQ_CAPABLE | \ - I40E_FLAG_VF_MAC_BY_PF) + I40E_FLAG_RSS_AQ_CAPABLE) #define I40E_RSS_OFFLOAD_ALL ( \ ETH_RSS_FRAG_IPV4 | \ diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index 244397e0e..bb5d28a44 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1309,10 +1309,8 @@ i40evf_init_vf(struct rte_eth_dev *dev) vf->vsi.adapter = I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); /* Store the MAC address configured by host, or generate random one */ - if (rte_is_valid_assigned_ether_addr( + if (!rte_is_valid_assigned_ether_addr( (struct rte_ether_addr *)hw->mac.addr)) - vf->flags |= I40E_FLAG_VF_MAC_BY_PF; - else rte_eth_random_addr(hw->mac.addr); /* Generate a random one */ I40E_WRITE_REG(hw, I40E_VFINT_DYN_CTL01, @@ -2780,7 +2778,6 @@ static int i40evf_set_default_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) { - struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private); struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private); if (!rte_is_valid_assigned_ether_addr(mac_addr)) { @@ -2788,9 +2785,6 @@ i40evf_set_default_mac_addr(struct rte_eth_dev *dev, return -EINVAL; } - if (vf->flags & I40E_FLAG_VF_MAC_BY_PF) - return -EPERM; - i40evf_del_mac_addr_by_addr(dev, (struct rte_ether_addr *)hw->mac.addr); if (i40evf_add_mac_addr(dev, mac_addr, 0, 0) != 0) -- 2.17.1