Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

igc driver does not seem to work #949

Open
davidfauthoux opened this issue Mar 5, 2024 · 2 comments
Open

igc driver does not seem to work #949

davidfauthoux opened this issue Mar 5, 2024 · 2 comments
Assignees

Comments

@davidfauthoux
Copy link

davidfauthoux commented Mar 5, 2024

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
Copy link
Author

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
Copy link
Collaborator

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.

@giuseppelettieri giuseppelettieri self-assigned this Mar 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants