RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1918594 - [failover vf] In the vm, the failover vf and failover virtio nic with the same MAC address have different valid IP addresses
Summary: [failover vf] In the vm, the failover vf and failover virtio nic with the sam...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: virtio-win
Version: 8.4
Hardware: x86_64
OS: Windows
medium
medium
Target Milestone: beta
: 8.5
Assignee: ybendito
QA Contact: Yanhui Ma
URL:
Whiteboard:
Depends On:
Blocks: 1950227
TreeView+ depends on / blocked
 
Reported: 2021-01-21 07:29 UTC by Yanghang Liu
Modified: 2022-05-25 03:20 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-11-16 10:00:03 UTC
Type: ---
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
82599ES DHCP LOG (67.16 KB, text/plain)
2021-01-28 14:21 UTC, Yanghang Liu
no flags Details
BCM57810 DHCP LOG (62.07 KB, text/plain)
2021-01-28 14:26 UTC, Yanghang Liu
no flags Details

Description Yanghang Liu 2021-01-21 07:29:49 UTC
Description of problem:
In the vm, the failover vf and failover virtio nic with the same MAC address have different valid IP addresses.

Version-Release number of selected component (if applicable):
host:
qemu-kvm-5.2.0-3.module+el8.4.0+9499+42e58f08.x86_64
4.18.0-275.el8.dt5.x86_64
guest:
en_windows_10_business_editions_version_2004_updated_may_2020_x64_dvd_aa8db2cc.iso 
virtio-win-prewhql-0.1-193

How reproducible:
< 30% 

Steps to Reproduce:
1. create a bridge named private_switch on the host
# nmcli connection add type ethernet ifname enp4s0f0 con-name enp4s0f0
# nmcli connection add type bridge ifname private_switch con-name private_switch stp no 
# nmcli connection modify "enp4s0f0" master private_switch

# ifconfig
...
private_switch: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.1  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::f33:5101:25d7:4e87  prefixlen 64  scopeid 0x20<link>
        inet6 2001::2bc9:cea7:8133:b322  prefixlen 64  scopeid 0x0<global>
        ether 3c:fd:fe:15:90:a8  txqueuelen 1000  (Ethernet)
        RX packets 1037  bytes 120058 (117.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 90  bytes 11369 (11.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

# lshw -c network -businfo
Bus info          Device      Class          Description
========================================================
pci@0000:04:00.0  enp4s0f0    network        Ethernet Controller XL710 for 40GbE QSFP+
pci@0000:04:00.1  enp4s0f1    network        Ethernet Controller XL710 for 40GbE QSFP+

2. create a VF
# echo 1 > /sys/bus/pci/devices/0000\:04\:00.0/sriov_numvfs

3. install and import a win10 domain
virt-install --machine=q35 --noreboot --name=win10 --memory=4096 --vcpus=4 --graphics type=vnc,port=5910,listen=0.0.0.0 --import --noautoconsole --disk path=/home/images/win10.qcow2,bus=virtio,cache=none,format=qcow2,io=threads,size=20

4. add the failover vf xml and virtio net device xml in this win10 domain xml and then start the domain 

device xml:
  <interface type='bridge'>
      <mac address='f4:8e:38:c3:84:84'/>
      <source bridge='private_switch'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <teaming type='persistent'/>
      <alias name='net0'/>
    </interface>
    <interface type='hostdev' managed='yes'>
      <mac address='f4:8e:38:c3:84:84'/>
      <driver name='vfio'/>
      <source>
        <address type='pci' domain='0x0000' bus='0x04' slot='0x02' function='0x0'/>
      </source>
      <teaming type='transient' persistent='net0'/>
      <alias name='hostdev0'/>
    </interface>

device qemu cmd line:
-netdev tap,fd=39,id=hostnet0,vhost=on,vhostfd=40 \
-device virtio-net-pci,failover=on,netdev=hostnet0,id=net0,mac=f4:8e:38:c3:84:84,bus=pci.1,addr=0x0 \
-device vfio-pci,host=0000:04:02.0,id=hostdev0,bus=pci.4,addr=0x0,failover_pair_id=net0 \


5. check the ip address of the failover virtio nic and the failover nic in the domain

C:\Windows\system32>ipconfig /all
...
Ethernet adapter Ethernet 8:

   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Intel(R) Ethernet Virtual Function 700 Series
   Physical Address. . . . . . . . . : F4-8E-38-C3-84-84
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2001::bd8c:42e1:ff38:6b20(Preferred) 
   Temporary IPv6 Address. . . . . . : 2001::91d1:be83:99cc:c158(Preferred) 
   Link-local IPv6 Address . . . . . : fe80::bd8c:42e1:ff38:6b20%13(Preferred) 
   IPv4 Address. . . . . . . . . . . : 192.168.200.230(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Thursday, January 21, 2021 4:53:14 AM
   Lease Expires . . . . . . . . . . : Friday, January 22, 2021 4:53:14 AM
   Default Gateway . . . . . . . . . : fe80::b2f9:63ff:feb8:6d37%13
                                       192.168.200.254
   DHCP Server . . . . . . . . . . . : 192.168.200.254
   DHCPv6 IAID . . . . . . . . . . . : 284462648
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-27-95-FB-F3-9A-7F-BD-26-D1-60
   DNS Servers . . . . . . . . . . . : 192.168.200.253
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Ethernet 7:

   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter #4
   Physical Address. . . . . . . . . : F4-8E-38-C3-84-84
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2001::946b:a7d9:978a:c1c1(Preferred) 
   Temporary IPv6 Address. . . . . . : 2001::5c40:83d1:aa2b:3f38(Preferred) 
   Link-local IPv6 Address . . . . . : fe80::946b:a7d9:978a:c1c1%11(Preferred) 
   IPv4 Address. . . . . . . . . . . : 192.168.200.231(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Thursday, January 21, 2021 4:54:21 AM
   Lease Expires . . . . . . . . . . : Friday, January 22, 2021 4:54:21 AM
   Default Gateway . . . . . . . . . : fe80::b2f9:63ff:feb8:6d37%11
                                       192.168.200.254
   DHCP Server . . . . . . . . . . . : 192.168.200.254
   DHCPv6 IAID . . . . . . . . . . . : 217353784
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-27-95-FB-F3-9A-7F-BD-26-D1-60
   DNS Servers . . . . . . . . . . . : 192.168.200.253
   NetBIOS over Tcpip. . . . . . . . : Enabled


6.Download the virtio-win-prewhql package in the Win10 vm and install the VIOPROT protocol

# cd virtio-win-prewhql-0.1.193\Win10\amd64  
# netcfg -v -l vioprot.inf -c p -i VIOPROT


7. check the network status in the vm
# ipconfig -all

Ethernet adapter Ethernet 7:

   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter #4
   Physical Address. . . . . . . . . : F4-8E-38-C3-84-84
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2001::946b:a7d9:978a:c1c1(Preferred) 
   Temporary IPv6 Address. . . . . . : 2001::9577:189f:bba7:cc54(Preferred) 
   Link-local IPv6 Address . . . . . : fe80::946b:a7d9:978a:c1c1%11(Preferred) 
   IPv4 Address. . . . . . . . . . . : 192.168.200.235(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Thursday, January 21, 2021 6:58:42 AM
   Lease Expires . . . . . . . . . . : Friday, January 22, 2021 6:58:42 AM
   Default Gateway . . . . . . . . . : fe80::b2f9:63ff:feb8:6d37%11
                                       192.168.200.254
   DHCP Server . . . . . . . . . . . : 192.168.200.254
   DHCPv6 IAID . . . . . . . . . . . : 217353784
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-27-95-FB-F3-9A-7F-BD-26-D1-60
   DNS Servers . . . . . . . . . . . : 192.168.200.253
   NetBIOS over Tcpip. . . . . . . . : Enabled


ping the ip address of the swich on the host successfully
ping the ip address of other host which is in the same network successfully

Actual results:
the failover vf and failover virtio nic with the same MAC address have different valid IP addresses

Expected results:
After starting the Win10 vm, the failover vf should have the IP address 169.254.x.x and the failover virtio nic should have the valid IP address.


Additional info:
(1) both linux vm and windows vm has this problem sometimes.
(2) Download the driver of VF in Win10 vm from https://downloadcenter.intel.com/download/22283
(3) I think it may be due to this reason:
the failover VF is started before the failvoer virtio nic during the startup process of the vm.

Comment 1 ybendito 2021-01-26 16:14:02 UTC
(In reply to Yanghang Liu from comment #0)
>(1) both linux vm and windows vm has this problem sometimes
How Linux can have this problem? The virtio-net on Linux should immediately switch to failover mode when both VF and virtio-net come with failover=on, correct?

> (3) I think it may be due to this reason:
> the failover VF is started before the failvoer virtio nic during the startup
> process of the vm.
No, at least on Windows this does not present a problem. The VF can start before or after. If the virtio-net does not have an IP address, this is normal situation and it will be addressed soon by https://bugzilla.redhat.com/show_bug.cgi?id=1912088.
Q1: Does this problem (both adapter has IP address) happen only with this specific SRIOV card or it happens with other Intel cards or with cards from other vendors?

Q2: Can the problem be reproduces simply with several reboots (without installing the protocol at all)?
If yes, please take a log of Windows DHCP as following:
1. enable DHCP logging: wevtutil sl Microsoft-Windows-Dhcp-Client/Operational /e:true
2. clear DHCP log: wevtutil cl Microsoft-Windows-Dhcp-Client/Operational
3. reboot
4. check whether adapters have IP addresses, like ipconfig | findstr -i ipv4
5. If the problem happened, dump dhcp events: wevtutil qe Microsoft-Windows-Dhcp-Client/Operational /f:text > dhcplog.txt
Then attach the dhcplog.txt

Q3: Where the DHCP server 192.168.200.254 is running in this case?
Q4: Where the SRIOV adapter is connected to? As I understand you do not have 40Gb switch, correct?

Comment 2 Yanghang Liu 2021-01-28 14:20:33 UTC
(In reply to ybendito from comment #1)

Hi Yuri,

> Q1: Does this problem (both adapter has IP address) happen only with this specific SRIOV card or it happens with other Intel cards or with cards from other vendors?

According to my current test results,  BCM57810(bnx2x),82599ES(ixgbe) can reproduce this problem as well.


> Q2: Can the problem be reproduces simply with several reboots (without installing the protocol at all)?
> If yes, please take a log of Windows DHCP as following:
> 1. enable DHCP logging: wevtutil sl Microsoft-Windows-Dhcp-Client/Operational /e:true
> 2. clear DHCP log: wevtutil cl Microsoft-Windows-Dhcp-Client/Operational
> 3. reboot
> 4. check whether adapters have IP addresses, like ipconfig | findstr -i ipv4
> 5. If the problem happened, dump dhcp events: wevtutil qe Microsoft-Windows-Dhcp-Client/Operational /f:text > dhcplog.txt
> Then attach the dhcplog.txt

Yes, I can reproduce this problem after several reboots.

In the beginning, the VF has the IP address 169.254.x.x and virtio nic has an valid IP address
After rebooting the vm a few more times, the VF and the virtio nic has an different valid IP address.

The dhcplog.txt is in the attachment.


> Q3: Where the DHCP server 192.168.200.254 is running in this case?
> Q4: Where the SRIOV adapter is connected to? 
> As I understand you do not have 40Gb switch, correct?

I have configured a DHCP service on our private switch(sw-h3c-s6300) whose ip address is 10.73.64.10

The XL710 is connected to this private switch and can get an IP address of 192.168.X.X

I feel that this problem has nothing to do with the private switch HW env.

Because 82599ES and BCM57810 can also reproduce this problem, and these two nics are connected to our public switch, and can get the IP address of 10.33.X.X.

Comment 3 Yanghang Liu 2021-01-28 14:21:56 UTC
Created attachment 1751692 [details]
82599ES DHCP LOG

Comment 4 Yanghang Liu 2021-01-28 14:26:08 UTC
Created attachment 1751707 [details]
BCM57810 DHCP LOG

Comment 5 Yanghang Liu 2021-03-15 09:56:54 UTC
> (1) both linux vm and windows vm has this problem sometimes

I can use the RHEL84 vm to reproduce this problem:


Test env:
host:
4.18.0-295.el8.x86_64
qemu-kvm-5.2.0-11.module+el8.4.0+10268+62bcbbed.x86_64
guest:
4.18.0-296.el8.x86_64



Test step:
(1) start a RHEL84 vm with a failover virtio net device

the domain xml:

    <interface type='bridge'>
      <mac address='52:54:00:aa:1c:ef'/>
      <source network='private-failover-bridge' portid='edaac19d-c908-44d8-9b66-c8ffbf311555' bridge='private_br0'/>
      <target dev='vnet4'/>
      <model type='virtio'/>
      <teaming type='persistent'/>
      <alias name='ua-test'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>



qemu cmd line:
-netdev tap,fd=39,id=hostua-test,vhost=on,vhostfd=40 \
-device virtio-net-pci,failover=on,netdev=hostua-test,id=ua-test,mac=52:54:00:aa:1c:ef,bus=pci.1,addr=0x0 \



(2) hot-plug a failover vf into the RHEL84 vm

the domain xml:

  <interface type='hostdev' managed='yes'>
      <mac address='52:54:00:aa:1c:ef'/>
      <driver name='vfio'/>
      <source>
        <address type='pci' domain='0x0000' bus='0x82' slot='0x02' function='0x0'/>
      </source>
      <teaming type='transient' persistent='ua-test'/>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </interface>


the qmp:
{"execute":"device_add","arguments":{"driver":"vfio-pci","host":"0000:82:02.0","id":"hostdev0","bus":"pci.7","addr":"0x0","failover_pair_id":"ua-test"},"id":"libvirt-385"}


(3) check the ip address of the failover vf and failover virtio net device in the vm

The failover vf and failover virtio nic with the same MAC address(52:54:00:aa:1c:ef) have different valid IP addresses


# ifconfig 
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  <---- the virtio net device 
        inet 192.168.200.97  netmask 255.255.255.0  broadcast 192.168.200.255    <--- the ip address of the failover vf is 192.168.200.97
        inet6 2001::d851:6ea5:7188:e22  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::6b98:4a67:ddc:66d  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:aa:1c:ef  txqueuelen 1000  (Ethernet)
        RX packets 79  bytes 9363 (9.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 129  bytes 10960 (10.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp1s0nsby: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.98  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::f306:608:a04f:fd6f  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:aa:1c:ef  txqueuelen 1000  (Ethernet)
        RX packets 75  bytes 8543 (8.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 96  bytes 8926 (8.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500   <--- the failover vf 
        inet 192.168.200.99  netmask 255.255.255.0  broadcast 192.168.200.255    <--- the ip address of the failover vf is 192.168.200.99
        inet6 fe80::74b9:202f:33a0:9148  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:aa:1c:ef  txqueuelen 1000  (Ethernet)
        RX packets 4  bytes 820 (820.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 33  bytes 2034 (1.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



Additional info:
(1) This BZ can also be reproduced by directly starting the vm with the failover vf and the failover virtio net device.

Comment 6 ybendito 2021-04-05 06:51:01 UTC
Potential fix was merged upstream https://github.com/virtio-win/kvm-guest-drivers-windows/pull/563

Comment 8 Yanghang Liu 2021-04-21 08:50:41 UTC
Test env:
  host:
    qemu-kvm-5.2.0-15.module+el8.4.0+10650+50781ca0.x86_64
    4.18.0-304.el8.x86_64
    virtio-win-prewhql-0.1-198
    82599ES VF driver:https://downloadcenter.intel.com/download/22283
  guest:
    Win10(20H2)
    Windows Server 2012R2


Test step:

(1) start a Win10(20H2) vm with a failover virtio net device and a failover 82599ES VF
The domain xml:
    <interface type='bridge'>
      <mac address='52:54:00:aa:1c:ef'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <teaming type='persistent'/>
      <alias name='ua-test'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <interface type='hostdev' managed='yes'>
      <mac address='52:54:00:aa:1c:ef'/>
      <driver name='vfio'/>
      <source>
        <address type='pci' domain='0x0000' bus='0x06' slot='0x10' function='0x0'/>
      </source>
      <teaming type='transient' persistent='ua-test'/>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </interface>

The qemu cmd line:
-netdev tap,fd=39,id=hostua-test,vhost=on,vhostfd=40
-device virtio-net-pci,failover=on,netdev=hostua-test,id=ua-test,mac=52:54:00:aa:1c:ef,bus=pci.1,addr=0x0 
-device vfio-pci,host=0000:06:10.0,id=hostdev0,bus=pci.4,addr=0x0,failover_pair_id=ua-test


(2)check the ip address of the failover virtio net device and the failover vf in the domain
C:\Windows\system32>ipconfig /all

Ethernet adapter Ethernet 2:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : lab.eng.pek2.redhat.com
   Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter #2  <--- the failover virtio net device does not have any ip address
   Physical Address. . . . . . . . . : 52-54-00-AA-1C-EF
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Ethernet adapter Ethernet 3:

   Connection-specific DNS Suffix  . : lab.eng.pek2.redhat.com
   Description . . . . . . . . . . . : Intel(R) 82599 Virtual Function
   Physical Address. . . . . . . . . : 52-54-00-AA-1C-EF
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2620:52:0:4920:31e7:e04:719f:2280(Preferred) 
   Temporary IPv6 Address. . . . . . : 2620:52:0:4920:550e:c5f5:c5ed:f9f7(Preferred) 
   Link-local IPv6 Address . . . . . : fe80::31e7:e04:719f:2280%5(Preferred) 
   IPv4 Address. . . . . . . . . . . : 10.73.33.134(Preferred)        <--- the failover vf has a valid ip address
   Subnet Mask . . . . . . . . . . . : 255.255.254.0
   Lease Obtained. . . . . . . . . . : Wednesday, April 21, 2021 8:04:11 AM
   Lease Expires . . . . . . . . . . : Wednesday, April 21, 2021 8:04:11 PM
   Default Gateway . . . . . . . . . : fe80::46f4:77ff:feb7:6bc1%5
                                       10.73.33.254
   DHCP Server . . . . . . . . . . . : 10.73.2.108
   DHCPv6 IAID . . . . . . . . . . . : 189944832
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-28-11-76-89-9A-79-17-6D-EA-E6
   DNS Servers . . . . . . . . . . . : 10.73.2.107
                                       10.73.2.108
                                       10.66.127.10
   NetBIOS over Tcpip. . . . . . . . : Enabled

Comment 9 Yanghang Liu 2021-04-21 09:25:01 UTC
Hi Yuri,

Could you please help check my test result in the comment 8 ?  Is it expected or not ?

If you need QE to do more tests to verify this bug, please feel free to let me know.

BTW, could we move this bug to virtio-win based on the comments 6 and comment 7
Comment 10 ybendito 2021-04-22 06:44:11 UTC
I'd like to have more confidence that the problem was fixed:
Can you please confirm that on the same pre-197 build reproduces the problem when build 197 does not?

Comment 11 Yanghang Liu 2021-04-23 08:07:22 UTC
This problem can still be reproduced in the virtio-win-prewhql-0.1-196.


Test env:
  host:
    qemu-kvm-5.2.0-15.module+el8.4.0+10650+50781ca0.x86_64
    4.18.0-304.el8.x86_64
    virtio-win-prewhql-0.1-196
    82599ES VF driver:https://downloadcenter.intel.com/download/22283
  guest:
    Win10(20H2)


The process of reproducing the bug:

(1) Start a Win10(20H2) vm with a failover virtio net device and a failover 82599ES VF
The domain xml:
    <interface type='bridge'>
      <mac address='52:54:00:aa:1c:ef'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <teaming type='persistent'/>
      <alias name='ua-test'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <interface type='hostdev' managed='yes'>
      <mac address='52:54:00:aa:1c:ef'/>
      <driver name='vfio'/>
      <source>
        <address type='pci' domain='0x0000' bus='0x06' slot='0x10' function='0x0'/>
      </source>
      <teaming type='transient' persistent='ua-test'/>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </interface>

The qemu cmd line:
-netdev tap,fd=39,id=hostua-test,vhost=on,vhostfd=40
-device virtio-net-pci,failover=on,netdev=hostua-test,id=ua-test,mac=52:54:00:aa:1c:ef,bus=pci.1,addr=0x0 
-device vfio-pci,host=0000:06:10.0,id=hostdev0,bus=pci.4,addr=0x0,failover_pair_id=ua-test

(2) Shut down/restart the vm, then check the ip address of the failover virtio net device and the failover vf in the vm

It may have to restart/shut down the win10(20H2) vm multiple times because this bug cannot be reproduced every time,
I observed the following results after restarting the vm three times.

C:\Windows\system32>ipconfig -all

Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . : lab.eng.pek2.redhat.com
   Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter #2
   Physical Address. . . . . . . . . : 52-54-00-AA-1C-EF
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2620:52:0:4920:95c6:8c65:efcd:9620(Preferred) 
   Temporary IPv6 Address. . . . . . : 2620:52:0:4920:41f1:3b38:7adb:9c29(Preferred) 
   Link-local IPv6 Address . . . . . : fe80::95c6:8c65:efcd:9620%8(Preferred) 
   IPv4 Address. . . . . . . . . . . : 10.73.33.136(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.254.0
   Lease Obtained. . . . . . . . . . : Friday, April 23, 2021 3:44:42 AM
   Lease Expires . . . . . . . . . . : Friday, April 23, 2021 3:44:41 PM
   Default Gateway . . . . . . . . . : fe80::46f4:77ff:feb7:6bc1%8
                                       10.73.33.254
   DHCP Server . . . . . . . . . . . : 10.73.2.108
   DHCPv6 IAID . . . . . . . . . . . : 133467704
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-28-10-72-28-9A-6C-17-2C-33-3C
   DNS Servers . . . . . . . . . . . : 10.73.2.107
                                       10.73.2.108
                                       10.66.127.10
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Ethernet 3:

   Connection-specific DNS Suffix  . : lab.eng.pek2.redhat.com
   Description . . . . . . . . . . . : Intel(R) 82599 Virtual Function
   Physical Address. . . . . . . . . : 52-54-00-AA-1C-EF
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2620:52:0:4920:20f4:1fa:36a2:8658(Preferred) 
   Temporary IPv6 Address. . . . . . : 2620:52:0:4920:44cd:556f:6fe7:ae20(Preferred) 
   Link-local IPv6 Address . . . . . : fe80::20f4:1fa:36a2:8658%5(Preferred) 
   IPv4 Address. . . . . . . . . . . : 10.73.33.134(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.254.0
   Lease Obtained. . . . . . . . . . : Friday, April 23, 2021 3:45:06 AM
   Lease Expires . . . . . . . . . . : Friday, April 23, 2021 3:38:02 PM
   Default Gateway . . . . . . . . . : fe80::46f4:77ff:feb7:6bc1%5
                                       10.73.33.254
   DHCP Server . . . . . . . . . . . : 10.73.2.108
   DHCPv6 IAID . . . . . . . . . . . : 139613184
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-28-10-72-28-9A-6C-17-2C-33-3C
   DNS Servers . . . . . . . . . . . : 10.73.2.107
                                       10.73.2.108
                                       10.66.127.10
   NetBIOS over Tcpip. . . . . . . . : Enabled

Comment 12 Yanghang Liu 2021-04-23 10:24:36 UTC
Test Result Summary:

(1)Test scenarios 1 : win10(20H2) vm + virtio-win-prewhql-0.1-196

The failover VF and failover virtio nic(with the same MAC address as failover VF) have different valid IP addresses in the vm

(2)Test scenarios 2 : win10(20H2) vm + virtio-win-prewhql-0.1-198

The failover VF has a valid ip address while the failover virtio nic(with the same MAC address as failover VF) does not have any ip address.


Hi Yuri,

Is the test result acceptable to you ? Could QE verify this bug based on this test result ?

If you have any other concerns, please feel free to let me know.

Thanks for your help.

Comment 13 ybendito 2021-04-24 05:17:45 UTC
(In reply to Yanghang Liu from comment #12)
> Test Result Summary:
> 
Thank you, this looks ok for me also.

Comment 14 Yanghang Liu 2021-04-25 07:28:26 UTC
Hi, Yuri,

Could you please help move the component of this bug from qemu-kvm to virtio-win, because this bug is fixed in the virtio-win-prewhql-0.1-197 ?

I will directly verify this bug after this bug is in the correct component.

Comment 15 Yanghang Liu 2021-04-26 01:35:58 UTC
According to comment 8, comment 11 and comment 12, move this bug status to VERIFIED.


Note You need to log in before you can comment on or make changes to this bug.