This PR adds the support for RDMA traffic in pyverbs. It's consisted roughly of three parts - Address handle support, QP support and example (RC pingpong). Noa Osherovich (11): pyverbs: Add support for address handle creation pyverbs: Add unittests for address handle creation Documentation: Document Address Handle creation with pyverbs pyverbs: Add work requests related classes pyverbs: Add QP related classes pyverbs: Introducing QP class pyverbs: Add missing device capabilities pyverbs/tests: Add control-path unittests for QP class Documentation: Document QP creation and basic usage with pyverbs pyverbs/examples: Add base classes for pyverbs applications pyverbs/examples: RC pingpong Documentation/pyverbs.md | 64 +- buildlib/pyverbs_functions.cmake | 11 +- pyverbs/CMakeLists.txt | 15 +- pyverbs/addr.pxd | 16 +- pyverbs/addr.pyx | 389 ++++++++++- pyverbs/cq.pxd | 4 + pyverbs/cq.pyx | 13 + pyverbs/device.pxd | 1 + pyverbs/device.pyx | 6 +- pyverbs/examples/__init__.py | 0 pyverbs/examples/common.py | 331 ++++++++++ pyverbs/examples/rc_pingpong.py | 208 ++++++ pyverbs/libibverbs.pxd | 203 ++++++ pyverbs/libibverbs_enums.pxd | 6 + pyverbs/pd.pxd | 2 + pyverbs/pd.pyx | 14 +- pyverbs/qp.pxd | 32 + pyverbs/qp.pyx | 1046 ++++++++++++++++++++++++++++++ pyverbs/tests/addr.py | 72 ++ pyverbs/tests/qp.py | 255 ++++++++ pyverbs/tests/utils.py | 128 +++- pyverbs/utils.py | 100 +++ pyverbs/wr.pxd | 16 + pyverbs/wr.pyx | 310 +++++++++ 24 files changed, 3206 insertions(+), 36 deletions(-) create mode 100644 pyverbs/examples/__init__.py create mode 100644 pyverbs/examples/common.py create mode 100644 pyverbs/examples/rc_pingpong.py create mode 100644 pyverbs/qp.pxd create mode 100644 pyverbs/qp.pyx create mode 100644 pyverbs/tests/addr.py create mode 100644 pyverbs/tests/qp.py create mode 100644 pyverbs/utils.py create mode 100644 pyverbs/wr.pxd create mode 100644 pyverbs/wr.pyx -- 2.17.2