Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull main rdma updates from Doug Ledford:
"This is the main pull request for the rdma stack this release. The
code has been through 0day and I had it tagged for linux-next testing
for a couple days.
Summary:
- updates to mlx5
- updates to mlx4 (two conflicts, both minor and easily resolved)
- updates to iw_cxgb4 (one conflict, not so obvious to resolve,
proper resolution is to keep the code in cxgb4_main.c as it is in
Linus' tree as attach_uld was refactored and moved into
cxgb4_uld.c)
- improvements to uAPI (moved vendor specific API elements to uAPI
area)
- add hns-roce driver and hns and hns-roce ACPI reset support
- conversion of all rdma code away from deprecated
create_singlethread_workqueue
- security improvement: remove unsafe ib_get_dma_mr (breaks lustre in
staging)"
* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (75 commits)
staging/lustre: Disable InfiniBand support
iw_cxgb4: add fast-path for small REG_MR operations
cxgb4: advertise support for FR_NSMR_TPTE_WR
IB/core: correctly handle rdma_rw_init_mrs() failure
IB/srp: Fix infinite loop when FMR sg[0].offset != 0
IB/srp: Remove an unused argument
IB/core: Improve ib_map_mr_sg() documentation
IB/mlx4: Fix possible vl/sl field mismatch in LRH header in QP1 packets
IB/mthca: Move user vendor structures
IB/nes: Move user vendor structures
IB/ocrdma: Move user vendor structures
IB/mlx4: Move user vendor structures
IB/cxgb4: Move user vendor structures
IB/cxgb3: Move user vendor structures
IB/mlx5: Move and decouple user vendor structures
IB/{core,hw}: Add constant for node_desc
ipoib: Make ipoib_warn ratelimited
IB/mlx4/alias_GUID: Remove deprecated create_singlethread_workqueue
IB/ipoib_verbs: Remove deprecated create_singlethread_workqueue
IB/ipoib: Remove deprecated create_singlethread_workqueue
...
This commit is contained in:
@@ -7,3 +7,10 @@ header-y += rdma_netlink.h
|
||||
header-y += rdma_user_cm.h
|
||||
header-y += hfi/
|
||||
header-y += rdma_user_rxe.h
|
||||
header-y += cxgb3-abi.h
|
||||
header-y += cxgb4-abi.h
|
||||
header-y += mlx4-abi.h
|
||||
header-y += mlx5-abi.h
|
||||
header-y += mthca-abi.h
|
||||
header-y += nes-abi.h
|
||||
header-y += ocrdma-abi.h
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (c) 2006 Chelsio, Inc. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
#ifndef CXGB3_ABI_USER_H
|
||||
#define CXBG3_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define IWCH_UVERBS_ABI_VERSION 1
|
||||
|
||||
/*
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* instead.
|
||||
*/
|
||||
struct iwch_create_cq_req {
|
||||
__u64 user_rptr_addr;
|
||||
};
|
||||
|
||||
struct iwch_create_cq_resp_v0 {
|
||||
__u64 key;
|
||||
__u32 cqid;
|
||||
__u32 size_log2;
|
||||
};
|
||||
|
||||
struct iwch_create_cq_resp {
|
||||
__u64 key;
|
||||
__u32 cqid;
|
||||
__u32 size_log2;
|
||||
__u32 memsize;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct iwch_create_qp_resp {
|
||||
__u64 key;
|
||||
__u64 db_key;
|
||||
__u32 qpid;
|
||||
__u32 size_log2;
|
||||
__u32 sq_size_log2;
|
||||
__u32 rq_size_log2;
|
||||
};
|
||||
|
||||
struct iwch_reg_user_mr_resp {
|
||||
__u32 pbl_addr;
|
||||
};
|
||||
#endif /* CXGB3_ABI_USER_H */
|
||||
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright (c) 2009-2010 Chelsio, Inc. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
#ifndef CXGB4_ABI_USER_H
|
||||
#define CXGB4_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define C4IW_UVERBS_ABI_VERSION 3
|
||||
|
||||
/*
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* instead.
|
||||
*/
|
||||
struct c4iw_create_cq_resp {
|
||||
__u64 key;
|
||||
__u64 gts_key;
|
||||
__u64 memsize;
|
||||
__u32 cqid;
|
||||
__u32 size;
|
||||
__u32 qid_mask;
|
||||
__u32 reserved; /* explicit padding (optional for i386) */
|
||||
};
|
||||
|
||||
enum {
|
||||
C4IW_QPF_ONCHIP = (1 << 0)
|
||||
};
|
||||
|
||||
struct c4iw_create_qp_resp {
|
||||
__u64 ma_sync_key;
|
||||
__u64 sq_key;
|
||||
__u64 rq_key;
|
||||
__u64 sq_db_gts_key;
|
||||
__u64 rq_db_gts_key;
|
||||
__u64 sq_memsize;
|
||||
__u64 rq_memsize;
|
||||
__u32 sqid;
|
||||
__u32 rqid;
|
||||
__u32 sq_size;
|
||||
__u32 rq_size;
|
||||
__u32 qid_mask;
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
struct c4iw_alloc_ucontext_resp {
|
||||
__u64 status_page_key;
|
||||
__u32 status_page_size;
|
||||
__u32 reserved; /* explicit padding (optional for i386) */
|
||||
};
|
||||
#endif /* CXGB4_ABI_USER_H */
|
||||
@@ -224,6 +224,17 @@ struct ib_uverbs_odp_caps {
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_rss_caps {
|
||||
/* Corresponding bit will be set if qp type from
|
||||
* 'enum ib_qp_type' is supported, e.g.
|
||||
* supported_qpts |= 1 << IB_QPT_UD
|
||||
*/
|
||||
__u32 supported_qpts;
|
||||
__u32 max_rwq_indirection_tables;
|
||||
__u32 max_rwq_indirection_table_size;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_ex_query_device_resp {
|
||||
struct ib_uverbs_query_device_resp base;
|
||||
__u32 comp_mask;
|
||||
@@ -232,6 +243,9 @@ struct ib_uverbs_ex_query_device_resp {
|
||||
__u64 timestamp_mask;
|
||||
__u64 hca_core_clock; /* in KHZ */
|
||||
__u64 device_cap_flags_ex;
|
||||
struct ib_uverbs_rss_caps rss_caps;
|
||||
__u32 max_wq_type_rq;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_query_port {
|
||||
@@ -834,6 +848,10 @@ struct ib_uverbs_flow_spec_eth {
|
||||
struct ib_uverbs_flow_ipv4_filter {
|
||||
__be32 src_ip;
|
||||
__be32 dst_ip;
|
||||
__u8 proto;
|
||||
__u8 tos;
|
||||
__u8 ttl;
|
||||
__u8 flags;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_ipv4 {
|
||||
@@ -868,8 +886,13 @@ struct ib_uverbs_flow_spec_tcp_udp {
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_ipv6_filter {
|
||||
__u8 src_ip[16];
|
||||
__u8 dst_ip[16];
|
||||
__u8 src_ip[16];
|
||||
__u8 dst_ip[16];
|
||||
__be32 flow_label;
|
||||
__u8 next_hdr;
|
||||
__u8 traffic_class;
|
||||
__u8 hop_limit;
|
||||
__u8 reserved;
|
||||
};
|
||||
|
||||
struct ib_uverbs_flow_spec_ipv6 {
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
* Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2007, 2008 Mellanox Technologies. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MLX4_ABI_USER_H
|
||||
#define MLX4_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* Increment this value if any changes that break userspace ABI
|
||||
* compatibility are made.
|
||||
*/
|
||||
|
||||
#define MLX4_IB_UVERBS_NO_DEV_CAPS_ABI_VERSION 3
|
||||
#define MLX4_IB_UVERBS_ABI_VERSION 4
|
||||
|
||||
/*
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* instead.
|
||||
*/
|
||||
|
||||
struct mlx4_ib_alloc_ucontext_resp_v3 {
|
||||
__u32 qp_tab_size;
|
||||
__u16 bf_reg_size;
|
||||
__u16 bf_regs_per_page;
|
||||
};
|
||||
|
||||
struct mlx4_ib_alloc_ucontext_resp {
|
||||
__u32 dev_caps;
|
||||
__u32 qp_tab_size;
|
||||
__u16 bf_reg_size;
|
||||
__u16 bf_regs_per_page;
|
||||
__u32 cqe_size;
|
||||
};
|
||||
|
||||
struct mlx4_ib_alloc_pd_resp {
|
||||
__u32 pdn;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_cq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_cq_resp {
|
||||
__u32 cqn;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx4_ib_resize_cq {
|
||||
__u64 buf_addr;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_srq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_srq_resp {
|
||||
__u32 srqn;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx4_ib_create_qp {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__u8 log_sq_bb_count;
|
||||
__u8 log_sq_stride;
|
||||
__u8 sq_no_prefetch;
|
||||
__u8 reserved[5];
|
||||
};
|
||||
|
||||
#endif /* MLX4_ABI_USER_H */
|
||||
@@ -0,0 +1,249 @@
|
||||
/*
|
||||
* Copyright (c) 2013-2015, Mellanox Technologies. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MLX5_ABI_USER_H
|
||||
#define MLX5_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
enum {
|
||||
MLX5_QP_FLAG_SIGNATURE = 1 << 0,
|
||||
MLX5_QP_FLAG_SCATTER_CQE = 1 << 1,
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX5_WQ_FLAG_SIGNATURE = 1 << 0,
|
||||
};
|
||||
|
||||
/* Increment this value if any changes that break userspace ABI
|
||||
* compatibility are made.
|
||||
*/
|
||||
#define MLX5_IB_UVERBS_ABI_VERSION 1
|
||||
|
||||
/* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* instead.
|
||||
*/
|
||||
|
||||
struct mlx5_ib_alloc_ucontext_req {
|
||||
__u32 total_num_uuars;
|
||||
__u32 num_low_latency_uuars;
|
||||
};
|
||||
|
||||
struct mlx5_ib_alloc_ucontext_req_v2 {
|
||||
__u32 total_num_uuars;
|
||||
__u32 num_low_latency_uuars;
|
||||
__u32 flags;
|
||||
__u32 comp_mask;
|
||||
__u8 max_cqe_version;
|
||||
__u8 reserved0;
|
||||
__u16 reserved1;
|
||||
__u32 reserved2;
|
||||
};
|
||||
|
||||
enum mlx5_ib_alloc_ucontext_resp_mask {
|
||||
MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
|
||||
};
|
||||
|
||||
enum mlx5_user_cmds_supp_uhw {
|
||||
MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
|
||||
};
|
||||
|
||||
struct mlx5_ib_alloc_ucontext_resp {
|
||||
__u32 qp_tab_size;
|
||||
__u32 bf_reg_size;
|
||||
__u32 tot_uuars;
|
||||
__u32 cache_line_size;
|
||||
__u16 max_sq_desc_sz;
|
||||
__u16 max_rq_desc_sz;
|
||||
__u32 max_send_wqebb;
|
||||
__u32 max_recv_wr;
|
||||
__u32 max_srq_recv_wr;
|
||||
__u16 num_ports;
|
||||
__u16 reserved1;
|
||||
__u32 comp_mask;
|
||||
__u32 response_length;
|
||||
__u8 cqe_version;
|
||||
__u8 cmds_supp_uhw;
|
||||
__u16 reserved2;
|
||||
__u64 hca_core_clock_offset;
|
||||
};
|
||||
|
||||
struct mlx5_ib_alloc_pd_resp {
|
||||
__u32 pdn;
|
||||
};
|
||||
|
||||
struct mlx5_ib_tso_caps {
|
||||
__u32 max_tso; /* Maximum tso payload size in bytes */
|
||||
|
||||
/* Corresponding bit will be set if qp type from
|
||||
* 'enum ib_qp_type' is supported, e.g.
|
||||
* supported_qpts |= 1 << IB_QPT_UD
|
||||
*/
|
||||
__u32 supported_qpts;
|
||||
};
|
||||
|
||||
struct mlx5_ib_rss_caps {
|
||||
__u64 rx_hash_fields_mask; /* enum mlx5_rx_hash_fields */
|
||||
__u8 rx_hash_function; /* enum mlx5_rx_hash_function_flags */
|
||||
__u8 reserved[7];
|
||||
};
|
||||
|
||||
struct mlx5_ib_query_device_resp {
|
||||
__u32 comp_mask;
|
||||
__u32 response_length;
|
||||
struct mlx5_ib_tso_caps tso_caps;
|
||||
struct mlx5_ib_rss_caps rss_caps;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_cq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__u32 cqe_size;
|
||||
__u32 reserved; /* explicit padding (optional on i386) */
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_cq_resp {
|
||||
__u32 cqn;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx5_ib_resize_cq {
|
||||
__u64 buf_addr;
|
||||
__u16 cqe_size;
|
||||
__u16 reserved0;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_srq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__u32 flags;
|
||||
__u32 reserved0; /* explicit padding (optional on i386) */
|
||||
__u32 uidx;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_srq_resp {
|
||||
__u32 srqn;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_qp {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__u32 sq_wqe_count;
|
||||
__u32 rq_wqe_count;
|
||||
__u32 rq_wqe_shift;
|
||||
__u32 flags;
|
||||
__u32 uidx;
|
||||
__u32 reserved0;
|
||||
__u64 sq_buf_addr;
|
||||
};
|
||||
|
||||
/* RX Hash function flags */
|
||||
enum mlx5_rx_hash_function_flags {
|
||||
MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
|
||||
};
|
||||
|
||||
/*
|
||||
* RX Hash flags, these flags allows to set which incoming packet's field should
|
||||
* participates in RX Hash. Each flag represent certain packet's field,
|
||||
* when the flag is set the field that is represented by the flag will
|
||||
* participate in RX Hash calculation.
|
||||
* Note: *IPV4 and *IPV6 flags can't be enabled together on the same QP
|
||||
* and *TCP and *UDP flags can't be enabled together on the same QP.
|
||||
*/
|
||||
enum mlx5_rx_hash_fields {
|
||||
MLX5_RX_HASH_SRC_IPV4 = 1 << 0,
|
||||
MLX5_RX_HASH_DST_IPV4 = 1 << 1,
|
||||
MLX5_RX_HASH_SRC_IPV6 = 1 << 2,
|
||||
MLX5_RX_HASH_DST_IPV6 = 1 << 3,
|
||||
MLX5_RX_HASH_SRC_PORT_TCP = 1 << 4,
|
||||
MLX5_RX_HASH_DST_PORT_TCP = 1 << 5,
|
||||
MLX5_RX_HASH_SRC_PORT_UDP = 1 << 6,
|
||||
MLX5_RX_HASH_DST_PORT_UDP = 1 << 7
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_qp_rss {
|
||||
__u64 rx_hash_fields_mask; /* enum mlx5_rx_hash_fields */
|
||||
__u8 rx_hash_function; /* enum mlx5_rx_hash_function_flags */
|
||||
__u8 rx_key_len; /* valid only for Toeplitz */
|
||||
__u8 reserved[6];
|
||||
__u8 rx_hash_key[128]; /* valid only for Toeplitz */
|
||||
__u32 comp_mask;
|
||||
__u32 reserved1;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_qp_resp {
|
||||
__u32 uuar_index;
|
||||
};
|
||||
|
||||
struct mlx5_ib_alloc_mw {
|
||||
__u32 comp_mask;
|
||||
__u8 num_klms;
|
||||
__u8 reserved1;
|
||||
__u16 reserved2;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_wq {
|
||||
__u64 buf_addr;
|
||||
__u64 db_addr;
|
||||
__u32 rq_wqe_count;
|
||||
__u32 rq_wqe_shift;
|
||||
__u32 user_index;
|
||||
__u32 flags;
|
||||
__u32 comp_mask;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_wq_resp {
|
||||
__u32 response_length;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx5_ib_create_rwq_ind_tbl_resp {
|
||||
__u32 response_length;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mlx5_ib_modify_wq {
|
||||
__u32 comp_mask;
|
||||
__u32 reserved;
|
||||
};
|
||||
#endif /* MLX5_ABI_USER_H */
|
||||
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* Copyright (c) 2005 Topspin Communications. All rights reserved.
|
||||
* Copyright (c) 2005, 2006 Cisco Systems. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef MTHCA_ABI_USER_H
|
||||
#define MTHCA_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* Increment this value if any changes that break userspace ABI
|
||||
* compatibility are made.
|
||||
*/
|
||||
#define MTHCA_UVERBS_ABI_VERSION 1
|
||||
|
||||
/*
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* instead.
|
||||
*/
|
||||
struct mthca_alloc_ucontext_resp {
|
||||
__u32 qp_tab_size;
|
||||
__u32 uarc_size;
|
||||
};
|
||||
|
||||
struct mthca_alloc_pd_resp {
|
||||
__u32 pdn;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
/*
|
||||
* Mark the memory region with a DMA attribute that causes
|
||||
* in-flight DMA to be flushed when the region is written to:
|
||||
*/
|
||||
#define MTHCA_MR_DMASYNC 0x1
|
||||
|
||||
struct mthca_reg_mr {
|
||||
__u32 mr_attrs;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mthca_create_cq {
|
||||
__u32 lkey;
|
||||
__u32 pdn;
|
||||
__u64 arm_db_page;
|
||||
__u64 set_db_page;
|
||||
__u32 arm_db_index;
|
||||
__u32 set_db_index;
|
||||
};
|
||||
|
||||
struct mthca_create_cq_resp {
|
||||
__u32 cqn;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mthca_resize_cq {
|
||||
__u32 lkey;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mthca_create_srq {
|
||||
__u32 lkey;
|
||||
__u32 db_index;
|
||||
__u64 db_page;
|
||||
};
|
||||
|
||||
struct mthca_create_srq_resp {
|
||||
__u32 srqn;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct mthca_create_qp {
|
||||
__u32 lkey;
|
||||
__u32 reserved;
|
||||
__u64 sq_db_page;
|
||||
__u64 rq_db_page;
|
||||
__u32 sq_db_index;
|
||||
__u32 rq_db_index;
|
||||
};
|
||||
#endif /* MTHCA_ABI_USER_H */
|
||||
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Copyright (c) 2006 - 2011 Intel Corporation. All rights reserved.
|
||||
* Copyright (c) 2005 Topspin Communications. All rights reserved.
|
||||
* Copyright (c) 2005 Cisco Systems. All rights reserved.
|
||||
* Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef NES_ABI_USER_H
|
||||
#define NES_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define NES_ABI_USERSPACE_VER 2
|
||||
#define NES_ABI_KERNEL_VER 2
|
||||
|
||||
/*
|
||||
* Make sure that all structs defined in this file remain laid out so
|
||||
* that they pack the same way on 32-bit and 64-bit architectures (to
|
||||
* avoid incompatibility between 32-bit userspace and 64-bit kernels).
|
||||
* In particular do not use pointer types -- pass pointers in __u64
|
||||
* instead.
|
||||
*/
|
||||
|
||||
struct nes_alloc_ucontext_req {
|
||||
__u32 reserved32;
|
||||
__u8 userspace_ver;
|
||||
__u8 reserved8[3];
|
||||
};
|
||||
|
||||
struct nes_alloc_ucontext_resp {
|
||||
__u32 max_pds; /* maximum pds allowed for this user process */
|
||||
__u32 max_qps; /* maximum qps allowed for this user process */
|
||||
__u32 wq_size; /* size of the WQs (sq+rq) allocated to the mmaped area */
|
||||
__u8 virtwq; /* flag to indicate if virtual WQ are to be used or not */
|
||||
__u8 kernel_ver;
|
||||
__u8 reserved[2];
|
||||
};
|
||||
|
||||
struct nes_alloc_pd_resp {
|
||||
__u32 pd_id;
|
||||
__u32 mmap_db_index;
|
||||
};
|
||||
|
||||
struct nes_create_cq_req {
|
||||
__u64 user_cq_buffer;
|
||||
__u32 mcrqf;
|
||||
__u8 reserved[4];
|
||||
};
|
||||
|
||||
struct nes_create_qp_req {
|
||||
__u64 user_wqe_buffers;
|
||||
__u64 user_qp_buffer;
|
||||
};
|
||||
|
||||
enum iwnes_memreg_type {
|
||||
IWNES_MEMREG_TYPE_MEM = 0x0000,
|
||||
IWNES_MEMREG_TYPE_QP = 0x0001,
|
||||
IWNES_MEMREG_TYPE_CQ = 0x0002,
|
||||
IWNES_MEMREG_TYPE_MW = 0x0003,
|
||||
IWNES_MEMREG_TYPE_FMR = 0x0004,
|
||||
IWNES_MEMREG_TYPE_FMEM = 0x0005,
|
||||
};
|
||||
|
||||
struct nes_mem_reg_req {
|
||||
__u32 reg_type; /* indicates if id is memory, QP or CQ */
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct nes_create_cq_resp {
|
||||
__u32 cq_id;
|
||||
__u32 cq_size;
|
||||
__u32 mmap_db_index;
|
||||
__u32 reserved;
|
||||
};
|
||||
|
||||
struct nes_create_qp_resp {
|
||||
__u32 qp_id;
|
||||
__u32 actual_sq_size;
|
||||
__u32 actual_rq_size;
|
||||
__u32 mmap_sq_db_index;
|
||||
__u32 mmap_rq_db_index;
|
||||
__u32 nes_drv_opt;
|
||||
};
|
||||
|
||||
#endif /* NES_ABI_USER_H */
|
||||
@@ -0,0 +1,151 @@
|
||||
/* This file is part of the Emulex RoCE Device Driver for
|
||||
* RoCE (RDMA over Converged Ethernet) adapters.
|
||||
* Copyright (C) 2012-2015 Emulex. All rights reserved.
|
||||
* EMULEX and SLI are trademarks of Emulex.
|
||||
* www.emulex.com
|
||||
*
|
||||
* This software is available to you under a choice of one of two licenses.
|
||||
* You may choose to be licensed under the terms of the GNU General Public
|
||||
* License (GPL) Version 2, available from the file COPYING in the main
|
||||
* directory of this source tree, or the BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* Contact Information:
|
||||
* linux-drivers@emulex.com
|
||||
*
|
||||
* Emulex
|
||||
* 3333 Susan Street
|
||||
* Costa Mesa, CA 92626
|
||||
*/
|
||||
|
||||
#ifndef OCRDMA_ABI_USER_H
|
||||
#define OCRDMA_ABI_USER_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define OCRDMA_ABI_VERSION 2
|
||||
#define OCRDMA_BE_ROCE_ABI_VERSION 1
|
||||
/* user kernel communication data structures. */
|
||||
|
||||
struct ocrdma_alloc_ucontext_resp {
|
||||
__u32 dev_id;
|
||||
__u32 wqe_size;
|
||||
__u32 max_inline_data;
|
||||
__u32 dpp_wqe_size;
|
||||
__u64 ah_tbl_page;
|
||||
__u32 ah_tbl_len;
|
||||
__u32 rqe_size;
|
||||
__u8 fw_ver[32];
|
||||
/* for future use/new features in progress */
|
||||
__u64 rsvd1;
|
||||
__u64 rsvd2;
|
||||
};
|
||||
|
||||
struct ocrdma_alloc_pd_ureq {
|
||||
__u64 rsvd1;
|
||||
};
|
||||
|
||||
struct ocrdma_alloc_pd_uresp {
|
||||
__u32 id;
|
||||
__u32 dpp_enabled;
|
||||
__u32 dpp_page_addr_hi;
|
||||
__u32 dpp_page_addr_lo;
|
||||
__u64 rsvd1;
|
||||
};
|
||||
|
||||
struct ocrdma_create_cq_ureq {
|
||||
__u32 dpp_cq;
|
||||
__u32 rsvd; /* pad */
|
||||
};
|
||||
|
||||
#define MAX_CQ_PAGES 8
|
||||
struct ocrdma_create_cq_uresp {
|
||||
__u32 cq_id;
|
||||
__u32 page_size;
|
||||
__u32 num_pages;
|
||||
__u32 max_hw_cqe;
|
||||
__u64 page_addr[MAX_CQ_PAGES];
|
||||
__u64 db_page_addr;
|
||||
__u32 db_page_size;
|
||||
__u32 phase_change;
|
||||
/* for future use/new features in progress */
|
||||
__u64 rsvd1;
|
||||
__u64 rsvd2;
|
||||
};
|
||||
|
||||
#define MAX_QP_PAGES 8
|
||||
#define MAX_UD_AV_PAGES 8
|
||||
|
||||
struct ocrdma_create_qp_ureq {
|
||||
__u8 enable_dpp_cq;
|
||||
__u8 rsvd;
|
||||
__u16 dpp_cq_id;
|
||||
__u32 rsvd1; /* pad */
|
||||
};
|
||||
|
||||
struct ocrdma_create_qp_uresp {
|
||||
__u16 qp_id;
|
||||
__u16 sq_dbid;
|
||||
__u16 rq_dbid;
|
||||
__u16 resv0; /* pad */
|
||||
__u32 sq_page_size;
|
||||
__u32 rq_page_size;
|
||||
__u32 num_sq_pages;
|
||||
__u32 num_rq_pages;
|
||||
__u64 sq_page_addr[MAX_QP_PAGES];
|
||||
__u64 rq_page_addr[MAX_QP_PAGES];
|
||||
__u64 db_page_addr;
|
||||
__u32 db_page_size;
|
||||
__u32 dpp_credit;
|
||||
__u32 dpp_offset;
|
||||
__u32 num_wqe_allocated;
|
||||
__u32 num_rqe_allocated;
|
||||
__u32 db_sq_offset;
|
||||
__u32 db_rq_offset;
|
||||
__u32 db_shift;
|
||||
__u64 rsvd[11];
|
||||
} __packed;
|
||||
|
||||
struct ocrdma_create_srq_uresp {
|
||||
__u16 rq_dbid;
|
||||
__u16 resv0; /* pad */
|
||||
__u32 resv1;
|
||||
|
||||
__u32 rq_page_size;
|
||||
__u32 num_rq_pages;
|
||||
|
||||
__u64 rq_page_addr[MAX_QP_PAGES];
|
||||
__u64 db_page_addr;
|
||||
|
||||
__u32 db_page_size;
|
||||
__u32 num_rqe_allocated;
|
||||
__u32 db_rq_offset;
|
||||
__u32 db_shift;
|
||||
|
||||
__u64 rsvd2;
|
||||
__u64 rsvd3;
|
||||
};
|
||||
|
||||
#endif /* OCRDMA_ABI_USER_H */
|
||||
Reference in New Issue
Block a user