[virt-tools-list] [RFC 1 of2] adding 802.1Qbg VSI type support to virtinst and virtmanager

Gerhard Stenzel gstenzel at linux.vnet.ibm.com
Tue Mar 1 13:19:28 UTC 2011


Hi, 
"direct" virtual network interfaces can have additional
information like 802.1Qbg VSI type information. This information
is currently ignored in virt-manager and virt-inst.

This is RFC and comments are appreciated ....

A related patch for virt-manager will follow shortly.


The following patch adds support for VSI type XML elements
to virt-inst, so the respective value can be viewed and edited 
via virt-manager

Signed-off-by: Gerhard Stenzel <gerhard.stenzel at de.ibm.com>

diff -r 1f94ed6c4fc8 man/en/virt-install.1
--- a/man/en/virt-install.1	Fri Feb 11 10:24:07 2011 -0500
+++ b/man/en/virt-install.1	Tue Mar 01 10:19:42 2011 +0100
@@ -124,7 +124,7 @@
 .\"
========================================================================
 .\"
 .IX Title "VIRT-INSTALL 1"
-.TH VIRT-INSTALL 1 "2011-01-14" "" "Virtual Machine Install Tools"
+.TH VIRT-INSTALL 1 "2011-02-16" "" "Virtual Machine Install Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it
makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -r 1f94ed6c4fc8 tests/xmlparse-xml/change-nics-in.xml
--- a/tests/xmlparse-xml/change-nics-in.xml	Fri Feb 11 10:24:07 2011
-0500
+++ b/tests/xmlparse-xml/change-nics-in.xml	Tue Mar 01 10:19:42 2011
+0100
@@ -36,6 +36,14 @@
       <script path="/etc/qemu-ifup"/>
       <target dev="nic02"/>
     </interface>
+    <interface type="direct">
+      <mac address="00:11:22:33:44:55"/>
+      <source dev="eth0.1" mode="vepa"/>
+      <virtualport type="802.1Qbg">
+        <parameters managerid="12" typeid="1193046" typeidversion="1"
instanceid="09b11c53-8b5c-4eeb-8f00-d84eaa0aaa3b"/>
+      </virtualport>
+      <address type="pci" domain="0x0000" bus="0x00" slot="0x07"
function="0x0"/>
+    </interface>
     <input type="mouse" bus="ps2"/>
     <graphics type="sdl" display=":3.4" xauth="/tmp/.Xauthority"/>
     <console type="pty"/>
diff -r 1f94ed6c4fc8 tests/xmlparse-xml/change-nics-out.xml
--- a/tests/xmlparse-xml/change-nics-out.xml	Fri Feb 11 10:24:07 2011
-0500
+++ b/tests/xmlparse-xml/change-nics-out.xml	Tue Mar 01 10:19:42 2011
+0100
@@ -38,6 +38,14 @@
       <source dev="eth1"/>
       <script path="/etc/qemu-ifup"/>
     </interface>
+    <interface type="direct">
+      <mac address="00:11:22:33:44:55"/>
+      <source dev="eth0.1" mode="vepa"/>
+      <virtualport type="802.1Qbg">
+        <parameters managerid="12" typeid="1193046" typeidversion="1"
instanceid="09b11c53-8b5c-4eeb-8f00-d84eaa0aaa3b"/>
+      </virtualport>
+      <address type="pci" domain="0x0000" bus="0x00" slot="0x07"
function="0x0"/>
+    </interface>
     <input type="mouse" bus="ps2"/>
     <graphics type="sdl" display=":3.4" xauth="/tmp/.Xauthority"/>
     <console type="pty"/>
diff -r 1f94ed6c4fc8 tests/xmlparse.py
--- a/tests/xmlparse.py	Fri Feb 11 10:24:07 2011 -0500
+++ b/tests/xmlparse.py	Tue Mar 01 10:19:42 2011 +0100
@@ -352,6 +352,7 @@
         dev2 = guest.get_devices("interface")[1]
         dev3 = guest.get_devices("interface")[2]
         dev4 = guest.get_devices("interface")[3]
+        dev5 = guest.get_devices("interface")[4]
 
         check = self._make_checker(dev1)
         check("type", "user")
@@ -385,6 +386,13 @@
 
         self._alter_compare(guest.get_config_xml(), outfile)
 
+        check = self._make_checker(dev5)
+        check("type", "direct")
+        check("source_dev", "eth0.1", "eth1.1")
+        self.assertEquals(dev5.get_source(), "eth1.1")
+
+        self._alter_compare(guest.get_config_xml(), outfile)
+
     def testAlterInputs(self):
         infile  = "tests/xmlparse-xml/change-inputs-in.xml"
         outfile = "tests/xmlparse-xml/change-inputs-out.xml"
diff -r 1f94ed6c4fc8 virtinst/VirtualNetworkInterface.py
--- a/virtinst/VirtualNetworkInterface.py	Fri Feb 11 10:24:07 2011 -0500
+++ b/virtinst/VirtualNetworkInterface.py	Tue Mar 01 10:19:42 2011 +0100
@@ -83,6 +83,11 @@
         self._model = None
         self._target_dev = None
         self._source_dev = None
+        self._vsi_managerid = None
+        self._vsi_typeid = None
+        self._vsi_typeidversion = None
+        self._vsi_instanceid = None
+        self._virtualport_type = None
 
         # Generate _random_mac
         self._random_mac = None
@@ -209,6 +215,41 @@
     source_dev = _xml_property(get_source_dev, set_source_dev,
                                xpath="./source/@dev")
 
+    def get_virtualport_type(self):
+        return self._virtualport_type
+    def set_virtualport_type(self, val):
+        self._virtualport_type = val
+    virtualport_type = _xml_property(get_virtualport_type,
set_virtualport_type,
+                               xpath="./virtualport/@type")
+
+    def get_vsi_managerid(self):
+        return self._vsi_managerid
+    def set_vsi_managerid(self, val):
+        self._vsi_managerid = val
+    vsi_managerid = _xml_property(get_vsi_managerid, set_vsi_managerid,
+
xpath="./virtualport/parameters/@managerid")
+
+    def get_vsi_typeid(self):
+        return self._vsi_typeid
+    def set_vsi_typeid(self, val):
+        self._vsi_typeid = val
+    vsi_typeid = _xml_property(get_vsi_typeid, set_vsi_typeid,
+
xpath="./virtualport/parameters/@typeid")
+
+    def get_vsi_typeidversion(self):
+        return self._vsi_typeidversion
+    def set_vsi_typeidversion(self, val):
+        self._vsi_typeidversion = val
+    vsi_typeidversion = _xml_property(get_vsi_typeidversion,
set_vsi_typeidversion,
+
xpath="./virtualport/parameters/@typeidversion")
+
+    def get_vsi_instanceid(self):
+        return self._vsi_instanceid
+    def set_vsi_instanceid(self, val):
+        self._vsi_instanceid = val
+    vsi_instanceid = _xml_property(get_vsi_instanceid,
set_vsi_instanceid,
+
xpath="./virtualport/parameters/@instanceid")
+
     def is_conflict_net(self, conn, mac=None):
         """
         is_conflict_net: determines if mac conflicts with others in
system


-- 
Best regards, 

Gerhard Stenzel, 
-----------------------------------------------------------------------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294




More information about the virt-tools-list mailing list