Hello, 04/08/2025 05:54, Su Sai: > The rte_raw_cksum_mbuf function is used to compute > the raw checksum of a packet. > If the packet payload stored in multi mbuf, the function > will goto the hard case. In hard case, > the variable 'tmp' is a type of uint32_t, > so rte_bswap16 will drop high 16 bit. > Meanwhile, the variable 'sum' is a type of uint32_t, > so 'sum += tmp' will drop the carry when overflow. > Both drop will make cksum incorrect. > This commit fixes the above bug.
Thank you for the fix and the associated test. Please could describe the exact condition to get a wrong checksum? Does it happen with all multiseg packets? 3 segments is a minimum? Any other constraint to reproduce?