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
committed by
Florin Coras
parent
80b5e4f69e
commit
a77521290a
@ -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: *
|
||||
|
@ -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
|
||||
|
51
src/plugins/rdma/rdma_doc.md
Normal file
51
src/plugins/rdma/rdma_doc.md
Normal 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))
|
Reference in New Issue
Block a user