Commit 8870f842 authored by Simon Horman's avatar Simon Horman Committed by David S. Miller

IPVS: ICMPv6 checksum calculation

Cc: Xiaoyu Du <tingsrain@gmail.com>
Signed-off-by: default avatarJulian Anastasov <ja@ssi.bg>
Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8a891429
...@@ -637,10 +637,12 @@ void ip_vs_nat_icmp_v6(struct sk_buff *skb, struct ip_vs_protocol *pp, ...@@ -637,10 +637,12 @@ void ip_vs_nat_icmp_v6(struct sk_buff *skb, struct ip_vs_protocol *pp,
} }
/* And finally the ICMP checksum */ /* And finally the ICMP checksum */
icmph->icmp6_cksum = 0; icmph->icmp6_cksum = ~csum_ipv6_magic(&iph->saddr, &iph->daddr,
/* TODO IPv6: is this correct for ICMPv6? */ skb->len - icmp_offset,
ip_vs_checksum_complete(skb, icmp_offset); IPPROTO_ICMPV6, 0);
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->csum_start = skb_network_header(skb) - skb->head + icmp_offset;
skb->csum_offset = offsetof(struct icmp6hdr, icmp6_cksum);
skb->ip_summed = CHECKSUM_PARTIAL;
if (inout) if (inout)
IP_VS_DBG_PKT(11, pp, skb, (void *)ciph - (void *)iph, IP_VS_DBG_PKT(11, pp, skb, (void *)ciph - (void *)iph,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment