diff options
author | Shani Michaeli <shanim@mellanox.com> | 2014-11-09 13:51:53 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-11-11 13:20:02 -0500 |
commit | f8c6455bb04b944edb69e9b074e28efee2c56bdd (patch) | |
tree | 9f4f031bb3a33ea164aa2014294c027c478e1d7e /include/linux/mlx4 | |
parent | dd65beac48a5259945846956d4b27344dfb73bd9 (diff) | |
download | op-kernel-dev-f8c6455bb04b944edb69e9b074e28efee2c56bdd.zip op-kernel-dev-f8c6455bb04b944edb69e9b074e28efee2c56bdd.tar.gz |
net/mlx4_en: Extend checksum offloading by CHECKSUM COMPLETE
When processing received traffic, pass CHECKSUM_COMPLETE status to the
stack, with calculated checksum for non TCP/UDP packets (such
as GRE or ICMP).
Although the stack expects checksum which doesn't include the pseudo
header, the HW adds it. To address that, we are subtracting the pseudo
header checksum from the checksum value provided by the HW.
In the IPv6 case, we also compute/add the IP header checksum which
is not added by the HW for such packets.
Cc: Jerry Chu <hkchu@google.com>
Signed-off-by: Shani Michaeli <shanim@mellanox.com>
Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/mlx4')
-rw-r--r-- | include/linux/mlx4/device.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 5cc5eac..3d9bff0 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h @@ -497,6 +497,7 @@ struct mlx4_caps { u16 hca_core_clock; u64 phys_port_id[MLX4_MAX_PORTS + 1]; int tunnel_offload_mode; + u8 rx_checksum_flags_port[MLX4_MAX_PORTS + 1]; }; struct mlx4_buf_list { |