From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH net-next] tls: Add support for inplace records encryption Date: Tue, 02 Oct 2018 23:04:10 -0700 (PDT) Message-ID: <20181002.230410.59470815103805486.davem@davemloft.net> References: <20180930023435.22864-1-vakul.garg@nxp.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, borisp@mellanox.com, aviadye@mellanox.com, davejwatson@fb.com, doronrk@fb.com To: vakul.garg@nxp.com Return-path: Received: from shards.monkeyblade.net ([23.128.96.9]:55060 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726405AbeJCMvE (ORCPT ); Wed, 3 Oct 2018 08:51:04 -0400 In-Reply-To: <20180930023435.22864-1-vakul.garg@nxp.com> Sender: netdev-owner@vger.kernel.org List-ID: From: Vakul Garg Date: Sun, 30 Sep 2018 08:04:35 +0530 > Presently, for non-zero copy case, separate pages are allocated for > storing plaintext and encrypted text of records. These pages are stored > in sg_plaintext_data and sg_encrypted_data scatterlists inside record > structure. Further, sg_plaintext_data & sg_encrypted_data are passed > to cryptoapis for record encryption. Allocating separate pages for > plaintext and encrypted text is inefficient from both required memory > and performance point of view. > > This patch adds support of inplace encryption of records. For non-zero > copy case, we reuse the pages from sg_encrypted_data scatterlist to > copy the application's plaintext data. For the movement of pages from > sg_encrypted_data to sg_plaintext_data scatterlists, we introduce a new > function move_to_plaintext_sg(). This function add pages into > sg_plaintext_data from sg_encrypted_data scatterlists. > > tls_do_encryption() is modified to pass the same scatterlist as both > source and destination into aead_request_set_crypt() if inplace crypto > has been enabled. A new ariable 'inplace_crypto' has been introduced in > record structure to signify whether the same scatterlist can be used. > By default, the inplace_crypto is enabled in get_rec(). If zero-copy is > used (i.e. plaintext data is not copied), inplace_crypto is set to '0'. > > Signed-off-by: Vakul Garg Applied.