cryptodev: add session-less feature flag

Add feature flag for symmetric sessionless support,
so it can be checked by applications.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>
Tested-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
This commit is contained in:
Pablo de Lara 2020-04-16 10:25:29 +01:00 committed by Akhil Goyal
parent 38f3c3a87a
commit b3aaf24de5
25 changed files with 41 additions and 15 deletions

View File

@ -15,6 +15,7 @@ In Place SGL = Y
OOP SGL In LB Out = Y OOP SGL In LB Out = Y
OOP LB In LB Out = Y OOP LB In LB Out = Y
CPU crypto = Y CPU crypto = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of the 'aesni_gcm' crypto driver. ; Supported crypto algorithms of the 'aesni_gcm' crypto driver.
; ;

View File

@ -13,6 +13,7 @@ CPU AVX512 = Y
CPU AESNI = Y CPU AESNI = Y
OOP LB In LB Out = Y OOP LB In LB Out = Y
CPU crypto = Y CPU crypto = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of the 'aesni_mb' crypto driver. ; Supported crypto algorithms of the 'aesni_mb' crypto driver.

View File

@ -8,6 +8,7 @@ Symmetric crypto = Y
Sym operation chaining = Y Sym operation chaining = Y
CPU NEON = Y CPU NEON = Y
CPU ARM CE = Y CPU ARM CE = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of the 'armv8' crypto driver. ; Supported crypto algorithms of the 'armv8' crypto driver.

View File

@ -48,4 +48,4 @@ AES GCM (256) = Y
; ;
; Supported Asymmetric algorithms of the 'dpaa2_sec' crypto driver. ; Supported Asymmetric algorithms of the 'dpaa2_sec' crypto driver.
; ;
[Asymmetric] [Asymmetric]

View File

@ -7,6 +7,7 @@
Symmetric crypto = Y Symmetric crypto = Y
Sym operation chaining = Y Sym operation chaining = Y
HW Accelerated = Y HW Accelerated = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of the 'ccp' crypto driver. ; Supported crypto algorithms of the 'ccp' crypto driver.
@ -61,4 +62,4 @@ AES GCM (256) = Y
; ;
; Supported Asymmetric algorithms of the 'ccp' crypto driver. ; Supported Asymmetric algorithms of the 'ccp' crypto driver.
; ;
[Asymmetric] [Asymmetric]

View File

@ -28,6 +28,7 @@ RSA PRIV OP KEY QT =
Digest encrypted = Digest encrypted =
Asymmetric sessionless = Asymmetric sessionless =
CPU crypto = CPU crypto =
Symmetric sessionless =
; ;
; Supported crypto algorithms of a default crypto driver. ; Supported crypto algorithms of a default crypto driver.

View File

@ -6,6 +6,7 @@
[Features] [Features]
Symmetric crypto = Y Symmetric crypto = Y
Sym operation chaining = Y Sym operation chaining = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of the 'kasumi' crypto driver. ; Supported crypto algorithms of the 'kasumi' crypto driver.
@ -26,4 +27,4 @@ KASUMI F9 = Y
; ;
; Supported Asymmetric algorithms of the 'kasumi' crypto driver. ; Supported Asymmetric algorithms of the 'kasumi' crypto driver.
; ;
[Asymmetric] [Asymmetric]

View File

@ -12,6 +12,7 @@ In Place SGL = Y
OOP SGL In LB Out = Y OOP SGL In LB Out = Y
OOP SGL In SGL Out = Y OOP SGL In SGL Out = Y
RSA PRIV OP KEY QT = Y RSA PRIV OP KEY QT = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of 'octeontx' crypto driver. ; Supported crypto algorithms of 'octeontx' crypto driver.

View File

@ -12,6 +12,7 @@ In Place SGL = Y
OOP SGL In LB Out = Y OOP SGL In LB Out = Y
OOP SGL In SGL Out = Y OOP SGL In SGL Out = Y
RSA PRIV OP KEY QT = Y RSA PRIV OP KEY QT = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of 'octeontx2' crypto driver. ; Supported crypto algorithms of 'octeontx2' crypto driver.

View File

@ -12,6 +12,7 @@ OOP LB In LB Out = Y
Asymmetric crypto = Y Asymmetric crypto = Y
RSA PRIV OP KEY EXP = Y RSA PRIV OP KEY EXP = Y
RSA PRIV OP KEY QT = Y RSA PRIV OP KEY QT = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of the 'openssl' crypto driver. ; Supported crypto algorithms of the 'openssl' crypto driver.

View File

@ -6,6 +6,7 @@
[Features] [Features]
Symmetric crypto = Y Symmetric crypto = Y
Sym operation chaining = Y Sym operation chaining = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of the 'snow3g' crypto driver. ; Supported crypto algorithms of the 'snow3g' crypto driver.
@ -26,4 +27,4 @@ SNOW3G UIA2 = Y
; ;
; Supported Asymmetric algorithms of the 'snow3g' crypto driver. ; Supported Asymmetric algorithms of the 'snow3g' crypto driver.
; ;
[Asymmetric] [Asymmetric]

View File

@ -6,6 +6,7 @@
[Features] [Features]
Symmetric crypto = Y Symmetric crypto = Y
Sym operation chaining = Y Sym operation chaining = Y
Symmetric sessionless = Y
; ;
; Supported crypto algorithms of the 'zuc' crypto driver. ; Supported crypto algorithms of the 'zuc' crypto driver.

View File

@ -744,7 +744,8 @@ aesni_gcm_create(const char *name,
RTE_CRYPTODEV_FF_IN_PLACE_SGL | RTE_CRYPTODEV_FF_IN_PLACE_SGL |
RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT | RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT |
RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT | RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT |
RTE_CRYPTODEV_FF_SYM_CPU_CRYPTO; RTE_CRYPTODEV_FF_SYM_CPU_CRYPTO |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
/* Check CPU for support for AES instruction set */ /* Check CPU for support for AES instruction set */
if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AES)) if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AES))

View File

@ -1621,7 +1621,8 @@ cryptodev_aesni_mb_create(const char *name,
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING | RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT | RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT |
RTE_CRYPTODEV_FF_SYM_CPU_CRYPTO; RTE_CRYPTODEV_FF_SYM_CPU_CRYPTO |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
/* Check CPU for support for AES instruction set */ /* Check CPU for support for AES instruction set */
if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AES)) if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AES))

View File

@ -792,7 +792,8 @@ cryptodev_armv8_crypto_create(const char *name,
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING | RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
RTE_CRYPTODEV_FF_CPU_NEON | RTE_CRYPTODEV_FF_CPU_NEON |
RTE_CRYPTODEV_FF_CPU_ARM_CE; RTE_CRYPTODEV_FF_CPU_ARM_CE |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
internals = dev->data->dev_private; internals = dev->data->dev_private;

View File

@ -352,7 +352,8 @@ cryptodev_ccp_create(const char *name,
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_HW_ACCELERATED | RTE_CRYPTODEV_FF_HW_ACCELERATED |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING; RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
internals = dev->data->dev_private; internals = dev->data->dev_private;

View File

@ -550,7 +550,8 @@ cryptodev_kasumi_create(const char *name,
dev->enqueue_burst = kasumi_pmd_enqueue_burst; dev->enqueue_burst = kasumi_pmd_enqueue_burst;
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING; RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
mgr = alloc_mb_mgr(0); mgr = alloc_mb_mgr(0);
if (mgr == NULL) if (mgr == NULL)

View File

@ -178,7 +178,8 @@ cryptodev_null_create(const char *name,
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING | RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
RTE_CRYPTODEV_FF_IN_PLACE_SGL; RTE_CRYPTODEV_FF_IN_PLACE_SGL |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
internals = dev->data->dev_private; internals = dev->data->dev_private;

View File

@ -967,7 +967,8 @@ otx_cpt_dev_create(struct rte_cryptodev *c_dev)
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING | RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
RTE_CRYPTODEV_FF_IN_PLACE_SGL | RTE_CRYPTODEV_FF_IN_PLACE_SGL |
RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT | RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT |
RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT; RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
break; break;
default: default:
/* Feature not supported. Abort */ /* Feature not supported. Abort */

View File

@ -103,7 +103,8 @@ otx2_cpt_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT | RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT |
RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT | RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT |
RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO | RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_QT; RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_QT |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
return 0; return 0;

View File

@ -2207,7 +2207,8 @@ cryptodev_openssl_create(const char *name,
RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT | RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT |
RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO | RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_EXP | RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_EXP |
RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_QT; RTE_CRYPTODEV_FF_RSA_PRIV_OP_KEY_QT |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
internals = dev->data->dev_private; internals = dev->data->dev_private;

View File

@ -562,7 +562,8 @@ cryptodev_snow3g_create(const char *name,
dev->enqueue_burst = snow3g_pmd_enqueue_burst; dev->enqueue_burst = snow3g_pmd_enqueue_burst;
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING; RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
mgr = alloc_mb_mgr(0); mgr = alloc_mb_mgr(0);
if (mgr == NULL) if (mgr == NULL)

View File

@ -469,7 +469,8 @@ cryptodev_zuc_create(const char *name,
} }
dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO | dev->feature_flags = RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO |
RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING; RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING |
RTE_CRYPTODEV_FF_SYM_SESSIONLESS;
mb_mgr = alloc_mb_mgr(0); mb_mgr = alloc_mb_mgr(0);
if (mb_mgr == NULL) if (mb_mgr == NULL)

View File

@ -497,6 +497,8 @@ rte_cryptodev_get_feature_name(uint64_t flag)
return "SYM_CPU_CRYPTO"; return "SYM_CPU_CRYPTO";
case RTE_CRYPTODEV_FF_ASYM_SESSIONLESS: case RTE_CRYPTODEV_FF_ASYM_SESSIONLESS:
return "ASYM_SESSIONLESS"; return "ASYM_SESSIONLESS";
case RTE_CRYPTODEV_FF_SYM_SESSIONLESS:
return "SYM_SESSIONLESS";
default: default:
return NULL; return NULL;
} }

View File

@ -452,6 +452,8 @@ rte_cryptodev_asym_get_xform_enum(enum rte_crypto_asym_xform_type *xform_enum,
/**< Support asymmetric session-less operations */ /**< Support asymmetric session-less operations */
#define RTE_CRYPTODEV_FF_SYM_CPU_CRYPTO (1ULL << 21) #define RTE_CRYPTODEV_FF_SYM_CPU_CRYPTO (1ULL << 21)
/**< Support symmetric cpu-crypto processing */ /**< Support symmetric cpu-crypto processing */
#define RTE_CRYPTODEV_FF_SYM_SESSIONLESS (1ULL << 22)
/**< Support symmetric session-less operations */
/** /**