Re: [PATCH rdma-core 01/11] libbnxtre: introduce bnxtre user space RDMA provider

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux