File 047-virt-install-add-support-for-vDPA-network-device.patch of Package virt-manager

Subject: virt-install: add support for vDPA network device
From: Joren joren.regan@curtin.edu.au Tue Mar 18 17:09:29 2025 +0800
Date: Tue Mar 18 20:34:22 2025 +0100:
Git: e5142f28fe30f434bde2eb96afdc1de93a38f478


--- a/tests/data/cli/compare/virt-install-many-devices.xml
+++ b/tests/data/cli/compare/virt-install-many-devices.xml
@@ -618,6 +618,12 @@
       <model type="virtio"/>
       <address type="pci" domain="0" bus="0" slot="16" function="0"/>
     </interface>
+    <interface type="vdpa">
+      <source dev="/dev/vhost-vdpa-0"/>
+      <mac address="12:34:56:78:9a:bc"/>
+      <model type="virtio"/>
+      <driver page_per_vq="on" queues="16"/>
+    </interface>
     <interface type="user">
       <mac address="00:11:22:33:44:55"/>
       <model type="virtio"/>
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -655,6 +655,7 @@ source.reservations.managed=no,source.re
 --network type=direct,source=eth5,source_mode=vepa,source.mode=vepa,target=mytap12,virtualport_type=802.1Qbg,virtualport_managerid=12,virtualport_typeid=1193046,virtualport_typeidversion=1,virtualport_instanceid=09b11c53-8b5c-4eeb-8f00-d84eaa0aaa3b,boot_order=1,trustGuestRxFilters=yes,mtu.size=1500,virtualport.parameters.managerid=12,virtualport.parameters.typeid=1193046,virtualport.parameters.typeidversion=1,virtualport.parameters.instanceid=09b11c53-8b5c-4eeb-8f00-d84eaa0aaa3b,boot_order=1,trustGuestRxFilters=yes,mtu.size=1500
 --network user,model=virtio,address.type=spapr-vio,address.reg=0x500,link.state=no
 --network vhostuser,source_type=unix,source_path=/tmp/vhost1.sock,source_mode=server,model=virtio,source.type=unix,source.path=/tmp/vhost1.sock,address.type=pci,address.bus=0x00,address.slot=0x10,address.function=0x0,address.domain=0x0000
+--network type=vdpa,source=/dev/vhost-vdpa-0,mac=12:34:56:78:9a:bc,driver.queues=16,driver.page_per_vq=on
 --network user,address.type=ccw,address.cssid=0xfe,address.ssid=0,address.devno=01,boot.order=15,boot.loadparm=SYSTEM1
 --network model=vmxnet3
 --network backend.type=passt,backend.logFile=/tmp/foo.log,portForward0.proto=tcp,portForward0.address=192.168.10.10,portForward0.dev=eth0,portForward0.range0.start=4000,portForward0.range0.end=5000,portForward0.range0.to=10000,portForward0.range0.exclude=no,portForward0.range1.start=6000,portForward1.proto=tcp,portForward1.range0.start=2022,portForward1.range0.to=22
--- a/virtinst/devices/interface.py
+++ b/virtinst/devices/interface.py
@@ -181,6 +181,7 @@ class DeviceInterface(Device):
     TYPE_VHOSTUSER  = "vhostuser"
     TYPE_ETHERNET   = "ethernet"
     TYPE_DIRECT   = "direct"
+    TYPE_VDPA     = "vdpa"
 
     @staticmethod
     def generate_mac(conn):
@@ -242,7 +243,7 @@ class DeviceInterface(Device):
             return self.network
         if self.type == self.TYPE_BRIDGE:
             return self.bridge
-        if self.type == self.TYPE_DIRECT:
+        if self.type == self.TYPE_DIRECT or self.type == self.TYPE_VDPA:
             return self.source_dev
         return None
     def _set_source(self, newsource):
@@ -258,7 +259,7 @@ class DeviceInterface(Device):
             self.network = newsource
         elif self.type == self.TYPE_BRIDGE:
             self.bridge = newsource
-        elif self.type == self.TYPE_DIRECT:
+        elif self.type == self.TYPE_DIRECT or self.type == self.TYPE_VDPA:
             self.source_dev = newsource
     source = property(_get_source, _set_source)
 
openSUSE Build Service is sponsored by