A Mellanox ConnectX-4 MCX455A-ECAT PCIe x16 3.0 100GBe VPI EDR IB network adapter. Enable VT-d(Intel Virtualization Technology for Directed I/O), SR-IOV (Single Root IO Virtualization), and the number of Virtual Functions in Chipset and Network in BIOS.
The following steps are made in a Proxmox Virtual Environment (PVE).
Configuration and Setup
Go to NVIDIA Firmware Tools (MFT) https://network.nvidia.com/products/adapter-software/firmware-tools/ and download the MFT; go to Updating Firmware for ConnectX®-4 VPI PCI Express Adapter Cards (InfiniBand, Ethernet, VPI) https://network.nvidia.com/support/firmware/connectx4ib/ and download the updated firmware e.g. mft-4.26.1-6-x86_64-deb.tgz.
After installation, start up Mellanox Software Tools service:
1 | root@pve:~# mst start |
Check status:
1 | root@pve:~# mst status |
Query Mellanox network adapter:
1 | root@pve:~# flint -d /dev/mst/mt4115_pciconf0 query |
Check Mellanox network adapter configuration:
1 | root@pve:~# mlxconfig -d /dev/mst/mt4115_pciconf0 query |
Verify network adapter configuration:
1 | terrence@pve:~# ethtool enp1s0np0 |
Virtualization
1 | root@pve:~# lspci | grep Mellanox |
Write to the sysfs file the number of Virtual Functions:
1 | root@pve:~# echo 8 > /sys/class/infiniband/mlx5_0/device/sriov_numvfs |
Verify that the Virtual Functions were created:
1 | root@pve:~# lspci | grep Mellanox |
Persistence
Print out device information:
1 | root@pve:~# udevadm info /sys/class/infiniband/mlx5_0 |
Make the network adapter Virtual Functions persistent after reboot:
1 | root@pve:~# cat /etc/udev/rules.d/mlx.rules |
Network in Proxmox
Add virtualised network adapter in Resource Mappings in Proxmox:

List PCI Devices in Resource Mappings in Proxmox which support Virtual Functions:

Add PCI device in Resource Mappings in Proxmox in VM:

References
- Mellanox ConnectX-4 100Gb NIC Firmware Update and Ethernet Mode, https://www.youtube.com/watch?v=D1qN7Qg3bSg
- Single Root IO Virtualization (SR-IOV), https://docs.nvidia.com/networking/display/mlnxofedv53100143/single+root+io+virtualization+(sr-iov)
- Persisting SR-IOV virtual functions after reboot, https://www.reddit.com/r/homelab/comments/hf12mv/persisting_sriov_virtual_functions_after_reboot/
- PCI Device Assignment with SR-IOV Devices, https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-pci_devices-pci_passthrough
- 100 Gbe & TrueNAS Scale 23.10 iSCSI - Performance Unleashed, https://forum.level1techs.com/t/100-gbe-truenas-scale-23-10-iscsi-performance-unleashed/206452
- Single-Root IO Virtualization (SR-IOV) in Proxmox Virtual Environment (PVE) for Networking, https://www.youtube.com/watch?v=AdzeMpBIXlQ


























