On Sat, Jan 28, 2017 at 05:13:32PM -0500, Devesh Sharma wrote: > libnxtre is a user-space driver which provides RDMA > capability to user applications. The current framework > has following parts working: > > -Basic Cmake framework to build and install the library. > -Register and unregister user-space driver with uverbs > interface. > -List all available bnxt_re devices using "ibv_devinfo" > admin command. > -List all the device and port attributes using > "ibv_devinfo" admin command. > -Support allocate/free of protection domains. > -Check ABI version between library and kernel module. > -Update MAINTAINERS file > > Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@xxxxxxxxxxxx> > Signed-off-by: Somnath Kotur <somnath.kotur@xxxxxxxxxxxx> > Signed-off-by: Selvin Xavier <selvin.xavier@xxxxxxxxxxxx> > Signed-off-by: Devesh Sharma <devesh.sharma@xxxxxxxxxxxx> > --- > CMakeLists.txt | 1 + > MAINTAINERS | 5 + > providers/bnxtre/CMakeLists.txt | 4 + > providers/bnxtre/abi.h | 59 ++++++++++ > providers/bnxtre/bnxtre.driver | 1 + > providers/bnxtre/main.c | 192 +++++++++++++++++++++++++++++++ > providers/bnxtre/main.h | 108 ++++++++++++++++++ > providers/bnxtre/verbs.c | 247 ++++++++++++++++++++++++++++++++++++++++ > providers/bnxtre/verbs.h | 106 +++++++++++++++++ > 9 files changed, 723 insertions(+) > create mode 100644 providers/bnxtre/CMakeLists.txt > create mode 100644 providers/bnxtre/abi.h > create mode 100644 providers/bnxtre/bnxtre.driver > create mode 100644 providers/bnxtre/main.c > create mode 100644 providers/bnxtre/main.h > create mode 100644 providers/bnxtre/verbs.c > create mode 100644 providers/bnxtre/verbs.h > > diff --git a/CMakeLists.txt b/CMakeLists.txt > index 8f7a475..b6f96c0 100644 > --- a/CMakeLists.txt > +++ b/CMakeLists.txt > @@ -382,6 +382,7 @@ add_subdirectory(providers/nes) > add_subdirectory(providers/ocrdma) > add_subdirectory(providers/qedr) > add_subdirectory(providers/vmw_pvrdma) > +add_subdirectory(providers/bnxtre) > endif() > > add_subdirectory(providers/hfi1verbs) > diff --git a/MAINTAINERS b/MAINTAINERS > index 2ae504c..f52da1c 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -166,3 +166,8 @@ M: Adit Ranadive <aditr@xxxxxxxxxx> > L: pv-drivers@xxxxxxxxxx > S: Supported > F: providers/vmw_pvrdma/ > + > +BNXTRE USERSPACE PROVIDER (for bnxtre.ko) > +M: Devesh Sharma <Devesh.sharma@xxxxxxxxxxxx> > +S: Supported > +F: providers/bnxtre It should have "/" at the end of line. > diff --git a/providers/bnxtre/CMakeLists.txt b/providers/bnxtre/CMakeLists.txt > new file mode 100644 > index 0000000..4c61355 > --- /dev/null > +++ b/providers/bnxtre/CMakeLists.txt > @@ -0,0 +1,4 @@ > +rdma_provider(bnxtre > + main.c > + verbs.c > +) > diff --git a/providers/bnxtre/abi.h b/providers/bnxtre/abi.h > new file mode 100644 > index 0000000..653ac71 > --- /dev/null > +++ b/providers/bnxtre/abi.h > @@ -0,0 +1,59 @@ > +/* > + * Broadcom NetXtreme-E User Space RoCE driver > + * > + * Copyright (c) 2015-2016, Broadcom. All rights reserved. The term > + * Broadcom refers to Broadcom Limited and/or its subsidiaries. > + * > + * 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: > + * > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. 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 AUTHOR 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 AUTHOR 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. > + * > + * Description: ABI data structure definition > + */ > + > +#ifndef __BNXT_RE_ABI_H__ > +#define __BNXT_RE_ABI_H__ > + > +#include <infiniband/kern-abi.h> > + > +#define BNXT_RE_ABI_VERSION 1 > + > +struct bnxt_re_cntx_resp { > + struct ibv_get_context_resp resp; > + __u32 dev_id; > + __u32 max_qp; /* To allocate qp-table */ > +}; > + > +struct bnxt_re_pd_resp { > + struct ibv_alloc_pd_resp resp; > + __u32 pdid; > + __u32 dpi; > + __u64 dbr; > +}; > + > +#endif > diff --git a/providers/bnxtre/bnxtre.driver b/providers/bnxtre/bnxtre.driver > new file mode 100644 > index 0000000..5ce796f > --- /dev/null > +++ b/providers/bnxtre/bnxtre.driver > @@ -0,0 +1 @@ > +driver bnxtre > diff --git a/providers/bnxtre/main.c b/providers/bnxtre/main.c > new file mode 100644 > index 0000000..0c26c8b > --- /dev/null > +++ b/providers/bnxtre/main.c > @@ -0,0 +1,192 @@ > +/* > + * Broadcom NetXtreme-E User Space RoCE driver > + * > + * Copyright (c) 2015-2016, Broadcom. All rights reserved. The term > + * Broadcom refers to Broadcom Limited and/or its subsidiaries. > + * > + * 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: > + * > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. 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 AUTHOR 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 AUTHOR 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. > + * > + * Description: Device detection and initializatoin > + */ > + > +#if HAVE_CONFIG_H > +#include <config.h> > +#endif /* HAVE_CONFIG_H */ > + There is no need to guard config.h > +#include <stdio.h>
Attachment:
signature.asc
Description: PGP signature