On 08/10/2012 03:59 PM, Dennis Jenkins wrote: > On Fri, Aug 10, 2012 at 10:21 AM, Kyle Mestery (kmestery) > <kmestery@xxxxxxxxx> wrote: >> Those cases both look good. I think the formatting works just fine for >> virtualport type=openvswitch as well, something like this: >> >> Single VLAN (no trunk): >> <interface type='bridge'> >> <mac address='52:54:00:30:23:a6'/> >> <source bridge='data-br'/> >> <vlan tag='70'/> >> <virtualport type='openvswitch'> >> <parameters interfaceid='cdbbbc31-b7fe-16ca-a715-cc7cc76e18b2'> >> </virtualport> >> <model type='virtio'/> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> >> </interface> >> >> Single VLAN (trunk): >> <interface type='bridge'> >> <mac address='52:54:00:30:23:a6'/> >> <source bridge='data-br'/> >> <vlan tag='70'/ trunk=yes> >> <virtualport type='openvswitch'> >> <parameters interfaceid='cdbbbc31-b7fe-16ca-a715-cc7cc76e18b2'> >> </virtualport> >> <model type='virtio'/> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> >> </interface> >> >> Multiple VLANs (trunk): >> <interface type='bridge'> >> <mac address='52:54:00:30:23:a6'/> >> <source bridge='data-br'/> >> <vlan trunk='yes'> >> <tag id='70'> >> <tag id='71'> >> </vlan> >> <virtualport type='openvswitch'> >> <parameters interfaceid='cdbbbc31-b7fe-16ca-a715-cc7cc76e18b2'> >> </virtualport> >> <model type='virtio'/> >> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> >> </interface> >> > > I think that making "tag id=" an XML attribute in one case and an > element in another is problematic. May I suggest just using: > > <vlan [trunk='yes|no']> <!-- if unspecified, trunk defaults to 'no' --> > <tag id='nn'/> > [<tag id='nn'/> ...] > </vlan> Yeah, I think you're right. It's sad though that it makes the config longer even for the 99% of uses where people just want a single vlan tag (that's what blinded me). One last try before I give up: How about allowing multiple <vlan tag='n' [trunk='yes|no']/> at the toplevel? Then you could have: <vlan tag='42'/> in the simplest case, or: <vlan tag='42' trunk='yes'/> if you wanted a trunk with a single tag, or: <vlan tag='42'/> <vlan tag='43'/> <vlan tag='44'/> if you want a trunk with multiple tags (trunk='yes' would be implicit). For either of these cases, the data definition can remain the same (as long as we don't require that superfluous "trunk='yes|no'" attributes be preserved across an iteration of parse/format.) I got stuck with other stuff during the day, so I'll get back to this later tonight. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list