[Libvir] Virtual networking

Daniel P. Berrange berrange at redhat.com
Mon Jan 22 16:02:15 UTC 2007


On Mon, Jan 22, 2007 at 02:46:11PM +0000, Mark McLoughlin wrote:
> # Dan's patches
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemu-daemon.patch
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemu-driver.patch

I've been very lame in not sending an update to these patches. I've updated them
to support TLS, protocol versioning, fixed size types on the wire & network
byte ordering on the wire. Shouldn't be too difficult to resolve though since I
think it'll only really impact your libvirt-network-qemu-stubs.patch  file.

> #
> # Various fixes to Dan's patches
> #
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemu-no-c99.patch

Based on IRC discussions I think we want to avoid both -std=gnu99 & -std=c99 from
the compiler flags. And just use appropriate feature macros like -D_XOPEN_SOURCE,
-D_SVID_SOURCE=1 as neccessary. In particular I'd like to avoid GNU specific bits
so we don't make life hard for Solaris / BSD guys.

> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemu-no-kqemu.patch

Hmm, yeah I imagine the build patched that flag out because of its license issues.
I gues I'll have to make a 'configure' check to see if -no-kqemu is available on a
particular host or not.

> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemu-transient.patch

That should not be neccessary in my latest patches - I fixed up the transient
domain cleanup stuff in a slightly different way.

> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemu-error-overwrite.patch

Looks good.

> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemu-free-xpath-ctxt.patch

Already fixed in latest code.

> # Some re-factoring for later
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemud-refactor-exec.patch

Looks good, will merge that in my next QEMU patches.

> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-qemu-config-refactor.patch

Likewise, looks good.

> #
> # Misc libvirt fixes cleanups
> #
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-unused-driver-method.patch

Yep, we've lived with that baggage for too long

> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-rename-handle-to-id.patch

Seems reasonable.

On the note of cleanup - theres a bucket load of code in xml.c and xend_internal.c 
which is never called by anything which we should remove - it constantly confuses
me when i work on these two files to see all this code which turns out to be unused.

> # Add the basic networking API and
> # driver methods to support it
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-network-api.patch

Looks sane in principle. Not reviewed the code in detail yet.

> # Add network support to virError
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-network-error.patch

This one is troublesome because of the ABI issue. It'll cause issues with the
virResetError, virCopyLastError, virConnCopyLastError functions, if the caller
passes in an object they allocated themselves. 

The only way it would not be a problem is if we can ensure that virNetworkErr
never gets set unless the caller has called one of the virNetworkXXX functions,
because by calling those we can know for sure they've been compiled against a
recent set of headers. It'd be a nasty hack though.

> # Add net-* commands to virsh
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-network-virsh.patch

Looks sane in principle. Not reviewed the code in detail yet.

> #
> # Hook up to qemud
> #
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-network-qemu-stubs.patch

Code looks sane, but will need a fixup to use fixed size types & network byte order.

> # Implement config parsing etc.
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-network-config.patch
> # Add support for creating a bridge
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-network-bridge.patch
> # Add support for starting dnsmasq
> http://www.gnome.org/~markmc/code/libvirt-networking/libvirt-network-dnsmasq.patch

Looks sane in principle. Not reviewed the code in detail yet.


Dan.
--
|=- 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