ravb: Add Tx checksum offload support for GbEth
authorBiju Das <biju.das.jz@bp.renesas.com>
Wed, 7 Feb 2024 09:28:38 +0000 (09:28 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 9 Feb 2024 03:06:37 +0000 (19:06 -0800)
commit6c8e2803ef36d3c0c20c7019a19c668c3b0ac1d1
treef534a14b61a3c68746aec48795675a54c8d91058
parentc2da9408579d52fdf9b0ec494534d6ac66d4511e
ravb: Add Tx checksum offload support for GbEth

TOE has hardware support for calculating IP header and TCP/UDP/ICMP
checksum for both IPv4 and IPv6.

Add Tx checksum offload supported by TOE for IPv4 and TCP/UDP.

For Tx, the result of checksum calculation is set to the checksum field of
each IPv4 Header/TCP/UDP/ICMP of ethernet frames. For the unsupported
frames, those fields are not changed. If a transmission frame is an UDPv4
frame and its checksum value in the UDP header field is 0x0000, TOE does
not calculate checksum for UDP part of this frame as it is optional
function as per standards.

We can test this functionality by the below commands

ethtool -K eth0 tx on --> to turn on Tx checksum offload
ethtool -K eth0 tx off --> to turn off Tx checksum offload

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru>
Link: https://lore.kernel.org/r/20240207092838.160627-3-biju.das.jz@bp.renesas.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/renesas/ravb.h
drivers/net/ethernet/renesas/ravb_main.c