1 # RDMA (ibverb) Ethernet driver {#rdma_doc}
3 This driver relies on Linux rdma-core (libibverb) userspace poll-mode driver
4 to rx/tx Ethernet packets. Despite using the RDMA APIs, this is **not** about
5 RDMA (no Infiniband, no RoCE, no iWARP), just pure traditional Ethernet
9 Under development: it should work, but has not been thoroughly tested.
16 - bifurcation: MAC based flow steering for transparent sharing of a single
17 physical port between multiple virtual interfaces including Linux netdev
20 ## Security considerations
21 When creating a rdma interface, it will receive all packets to the MAC address
22 attributed to the interface plus a copy of all broadcast and multicast
24 The MAC address is under the control of VPP: **the user controlling VPP can
25 divert all traffic of any MAC address to the VPP process, including the Linux
26 netdev MAC address as long as it can create a rdma interface**.
27 The rights to create a rdma interface are controlled by the access rights of
28 the `/dev/infiniband/uverbs[0-9]+`device nodes.
31 1. Make sure the `ib_uverbs` module is loaded:
35 2. In VPP, create a new rdma virtual interface tied to the Linux netdev of the
36 physical port you want to use (`enp94s0f0` in this example):
38 vpp# create int rdma host-if enp94s0f0 name rdma-0
40 3. Use the interface as usual, eg.:
42 vpp# set int ip addr rdma-0 1.1.1.1/24
43 vpp# set int st rdma-0 up
47 ### Containers support
48 It should work in containers as long as:
49 - the `ib_uverbs` module is loaded
50 - the device nodes `/dev/infiniband/uverbs[0-9]+` are usable from the
51 container (but see [security considerations](#Security considerations))