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.1
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: lsb-base (>= 3.2-14~),
         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: lsb-base (>= 3.2-14~),
         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 librdmacm1.
 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 librdmacm1 example programs such as
 rping and udaddy.

Package: srptools
Architecture: linux-any
Depends: lsb-base (>= 3.2-14~),
         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 aginast the libibnetdisc5 InfiniBand diagnostic
 libraries.
