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>
This commit is contained in:
parent
dd65beac48
commit
f8c6455bb0
7 changed files with 142 additions and 8 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue