I'm trying to use tcpreplay with netmap enabled on a Ubuntu 22.04 machine with Intel 82599ES. After building netmap (master with ixgbe:5.18.11) and tcpreplay 4.4.4, I failed to switch the network driver to netmap bypass mode because of the nm_do_ioctl: No such file or directory
It seems I cannot build netmap on Ubuntu 22.04 successfully with an older version (v11, v13) so I use the master branch. The version of ixgbe is the latest one in netmap/LINUX/final-patches that I can build successfully.
To Reproduce`
Steps to reproduce the behavior:
Clone netmap to ~/Documents/netmap; Clone tcpreplay to ~/Documents/tcpreplay
Build netmap with: ./configure --no-drivers=virtio_net.c --driver-suffix=-netmap --select-version=ixgbe:5.18.11 && make -j && sudo make install
Build tcpreplay with: ./configure --with-netmap=~/Documents/netmap && make -j && sudo make install
Switching network driver for enp1s0f1 to netmap bypass mode... failed!
Switching network driver for enp1s0f1 to normal mode...
Fatal Error: failed to open device enp1s0f1: nm_do_ioctl: No such file or directory
Expected behavior
I want to use tcpreplay with netmap to send packets as in normal mode (without --netmap).
Screenshots
System (please complete the following information):
OS: Ubuntu 22.04
Tcpreplay Version 4.4.4.
Additional context
~I haven't figured out how to let tcpreplay show more information about the failure.~ Please give me some advice to find out how to provide more information and solve this problem.
I rebuild tcpreplay with debug output enabled. And the output is:
> sudo tcpreplay -i enp1s0f1 --netmap -d 1 dataset/202006101400.pcap
DEBUG1 in netmap.c:sendpacket_open_netmap() line 192: sendpacket_open_netmap: using netmap
DEBUG1 in netmap.c:get_netmap_version() line 56: netmap detected API version 14 which matches compiled version
Switching network driver for enp1s0f1 to netmap bypass mode... DEBUG1 in netmap.c:sendpacket_open_netmap() line 369: sendpacket_open_netmap: mapping 334980 Kbytes queues=4
DEBUG1 in netmap.c:sendpacket_open_netmap() line 411: enp1s0f1 tx first=0 last=0 num=4
DEBUG1 in netmap.c:sendpacket_open_netmap() line 414: TX0 0x0x7fca2928e000 head=0 cur=0 tail=511
DEBUG1 in netmap.c:sendpacket_open_netmap() line 414: TX1 0x0x7fca29297000 head=0 cur=0 tail=511
DEBUG1 in netmap.c:sendpacket_open_netmap() line 414: TX2 0x0x7fca292a0000 head=0 cur=0 tail=511
DEBUG1 in netmap.c:sendpacket_open_netmap() line 414: TX3 0x0x7fca292a9000 head=0 cur=0 tail=511
DEBUG1 in netmap.c:sendpacket_open_netmap() line 414: TX4 0x0x7fca29251000 head=0 cur=4 tail=4
DEBUG1 in netmap.c:nm_do_ioctl() line 130: SIOCGIFFLAGS flags are 0x11431143
failed!
Switching network driver for enp1s0f1 to normal mode...
Fatal Error in sendpacket.c:sendpacket_open() line 551:
failed to open device enp1s0f1: nm_do_ioctl: No such file or directory
Describe the bug
I'm trying to use tcpreplay with netmap enabled on a Ubuntu 22.04 machine with Intel 82599ES. After building netmap (master with ixgbe:5.18.11) and tcpreplay 4.4.4, I failed to switch the network driver to netmap bypass mode because of the
nm_do_ioctl: No such file or directory
It seems I cannot build netmap on Ubuntu 22.04 successfully with an older version (v11, v13) so I use the master branch. The version of ixgbe is the latest one in
netmap/LINUX/final-patches
that I can build successfully.To Reproduce` Steps to reproduce the behavior:
~/Documents/netmap
; Clone tcpreplay to~/Documents/tcpreplay
./configure --no-drivers=virtio_net.c --driver-suffix=-netmap --select-version=ixgbe:5.18.11 && make -j && sudo make install
./configure --with-netmap=~/Documents/netmap && make -j && sudo make install
sudo tcpreplay -i enp1s0f1 --netmap dataset/202006101400.pcap
Expected behavior I want to use tcpreplay with netmap to send packets as in normal mode (without --netmap).
Screenshots
System (please complete the following information):
Additional context ~I haven't figured out how to let tcpreplay show more information about the failure.~ Please give me some advice to find out how to provide more information and solve this problem.
I rebuild tcpreplay with debug output enabled. And the output is: