ipchksum
extern uint16_t ipchksum P((const void *ip, unsigned long len));
extern uint16_t ipchksum(const void * __data, unsigned long __length);
ip->chksum = ipchksum(buf, sizeof(struct iphdr) + option_len);
checksum = ipchksum(&pseudo, 12);
checksum = add_ipchksums(12, checksum, ipchksum(udp, ntohs(udp->len)));
igmp.igmp.chksum = ipchksum(&igmp.igmp, sizeof(igmp.igmp));
if (ipchksum(igmp, ntohs(ip->len) - iplen) != 0)
igmp.igmp.chksum = ipchksum(&igmp.igmp, sizeof(igmp));
if (ipchksum(ip, iplen) != 0)