luigirizzo / netmap

Automatically exported from code.google.com/p/netmap
BSD 2-Clause "Simplified" License
1.84k stars 533 forks source link

igc driver does not seem to work #949

Open davidfauthoux opened 6 months ago

davidfauthoux commented 6 months ago

Hello, We plan to heavily use netmap in our robot company (we develop an Ethercat master). This is the best project we found so far to skip the kernel when sending/receiving network packets. Unfortunately the IGC driver doesn't seem to work. We would be very grateful if anyone could point on the things we miss here.

Here is our whole procedure:

Know the driver

sudo lspci | grep Ethernet => 56:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03) sudo find /sys | grep drivers.*56:00 => /sys/bus/pci/drivers/igc/0000:56:00.0 => IGC it is

Get linux kernel source

wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/linux/6.2.0-37.38/linux_6.2.0.orig.tar.gz tar xfz linux_6.2.0.orig.tar.gz

Make netmap (only generic and igc, and app pkt-gen)

./configure --no-apps=dedup,vale-ctl,nmreplay,tlem,lb,bridge --enable-generic --disable-monitor --disable-null --disable-vale --disable-pipe --disable-ptnetmap --disable-sink --no-ext-drivers --kernel-sources=linux-6.2 --no-drivers=ice,vmxnet3,i40e,ixgbevf,ixgbe,igb,e1000e,e1000,veth.c,forcedeth.c,virtio_net.c,mlx5,r8169.c,stmmac make

Test with netmap+generic

sudo rmmod igc netmap 2> /dev/null || : && sudo insmod netmap.ko && sudo insmod /usr/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/igc/igc.ko && sudo lsmod | grep "igc\|netmap"

Sender

sudo build-apps/pkt-gen/pkt-gen -i enp86s0 -f tx -n 500111222 -l 60 -w 5

Receiver

sudo build-apps/pkt-gen/pkt-gen -i enp86s0 -f rx when stopped => Speed: 2.498 pps Bandwidth: 2.761 Kbps (raw 2.761 Kbps). Average batch: 10.00 pkts

Test with netmap+igc

sudo rmmod igc netmap 2> /dev/null || : && sudo insmod netmap.ko && sudo insmod igc/igc.ko && sudo lsmod | grep "igc\|netmap"

Sender

sudo build-apps/pkt-gen/pkt-gen -i enp86s0 -f tx -n 500111222 -l 60 -w 5

Receiver

sudo build-apps/pkt-gen/pkt-gen -i enp86s0 -f rx keeps printing => 340.094777 receiver_body [1954] waiting for initial packets, poll returns 0 0

davidfauthoux commented 6 months ago

I would like to add this:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:    22.04
Codename:   jammy
uname -r
6.2.0-37-generic
giuseppelettieri commented 6 months ago

This is going to be hard because I don't have any igc at hand. One thing that you can do is to enable debugging messages:

echo 1 | sudo tee /sys/module/netmap/parameters/verbose

then try to send packets slowly (say, 1 packet per second) and look for netmap messages in dmesg.