Bug 1969724

Summary: [failover_vf][windows_vm] start a vm only with a failover virtio net device, the failover virtio net device can not get valid ip address
Product: Red Hat Enterprise Linux 9 Reporter: Yanghang Liu <yanghliu>
Component: virtio-winAssignee: ybendito
virtio-win sub component: virtio-win-prewhql QA Contact: Yanhui Ma <yama>
Status: CLOSED CURRENTRELEASE Docs Contact: Jiri Herrmann <jherrman>
Severity: medium    
Priority: medium CC: chayang, jherrman, jinzhao, juzhang, pasik, qizhu, yalzhang, yama, ybendito, yvugenfi
Version: 9.0Keywords: Reopened, Triaged
Target Milestone: rc   
Target Release: 9.0   
Hardware: x86_64   
OS: Windows   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
.Failover virtio NICs are now correctly assigned an IP address on Windows virtual machines Previously, when starting a Windows virtual machine (VM) with only a failover virtio NIC, the VM failed to assign an IP address to the NIC. Consequently, the NIC was unable to set up a network connection. This problem has been fixed and VM NICs now set up network connections as expected in the described scenario.
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-10-08 06:52:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Yanghang Liu 2021-06-09 06:29:29 UTC
Description of problem:
start a Win10(21H1)vm only with failover virtio net device, the failover virtio net device can not get valid ip address


Version-Release number of selected component (if applicable):
host:
qemu-kvm-6.0.0-18.module+el8.5.0+11243+5269aaa1.x86_64
4.18.0-310.el8.x86_64
virtio-win-prewhql-0.1-201
libvirt-7.3.0-1.module+el8.5.0+11004+f4810536.x86_64

guest:
Win10(21H1)

How reproducible:
100%

Steps to Reproduce:
1. create bridge named br0 based on the PF
nmcli connection add type bridge ifname br0 con-name br0 stp off autoconnect yes
nmcli connection add type bridge-slave ifname "$MAIN_CONN" con-name "$MAIN_CONN" master br0 autoconnect yes
systemctl restart NetworkManager


# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.200.10  netmask 255.255.255.0  broadcast 192.168.200.255
        inet6 fe80::5244:fdb2:fac8:220e  prefixlen 64  scopeid 0x20<link>
        inet6 2001::a524:dd3b:a8c:c425  prefixlen 64  scopeid 0x0<global>
        ether 3c:fd:fe:15:90:aa  txqueuelen 1000  (Ethernet)
        RX packets 2421  bytes 227840 (222.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 503  bytes 52801 (51.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


2. setup vm network 

# virsh net-dumpxml failover-bridge 
<network>
  <name>failover-bridge</name>
  <uuid>ddc85097-aad6-4f2c-b2d7-83f5bc88c884</uuid>
  <forward mode='bridge'/>
  <bridge name='br0'/>
</network>


3. start a win10(21H1) vm only with a failover virtio net device

   <interface type='network'>
      <mac address='52:54:00:aa:1c:ef'/>
      <source network='failover-bridge'/>
      <model type='virtio'/>
      <teaming type='persistent'/>
      <alias name='ua-test'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </interface>

the related qemu-kcm cmd line:
-device virtio-net-pci,failover=on,netdev=hostua-test,id=ua-test,mac=52:54:00:aa:1c:ef,bus=pci.4,addr=0x0 

4. install the VIOPROT protocol (Without this step, we can still get the same result as step 5)

C:\Windows\system32>cd \Users\Administrator\Desktop\virtio-win-prewhql-0.1-201\Win10\amd64\

C:\Users\Administrator\Desktop\virtio-win-prewhql-0.1-201\Win10\amd64>netcfg -v -l vioprot.inf -c p -i VIOPROT
Trying to install VIOPROT ...

... vioprot.inf was copied to C:\Windows\INF\oem12.inf.

... done.


5. check the network configuration in the Win10(21H1) vm

C:\Windows\system32>ipconfig -all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : DESKTOP-J8DPHA2
   Primary Dns Suffix  . . . . . . . : 
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Ethernet 8:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter #3
   Physical Address. . . . . . . . . : 52-54-00-AA-1C-EF
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes


Actual results:
the failover virtio net device can not any valid ip address (Media disconnected)

Expected results:
the failover virtio net device can get a valid ip address

Additional info:
(1) when start the RHEL8 vm only with failover virtio net device ,the failover virtio net devcie can get a valid ip address

(2) The same problem can also be reproduced in the following test scenarios:

2.1 start a Win10 vm with failover virtio net device and failover vf

2.2 install the VIOPROT protocol to bind the failover virtio net device and failover vf

2.3 hot-unplug the failover vf 

2.4 reboot the Win10 vm

The failover virtio net device could not get any valid ip address after rebooting the Win10 vm.

Comment 1 Yanghang Liu 2021-06-15 08:57:25 UTC
Related patches about this bug: https://github.com/virtio-win/kvm-guest-drivers-windows/pull/563

Comment 2 Yanghang Liu 2021-06-15 09:43:42 UTC
Hi Yuri,

Could you have a look at if this problem in the description is an expected result ?

The expected result I wanted to get is as follows:

    (1) When starting a Windows vm with a failover virtio net device and a failover vf:
        
        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.


    (2) When starting a Windows vm only with failover virtio net device:

        the failover virtio nic has a valid ip address   <--  The test result I actually got is different from the test result I expected to get here.
  


But from the test results I got in this bug, if there is no failover VF in the Windows vm , the failover virtio net device can never get any valid IP address.

> when start the RHEL8 vm only with failover virtio net device ,the failover virtio net devcie can get a valid ip address

Is this acceptable?



Thanks for your help in advance.

Comment 3 ybendito 2021-11-17 12:05:32 UTC
I think this is a bug. Can you please confirm that between steps 2.3 and 2.4 in the description (comment #0) the virtio-net is working?

Comment 4 Yanghang Liu 2021-11-22 02:35:17 UTC
Hi Yanhui,

Could you please help confirm with that ?

Comment 5 Yanhui Ma 2021-11-23 07:40:07 UTC
(In reply to ybendito from comment #3)
> I think this is a bug. Can you please confirm that between steps 2.3 and 2.4
> in the description (comment #0) the virtio-net is working?


Yes, the network works well between steps 2.3 and 2.4, there is a valid ip and guest can ping host.

Comment 6 Yanhui Ma 2022-04-12 09:56:51 UTC
Test win10 guest on rhel9.1 host, still can reproduce the issue.

rhel9.1
# rpm -q libvirt
libvirt-8.2.0-1.el9.x86_64
# rpm -q qemu-kvm
qemu-kvm-7.0.0-0.rc3.el9.wrb220406.x86_64
# uname -r
5.14.0-77.kpq0.el9_0.x86_64
network info:
XXV710

windows guest network driver:
100.90.104.215

Comment 13 Yanhui Ma 2023-07-27 10:11:52 UTC
Pre-verified the bug with following package versions, the failover virtio net device can get a valid ip address.

qemu-kvm-8.0.0-9.el9.x86_64
virtio-win driver:
100.93.104.23900


C:\Windows\system32>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : DESKTOP-V7UOJT7
   Primary Dns Suffix  . . . . . . . : 
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : lab.eng.pek2.redhat.com

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-01-16-16
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2620:52:0:49d2:740f:2a99:e966:18f5(Preferred) 
   Temporary IPv6 Address. . . . . . : 2620:52:0:49d2:4048:b1b0:97b9:44af(Preferred) 
   Link-local IPv6 Address . . . . . : fe80::740f:2a99:e966:18f5%10(Preferred) 
   IPv4 Address. . . . . . . . . . . : 10.73.211.168(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.254.0
   Lease Obtained. . . . . . . . . . : Thursday, July 27, 2023 10:00:29 AM
   Lease Expires . . . . . . . . . . : Thursday, July 27, 2023 10:00:29 PM
   Default Gateway . . . . . . . . . : fe80::52c7:903:533b:88e1%10
                                       10.73.211.254
   DHCP Server . . . . . . . . . . . : 10.73.2.108
   DHCPv6 IAID . . . . . . . . . . . : 122835968
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2C-53-EE-76-9A-E9-2D-4B-32-11
   DNS Servers . . . . . . . . . . . : 10.72.17.5
                                       10.68.5.26
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Ethernet 3:

   Connection-specific DNS Suffix  . : 
   Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter #3
   Physical Address. . . . . . . . . : 52-54-00-AA-1C-EF
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::a8c4:9af7:a210:e506%8(Preferred) 
   IPv4 Address. . . . . . . . . . . : 192.168.53.200(Preferred) 
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Thursday, July 27, 2023 10:00:32 AM
   Lease Expires . . . . . . . . . . : Thursday, July 27, 2023 10:10:32 AM
   Default Gateway . . . . . . . . . : 192.168.53.2
   DHCP Server . . . . . . . . . . . : 192.168.53.6
   DHCPv6 IAID . . . . . . . . . . . : 139613184
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2C-53-EE-76-9A-E9-2D-4B-32-11
   DNS Servers . . . . . . . . . . . : 192.168.53.2
   NetBIOS over Tcpip. . . . . . . . : Enabled

C:\Windows\system32>ping 192.168.53.6

Pinging 192.168.53.6 with 32 bytes of data:
Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
Reply from 192.168.53.6: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.53.6:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

C:\Windows\system32>

Comment 14 Yvugenfi@redhat.com 2023-07-27 10:14:04 UTC
(In reply to Yanhui Ma from comment #13)
> Pre-verified the bug with following package versions, the failover virtio
> net device can get a valid ip address.
> 
> qemu-kvm-8.0.0-9.el9.x86_64
> virtio-win driver:
> 100.93.104.23900
> 
> 
> C:\Windows\system32>ipconfig /all
> 
> Windows IP Configuration
> 
>    Host Name . . . . . . . . . . . . : DESKTOP-V7UOJT7
>    Primary Dns Suffix  . . . . . . . : 
>    Node Type . . . . . . . . . . . . : Hybrid
>    IP Routing Enabled. . . . . . . . : No
>    WINS Proxy Enabled. . . . . . . . : No
>    DNS Suffix Search List. . . . . . : lab.eng.pek2.redhat.com
> 
> 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-01-16-16
>    DHCP Enabled. . . . . . . . . . . : Yes
>    Autoconfiguration Enabled . . . . : Yes
>    IPv6 Address. . . . . . . . . . . :
> 2620:52:0:49d2:740f:2a99:e966:18f5(Preferred) 
>    Temporary IPv6 Address. . . . . . :
> 2620:52:0:49d2:4048:b1b0:97b9:44af(Preferred) 
>    Link-local IPv6 Address . . . . . :
> fe80::740f:2a99:e966:18f5%10(Preferred) 
>    IPv4 Address. . . . . . . . . . . : 10.73.211.168(Preferred) 
>    Subnet Mask . . . . . . . . . . . : 255.255.254.0
>    Lease Obtained. . . . . . . . . . : Thursday, July 27, 2023 10:00:29 AM
>    Lease Expires . . . . . . . . . . : Thursday, July 27, 2023 10:00:29 PM
>    Default Gateway . . . . . . . . . : fe80::52c7:903:533b:88e1%10
>                                        10.73.211.254
>    DHCP Server . . . . . . . . . . . : 10.73.2.108
>    DHCPv6 IAID . . . . . . . . . . . : 122835968
>    DHCPv6 Client DUID. . . . . . . . :
> 00-01-00-01-2C-53-EE-76-9A-E9-2D-4B-32-11
>    DNS Servers . . . . . . . . . . . : 10.72.17.5
>                                        10.68.5.26
>    NetBIOS over Tcpip. . . . . . . . : Enabled
> 
> Ethernet adapter Ethernet 3:
> 
>    Connection-specific DNS Suffix  . : 
>    Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter #3
>    Physical Address. . . . . . . . . : 52-54-00-AA-1C-EF
>    DHCP Enabled. . . . . . . . . . . : Yes
>    Autoconfiguration Enabled . . . . : Yes
>    Link-local IPv6 Address . . . . . :
> fe80::a8c4:9af7:a210:e506%8(Preferred) 
>    IPv4 Address. . . . . . . . . . . : 192.168.53.200(Preferred) 
>    Subnet Mask . . . . . . . . . . . : 255.255.255.0
>    Lease Obtained. . . . . . . . . . : Thursday, July 27, 2023 10:00:32 AM
>    Lease Expires . . . . . . . . . . : Thursday, July 27, 2023 10:10:32 AM
>    Default Gateway . . . . . . . . . : 192.168.53.2
>    DHCP Server . . . . . . . . . . . : 192.168.53.6
>    DHCPv6 IAID . . . . . . . . . . . : 139613184
>    DHCPv6 Client DUID. . . . . . . . :
> 00-01-00-01-2C-53-EE-76-9A-E9-2D-4B-32-11
>    DNS Servers . . . . . . . . . . . : 192.168.53.2
>    NetBIOS over Tcpip. . . . . . . . : Enabled
> 
> C:\Windows\system32>ping 192.168.53.6
> 
> Pinging 192.168.53.6 with 32 bytes of data:
> Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
> Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
> Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
> Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
> 
> Ping statistics for 192.168.53.6:
>     Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
> Approximate round trip times in milli-seconds:
>     Minimum = 0ms, Maximum = 0ms, Average = 0ms
> 
> C:\Windows\system32>

Please update appropriate Jira issue: https://issues.redhat.com/browse/RHELPLAN-82926

Comment 15 Yanhui Ma 2023-07-31 03:44:10 UTC
(In reply to Yvugenfi from comment #14)
> (In reply to Yanhui Ma from comment #13)
> > Pre-verified the bug with following package versions, the failover virtio
> > net device can get a valid ip address.
> > 
> > qemu-kvm-8.0.0-9.el9.x86_64
> > virtio-win driver:
> > 100.93.104.23900
> > 
> > 
> > C:\Windows\system32>ipconfig /all
> > 
> > Windows IP Configuration
> > 
> >    Host Name . . . . . . . . . . . . : DESKTOP-V7UOJT7
> >    Primary Dns Suffix  . . . . . . . : 
> >    Node Type . . . . . . . . . . . . : Hybrid
> >    IP Routing Enabled. . . . . . . . : No
> >    WINS Proxy Enabled. . . . . . . . : No
> >    DNS Suffix Search List. . . . . . : lab.eng.pek2.redhat.com
> > 
> > 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-01-16-16
> >    DHCP Enabled. . . . . . . . . . . : Yes
> >    Autoconfiguration Enabled . . . . : Yes
> >    IPv6 Address. . . . . . . . . . . :
> > 2620:52:0:49d2:740f:2a99:e966:18f5(Preferred) 
> >    Temporary IPv6 Address. . . . . . :
> > 2620:52:0:49d2:4048:b1b0:97b9:44af(Preferred) 
> >    Link-local IPv6 Address . . . . . :
> > fe80::740f:2a99:e966:18f5%10(Preferred) 
> >    IPv4 Address. . . . . . . . . . . : 10.73.211.168(Preferred) 
> >    Subnet Mask . . . . . . . . . . . : 255.255.254.0
> >    Lease Obtained. . . . . . . . . . : Thursday, July 27, 2023 10:00:29 AM
> >    Lease Expires . . . . . . . . . . : Thursday, July 27, 2023 10:00:29 PM
> >    Default Gateway . . . . . . . . . : fe80::52c7:903:533b:88e1%10
> >                                        10.73.211.254
> >    DHCP Server . . . . . . . . . . . : 10.73.2.108
> >    DHCPv6 IAID . . . . . . . . . . . : 122835968
> >    DHCPv6 Client DUID. . . . . . . . :
> > 00-01-00-01-2C-53-EE-76-9A-E9-2D-4B-32-11
> >    DNS Servers . . . . . . . . . . . : 10.72.17.5
> >                                        10.68.5.26
> >    NetBIOS over Tcpip. . . . . . . . : Enabled
> > 
> > Ethernet adapter Ethernet 3:
> > 
> >    Connection-specific DNS Suffix  . : 
> >    Description . . . . . . . . . . . : Red Hat VirtIO Ethernet Adapter #3
> >    Physical Address. . . . . . . . . : 52-54-00-AA-1C-EF
> >    DHCP Enabled. . . . . . . . . . . : Yes
> >    Autoconfiguration Enabled . . . . : Yes
> >    Link-local IPv6 Address . . . . . :
> > fe80::a8c4:9af7:a210:e506%8(Preferred) 
> >    IPv4 Address. . . . . . . . . . . : 192.168.53.200(Preferred) 
> >    Subnet Mask . . . . . . . . . . . : 255.255.255.0
> >    Lease Obtained. . . . . . . . . . : Thursday, July 27, 2023 10:00:32 AM
> >    Lease Expires . . . . . . . . . . : Thursday, July 27, 2023 10:10:32 AM
> >    Default Gateway . . . . . . . . . : 192.168.53.2
> >    DHCP Server . . . . . . . . . . . : 192.168.53.6
> >    DHCPv6 IAID . . . . . . . . . . . : 139613184
> >    DHCPv6 Client DUID. . . . . . . . :
> > 00-01-00-01-2C-53-EE-76-9A-E9-2D-4B-32-11
> >    DNS Servers . . . . . . . . . . . : 192.168.53.2
> >    NetBIOS over Tcpip. . . . . . . . : Enabled
> > 
> > C:\Windows\system32>ping 192.168.53.6
> > 
> > Pinging 192.168.53.6 with 32 bytes of data:
> > Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
> > Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
> > Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
> > Reply from 192.168.53.6: bytes=32 time<1ms TTL=64
> > 
> > Ping statistics for 192.168.53.6:
> >     Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
> > Approximate round trip times in milli-seconds:
> >     Minimum = 0ms, Maximum = 0ms, Average = 0ms
> > 
> > C:\Windows\system32>
> 
> Please update appropriate Jira issue:
> https://issues.redhat.com/browse/RHELPLAN-82926

Hi Yuri,

The RHELPLAN issue is mapped from bugzilla, so the comments in bugzilla have been synced in the issue.