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

Netmap with tcpreplay sometimes does not terminate #855

Open
AlexRhebo opened this issue May 24, 2022 · 1 comment
Open

Netmap with tcpreplay sometimes does not terminate #855

AlexRhebo opened this issue May 24, 2022 · 1 comment

Comments

@AlexRhebo
Copy link

Summary

When running tcpreplay with netmap enabled and a limited number of loops, it sometimes does not terminate. It will then consume CPU time and run until killed without doing anything on the interface.
This looks very similar to these two related issues:

Only differences to the original ones are, that we use igb and it is not easily reproducible as it only happens sometimes (every 10th run or so).

Steps to reproduce

Example command:

tcpreplay -M95 -l125 -i eth1 -T select --preload-pcap --netmap "test.pcap"

In practice this is part of a test setup with varying loops and speeds, but the above example is one we see particularly often.
The issue might not occur directly and may need some retries. I am not able to provide the pcaps used, but we observed the problem with different network captures.

Additional Information

  • tcpreplay version:
tcpreplay version: 4.4.1 (build git:v4.4.1)
Copyright 2013-2022 by Fred Klassen <tcpreplay at appneta dot com> - AppNeta
Copyright 2000-2012 by Aaron Turner <aturner at synfin dot net>
The entire Tcpreplay Suite is licensed under the GPLv3
Cache file supported: 04
Not compiled with libdnet.
Compiled against libpcap: 1.8.1
64 bit packet counters: enabled
Verbose printing via tcpdump: enabled
Packet editing: disabled
Fragroute engine: disabled
Default injection method: PF_PACKET send()
Optional injection method: netmap
  • Netmap commit: 2de0302
  • Netmap was configured with ./configure --no-ext-drivers=ice,e1000e because of failing downloads for these drivers
  • System information:
 Linux traffic-generator-1 4.19.0-20-amd64 #1 SMP Debian 4.19.235-1 (2022-03-17) x86_64 GNU/Linux
  • Interface information:
# via ethtool 
Settings for eth1:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: Symmetric
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: pumbg
	Wake-on: g
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes


driver: igb
version: 5.4.0-k
firmware-version: 3.11, 0x80000469
expansion-rom-version: 
bus-info: 0000:08:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

# via lshw
*-network
       description: Ethernet interface
       product: I210 Gigabit Network Connection
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:08:00.0
       logical name: eth1
       version: 03
       serial: 00:90:0b:7e:37:8b
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi msix pciexpress bus_master cap_list rom ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.4.0-k duplex=full firmware=3.11, 0x80000469 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
       resources: irq:34 memory:fad00000-fadfffff memory:fae00000-fae03fff memory:fac00000-facfffff

If you need any additional Information, I will happily provide them.

@jhk098
Copy link
Contributor

jhk098 commented Jul 1, 2022

It would be useful to know what are the values of txring->head, txring->cur and txring->tail when this happens:
https://github.com/appneta/tcpreplay/blob/master/src/common/netmap.c#L564
And if this happens on a single TX ring or multiple ones.

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