intel / intel/ethernet-linux-ice
ice 1.7.16 VF device is missing while deploying workloads
- Dominant language
- C
- Stars
- 60
- Forks
- 21
- PR merge metrics
- No merged PRs in 30d
Description
Hello Team,
we are using the following versions in our device:
1. ice: v1.7.16
2. iavf: v4.3.19
3. firmware: `ice/ddp/ice-1.3.27.0.pkg`
4. uname -a
Linux appliance-1.chassis.local 4.18.0-553.50.1.1.el8_10.x86_64 x86_64 x86_64 x86_64 GNU/Linux
**Issue Description:**
When deploying our workloads, we are seeing an issue with respect to VF device. Even though PCI sys bus directories are fine, vf is missing under ip link show command.
To reproduce this, we developed a script which performs setting random mac address to VFs under PF. We got the issue in 14th iteration.
We tried different workarounds (unbind, bind) , but we are not able to bring VF device back.
System status as below, when the issue is hit:
```
[root@appliance-1:Active] ~ # ip link show sfp_5
6: sfp_5: mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 14:a9:d0:04:1c:03 brd ff:ff:ff:ff:ff:ff
vf 0 link/ether 02:cd:86:f1:f9:75 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust on
vf 2 link/ether 00:00:00:00:01:04 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state enable, trust off
vf 3 link/ether 00:00:00:00:01:04 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state enable, trust off
altname enp236s0f0
Truncated VF list: sfp_5
```
Logs are as below:
**dmesg Logs of that particular VF device:**
```
[Mon Jul 7 12:37:37 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:38 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:38 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:38 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: PF returned error -5 (IAVF_ERR_PARAM) to our request 3
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 51
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 44
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 7
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: Failed to add MAC filter, error IAVF_NOT_SUPPORTED
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 52
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 6
[Mon Jul 7 12:37:39 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:40 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:40 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:40 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:41 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:41 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:41 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:42 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:42 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:42 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:42 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:43 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:43 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:43 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:43 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:44 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:44 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:44 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:44 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:44 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:45 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:45 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:45 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:45 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:46 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:46 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:46 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:46 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:47 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:47 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:47 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:48 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:48 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:48 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:49 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:49 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:49 2025] iavf 0000:ec:01.1 eth2: NIC Link is Up Speed is 10 Gbps Full Duplex
[Mon Jul 7 12:37:49 2025] iavf 0000:ec:01.1: Reset indication received from the PF
[Mon Jul 7 12:37:49 2025] iavf 0000:ec:01.1: PF returned error -5 (IAVF_ERR_PARAM) to our request 3
[Mon Jul 7 12:37:49 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 51
[Mon Jul 7 12:37:50 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 44
[Mon Jul 7 12:37:50 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 7
[Mon Jul 7 12:37:50 2025] iavf 0000:ec:01.1: Failed to add MAC filter, error IAVF_NOT_SUPPORTED
[Mon Jul 7 12:37:50 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 52
[Mon Jul 7 12:37:50 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 6
[Mon Jul 7 12:37:50 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 8
[Mon Jul 7 12:37:50 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 23
[Mon Jul 7 12:37:50 2025] iavf 0000:ec:01.1: PF returned error -64 (IAVF_NOT_SUPPORTED) to our request 24
```
**Script logs** :
```
[root@appliance-1:Active] ~ # ./set_mac_2.sh 500
Iteration 1: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:14:28:48:fb:27 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:1d:f7:a1:64:9c spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:d6:a7:97:f1:cb spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:7d:e4:9d:42:43 spoofchk=on state=auto trust=on
Iteration 1: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 2: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:ee:33:28:76:eb spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:08:dd:39:6b:0e spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:9f:49:da:6e:95 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:39:cf:8d:cc:92 spoofchk=on state=auto trust=on
Iteration 2: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 3: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:a2:29:33:ba:fd spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:3e:13:0c:67:b3 spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:c7:5d:a3:54:78 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:81:4a:c9:92:7c spoofchk=on state=auto trust=on
Iteration 3: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 4: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:9f:9c:01:d1:53 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:58:7e:20:29:df spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:78:61:ff:f2:f1 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:9b:eb:0d:e5:1b spoofchk=on state=auto trust=on
Iteration 4: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 5: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:e3:f8:55:84:82 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:7b:d4:2b:61:e9 spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:c3:a0:89:e2:aa spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:88:e5:c8:5b:0a spoofchk=on state=auto trust=on
Iteration 5: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 6: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:4a:68:60:1d:36 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:29:6e:9d:7b:d7 spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:86:7e:aa:40:f5 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:62:2a:24:f8:4a spoofchk=on state=auto trust=on
Iteration 6: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 7: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:21:86:9f:b5:bc spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:99:02:04:b5:e5 spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:62:db:98:45:5c spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:ef:f3:dd:ec:b1 spoofchk=on state=auto trust=on
Iteration 7: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 8: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:e2:b4:0b:f6:c6 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:3f:a2:0e:b4:9a spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:05:58:5f:be:1e spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:56:18:4b:be:6e spoofchk=on state=auto trust=on
Iteration 8: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 9: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:0d:aa:ff:39:6f spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:de:66:95:ab:99 spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:4e:79:eb:a2:66 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:a3:4d:ff:4a:10 spoofchk=on state=auto trust=on
Iteration 9: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 10: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:37:a3:af:b0:21 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:24:c7:66:19:9b spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:e9:5c:fe:c7:c1 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:ab:77:86:16:e5 spoofchk=on state=auto trust=on
Iteration 10: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 11: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:81:12:4f:70:49 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:53:2f:db:cc:9d spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:84:f1:ae:47:b6 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:43:71:df:d3:ca spoofchk=on state=auto trust=on
Iteration 11: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 12: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:42:dd:c8:4d:66 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:3a:ac:b3:5f:0b spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:61:e5:f6:46:e1 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:73:53:84:12:39 spoofchk=on state=auto trust=on
Iteration 12: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 13: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:92:70:c2:22:2b spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:10:73:ac:f0:35 spoofchk=on state=auto trust=on
- Setting VF 2: MAC=02:6a:d5:e0:6c:39 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:be:8f:9c:44:c5 spoofchk=on state=auto trust=on
Iteration 13: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
Iteration 14: Setting all VFs on sfp_5
- Setting VF 0: MAC=02:4f:98:bf:d9:16 spoofchk=on state=auto trust=on
- Setting VF 1: MAC=02:c4:ba:3b:07:d1 spoofchk=on state=auto trust=on
RTNETLINK answers: Invalid argument
- Setting VF 2: MAC=02:43:13:fc:00:72 spoofchk=on state=auto trust=on
- Setting VF 3: MAC=02:ce:8c:44:e0:87 spoofchk=on state=auto trust=on
Iteration 14: Unsetting all VFs on sfp_5
- Unsetting VF 0: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 1: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
RTNETLINK answers: Invalid argument
- Unsetting VF 2: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
- Unsetting VF 3: MAC=00:00:00:00:01:04 spoofchk=off state=enable trust=off
```
**Script Content:**
```
root@appliance-1:Active] ~ # cat set_mac_2.sh
#!/bin/bash
# Script to set random MAC and other VF settings for ALL VFs on PF sfp_5
PF="sfp_5"
usage() {
echo "Usage:"
echo " $0 "
echo "Example:"
echo " $0 5"
exit 1
}
if [[ $# -ne 1 ]]; then
usage
fi
ITERATIONS=$1
DEFAULT_MAC="00:00:00:00:01:04"
generate_random_mac() {
printf '02:%02x:%02x:%02x:%02x:%02x\n' \
$((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256))
}
for (( i=1; i<=ITERATIONS; i++ ))
do
echo "Iteration $i: Setting all VFs on $PF"
for VF in 0 1 2 3
do
RANDOM_MAC=$(generate_random_mac)
echo " - Setting VF $VF: MAC=$RANDOM_MAC spoofchk=on state=auto trust=on"
ip link set $PF vf $VF mac $RANDOM_MAC spoofchk on state auto trust on
done
echo "Iteration $i: Unsetting all VFs on $PF"
for VF in 0 1 2 3
do
echo " - Unsetting VF $VF: MAC=$DEFAULT_MAC spoofchk=off state=enable trust=off"
ip link set $PF vf $VF mac $DEFAULT_MAC spoofchk off state enable trust off
done
echo ""
done
```
Contributor guide
Assessment
This issue has not been assessed yet.