crypto: use fixed crypto frame pool 26/38926/5
authorgaoginskx <gabrielx.oginski@intel.com>
Mon, 7 Jun 2021 11:07:01 +0000 (12:07 +0100)
committerFan Zhang <fanzhang.oss@gmail.com>
Thu, 8 Jun 2023 09:18:58 +0000 (09:18 +0000)
commitf441b5d0ed8ff9d87412c1640dfec93e9cba03bd
tree457879317037cc833dd635d9f5b3b48862963ffd
parentf50929d370aa0216417f51f457770acdc2324c6c
crypto: use fixed crypto frame pool

The async frames pool may be resized once drained. This will cause 2 problems: original pool pointer is invalidated and pool size changed, both problems will confuse the crypto infra user graph nodes (like IPsec and Wireguard) and crypto engines if they expect the pool pointers always valid and the pool size never changed (for performance reason).

This patch introduces fixed size of the async frames pool. This helps zeroing surprise to the components shown above and avoiding segmentation fault when pool resizing happened. In addition, the crypto engine may take advantage of the feature to sync its own pool/vector with crypto infra.

Type: improvement

Signed-off-by: Gabriel Oginski <gabrielx.oginski@intel.com>
Signed-off-by: Piotr Bronowski <piotrx.bronowski@intel.com>
Change-Id: I2a71783b90149fa376848b9c4f84ce8c6c034bef
src/plugins/wireguard/wireguard_input.c
src/plugins/wireguard/wireguard_output_tun.c
src/vnet/crypto/crypto.c
src/vnet/crypto/crypto.h
src/vnet/ipsec/esp_decrypt.c
src/vnet/ipsec/esp_encrypt.c
src/vnet/ipsec/ipsec.api