[Libvir] Inconsistent networking between Xen & QEMU

Daniel P. Berrange berrange at redhat.com
Fri Mar 9 03:03:25 UTC 2007

In Xen it is possible to configure a VIF to enslave with an arbitrary
bridge device using a fragment of XML like:

    <interface type='bridge'>
      <source bridge='xenbr0'/>
      <mac address='00:16:3E:66:94:9C'/>

In this example I've enslaved to xenbr0 which is created by the Xen networking
script, but this will work with any bridge device really.

In QEMU the only bridging is available via the 'virtual networks' support
in libvirt, by referencing a named bridge. For example

    <interface type='network'>
      <source network='default'/>
      <mac address='00:16:3E:66:94:9C'/>

Now 'default' is merely defined to be backed by a bridge device 'virbr0' 
(although it does not neccessary get backed by a bridge) so the basic 
impl is basically just enslaving a TAP device.

Anyway, we now have two different syntaxes in the XML for defining what
is more or less the same thing which is a real PITA for the tools. It
is useful to have the distinct representations - one is for 'managed'
bridges, and the other is for 'unmanaged' bridges - we can do some much
more interesting things with managed bridges.  

To improve life for the tools though I'd like to do two things as a high

  - Support managed networks in Xen - we can simply lookup the bridge
    device associated with a network and tell Xen to use vif-bridge with
    this device. For the reverse Xen will tell us what bridge device a
    guest is using, and we can reverse lookup the corresponding network
  - Support non-managed networks in QEMU - we can simply enslave the
    QEMU tap device to an arbitrary user specific bridge device.

Until one of these two options is done, its going to be a PITA to support
networking across QEMU & Xen in virt-manager/virt-install.

|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

More information about the libvir-list mailing list