summaryrefslogtreecommitdiffstats
path: root/include/net/xfrm.h
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2017-01-17 10:22:57 +0100
committerSteffen Klassert <steffen.klassert@secunet.com>2017-01-17 10:22:57 +0100
commitcac2661c53f35cbe651bef9b07026a5a05ab8ce0 (patch)
tree5dcfc6cc74b9d68bd7282dade08fb1c9d0a7989e /include/net/xfrm.h
parent726282aa6bbe627b3876afc27f88172e37b1d01d (diff)
downloadlinux-cac2661c53f35cbe651bef9b07026a5a05ab8ce0.tar.gz
linux-cac2661c53f35cbe651bef9b07026a5a05ab8ce0.tar.xz
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>
Diffstat (limited to 'include/net/xfrm.h')
-rw-r--r--include/net/xfrm.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index c52197cf51dc..d9a81dcef53e 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -213,6 +213,8 @@ struct xfrm_state {
/* Last used time */
unsigned long lastused;
+ struct page_frag xfrag;
+
/* Reference to data common to all the instances of this
* transformer. */
const struct xfrm_type *type;