System setup for Mellanox cards

System preparation

Working with Mellanox cards requires the latest driver and firmware for the device Mellanox OFED.

  1. Using the link in the Download section, select the driver for the required distribution kit of the operating system in the table. Tested to work on Debian 10+ and Ubuntu LTS.

  2. Download the latest driver (.tgz-archive).

  3. Unpack the archive and start the installation. The installation process will update the firmware of all Mellanox network cards found in the system.

    Installing the minimum required set of packages:

    ./mlnxofedinstall --basic --without-neohost-backend --without-neohost-sdk
    

    If you only need to update the firmware of network cards without installation:

    ./mlnxofedinstall --fw-update-only
    

    Reboot the system when finished.

    Impoertant: during installation, the OS version check may not occur. In this case, you need to add the --skip-distro-check option.

MITIGATOR setup

The peculiarity of working with the Mellanox driver is that they remain under Linux control, that is, the network interfaces remain in the system. However, you cannot transfer traffic through them when MITIGATOR is running.

  1. Verify that the output of the dpdk-devbind --status-dev=net command contains the required Mellanox network devices and that they are bound to the mlx5_core driver.

  2. If devices are present, but not bound to the mlx5_core driver, make sure that there is no attempt to bind these devices to another driver (for example, the PCI addresses of devices are NOT found in nics.conf).

  3. Download and install the correct Docker Compose base configuration for Mellanox network cards.

Performance optimization

  1. Optimization of firmware settings for network cards. Applied through a script for the required platform once when installing a new network card (requires a system restart):

  2. Optimization of network card settings for the current session. It is used at system startup via automated script, registered in autoload.

  3. Enabling pass-through for IOMMU. Increases performance (Linux kernel parameter):

    iommu=pt