Is VF creation inside the VM supported when the PF is passed via VFIO-PCI?
No. VF creation is only supported on the host, with the PF bound to the native driver (e.g. mlx5_core). When the PF is bound to vfio-pci for passthrough, the kernel does not expose SR-IOV configuration via sysfs (e.g. “Driver does not support SRIOV configuration via sysfs”), so creating VFs in the VM is not supported.
Firmware / nested SR-IOV?
No extra ConnectX-7 firmware is required for “nested” SR-IOV; nested SR-IOV (create VFs inside a VM from a passed-through PF) is not a supported configuration.
mlx5 vs KVM/IOMMU?
This is a driver/passthrough model limitation (vfio-pci does not support SR-IOV sysfs), not an mlx5 bug or a KVM/IOMMU misconfiguration.
Supported way to run SR-IOV Network Operator with a VM?
Create VFs on the bare-metal host (PF on host with mlx5/MLNX_OFED, use sriov_numvfs on the host).
Pass VFs (not the PF) into the VM as PCI passthrough devices.
For “dynamic” behavior, run the SR-IOV/Network Operator on the host and assign the created VFs to VMs.
For NUMA isolation: pin the VM to a NUMA node and assign VFs from the PF on that same node.