Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
Pull rdma updates from Jason Gunthorpe: "This has been a smaller cycle with many of the commits being smallish code fixes and improvements across the drivers. - Driver updates for bnxt_re, cxgb4, hfi1, hns, mlx5, nes, qedr, and rxe - Memory window support in hns - mlx5 user API 'flow mutate/steering' allows accessing the full packet mangling and matching machinery from user space - Support inter-working with verbs API calls in the 'devx' mlx5 user API, and provide options to use devx with less privilege - Modernize the use of syfs and the device interface to use attribute groups and cdev properly for uverbs, and clean up some of the core code's device list management - More progress on net namespaces for RDMA devices - Consolidate driver BAR mmapping support into core code helpers and rework how RDMA holds poitners to mm_struct for get_user_pages cases - First pass to use 'dev_name' instead of ib_device->name - Device renaming for RDMA devices" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (242 commits) IB/mlx5: Add support for extended atomic operations RDMA/core: Fix comment for hw stats init for port == 0 RDMA/core: Refactor ib_register_device() function RDMA/core: Fix unwinding flow in case of error to register device ib_srp: Remove WARN_ON in srp_terminate_io() IB/mlx5: Allow scatter to CQE without global signaled WRs IB/mlx5: Verify that driver supports user flags IB/mlx5: Support scatter to CQE for DC transport type RDMA/drivers: Use core provided API for registering device attributes RDMA/core: Allow existing drivers to set one sysfs group per device IB/rxe: Remove unnecessary enum values RDMA/umad: Use kernel API to allocate umad indexes RDMA/uverbs: Use kernel API to allocate uverbs indexes RDMA/core: Increase total number of RDMA ports across all devices IB/mlx4: Add port and TID to MAD debug print IB/mlx4: Enable debug print of SMPs RDMA/core: Rename ports_parent to ports_kobj RDMA/core: Do not expose unsupported counters IB/mlx4: Refer to the device kobject instead of ports_parent RDMA/nldev: Allow IB device rename through RDMA netlink ...
This commit is contained in:
@@ -763,10 +763,28 @@ struct ib_uverbs_sge {
|
||||
__u32 lkey;
|
||||
};
|
||||
|
||||
enum ib_uverbs_wr_opcode {
|
||||
IB_UVERBS_WR_RDMA_WRITE = 0,
|
||||
IB_UVERBS_WR_RDMA_WRITE_WITH_IMM = 1,
|
||||
IB_UVERBS_WR_SEND = 2,
|
||||
IB_UVERBS_WR_SEND_WITH_IMM = 3,
|
||||
IB_UVERBS_WR_RDMA_READ = 4,
|
||||
IB_UVERBS_WR_ATOMIC_CMP_AND_SWP = 5,
|
||||
IB_UVERBS_WR_ATOMIC_FETCH_AND_ADD = 6,
|
||||
IB_UVERBS_WR_LOCAL_INV = 7,
|
||||
IB_UVERBS_WR_BIND_MW = 8,
|
||||
IB_UVERBS_WR_SEND_WITH_INV = 9,
|
||||
IB_UVERBS_WR_TSO = 10,
|
||||
IB_UVERBS_WR_RDMA_READ_WITH_INV = 11,
|
||||
IB_UVERBS_WR_MASKED_ATOMIC_CMP_AND_SWP = 12,
|
||||
IB_UVERBS_WR_MASKED_ATOMIC_FETCH_AND_ADD = 13,
|
||||
/* Review enum ib_wr_opcode before modifying this */
|
||||
};
|
||||
|
||||
struct ib_uverbs_send_wr {
|
||||
__aligned_u64 wr_id;
|
||||
__u32 num_sge;
|
||||
__u32 opcode;
|
||||
__u32 opcode; /* see enum ib_uverbs_wr_opcode */
|
||||
__u32 send_flags;
|
||||
union {
|
||||
__be32 imm_data;
|
||||
|
@@ -45,6 +45,9 @@ enum {
|
||||
MLX5_QP_FLAG_BFREG_INDEX = 1 << 3,
|
||||
MLX5_QP_FLAG_TYPE_DCT = 1 << 4,
|
||||
MLX5_QP_FLAG_TYPE_DCI = 1 << 5,
|
||||
MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_UC = 1 << 6,
|
||||
MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_MC = 1 << 7,
|
||||
MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -349,9 +352,22 @@ struct mlx5_ib_create_qp_rss {
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
enum mlx5_ib_create_qp_resp_mask {
|
||||
MLX5_IB_CREATE_QP_RESP_MASK_TIRN = 1UL << 0,
|
||||
MLX5_IB_CREATE_QP_RESP_MASK_TISN = 1UL << 1,
|
||||
MLX5_IB_CREATE_QP_RESP_MASK_RQN = 1UL << 2,
|
||||
MLX5_IB_CREATE_QP_RESP_MASK_SQN = 1UL << 3,
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_qp_resp {
|
||||
__u32 bfreg_index;
|
||||
__u32 reserved;
|
||||
__u32 comp_mask;
|
||||
__u32 tirn;
|
||||
__u32 tisn;
|
||||
__u32 rqn;
|
||||
__u32 sqn;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct mlx5_ib_alloc_mw {
|
||||
|
@@ -125,6 +125,7 @@ enum mlx5_ib_flow_matcher_create_attrs {
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK,
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE,
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA,
|
||||
MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS,
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_matcher_destroy_attrs {
|
||||
@@ -155,6 +156,8 @@ enum mlx5_ib_create_flow_attrs {
|
||||
MLX5_IB_ATTR_CREATE_FLOW_DEST_QP,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_MATCHER,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS,
|
||||
MLX5_IB_ATTR_CREATE_FLOW_TAG,
|
||||
};
|
||||
|
||||
enum mlx5_ib_destoy_flow_attrs {
|
||||
@@ -166,4 +169,22 @@ enum mlx5_ib_flow_methods {
|
||||
MLX5_IB_METHOD_DESTROY_FLOW,
|
||||
};
|
||||
|
||||
enum mlx5_ib_flow_action_methods {
|
||||
MLX5_IB_METHOD_FLOW_ACTION_CREATE_MODIFY_HEADER = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_METHOD_FLOW_ACTION_CREATE_PACKET_REFORMAT,
|
||||
};
|
||||
|
||||
enum mlx5_ib_create_flow_action_create_modify_header_attrs {
|
||||
MLX5_IB_ATTR_CREATE_MODIFY_HEADER_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_CREATE_MODIFY_HEADER_ACTIONS_PRM,
|
||||
MLX5_IB_ATTR_CREATE_MODIFY_HEADER_FT_TYPE,
|
||||
};
|
||||
|
||||
enum mlx5_ib_create_flow_action_create_packet_reformat_attrs {
|
||||
MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
|
||||
MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_TYPE,
|
||||
MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_FT_TYPE,
|
||||
MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_DATA_BUF,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -39,5 +39,17 @@ enum mlx5_ib_uapi_flow_action_flags {
|
||||
MLX5_IB_UAPI_FLOW_ACTION_FLAGS_REQUIRE_METADATA = 1 << 0,
|
||||
};
|
||||
|
||||
enum mlx5_ib_uapi_flow_table_type {
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_RX = 0x0,
|
||||
MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX = 0x1,
|
||||
};
|
||||
|
||||
enum mlx5_ib_uapi_flow_action_packet_reformat_type {
|
||||
MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TUNNEL_TO_L2 = 0x0,
|
||||
MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L2_TUNNEL = 0x1,
|
||||
MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L3_TUNNEL_TO_L2 = 0x2,
|
||||
MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -227,8 +227,9 @@ enum rdma_nldev_command {
|
||||
RDMA_NLDEV_CMD_UNSPEC,
|
||||
|
||||
RDMA_NLDEV_CMD_GET, /* can dump */
|
||||
RDMA_NLDEV_CMD_SET,
|
||||
|
||||
/* 2 - 4 are free to use */
|
||||
/* 3 - 4 are free to use */
|
||||
|
||||
RDMA_NLDEV_CMD_PORT_GET = 5, /* can dump */
|
||||
|
||||
|
@@ -53,7 +53,7 @@ enum {
|
||||
|
||||
struct ib_uverbs_attr {
|
||||
__u16 attr_id; /* command specific type attribute */
|
||||
__u16 len; /* only for pointers */
|
||||
__u16 len; /* only for pointers and IDRs array */
|
||||
__u16 flags; /* combination of UVERBS_ATTR_F_XXXX */
|
||||
union {
|
||||
struct {
|
||||
@@ -63,7 +63,10 @@ struct ib_uverbs_attr {
|
||||
__u16 reserved;
|
||||
} attr_data;
|
||||
union {
|
||||
/* Used by PTR_IN/OUT, ENUM_IN and IDR */
|
||||
/*
|
||||
* ptr to command, inline data, idr/fd or
|
||||
* ptr to __u32 array of IDRs
|
||||
*/
|
||||
__aligned_u64 data;
|
||||
/* Used by FD_IN and FD_OUT */
|
||||
__s64 data_s64;
|
||||
|
Reference in New Issue
Block a user