Browse Source

New upstream version 3.1.0-rc2

tags/upstream/3.1.0-rc2^0
Guido Günther 4 years ago
parent
commit
603e37679e
100 changed files with 90884 additions and 82543 deletions
  1. +3
    -0
      AUTHORS
  2. +2718
    -0
      ChangeLog
  3. +4
    -2
      Makefile.in
  4. +97
    -0
      NEWS
  5. +2
    -0
      aclocal.m4
  6. +3
    -0
      cfg.mk
  7. +10
    -4
      config.h.in
  8. +275
    -41
      configure
  9. +8
    -19
      configure.ac
  10. +4
    -2
      daemon/Makefile.in
  11. +1
    -1
      daemon/THREADS.txt
  12. +6
    -0
      daemon/libvirtd-config.c
  13. +2
    -0
      daemon/libvirtd-config.h
  14. +1
    -0
      daemon/libvirtd.aug
  15. +63
    -86
      daemon/libvirtd.c
  16. +9
    -0
      daemon/libvirtd.conf
  17. +1
    -0
      daemon/libvirtd.service.in
  18. +65
    -0
      daemon/remote_dispatch.h
  19. +1
    -0
      daemon/test_libvirtd.aug.in
  20. +4
    -2
      docs/Makefile.in
  21. +3
    -1
      docs/devhelp/libvirt.devhelp
  22. +20
    -0
      docs/downloads.html
  23. +34
    -0
      docs/downloads.html.in
  24. +17
    -0
      docs/drvbhyve.html
  25. +15
    -0
      docs/drvbhyve.html.in
  26. +47
    -24
      docs/formatdomain.html
  27. +49
    -23
      docs/formatdomain.html.in
  28. +17
    -4
      docs/formatnetwork.html
  29. +20
    -3
      docs/formatnetwork.html.in
  30. +10
    -1
      docs/formatnode.html
  31. +17
    -1
      docs/formatnode.html.in
  32. +8
    -4
      docs/formatstorage.html
  33. +8
    -4
      docs/formatstorage.html.in
  34. +2
    -1
      docs/hacking.html
  35. +2
    -1
      docs/hacking.html.in
  36. +5
    -1
      docs/html/libvirt-libvirt-domain.html
  37. +2
    -2
      docs/html/libvirt-libvirt-nodedev.html
  38. +1
    -1
      docs/html/libvirt-libvirt-storage.html
  39. +12
    -10
      docs/hvsupport.html
  40. +86
    -64
      docs/hvsupport.html.in
  41. +20
    -1
      docs/libvirt-api.xml
  42. +55
    -35
      docs/libvirt-refs.xml
  43. +124
    -0
      docs/news.html
  44. +112
    -1
      docs/news.html.in
  45. +193
    -0
      docs/news.xml
  46. +43
    -1
      docs/schemas/domaincommon.rng
  47. +5
    -0
      docs/schemas/network.rng
  48. +9
    -0
      docs/schemas/networkcommon.rng
  49. +35
    -3
      docs/schemas/nodedev.rng
  50. +21
    -0
      docs/schemas/storagepool.rng
  51. +31
    -0
      docs/storage.html
  52. +28
    -0
      docs/storage.html.in
  53. +4
    -2
      examples/Makefile.in
  54. +4
    -2
      gnulib/lib/Makefile.in
  55. +4
    -2
      gnulib/tests/Makefile.in
  56. +4
    -2
      include/libvirt/Makefile.in
  57. +1
    -1
      include/libvirt/libvirt-common.h
  58. +5
    -0
      include/libvirt/libvirt-domain.h
  59. +1
    -0
      include/libvirt/libvirt-nodedev.h
  60. +1
    -0
      include/libvirt/libvirt-storage.h
  61. +169
    -25
      libvirt.spec
  62. +168
    -24
      libvirt.spec.in
  63. +35
    -0
      m4/virt-acl.m4
  64. +1
    -1
      m4/virt-storage-rbd.m4
  65. +73
    -0
      m4/virt-storage-vstorage.m4
  66. +1
    -1
      m4/virt-tls-priority.m4
  67. +5
    -0
      po/POTFILES.in
  68. BIN
      po/af.gmo
  69. +5336
    -5098
      po/af.po
  70. BIN
      po/am.gmo
  71. +5336
    -5098
      po/am.po
  72. BIN
      po/anp.gmo
  73. +5336
    -5098
      po/anp.po
  74. BIN
      po/ar.gmo
  75. +5415
    -5163
      po/ar.po
  76. BIN
      po/as.gmo
  77. +5566
    -5286
      po/as.po
  78. BIN
      po/ast.gmo
  79. +5336
    -5098
      po/ast.po
  80. BIN
      po/bal.gmo
  81. +5336
    -5098
      po/bal.po
  82. BIN
      po/be.gmo
  83. +5336
    -5098
      po/be.po
  84. BIN
      po/bg.gmo
  85. +5419
    -5167
      po/bg.po
  86. BIN
      po/bn.gmo
  87. +5415
    -5163
      po/bn.po
  88. BIN
      po/bn_IN.gmo
  89. +5468
    -5210
      po/bn_IN.po
  90. BIN
      po/bo.gmo
  91. +5336
    -5098
      po/bo.po
  92. BIN
      po/br.gmo
  93. +5336
    -5098
      po/br.po
  94. BIN
      po/brx.gmo
  95. +5336
    -5098
      po/brx.po
  96. BIN
      po/bs.gmo
  97. +5415
    -5163
      po/bs.po
  98. BIN
      po/ca.gmo
  99. +5358
    -5106
      po/ca.po
  100. BIN
      po/cs.gmo

+ 3
- 0
AUTHORS View File

@@ -179,6 +179,7 @@ Dario Faggioli <dario.faggioli@citrix.com>
Darryl L. Pierce <dpierce@redhat.com>
Dave Allan <dallan@redhat.com>
David Allan <dallan@redhat.com>
David Dai <zdai@linux.vnet.ibm.com>
David Jorm <dfj@redhat.com>
David L Stevens <dlstevens@us.ibm.com>
David L. Leskovec <dlesko@linux.vnet.ibm.com>
@@ -275,6 +276,7 @@ James Cowgill <james410@cowgill.org.uk>
James Shubin <james@shubin.ca>
Jamie Strandboge <jamie@canonical.com>
Jan Kiszka <jan.kiszka@siemens.com>
Jaroslav Safka <jaroslavx.safka@intel.com>
Jaroslav Suchanek <jsuchane@redhat.com>
Jason Andryuk <andryuk@aero.org>
Jason J. Herne <jjherne@linux.vnet.ibm.com>
@@ -545,6 +547,7 @@ Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Vitor de Lima <vitor.lima@eldorado.org.br>
Vladislav Bogdanov <bubble@hoster-ok.com>
Václav Pavlín <vpavlin@redhat.com>
Wang King <king.wang@huawei.com>
Wang Rui <moon.wangrui@huawei.com>
Wang Yufei (James) <james.wangyufei@huawei.com>
Wangjing (King, Euler) <king.wang@huawei.com>


+ 2718
- 0
ChangeLog
File diff suppressed because it is too large
View File


+ 4
- 2
Makefile.in View File

@@ -222,7 +222,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/uname.m4 $(top_srcdir)/m4/ungetc.m4 \
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlockpt.m4 \
$(top_srcdir)/m4/usleep.m4 $(top_srcdir)/m4/vasnprintf.m4 \
$(top_srcdir)/m4/vasprintf.m4 \
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/virt-acl.m4 \
$(top_srcdir)/m4/virt-apparmor.m4 $(top_srcdir)/m4/virt-arg.m4 \
$(top_srcdir)/m4/virt-atomic.m4 $(top_srcdir)/m4/virt-attr.m4 \
$(top_srcdir)/m4/virt-audit.m4 $(top_srcdir)/m4/virt-avahi.m4 \
@@ -297,6 +297,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/virt-storage-rbd.m4 \
$(top_srcdir)/m4/virt-storage-scsi.m4 \
$(top_srcdir)/m4/virt-storage-sheepdog.m4 \
$(top_srcdir)/m4/virt-storage-vstorage.m4 \
$(top_srcdir)/m4/virt-storage-zfs.m4 \
$(top_srcdir)/m4/virt-sysctl.m4 \
$(top_srcdir)/m4/virt-tls-priority.m4 \
@@ -570,7 +571,6 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLIBC21 = @GLIBC21@
GLUSTERFS_CFLAGS = @GLUSTERFS_CFLAGS@
GLUSTERFS_LIBS = @GLUSTERFS_LIBS@
GLUSTER_CLI = @GLUSTER_CLI@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
GNULIB_ACCEPT = @GNULIB_ACCEPT@
@@ -1869,6 +1869,8 @@ VGREMOVE = @VGREMOVE@
VGS = @VGS@
VGSCAN = @VGSCAN@
VIR_TEST_EXPENSIVE_DEFAULT = @VIR_TEST_EXPENSIVE_DEFAULT@
VSTORAGE = @VSTORAGE@
VSTORAGE_MOUNT = @VSTORAGE_MOUNT@
WARN_CFLAGS = @WARN_CFLAGS@
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
WIN32_EXTRA_CFLAGS = @WIN32_EXTRA_CFLAGS@


+ 97
- 0
NEWS View File

@@ -1,6 +1,99 @@
libvirt releases
================

# v3.1.0 (unreleased)

* New features

- storage: Add Virtuozzo storage backend storage pool
Add new storage backend to support pool and volume management within
the Virtuozzo Storage environment. Virtuozzo Storage is a highly
available distributed software defined storage with built-in
replication and disaster recovery.

- qemu: Add support for memory backing with file source
Add support in numa topology for file source inside memory backing
(hugepages are not needed) Three new elements <source/>,<access/> and
<allocation/> were added to <memoryBacking/> element. Also new
configuration parameter memory_backing_dir was added to qemu.conf.

- network: make openvswitch call timeout configurable
Adding the ability to specify the timeout value in seconds for
openvswitch calls in the libvirtd configuration file.

- bhyve: add e1000 NIC support
Add support for e1000 NIC. Previously, the only available option was
virtio-net.

- libxl: add tunneled migration support
Add tunneled migration to libxl driver, which is always capable of
strong encryption and doesn't require any extra network connection
other than what's required for remote access of libvirtd.

- qemu: add rendernode argument
Add a new attribute 'rendernode' to <gl> spice element.

- nodedev: add drm capability
Add a new 'drm' capability for Direct Rendering Manager (DRM) devices,
providing device type information.

- Add API for individual/specific vCPU hotplug
The new API allows selecting specific vCPUs to be added/removed from
the VM. The existing APIs allowed only adding/removing from the end
which did not play well with NUMA.

* Improvements

- virsh: pool-list: allow both --uuid and --name in one command
Adjust the virsh-pool command to support the --uuid and/or --name
options in order to print just the --name and/or --uuid of pools.

- Introduce MTU to domain <interface/> and <network>
Allow setting MTU size for some types of domain interface and network.

- libxl: improve support for <timer> configurations
Add support for multiple timers. Extend the tsc timer to support the
emulate mode. Improve conversion of timer XML to/from xl.cfg.

- storage: modularize the storage driver
Split up the storage driver backends into loadable modules so that
binary distributions don't have to compromise on shipping the storage
driver with all backends which may pull in too many dependencies.

* Bug fixes

- nodedev: Fabric name must not be required for fc_host capability
fabric_name is one of many fc_host attributes in Linux that is optional
and left to the low-level driver to decide if it is implemented. For
example the zfcp device driver does not provide a fabric name for an
fcp host. The requirement for the existence of a fabric name has been
removed by making it optional.

- bhyve: change address allocation schema for SATA disks
Previously, the bhyve driver assigned PCI addresses to SATA disks
directly rather than assigning that to a controller and using SATA
addresses for disks. It was implemented this way because bhyve has no
notion of an explicit SATA controller. However, as this doesn't match
libvirt's understanding of disk addresses, the bhyve driver was changed
to follow the common schema and have PCI addresses for SATA controllers
and SATA addresses for disks. If you're having issues because of this,
it's recommended to edit the domain's XML and remove <address
type='pci'> from the <disk> elements with <target bus='sata'/> and let
libvirt regenerate it properly.

- libxl: maximum memory fixes
Fix reporting of domain maximum memory. Fix setting dom0 maximum
memory.

- libxl: fix disk detach when <driver> not specified

- libxl: fix dom0 autoballooning with Xen 4.8

- qemu: Allow empty script path to <interface/>
Historically, this was always allowed. Unfortunately, due to some
rework done for 1.3.2 release a bug was dragged in which suddenly stop
allowing domain with such configuration to start.

# v3.0.0 (2017-01-17)

* New features
@@ -137,6 +230,10 @@ libvirt releases
get an i686 environment. pae should always be enabled for x86_64 HVM
domains.

- qemu: Fix XML dump of autogenerated websocket
As a result autogenerated websocket port is regenerated on domain
restore, migration and such as it should be.

# v2.5.0 (2016-12-04)

* New features


+ 2
- 0
aclocal.m4 View File

@@ -1769,6 +1769,7 @@ m4_include([m4/unlockpt.m4])
m4_include([m4/usleep.m4])
m4_include([m4/vasnprintf.m4])
m4_include([m4/vasprintf.m4])
m4_include([m4/virt-acl.m4])
m4_include([m4/virt-apparmor.m4])
m4_include([m4/virt-arg.m4])
m4_include([m4/virt-atomic.m4])
@@ -1854,6 +1855,7 @@ m4_include([m4/virt-storage-mpath.m4])
m4_include([m4/virt-storage-rbd.m4])
m4_include([m4/virt-storage-scsi.m4])
m4_include([m4/virt-storage-sheepdog.m4])
m4_include([m4/virt-storage-vstorage.m4])
m4_include([m4/virt-storage-zfs.m4])
m4_include([m4/virt-sysctl.m4])
m4_include([m4/virt-tls-priority.m4])


+ 3
- 0
cfg.mk View File

@@ -1242,3 +1242,6 @@ exclude_file_name_regexp--sc_prohibit_always-defined_macros = \

exclude_file_name_regexp--sc_prohibit_readdir = \
^tests/.*mock\.c$$

exclude_file_name_regexp--sc_prohibit_cross_inclusion = \
^(src/util/virclosecallbacks\.h|src/util/virhostdev\.h)$$

+ 10
- 4
config.h.in View File

@@ -171,9 +171,6 @@
declaration of the second argument to gettimeofday. */
#undef GETTIMEOFDAY_TIMEZONE

/* Location or name of the gluster command line tool */
#undef GLUSTER_CLI

/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
whether the gnulib module canonicalize-lgpl shall be considered present. */
#undef GNULIB_CANONICALIZE_LGPL
@@ -2428,7 +2425,7 @@
/* Location or name of the udevsettle program */
#undef UDEVSETTLE

/* Location or name of the mount program */
/* Location or name of the umount programm */
#undef UMOUNT

/* Define to the prefix of C symbols at the assembler and linker level, either
@@ -2563,6 +2560,12 @@
/* Define to 1 if unsetenv returns void instead of int. */
#undef VOID_UNSETENV

/* Location or name of the vstorage client tool */
#undef VSTORAGE

/* Location or name of the vstorage mount tool */
#undef VSTORAGE_MOUNT

/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
'wchar_t'. */
#undef WCHAR_T_SUFFIX
@@ -2769,6 +2772,9 @@
/* whether Sheepdog backend for storage driver is enabled */
#undef WITH_STORAGE_SHEEPDOG

/* whether Vstorage backend for storage driver is enabled */
#undef WITH_STORAGE_VSTORAGE

/* whether ZFS backend for storage driver is enabled */
#undef WITH_STORAGE_ZFS



+ 275
- 41
configure View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libvirt 3.0.0.
# Generated by GNU Autoconf 2.69 for libvirt 3.1.0.
#
# Report bugs to <libvir-list@redhat.com>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libvirt'
PACKAGE_TARNAME='libvirt'
PACKAGE_VERSION='3.0.0'
PACKAGE_STRING='libvirt 3.0.0'
PACKAGE_VERSION='3.1.0'
PACKAGE_STRING='libvirt 3.1.0'
PACKAGE_BUGREPORT='libvir-list@redhat.com'
PACKAGE_URL='http://libvirt.org'

@@ -730,6 +730,7 @@ with_storage_rbd=check
with_storage_sheepdog=check
with_storage_gluster=check
with_storage_zfs=check
with_storage_vstorage=check
with_test_suite=check
enable_expensive_tests=check
enable_test_coverage=no
@@ -795,7 +796,10 @@ PERL
PYTHON
WITH_STORAGE_FALSE
WITH_STORAGE_TRUE
GLUSTER_CLI
WITH_STORAGE_VSTORAGE_FALSE
WITH_STORAGE_VSTORAGE_TRUE
VSTORAGE_MOUNT
VSTORAGE
WITH_STORAGE_ZFS_FALSE
WITH_STORAGE_ZFS_TRUE
ZPOOL
@@ -955,8 +959,6 @@ HAVE_RPCGEN_TRUE
RPCGEN
HAVE_LIBTASN1_FALSE
HAVE_LIBTASN1_TRUE
ACL_LIBS
ACL_CFLAGS
YAJL_LIBS
YAJL_CFLAGS
WITH_YAJL2_FALSE
@@ -1117,6 +1119,8 @@ APPARMOR_LIBS
APPARMOR_CFLAGS
WITH_APPARMOR_FALSE
WITH_APPARMOR_TRUE
ACL_LIBS
ACL_CFLAGS
NO_INDIRECT_LDFLAGS
RELRO_LDFLAGS
PIE_LDFLAGS
@@ -2569,6 +2573,7 @@ with_storage_rbd
with_storage_sheepdog
with_storage_gluster
with_storage_zfs
with_storage_vstorage
with_test_suite
enable_expensive_tests
enable_test_coverage
@@ -3178,7 +3183,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures libvirt 3.0.0 to adapt to many kinds of systems.
\`configure' configures libvirt 3.1.0 to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

@@ -3248,7 +3253,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of libvirt 3.0.0:";;
short | recursive ) echo "Configuration of libvirt 3.1.0:";;
esac
cat <<\_ACEOF

@@ -3425,6 +3430,8 @@ Optional Packages:
[default=check]
--with-storage-zfs with ZFS backend for the storage driver support
[default=check]
--with-storage-vstorage with Virtuozzo Storage backend for the storage
driver support [default=check]
--with-test-suite build test suite by default [default=check]
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
@@ -3587,7 +3594,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
libvirt configure 3.0.0
libvirt configure 3.1.0
generated by GNU Autoconf 2.69

Copyright (C) 2012 Free Software Foundation, Inc.
@@ -4296,7 +4303,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by libvirt $as_me 3.0.0, which was
It was created by libvirt $as_me 3.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was

$ $0 $@
@@ -5297,7 +5304,7 @@ fi

# Define the identity of the package.
PACKAGE='libvirt'
VERSION='3.0.0'
VERSION='3.1.0'


cat >>confdefs.h <<_ACEOF
@@ -59164,6 +59171,29 @@ fi



for ac_header in sys/acl.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "sys/acl.h" "ac_cv_header_sys_acl_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_acl_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_SYS_ACL_H 1
_ACEOF

fi

done


ACL_CFLAGS=""
ACL_LIBS=""
if test "x$ac_cv_header_sys_acl_h:x$with_linux" = "xyes:xyes"; then
ACL_LIBS="-lacl"
fi








@@ -66164,7 +66194,7 @@ _ACEOF
for ac_header in pwd.h regex.h sys/un.h \
sys/poll.h syslog.h mntent.h net/ethernet.h linux/magic.h \
sys/un.h sys/syscall.h sys/sysctl.h netinet/tcp.h ifaddrs.h \
libtasn1.h sys/ucred.h sys/mount.h sys/acl.h
libtasn1.h sys/ucred.h sys/mount.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -66202,14 +66232,6 @@ fi
done


ACL_CFLAGS=""
ACL_LIBS=""
if test "x$ac_cv_header_sys_acl_h:x$with_linux" = "xyes:xyes" ; then
ACL_LIBS="-lacl"
fi



ac_fn_c_check_type "$LINENO" "struct ifreq" "ac_cv_type_struct_ifreq" "#include <sys/socket.h>
#include <net/if.h>

@@ -71579,6 +71601,43 @@ fi



















# Check whether --with-storage_vstorage was given.
if test "${with_storage_vstorage+set}" = set; then :
withval=$with_storage_vstorage;
fi

















if test "$with_libvirtd" = "no"; then
with_storage_dir=no
with_storage_fs=no
@@ -71591,6 +71650,7 @@ if test "$with_libvirtd" = "no"; then
with_storage_sheepdog=no
with_storage_gluster=no
with_storage_zfs=no
with_storage_vstorage=no
fi


@@ -72893,18 +72953,18 @@ fi



if test "$with_storage_fs" = "yes" ||
test "$with_storage_gluster" = "yes"; then
# Extract the first word of "gluster", so it can be a program name with args.
set dummy gluster; ac_word=$2
if test "$with_storage_vstorage" = "yes" ||
test "$with_storage_vstorage" = "check"; then
# Extract the first word of "vstorage", so it can be a program name with args.
set dummy vstorage; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_GLUSTER_CLI+:} false; then :
if ${ac_cv_path_VSTORAGE+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GLUSTER_CLI in
case $VSTORAGE in
[\\/]* | ?:[\\/]*)
ac_cv_path_GLUSTER_CLI="$GLUSTER_CLI" # Let the user override the test with a path.
ac_cv_path_VSTORAGE="$VSTORAGE" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -72914,7 +72974,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GLUSTER_CLI="$as_dir/$ac_word$ac_exec_ext"
ac_cv_path_VSTORAGE="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -72925,25 +72985,153 @@ IFS=$as_save_IFS
;;
esac
fi
GLUSTER_CLI=$ac_cv_path_GLUSTER_CLI
if test -n "$GLUSTER_CLI"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLUSTER_CLI" >&5
$as_echo "$GLUSTER_CLI" >&6; }
VSTORAGE=$ac_cv_path_VSTORAGE
if test -n "$VSTORAGE"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $VSTORAGE" >&5
$as_echo "$VSTORAGE" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


if test "x$GLUSTER_CLI" != "x"; then
# Extract the first word of "vstorage-mount", so it can be a program name with args.
set dummy vstorage-mount; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_VSTORAGE_MOUNT+:} false; then :
$as_echo_n "(cached) " >&6
else
case $VSTORAGE_MOUNT in
[\\/]* | ?:[\\/]*)
ac_cv_path_VSTORAGE_MOUNT="$VSTORAGE_MOUNT" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $LIBVIRT_SBIN_PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_VSTORAGE_MOUNT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS

;;
esac
fi
VSTORAGE_MOUNT=$ac_cv_path_VSTORAGE_MOUNT
if test -n "$VSTORAGE_MOUNT"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $VSTORAGE_MOUNT" >&5
$as_echo "$VSTORAGE_MOUNT" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


# Extract the first word of "umount", so it can be a program name with args.
set dummy umount; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_UMOUNT+:} false; then :
$as_echo_n "(cached) " >&6
else
case $UMOUNT in
[\\/]* | ?:[\\/]*)
ac_cv_path_UMOUNT="$UMOUNT" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $LIBVIRT_SBIN_PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_UMOUNT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS

;;
esac
fi
UMOUNT=$ac_cv_path_UMOUNT
if test -n "$UMOUNT"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $UMOUNT" >&5
$as_echo "$UMOUNT" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi



if test "$with_storage_vstorage" = "yes"; then
if test -z "$VSTORAGE" || test -z "$VSTORAGE_MOUNT"; then
as_fn_error $? "We need vstorage and vstorage-mount tool for Vstorage storage driver" "$LINENO" 5;
fi
if test -z "$UMOUNT" ; then
as_fn_error $? "We need umount for Vstorage storage driver" "$LINENO" 5;
fi
else
if test -z "$VSTORAGE" ; then
with_storage_vstorage=no
fi
if test -z "$VSTORAGE_MOUNT" ; then
with_storage_vstorage=no
fi
if test -z "$UMOUNT" ; then
with_storage_vstorage=no
fi

if test "$with_storage_vstorage" = "check" ; then
with_storage_vstorage=yes
fi
fi

if test "$with_storage_vstorage" = "yes" ; then

cat >>confdefs.h <<_ACEOF
#define WITH_STORAGE_VSTORAGE 1
_ACEOF


cat >>confdefs.h <<_ACEOF
#define GLUSTER_CLI "$GLUSTER_CLI"
#define VSTORAGE "$VSTORAGE"
_ACEOF


cat >>confdefs.h <<_ACEOF
#define VSTORAGE_MOUNT "$VSTORAGE_MOUNT"
_ACEOF


cat >>confdefs.h <<_ACEOF
#define UMOUNT "$UMOUNT"
_ACEOF

fi
fi
if test "$with_storage_vstorage" = "yes"; then
WITH_STORAGE_VSTORAGE_TRUE=
WITH_STORAGE_VSTORAGE_FALSE='#'
else
WITH_STORAGE_VSTORAGE_TRUE='#'
WITH_STORAGE_VSTORAGE_FALSE=
fi



with_storage=no
for backend in dir fs lvm iscsi scsi mpath rbd disk; do
if eval test \$with_storage_$backend = yes; then
@@ -76529,6 +76717,10 @@ if test -z "${WITH_STORAGE_ZFS_TRUE}" && test -z "${WITH_STORAGE_ZFS_FALSE}"; th
as_fn_error $? "conditional \"WITH_STORAGE_ZFS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${WITH_STORAGE_VSTORAGE_TRUE}" && test -z "${WITH_STORAGE_VSTORAGE_FALSE}"; then
as_fn_error $? "conditional \"WITH_STORAGE_VSTORAGE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${WITH_STORAGE_TRUE}" && test -z "${WITH_STORAGE_FALSE}"; then
as_fn_error $? "conditional \"WITH_STORAGE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -76954,7 +77146,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by libvirt $as_me 3.0.0, which was
This file was extended by libvirt $as_me 3.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was

CONFIG_FILES = $CONFIG_FILES
@@ -77025,7 +77217,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
libvirt config.status 3.0.0
libvirt config.status 3.1.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

@@ -79235,10 +79427,10 @@ $as_echo "$as_me: $STR" >&6;}



if test "$with_storage_dir" = "no" || test -z "" ; then
STR=`printf "%10s: %-3s" "RBD" "$with_storage_dir"`
if test "$with_storage_rbd" = "no" || test -z "" ; then
STR=`printf "%10s: %-3s" "RBD" "$with_storage_rbd"`
else
STR=`printf "%10s: %-3s (%s)" "RBD" "$with_storage_dir" ""`
STR=`printf "%10s: %-3s (%s)" "RBD" "$with_storage_rbd" ""`
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: $STR" >&5
@@ -79281,6 +79473,18 @@ $as_echo "$as_me: $STR" >&6;}
$as_echo "$as_me: $STR" >&6;}




if test "$with_storage_vstorage" = "no" || test -z "" ; then
STR=`printf "%10s: %-3s" "Virtuozzo storage" "$with_storage_vstorage"`
else
STR=`printf "%10s: %-3s (%s)" "Virtuozzo storage" "$with_storage_vstorage" ""`
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: $STR" >&5
$as_echo "$as_me: $STR" >&6;}


{ $as_echo "$as_me:${as_lineno-$LINENO}: " >&5
$as_echo "$as_me: " >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: Security Drivers" >&5
@@ -79362,6 +79566,36 @@ $as_echo "$as_me: " >&6;}





if test "$with_acl" = "no" || test -z "CFLAGS='$ACL_CFLAGS' LIBS='$ACL_LIBS'" ; then
STR=`printf "%10s: %-3s" "acl" "$with_acl"`
else
STR=`printf "%10s: %-3s (%s)" "acl" "$with_acl" "CFLAGS='$ACL_CFLAGS' LIBS='$ACL_LIBS'"`
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: $STR" >&5
$as_echo "$as_me: $STR" >&6;}






















if test "$with_apparmor" = "no" || test -z "CFLAGS='$APPARMOR_CFLAGS' LIBS='$APPARMOR_LIBS'" ; then
@@ -80589,9 +80823,9 @@ $as_echo "$as_me: virt-host-validate: $with_host_validate" >&6;}


if test "$with_tls_priority" = "no" || test -z "" ; then
STR=`printf "%10s: %-3s" "TLS priority" "$with_tls_priority"`
STR=`printf "%10s: %-3s" " TLS priority" "$with_tls_priority"`
else
STR=`printf "%10s: %-3s (%s)" "TLS priority" "$with_tls_priority" ""`
STR=`printf "%10s: %-3s (%s)" " TLS priority" "$with_tls_priority" ""`
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: $STR" >&5


+ 8
- 19
configure.ac View File

@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.

AC_INIT([libvirt], [3.0.0], [libvir-list@redhat.com], [], [http://libvirt.org])
AC_INIT([libvirt], [3.1.0], [libvir-list@redhat.com], [], [http://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
@@ -271,6 +271,7 @@ LIBVIRT_ARG_VIRTUALPORT
LIBVIRT_ARG_WIRESHARK
LIBVIRT_ARG_YAJL

LIBVIRT_CHECK_ACL
LIBVIRT_CHECK_APPARMOR
LIBVIRT_CHECK_ATOMIC
LIBVIRT_CHECK_ATTR
@@ -325,19 +326,11 @@ dnl Availability of various common headers (non-fatal if missing).
AC_CHECK_HEADERS([pwd.h regex.h sys/un.h \
sys/poll.h syslog.h mntent.h net/ethernet.h linux/magic.h \
sys/un.h sys/syscall.h sys/sysctl.h netinet/tcp.h ifaddrs.h \
libtasn1.h sys/ucred.h sys/mount.h sys/acl.h])
libtasn1.h sys/ucred.h sys/mount.h])
dnl Check whether endian provides handy macros.
AC_CHECK_DECLS([htole64], [], [], [[#include <endian.h>]])
AC_CHECK_FUNCS([stat stat64 __xstat __xstat64 lstat lstat64 __lxstat __lxstat64])

ACL_CFLAGS=""
ACL_LIBS=""
if test "x$ac_cv_header_sys_acl_h:x$with_linux" = "xyes:xyes" ; then
ACL_LIBS="-lacl"
fi
AC_SUBST([ACL_CFLAGS])
AC_SUBST([ACL_LIBS])

AC_CHECK_TYPE([struct ifreq],
[AC_DEFINE([HAVE_STRUCT_IFREQ],[1],
[Defined if struct ifreq exists in net/if.h])],
@@ -570,6 +563,7 @@ LIBVIRT_STORAGE_ARG_RBD
LIBVIRT_STORAGE_ARG_SHEEPDOG
LIBVIRT_STORAGE_ARG_GLUSTER
LIBVIRT_STORAGE_ARG_ZFS
LIBVIRT_STORAGE_ARG_VSTORAGE

if test "$with_libvirtd" = "no"; then
with_storage_dir=no
@@ -583,6 +577,7 @@ if test "$with_libvirtd" = "no"; then
with_storage_sheepdog=no
with_storage_gluster=no
with_storage_zfs=no
with_storage_vstorage=no
fi

dnl storage-fs does not work on MacOS X
@@ -602,15 +597,7 @@ LIBVIRT_STORAGE_CHECK_RBD
LIBVIRT_STORAGE_CHECK_SHEEPDOG
LIBVIRT_STORAGE_CHECK_GLUSTER
LIBVIRT_STORAGE_CHECK_ZFS

if test "$with_storage_fs" = "yes" ||
test "$with_storage_gluster" = "yes"; then
AC_PATH_PROG([GLUSTER_CLI], [gluster], [], [$LIBVIRT_SBIN_PATH])
if test "x$GLUSTER_CLI" != "x"; then
AC_DEFINE_UNQUOTED([GLUSTER_CLI], ["$GLUSTER_CLI"],
[Location or name of the gluster command line tool])
fi
fi
LIBVIRT_STORAGE_CHECK_VSTORAGE

with_storage=no
for backend in dir fs lvm iscsi scsi mpath rbd disk; do
@@ -944,6 +931,7 @@ LIBVIRT_STORAGE_RESULT_RBD
LIBVIRT_STORAGE_RESULT_SHEEPDOG
LIBVIRT_STORAGE_RESULT_GLUSTER
LIBVIRT_STORAGE_RESULT_ZFS
LIBVIRT_STORAGE_RESULT_VSTORAGE
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Security Drivers])
AC_MSG_NOTICE([])
@@ -956,6 +944,7 @@ LIBVIRT_RESULT_DRIVER_MODULES
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Libraries])
AC_MSG_NOTICE([])
LIBVIRT_RESULT_ACL
LIBVIRT_RESULT_APPARMOR
LIBVIRT_RESULT_ATTR
LIBVIRT_RESULT_AUDIT


+ 4
- 2
daemon/Makefile.in View File

@@ -244,7 +244,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/uname.m4 $(top_srcdir)/m4/ungetc.m4 \
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlockpt.m4 \
$(top_srcdir)/m4/usleep.m4 $(top_srcdir)/m4/vasnprintf.m4 \
$(top_srcdir)/m4/vasprintf.m4 \
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/virt-acl.m4 \
$(top_srcdir)/m4/virt-apparmor.m4 $(top_srcdir)/m4/virt-arg.m4 \
$(top_srcdir)/m4/virt-atomic.m4 $(top_srcdir)/m4/virt-attr.m4 \
$(top_srcdir)/m4/virt-audit.m4 $(top_srcdir)/m4/virt-avahi.m4 \
@@ -319,6 +319,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/virt-storage-rbd.m4 \
$(top_srcdir)/m4/virt-storage-scsi.m4 \
$(top_srcdir)/m4/virt-storage-sheepdog.m4 \
$(top_srcdir)/m4/virt-storage-vstorage.m4 \
$(top_srcdir)/m4/virt-storage-zfs.m4 \
$(top_srcdir)/m4/virt-sysctl.m4 \
$(top_srcdir)/m4/virt-tls-priority.m4 \
@@ -604,7 +605,6 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLIBC21 = @GLIBC21@
GLUSTERFS_CFLAGS = @GLUSTERFS_CFLAGS@
GLUSTERFS_LIBS = @GLUSTERFS_LIBS@
GLUSTER_CLI = @GLUSTER_CLI@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
GNULIB_ACCEPT = @GNULIB_ACCEPT@
@@ -1903,6 +1903,8 @@ VGREMOVE = @VGREMOVE@
VGS = @VGS@
VGSCAN = @VGSCAN@
VIR_TEST_EXPENSIVE_DEFAULT = @VIR_TEST_EXPENSIVE_DEFAULT@
VSTORAGE = @VSTORAGE@
VSTORAGE_MOUNT = @VSTORAGE_MOUNT@
WARN_CFLAGS = @WARN_CFLAGS@
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
WIN32_EXTRA_CFLAGS = @WIN32_EXTRA_CFLAGS@


+ 1
- 1
daemon/THREADS.txt View File

@@ -42,7 +42,7 @@ event loop thread handles I/O from the client socket, and once a
complete RPC message has been read off the wire (and optionally
decrypted), it will be placed on the 'dx' job queue for the
associated client object. The job condition will be signalled and
a worker will wakup and process it.
a worker will wakeup and process it.

The worker thread must quickly drop its locks on the server and
client to allow the main event loop thread to continue running


+ 6
- 0
daemon/libvirtd-config.c View File

@@ -32,6 +32,7 @@
#include "configmake.h"
#include "remote/remote_protocol.h"
#include "remote/remote_driver.h"
#include "util/virnetdevopenvswitch.h"
#include "virstring.h"
#include "virutil.h"

@@ -170,6 +171,8 @@ daemonConfigNew(bool privileged ATTRIBUTE_UNUSED)
data->admin_keepalive_interval = 5;
data->admin_keepalive_count = 5;

data->ovs_timeout = VIR_NETDEV_OVS_DEFAULT_TIMEOUT;

localhost = virGetHostname();
if (localhost == NULL) {
/* we couldn't resolve the hostname; assume that we are
@@ -388,6 +391,9 @@ daemonConfigLoadOptions(struct daemonConfig *data,
if (virConfGetValueUInt(conf, "admin_keepalive_count", &data->admin_keepalive_count) < 0)
goto error;

if (virConfGetValueUInt(conf, "ovs_timeout", &data->ovs_timeout) < 0)
goto error;

return 0;

error:


+ 2
- 0
daemon/libvirtd-config.h View File

@@ -92,6 +92,8 @@ struct daemonConfig {

int admin_keepalive_interval;
unsigned int admin_keepalive_count;

unsigned int ovs_timeout;
};




+ 1
- 0
daemon/libvirtd.aug View File

@@ -88,6 +88,7 @@ module Libvirtd =

let misc_entry = str_entry "host_uuid"
| str_entry "host_uuid_source"
| int_entry "ovs_timeout"

(* Each enty in the config is one of the following three ... *)
let entry = network_entry


+ 63
- 86
daemon/libvirtd.c View File

@@ -58,6 +58,7 @@
#include "viraccessmanager.h"
#include "virutil.h"
#include "virgettext.h"
#include "util/virnetdevopenvswitch.h"

#ifdef WITH_DRIVER_MODULES
# include "driver.h"
@@ -341,6 +342,14 @@ static int daemonErrorLogFilter(virErrorPtr err, int priority)
return priority;
}


#ifdef WITH_DRIVER_MODULES
# define VIR_DAEMON_LOAD_MODULE(func, module) \
virDriverLoadModule(module, #func)
#else
# define VIR_DAEMON_LOAD_MODULE(func, module) \
func()
#endif
static void daemonInitialize(void)
{
/*
@@ -350,99 +359,55 @@ static void daemonInitialize(void)
* driver, since their resources must be auto-started before any
* domains can be auto-started.
*/
#ifdef WITH_DRIVER_MODULES
/* We don't care if any of these fail, because the whole point
* is to allow users to only install modules they want to use.
* If they try to open a connection for a module that
* is not loaded they'll get a suitable error at that point
*/
# ifdef WITH_NETWORK
virDriverLoadModule("network");
# endif
# ifdef WITH_INTERFACE
virDriverLoadModule("interface");
# endif
# ifdef WITH_STORAGE
virDriverLoadModule("storage");
# endif
# ifdef WITH_NODE_DEVICES
virDriverLoadModule("nodedev");
# endif
# ifdef WITH_SECRETS
virDriverLoadModule("secret");
# endif
# ifdef WITH_NWFILTER
virDriverLoadModule("nwfilter");
# endif
# ifdef WITH_XEN
virDriverLoadModule("xen");
# endif
# ifdef WITH_LIBXL
virDriverLoadModule("libxl");
# endif
# ifdef WITH_QEMU
virDriverLoadModule("qemu");
# endif
# ifdef WITH_LXC
virDriverLoadModule("lxc");
# endif
# ifdef WITH_UML
virDriverLoadModule("uml");
# endif
# ifdef WITH_VBOX
virDriverLoadModule("vbox");
# endif
# ifdef WITH_BHYVE
virDriverLoadModule("bhyve");
# endif
# ifdef WITH_VZ
virDriverLoadModule("vz");
# endif
#else
# ifdef WITH_NETWORK
networkRegister();
# endif
# ifdef WITH_INTERFACE
interfaceRegister();
# endif
# ifdef WITH_STORAGE
storageRegister();
# endif
# ifdef WITH_NODE_DEVICES
nodedevRegister();
# endif
# ifdef WITH_SECRETS
secretRegister();
# endif
# ifdef WITH_NWFILTER
nwfilterRegister();
# endif
# ifdef WITH_XEN
xenRegister();
# endif
# ifdef WITH_LIBXL
libxlRegister();
# endif
# ifdef WITH_QEMU
qemuRegister();
# endif
# ifdef WITH_LXC
lxcRegister();
# endif
# ifdef WITH_UML
umlRegister();
# endif
# ifdef WITH_VBOX
vboxRegister();
# endif
# ifdef WITH_BHYVE
bhyveRegister();
# endif
# ifdef WITH_VZ
vzRegister();
# endif
#ifdef WITH_NETWORK
VIR_DAEMON_LOAD_MODULE(networkRegister, "network");
#endif
#ifdef WITH_INTERFACE
VIR_DAEMON_LOAD_MODULE(interfaceRegister, "interface");
#endif
#ifdef WITH_STORAGE
VIR_DAEMON_LOAD_MODULE(storageRegister, "storage");
#endif
#ifdef WITH_NODE_DEVICES
VIR_DAEMON_LOAD_MODULE(nodedevRegister, "nodedev");
#endif
#ifdef WITH_SECRETS
VIR_DAEMON_LOAD_MODULE(secretRegister, "secret");
#endif
#ifdef WITH_NWFILTER
VIR_DAEMON_LOAD_MODULE(nwfilterRegister, "nwfilter");
#endif
#ifdef WITH_XEN
VIR_DAEMON_LOAD_MODULE(xenRegister, "xen");
#endif
#ifdef WITH_LIBXL
VIR_DAEMON_LOAD_MODULE(libxlRegister, "libxl");
#endif
#ifdef WITH_QEMU
VIR_DAEMON_LOAD_MODULE(qemuRegister, "qemu");
#endif
#ifdef WITH_LXC
VIR_DAEMON_LOAD_MODULE(lxcRegister, "lxc");
#endif
#ifdef WITH_UML
VIR_DAEMON_LOAD_MODULE(umlRegister, "uml");
#endif
#ifdef WITH_VBOX
VIR_DAEMON_LOAD_MODULE(vboxRegister, "vbox");
#endif
#ifdef WITH_BHYVE
VIR_DAEMON_LOAD_MODULE(bhyveRegister, "bhyve");
#endif
#ifdef WITH_VZ
VIR_DAEMON_LOAD_MODULE(vzRegister, "vz");
#endif
}
#undef VIR_DAEMON_LOAD_MODULE


static int ATTRIBUTE_NONNULL(3)
@@ -657,6 +622,16 @@ daemonSetupNetworking(virNetServerPtr srv,
}


/*
* Set up the openvswitch timeout
*/
static void
daemonSetupNetDevOpenvswitch(struct daemonConfig *config)
{
virNetDevOpenvswitchSetTimeout(config->ovs_timeout);
}


/*
* Set up the logging environment
* By default if daemonized all errors go to the logfile libvirtd.log,
@@ -1267,6 +1242,8 @@ int main(int argc, char **argv) {
exit(EXIT_FAILURE);
}

daemonSetupNetDevOpenvswitch(config);

if (daemonSetupAccessManager(config) < 0) {
VIR_ERROR(_("Can't initialize access manager"));
exit(EXIT_FAILURE);


+ 9
- 0
daemon/libvirtd.conf View File

@@ -467,3 +467,12 @@
# Keepalive settings for the admin interface
#admin_keepalive_interval = 5
#admin_keepalive_count = 5

###################################################################
# Open vSwitch:
# This allows to specify a timeout for openvswitch calls made by
# libvirt. The ovs-vsctl utility is used for the configuration and
# its timeout option is set by default to 5 seconds to avoid
# potential infinite waits blocking libvirt.
#
#ovs_timeout = 5

+ 1
- 0
daemon/libvirtd.service.in View File

@@ -6,6 +6,7 @@
[Unit]
Description=Virtualization daemon
Requires=virtlogd.socket
Requires=virtlockd.socket
Before=libvirt-guests.service
After=network.target
After=dbus.service


+ 65
- 0
daemon/remote_dispatch.h View File

@@ -10677,6 +10677,62 @@ cleanup:



static int remoteDispatchDomainSetVcpu(
virNetServerPtr server,
virNetServerClientPtr client,
virNetMessagePtr msg,
virNetMessageErrorPtr rerr,
remote_domain_set_vcpu_args *args);
static int remoteDispatchDomainSetVcpuHelper(
virNetServerPtr server,
virNetServerClientPtr client,
virNetMessagePtr msg,
virNetMessageErrorPtr rerr,
void *args,
void *ret ATTRIBUTE_UNUSED)
{
int rv;
virThreadJobSet("remoteDispatchDomainSetVcpu");
VIR_DEBUG("server=%p client=%p msg=%p rerr=%p args=%p ret=%p",
server, client, msg, rerr, args, ret);
rv = remoteDispatchDomainSetVcpu(server, client, msg, rerr, args);
virThreadJobClear(rv);
return rv;
}
static int remoteDispatchDomainSetVcpu(
virNetServerPtr server ATTRIBUTE_UNUSED,
virNetServerClientPtr client,
virNetMessagePtr msg ATTRIBUTE_UNUSED,
virNetMessageErrorPtr rerr,
remote_domain_set_vcpu_args *args)
{
int rv = -1;
virDomainPtr dom = NULL;
struct daemonClientPrivate *priv =
virNetServerClientGetPrivateData(client);

if (!priv->conn) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open"));
goto cleanup;
}

if (!(dom = get_nonnull_domain(priv->conn, args->dom)))
goto cleanup;

if (virDomainSetVcpu(dom, args->cpumap, args->state, args->flags) < 0)
goto cleanup;

rv = 0;

cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
virObjectUnref(dom);
return rv;
}



static int remoteDispatchDomainSetVcpus(
virNetServerPtr server,
virNetServerClientPtr client,
@@ -20906,5 +20962,14 @@ virNetServerProgramProc remoteProcs[] = {
true,
0
},
{ /* Method DomainSetVcpu => 384 */
remoteDispatchDomainSetVcpuHelper,
sizeof(remote_domain_set_vcpu_args),
(xdrproc_t)xdr_remote_domain_set_vcpu_args,
0,
(xdrproc_t)xdr_void,
true,
0
},
};
size_t remoteNProcs = ARRAY_CARDINALITY(remoteProcs);

+ 1
- 0
daemon/test_libvirtd.aug.in View File

@@ -63,3 +63,4 @@ module Test_libvirtd =
{ "admin_keepalive_required" = "1" }
{ "admin_keepalive_interval" = "5" }
{ "admin_keepalive_count" = "5" }
{ "ovs_timeout" = "5" }

+ 4
- 2
docs/Makefile.in View File

@@ -222,7 +222,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/uname.m4 $(top_srcdir)/m4/ungetc.m4 \
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlockpt.m4 \
$(top_srcdir)/m4/usleep.m4 $(top_srcdir)/m4/vasnprintf.m4 \
$(top_srcdir)/m4/vasprintf.m4 \
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/virt-acl.m4 \
$(top_srcdir)/m4/virt-apparmor.m4 $(top_srcdir)/m4/virt-arg.m4 \
$(top_srcdir)/m4/virt-atomic.m4 $(top_srcdir)/m4/virt-attr.m4 \
$(top_srcdir)/m4/virt-audit.m4 $(top_srcdir)/m4/virt-avahi.m4 \
@@ -297,6 +297,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/virt-storage-rbd.m4 \
$(top_srcdir)/m4/virt-storage-scsi.m4 \
$(top_srcdir)/m4/virt-storage-sheepdog.m4 \
$(top_srcdir)/m4/virt-storage-vstorage.m4 \
$(top_srcdir)/m4/virt-storage-zfs.m4 \
$(top_srcdir)/m4/virt-sysctl.m4 \
$(top_srcdir)/m4/virt-tls-priority.m4 \
@@ -472,7 +473,6 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLIBC21 = @GLIBC21@
GLUSTERFS_CFLAGS = @GLUSTERFS_CFLAGS@
GLUSTERFS_LIBS = @GLUSTERFS_LIBS@
GLUSTER_CLI = @GLUSTER_CLI@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
GNULIB_ACCEPT = @GNULIB_ACCEPT@
@@ -1771,6 +1771,8 @@ VGREMOVE = @VGREMOVE@
VGS = @VGS@
VGSCAN = @VGSCAN@
VIR_TEST_EXPENSIVE_DEFAULT = @VIR_TEST_EXPENSIVE_DEFAULT@
VSTORAGE = @VSTORAGE@
VSTORAGE_MOUNT = @VSTORAGE_MOUNT@
WARN_CFLAGS = @WARN_CFLAGS@
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
WIN32_EXTRA_CFLAGS = @WIN32_EXTRA_CFLAGS@


+ 3
- 1
docs/devhelp/libvirt.devhelp View File

@@ -204,7 +204,6 @@
<function name="VIR_PERF_PARAM_BRANCH_INSTRUCTIONS" link="libvirt-libvirt-domain.html#VIR_PERF_PARAM_BRANCH_INSTRUCTIONS"/>
<function name="VIR_PERF_PARAM_BRANCH_MISSES" link="libvirt-libvirt-domain.html#VIR_PERF_PARAM_BRANCH_MISSES"/>
<function name="VIR_PERF_PARAM_BUS_CYCLES" link="libvirt-libvirt-domain.html#VIR_PERF_PARAM_BUS_CYCLES"/>
<function name="VIR_PERF_PARAM_CACHE_L1D" link="libvirt-libvirt-domain.html#VIR_PERF_PARAM_CACHE_L1D"/>
<function name="VIR_PERF_PARAM_CACHE_MISSES" link="libvirt-libvirt-domain.html#VIR_PERF_PARAM_CACHE_MISSES"/>
<function name="VIR_PERF_PARAM_CACHE_REFERENCES" link="libvirt-libvirt-domain.html#VIR_PERF_PARAM_CACHE_REFERENCES"/>
<function name="VIR_PERF_PARAM_CMT" link="libvirt-libvirt-domain.html#VIR_PERF_PARAM_CMT"/>
@@ -275,6 +274,7 @@
<function name="VIR_CONNECT_LIST_NETWORKS_NO_AUTOSTART" link="libvirt-libvirt-network.html#VIR_CONNECT_LIST_NETWORKS_NO_AUTOSTART"/>
<function name="VIR_CONNECT_LIST_NETWORKS_PERSISTENT" link="libvirt-libvirt-network.html#VIR_CONNECT_LIST_NETWORKS_PERSISTENT"/>
<function name="VIR_CONNECT_LIST_NETWORKS_TRANSIENT" link="libvirt-libvirt-network.html#VIR_CONNECT_LIST_NETWORKS_TRANSIENT"/>
<function name="VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM" link="libvirt-libvirt-nodedev.html#VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM"/>
<function name="VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST" link="libvirt-libvirt-nodedev.html#VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST"/>
<function name="VIR_CONNECT_LIST_NODE_DEVICES_CAP_NET" link="libvirt-libvirt-nodedev.html#VIR_CONNECT_LIST_NODE_DEVICES_CAP_NET"/>
<function name="VIR_CONNECT_LIST_NODE_DEVICES_CAP_PCI_DEV" link="libvirt-libvirt-nodedev.html#VIR_CONNECT_LIST_NODE_DEVICES_CAP_PCI_DEV"/>
@@ -308,6 +308,7 @@
<function name="VIR_CONNECT_LIST_STORAGE_POOLS_SCSI" link="libvirt-libvirt-storage.html#VIR_CONNECT_LIST_STORAGE_POOLS_SCSI"/>
<function name="VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG" link="libvirt-libvirt-storage.html#VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG"/>
<function name="VIR_CONNECT_LIST_STORAGE_POOLS_TRANSIENT" link="libvirt-libvirt-storage.html#VIR_CONNECT_LIST_STORAGE_POOLS_TRANSIENT"/>
<function name="VIR_CONNECT_LIST_STORAGE_POOLS_VSTORAGE" link="libvirt-libvirt-storage.html#VIR_CONNECT_LIST_STORAGE_POOLS_VSTORAGE"/>
<function name="VIR_CONNECT_LIST_STORAGE_POOLS_ZFS" link="libvirt-libvirt-storage.html#VIR_CONNECT_LIST_STORAGE_POOLS_ZFS"/>
<function name="VIR_CONNECT_NO_ALIASES" link="libvirt-libvirt-host.html#VIR_CONNECT_NO_ALIASES"/>
<function name="VIR_CONNECT_RO" link="libvirt-libvirt-host.html#VIR_CONNECT_RO"/>
@@ -1570,6 +1571,7 @@
<function name="virDomainSetSchedulerParametersFlags ()" link="libvirt-libvirt-domain.html#virDomainSetSchedulerParametersFlags"/>
<function name="virDomainSetTime ()" link="libvirt-libvirt-domain.html#virDomainSetTime"/>
<function name="virDomainSetUserPassword ()" link="libvirt-libvirt-domain.html#virDomainSetUserPassword"/>
<function name="virDomainSetVcpu ()" link="libvirt-libvirt-domain.html#virDomainSetVcpu"/>
<function name="virDomainSetVcpus ()" link="libvirt-libvirt-domain.html#virDomainSetVcpus"/>
<function name="virDomainSetVcpusFlags ()" link="libvirt-libvirt-domain.html#virDomainSetVcpusFlags"/>
<function name="virDomainShutdown ()" link="libvirt-libvirt-domain.html#virDomainShutdown"/>


+ 20
- 0
docs/downloads.html View File

@@ -134,6 +134,26 @@
</td><td rowspan="1" colspan="1">
<a href="https://gitlab.com/libvirt/libvirt-glib" shape="rect">gitlab</a>
<a href="https://github.com/libvirt/libvirt-glib" shape="rect">github</a>
</td><td rowspan="1" colspan="1"></td></tr><tr><td rowspan="1" colspan="1">Go XML</td><td rowspan="1" colspan="1">
<a href="ftp://libvirt.org/libvirt/go/" shape="rect">ftp</a>
<a href="http://libvirt.org/sources/go/" shape="rect">http</a>
<a href="https://libvirt.org/sources/go/" shape="rect">https</a>
</td><td rowspan="1" colspan="1">
<a href="http://libvirt.org/git/?p=libvirt-go-xml.git;a=summary" shape="rect">libvirt</a>
</td><td rowspan="1" colspan="1">
<a href="https://gitlab.com/libvirt/libvirt-go-xml" shape="rect">gitlab</a>
<a href="https://github.com/libvirt/libvirt-go-xml" shape="rect">github</a>
</td><td rowspan="1" colspan="1">
<a href="https://godoc.org/github.com/libvirt/libvirt-go-xml" shape="rect">api ref</a>
</td></tr><tr><td rowspan="1" colspan="1">Console Proxy</td><td rowspan="1" colspan="1">
<a href="ftp://libvirt.org/libvirt/consoleproxy/" shape="rect">ftp</a>
<a href="http://libvirt.org/sources/consoleproxy/" shape="rect">http</a>
<a href="https://libvirt.org/sources/consoleproxy/" shape="rect">https</a>
</td><td rowspan="1" colspan="1">
<a href="http://libvirt.org/git/?p=libvirt-console-proxy.git;a=summary" shape="rect">libvirt</a>
</td><td rowspan="1" colspan="1">
<a href="https://gitlab.com/libvirt/libvirt-console-proxy" shape="rect">gitlab</a>
<a href="https://github.com/libvirt/libvirt-console-proxy" shape="rect">github</a>
</td><td rowspan="1" colspan="1"></td></tr><tr><td rowspan="1" colspan="1">CIM provider</td><td rowspan="1" colspan="1">
<a href="ftp://libvirt.org/libvirt/CIM/" shape="rect">ftp</a>
<a href="http://libvirt.org/sources/CIM/" shape="rect">http</a>


+ 34
- 0
docs/downloads.html.in View File

@@ -197,6 +197,40 @@
</td>
<td></td>
</tr>
<tr>
<td>Go XML</td>
<td>
<a href="ftp://libvirt.org/libvirt/go/">ftp</a>
<a href="http://libvirt.org/sources/go/">http</a>
<a href="https://libvirt.org/sources/go/">https</a>
</td>
<td>
<a href="http://libvirt.org/git/?p=libvirt-go-xml.git;a=summary">libvirt</a>
</td>
<td>
<a href="https://gitlab.com/libvirt/libvirt-go-xml">gitlab</a>
<a href="https://github.com/libvirt/libvirt-go-xml">github</a>
</td>
<td>
<a href="https://godoc.org/github.com/libvirt/libvirt-go-xml">api ref</a>
</td>
</tr>
<tr>
<td>Console Proxy</td>
<td>
<a href="ftp://libvirt.org/libvirt/consoleproxy/">ftp</a>
<a href="http://libvirt.org/sources/consoleproxy/">http</a>
<a href="https://libvirt.org/sources/consoleproxy/">https</a>
</td>
<td>
<a href="http://libvirt.org/git/?p=libvirt-console-proxy.git;a=summary">libvirt</a>
</td>
<td>
<a href="https://gitlab.com/libvirt/libvirt-console-proxy">gitlab</a>
<a href="https://github.com/libvirt/libvirt-console-proxy">github</a>
</td>
<td></td>
</tr>
<tr>
<td>CIM provider</td>
<td>


+ 17
- 0
docs/drvbhyve.html View File

@@ -32,6 +32,8 @@
<a href="#grubbhyve">Using grub2-bhyve or Alternative Bootloaders</a>
</li><li>
<a href="#clockconfig">Clock configuration</a>
</li><li>
<a href="#e1000">e1000 NIC</a>
</li></ul>
</li></ul>
<p>
@@ -287,6 +289,21 @@ you'll need to explicitly specify 'localtime' in this case:</p>
&lt;clock offset='localtime'/&gt;
...
&lt;/domain&gt;
</pre>
<h3>
<a name="e1000" shape="rect" id="e1000">e1000 NIC</a>
<a class="headerlink" href="#e1000" title="Permalink to this headline">¶</a>
</h3>
<p>As of <a href="https://svnweb.freebsd.org/changeset/base/302504" shape="rect">r302504</a> bhyve
supports Intel e1000 network adapter emulation. It's supported in libvirt
<span class="since">since 3.1.0</span> and could be used as follows:</p>
<pre xml:space="preserve">
...
&lt;interface type='bridge'&gt;
&lt;source bridge='virbr0'/&gt;
&lt;model type='<b>e1000</b>'/&gt;
&lt;/interface&gt;
...
</pre>
</div>
</div>


+ 15
- 0
docs/drvbhyve.html.in View File

@@ -276,6 +276,21 @@ you'll need to explicitly specify 'localtime' in this case:</p>
&lt;clock offset='localtime'/&gt;
...
&lt;/domain&gt;
</pre>

<h3><a name="e1000">e1000 NIC</a></h3>

<p>As of <a href="https://svnweb.freebsd.org/changeset/base/302504">r302504</a> bhyve
supports Intel e1000 network adapter emulation. It's supported in libvirt
<span class="since">since 3.1.0</span> and could be used as follows:</p>

<pre>
...
&lt;interface type='bridge'&gt;
&lt;source bridge='virbr0'/&gt;
&lt;model type='<b>e1000</b>'/&gt;
&lt;/interface&gt;
...
</pre>

</body>


+ 47
- 24
docs/formatdomain.html View File

@@ -126,6 +126,8 @@
<a href="#elementVlanTag">Setting VLAN tag (on supported network types only)</a>
</li><li>
<a href="#elementLink">Modifying virtual link state</a>
</li><li>
<a href="#mtu">MTU configuration</a>
</li><li>
<a href="#ipconfig">IP configuration</a>
</li><li>
@@ -938,6 +940,9 @@
&lt;/hugepages&gt;
&lt;nosharepages/&gt;
&lt;locked/&gt;
&lt;source type="file|anonymous"/&gt;
&lt;access mode="shared|private"/&gt;
&lt;allocation mode="immediate|ondemand"/&gt;
&lt;/memoryBacking&gt;
...
&lt;/domain&gt;
@@ -968,7 +973,7 @@
setting the memory limit too high (and thus allowing the domain to lock
most of the host's memory). Doing so may be dangerous to both the
domain and the host itself since the host's kernel may run out of
memory. <span class="since">Since 1.0.6</span></dd></dl>
memory. <span class="since">Since 1.0.6</span></dd><dt><code>source</code></dt><dd>In this attribute you can switch to file memorybacking or keep default anonymous.</dd><dt><code>access</code></dt><dd>Specify if memory is shared or private. This can be overridden per numa node by <code>memAccess</code></dd><dt><code>allocation</code></dt><dd>Specify when allocate the memory</dd></dl>
<h3>
<a name="elementsMemoryTuning" shape="rect" id="elementsMemoryTuning">Memory Tuning</a>
<a class="headerlink" href="#elementsMemoryTuning" title="Permalink to this headline">¶</a>
@@ -1245,7 +1250,7 @@
it's a good idea to avoid using <code>host-model</code> and use
<code>custom</code> mode with just the CPU model from host
capabilities XML.
<span class="since">(Since 1.2.11)</span>. PowerISA allows
<span class="since">Since 1.2.11</span> PowerISA allows
processors to run VMs in binary compatibility mode supporting an
older version of ISA. Libvirt on PowerPC architecture uses the
<code>host-model</code> to signify a guest mode CPU running in
@@ -1267,16 +1272,6 @@
hosts are not identical in both hardware and configuration. If such
a migration is attempted then the guest may hang or crash upon
resuming execution on the destination host.</dd></dl>

In both <code>host-model</code> and <code>host-passthrough</code>
mode, the real (approximate in <code>host-passthrough</code> mode) CPU
definition which would be used on current host can be determined by
specifying <code>VIR_DOMAIN_XML_UPDATE_CPU</code> flag when calling
<code>virDomainGetXMLDesc</code> API. When running a guest that might
be prone to operating system reactivation when presented with
different hardware, and which will be migrated between hosts with
different capabilities, you can use this output to rewrite XML to the
<code>custom</code> mode for more robust migration.
</dd><dt><code>model</code></dt><dd>The content of the <code>model</code> element specifies CPU model
requested by the guest. The list of available CPU models and their
definition can be found in <code>cpu_map.xml</code> file installed
@@ -4440,6 +4435,26 @@ qemu-kvm -net nic,model=? /dev/null
behaves as if it had the network cable disconnected. Default behavior if this
element is unspecified is to have the link state <code>up</code>.
<span class="since">Since 0.9.5</span>
</p>
<h5>
<a name="mtu" shape="rect" id="mtu">MTU configuration</a>
<a class="headerlink" href="#mtu" title="Permalink to this headline">¶</a>
</h5>
<pre xml:space="preserve">
...
&lt;devices&gt;
&lt;interface type='network'&gt;
&lt;source network='default'/&gt;
&lt;target dev='vnet0'/&gt;
<b>&lt;mtu size='1500'/&gt;</b>
&lt;/interface&gt;
&lt;/devices&gt;
...</pre>
<p>
This element provides means of setting MTU of the virtual network link.
Currently there is just one attribute <code>size</code> which accepts a
non-negative integer which specifies the MTU size for the interface.
<span class="since">Since 3.1.0</span>
</p>
<h5>
<a name="ipconfig" shape="rect" id="ipconfig">IP configuration</a>
@@ -4704,12 +4719,13 @@ qemu-kvm -net nic,model=? /dev/null
should be auto-allocated). The <code>autoport</code> attribute is
the new preferred syntax for indicating auto-allocation of the TCP
port to use. The <code>passwd</code> attribute provides a VNC
password in clear text. The <code>keymap</code> attribute specifies
the keymap to use. It is possible to set a limit on the validity of
the password by giving an timestamp
<code>passwdValidTo='2010-04-09T15:51:00'</code> assumed to be
in UTC. The <code>connected</code> attribute allows control of
connected client during password changes. VNC accepts
password in clear text. If the <code>passwd</code> attribute is
set to an empty string, then VNC access is disabled. The
<code>keymap</code> attribute specifies the keymap to use. It is
possible to set a limit on the validity of the password by giving
an timestamp <code>passwdValidTo='2010-04-09T15:51:00'</code>
assumed to be in UTC. The <code>connected</code> attribute allows
control of connected client during password changes. VNC accepts
<code>keep</code> value only <span class="since">since 0.9.3</span>.
NB, this may not be supported by all hypervisors.
</p>
@@ -4743,11 +4759,13 @@ qemu-kvm -net nic,model=? /dev/null
an alternative secure port number. The <code>autoport</code>
attribute is the new preferred syntax for indicating
auto-allocation of needed port numbers. The <code>passwd</code>
attribute provides a SPICE password in clear text. The
<code>keymap</code> attribute specifies the keymap to use. It is
possible to set a limit on the validity of the password by giving
an timestamp <code>passwdValidTo='2010-04-09T15:51:00'</code>
assumed to be in UTC.
attribute provides a SPICE password in clear text. If the
<code>passwd</code> attribute is set to an empty string, then
SPICE access is disabled. The <code>keymap</code> attribute
specifies the keymap to use. It is possible to set a limit on
the validity of the password by giving an timestamp
<code>passwdValidTo='2010-04-09T15:51:00'</code> assumed to be
in UTC.
</p>
<p>
The <code>connected</code> attribute allows control of connected
@@ -4791,7 +4809,7 @@ qemu-kvm -net nic,model=? /dev/null
&lt;clipboard copypaste='no'/&gt;
&lt;mouse mode='client'/&gt;
&lt;filetransfer enable='no'/&gt;
&lt;gl enable='yes'/&gt;
&lt;gl enable='yes' rendernode='/dev/dri/by-path/pci-0000:00:02.0-render'/&gt;
&lt;/graphics&gt;</pre>
<p>
Spice supports variable compression settings for audio, images and
@@ -4837,6 +4855,11 @@ qemu-kvm -net nic,model=? /dev/null
the <code>gl</code> element, by setting the <code>enable</code>
property. (QEMU only, <span class="since">since 1.3.3</span>).
</p>
<p>
By default, QEMU will pick the first available GPU DRM render node.
You may specify a DRM render node path to use instead. (QEMU only,
<span class="since">since 3.1.0</span>).
</p>
</dd><dt><code>rdp</code></dt><dd>
<p>
Starts a RDP server. The <code>port</code> attribute specifies the


+ 49
- 23
docs/formatdomain.html.in View File

@@ -903,6 +903,9 @@
&lt;/hugepages&gt;
&lt;nosharepages/&gt;
&lt;locked/&gt;
&lt;source type="file|anonymous"/&gt;
&lt;access mode="shared|private"/&gt;
&lt;allocation mode="immediate|ondemand"/&gt;
&lt;/memoryBacking&gt;
...
&lt;/domain&gt;
@@ -942,6 +945,12 @@
most of the host's memory). Doing so may be dangerous to both the
domain and the host itself since the host's kernel may run out of
memory. <span class="since">Since 1.0.6</span></dd>
<dt><code>source</code></dt>
<dd>In this attribute you can switch to file memorybacking or keep default anonymous.</dd>
<dt><code>access</code></dt>
<dd>Specify if memory is shared or private. This can be overridden per numa node by <code>memAccess</code></dd>
<dt><code>allocation</code></dt>
<dd>Specify when allocate the memory</dd>
</dl>


@@ -1273,7 +1282,7 @@
it's a good idea to avoid using <code>host-model</code> and use
<code>custom</code> mode with just the CPU model from host
capabilities XML.
<span class="since">(Since 1.2.11)</span>. PowerISA allows
<span class="since">Since 1.2.11</span> PowerISA allows
processors to run VMs in binary compatibility mode supporting an
older version of ISA. Libvirt on PowerPC architecture uses the
<code>host-model</code> to signify a guest mode CPU running in
@@ -1298,16 +1307,6 @@
a migration is attempted then the guest may hang or crash upon
resuming execution on the destination host.</dd>
</dl>

In both <code>host-model</code> and <code>host-passthrough</code>
mode, the real (approximate in <code>host-passthrough</code> mode) CPU
definition which would be used on current host can be determined by
specifying <code>VIR_DOMAIN_XML_UPDATE_CPU</code> flag when calling
<code>virDomainGetXMLDesc</code> API. When running a guest that might
be prone to operating system reactivation when presented with
different hardware, and which will be migrated between hosts with
different capabilities, you can use this output to rewrite XML to the
<code>custom</code> mode for more robust migration.
</dd>

<dt><code>model</code></dt>
@@ -5215,6 +5214,25 @@ qemu-kvm -net nic,model=? /dev/null
<span class="since">Since 0.9.5</span>
</p>

<h5><a name="mtu">MTU configuration</a></h5>
<pre>
...
&lt;devices&gt;
&lt;interface type='network'&gt;
&lt;source network='default'/&gt;
&lt;target dev='vnet0'/&gt;
<b>&lt;mtu size='1500'/&gt;</b>
&lt;/interface&gt;
&lt;/devices&gt;
...</pre>

<p>
This element provides means of setting MTU of the virtual network link.
Currently there is just one attribute <code>size</code> which accepts a
non-negative integer which specifies the MTU size for the interface.
<span class="since">Since 3.1.0</span>
</p>

<h5><a name="ipconfig">IP configuration</a></h5>
<pre>
...
@@ -5499,12 +5517,13 @@ qemu-kvm -net nic,model=? /dev/null
should be auto-allocated). The <code>autoport</code> attribute is
the new preferred syntax for indicating auto-allocation of the TCP
port to use. The <code>passwd</code> attribute provides a VNC
password in clear text. The <code>keymap</code> attribute specifies
the keymap to use. It is possible to set a limit on the validity of
the password by giving an timestamp
<code>passwdValidTo='2010-04-09T15:51:00'</code> assumed to be
in UTC. The <code>connected</code> attribute allows control of
connected client during password changes. VNC accepts
password in clear text. If the <code>passwd</code> attribute is
set to an empty string, then VNC access is disabled. The
<code>keymap</code> attribute specifies the keymap to use. It is
possible to set a limit on the validity of the password by giving
an timestamp <code>passwdValidTo='2010-04-09T15:51:00'</code>
assumed to be in UTC. The <code>connected</code> attribute allows
control of connected client during password changes. VNC accepts
<code>keep</code> value only <span class="since">since 0.9.3</span>.
NB, this may not be supported by all hypervisors.
</p>
@@ -5540,11 +5559,13 @@ qemu-kvm -net nic,model=? /dev/null
an alternative secure port number. The <code>autoport</code>
attribute is the new preferred syntax for indicating
auto-allocation of needed port numbers. The <code>passwd</code>
attribute provides a SPICE password in clear text. The
<code>keymap</code> attribute specifies the keymap to use. It is
possible to set a limit on the validity of the password by giving
an timestamp <code>passwdValidTo='2010-04-09T15:51:00'</code>
assumed to be in UTC.
attribute provides a SPICE password in clear text. If the
<code>passwd</code> attribute is set to an empty string, then
SPICE access is disabled. The <code>keymap</code> attribute
specifies the keymap to use. It is possible to set a limit on
the validity of the password by giving an timestamp
<code>passwdValidTo='2010-04-09T15:51:00'</code> assumed to be
in UTC.
</p>
<p>
The <code>connected</code> attribute allows control of connected
@@ -5588,7 +5609,7 @@ qemu-kvm -net nic,model=? /dev/null
&lt;clipboard copypaste='no'/&gt;
&lt;mouse mode='client'/&gt;
&lt;filetransfer enable='no'/&gt;
&lt;gl enable='yes'/&gt;
&lt;gl enable='yes' rendernode='/dev/dri/by-path/pci-0000:00:02.0-render'/&gt;
&lt;/graphics&gt;</pre>
<p>
Spice supports variable compression settings for audio, images and
@@ -5634,6 +5655,11 @@ qemu-kvm -net nic,model=? /dev/null
the <code>gl</code> element, by setting the <code>enable</code>
property. (QEMU only, <span class="since">since 1.3.3</span>).
</p>
<p>
By default, QEMU will pick the first available GPU DRM render node.
You may specify a DRM render node path to use instead. (QEMU only,
<span class="since">since 3.1.0</span>).
</p>
</dd>
<dt><code>rdp</code></dt>
<dd>


+ 17
- 4
docs/formatnetwork.html View File

@@ -103,7 +103,7 @@
be used to set that attribute of the same name for each domain
interface connected to this network (<span class="since">since
1.2.10</span>). See
the <a href="formatdomain.html#elementSNICS" shape="rect">Network
the <a href="formatdomain.html#elementsNICS" shape="rect">Network
interfaces</a> section of the domain XML documentation for
more details. Note that an explicit setting of this attribute
in a portgroup or the individual domain interface will
@@ -119,6 +119,7 @@
<pre xml:space="preserve">
...
&lt;bridge name="virbr0" stp="on" delay="5" macTableManager="libvirt"/&gt;
&lt;mtu size="9000"/&gt;
&lt;domain name="example.com" localOnly="no"/&gt;
&lt;forward mode="nat" dev="eth0"/&gt;
...</pre>
@@ -174,8 +175,20 @@
<span class="since">Since 1.2.11, requires kernel 3.17 or
newer</span>
</p>


</dd><dt><code>mtu</code></dt><dd>
The <code>size</code> attribute of the <code>mtu&gt;</code>
element specifies the Maximum Transmission Unit (MTU) for the
network. <span class="since">Since 3.1.0</span>. In the case
of a libvirt-managed network (one with forward mode
of <code>nat</code>, <code>route</code>, <code>open</code>, or
no <code>forward</code> element (i.e. an isolated network),
this will be the MTU assigned to the bridge device when
libvirt creates it, and thereafter also assigned to all tap
devices created to connect guest interfaces. Network types not
specifically mentioned here don't support having an MTU set in
the libvirt network config. If mtu size is unspecified, the
default setting for the type of device being used is assumed
(usually 1500).
</dd><dt><code>domain</code></dt><dd>
The <code>name</code> attribute on the <code>domain</code>
element defines the DNS domain of the DHCP server. This
@@ -754,7 +767,7 @@
set that attribute of the same name for each domain interface
using this portgroup (<span class="since">since
1.2.10</span>). See
the <a href="formatdomain.html#elementSNICS" shape="rect">Network
the <a href="formatdomain.html#elementsNICS" shape="rect">Network
interfaces</a> section of the domain XML documentation for more
details. Note that an explicit setting of this attribute in the
portgroup overrides the network-wide setting, and an explicit


+ 20
- 3
docs/formatnetwork.html.in View File

@@ -76,7 +76,7 @@
be used to set that attribute of the same name for each domain
interface connected to this network (<span class="since">since
1.2.10</span>). See
the <a href="formatdomain.html#elementSNICS">Network
the <a href="formatdomain.html#elementsNICS">Network
interfaces</a> section of the domain XML documentation for
more details. Note that an explicit setting of this attribute
in a portgroup or the individual domain interface will
@@ -93,6 +93,7 @@
<pre>
...
&lt;bridge name="virbr0" stp="on" delay="5" macTableManager="libvirt"/&gt;
&lt;mtu size="9000"/&gt;
&lt;domain name="example.com" localOnly="no"/&gt;
&lt;forward mode="nat" dev="eth0"/&gt;
...</pre>