18 for (i = 0; i <
length; i++) {
27 sum = (sum + (sum >> 16)) & 0xFFFF;
29 value.byte[0] = sum & 0xff;
30 value.byte[1] = (sum >> 8) & 0xff;
31 return (~
value.word) & 0xFFFF;
45 new = ((
new >> 8) & 0xff) | ((
new << 8) & 0xff00);
unsigned long compute_ip_checksum(const void *addr, unsigned long length)
unsigned long add_ip_checksums(unsigned long offset, unsigned long sum, unsigned long new)
static uint8_t checksum(uint8_t *data, int offset)