dsum
uint32_t csum_data, dsum;
dsum = 0;
dsum += ntohs(*dp++);
dsum += (crc >> 24) & 0x00ff;
dsum += (crc >> 8) & 0xffff;
dsum += (crc << 8) & 0xff00;
dsum += (crc >> 16) & 0xffff;
dsum += (crc >> 0) & 0xffff;
while (dsum >> 16)
dsum = (dsum >> 16) + (dsum & 0xffff);
csum_data += (uint16_t)~dsum;
unsigned total = dsum(n);
total = dsum(n);
unsigned total = dsum(n);