diff options
author | Florian Westphal <fw@strlen.de> | 2018-12-18 17:15:27 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-12-19 20:21:38 +0100 |
commit | 4165079ba328dd47262a2183049d3591f0a750b1 (patch) | |
tree | 6c37280ad8ba6e1d028962bfb2e3ace1f590d3fc /Documentation/networking | |
parent | xfrm: prefer secpath_set over secpath_dup (diff) | |
download | linux-4165079ba328dd47262a2183049d3591f0a750b1.tar.xz linux-4165079ba328dd47262a2183049d3591f0a750b1.zip |
net: switch secpath to use skb extension infrastructure
Remove skb->sp and allocate secpath storage via extension
infrastructure. This also reduces sk_buff by 8 bytes on x86_64.
Total size of allyesconfig kernel is reduced slightly, as there is
less inlined code (one conditional atomic op instead of two on
skb_clone).
No differences in throughput in following ipsec performance tests:
- transport mode with aes on 10GB link
- tunnel mode between two network namespaces with aes and null cipher
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation/networking')
-rw-r--r-- | Documentation/networking/xfrm_device.txt | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Documentation/networking/xfrm_device.txt b/Documentation/networking/xfrm_device.txt index 267f55b5f54a..a1c904dc70dc 100644 --- a/Documentation/networking/xfrm_device.txt +++ b/Documentation/networking/xfrm_device.txt @@ -111,9 +111,10 @@ the stack in xfrm_input(). xfrm_state_hold(xs); store the state information into the skb - skb->sp = secpath_dup(skb->sp); - skb->sp->xvec[skb->sp->len++] = xs; - skb->sp->olen++; + sp = secpath_set(skb); + if (!sp) return; + sp->xvec[sp->len++] = xs; + sp->olen++; indicate the success and/or error status of the offload xo = xfrm_offload(skb); |