rdma: update MAINTAINERS and add doc 64/19364/4
authorBenoît Ganne <bganne@cisco.com>
Mon, 6 May 2019 11:15:33 +0000 (13:15 +0200)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 14 May 2019 14:13:49 +0000 (14:13 +0000)
Change-Id: Ida681d299fd57eba66338444b99d2476bdb3c695
Signed-off-by: Benoît Ganne <bganne@cisco.com>
MAINTAINERS
doxygen/user_doc.md
src/plugins/rdma/rdma_doc.md [new file with mode: 0644]

index 06696db..b58d537 100644 (file)
@@ -218,6 +218,11 @@ Binary API Compiler
 M:     Ole Troan <otroan@employees.org>
 F:     src/tools/vppapigen/
 
+Plugin - RDMA (ibverb) driver
+M:     Benoît Ganne <bganne@cisco.com>
+M:     Damjan Marion <damarion@cisco.com>
+F:     src/plugins/rdma/
+
 THE REST
 C:     Contact vpp-dev Mailing List <vpp-dev@fd.io>
 F:     *
index d9439cd..8474183 100644 (file)
@@ -27,3 +27,4 @@ Several modules provide operational, dataplane-user focused documentation.
 - @subpage srv6_doc
 - @subpage vcl_ldpreload_doc
 - @subpage vmxnet3_doc
+- @subpage rdma_doc
diff --git a/src/plugins/rdma/rdma_doc.md b/src/plugins/rdma/rdma_doc.md
new file mode 100644 (file)
index 0000000..e41839e
--- /dev/null
@@ -0,0 +1,51 @@
+# RDMA (ibverb) Ethernet driver {#rdma_doc}
+
+This driver relies on Linux rdma-core (libibverb) userspace poll-mode driver
+to rx/tx Ethernet packets. Despite using the RDMA APIs, this is **not** about
+RDMA (no Infiniband, no RoCE, no iWARP), just pure traditional Ethernet
+packets.
+
+## Maturity level
+Under development: it should work, but has not been thoroughly tested.
+
+## Supported Hardware
+ - Mellanox ConnectX-4
+ - Mellanox ConnectX-5
+
+## Features
+ - bifurcation: MAC based flow steering for transparent sharing of a single
+physical port between multiple virtual interfaces including Linux netdev
+ - multiqueue
+
+## Security considerations
+When creating a rdma interface, it will receive all packets to the MAC address
+attributed to the interface plus a copy of all broadcast and multicast
+traffic.
+The MAC address is under the control of VPP: **the user controlling VPP can
+divert all traffic of any MAC address to the VPP process, including the Linux
+netdev MAC address as long as it can create a rdma interface**.
+The rights to create a rdma interface are controlled by the access rights of
+the `/dev/infiniband/uverbs[0-9]+`device nodes.
+
+## Quickstart
+1. Make sure the `ib_uverbs` module is loaded:
+```
+~# modprobe ib_uverbs
+```
+2. In VPP, create a new rdma virtual interface tied to the Linux netdev of the
+physical port you want to use (`enp94s0f0` in this example):
+```
+vpp# create int rdma host-if enp94s0f0 name rdma-0
+```
+3. Use the interface as usual, eg.:
+```
+vpp# set int ip addr rdma-0 1.1.1.1/24
+vpp# set int st rdma-0 up
+vpp# ping 1.1.1.100`
+```
+
+### Containers support
+It should work in containers as long as:
+ - the `ib_uverbs` module is loaded
+ - the device nodes `/dev/infiniband/uverbs[0-9]+` are usable from the
+   container (but see [security considerations](#Security considerations))