• Herbert Xu's avatar
    [IPSEC]: Kill post_input hook and do NAT-T in esp_input directly · 752c1f4c
    Herbert Xu authored
    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: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    752c1f4c
esp4.c 11.2 KB