Exemple #1
0
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))));
}
Exemple #2
0
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)));
}
Exemple #3
0
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)));
}