diff options
| author | Julian Anastasov <ja@ssi.bg> | 2010-10-17 09:29:40 -0400 |
|---|---|---|
| committer | Simon Horman <horms@verge.net.au> | 2010-10-21 04:51:11 -0400 |
| commit | 4256f1aaa662697c1faa0984b7a698c2c8c57735 (patch) | |
| tree | f54bf7b9183169422eb926b613411f07e94bf95c /net | |
| parent | 489fdedaed5ddb437dd2840eb93df37a6dd8c7de (diff) | |
ipvs: fix CHECKSUM_PARTIAL for TUN method
The recent change in IP_VS_XMIT_TUNNEL to set
CHECKSUM_NONE is not correct. After adding IPIP header
skb->csum becomes invalid but the CHECKSUM_PARTIAL
case must be supported. So, use skb_forward_csum() which is
most suitable for us to allow local clients to send IPIP
to remote real server.
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'net')
| -rw-r--r-- | net/netfilter/ipvs/ip_vs_xmit.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c index 94b53b441028..63cc0feaaef6 100644 --- a/net/netfilter/ipvs/ip_vs_xmit.c +++ b/net/netfilter/ipvs/ip_vs_xmit.c | |||
| @@ -222,7 +222,7 @@ ip_vs_dst_reset(struct ip_vs_dest *dest) | |||
| 222 | __ret = ip_vs_confirm_conntrack(skb, cp); \ | 222 | __ret = ip_vs_confirm_conntrack(skb, cp); \ |
| 223 | if (__ret == NF_ACCEPT) { \ | 223 | if (__ret == NF_ACCEPT) { \ |
| 224 | nf_reset(skb); \ | 224 | nf_reset(skb); \ |
| 225 | (skb)->ip_summed = CHECKSUM_NONE; \ | 225 | skb_forward_csum(skb); \ |
| 226 | } \ | 226 | } \ |
| 227 | __ret; \ | 227 | __ret; \ |
| 228 | }) | 228 | }) |
