cryptodev: remove algo lists end

This patch removes enumerators RTE_CRYPTO_CIPHER_LIST_END,
RTE_CRYPTO_AUTH_LIST_END, RTE_CRYPTO_AEAD_LIST_END to prevent
ABI breakage that may arise when adding new crypto algorithms.

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
This commit is contained in:
Arek Kusztal 2020-10-12 20:21:24 +01:00 committed by Akhil Goyal
parent 7444937523
commit 3a6f835b33
3 changed files with 29 additions and 17 deletions

View File

@ -171,11 +171,6 @@ Deprecation Notices
Hence the API will be modified to take two mempool pointers - one for session Hence the API will be modified to take two mempool pointers - one for session
and one for private data. and one for private data.
* cryptodev: ``RTE_CRYPTO_AEAD_LIST_END`` from ``enum rte_crypto_aead_algorithm``,
``RTE_CRYPTO_CIPHER_LIST_END`` from ``enum rte_crypto_cipher_algorithm`` and
``RTE_CRYPTO_AUTH_LIST_END`` from ``enum rte_crypto_auth_algorithm``
will be removed.
* cryptodev: support for using IV with all sizes is added, J0 still can * cryptodev: support for using IV with all sizes is added, J0 still can
be used but only when IV length in following structs ``rte_crypto_auth_xform``, be used but only when IV length in following structs ``rte_crypto_auth_xform``,
``rte_crypto_aead_xform`` is set to zero. When IV length is greater or equal ``rte_crypto_aead_xform`` is set to zero. When IV length is greater or equal

View File

@ -359,6 +359,11 @@ API Changes
* cryptodev: The structure ``rte_crypto_sym_vec`` is updated to support both * cryptodev: The structure ``rte_crypto_sym_vec`` is updated to support both
cpu_crypto synchrounous operation and asynchronous raw data-path APIs. cpu_crypto synchrounous operation and asynchronous raw data-path APIs.
* cryptodev: ``RTE_CRYPTO_AEAD_LIST_END`` from ``enum rte_crypto_aead_algorithm``,
``RTE_CRYPTO_CIPHER_LIST_END`` from ``enum rte_crypto_cipher_algorithm`` and
``RTE_CRYPTO_AUTH_LIST_END`` from ``enum rte_crypto_auth_algorithm``
are removed to avoid future ABI breakage while adding new algorithms.
* scheduler: Renamed functions ``rte_cryptodev_scheduler_slave_attach``, * scheduler: Renamed functions ``rte_cryptodev_scheduler_slave_attach``,
``rte_cryptodev_scheduler_slave_detach`` and ``rte_cryptodev_scheduler_slave_detach`` and
``rte_cryptodev_scheduler_slaves_get`` to ``rte_cryptodev_scheduler_slaves_get`` to

View File

@ -105,7 +105,13 @@ union rte_crypto_sym_ofs {
} ofs; } ofs;
}; };
/** Symmetric Cipher Algorithms */ /** Symmetric Cipher Algorithms
*
* Note, to avoid ABI breakage across releases
* - LIST_END should not be added to this enum
* - the order of enums should not be changed
* - new algorithms should only be added to the end
*/
enum rte_crypto_cipher_algorithm { enum rte_crypto_cipher_algorithm {
RTE_CRYPTO_CIPHER_NULL = 1, RTE_CRYPTO_CIPHER_NULL = 1,
/**< NULL cipher algorithm. No mode applies to the NULL algorithm. */ /**< NULL cipher algorithm. No mode applies to the NULL algorithm. */
@ -150,15 +156,12 @@ enum rte_crypto_cipher_algorithm {
* for m_src and m_dst in the rte_crypto_sym_op must be NULL. * for m_src and m_dst in the rte_crypto_sym_op must be NULL.
*/ */
RTE_CRYPTO_CIPHER_DES_DOCSISBPI, RTE_CRYPTO_CIPHER_DES_DOCSISBPI
/**< DES algorithm using modes required by /**< DES algorithm using modes required by
* DOCSIS Baseline Privacy Plus Spec. * DOCSIS Baseline Privacy Plus Spec.
* Chained mbufs are not supported in this mode, i.e. rte_mbuf.next * Chained mbufs are not supported in this mode, i.e. rte_mbuf.next
* for m_src and m_dst in the rte_crypto_sym_op must be NULL. * for m_src and m_dst in the rte_crypto_sym_op must be NULL.
*/ */
RTE_CRYPTO_CIPHER_LIST_END
}; };
/** Cipher algorithm name strings */ /** Cipher algorithm name strings */
@ -264,7 +267,13 @@ struct rte_crypto_cipher_xform {
} iv; /**< Initialisation vector parameters */ } iv; /**< Initialisation vector parameters */
}; };
/** Symmetric Authentication / Hash Algorithms */ /** Symmetric Authentication / Hash Algorithms
*
* Note, to avoid ABI breakage across releases
* - LIST_END should not be added to this enum
* - the order of enums should not be changed
* - new algorithms should only be added to the end
*/
enum rte_crypto_auth_algorithm { enum rte_crypto_auth_algorithm {
RTE_CRYPTO_AUTH_NULL = 1, RTE_CRYPTO_AUTH_NULL = 1,
/**< NULL hash algorithm. */ /**< NULL hash algorithm. */
@ -330,10 +339,8 @@ enum rte_crypto_auth_algorithm {
/**< HMAC using 384 bit SHA3 algorithm. */ /**< HMAC using 384 bit SHA3 algorithm. */
RTE_CRYPTO_AUTH_SHA3_512, RTE_CRYPTO_AUTH_SHA3_512,
/**< 512 bit SHA3 algorithm. */ /**< 512 bit SHA3 algorithm. */
RTE_CRYPTO_AUTH_SHA3_512_HMAC, RTE_CRYPTO_AUTH_SHA3_512_HMAC
/**< HMAC using 512 bit SHA3 algorithm. */ /**< HMAC using 512 bit SHA3 algorithm. */
RTE_CRYPTO_AUTH_LIST_END
}; };
/** Authentication algorithm name strings */ /** Authentication algorithm name strings */
@ -424,15 +431,20 @@ struct rte_crypto_auth_xform {
}; };
/** Symmetric AEAD Algorithms */ /** Symmetric AEAD Algorithms
*
* Note, to avoid ABI breakage across releases
* - LIST_END should not be added to this enum
* - the order of enums should not be changed
* - new algorithms should only be added to the end
*/
enum rte_crypto_aead_algorithm { enum rte_crypto_aead_algorithm {
RTE_CRYPTO_AEAD_AES_CCM = 1, RTE_CRYPTO_AEAD_AES_CCM = 1,
/**< AES algorithm in CCM mode. */ /**< AES algorithm in CCM mode. */
RTE_CRYPTO_AEAD_AES_GCM, RTE_CRYPTO_AEAD_AES_GCM,
/**< AES algorithm in GCM mode. */ /**< AES algorithm in GCM mode. */
RTE_CRYPTO_AEAD_CHACHA20_POLY1305, RTE_CRYPTO_AEAD_CHACHA20_POLY1305
/**< Chacha20 cipher with poly1305 authenticator */ /**< Chacha20 cipher with poly1305 authenticator */
RTE_CRYPTO_AEAD_LIST_END
}; };
/** AEAD algorithm name strings */ /** AEAD algorithm name strings */