luigirizzo / netmap

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

e1000e driver cannot capture the packet,always show "Truncate incomplete fragment at" in dmesg #963

Open xiaojin2630 opened 3 months ago

xiaojin2630 commented 3 months ago

The netmap e1000e driver fails to capture the packet and displays a message indicating that the netmap e1000e driver displays a message called Truncate incomplete fragment at

I recompiled the kernel and netmap in a linux, including the E1000E and IGB drivers.

I wrote a simple test program that works in vale mode with reference to netmap.git/apps/bridge/bridge.c. The web is actually very simple. I found that the E1000E driver could not capture packets on the eth5 port. However, when using the IGB driver interface, it is normal to capture packets.

Linux Kernel: 5.8.0

netmap

commit fdcccaf45da126e0ce975436fbeafe74b3393aac (HEAD -> Merge: 65bcd3e0 04ed7ad9 Author: Giuseppe Lettieri giuseppe.lettieri@unipi.it Date: Tue Apr 9 09:25:40 2024 +0200

Merge pull request #954 from OpenBroadcastSystems/dev

Some mellanox housekeeping and a new driver version

ifconfig =----------------------------------- eth5 Link encap:Ethernet HWaddr 10:90:27:E7:4E:B5 UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 RX packets:455358 errors:0 dropped:2 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:39024851 (37.2 MiB) TX bytes:0 (0.0 B) Interrupt:17 Memory:df100000-df120000

nm [ ~ ]# ethtool -i eth5

driver: e1000e version: 3.8.7-NAPI firmware-version: 2.1-0 expansion-rom-version: bus-info: 0000:09:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no I've also tried the following command, and the problem is still the same ethtool -K eth5 tx off rx off gso off tso off gro off lro off

nm [ ~ ]# ethtool -k eth5

Features for eth5: rx-checksumming: on tx-checksumming: on tx-checksum-ipv4: off [fixed] tx-checksum-ip-generic: on tx-checksum-ipv6: off [fixed] tx-checksum-fcoe-crc: off [fixed] tx-checksum-sctp: off [fixed] scatter-gather: on tx-scatter-gather: on tx-scatter-gather-fraglist: off [fixed] tcp-segmentation-offload: off tx-tcp-segmentation: off tx-tcp-ecn-segmentation: off [fixed] tx-tcp-mangleid-segmentation: off tx-tcp6-segmentation: off generic-segmentation-offload: on generic-receive-offload: on large-receive-offload: off [fixed] rx-vlan-offload: off tx-vlan-offload: off [requested on] ntuple-filters: off [fixed] receive-hashing: on highdma: on [fixed] rx-vlan-filter: on [fixed] vlan-challenged: off [fixed] tx-lockless: off [fixed] netns-local: off [fixed] tx-gso-robust: off [fixed] tx-fcoe-segmentation: off [fixed] tx-gre-segmentation: off [fixed] tx-gre-csum-segmentation: off [fixed] tx-ipxip4-segmentation: off [fixed] tx-ipxip6-segmentation: off [fixed] tx-udp_tnl-segmentation: off [fixed] tx-udp_tnl-csum-segmentation: off [fixed] tx-gso-partial: off [fixed] tx-tunnel-remcsum-segmentation: off [fixed] tx-sctp-segmentation: off [fixed] tx-esp-segmentation: off [fixed] tx-udp-segmentation: off [fixed] tx-gso-list: off [fixed] fcoe-mtu: off [fixed] tx-nocache-copy: off loopback: off [fixed] rx-fcs: off rx-all: off tx-vlan-stag-hw-insert: off [fixed] rx-vlan-stag-hw-parse: off [fixed] rx-vlan-stag-filter: off [fixed] l2-fwd-offload: off [fixed] hw-tc-offload: off [fixed] esp-hw-offload: off [fixed] esp-tx-csum-hw-offload: off [fixed] rx-udp_tunnel-port-offload: off [fixed] tls-hw-tx-offload: off [fixed] tls-hw-rx-offload: off [fixed] rx-gro-hw: off [fixed] tls-hw-record: off [fixed] rx-gro-list: off macsec-hw-offload: off [fixed]

dmesg

kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e: Intel(R) PRO/1000 Network Driver - 3.8.7-NAPI kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e: Copyright(c) 1999 - 2020 Intel Corporation. kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:01:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:01:00.0 0000:01:00.0 (uninitialized): registered PHC clock kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:01:00.0 eth0: (PCI Express:2.5GT/s:Width x1) 10:90:27:e7:4e:b0 kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:01:00.0 eth0: Intel(R) PRO/1000 Network Connection kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:01:00.0 eth0: MAC: 3, PHY: 8, PBA No: FFFFFF-0FF kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:02:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:02:00.0 0000:02:00.0 (uninitialized): registered PHC clock kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:02:00.0 eth1: (PCI Express:2.5GT/s:Width x1) 10:90:27:e7:4e:b1 kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:02:00.0 eth1: Intel(R) PRO/1000 Network Connection kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:02:00.0 eth1: MAC: 3, PHY: 8, PBA No: FFFFFF-0FF kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:03:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:03:00.0 0000:03:00.0 (uninitialized): registered PHC clock kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:03:00.0 eth2: (PCI Express:2.5GT/s:Width x1) 10:90:27:e7:4e:b2 kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:03:00.0 eth2: Intel(R) PRO/1000 Network Connection kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:03:00.0 eth2: MAC: 3, PHY: 8, PBA No: FFFFFF-0FF kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:04:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:04:00.0 0000:04:00.0 (uninitialized): registered PHC clock kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:04:00.0 eth3: (PCI Express:2.5GT/s:Width x1) 10:90:27:e7:4e:b3 kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:04:00.0 eth3: Intel(R) PRO/1000 Network Connection kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:04:00.0 eth3: MAC: 3, PHY: 8, PBA No: FFFFFF-0FF kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:08:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:08:00.0 0000:08:00.0 (uninitialized): registered PHC clock kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:08:00.0 eth4: (PCI Express:2.5GT/s:Width x1) 10:90:27:e7:4e:b4 kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:08:00.0 eth4: Intel(R) PRO/1000 Network Connection kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:08:00.0 eth4: MAC: 3, PHY: 8, PBA No: FFFFFF-0FF kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:09:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:09:00.0 0000:09:00.0 (uninitialized): registered PHC clock kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:09:00.0 eth5: (PCI Express:2.5GT/s:Width x1) 10:90:27:e7:4e:b5 kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:09:00.0 eth5: Intel(R) PRO/1000 Network Connection kern.log:Jul 29 10:37:06 nm kern.info kernel: e1000e 0000:09:00.0 eth5: MAC: 3, PHY: 8, PBA No: FFFFFF-0FF

nm [ ~ ]# vale-ctl vale1:eth5 bridge_idx 0 port_idx 0 nm [ ~ ]#

As follows, this kind of information is constantly printed. `nm [ ~ ]# dmesg -c 10 751.269269 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags) 751.271323 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags) 751.304199 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags) 751.315002 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags) 751.343470 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags) 752.308560 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags) 752.487319 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags) 752.528667 [ 552] nm_vale_preflush Truncate incomplete fragment at 2 (2 frags) 752.529309 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags) 752.529433 [ 552] nm_vale_preflush Truncate incomplete fragment at 1 (1 frags)

After I run vale-ctl -d vale1:eth5, I can capture a lot of network packets by using tcpdump -ni eth5, so I wonder if there is a bug in the netmap or where it is not properly configured.