summaryrefslogtreecommitdiffstats
path: root/net/xfrm/xfrm_input.c
diff options
context:
space:
mode:
authorYossi Kuperman <yossiku@mellanox.com>2017-08-30 11:30:39 +0300
committerSteffen Klassert <steffen.klassert@secunet.com>2017-08-31 09:04:03 +0200
commit47ebcc0bb1d5eb7f1b1eeab675409ea7f67b4a5c (patch)
tree1718a09f7321053903a758a82b0101595113cad0 /net/xfrm/xfrm_input.c
parentacfb98b99647aa7dc7c111db52d5f4199d2b641f (diff)
downloadlinux-stable-47ebcc0bb1d5eb7f1b1eeab675409ea7f67b4a5c.tar.gz
linux-stable-47ebcc0bb1d5eb7f1b1eeab675409ea7f67b4a5c.tar.bz2
linux-stable-47ebcc0bb1d5eb7f1b1eeab675409ea7f67b4a5c.zip
xfrm: Add support for network devices capable of removing the ESP trailer
In conjunction with crypto offload [1], removing the ESP trailer by hardware can potentially improve the performance by avoiding (1) a cache miss incurred by reading the nexthdr field and (2) the necessity to calculate the csum value of the trailer in order to keep skb->csum valid. This patch introduces the changes to the xfrm stack and merely serves as an infrastructure. Subsequent patch to mlx5 driver will put this to a good use. [1] https://www.mail-archive.com/netdev@vger.kernel.org/msg175733.html Signed-off-by: Yossi Kuperman <yossiku@mellanox.com> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/xfrm/xfrm_input.c')
-rw-r--r--net/xfrm/xfrm_input.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c
index f07eec59dcae..2515cd2bc5db 100644
--- a/net/xfrm/xfrm_input.c
+++ b/net/xfrm/xfrm_input.c
@@ -247,6 +247,11 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
goto drop;
}
+ if (xo->status & CRYPTO_INVALID_PROTOCOL) {
+ XFRM_INC_STATS(net, LINUX_MIB_XFRMINSTATEPROTOERROR);
+ goto drop;
+ }
+
XFRM_INC_STATS(net, LINUX_MIB_XFRMINBUFFERERROR);
goto drop;
}