From: Israel Rukshin <israelr@xxxxxxxxxx> Add crypto related IFC structs, layouts and enumerations. Signed-off-by: Israel Rukshin <israelr@xxxxxxxxxx> Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx> --- include/linux/mlx5/mlx5_ifc.h | 36 ++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h index 8bbf15433bb2..170fe1081820 100644 --- a/include/linux/mlx5/mlx5_ifc.h +++ b/include/linux/mlx5/mlx5_ifc.h @@ -1331,6 +1331,29 @@ struct mlx5_ifc_macsec_cap_bits { u8 reserved_at_40[0x7c0]; }; +enum { + MLX5_CRYPTO_WRAPPED_IMPORT_METHOD_CAP_AES_XTS = 0x4, +}; + +struct mlx5_ifc_crypto_cap_bits { + u8 wrapped_crypto_operational[0x1]; + u8 reserved_at_1[0x17]; + u8 wrapped_import_method[0x8]; + + u8 reserved_at_20[0xb]; + u8 log_max_num_deks[0x5]; + u8 reserved_at_30[0x3]; + u8 log_max_num_import_keks[0x5]; + u8 reserved_at_38[0x3]; + u8 log_max_num_creds[0x5]; + + u8 failed_selftests[0x10]; + u8 num_nv_import_keks[0x8]; + u8 num_nv_credentials[0x8]; + + u8 reserved_at_60[0x7a0]; +}; + enum { MLX5_WQ_TYPE_LINKED_LIST = 0x0, MLX5_WQ_TYPE_CYCLIC = 0x1, @@ -1758,7 +1781,9 @@ struct mlx5_ifc_cmd_hca_cap_bits { u8 reserved_at_3e8[0x2]; u8 vhca_state[0x1]; u8 log_max_vlan_list[0x5]; - u8 reserved_at_3f0[0x3]; + u8 reserved_at_3f0[0x1]; + u8 aes_xts_single_block_le_tweak[0x1]; + u8 aes_xts_multi_block_be_tweak[0x1]; u8 log_max_current_mc_list[0x5]; u8 reserved_at_3f8[0x3]; u8 log_max_current_uc_list[0x5]; @@ -1774,7 +1799,8 @@ struct mlx5_ifc_cmd_hca_cap_bits { u8 ats[0x1]; u8 reserved_at_462[0x1]; u8 log_max_uctx[0x5]; - u8 reserved_at_468[0x2]; + u8 aes_xts_multi_block_le_tweak[0x1]; + u8 crypto[0x1]; u8 ipsec_offload[0x1]; u8 log_max_umem[0x5]; u8 max_num_eqs[0x10]; @@ -3377,6 +3403,7 @@ union mlx5_ifc_hca_cap_union_bits { struct mlx5_ifc_virtio_emulation_cap_bits virtio_emulation_cap; struct mlx5_ifc_shampo_cap_bits shampo_cap; struct mlx5_ifc_macsec_cap_bits macsec_cap; + struct mlx5_ifc_crypto_cap_bits crypto_cap; u8 reserved_at_0[0x8000]; }; @@ -3995,7 +4022,9 @@ struct mlx5_ifc_mkc_bits { u8 reserved_at_1d9[0x1]; u8 log_page_size[0x5]; - u8 reserved_at_1e0[0x20]; + u8 reserved_at_1e0[0x3]; + u8 crypto_en[0x2]; + u8 reserved_at_1e5[0x1b]; }; struct mlx5_ifc_pkey_bits { @@ -11978,6 +12007,7 @@ enum { enum { MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_TLS = 0x1, MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_IPSEC = 0x2, + MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_AES_XTS = 0x3, MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_TYPE_MACSEC = 0x4, }; -- 2.39.0