.. index:: pair: group; Rx checksum offload sanity check .. _doxid-group__usecases-rx__offload__checksum: Rx checksum offload sanity check ================================ .. toctree:: :hidden: group_usecases-rx_offload_checksum-run.rst Make sure that valid Rx checksum flags are put into mbufs The test receives one packet with valid checksums and one with wrong. Then checksum status is verified for the packets by means of peeking at the mbuf checksum flags. #. Make a copy of the template to be used for bad checksum testing #. Inspect the 2nd template to discover outer and inner (if any) PDUs #. Spoil checksums in the outer PDUs of the 2nd template and make notes on the standard checksum flags which _could be expected #. Spoil checksums in the inner PDUs of the 2nd template and make notes on the standard checksum flags which _could be expected #. Prepare ``TEST_ETHDEV_INITIALIZED`` state #. Check the capabilities and adjust the expectations of checksum flags #. Toggle Rx checksum offload feature based on **rx_ol_cksum** #. Prepare ``TEST_ETHDEV_STARTED`` state #. Configure tunnel UDP port number if need be #. Enable promiscuous mode if supported #. Ensure that interface is UP on Tester side #. Transmit both packets and get the corresponding patterns #. Capture and recognise both packets #. Make note on the tunnel type value detected by the PMD #. Retrieve offload flags from the two mbufs #. Make sure that NONE flags are unset for the packets #. Determine what flags (for outer or inner PDUs) must be checked and verify external IP BAD checksum flag in the case of tunnel .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - tmpl - Traffic template * - rx_ol_cksum - Rx checksum offload toggle | :ref:`rx_offload_checksum`