Commit 8a06a79b authored by Eli Cohen's avatar Eli Cohen Committed by Saeed Mahameed
Browse files

net/mlx5: Add interface changes required for VDPA



Rename mlx5_ifc_device_virtio_emulation_cap_bits to
mlx5_ifc_virtio_emulation_cap_bits to match names produced by the
tools producing these auto generated files.

In addition missing capabilities that will be required by VDPA
implementation.

Signed-off-by: default avatarEli Cohen <eli@mellanox.com>
Reviewed-by: default avatarParav Pandit <parav@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
parent 2a913f23
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1361,11 +1361,11 @@ enum mlx5_qcam_feature_groups {
	MLX5_ADDR_OF(device_event_cap, (mdev)->caps.hca_cur[MLX5_CAP_DEV_EVENT], cap)

#define MLX5_CAP_DEV_VDPA_EMULATION(mdev, cap)\
	MLX5_GET(device_virtio_emulation_cap, \
	MLX5_GET(virtio_emulation_cap, \
		(mdev)->caps.hca_cur[MLX5_CAP_VDPA_EMULATION], cap)

#define MLX5_CAP64_DEV_VDPA_EMULATION(mdev, cap)\
	MLX5_GET64(device_virtio_emulation_cap, \
	MLX5_GET64(virtio_emulation_cap, \
		(mdev)->caps.hca_cur[MLX5_CAP_VDPA_EMULATION], cap)

#define MLX5_CAP_IPSEC(mdev, cap)\
+98 −14
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ enum {

enum {
	MLX5_OBJ_TYPE_GENEVE_TLV_OPT = 0x000b,
	MLX5_OBJ_TYPE_VIRTIO_NET_Q = 0x000d,
	MLX5_OBJ_TYPE_MKEY = 0xff01,
	MLX5_OBJ_TYPE_QP = 0xff02,
	MLX5_OBJ_TYPE_PSV = 0xff03,
@@ -981,17 +982,40 @@ struct mlx5_ifc_device_event_cap_bits {
	u8         user_unaffiliated_events[4][0x40];
};

struct mlx5_ifc_device_virtio_emulation_cap_bits {
	u8         reserved_at_0[0x20];
struct mlx5_ifc_virtio_emulation_cap_bits {
	u8         desc_tunnel_offload_type[0x1];
	u8         eth_frame_offload_type[0x1];
	u8         virtio_version_1_0[0x1];
	u8         device_features_bits_mask[0xd];
	u8         event_mode[0x8];
	u8         virtio_queue_type[0x8];

	u8         reserved_at_20[0x13];
	u8         max_tunnel_desc[0x10];
	u8         reserved_at_30[0x3];
	u8         log_doorbell_stride[0x5];
	u8         reserved_at_38[0x3];
	u8         log_doorbell_bar_size[0x5];

	u8         doorbell_bar_offset[0x40];

	u8         reserved_at_80[0x780];
	u8         max_emulated_devices[0x8];
	u8         max_num_virtio_queues[0x18];

	u8         reserved_at_a0[0x60];

	u8         umem_1_buffer_param_a[0x20];

	u8         umem_1_buffer_param_b[0x20];

	u8         umem_2_buffer_param_a[0x20];

	u8         umem_2_buffer_param_b[0x20];

	u8         umem_3_buffer_param_a[0x20];

	u8         umem_3_buffer_param_b[0x20];

	u8         reserved_at_1c0[0x640];
};

enum {
@@ -1216,7 +1240,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {

	u8         max_sgl_for_optimized_performance[0x8];
	u8         log_max_cq_sz[0x8];
	u8         reserved_at_d0[0xb];
	u8         reserved_at_d0[0x9];
	u8         virtio_net_device_emualtion_manager[0x1];
	u8         virtio_blk_device_emualtion_manager[0x1];
	u8         log_max_cq[0x5];

	u8         log_max_eq_sz[0x8];
@@ -2952,7 +2978,7 @@ union mlx5_ifc_hca_cap_union_bits {
	struct mlx5_ifc_fpga_cap_bits fpga_cap;
	struct mlx5_ifc_tls_cap_bits tls_cap;
	struct mlx5_ifc_device_mem_cap_bits device_mem_cap;
	struct mlx5_ifc_device_virtio_emulation_cap_bits virtio_emulation_cap;
	struct mlx5_ifc_virtio_emulation_cap_bits virtio_emulation_cap;
	u8         reserved_at_0[0x8000];
};

@@ -3300,10 +3326,13 @@ struct mlx5_ifc_scheduling_context_bits {
struct mlx5_ifc_rqtc_bits {
	u8    reserved_at_0[0xa0];

	u8         reserved_at_a0[0x10];
	u8    reserved_at_a0[0x5];
	u8    list_q_type[0x3];
	u8    reserved_at_a8[0x8];
	u8    rqt_max_size[0x10];

	u8         reserved_at_c0[0x10];
	u8    rq_vhca_id_format[0x1];
	u8    reserved_at_c1[0xf];
	u8    rqt_actual_size[0x10];

	u8    reserved_at_e0[0x6a0];
@@ -7084,7 +7113,7 @@ struct mlx5_ifc_destroy_mkey_out_bits {

struct mlx5_ifc_destroy_mkey_in_bits {
	u8         opcode[0x10];
	u8         reserved_at_10[0x10];
	u8         uid[0x10];

	u8         reserved_at_20[0x10];
	u8         op_mod[0x10];
@@ -7782,7 +7811,7 @@ struct mlx5_ifc_create_mkey_out_bits {

struct mlx5_ifc_create_mkey_in_bits {
	u8         opcode[0x10];
	u8         reserved_at_10[0x10];
	u8         uid[0x10];

	u8         reserved_at_20[0x10];
	u8         op_mod[0x10];
@@ -10312,6 +10341,40 @@ struct mlx5_ifc_create_umem_in_bits {
	struct mlx5_ifc_umem_bits  umem;
};

struct mlx5_ifc_create_umem_out_bits {
	u8         status[0x8];
	u8         reserved_at_8[0x18];

	u8         syndrome[0x20];

	u8         reserved_at_40[0x8];
	u8         umem_id[0x18];

	u8         reserved_at_60[0x20];
};

struct mlx5_ifc_destroy_umem_in_bits {
	u8        opcode[0x10];
	u8        uid[0x10];

	u8        reserved_at_20[0x10];
	u8        op_mod[0x10];

	u8        reserved_at_40[0x8];
	u8        umem_id[0x18];

	u8        reserved_at_60[0x20];
};

struct mlx5_ifc_destroy_umem_out_bits {
	u8        status[0x8];
	u8        reserved_at_8[0x18];

	u8        syndrome[0x20];

	u8        reserved_at_40[0x40];
};

struct mlx5_ifc_create_uctx_in_bits {
	u8         opcode[0x10];
	u8         reserved_at_10[0x10];
@@ -10324,6 +10387,18 @@ struct mlx5_ifc_create_uctx_in_bits {
	struct mlx5_ifc_uctx_bits  uctx;
};

struct mlx5_ifc_create_uctx_out_bits {
	u8         status[0x8];
	u8         reserved_at_8[0x18];

	u8         syndrome[0x20];

	u8         reserved_at_40[0x10];
	u8         uid[0x10];

	u8         reserved_at_60[0x20];
};

struct mlx5_ifc_destroy_uctx_in_bits {
	u8         opcode[0x10];
	u8         reserved_at_10[0x10];
@@ -10337,6 +10412,15 @@ struct mlx5_ifc_destroy_uctx_in_bits {
	u8         reserved_at_60[0x20];
};

struct mlx5_ifc_destroy_uctx_out_bits {
	u8         status[0x8];
	u8         reserved_at_8[0x18];

	u8         syndrome[0x20];

	u8          reserved_at_40[0x40];
};

struct mlx5_ifc_create_sw_icm_in_bits {
	struct mlx5_ifc_general_obj_in_cmd_hdr_bits   hdr;
	struct mlx5_ifc_sw_icm_bits		      sw_icm;