@@ -314,6 +314,8 @@ enum {
314314 MLX5_CMD_OP_CREATE_UMEM = 0xa08 ,
315315 MLX5_CMD_OP_DESTROY_UMEM = 0xa0a ,
316316 MLX5_CMD_OP_SYNC_STEERING = 0xb00 ,
317+ MLX5_CMD_OP_PSP_GEN_SPI = 0xb10 ,
318+ MLX5_CMD_OP_PSP_ROTATE_KEY = 0xb11 ,
317319 MLX5_CMD_OP_QUERY_VHCA_STATE = 0xb0d ,
318320 MLX5_CMD_OP_MODIFY_VHCA_STATE = 0xb0e ,
319321 MLX5_CMD_OP_SYNC_CRYPTO = 0xb12 ,
@@ -489,12 +491,14 @@ struct mlx5_ifc_flow_table_prop_layout_bits {
489491 u8 execute_aso [0x1 ];
490492 u8 reserved_at_47 [0x19 ];
491493
492- u8 reserved_at_60 [0x2 ];
494+ u8 reformat_l2_to_l3_psp_tunnel [0x1 ];
495+ u8 reformat_l3_psp_tunnel_to_l2 [0x1 ];
493496 u8 reformat_insert [0x1 ];
494497 u8 reformat_remove [0x1 ];
495498 u8 macsec_encrypt [0x1 ];
496499 u8 macsec_decrypt [0x1 ];
497- u8 reserved_at_66 [0x2 ];
500+ u8 psp_encrypt [0x1 ];
501+ u8 psp_decrypt [0x1 ];
498502 u8 reformat_add_macsec [0x1 ];
499503 u8 reformat_remove_macsec [0x1 ];
500504 u8 reparse [0x1 ];
@@ -703,7 +707,7 @@ struct mlx5_ifc_fte_match_set_misc2_bits {
703707
704708 u8 metadata_reg_a [0x20 ];
705709
706- u8 reserved_at_1a0 [0x8 ];
710+ u8 psp_syndrome [0x8 ];
707711 u8 macsec_syndrome [0x8 ];
708712 u8 ipsec_syndrome [0x8 ];
709713 u8 ipsec_next_header [0x8 ];
@@ -1511,6 +1515,21 @@ struct mlx5_ifc_macsec_cap_bits {
15111515 u8 reserved_at_40 [0x7c0 ];
15121516};
15131517
1518+ struct mlx5_ifc_psp_cap_bits {
1519+ u8 reserved_at_0 [0x1 ];
1520+ u8 psp_crypto_offload [0x1 ];
1521+ u8 reserved_at_2 [0x1 ];
1522+ u8 psp_crypto_esp_aes_gcm_256_encrypt [0x1 ];
1523+ u8 psp_crypto_esp_aes_gcm_128_encrypt [0x1 ];
1524+ u8 psp_crypto_esp_aes_gcm_256_decrypt [0x1 ];
1525+ u8 psp_crypto_esp_aes_gcm_128_decrypt [0x1 ];
1526+ u8 reserved_at_7 [0x4 ];
1527+ u8 log_max_num_of_psp_spi [0x5 ];
1528+ u8 reserved_at_10 [0x10 ];
1529+
1530+ u8 reserved_at_20 [0x7e0 ];
1531+ };
1532+
15141533enum {
15151534 MLX5_WQ_TYPE_LINKED_LIST = 0x0 ,
15161535 MLX5_WQ_TYPE_CYCLIC = 0x1 ,
@@ -1876,7 +1895,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
18761895
18771896 u8 reserved_at_2a0 [0x7 ];
18781897 u8 mkey_pcie_tph [0x1 ];
1879- u8 reserved_at_2a8 [0x3 ];
1898+ u8 reserved_at_2a8 [0x2 ];
1899+
1900+ u8 psp [0x1 ];
18801901 u8 shampo [0x1 ];
18811902 u8 reserved_at_2ac [0x4 ];
18821903 u8 max_wqe_sz_rq [0x10 ];
@@ -3803,6 +3824,7 @@ union mlx5_ifc_hca_cap_union_bits {
38033824 struct mlx5_ifc_macsec_cap_bits macsec_cap ;
38043825 struct mlx5_ifc_crypto_cap_bits crypto_cap ;
38053826 struct mlx5_ifc_ipsec_cap_bits ipsec_cap ;
3827+ struct mlx5_ifc_psp_cap_bits psp_cap ;
38063828 u8 reserved_at_0 [0x8000 ];
38073829};
38083830
@@ -3832,6 +3854,7 @@ enum {
38323854enum {
38333855 MLX5_FLOW_CONTEXT_ENCRYPT_DECRYPT_TYPE_IPSEC = 0x0 ,
38343856 MLX5_FLOW_CONTEXT_ENCRYPT_DECRYPT_TYPE_MACSEC = 0x1 ,
3857+ MLX5_FLOW_CONTEXT_ENCRYPT_DECRYPT_TYPE_PSP = 0x2 ,
38353858};
38363859
38373860struct mlx5_ifc_vlan_bits {
@@ -7159,6 +7182,8 @@ enum mlx5_reformat_ctx_type {
71597182 MLX5_REFORMAT_TYPE_DEL_ESP_TRANSPORT_OVER_UDP = 0xa ,
71607183 MLX5_REFORMAT_TYPE_ADD_ESP_TRANSPORT_OVER_IPV6 = 0xb ,
71617184 MLX5_REFORMAT_TYPE_ADD_ESP_TRANSPORT_OVER_UDPV6 = 0xc ,
7185+ MLX5_REFORMAT_TYPE_ADD_PSP_TUNNEL = 0xd ,
7186+ MLX5_REFORMAT_TYPE_DEL_PSP_TUNNEL = 0xe ,
71627187 MLX5_REFORMAT_TYPE_INSERT_HDR = 0xf ,
71637188 MLX5_REFORMAT_TYPE_REMOVE_HDR = 0x10 ,
71647189 MLX5_REFORMAT_TYPE_ADD_MACSEC = 0x11 ,
@@ -7285,6 +7310,7 @@ enum {
72857310 MLX5_ACTION_IN_FIELD_IPSEC_SYNDROME = 0x5D ,
72867311 MLX5_ACTION_IN_FIELD_OUT_EMD_47_32 = 0x6F ,
72877312 MLX5_ACTION_IN_FIELD_OUT_EMD_31_0 = 0x70 ,
7313+ MLX5_ACTION_IN_FIELD_PSP_SYNDROME = 0x71 ,
72887314};
72897315
72907316struct mlx5_ifc_alloc_modify_header_context_out_bits {
@@ -13079,6 +13105,7 @@ enum {
1307913105 MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_PURPOSE_TLS = 0x1 ,
1308013106 MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_PURPOSE_IPSEC = 0x2 ,
1308113107 MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_PURPOSE_MACSEC = 0x4 ,
13108+ MLX5_GENERAL_OBJECT_TYPE_ENCRYPTION_KEY_PURPOSE_PSP = 0x6 ,
1308213109};
1308313110
1308413111struct mlx5_ifc_tls_static_params_bits {
@@ -13496,4 +13523,64 @@ enum mlx5e_pcie_cong_event_mod_field {
1349613523 MLX5_PCIE_CONG_EVENT_MOD_THRESH = BIT (2 ),
1349713524};
1349813525
13526+ struct mlx5_ifc_psp_rotate_key_in_bits {
13527+ u8 opcode [0x10 ];
13528+ u8 uid [0x10 ];
13529+
13530+ u8 reserved_at_20 [0x10 ];
13531+ u8 op_mod [0x10 ];
13532+
13533+ u8 reserved_at_40 [0x40 ];
13534+ };
13535+
13536+ struct mlx5_ifc_psp_rotate_key_out_bits {
13537+ u8 status [0x8 ];
13538+ u8 reserved_at_8 [0x18 ];
13539+
13540+ u8 syndrome [0x20 ];
13541+
13542+ u8 reserved_at_40 [0x40 ];
13543+ };
13544+
13545+ enum mlx5_psp_gen_spi_in_key_size {
13546+ MLX5_PSP_GEN_SPI_IN_KEY_SIZE_128 = 0x0 ,
13547+ MLX5_PSP_GEN_SPI_IN_KEY_SIZE_256 = 0x1 ,
13548+ };
13549+
13550+ struct mlx5_ifc_key_spi_bits {
13551+ u8 spi [0x20 ];
13552+
13553+ u8 reserved_at_20 [0x60 ];
13554+
13555+ u8 key [8 ][0x20 ];
13556+ };
13557+
13558+ struct mlx5_ifc_psp_gen_spi_in_bits {
13559+ u8 opcode [0x10 ];
13560+ u8 uid [0x10 ];
13561+
13562+ u8 reserved_at_20 [0x10 ];
13563+ u8 op_mod [0x10 ];
13564+
13565+ u8 reserved_at_40 [0x20 ];
13566+
13567+ u8 key_size [0x2 ];
13568+ u8 reserved_at_62 [0xe ];
13569+ u8 num_of_spi [0x10 ];
13570+ };
13571+
13572+ struct mlx5_ifc_psp_gen_spi_out_bits {
13573+ u8 status [0x8 ];
13574+ u8 reserved_at_8 [0x18 ];
13575+
13576+ u8 syndrome [0x20 ];
13577+
13578+ u8 reserved_at_40 [0x10 ];
13579+ u8 num_of_spi [0x10 ];
13580+
13581+ u8 reserved_at_60 [0x20 ];
13582+
13583+ struct mlx5_ifc_key_spi_bits key_spi [];
13584+ };
13585+
1349913586#endif /* MLX5_IFC_H */
0 commit comments