> > From: Matan Azrad <ma...@nvidia.com> > > > > In cryptography, a block cipher is a deterministic algorithm operating > > on fixed-length groups of bits, called blocks. > > > > A block cipher consists of two paired algorithms, one for encryption > > and the other for decryption. Both algorithms accept two inputs: > > an input block of size n bits and a key of size k bits; and both yield > > an n-bit output block. The decryption algorithm is defined to be the > > inverse function of the encryption. > > > > For AES standard the block size is 16 bytes. > > For AES in XTS mode, the data to be encrypted\decrypted does not have to > > be multiple of 16B size, the unit of data is called data-unit. > > The data-unit size can be any size in range [16B, 2^24B], so, in this > > case, a data stream is divided into N amount of equal data-units and > > must be encrypted\decrypted in the same data-unit resolution. > > > > For ABI compatibility reason, the size is limited to 64K (16-bit field). > > The new field dataunit_len is inserted in a struct padding hole, > > which is only 2 bytes long in 32-bit build. > > It could be moved and extended later during an ABI-breakage window. > > > > The current cryptodev API doesn't allow the user to select a specific > > data-unit length supported by the devices. > > In addition, there is no definition how the IV is detected per data-unit > > when single operation includes more than one data-unit. > > > > That causes applications to use single operation per data-unit even though > > all the data is continuous in memory what reduces datapath performance. > > > > Add a new feature flag to support multiple data-unit sizes, called > > RTE_CRYPTODEV_FF_CIPHER_MULTIPLE_DATA_UNITS. > > Add a new field in cipher capability, called dataunit_set, > > where the devices can report the range of the supported data-unit sizes. > > Add a new cipher transformation field, called dataunit_len, where the user > > can select the data-unit length for all the operations. > > > > All the new fields do not change the size of their structures, > > by filling some struct padding holes. > > They are added as exceptions in the ABI check file libabigail.abignore. > > > > Using a bitmap to report the supported data-unit sizes capability allows > > the devices to report a range simply as same as the user to read it > > simply. also, thus sizes are usually common and probably will be shared > > among different devices. > > > > Signed-off-by: Matan Azrad <ma...@nvidia.com> > > Signed-off-by: Thomas Monjalon <tho...@monjalon.net> > > --- > Acked-by: Akhil Goyal <gak...@marvell.com>
Applied to dpdk-next-crypto This patch is causing ABI breakage at my end, but since CI is passing, I am applying this patch. I believe my libabigail version is older than what CI is using. @thomas : Please pull crypto tree to main and send the dependent patches again so that CI can run on them. Regards, Akhil