MoonGen icon indicating copy to clipboard operation
MoonGen copied to clipboard

Netronome NFP PMD support in MoonGen

Open NetronomeMoongen opened this issue 8 years ago • 10 comments

The Netronome NFP PMD is part of the dpdk with MoonGen.

However, enabling the NFP PMD via the dpdk common_base config file does not link it into MoonGen / libmoon

Enabling the NFP PMD does compile librte_pmd_nfp.

Steps to verify:

clone latest MoonGen from github git submodule update --init --recursive Edit libmoon/deps/dpdk/config/common_base to enable NFP PMD run build.sh

If I then try to run MoonGen on a Netronome device, I get "Found 0 usable devices"

(The huge tables were set up with setup_hugetlbfs.sh, the dpdk-conf.lua file was set up to include the proper PCI addresses in the white list, and the interfaces were bound to igb_uio

If I then manually link in librte_pmd_nfp by editing CMakeists.txt to add rte_pmd_nfp to target_link_librries (not the right way to do it, bt proves the point) and run build.sh again, the NFP intefaces work

So basically, enabling the NFP PMD sgould also link the driver into MoonGen

Expect: Enabling NFP PMD to also automatically link librte_pmd_nfp into libmoon / MoonGen See: driver compiled but not linked

NetronomeMoongen avatar Oct 16 '17 08:10 NetronomeMoongen

Also, can the driver be enabled / linked by default, or alternatively be enabled by a build.sh flag like was done for the Mellanox cards with --mlx4 and --mlx5 ?

NetronomeMoongen avatar Oct 16 '17 09:10 NetronomeMoongen

I've added it to be linked in by default, but I couldn't test it.

I did find some server with some netronome NIC (pci device id 0x4000) and wanted to test it to add some config flags to make sure statistics etc are reported correctly. But I couldn't get it to work because I don't have access to the necessary libraries/firmware.

emmericp avatar Oct 21 '17 14:10 emmericp

Hey, I'm facing a similar issue. When I use MoonGen with the Netronome 4000 it does not detect the device. I'm using today's master build. Any help from your side is appreciated.

hashkash avatar Jul 24 '18 05:07 hashkash

Hi,

19ee:4000 refers to physical functions o the NFP. The NFP PMD unfortunately does not support these devices until DPDK 17.11 or backports thereof.

If MoonGen uses DPDK 17.11 or later, or an earlier version with appropriate backports, this should work out of the box, otherwise only device 6003 (virtual functions) are supported.

On Tue, Jul 24, 2018 at 7:20 AM, Kash [email protected] wrote:

Hey, I'm facing a similar issue. When I use MoonGen with the Netronome 4000 it does not detect the device. I'm using today's master build. Any help from your side is appreciated.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/emmericp/MoonGen/issues/195#issuecomment-407284516, or mute the thread https://github.com/notifications/unsubscribe-auth/AS__NZW4CTpzf5QqoR9eIXmyjdjQNLjbks5uJq6ngaJpZM4P6R5f .

NetronomeMoongen avatar Jul 24 '18 06:07 NetronomeMoongen

We just got a few new netronome nics, so I can check that later :)

Am 24.07.2018 um 08:26 schrieb Netronome-moongen [email protected]:

Hi,

19ee:4000 refers to physical functions o the NFP. The NFP PMD unfortunately does not support these devices until DPDK 17.11 or backports thereof.

If MoonGen uses DPDK 17.11 or later, or an earlier version with appropriate backports, this should work out of the box, otherwise only device 6003 (virtual functions) are supported.

On Tue, Jul 24, 2018 at 7:20 AM, Kash [email protected] wrote:

Hey, I'm facing a similar issue. When I use MoonGen with the Netronome 4000 it does not detect the device. I'm using today's master build. Any help from your side is appreciated.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/emmericp/MoonGen/issues/195#issuecomment-407284516, or mute the thread https://github.com/notifications/unsubscribe-auth/AS__NZW4CTpzf5QqoR9eIXmyjdjQNLjbks5uJq6ngaJpZM4P6R5f .

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

emmericp avatar Jul 24 '18 07:07 emmericp

One other thing to note:

IIRC the pci.ids file in MoonGen only lists the base PCI device ID of 6000, which is used for Netronome NFP's. The device will be detected as an Unknown device or an Unknown Physical function, depending o how MoonGen detects / interprets the device type.

On Tue, Jul 24, 2018 at 9:34 AM, Paul Emmerich [email protected] wrote:

We just got a few new netronome nics, so I can check that later :)

Am 24.07.2018 um 08:26 schrieb Netronome-moongen < [email protected]>:

Hi,

19ee:4000 refers to physical functions o the NFP. The NFP PMD unfortunately does not support these devices until DPDK 17.11 or backports thereof.

If MoonGen uses DPDK 17.11 or later, or an earlier version with appropriate backports, this should work out of the box, otherwise only device 6003 (virtual functions) are supported.

On Tue, Jul 24, 2018 at 7:20 AM, Kash [email protected] wrote:

Hey, I'm facing a similar issue. When I use MoonGen with the Netronome 4000 it does not detect the device. I'm using today's master build. Any help from your side is appreciated.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <https://github.com/emmericp/MoonGen/issues/195#issuecomment-407284516 , or mute the thread <https://github.com/notifications/unsubscribe-auth/AS__ NZW4CTpzf5QqoR9eIXmyjdjQNLjbks5uJq6ngaJpZM4P6R5f> .

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub, or mute the thread.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/emmericp/MoonGen/issues/195#issuecomment-407310455, or mute the thread https://github.com/notifications/unsubscribe-auth/AS__NZJufvljEnhAR71_QaKVySUC41xOks5uJs31gaJpZM4P6R5f .

NetronomeMoongen avatar Jul 24 '18 07:07 NetronomeMoongen

Hey,

Thanks for pointing out the difference in using the PF and VF. I was using the PF all this while and it was not working. I tried using the VF and it detects the ports.

I tried to compile MoonGen with dpdk-17.11.1 but got some build error. I have not looked into it yet.

hashkash avatar Jul 24 '18 12:07 hashkash

I'll upgrade to some DPDK LTS release soonish as we are also currently facing a few issues with newer NICs

emmericp avatar Jul 24 '18 21:07 emmericp

Regarding pci.ids: we just use the version from http://pci-ids.ucw.cz/

Try to get your devices added there, we don't want to maintain our own list of PCI devices (we did it in the past and it was too annoying).

See http://pci-ids.ucw.cz/mods/?action=help?help=newitem

This will also fix it in other standard tools such as lspci

emmericp avatar Jul 24 '18 23:07 emmericp

Thanks Paul! Looking forward to the update.

hashkash avatar Jul 25 '18 14:07 hashkash