0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 #ifndef MLX5_USER_IOCTL_VERBS_H
0034 #define MLX5_USER_IOCTL_VERBS_H
0035
0036 #include <linux/types.h>
0037
0038 enum mlx5_ib_uapi_flow_action_flags {
0039 MLX5_IB_UAPI_FLOW_ACTION_FLAGS_REQUIRE_METADATA = 1 << 0,
0040 };
0041
0042 enum mlx5_ib_uapi_flow_table_type {
0043 MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_RX = 0x0,
0044 MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX = 0x1,
0045 MLX5_IB_UAPI_FLOW_TABLE_TYPE_FDB = 0x2,
0046 MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_RX = 0x3,
0047 MLX5_IB_UAPI_FLOW_TABLE_TYPE_RDMA_TX = 0x4,
0048 };
0049
0050 enum mlx5_ib_uapi_flow_action_packet_reformat_type {
0051 MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TUNNEL_TO_L2 = 0x0,
0052 MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L2_TUNNEL = 0x1,
0053 MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L3_TUNNEL_TO_L2 = 0x2,
0054 MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3,
0055 };
0056
0057 struct mlx5_ib_uapi_devx_async_cmd_hdr {
0058 __aligned_u64 wr_id;
0059 __u8 out_data[];
0060 };
0061
0062 enum mlx5_ib_uapi_dm_type {
0063 MLX5_IB_UAPI_DM_TYPE_MEMIC,
0064 MLX5_IB_UAPI_DM_TYPE_STEERING_SW_ICM,
0065 MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_SW_ICM,
0066 MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_PATTERN_SW_ICM,
0067 };
0068
0069 enum mlx5_ib_uapi_devx_create_event_channel_flags {
0070 MLX5_IB_UAPI_DEVX_CR_EV_CH_FLAGS_OMIT_DATA = 1 << 0,
0071 };
0072
0073 struct mlx5_ib_uapi_devx_async_event_hdr {
0074 __aligned_u64 cookie;
0075 __u8 out_data[];
0076 };
0077
0078 enum mlx5_ib_uapi_pp_alloc_flags {
0079 MLX5_IB_UAPI_PP_ALLOC_FLAGS_DEDICATED_INDEX = 1 << 0,
0080 };
0081
0082 enum mlx5_ib_uapi_uar_alloc_type {
0083 MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0,
0084 MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
0085 };
0086
0087 enum mlx5_ib_uapi_query_port_flags {
0088 MLX5_IB_UAPI_QUERY_PORT_VPORT = 1 << 0,
0089 MLX5_IB_UAPI_QUERY_PORT_VPORT_VHCA_ID = 1 << 1,
0090 MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_RX = 1 << 2,
0091 MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_TX = 1 << 3,
0092 MLX5_IB_UAPI_QUERY_PORT_VPORT_REG_C0 = 1 << 4,
0093 MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5,
0094 };
0095
0096 struct mlx5_ib_uapi_reg {
0097 __u32 value;
0098 __u32 mask;
0099 };
0100
0101 struct mlx5_ib_uapi_query_port {
0102 __aligned_u64 flags;
0103 __u16 vport;
0104 __u16 vport_vhca_id;
0105 __u16 esw_owner_vhca_id;
0106 __u16 rsvd0;
0107 __aligned_u64 vport_steering_icm_rx;
0108 __aligned_u64 vport_steering_icm_tx;
0109 struct mlx5_ib_uapi_reg reg_c0;
0110 };
0111
0112 #endif
0113