Re: [Patch net v2] mlx5: fixup checksum for short ethernet frame padding
From: Saeed Mahameed <hidden>
Date: 2018-11-30 11:37:41
On Wed, Nov 28, 2018 at 8:09 PM Eric Dumazet [off-list ref] wrote:
On Wed, Nov 28, 2018 at 7:53 PM Cong Wang [off-list ref] wrote:quoted
On Wed, Nov 28, 2018 at 7:50 PM Eric Dumazet [off-list ref] wrote:quoted
On Wed, Nov 28, 2018 at 7:40 PM Cong Wang [off-list ref] wrote:quoted
On Wed, Nov 28, 2018 at 4:07 PM Eric Dumazet [off-list ref] wrote:quoted
A NIC is supposed to deliver frames, even the ones that 'seem' bad.A quick test shows this is not the case for mlx5. With the trafgen script you gave to me, with tot_len==40, the dest host could receive all the packets. Changing tot_len to 80, tcpdump could no longer see any packet. (Both sender and receiver are mlx5.) So, packets with tot_len > skb->len are clearly dropped before tcpdump could see it, that is likely by mlx5 hardware.Or a router, or a switch. Are your two hosts connected back to back ?Both should be plugged into a same switch. I fail to see why a switch could parse IP header as the packet is nothing of interest, like a IGMP snooping.Well, _something_ is dropping the frames. It can be mlx5, or something else.
mlx5 HW should deliver such packets.
just tested with scapy :
sender:
#scapy
p = Ether(dst="24:8a:07:b4:24:6e")/IP(dst="1.2.3.4", len = 1000)
sendp(p, iface = "p5p1")
receiver:
tcpdump: listening on p5p1, link-type EN10MB (Ethernet), capture size
262144 bytes
16:24:26.427563 80:18:44:e5:2f:c4 > 24:8a:07:b4:24:6e, ethertype IPv4
(0x0800), length 60: truncated-ip - 954 bytes missing! (tos 0x0, ttl
64, id 1, offset 0, flags [none], proto Options (0), length 1000)
10.20.2.212 > 1.2.3.4: ip-proto-0 980
Does ethtool -S show any increasing counter ?