Skip to content

Commit

Permalink
esp4: Avoid skb_cow_data whenever possible
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
klassert committed Jan 17, 2017
1 parent 726282a commit cac2661
Show file tree
Hide file tree
Showing 2 changed files with 266 additions and 74 deletions.
2 changes: 2 additions & 0 deletions include/net/xfrm.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Loading

0 comments on commit cac2661

Please sign in to comment.