[IPSEC]: Kill post_input hook and do NAT-T in esp_input directly
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 27 Feb 2006 21:00:40 +0000 (13:00 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Feb 2006 21:00:40 +0000 (13:00 -0800)
commit752c1f4c78fe86d0fd6497387f763306b0d8fc53
tree50d7e52940d1adf0936805645d52e2419e5922cf
parent4bf05eceecf2efb4c883e9e9b17825682e7330dd
[IPSEC]: Kill post_input hook and do NAT-T in esp_input directly

The only reason post_input exists at all is that it gives us the
potential to adjust the checksums incrementally in future which
we ought to do.

However, after thinking about it for a bit we can adjust the
checksums without using this post_input stuff at all.  The crucial
point is that only the inner-most NAT-T SA needs to be considered
when adjusting checksums.  What's more, the checksum adjustment
comes down to a single u32 due to the linearity of IP checksums.

We just happen to have a spare u32 lying around in our skb structure :)
When ip_summed is set to CHECKSUM_NONE on input, the value of skb->csum
is currently unused.  All we have to do is to make that the checksum
adjustment and voila, there goes all the post_input and decap structures!

I've left in the decap data structures for now since it's intricately
woven into the sec_path stuff.  We can kill them later too.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/xfrm.h
net/ipv4/esp4.c
net/xfrm/xfrm_policy.c