libxl: support openvswitch interfaces
libxl: support openvswitch interfaces

It is currently possible to use <interface>s of type openvswitch
with the libxl driver in a non-standard way, e.g.

  <interface type='bridge'>
    <source bridge='ovsbr0'/>
    <mac address='00:16:3e:7a:35:ce'/>
    <script path='vif-openvswitch'/>
  </interface>

This patch adds support for openvswitch <interface>s specified
in typical libvirt config

  <interface type='bridge'>
    <source bridge='ovsbr0'/>
    <mac address='00:16:3e:7a:35:ce'/>
    <virtualport type='openvswitch'/>
  </interface>

VLAN tags and trunking are also supported using the extended
syntax for specifying an openvswitch bridge in libxl

   BRIDGE_NAME[.VLAN][:TRUNK:TRUNK]

See Xen's networking wiki for more details on openvswitch support

https://wiki.xenproject.org/wiki/Xen_Networking#Open_vSwitch

Signed-off-by: Jim Fehlig <39929b5b86d72d51fceac59b52303e3fe8a3083e@suse.com>
ACKed-by: Michal Privoznik <83d82aaba2eed257f4814b0c239c260c4caaadf0@redhat.com>

eskultety/libvirt,eskultety/libvirt,andreabolognani/libvirt,jfehlig/libvirt,nertpinx/libvirt,fabianfreyer/libvirt,libvirt/libvirt,fabianfreyer/libvirt,fabianfreyer/libvirt,jardasgit/libvirt,zippy2/libvirt,nertpinx/libvirt,eskultety/libvirt,zippy2/libvirt,andreabolognani/libvirt,crobinso/libvirt,nertpinx/libvirt,jardasgit/libvirt,libvirt/libvirt,jardasgit/libvirt,fabianfreyer/libvirt,nertpinx/libvirt,andreabolognani/libvirt,jardasgit/libvirt,zippy2/libvirt,zippy2/libvirt,eskultety/libvirt,fabianfreyer/libvirt,olafhering/libvirt,libvirt/libvirt,olafhering/libvirt,andreabolognani/libvirt,olafhering/libvirt,andreabolognani/libvirt,libvirt/libvirt,crobinso/libvirt,jfehlig/libvirt,jardasgit/libvirt,crobinso/libvirt,crobinso/libvirt,olafhering/libvirt,jfehlig/libvirt,eskultety/libvirt,nertpinx/libvirt,jfehlig/libvirt