]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "crypto: chelsio - Inline single pdu only"
authorAyush Sawal <ayush.sawal@chelsio.com>
Wed, 6 May 2020 14:47:19 +0000 (20:17 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 May 2020 21:51:59 +0000 (14:51 -0700)
commit34172696c2aabdf1fa19ebb15d41a664eae1b9ac
treeaf7954c5741425ffd75365536223b275b9145860
parent064810a888e8d56594f0149277b976a93a4c2e0a
Revert "crypto: chelsio - Inline single pdu only"

This reverts commit 2e201af68ca29e63da5465a9b9dc32876ad888fa.

For ipsec offload the chelsio's ethernet driver expects a single mtu
sized packet.

But when ipsec traffic is running using iperf, most of the packets in
that traffic are gso packets(large sized skbs) because GSO is enabled by
default in TCP, due to this commit 38128de47e1f ("tcp: switch to GSO
being always on"), so chcr_ipsec_offload_ok() receives a gso
skb(with gso_size non zero).

Due to the check in chcr_ipsec_offload_ok(), this function returns false
for most of the packet, then ipsec offload is skipped and the skb goes
out taking the coprocessor path which reduces the bandwidth for inline
ipsec.

If this check is removed then for most of the packets(large sized skbs)
the chcr_ipsec_offload_ok() returns true and then as GSO is on, the
segmentation of the packet happens in the kernel and then finally the
driver_xmit is called, which receives a segmented mtu sized packet which
is what the driver expects for ipsec offload. So this case becomes
unnecessary here, therefore removing it.

Signed-off-by: Ayush Sawal <ayush.sawal@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/crypto/chelsio/chcr_ipsec.c