Skip to content

Commit ef36ffc

Browse files
PatrisiousHaddadrleon
authored andcommitted
net/mlx5: Add alias flow table bits
Add all the capabilities needed to check for alias object support. As well as all the fields or commands needed for its creation and the creation of flow table that is able to jump to an alias object. Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> Reviewed-by: Mark Bloch <mbloch@nvidia.com> Link: https://lore.kernel.org/r/544c030f2a78c4adf3fe6b64f97a39cc1bbdabb9.1695296682.git.leon@kernel.org Signed-off-by: Leon Romanovsky <leon@kernel.org>
1 parent eff5b66 commit ef36ffc

1 file changed

Lines changed: 55 additions & 1 deletion

File tree

include/linux/mlx5/mlx5_ifc.h

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ enum {
312312
MLX5_CMD_OP_QUERY_VHCA_STATE = 0xb0d,
313313
MLX5_CMD_OP_MODIFY_VHCA_STATE = 0xb0e,
314314
MLX5_CMD_OP_SYNC_CRYPTO = 0xb12,
315+
MLX5_CMD_OP_ALLOW_OTHER_VHCA_ACCESS = 0xb16,
315316
MLX5_CMD_OP_MAX
316317
};
317318

@@ -1934,6 +1935,14 @@ struct mlx5_ifc_cmd_hca_cap_bits {
19341935
u8 match_definer_format_supported[0x40];
19351936
};
19361937

1938+
enum {
1939+
MLX5_CROSS_VHCA_OBJ_TO_OBJ_SUPPORTED_LOCAL_FLOW_TABLE_TO_REMOTE_FLOW_TABLE_MISS = 0x80000,
1940+
};
1941+
1942+
enum {
1943+
MLX5_ALLOWED_OBJ_FOR_OTHER_VHCA_ACCESS_FLOW_TABLE = 0x200,
1944+
};
1945+
19371946
struct mlx5_ifc_cmd_hca_cap_2_bits {
19381947
u8 reserved_at_0[0x80];
19391948

@@ -1952,7 +1961,11 @@ struct mlx5_ifc_cmd_hca_cap_2_bits {
19521961
u8 migration_in_chunks[0x1];
19531962
u8 reserved_at_d1[0xf];
19541963

1955-
u8 reserved_at_e0[0xc0];
1964+
u8 cross_vhca_object_to_object_supported[0x20];
1965+
1966+
u8 allowed_object_for_other_vhca_access[0x40];
1967+
1968+
u8 reserved_at_140[0x60];
19561969

19571970
u8 flow_table_type_2_type[0x8];
19581971
u8 reserved_at_1a8[0x3];
@@ -6371,6 +6384,28 @@ struct mlx5_ifc_general_obj_out_cmd_hdr_bits {
63716384
u8 reserved_at_60[0x20];
63726385
};
63736386

6387+
struct mlx5_ifc_allow_other_vhca_access_in_bits {
6388+
u8 opcode[0x10];
6389+
u8 uid[0x10];
6390+
u8 reserved_at_20[0x10];
6391+
u8 op_mod[0x10];
6392+
u8 reserved_at_40[0x50];
6393+
u8 object_type_to_be_accessed[0x10];
6394+
u8 object_id_to_be_accessed[0x20];
6395+
u8 reserved_at_c0[0x40];
6396+
union {
6397+
u8 access_key_raw[0x100];
6398+
u8 access_key[8][0x20];
6399+
};
6400+
};
6401+
6402+
struct mlx5_ifc_allow_other_vhca_access_out_bits {
6403+
u8 status[0x8];
6404+
u8 reserved_at_8[0x18];
6405+
u8 syndrome[0x20];
6406+
u8 reserved_at_40[0x40];
6407+
};
6408+
63746409
struct mlx5_ifc_modify_header_arg_bits {
63756410
u8 reserved_at_0[0x80];
63766411

@@ -6393,6 +6428,24 @@ struct mlx5_ifc_create_match_definer_out_bits {
63936428
struct mlx5_ifc_general_obj_out_cmd_hdr_bits general_obj_out_cmd_hdr;
63946429
};
63956430

6431+
struct mlx5_ifc_alias_context_bits {
6432+
u8 vhca_id_to_be_accessed[0x10];
6433+
u8 reserved_at_10[0xd];
6434+
u8 status[0x3];
6435+
u8 object_id_to_be_accessed[0x20];
6436+
u8 reserved_at_40[0x40];
6437+
union {
6438+
u8 access_key_raw[0x100];
6439+
u8 access_key[8][0x20];
6440+
};
6441+
u8 metadata[0x80];
6442+
};
6443+
6444+
struct mlx5_ifc_create_alias_obj_in_bits {
6445+
struct mlx5_ifc_general_obj_in_cmd_hdr_bits hdr;
6446+
struct mlx5_ifc_alias_context_bits alias_ctx;
6447+
};
6448+
63966449
enum {
63976450
MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_OUTER_HEADERS = 0x0,
63986451
MLX5_QUERY_FLOW_GROUP_OUT_MATCH_CRITERIA_ENABLE_MISC_PARAMETERS = 0x1,
@@ -11919,6 +11972,7 @@ enum {
1191911972
MLX5_GENERAL_OBJECT_TYPES_FLOW_METER_ASO = 0x24,
1192011973
MLX5_GENERAL_OBJECT_TYPES_MACSEC = 0x27,
1192111974
MLX5_GENERAL_OBJECT_TYPES_INT_KEK = 0x47,
11975+
MLX5_GENERAL_OBJECT_TYPES_FLOW_TABLE_ALIAS = 0xff15,
1192211976
};
1192311977

1192411978
enum {

0 commit comments

Comments
 (0)