mbox series

[net-next,0/2] Add HW check sum of load for RZ/G2L GbEthernet IP

Message ID 20240123151924.373917-1-biju.das.jz@bp.renesas.com (mailing list archive)
Headers show
Series Add HW check sum of load for RZ/G2L GbEthernet IP | expand

Message

Biju Das Jan. 23, 2024, 3:19 p.m. UTC
TOE has hw support for calculating IP header and TCP/UDP/ICMP checksum
for both IPV4 and IPV6.

Add Tx/Rx checksum offload supported by TOE for IPV4 and TCP/UDP protocols.

For Rx, the result of checksum calculation is attached to last 4byte
of ethernet frames. First 2bytes is result of IPV4 header checksum
and next 2 bytes is TCP/UDP/ICMP.

If frame does not have error "0000" attached to checksum calculation
result. For unsupported frames "ffff" is attached to checksum calculation
result. Cases like IPV6, IPV4 header is always set to "FFFF".

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 UDP
frame of IPv4 and its checksum value in the UDP header field is H’0000,
TOE does not calculate checksum for UDP part of this frame as it is
optional function as per standards.

UDP(Tx/Rx) results With check Enabled: 909/946
UDP(Tx/Rx) results With check Disabled: 903/907

TCP(Tx/Rx) results With check Enabled: 922/928
TCP(Tx/Rx) results With check Disabled: 882/629

Note:
 This patches are tested with reverting 
commit b3edde44e5d4 ("cpufreq/schedutil: Use a fixed reference frequency")
as it impacts network performance.

Biju Das (2):
  ravb: Add Rx checksum offload support
  ravb: Add Tx checksum offload support

 drivers/net/ethernet/renesas/ravb.h      |  35 ++++++
 drivers/net/ethernet/renesas/ravb_main.c | 137 ++++++++++++++++++++++-
 2 files changed, 170 insertions(+), 2 deletions(-)