diff options
author | Yossi Kuperman <yossiku@mellanox.com> | 2017-08-30 11:30:39 +0300 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2017-08-31 09:04:03 +0200 |
commit | 47ebcc0bb1d5eb7f1b1eeab675409ea7f67b4a5c (patch) | |
tree | 1718a09f7321053903a758a82b0101595113cad0 /net/xfrm/xfrm_input.c | |
parent | acfb98b99647aa7dc7c111db52d5f4199d2b641f (diff) | |
download | linux-47ebcc0bb1d5eb7f1b1eeab675409ea7f67b4a5c.tar.gz linux-47ebcc0bb1d5eb7f1b1eeab675409ea7f67b4a5c.tar.bz2 linux-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.c | 5 |
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; } |