Skip to content

Commit

Permalink
Adding Soft-iWarp user library
Browse files Browse the repository at this point in the history
Signed-off-by: Bernard Metzler <bmt@zurich.ibm.com>
  • Loading branch information
BernardMetzler committed Jun 20, 2019
1 parent f7994f6 commit fb399ae
Show file tree
Hide file tree
Showing 14 changed files with 1,106 additions and 29 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -618,6 +618,7 @@ add_subdirectory(providers/hfi1verbs)
add_subdirectory(providers/ipathverbs)
add_subdirectory(providers/rxe)
add_subdirectory(providers/rxe/man)
add_subdirectory(providers/siw)

add_subdirectory(libibmad)
add_subdirectory(libibnetdisc)
Expand Down
5 changes: 5 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,11 @@ M: Moni Shoua <monis@mellanox.com>
S: Supported
F: providers/rxe/

SIW SOFT IWARP USERSPACE PROVIDER (for siw.ko)
M: Bernard Metzler <bmt@zurich.ibm.com>
S: Supported
F: providers/siw/

SRP DAEMON (for ib_srp.ko)
M: Bart Van Assche <bvanassche@acm.org>
S: Supported
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ is included:
- ocrdma.ko
- qedr.ko
- rdma_rxe.ko
- siw.ko
- vmw_pvrdma.ko

Additional service daemons are provided for:
Expand Down
1 change: 1 addition & 0 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ Description: User space provider drivers for libibverbs
- ocrdma: Emulex OneConnect RDMA/RoCE device
- qedr: QLogic QL4xxx RoCE HCAs
- rxe: A software implementation of the RoCE protocol
- siw: A software implementation of the iWarp protocol
- vmw_pvrdma: VMware paravirtual RDMA device

Package: ibverbs-utils
Expand Down
4 changes: 4 additions & 0 deletions debian/copyright
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,10 @@ Copyright: 2009-2011, System Fabric Works, Inc.
2005, PathScale, Inc.
License: BSD-MIT or GPL-2

Files: providers/siw/*
Copyright: 2008-2019, IBM Corporation.
License: BSD-3-clause or GPL-2

Files: providers/vmw_pvrdma/*
Copyright: 2012-2016 VMware, Inc.
License: BSD-2-clause or GPL-2
Expand Down
1 change: 1 addition & 0 deletions kernel-headers/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ rdma_kernel_provider_abi(
rdma/ocrdma-abi.h
rdma/qedr-abi.h
rdma/rdma_user_rxe.h
rdma/siw-abi.h
rdma/vmw_pvrdma-abi.h
)

Expand Down
51 changes: 25 additions & 26 deletions kernel-headers/rdma/siw-abi.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <linux/types.h>

#define SIW_NODE_DESC_COMMON "Software iWARP stack"
#define SIW_ABI_VERSION 1
#define SIW_MAX_SGE 6
#define SIW_UOBJ_MAX_KEY 0x08FFFF
#define SIW_INVAL_UOBJ_KEY (SIW_UOBJ_MAX_KEY + 1)
Expand Down Expand Up @@ -51,27 +52,27 @@ struct siw_uresp_alloc_ctx {
};

enum siw_opcode {
SIW_OP_WRITE = 0,
SIW_OP_READ = 1,
SIW_OP_READ_LOCAL_INV = 2,
SIW_OP_SEND = 3,
SIW_OP_SEND_WITH_IMM = 4,
SIW_OP_SEND_REMOTE_INV = 5,
SIW_OP_WRITE,
SIW_OP_READ,
SIW_OP_READ_LOCAL_INV,
SIW_OP_SEND,
SIW_OP_SEND_WITH_IMM,
SIW_OP_SEND_REMOTE_INV,

/* Unsupported */
SIW_OP_FETCH_AND_ADD = 6,
SIW_OP_COMP_AND_SWAP = 7,
SIW_OP_FETCH_AND_ADD,
SIW_OP_COMP_AND_SWAP,

SIW_OP_RECEIVE = 8,
SIW_OP_RECEIVE,
/* provider internal SQE */
SIW_OP_READ_RESPONSE = 9,
SIW_OP_READ_RESPONSE,
/*
* below opcodes valid for
* in-kernel clients only
*/
SIW_OP_INVAL_STAG = 10,
SIW_OP_REG_MR = 11,
SIW_NUM_OPCODES = 12
SIW_OP_INVAL_STAG,
SIW_OP_REG_MR,
SIW_NUM_OPCODES
};

/* Keep it same as ibv_sge to allow for memcpy */
Expand Down Expand Up @@ -144,21 +145,19 @@ enum siw_notify_flags {
};

enum siw_wc_status {
SIW_WC_SUCCESS = 0,
SIW_WC_LOC_LEN_ERR = 1,
SIW_WC_LOC_PROT_ERR = 2,
SIW_WC_LOC_QP_OP_ERR = 3,
SIW_WC_WR_FLUSH_ERR = 4,
SIW_WC_BAD_RESP_ERR = 5,
SIW_WC_LOC_ACCESS_ERR = 6,
SIW_WC_REM_ACCESS_ERR = 7,
SIW_WC_REM_INV_REQ_ERR = 8,
SIW_WC_GENERAL_ERR = 9,
SIW_NUM_WC_STATUS = 10
SIW_WC_SUCCESS,
SIW_WC_LOC_LEN_ERR,
SIW_WC_LOC_PROT_ERR,
SIW_WC_LOC_QP_OP_ERR,
SIW_WC_WR_FLUSH_ERR,
SIW_WC_BAD_RESP_ERR,
SIW_WC_LOC_ACCESS_ERR,
SIW_WC_REM_ACCESS_ERR,
SIW_WC_REM_INV_REQ_ERR,
SIW_WC_GENERAL_ERR,
SIW_NUM_WC_STATUS
};

struct ib_qp;

struct siw_cqe {
__aligned_u64 id;
__u8 flags;
Expand Down
8 changes: 5 additions & 3 deletions libibverbs/verbs.h
Original file line number Diff line number Diff line change
Expand Up @@ -2126,18 +2126,19 @@ struct ibv_device **ibv_get_device_list(int *num_devices);
*/
#ifdef RDMA_STATIC_PROVIDERS
#define _RDMA_STATIC_PREFIX_(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, \
_12, _13, _14, _15, _16, ...) \
_12, _13, _14, _15, _16, _17, ...) \
&verbs_provider_##_1, &verbs_provider_##_2, &verbs_provider_##_3, \
&verbs_provider_##_4, &verbs_provider_##_5, \
&verbs_provider_##_6, &verbs_provider_##_7, \
&verbs_provider_##_8, &verbs_provider_##_9, \
&verbs_provider_##_10, &verbs_provider_##_11, \
&verbs_provider_##_12, &verbs_provider_##_13, \
&verbs_provider_##_14, &verbs_provider_##_15, \
&verbs_provider_##_16
&verbs_provider_##_16, &verbs_provider_##_17
#define _RDMA_STATIC_PREFIX(arg) \
_RDMA_STATIC_PREFIX_(arg, none, none, none, none, none, none, none, \
none, none, none, none, none, none, none, none)
none, none, none, none, none, none, none, none, \
none)

struct verbs_devices_ops;
extern const struct verbs_device_ops verbs_provider_bnxt_re;
Expand All @@ -2155,6 +2156,7 @@ extern const struct verbs_device_ops verbs_provider_nes;
extern const struct verbs_device_ops verbs_provider_ocrdma;
extern const struct verbs_device_ops verbs_provider_qedr;
extern const struct verbs_device_ops verbs_provider_rxe;
extern const struct verbs_device_ops verbs_provider_siw;
extern const struct verbs_device_ops verbs_provider_vmw_pvrdma;
extern const struct verbs_device_ops verbs_provider_all;
extern const struct verbs_device_ops verbs_provider_none;
Expand Down
3 changes: 3 additions & 0 deletions providers/siw/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
rdma_provider(siw
siw.c
)
Loading

0 comments on commit fb399ae

Please sign in to comment.