esp4: Avoid skb_cow_data whenever possible
authorSteffen Klassert <steffen.klassert@secunet.com>
Tue, 17 Jan 2017 09:22:57 +0000 (10:22 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Tue, 17 Jan 2017 09:22:57 +0000 (10:22 +0100)
commitcac2661c53f35cbe651bef9b07026a5a05ab8ce0
tree5dcfc6cc74b9d68bd7282dade08fb1c9d0a7989e
parent726282aa6bbe627b3876afc27f88172e37b1d01d
esp4: Avoid skb_cow_data whenever possible

This patch tries to avoid skb_cow_data on esp4.

On the encrypt side we add the IPsec tailbits
to the linear part of the buffer if there is
space on it. If there is no space on the linear
part, we add a page fragment with the tailbits to
the buffer and use separate src and dst scatterlists.

On the decrypt side, we leave the buffer as it is
if it is not cloned.

With this, we can avoid a linearization of the buffer
in most of the cases.

Joint work with:
Sowmini Varadhan <sowmini.varadhan@oracle.com>
Ilan Tayari <ilant@mellanox.com>

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: Ilan Tayari <ilant@mellanox.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
include/net/xfrm.h
net/ipv4/esp4.c