net/mlx5e: kTLS, Use CHECKSUM_UNNECESSARY for device-offloaded packets
authorTariq Toukan <tariqt@nvidia.com>
Mon, 31 Jan 2022 08:26:19 +0000 (10:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 2 Mar 2022 10:48:00 +0000 (11:48 +0100)
commit6e94d28633842fafaeddbc16b7d4503d8dfdbfcc
treea57b1c9e94f5c3bf2214f0d35eb07e7d53588541
parent95c1867704d0b4c0ee0fec46c52101049ff4c03d
net/mlx5e: kTLS, Use CHECKSUM_UNNECESSARY for device-offloaded packets

commit 7eaf1f37b8817c608c4e959d69986ef459d345cd upstream.

For RX TLS device-offloaded packets, the HW spec guarantees checksum
validation for the offloaded packets, but does not define whether the
CQE.checksum field matches the original packet (ciphertext) or
the decrypted one (plaintext). This latitude allows architetctural
improvements between generations of chips, resulting in different decisions
regarding the value type of CQE.checksum.

Hence, for these packets, the device driver should not make use of this CQE
field. Here we block CHECKSUM_COMPLETE usage for RX TLS device-offloaded
packets, and use CHECKSUM_UNNECESSARY instead.

Value of the packet's tcp_hdr.csum is not modified by the HW, and it always
matches the original ciphertext.

Fixes: 1182f3659357 ("net/mlx5e: kTLS, Add kTLS RX HW offload support")
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c