[dpdk-users] pktgen - !PANIC!: *** Did not find any ports to use ***
Stephen Hemminger
stephen at networkplumber.org
Tue May 28 16:02:14 CEST 2019
On Tue, 28 May 2019 08:33:35 +0300
Sara Gittlin <sara.gittlin at gmail.com> wrote:
> Hello
> According the dpdk release notes - my NIC - Onboard NIC: *Intel(R)
> X552*/X557-AT
> (2x10G) was tested
>
> Tested Platforms
>
> ----------------
>
>
> #. SuperMicro 1U
>
>
> - BIOS: 1.0c
>
> - Processor: Intel(R) Atom(TM) CPU C2758 @ 2.40GHz
>
>
> #. SuperMicro 1U
>
>
> - BIOS: 1.0a
>
> - Processor: Intel(R) Xeon(R) CPU D-1540 @ 2.00GHz
>
> *- Onboard NIC: Intel(R) X552/X557-AT (2x10G)*
>
> Thank you
>
> -Sara
>
> On Mon, May 27, 2019 at 5:56 PM Sara Gittlin <sara.gittlin at gmail.com> wrote:
>
> > Thank you Stephen
> > i can run pktgen on the host with same 2 VF's
> > Regards
> > -Sara
> >
> >
> > On Mon, May 27, 2019 at 5:52 PM Stephen Hemminger <
> > stephen at networkplumber.org> wrote:
> >
> >> On Mon, 27 May 2019 17:44:17 +0300
> >> Sara Gittlin <sara.gittlin at gmail.com> wrote:
> >>
> >> > Hello ,
> >> > I'm running pktgen on a ubuntu-16.0p4 VM w 3 CPU's,
> >> > I added 2 SRIOV VFs devices to the VM - and i can see them w lspci or
> >> > dpdk-devbind --status
> >> > 00:08.0 Ethernet controller: Intel Corporation Ethernet Connection X552
> >> > Virtual Function
> >> > 00:09.0 Ethernet controller: Intel Corporation Ethernet Connection X552
> >> > Virtual Function
> >>
> >> Most likely these devices are missing/not supported by DPDK driver.
> >> Look at the numeric id's (lspci -n) and compare them with the list
> >> of pci ids in the driver source.
> >>
> >> In the past with Intel devices it also helped to look at the Linux
> >> kernel driver. Sometimes the missing id's were there and some small
> >> changes to the MAC code was necessary to get them to work.
Walking backwards from PCI to device.
1. The PCI id table for lspci is in /usr/share/misc/pci.ids
The entry for X552 is:
15a9 X552 Virtual Function
Therefore the PCI vendor:device is 8086:15a9
4. On Linux this device is under ixgbevf as
#define IXGBE_DEV_ID_X550EM_X_VF_HV 0x15A9
static const struct pci_device_id ixgbevf_pci_tbl[] = {
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_VF), board_82599_vf },
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_82599_VF_HV), board_82599_vf_hv },
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X540_VF), board_X540_vf },
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X540_VF_HV), board_X540_vf_hv },
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550_VF), board_X550_vf },
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550_VF_HV), board_X550_vf_hv },
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_X_VF), board_X550EM_x_vf }
{PCI_VDEVICE(INTEL, IXGBE_DEV_ID_X550EM_A_VF), board_x550em_a_vf },
/* required last entry */
{0, }
};
Conclusion: you are using X552 on Hyper-V.
5. In DPDK, similar table is ixgbe_ethdev.
/*
* The set of PCI devices this driver supports (for 82599 VF)
*/
static const struct rte_pci_id pci_id_ixgbevf_map[] = {
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_VF) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_VF_HV) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540_VF) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X540_VF_HV) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550_VF_HV) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550_VF) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_VF) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_A_VF_HV) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_VF) },
{ RTE_PCI_DEVICE(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_X550EM_X_VF_HV) },
{ .vendor_id = 0, /* sentinel */ },
};
So the device is supported...
A different possibility is that since you are running on Hyper-V (at least
according to the device ids) is that vdev_netvsc device is trying to setup tap
failsafe and messing the port numbers around.
Try disabling it by setting this in the config.
CONFIG_RTE_LIBRTE_VDEV_NETVSC_PMD=n
PS: Top posting is not preferred on open source mailing lists.
More information about the users
mailing list