Skip to content

Commit

Permalink
net/mlx5: Add interface changes required for VDPA
Browse files Browse the repository at this point in the history
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: Eli Cohen <eli@mellanox.com>
Reviewed-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
  • Loading branch information
Eli Cohen authored and Saeed Mahameed committed Jul 16, 2020
1 parent 2a913f2 commit 8a06a79
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 16 deletions.
4 changes: 2 additions & 2 deletions include/linux/mlx5/device.h
Original file line number Diff line number Diff line change
Expand Up @@ -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)\
Expand Down
112 changes: 98 additions & 14 deletions include/linux/mlx5/mlx5_ifc.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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];
Expand Down Expand Up @@ -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];
};

Expand Down Expand Up @@ -3298,15 +3324,18 @@ struct mlx5_ifc_scheduling_context_bits {
};

struct mlx5_ifc_rqtc_bits {
u8 reserved_at_0[0xa0];
u8 reserved_at_0[0xa0];

u8 reserved_at_a0[0x10];
u8 rqt_max_size[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 rqt_actual_size[0x10];
u8 rq_vhca_id_format[0x1];
u8 reserved_at_c1[0xf];
u8 rqt_actual_size[0x10];

u8 reserved_at_e0[0x6a0];
u8 reserved_at_e0[0x6a0];

struct mlx5_ifc_rq_num_bits rq_num[];
};
Expand Down Expand Up @@ -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];
Expand Down Expand Up @@ -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];
Expand Down Expand Up @@ -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];
Expand All @@ -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];
Expand All @@ -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;
Expand Down

0 comments on commit 8a06a79

Please sign in to comment.