Rony Efraim
DPDK summit Nov 2017
Mellanox Bifurcated DPDK PMD
© 2016 Mellanox Technologies 2
Mellanox PMD
 Mellanox PMD is built on top of libibverbs
using the Raw Ethernet Accelerated Verbs
API.
 Verbs is a standard API of openfabrics.org
 The PMD directly accesses the NIC for fast
data path
 Control path is going through the kernel
modules.
 Unlike other PMDs, Mellanox PMD is yet
another user space application and the NIC
is still being controlled by the kernel
ConnectX-3 ConnectX-4/LX ConnectX-5/EX
mlx4/5_core
PRM
HW
Kernel
User
mlx4/5 verbs provider
(mlx4/5_ib)
Kernel Verbs
User Verbs
(libibverbs+libmlx4/5)
mlx4*/5 PMD
DPDK
Data Path
Direct PRM I/F
Control Path
User Verbs I/F
© 2016 Mellanox Technologies 3
Kernel driver
 Control commands (e.g ip link, ethtool) will work as usual
 Mellanox PMD relies on system calls for control operations such as querying/updating the MTU
and flow control parameters.
 For security reasons and robustness, the PMD only deals with virtual memory addresses.
 DPDK steers the required traffic by using rte flow.
 All the leftover is going to the kernel driver.
 The kernel handles the leftover traffic and can reply for arp, ping ….
© 2016 Mellanox Technologies 4
Example
type Priority match
Rte flow 1 http
netdev 10 all
DPDK APP
Linux IP
Stack
Rx queue
Rx queue
Rx queue
RX packets
http
Arp,icmp
User
Kernel
© 2016 Mellanox Technologies 5
Multiple DPDK Applications on single device
 You can run multiple applications on a single
function.
 resources allocation are handled by the kernel
combined with hardware specifications that allow it
to handle virtual memory addresses directly ensure
that DPDK applications cannot access random
physical memory or memory of other processes.
 Steering is done by the application when adding a
filter.
 A packet can be steered to multiple queues and/or
applications.
 Does not require SR-IOV. Multiple apps work over
VF/PF
 Designed to be run as non root thanks to verbs
ConnectX-3 ConnectX-4/LX ConnectX-5/EX
mlx4/5_core
PRM
HW
Kernel
User
mlx4/5 verbs provider
(mlx4/5_ib)
Kernel Verbs
User Verbs
(libibverbs+libmlx4/5)
mlx4*/5 PMD
Data Path
Direct PRM I/F
Control Path
User Verbs I/F
© 2016 Mellanox Technologies 6
Thank You

LF_DPDK_Mellanox bifurcated driver model

  • 1.
    Rony Efraim DPDK summitNov 2017 Mellanox Bifurcated DPDK PMD
  • 2.
    © 2016 MellanoxTechnologies 2 Mellanox PMD  Mellanox PMD is built on top of libibverbs using the Raw Ethernet Accelerated Verbs API.  Verbs is a standard API of openfabrics.org  The PMD directly accesses the NIC for fast data path  Control path is going through the kernel modules.  Unlike other PMDs, Mellanox PMD is yet another user space application and the NIC is still being controlled by the kernel ConnectX-3 ConnectX-4/LX ConnectX-5/EX mlx4/5_core PRM HW Kernel User mlx4/5 verbs provider (mlx4/5_ib) Kernel Verbs User Verbs (libibverbs+libmlx4/5) mlx4*/5 PMD DPDK Data Path Direct PRM I/F Control Path User Verbs I/F
  • 3.
    © 2016 MellanoxTechnologies 3 Kernel driver  Control commands (e.g ip link, ethtool) will work as usual  Mellanox PMD relies on system calls for control operations such as querying/updating the MTU and flow control parameters.  For security reasons and robustness, the PMD only deals with virtual memory addresses.  DPDK steers the required traffic by using rte flow.  All the leftover is going to the kernel driver.  The kernel handles the leftover traffic and can reply for arp, ping ….
  • 4.
    © 2016 MellanoxTechnologies 4 Example type Priority match Rte flow 1 http netdev 10 all DPDK APP Linux IP Stack Rx queue Rx queue Rx queue RX packets http Arp,icmp User Kernel
  • 5.
    © 2016 MellanoxTechnologies 5 Multiple DPDK Applications on single device  You can run multiple applications on a single function.  resources allocation are handled by the kernel combined with hardware specifications that allow it to handle virtual memory addresses directly ensure that DPDK applications cannot access random physical memory or memory of other processes.  Steering is done by the application when adding a filter.  A packet can be steered to multiple queues and/or applications.  Does not require SR-IOV. Multiple apps work over VF/PF  Designed to be run as non root thanks to verbs ConnectX-3 ConnectX-4/LX ConnectX-5/EX mlx4/5_core PRM HW Kernel User mlx4/5 verbs provider (mlx4/5_ib) Kernel Verbs User Verbs (libibverbs+libmlx4/5) mlx4*/5 PMD Data Path Direct PRM I/F Control Path User Verbs I/F
  • 6.
    © 2016 MellanoxTechnologies 6
  • 7.