Bug ID 1761
Summary rte_raw_cksum_mbuf obtain incorrect cksum when a packet in mbuf split mode.
Product DPDK
Version unspecified
Hardware All
OS Linux
Status UNCONFIRMED
Severity critical
Priority Normal
Component core
Assignee dev@dpdk.org
Reporter yanglanping@bytedance.com
Target Milestone ---

Hi.

This issue is about calc cksum, in rte_raw_cksum_mbuf function, when the packet
data is stored in multiple mbufs, below code easy overflow.

File rte_cksum.h
    line 159: if (done & 1)
    line 160:     tmp = rte_bswap16((uint16_t)tmp); 
    line 161: sum += tmp;

The tmp(uint32_t) variable can easily be greater than 0xFFFF, so (uint16_t)tmp
will discard the high 16bit, cause incorrect result.
          


You are receiving this mail because: