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)