1 #include <linux/module.h>
2 #include <linux/jiffies.h>
3 #include <linux/kernel.h>
4 #include <linux/ctype.h>
5 #include <linux/inet.h>
8 #include <net/checksum.h>
9 #include <linux/string.h>
10 #include <linux/types.h>
11 #include <linux/percpu.h>
12 #include <linux/init.h>
13 #include <linux/ratelimit.h>
17 #include <asm/byteorder.h>
18 #include <asm/uaccess.h>
20 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
21 void inet_proto_csum_replace16(__sum16 *sum, struct sk_buff *skb,
22 const __be32 *from, const __be32 *to,
26 ~from[0], ~from[1], ~from[2], ~from[3],
27 to[0], to[1], to[2], to[3],
29 if (skb->ip_summed != CHECKSUM_PARTIAL) {
30 *sum = csum_fold(csum_partial(diff, sizeof(diff),
32 if (skb->ip_summed == CHECKSUM_COMPLETE && pseudohdr)
33 skb->csum = ~csum_partial(diff, sizeof(diff),
36 *sum = ~csum_fold(csum_partial(diff, sizeof(diff),