netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch nf-next v2] IPVS: ICMPv6 checksum calculation
@ 2010-08-25  8:08 Simon Horman
  2010-08-25 19:55 ` Julian Anastasov
  0 siblings, 1 reply; 2+ messages in thread
From: Simon Horman @ 2010-08-25  8:08 UTC (permalink / raw)
  To: lvs-devel, netfilter-devel, netdev, linux-kernel
  Cc: Patrick McHardy, David Miller, Xiaoyu Du, Julian Anastasov

Cc: Xiaoyu Du <tingsrain@gmail.com>
Cc: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>

--

Xiaoyu, is this the change that you tested?
If so could you give me a Tested-by line?

Julian, could I get an ack from you?
Alternatively, if you want to take ownership of the patch,
can I get a signed-off-by from you? In that case I'll change
the From accordingly.

Index: nf-next-2.6/net/netfilter/ipvs/ip_vs_core.c
===================================================================
--- nf-next-2.6.orig/net/netfilter/ipvs/ip_vs_core.c	2010-08-25 16:57:37.000000000 +0900
+++ nf-next-2.6/net/netfilter/ipvs/ip_vs_core.c	2010-08-25 17:02:35.000000000 +0900
@@ -637,9 +637,11 @@ void ip_vs_nat_icmp_v6(struct sk_buff *s
 	}
 
 	/* And finally the ICMP checksum */
-	icmph->icmp6_cksum = 0;
-	/* TODO IPv6: is this correct for ICMPv6? */
-	ip_vs_checksum_complete(skb, icmp_offset);
+	icmph->icmp6_cksum = ~csum_ipv6_magic(&iph->saddr, &iph->daddr,
+					      skb->len - icmp_offset,
+					      IPPROTO_ICMPV6, 0);
+	skb->csum_start = skb_network_header(skb) - skb->head + icmp_offset;
+	skb->csum_offset = offsetof(struct icmp6hdr, icmp6_cksum);
 	skb->ip_summed = CHECKSUM_UNNECESSARY;
 
 	if (inout)

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [patch nf-next v2] IPVS: ICMPv6 checksum calculation
  2010-08-25  8:08 [patch nf-next v2] IPVS: ICMPv6 checksum calculation Simon Horman
@ 2010-08-25 19:55 ` Julian Anastasov
  0 siblings, 0 replies; 2+ messages in thread
From: Julian Anastasov @ 2010-08-25 19:55 UTC (permalink / raw)
  To: Simon Horman
  Cc: lvs-devel, netfilter-devel, netdev, linux-kernel, Patrick McHardy,
	David Miller, Xiaoyu Du


	Hello,

On Wed, 25 Aug 2010, Simon Horman wrote:

> Cc: Xiaoyu Du <tingsrain@gmail.com>
> Cc: Julian Anastasov <ja@ssi.bg>

Signed-off-by: Julian Anastasov <ja@ssi.bg>

should be enough

> Signed-off-by: Simon Horman <horms@verge.net.au>
> 
> --
> 
> Xiaoyu, is this the change that you tested?
> If so could you give me a Tested-by line?
> 
> Julian, could I get an ack from you?
> Alternatively, if you want to take ownership of the patch,
> can I get a signed-off-by from you? In that case I'll change
> the From accordingly.
> 
> Index: nf-next-2.6/net/netfilter/ipvs/ip_vs_core.c
> ===================================================================
> --- nf-next-2.6.orig/net/netfilter/ipvs/ip_vs_core.c	2010-08-25 16:57:37.000000000 +0900
> +++ nf-next-2.6/net/netfilter/ipvs/ip_vs_core.c	2010-08-25 17:02:35.000000000 +0900
> @@ -637,9 +637,11 @@ void ip_vs_nat_icmp_v6(struct sk_buff *s
>  	}
>  
>  	/* And finally the ICMP checksum */
> -	icmph->icmp6_cksum = 0;
> -	/* TODO IPv6: is this correct for ICMPv6? */
> -	ip_vs_checksum_complete(skb, icmp_offset);
> +	icmph->icmp6_cksum = ~csum_ipv6_magic(&iph->saddr, &iph->daddr,
> +					      skb->len - icmp_offset,
> +					      IPPROTO_ICMPV6, 0);
> +	skb->csum_start = skb_network_header(skb) - skb->head + icmp_offset;
> +	skb->csum_offset = offsetof(struct icmp6hdr, icmp6_cksum);
>  	skb->ip_summed = CHECKSUM_UNNECESSARY;
>  
>  	if (inout)
> 

Regards

--
Julian Anastasov <ja@ssi.bg>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-08-25 19:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-25  8:08 [patch nf-next v2] IPVS: ICMPv6 checksum calculation Simon Horman
2010-08-25 19:55 ` Julian Anastasov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).