mlx4: Advertise that the NIC pads to mintu
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 23 May 2017 18:00:58 +0000 (14:00 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 23 May 2017 18:00:58 +0000 (14:00 -0400)
commitb150556d867c44b679974dc3bc4389d417f63467
tree91c7718864a9fbe5c8e454f9cca985da365a8e83
parent54cd59a4b4d87db5544a870bc905168f6c9fc420
mlx4: Advertise that the NIC pads to mintu

The minimum ethernet packet is 60 bytes.  A TCP/IP packet with no options
and no data is 40 bytes.  The ethernet MAC is 14 bytes.  The extra 6 bytes
need to come from somewhere.

Some NICs will pad those bits in hardware, including the mlx4.  If we pad
them in software, the NIC can get confused.  This showed itself as TCP ACKs
with bad checksums when we used checksum offload.  The NIC computed a value
that was off by 6 - the size of the padding.  Not sure why, exactly.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/net/mlx4/en_netdev.c