使用lsdk 20.04 使用Ubuntu 18.04没有使用dpdk功能,如果在开启fmc功能时候使用tcpdump抓包时候获取不到checksum为0的tcp包,但是如果关闭fmc功能后就可以正常获取。在获取不到情况下发现ifconfig把数据包标记为坏包RX errors增加数量刚好满足发送端的数据包数量。另外使用ethtool工具发现为 rx header error错误。有什么方法可以在开启fmc情况下能够正常收到此类数据包(不开启fmc情况下tcp接收性能很差)
PS:以下是发送的数据报文格式,这个数据包能在互联网上正常传播。
Frame 2: 85 bytes on wire (680 bits), 85 bytes captured (680 bits) on interface 0
Ethernet II, Src: RealtekS_62:ac:10 (00:e0:4c:62:ac:10), Dst: d4:5d:64:4d:60:40 (d4:5d:64:4d:60:40)
Destination: d4:5d:64:4d:60:40 (d4:5d:64:4d:60:40)
Source: RealtekS_62:ac:10 (00:e0:4c:62:ac:10)
Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.16.196, Dst: 119.84.129.239
0100 .... = Version: 4
.... 0101 = Header Length: 20 bytes (5)
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
Total Length: 71
Identification: 0x895b (35163)
Flags: 0x4000, Don't fragment
Time to live: 128
Protocol: TCP (6)
Header checksum: 0x0000 [validation disabled]
[Header checksum status: Unverified]
Source: 192.168.16.196
Destination: 119.84.129.239
Transmission Control Protocol, Src Port: 49870, Dst Port: 443, Seq: 47, Ack: 1, Len: 31
Secure Sockets Layer