Hi Thomas,

> +     RTE_STD_C11
> +     union { /* temporary anonymous union for ABI compatibility */
> +
>       struct {
>               const uint8_t *data;    /**< pointer to key data */
>               uint16_t length;        /**< key length in bytes */
> @@ -222,6 +225,27 @@ struct rte_crypto_cipher_xform {
>        *  - Each key can be either 128 bits (16 bytes) or 256 bits (32 bytes).
>        *  - Both keys must have the same size.
>        **/
> +
> +     RTE_STD_C11
> +     struct { /* temporary anonymous struct for ABI compatibility */
> +             const uint8_t *_key_data; /* reserved for key.data union */
> +             uint16_t _key_length;     /* reserved for key.length union */
> +             /* next field can fill the padding hole */
> +
> +     uint16_t dataunit_len;
> +     /**< When RTE_CRYPTODEV_FF_CIPHER_MULTIPLE_DATA_UNITS is
> enabled,
> +      * this is the data-unit length of the algorithm,
> +      * otherwise or when the value is 0, use the operation length.
> +      * The value should be in the range defined by the dataunit_set field
> +      * in the cipher capability.
> +      *
> +      * - For AES-XTS it is the size of data-unit, from IEEE Std 1619-2007.
> +      * For-each data-unit in the operation, the tweak (IV) value is
> +      * assigned consecutively starting from the operation assigned IV.
> +      */
> +
> +     }; }; /* temporary struct nested in union for ABI compatibility */
> +
Can we add a deprecation notice also in this patch to remove these temporary
Struct and union, so that we remember to remove them in 21.11

> +/**
> + * Data-unit supported lengths of cipher algorithms.
> + * A bit can represent any set of data-unit sizes
> + * (single size, multiple size, range, etc).
> + */
> +#define RTE_CRYPTO_CIPHER_DATA_UNIT_LEN_512_BYTES    (1 << 0)
> +#define RTE_CRYPTO_CIPHER_DATA_UNIT_LEN_4096_BYTES   (1 << 1)
> +
>  /**
>   * Symmetric Crypto Capability
>   */
> @@ -127,6 +135,11 @@ struct rte_cryptodev_symmetric_capability {
>                       /**< cipher key size range */
>                       struct rte_crypto_param_range iv_size;
>                       /**< Initialisation vector data size range */
> +                     uint32_t dataunit_set;
> +                     /**<
> +                      * A bitmap for a set of the supported data-unit
> lengths.

Add reference to the newly created macros here

> +                      * 0 for any length defined in the algorithm standard.
> +                      */

Reply via email to