static inline void tcp_fast_csum_update(int af, struct tcphdr *tcph, const union nf_inet_addr *oldip, const union nf_inet_addr *newip, __be16 oldport, __be16 newport) { #ifdef CONFIG_IP_VS_IPV6 if (af == AF_INET6) tcph->check = csum_fold(ip_vs_check_diff16(oldip->ip6, newip->ip6, ip_vs_check_diff2(oldport, newport, ~csum_unfold (tcph-> check)))); else #endif tcph->check = csum_fold(ip_vs_check_diff4(oldip->ip, newip->ip, ip_vs_check_diff2(oldport, newport, ~csum_unfold (tcph-> check)))); }
static inline void tcp_seq_csum_update(struct tcphdr *tcph, __u32 oldseq, __u32 newseq) { /* do checksum later */ if (!sysctl_ip_vs_csum_offload) tcph->check = csum_fold(ip_vs_check_diff4(oldseq, newseq, ~csum_unfold(tcph->check))); }
static inline void syn_proxy_seq_csum_update(struct tcphdr *tcph, __u32 old_seq, __u32 new_seq) { tcph->check = csum_fold(ip_vs_check_diff4(old_seq, new_seq, ~csum_unfold(tcph->check))); }