mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
autoconf: add libnl3 dependency for Remus network buffering support
Libnl3 is required for controlling Remus network buffering.
This patch adds dependency on libnl3 (>= 3.2.8) to autoconf scripts.
It also provides the ability to configure tools without libnl3 support
i.e., without network buffering support.
When there is no network buffering support, libxl__netbuffer_enabled()
returns 0, otherwise returns 1. The callers of this api will be
introduced in the rest of the series.
NOTE: This patch changes tools/configure.ac, please rerun
autogen.sh while applying the patch.
Signed-off-by: Shriram Rajagopalan <rshriram@cs.ubc.ca>
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
Reviewed-by: Wen Congyang <wency@cn.fujitsu.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
1 parent
7c52b9231f
commit
622e837570
8 files changed
+106
No files matched your search
@@ -73,6 +73,10 @@ disabled at compile time:
|
||||
* markdown
|
||||
* figlet (for generating the traditional Xen start of day banner)
|
||||
* systemd daemon development files
|
||||
* Development install of libnl3 (e.g., libnl-3-200,
|
||||
libnl-3-dev, etc). Required if network buffering is desired
|
||||
when using Remus with libxl. See tools/remus/README for detailed
|
||||
information.
|
||||
|
||||
Second, you need to acquire a suitable kernel for use in domain 0. If
|
||||
possible you should use a kernel provided by your OS distributor. If
|
||||
|
||||
@@ -43,6 +43,9 @@ PTHREAD_LIBS := @PTHREAD_LIBS@
|
||||
|
||||
PTYFUNCS_LIBS := @PTYFUNCS_LIBS@
|
||||
|
||||
LIBNL3_LIBS := @LIBNL3_LIBS@
|
||||
LIBNL3_CFLAGS := @LIBNL3_CFLAGS@
|
||||
|
||||
# Download GIT repositories via HTTP or GIT's own protocol?
|
||||
# GIT's protocol is faster and more robust, when it works at all (firewalls
|
||||
# may block it). We make it the default, but if your GIT repository downloads
|
||||
@@ -62,6 +65,7 @@ CONFIG_BLKTAP1 := @blktap1@
|
||||
CONFIG_BLKTAP2 := @blktap2@
|
||||
CONFIG_VTPM := @vtpm@
|
||||
CONFIG_QEMUU_EXTRA_ARGS:= @EXTRA_QEMUU_CONFIGURE_ARGS@
|
||||
CONFIG_REMUS_NETBUF := @remus_netbuf@
|
||||
|
||||
CONFIG_SYSTEMD := @systemd@
|
||||
SYSTEMD_CFLAGS := @SYSTEMD_CFLAGS@
|
||||
|
||||
@@ -2,3 +2,9 @@ Remus provides fault tolerance for virtual machines by sending continuous
|
||||
checkpoints to a backup, which will activate if the target VM fails.
|
||||
|
||||
See the website at http://wiki.xen.org/wiki/Remus for details.
|
||||
|
||||
Using Remus with libxl on Xen 4.5 and higher:
|
||||
To enable network buffering, you need libnl 3.2.8
|
||||
or higher along with the development headers and command line utilities.
|
||||
If your distro does not have the appropriate libnl3 version, you can find
|
||||
the latest source tarball of libnl3 at http://www.carisma.slowglass.com/~tgr/libnl/
|
||||
@@ -320,6 +320,22 @@ esac
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([yajl/yajl_version.h sys/eventfd.h valgrind/memcheck.h utmp.h])
|
||||
|
||||
# Check for libnl3 >=3.2.8. If present enable remus network buffering.
|
||||
PKG_CHECK_MODULES(LIBNL3, [libnl-3.0 >= 3.2.8 libnl-route-3.0 >= 3.2.8],
|
||||
[libnl3_lib="y"], [libnl3_lib="n"])
|
||||
|
||||
AS_IF([test "x$libnl3_lib" = "xn" ], [
|
||||
AC_MSG_WARN([Disabling support for Remus network buffering.
|
||||
Please install libnl3 libraries, command line tools and devel
|
||||
headers - version 3.2.8 or higher])
|
||||
AC_SUBST(remus_netbuf, [n])
|
||||
],[
|
||||
AC_SUBST(remus_netbuf, [y])
|
||||
])
|
||||
|
||||
AC_SUBST(LIBNL3_LIBS)
|
||||
AC_SUBST(LIBNL3_CFLAGS)
|
||||
|
||||
fi # ! $rump
|
||||
|
||||
AX_AVAILABLE_SYSTEMD()
|
||||
|
||||
@@ -21,11 +21,17 @@ endif
|
||||
|
||||
LIBXL_LIBS =
|
||||
LIBXL_LIBS = $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(LDLIBS_libblktapctl) $(PTYFUNCS_LIBS) $(LIBUUID_LIBS)
|
||||
ifeq ($(CONFIG_REMUS_NETBUF),y)
|
||||
LIBXL_LIBS += $(LIBNL3_LIBS)
|
||||
endif
|
||||
|
||||
CFLAGS_LIBXL += $(CFLAGS_libxenctrl)
|
||||
CFLAGS_LIBXL += $(CFLAGS_libxenguest)
|
||||
CFLAGS_LIBXL += $(CFLAGS_libxenstore)
|
||||
CFLAGS_LIBXL += $(CFLAGS_libblktapctl)
|
||||
ifeq ($(CONFIG_REMUS_NETBUF),y)
|
||||
CFLAGS_LIBXL += $(LIBNL3_CFLAGS)
|
||||
endif
|
||||
CFLAGS_LIBXL += -Wshadow
|
||||
|
||||
LIBXL_LIBS-$(CONFIG_ARM) += -lfdt
|
||||
@@ -43,6 +49,13 @@ LIBXL_OBJS-y += libxl_blktap2.o
|
||||
else
|
||||
LIBXL_OBJS-y += libxl_noblktap2.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_REMUS_NETBUF),y)
|
||||
LIBXL_OBJS-y += libxl_netbuffer.o
|
||||
else
|
||||
LIBXL_OBJS-y += libxl_nonetbuffer.o
|
||||
endif
|
||||
|
||||
LIBXL_OBJS-$(CONFIG_X86) += libxl_cpuid.o libxl_x86.o
|
||||
LIBXL_OBJS-$(CONFIG_ARM) += libxl_nocpuid.o libxl_arm.o
|
||||
|
||||
|
||||
@@ -2586,6 +2586,7 @@ typedef struct libxl__save_helper_state {
|
||||
* marshalling and xc callback functions */
|
||||
} libxl__save_helper_state;
|
||||
|
||||
_hidden int libxl__netbuffer_enabled(libxl__gc *gc);
|
||||
|
||||
/*----- Domain suspend (save) state structure -----*/
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (C) 2014
|
||||
* Author Shriram Rajagopalan <rshriram@cs.ubc.ca>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation; version 2.1 only. with the special
|
||||
* exception on linking described in file LICENSE.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "libxl_osdeps.h" /* must come before any other headers */
|
||||
|
||||
#include "libxl_internal.h"
|
||||
|
||||
int libxl__netbuffer_enabled(libxl__gc *gc)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-basic-offset: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (C) 2014
|
||||
* Author Shriram Rajagopalan <rshriram@cs.ubc.ca>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation; version 2.1 only. with the special
|
||||
* exception on linking described in file LICENSE.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "libxl_osdeps.h" /* must come before any other headers */
|
||||
|
||||
#include "libxl_internal.h"
|
||||
|
||||
int libxl__netbuffer_enabled(libxl__gc *gc)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-basic-offset: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||