Source: rdma-core
Maintainer: Linux RDMA Mailing List <linux-rdma@vger.kernel.org>
Uploaders: Benjamin Drung <bdrung@ubuntu.com>,
           Talat Batheesh <talatb@mellanox.com>
Section: net
Priority: optional
Build-Depends: cmake (>= 2.8.11),
               cython3,
               debhelper (>= 10),
               dh-python,
               dpkg-dev (>= 1.17),
               libnl-3-dev,
               libnl-route-3-dev,
               libsystemd-dev,
               libudev-dev,
               ninja-build,
               pandoc,
               pkg-config,
               python3-dev,
               python3-docutils,
               valgrind [amd64 arm64 armhf i386 mips mips64el mipsel powerpc ppc64 ppc64el s390x]
Rules-Requires-Root: no
Standards-Version: 4.6.2
Vcs-Git: https://github.com/linux-rdma/rdma-core.git
Vcs-Browser: https://github.com/linux-rdma/rdma-core
Homepage: https://github.com/linux-rdma/rdma-core

Package: rdma-core
Architecture: linux-any
Depends: udev, ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends}
Pre-Depends: ${misc:Pre-Depends}
Recommends: dmidecode, ethtool, iproute2
Breaks: infiniband-diags (<< 2.0.0)
Replaces: infiniband-diags (<< 2.0.0)
Description: RDMA core userspace infrastructure and documentation
 This package provides the basic boot time support for systems that use the
 Linux kernel's remote direct memory access (RDMA) subystem which includes
 InfiniBand, iWARP, and RDMA over Converged Ethernet (RoCE).
 .
 Several kernel RDMA support daemons are included:
  - The rdma-ndd daemon which watches for RDMA device changes and/or hostname
    changes and updates the Node Description of the RDMA devices based on
    those changes.
  - The iWARP Port Mapper Daemon (iwpmd) which provides a kernel support
    service in userspace for iWARP drivers to claim TCP ports through the
    standard socket interface.

Package: ibacm
Architecture: linux-any
Depends: rdma-core (>= 15), ${misc:Depends}, ${shlibs:Depends}
Description: InfiniBand Communication Manager Assistant (ACM)
 The IB ACM implements and provides a framework for name, address, and
 route (path) resolution services over InfiniBand.
 It is intended to address connection setup scalability issues running
 MPI applications on large clusters.  The IB ACM provides information
 needed to establish a connection, but does not implement the CM protocol.
 A primary user of the ibacm service is the librdmacm library.

Package: ibverbs-providers
Architecture: linux-any
Multi-Arch: same
Depends: ${misc:Depends}, ${shlibs:Depends}
Provides: libefa1, libipathverbs1, libmana1, libmlx4-1, libmlx5-1, libmthca1
Replaces: libipathverbs1 (<< 15),
          libmlx4-1 (<< 15),
          libmlx5-1 (<< 15),
          libmthca1 (<< 15)
Breaks: libipathverbs1 (<< 15),
        libmlx4-1 (<< 15),
        libmlx5-1 (<< 15),
        libmthca1 (<< 15)
Description: User space provider drivers for libibverbs
 libibverbs is a library that allows userspace processes to use RDMA
 "verbs" as described in the InfiniBand Architecture Specification and
 the RDMA Protocol Verbs Specification.  iWARP ethernet NICs support
 RDMA over hardware-offloaded TCP/IP, while InfiniBand is a
 high-throughput, low-latency networking technology.  InfiniBand host
 channel adapters (HCAs) and iWARP NICs commonly support direct
 hardware access from userspace (kernel bypass), and libibverbs
 supports this when available.
 .
 An RDMA driver consists of a kernel portion and a user space portion.
 This package contains the user space verbs drivers:
 .
  - bnxt_re: Broadcom NetXtreme-E RoCE HCAs
  - cxgb4: Chelsio T4 iWARP HCAs
  - efa: Amazon Elastic Fabric Adapter
  - erdma: Alibaba Elastic RDMA (iWarp) Adapter
  - hfi1verbs: Intel Omni-Path HFI
  - hns: HiSilicon Hip06 SoC
  - ipathverbs: QLogic InfiniPath HCAs
  - irdma: Intel Ethernet Connection RDMA
  - mana: Microsoft Azure Network Adapter
  - mlx4: Mellanox ConnectX-3 InfiniBand HCAs
  - mlx5: Mellanox Connect-IB/X-4+ InfiniBand HCAs
  - mthca: Mellanox InfiniBand HCAs
  - 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
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Examples for the libibverbs library
 libibverbs is a library that allows userspace processes to use RDMA
 "verbs" as described in the InfiniBand Architecture Specification and
 the RDMA Protocol Verbs Specification.  iWARP ethernet NICs support
 RDMA over hardware-offloaded TCP/IP, while InfiniBand is a
 high-throughput, low-latency networking technology.  InfiniBand host
 channel adapters (HCAs) and iWARP NICs commonly support direct
 hardware access from userspace (kernel bypass), and libibverbs
 supports this when available.
 .
 This package contains useful libibverbs1 example programs such as
 ibv_devinfo, which displays information about InfiniBand devices.

Package: libibverbs-dev
Section: libdevel
Architecture: linux-any
Multi-Arch: same
Depends: ibverbs-providers (= ${binary:Version}),
         libibverbs1 (= ${binary:Version}),
         libnl-3-dev,
         libnl-route-3-dev,
         ${misc:Depends}
Description: Development files for the libibverbs library
 libibverbs is a library that allows userspace processes to use RDMA
 "verbs" as described in the InfiniBand Architecture Specification and
 the RDMA Protocol Verbs Specification.  iWARP ethernet NICs support
 RDMA over hardware-offloaded TCP/IP, while InfiniBand is a
 high-throughput, low-latency networking technology.  InfiniBand host
 channel adapters (HCAs) and iWARP NICs commonly support direct
 hardware access from userspace (kernel bypass), and libibverbs
 supports this when available.
 .
 This package is needed to compile programs against libibverbs1.
 It contains the header files and static libraries (optionally)
 needed for compiling.

Package: libibverbs1
Architecture: linux-any
Multi-Arch: same
Section: libs
Pre-Depends: ${misc:Pre-Depends}
Depends: adduser, ${misc:Depends}, ${shlibs:Depends}
Recommends: ibverbs-providers
Breaks: ibverbs-providers (<< 34~)
Description: Library for direct userspace use of RDMA (InfiniBand/iWARP)
 libibverbs is a library that allows userspace processes to use RDMA
 "verbs" as described in the InfiniBand Architecture Specification and
 the RDMA Protocol Verbs Specification.  iWARP ethernet NICs support
 RDMA over hardware-offloaded TCP/IP, while InfiniBand is a
 high-throughput, low-latency networking technology.  InfiniBand host
 channel adapters (HCAs) and iWARP NICs commonly support direct
 hardware access from userspace (kernel bypass), and libibverbs
 supports this when available.
 .
 For this library to be useful, a device-specific plug-in module
 should also be installed.
 .
 This package contains the shared library.

Package: libibverbs1-dbg
Section: debug
Architecture: linux-any
Multi-Arch: same
Depends: libibverbs1 (= ${binary:Version}), ${misc:Depends}
Description: Debug symbols for the libibverbs library
 libibverbs is a library that allows userspace processes to use RDMA
 "verbs" as described in the InfiniBand Architecture Specification and
 the RDMA Protocol Verbs Specification.  iWARP ethernet NICs support
 RDMA over hardware-offloaded TCP/IP, while InfiniBand is a
 high-throughput, low-latency networking technology.  InfiniBand host
 channel adapters (HCAs) and iWARP NICs commonly support direct
 hardware access from userspace (kernel bypass), and libibverbs
 supports this when available.
 .
 This package contains the debug symbols associated with
 libibverbs1. They will automatically be used by gdb for debugging
 libibverbs-related issues.

Package: libibumad-dev
Section: libdevel
Architecture: linux-any
Multi-Arch: same
Depends: libibumad3 (= ${binary:Version}), ${misc:Depends}
Description: Development files for libibumad
 libibumad provides userspace Infiniband Management Datagram (uMAD)
 functions which sit on top of the uMAD modules in the kernel.
 These are used by InfiniBand diagnostic and management tools.
 .
 This package is needed to compile programs against libibumad.
 It contains the header files and static libraries (optionally)
 needed for compiling.

Package: libibumad3
Architecture: linux-any
Multi-Arch: same
Section: libs
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: InfiniBand Userspace Management Datagram (uMAD) library
 libibumad provides userspace Infiniband Management Datagram (uMAD)
 functions which sit on top of the uMAD modules in the kernel.
 These are used by InfiniBand diagnostic and management tools.
 .
 This package contains the shared library.

Package: libibumad3-dbg
Section: debug
Architecture: linux-any
Depends: libibumad3 (= ${binary:Version}), ${misc:Depends}
Description: Debug symbols for the libibumad3 library
 libibumad provides userspace Infiniband Management Datagram (uMAD)
 functions which sit on top of the uMAD modules in the kernel.
 These are used by InfiniBand diagnostic and management tools.
 .
 This package contains the debug symbols associated with
 libibumad3. They will automatically be used by gdb for debugging
 libibumad-related issues.

Package: librdmacm-dev
Section: libdevel
Architecture: linux-any
Multi-Arch: same
Depends: libibverbs-dev, librdmacm1 (= ${binary:Version}), ${misc:Depends}
Description: Development files for the librdmacm library
 librdmacm is a library that allows applications to set up reliable
 connected and unreliable datagram transfers when using RDMA adapters.
 It provides a transport-neutral interface in the sense that the same
 code can be used for both InfiniBand and iWARP adapters.  The
 interface is based on sockets, but adapted for queue pair (QP) based
 semantics: communication must use a specific RDMA device, and data
 transfers are message-based.
 .
 librdmacm only provides communication management (connection setup
 and tear-down) and works in conjunction with the verbs interface
 provided by libibverbs, which provides the interface used to actually
 transfer data.
 .
 This package is needed to compile programs against librdmacm.
 It contains the header files and static libraries (optionally)
 needed for compiling.

Package: librdmacm1
Architecture: linux-any
Multi-Arch: same
Section: libs
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Library for managing RDMA connections
 librdmacm is a library that allows applications to set up reliable
 connected and unreliable datagram transfers when using RDMA adapters.
 It provides a transport-neutral interface in the sense that the same
 code can be used for both InfiniBand and iWARP adapters.  The
 interface is based on sockets, but adapted for queue pair (QP) based
 semantics: communication must use a specific RDMA device, and data
 transfers are message-based.
 .
 librdmacm only provides communication management (connection setup
 and tear-down) and works in conjunction with the verbs interface
 provided by libibverbs, which provides the interface used to actually
 transfer data.
 .
 This package contains the shared library.

Package: librdmacm1-dbg
Section: debug
Architecture: linux-any
Depends: librdmacm1 (= ${binary:Version}), ${misc:Depends}
Description: Debug symbols for the librdmacm library
 librdmacm is a library that allows applications to set up reliable
 connected and unreliable datagram transfers when using RDMA adapters.
 It provides a transport-neutral interface in the sense that the same
 code can be used for both InfiniBand and iWARP adapters.  The
 interface is based on sockets, but adapted for queue pair (QP) based
 semantics: communication must use a specific RDMA device, and data
 transfers are message-based.
 .
 librdmacm only provides communication management (connection setup
 and tear-down) and works in conjunction with the verbs interface
 provided by libibverbs, which provides the interface used to actually
 transfer data.
 .
 This package contains the debug symbols associated with
 librdmacm1. They will automatically be used by gdb for debugging
 librdmacm-related issues.

Package: rdmacm-utils
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Examples for the librdmacm library
 librdmacm is a library that allows applications to set up reliable
 connected and unreliable datagram transfers when using RDMA adapters.
 It provides a transport-neutral interface in the sense that the same
 code can be used for both InfiniBand and iWARP adapters.  The
 interface is based on sockets, but adapted for queue pair (QP) based
 semantics: communication must use a specific RDMA device, and data
 transfers are message-based.
 .
 librdmacm only provides communication management (connection setup
 and tear-down) and works in conjunction with the verbs interface
 provided by libibverbs, which provides the interface used to actually
 transfer data.
 .
 This package contains useful librdmacm example programs such as
 rping and udaddy.

Package: srptools
Architecture: linux-any
Depends: rdma-core (>= 15), udev, ${misc:Depends}, ${shlibs:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: Tools for Infiniband attached storage (SRP)
 In conjunction with the kernel ib_srp driver, srptools allows you to
 discover and use Infiniband attached storage devices which use the
 SCSI RDMA Protocol (SRP).

Package: python3-pyverbs
Section: python
Architecture: linux-any
Depends: rdma-core (>= 21),
         ${misc:Depends},
         ${python3:Depends},
         ${shlibs:Depends}
Provides: ${python3:Provides}
Description: Python bindings for rdma-core
 Pyverbs provides a Python API over rdma-core, the Linux userspace C API for
 the remote direct memory access (RDMA) stack.
 .
 One goal is to provide easier access to RDMA: RDMA has a steep learning curve
 as is and the C interface requires the user to initialize multiple structs
 before having usable objects. Pyverbs attempts to remove much of this overhead
 and provide a smoother user experience.

Package: infiniband-diags
Architecture: linux-any
Depends: libibnetdisc5 (= ${binary:Version}),
         ${misc:Depends},
         ${perl:Depends},
         ${shlibs:Depends}
Description: InfiniBand diagnostic programs
 InfiniBand is a switched fabric communications link used in
 high-performance computing and enterprise data centers. Its features
 include high throughput, low latency, quality of service and
 failover, and it is designed to be scalable.
 .
 This package provides diagnostic programs and scripts needed to
 diagnose an InfiniBand subnet.

Package: libibmad5
Section: libs
Architecture: linux-any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Infiniband Management Datagram (MAD) library
 libibmad provides low layer InfiniBand functions for use by the
 Infiniband diagnostic and management programs. These include
 Management Datagrams (MAD), Subnet Administration (SA), Subnet
 Management Packets (SMP) and other basic functions.
 .
 This package contains the shared library.

Package: libibmad5-dbg
Section: debug
Architecture: linux-any
Pre-Depends: ${misc:Pre-Depends}
Depends: libibmad5 (= ${binary:Version}), ${misc:Depends}
Description: Debug symbols for Infiniband Management Datagram (MAD) library
 libibmad provides low layer InfiniBand functions for use by the
 Infiniband diagnostic and management programs. These include
 Management Datagrams (MAD), Subnet Administration (SA), Subnet
 Management Packets (SMP) and other basic functions.
 .
 This package contains the debug symbols associated with
 libibmad5. They will automatically be used by gdb for debugging
 libibmad-related issues.

Package: libibmad-dev
Section: libdevel
Architecture: linux-any
Multi-Arch: same
Depends: libibmad5 (= ${binary:Version}), ${misc:Depends}
Description: Development files for libibmad
 libibmad provides low layer Infiniband functions for use by the
 InfiniBand diagnostic and management programs. These include
 Management Datagrams (MAD), Subnet Administration (SA), Subnet
 Management Packets (SMP) and other basic functions.
 .
 This package is needed to compile programs against libibmad5.
 It contains the header files and static libraries (optionally)
 needed for compiling.

Package: libibnetdisc5
Section: libs
Architecture: linux-any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: InfiniBand diagnostics library
 InfiniBand is a switched fabric communications link used in
 high-performance computing and enterprise data centers. Its features
 include high throughput, low latency, quality of service and
 failover, and it is designed to be scalable.
 .
 This package provides libraries required by the InfiniBand
 diagnostic programs.

Package: libibnetdisc5-dbg
Section: debug
Architecture: linux-any
Multi-Arch: same
Depends: libibnetdisc5 (= ${binary:Version}), ${misc:Depends}
Description: Debug symbols for the libibnetdisc library
 InfiniBand is a switched fabric communications link used in
 high-performance computing and enterprise data centers. Its features
 include high throughput, low latency, quality of service and
 failover, and it is designed to be scalable.
 .
 This package contains the debug symbols associated with
 libibnetdisc5. They will automatically be used by gdb for debugging
 libibnetdisc-related issues.

Package: libibnetdisc-dev
Section: libdevel
Architecture: linux-any
Multi-Arch: same
Depends: libibnetdisc5 (= ${binary:Version}), ${misc:Depends}
Breaks: infiniband-diags (<< 2.0.0)
Replaces: infiniband-diags (<< 2.0.0)
Description: InfiniBand diagnostics library headers
 InfiniBand is a switched fabric communications link used in
 high-performance computing and enterprise data centers. Its features
 include high throughput, low latency, quality of service and
 failover, and it is designed to be scalable.
 .
 This package provides development files required to build
 applications against the libibnetdisc InfiniBand diagnostic
 libraries.
