【dpdk】NVIDIA MLX5 Common Driver

本文详细介绍了NVIDIAmlx5commondriver在DPDK中的支持情况,涵盖了Linux和Windows平台的安装要求、安全设计、PMD选择、编译选项、环境配置等关键要素,以及与Mellanox技术整合的相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

From

3. NVIDIA MLX5 Compress Driver — Data Plane Development Kit 23.11.0 documentation (dpdk.org)

5. NVIDIA MLX5 Common Driver

Note

NVIDIA acquired Mellanox Technologies in 2020. The DPDK documentation and code might still include instances of or references to Mellanox trademarks (like BlueField and ConnectX) that are now NVIDIA trademarks.

The mlx5 common driver library (librte_common_mlx5) provides support for NVIDIA ConnectX-4, NVIDIA ConnectX-4 Lx, NVIDIA ConnectX-5, NVIDIA ConnectX-6, NVIDIA ConnectX-6 Dx, NVIDIA ConnectX-6 Lx, NVIDIA ConnectX-7, NVIDIA BlueField, NVIDIA BlueField-2 and NVIDIA BlueField-3 families of 10/25/40/50/100/200 Gb/s adapters.

Information and documentation for these adapters can be found on the NVIDIA website. Help is also provided by the NVIDIA Networking forum. In addition, there is a web section dedicated to DPDK.

5.1. Design

For security reasons and to enhance robustness, this driver only handles virtual memory addresses. The way resources allocations are handled by the kernel, combined with hardware specifications that allow handling virtual memory addresses directly, ensure that DPDK applications cannot access random physical memory (or memory that does not belong to the current process).

There are different levels of objects and bypassing abilities which are used to get the best performance:

  • Verbs is a complete high-level generic API
  • Direct Verbs is a device-specific API
  • DevX allows accessing firmware objects
  • Direct Rules manages flow steering at the low-level hardware layer

On Linux, above interfaces are provided by linking with libibverbs and libmlx5. See Linux Prerequisites for installation.

On Windows, DevX is the only requirement from the above list. See Windows Prerequisites for DevX SDK package installation.

5.2. Classes

One mlx5 device can be probed by a number of different PMDs. To select a specific PMD, its name should be specified as a device parameter (e.g. 0000:08:00.1,class=eth).

In order to allow probing by multiple PMDs, several classes may be listed separated by a colon. For example: class=crypto:regex will probe both Crypto and RegEx PMDs.

5.2.1. Supported Classes

By default, the mlx5 device will be probed by the eth PMD.

5.2.2. Limitations

  • eth and vdpa PMDs cannot be probed at the same time. All other combinations are possible.
  • On Windows, only eth and crypto are supported.

5.3. Compilation Prerequisites

5.3.1. Linux Prerequisites

This driver relies on external libraries and kernel drivers for resources allocations and initialization. The following dependencies are not part of DPDK and must be installed separately:

  • libibverbs

    User space Verbs framework used by librte_common_mlx5. This library provides a generic interface between the kernel and low-level user space drivers such as libmlx5.

    It allows slow and privileged operations (context initialization, hardware resources allocations) to be managed by the kernel and fast operations to never leave user space.

  • libmlx5

    Low-level user space driver

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值