Checksum Offload

The following Receive IP/L4 Checksum Offload modes are supported.

  • CHECKSUM_UNNECESSARY: By setting this mode the driver indicates to the Linux Networking Stack that the hardware successfully validated the IP and L4 checksum so the Linux Networking Stack does not need to deal with IP/L4 Checksum validation.

    Checksum Unnecessary is passed to the OS when all of the following are true:

    • Ethtool -k <DEV> shows rx-checksumming: on

    • Received TCP/UDP packet and both IP checksum and L4 protocol checksum are correct.

  • CHECKSUM_COMPLETE: When the checksum validation cannot be done or fails, the driver still reports to the OS the calculated by hardware checksum value. This allows accelerating checksum validation in Linux Networking Stack, since it does not have to calculate the whole checksum including payload by itself.

    Checksum Complete is passed to OS when both of the following is true:

    • Ethtool -k <DEV> shows rx-checksumming: on

    • Received IPv4/IPv6 non-TCP/UDP packet

  • CHECKSUM_NONE: By setting this mode the driver indicates to the Linux Networking Stack that the hardware failed to validate the IP or L4 checksum so the Linux Networking Stack must calculate and validate the IP/L4 Checksum.

    Checksum None is passed to OS for all other cases.

© Copyright 2023, NVIDIA. Last updated on Nov 27, 2023.