Before configuring SNAP, the user must ensure that all firmware configuration requirements are met. By default, SNAP is disabled and must be enabled by running both common SNAP configurations and additional protocol-specific configurations depending on the expected usage of the application (e.g., hot-plug, SR-IOV, UEFI boot, etc).
After configuration is finished, the host must be power cycled for the changes to take effect.
To verify that all configuration requirements are satisfied, users may query the current/next configuration by running the following:
mlxconfig -d /dev/mst/mt41692_pciconf0 -e query
System Configuration Parameters
Parameter | Description | Possible Values |
---|---|---|
INTERNAL_CPU_MODEL | Enable BlueField to work in internal CPU model Must be set to | 0/1 |
| Enable SR-IOV | 0/1 |
| Enable PCI switch for emulated PFs | 0/1 |
| The maximum number of hotplug emulated PFs which equals One switch port is reserved for all static PFs. | [0-32] |
SRIOV_EN
is valid only for static PFs.
RDMA/RoCE Configuration
BlueField's RDMA/RoCE communication is blocked for BlueField's default OS interfaces (nameds ECPFs, typically mlx5_0 and mlx5_1). If RoCE traffic is required, additional network functions (scalable functions) must be added which support RDMA/RoCE traffic.
The following is not required when working over TCP or even RDMA/IB.
To enable RoCE interfaces, run the following from within the DPU:
[dpu] mlxconfig -d /dev/mst/mt41692_pciconf0 s PER_PF_NUM_SF=1 [dpu] mlxconfig -d /dev/mst/mt41692_pciconf0 s PF_SF_BAR_SIZE=8 PF_TOTAL_SF=2 [dpu] mlxconfig -d /dev/mst/mt41692_pciconf0.1 s PF_SF_BAR_SIZE=8 PF_TOTAL_SF=2
NVMe Configuration
Parameter | Description | Possible Values |
---|---|---|
| Enable NVMe device emulation | 0/1 |
| Number of static emulated NVMe PFs | [0-4] |
| Number of MSIX assigned to emulated NVMe PF/VF | [0-63] |
| Number of VFs per emulated NVMe PF If not 0, overrides | [0-127] |
| Enable NVMe UEFI exprom driver Used for UEFI boot process. | 0/1 |
VirtIO-blk Configuration
Due to virtio-blk protocol limitations, using bad configuration while working with static virtio-blk PFs may cause the host server OS to fail on boot.
Before continuing, make sure you have configured:
- A working channel to access Arm even when the host is shut down. Setting such channel is out of the scope of this document. Please refer to "NVIDIA BlueField DPU Family Software Documentation" for more details.
Add the following line to
/etc/nvda_snap/snap_rpc_init.conf
:virtio_blk_controller_create –pf_id 0
For more information, please refer to section "VirtIO-blk Controller Management".
Parameter | Description | Possible Values |
---|---|---|
| Enable virtio-blk device emulation | 0/1 |
| Number of static emulated virtio-blk PFs See WARNING above. | [0-4] |
| Number of MSIX assigned to emulated virtio-blk PF/VF | [0-63] |
| Number of VFs per emulated virtio-blk PF If not 0, overrides | [0-127] |
| Enable virtio-blk UEFI exprom driver Used for UEFI boot process. | 0/1 |