[virt-tools-list] [virt-manager PATCH v2 1/2] network: add support for parsing/formatting SR-IOV VFs

Pavel Hrdina phrdina at redhat.com
Tue Oct 3 08:51:01 UTC 2017


From: Lin Ma <lma at suse.com>

Signed-off-by: Lin Ma <lma at suse.com>
Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---

Notes:
    Changes in v2:
        - domain, bus, slot and function are handled as numberes
        - renamed addresses to vfs

 tests/xmlparse-xml/network-vf-pool-in.xml  |  2 ++
 tests/xmlparse-xml/network-vf-pool-out.xml |  1 +
 tests/xmlparse.py                          | 11 ++++++++---
 virtinst/network.py                        | 10 ++++++++++
 4 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/tests/xmlparse-xml/network-vf-pool-in.xml b/tests/xmlparse-xml/network-vf-pool-in.xml
index 821aa075..542757de 100644
--- a/tests/xmlparse-xml/network-vf-pool-in.xml
+++ b/tests/xmlparse-xml/network-vf-pool-in.xml
@@ -1,5 +1,7 @@
 <network>
   <name>passthrough</name>
     <forward mode="hostdev" managed="yes">
+      <pf dev="eth3"/>
+      <address type="pci" domain="0x0000" bus="0x03" slot="0x10" function="0x0"/>
     </forward>
 </network>
diff --git a/tests/xmlparse-xml/network-vf-pool-out.xml b/tests/xmlparse-xml/network-vf-pool-out.xml
index 62a73050..83644118 100644
--- a/tests/xmlparse-xml/network-vf-pool-out.xml
+++ b/tests/xmlparse-xml/network-vf-pool-out.xml
@@ -2,5 +2,6 @@
   <name>new-foo</name>
     <forward mode="hostdev" managed="yes">
       <pf dev="eth3"/>
+      <address type="pci" domain="0x0000" bus="0x03" slot="0x10" function="0x0"/>
     </forward>
 </network>
diff --git a/tests/xmlparse.py b/tests/xmlparse.py
index cc29eadc..1cceebce 100644
--- a/tests/xmlparse.py
+++ b/tests/xmlparse.py
@@ -1332,11 +1332,16 @@ class XMLParseTest(unittest.TestCase):
         check("mode", "hostdev")
         check("managed", "yes")
 
-        r = net.forward.add_pf()
-        r.dev = "eth3"
-        check = self._make_checker(r)
+        check = self._make_checker(net.forward.pf[0])
         check("dev", "eth3")
 
+        check = self._make_checker(net.forward.vfs[0])
+        check("type", "pci")
+        check("domain", 0x0000)
+        check("bus", 0x03)
+        check("slot", 0x10)
+        check("function", 0x0)
+
         utils.diff_compare(net.get_xml_config(), outfile)
         utils.test_create(conn, net.get_xml_config(), "networkDefineXML")
 
diff --git a/virtinst/network.py b/virtinst/network.py
index 183b0e3a..1cc71118 100644
--- a/virtinst/network.py
+++ b/virtinst/network.py
@@ -77,6 +77,15 @@ class _NetworkForwardPf(XMLBuilder):
     dev = XMLProperty("./@dev")
 
 
+class _NetworkForwardAddress(XMLBuilder):
+    _XML_ROOT_NAME = "address"
+    type = XMLProperty("./@type")
+    domain = XMLProperty("./@domain", is_int=True)
+    bus = XMLProperty("./@bus", is_int=True)
+    slot = XMLProperty("./@slot", is_int=True)
+    function = XMLProperty("./@function", is_int=True)
+
+
 class _NetworkForward(XMLBuilder):
     _XML_ROOT_NAME = "forward"
 
@@ -84,6 +93,7 @@ class _NetworkForward(XMLBuilder):
     dev = XMLProperty("./@dev")
     managed = XMLProperty("./@managed")
     pf = XMLChildProperty(_NetworkForwardPf)
+    vfs = XMLChildProperty(_NetworkForwardAddress)
 
     def add_pf(self):
         r = _NetworkForwardPf(self.conn)
-- 
2.13.6




More information about the virt-tools-list mailing list