Failed to Start virtio-net-controller.service
The problem can be verified using the following commands:
# virtnet list
ERR: Can't connect to virtnet controller: [Errno 111
] Connection refused
Check 'systemctl status virtio-net-controller'
Or controller is not ready to accept commands
# systemctl status virtio-net-controller
● virtio-net-controller.service - Nvidia VirtIO Net Controller Daemon
Loaded: loaded (/etc/systemd/system/virtio-net-controller.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Fri 2023
-10
-27
17
:46
:59
CDT; 2min 26s ago
Docs: file:/opt/mellanox/mlnx_virtnet/README.md
Process: 29652
ExecStart=/usr/sbin/virtio_net_manager (code=exited, status=0
/SUCCESS)
Main PID: 29652
(code=exited, status=0
/SUCCESS)
The problem may happen due to the following reasons.
Virtio-net Not Enabled
Check if mlxconfig has VIRTIO_NET_EMULATION_ENABLE enabled:
# mlxconfig -d
03
:00.0
-e q | grep -i VIRTIO_NET_EMULATION_ENABLE * VIRTIO_NET_EMULATION_ENABLE False(0
) True(1
) True(1
)Both 2 and 3 columns should appear as true.
If they are not, perform the following from the BlueField Arm side:
# mlxconfig -d
03
:00.0
s VIRTIO_NET_EMULATION_ENABLE=1
Perform a BlueField system-level reset as documented in the BlueField software documentation.
Not Enough SFs Reserved
This can happen when more VIRTIO_NET_EMULATION_NUM_PF are reserved than PF_TOTAL_SF, as each virtio-net PF/VF requires a corresponding SF created:
# mlxconfig -d 03
:00.0
-e q | grep -iE 'PF_TOTAL_SF|VIRTIO_NET_EMULATION_NUM_PF'
* VIRTIO_NET_EMULATION_NUM_PF 0
4
4
* PF_TOTAL_SF 0
8
8
By default, the BlueField creates an SF for each PF. Take this into consideration when reserving PF_TOTAL_SF.