[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