rdma: update MAINTAINERS and add doc

Change-Id: Ida681d299fd57eba66338444b99d2476bdb3c695
Signed-off-by: Benoît Ganne <bganne@cisco.com>
This commit is contained in:
Benoît Ganne
2019-05-06 13:15:33 +02:00
committed by Florin Coras
parent 80b5e4f69e
commit a77521290a
3 changed files with 57 additions and 0 deletions

View 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: *

View 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

View File

@ -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))