First merge window pull request
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
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEfB7FMLh+8QxL+6i3OG33FX4gmxoFAlvR7dUACgkQOG33FX4g
mxojiw//a9GU5kq4IZ3LNAEio/3Ql/NHRF0uie5tSzJgipRJA1Ln9zW0Cm1S/ms1
VCmaSJ3l3q3GC4i3tIlsZSIIkN5qtjv/FsT/i+TZwSJYx9BDpPbzWtG6Mp4PSDj0
v3xzklFCN5HMOmEcjkNmyZw3VjHOt2Iw2mKjqvGbI9imCPLOYnw+WQaZLmMWMH6p
GL0HDbAopN5Lv8ireWd8pOhPLVbSb12cWM1crx+yHOS3q8YNWjIXGiZr/QkOPtPr
cymSXB8yuITJ7gnjbs/GxZHg6rxU0knC/Ck8hE7FqqYYHgytTklOXDE2ef1J2lFe
1VmotD+nTsCir0mZWSdcRrszEk7tzaZT7n1oWggKvWySDB6qaH0II8vWumJchQnN
pElIQn/WDgpekIqplamNqXJnKnDXZJpEVA01OHHDN4MNSc+Ad08hQy4FyFzpB6/G
jv9TnDMfGC6ma9pr1ipOXyCgCa2pHYEUCaYxUqRA0O/4ATVl7/PplqT0rqtJ6hKg
o/hmaVCawIFOUKD87/bo7Em2HBs3xNwE/c5ggbsQElLYeydrgPrZfrPfjkshv5K3
eIKDb+HPyis0is1aiF7m/bz1hSIYZp0bQhuKCdzLRjZobwCm5WDPhtuuAWb7vYVw
GSLCJWyet+bLyZxynNOt67gKm9je9lt8YTr5nilz49KeDytspK0=
=pacJ
-----END PGP SIGNATURE-----
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:
commit
da19a102ce
204 changed files with 7633 additions and 5205 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue