[dpdk-dev] net/ixgbe: fix default MAC setting
Checks
Commit Message
Hi Igor,
From: Igor Ryzhov [mailto:iryzhov@nfware.com]
Sent: Tuesday, May 2, 2017 9:33 PM
To: Lu, Wenzhuo
Cc: dev@dpdk.org; stable@dpdk.org
Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: fix default MAC setting
Hello Wenzhuo,
How about also delete meaningless "ixgbe_remove_rar(dev, 0);"?
[Wenzhuo] The current behavior of this set_default_mac_addr is to delete all the existing MAC addresses and only set the assigned address as the default address. This patch is to fix a bug not change the behavior. So have to leave "ixgbe_remove_rar(dev, 0);" here.
Best regards,
Igor
On Tue, May 2, 2017 at 11:34 AM, Wenzhuo Lu <wenzhuo.lu@intel.com<mailto:wenzhuo.lu@intel.com>> wrote:
Pool 0 is not PF, it's VF 0. So the MAC is set for VF 0
but not PF.
The code introduced a weird issue. In the scenario PF + VF,
when only starting PF, the default PF MAC address is working.
But after starting a VF, the default PF MAC address becomes
the VF's address.
Use the pool which is not occupied by VFs for PF to fix it.
Fixes: 8164fe82846b ("ixgbe: add default mac address modifier")
Cc: stable@dpdk.org<mailto:stable@dpdk.org>
Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com<mailto:wenzhuo.lu@intel.com>>
---
drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--
1.9.3
@@ -4658,9 +4658,11 @@ static int ixgbevf_dev_xstats_get_names(__rte_unused struct rte_eth_dev *dev,
static void
ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct ether_addr *addr)
{
+ struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+
ixgbe_remove_rar(dev, 0);
- ixgbe_add_rar(dev, addr, 0, 0);
+ ixgbe_add_rar(dev, addr, 0, pci_dev->max_vfs);
}
static bool