- Restore 32bit ix86 support in spec file for kmps and domU tools

OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=288
This commit is contained in:
Charles Arnold 2014-01-09 21:49:46 +00:00 committed by Git OBS Bridge
parent 0affc57516
commit 450137503b
10 changed files with 359 additions and 45 deletions

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Tue Jan 9 11:44:11 MST 2014 - carnold@suse.com
- Restore 32bit ix86 support in spec file for kmps and domU tools
-------------------------------------------------------------------
Tue Jan 2 11:52:11 MST 2014 - carnold@suse.com

122
xen.spec
View File

@ -17,7 +17,7 @@
Name: xen
ExclusiveArch: x86_64 %arm aarch64
ExclusiveArch: %ix86 x86_64 %arm aarch64
%define xvers 4.4
%define xvermaj 4
%define changeset 28233
@ -27,12 +27,21 @@ ExclusiveArch: x86_64 %arm aarch64
%define with_debug 0
%define with_stubdom 0
%define with_xend 0
%define with_dom0_support 1
%else
%define with_kmp 1
%define with_debug 1
%define with_stubdom 1
%define with_qemu_traditional 1
%define with_xend 0
%ifarch x86_64
%define with_dom0_support 1
%else
%define with_dom0_support 0
%define with_stubdom 0
%define with_qemu_traditional 0
%define with_xend 0
%endif
%endif
# EFI requires gcc46 or newer
# its available in 12.1 or >= sles11sp2
@ -234,34 +243,37 @@ Patch403: xen.migrate.tools_set_number_of_dirty_pages_during_migration.pat
Patch404: xend-config.patch
Patch405: xend-max-free-mem.patch
Patch406: xend-hvm-default-pae.patch
Patch407: xend-xenapi-console-protocol.patch
Patch408: xend-core-dump-loc.patch
Patch409: xend-xen-api-auth.patch
Patch410: xend-checkpoint-rename.patch
Patch411: xend-xm-save-check-file.patch
Patch412: xend-xm-create-xflag.patch
Patch413: xend-domu-usb-controller.patch
Patch414: xend-devid-or-name.patch
Patch415: xend-migration-domname-fix.patch
Patch416: xend-del_usb_xend_entry.patch
Patch417: xend-xen-domUloader.patch
Patch418: xend-multi-xvdp.patch
Patch419: xend-check_device_status.patch
Patch420: xend-change_home_server.patch
Patch421: xend-minimum-restart-time.patch
Patch422: xend-disable-internal-logrotate.patch
Patch423: xend-console-port-restore.patch
Patch424: xend-vcpu-affinity-fix.patch
Patch425: xend-migration-bridge-check.patch
Patch426: xend-managed-pci-device.patch
Patch427: xend-hvm-firmware-passthrough.patch
Patch428: xend-cpuinfo-model-name.patch
Patch429: xend-xm-reboot-fix.patch
Patch430: xend-domain-lock.patch
Patch431: xend-domain-lock-sfex.patch
Patch432: xend-32on64-extra-mem.patch
Patch433: xend-hv_extid_compatibility.patch
Patch434: xend-xenpaging.autostart.patch
Patch407: xend-vif-route-ifup.patch
Patch408: xend-xenapi-console-protocol.patch
Patch409: xend-core-dump-loc.patch
Patch410: xend-xen-api-auth.patch
Patch411: xend-checkpoint-rename.patch
Patch412: xend-xm-save-check-file.patch
Patch413: xend-xm-create-xflag.patch
Patch414: xend-domu-usb-controller.patch
Patch415: xend-devid-or-name.patch
Patch416: xend-migration-domname-fix.patch
Patch417: xend-del_usb_xend_entry.patch
Patch418: xend-xen-domUloader.patch
Patch419: xend-multi-xvdp.patch
Patch420: xend-check_device_status.patch
Patch421: xend-change_home_server.patch
Patch422: xend-minimum-restart-time.patch
Patch423: xend-disable-internal-logrotate.patch
Patch424: xend-config-enable-dump-comment.patch
Patch425: xend-tools-watchdog-support.patch
Patch426: xend-console-port-restore.patch
Patch427: xend-vcpu-affinity-fix.patch
Patch428: xend-migration-bridge-check.patch
Patch429: xend-managed-pci-device.patch
Patch430: xend-hvm-firmware-passthrough.patch
Patch431: xend-cpuinfo-model-name.patch
Patch432: xend-xm-reboot-fix.patch
Patch433: xend-domain-lock.patch
Patch434: xend-domain-lock-sfex.patch
Patch435: xend-32on64-extra-mem.patch
Patch436: xend-hv_extid_compatibility.patch
Patch437: xend-xenpaging.autostart.patch
# Other bug fixes or features
Patch450: libxen_permissive.patch
Patch451: xenconsole-no-multiple-connections.patch
@ -342,6 +354,8 @@ Authors:
Ewan Mellor <ewan@xensource.com>
...
%if %{?with_dom0_support}0
%package libs
Summary: Xen Virtualization: Libraries
Group: System/Kernel
@ -422,6 +436,7 @@ migrate, and manage virtual machines using the legacy xend/xm toolstack.
In addition to this package you need to install kernel-xen, xen and
xen-libs to use Xen.
%endif
%endif
%package tools-domU
Summary: Xen Virtualization: Control tools for domain U
@ -479,6 +494,8 @@ virtualized guests.
%endif
%if %{?with_dom0_support}0
%package doc-html
Summary: Xen Virtualization: HTML documentation
Group: Documentation/HTML
@ -496,7 +513,7 @@ your browser at file:/usr/share/doc/packages/xen/html/
Authors:
--------
Ian Pratt <ian.pratt@cl.cam.ac.uk>
%endif
%prep
%setup -q -n %xen_build_dir -a 1 -a 2 -a 3 -a 4 -a 5 -a 57 -a 20000
@ -598,6 +615,9 @@ Authors:
%patch432 -p1
%patch433 -p1
%patch434 -p1
%patch435 -p1
%patch436 -p1
%patch437 -p1
%endif
# Other bug fixes or features
%patch450 -p1
@ -661,6 +681,7 @@ configure_flags="${configure_flags} --disable-xend"
--libdir=%{_libdir} \
--datadir=%{_datadir} \
--enable-blktap1 ${configure_flags}
%if %{?with_dom0_support}0
CFLAGS_SAVE=$CFLAGS
%ifnarch %arm aarch64
make -C xenalyze.hg CC="gcc -I../xen/include -DMAX_CPUS=%{max_cpus} ${RPM_OPT_FLAGS}" %{?_smp_mflags} -k
@ -671,6 +692,10 @@ make -C tools/debugger/gdbsx
%if %{?with_xend}0
make -C tools/xen-utils-0.1 XEN_INTREE_BUILD=yes XEN_ROOT=$PWD
%endif
%else
make -C tools/include/xen-foreign %{?_smp_mflags}
make tools docs %{?_smp_mflags}
%endif
%if %{?with_kmp}0
# PV driver modules
export XL=/usr/src/linux
@ -760,6 +785,7 @@ done
%endif
# Stubdom
%if %{?with_dom0_support}0
%if %{?with_stubdom}0
# remove -fstack-protector flag for stubdom build section
export EXTRA_CFLAGS_XEN_TOOLS=$(echo $RPM_OPT_FLAGS |sed -e 's/-fstack-protector//g')
@ -932,6 +958,34 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
# Create symlinks for keymaps
%fdupes -s $RPM_BUILD_ROOT/%{_datadir}
%else
# !with_dom0_support
# 32 bit hypervisor no longer supported. Remove dom0 tools.
rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc
rm -rf $RPM_BUILD_ROOT/%{_datadir}/man
rm -rf $RPM_BUILD_ROOT/%{_libdir}/fs
rm -rf $RPM_BUILD_ROOT/%{_libdir}/xen
rm -rf $RPM_BUILD_ROOT/%{_libdir}/python*
rm -rf $RPM_BUILD_ROOT/usr/sbin
rm -rf $RPM_BUILD_ROOT/etc/xen
rm -rf $RPM_BUILD_ROOT/%{_datadir}/qemu-xen
rm -rf $RPM_BUILD_ROOT/var
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/bash_completion.d/xl.sh
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/xen*
rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/xen*
rm -f $RPM_BUILD_ROOT/%{_bindir}/*store*
rm -f $RPM_BUILD_ROOT/%{_bindir}/*trace*
rm -f $RPM_BUILD_ROOT/%{_bindir}/xenco*
rm -f $RPM_BUILD_ROOT/%{_bindir}/pygrub
rm -f $RPM_BUILD_ROOT/%{_bindir}/remus
rm -f $RPM_BUILD_ROOT/usr/etc/qemu/target-x86_64.conf
rm -f $RPM_BUILD_ROOT/usr/libexec/qemu-bridge-helper
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.so.*
%endif
%if %{?with_dom0_support}0
%files -f xen.files.txt
%defattr(-,root,root)
/boot/xen-%{version}-%{release}.gz
@ -1167,7 +1221,6 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
/etc/xen/scripts/vm-monitor
/etc/xen/scripts/set-lock
%{_libdir}/python%{pyver}/site-packages/xen/remus/*
#%{_libdir}/python%{pyver}/site-packages/xen/sv/*
%{_libdir}/python%{pyver}/site-packages/xen/util/*
%{_libdir}/python%{pyver}/site-packages/xen/xend/*
%{_libdir}/python%{pyver}/site-packages/xen/xm/*
@ -1179,6 +1232,8 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
%{_mandir}/man1/xen-list.1.gz
%endif
%endif
# with_dom0_support
%endif
%files tools-domU
%defattr(-,root,root)
@ -1194,6 +1249,8 @@ rm -f $RPM_BUILD_ROOT/usr/share/man/man1/xen-list.1.gz
%{_libdir}/*.so
/usr/include/*
%if %{?with_dom0_support}0
%files doc-html
%defattr(-,root,root)
%{_defaultdocdir}/xen/html
@ -1288,4 +1345,7 @@ fi
%postun libs -p /sbin/ldconfig
# with_dom0_support
%endif
%changelog

View File

@ -0,0 +1,20 @@
bnc#684305
---
tools/examples/xend-config.sxp | 3 +++
1 file changed, 3 insertions(+)
Index: xen-4.2.0-testing/tools/examples/xend-config.sxp
===================================================================
--- xen-4.2.0-testing.orig/tools/examples/xend-config.sxp
+++ xen-4.2.0-testing/tools/examples/xend-config.sxp
@@ -250,6 +250,9 @@
(dom0-cpus 0)
# Whether to enable core-dumps when domains crash.
+# This setting overrides the per-domain dump value 'on_crash' and causes a
+# core dump on all crashed domains. For finer grain control, it is best to
+# disable this setting (which is default) and use the per-domain controls.
#(enable-dump no)
# The tool used for initiating virtual TPM migration

View File

@ -2,7 +2,7 @@ Index: xen-4.4.0-testing/tools/examples/xend-config.sxp
===================================================================
--- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp
+++ xen-4.4.0-testing/tools/examples/xend-config.sxp
@@ -334,7 +334,7 @@
@@ -354,7 +354,7 @@
# path /<xend-domain-lock-path>/<vm-uuid>
# Return 0 on success, non-zero on error.
#
@ -11,7 +11,7 @@ Index: xen-4.4.0-testing/tools/examples/xend-config.sxp
# -s Lock status. If lock is acquired, print any contents
# on stdout and return 0. Return non-zero if lock is
# available.
@@ -360,6 +360,11 @@
@@ -380,6 +380,11 @@
#
#(xend-domain-lock-utility domain-lock)

View File

@ -12,7 +12,7 @@ Index: xen-4.4.0-testing/tools/examples/xend-config.sxp
===================================================================
--- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp
+++ xen-4.4.0-testing/tools/examples/xend-config.sxp
@@ -301,6 +301,65 @@
@@ -321,6 +321,65 @@
# device assignment could really work properly even after we do this.
#(pci-passthrough-strict-check yes)

View File

@ -10,7 +10,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
'rtc_timeoffset': int,
'parallel': str,
'serial': str,
@@ -520,6 +521,8 @@ class XendConfig(dict):
@@ -522,6 +523,8 @@ class XendConfig(dict):
self['platform']['acpi_firmware'] = ""
if 'timer_mode' not in self['platform']:
self['platform']['timer_mode'] = 1
@ -46,16 +46,16 @@ Index: xen-4.4.0-testing/tools/python/xen/xm/create.py
gopts.var('acpi', val='ACPI',
fn=set_int, default=1,
use="Disable or enable ACPI of HVM domain.")
@@ -1056,7 +1060,7 @@ def configure_hvm(config_image, vals):
@@ -1071,7 +1075,7 @@ def configure_hvm(config_image, vals):
'timer_mode',
'usb', 'usbdevice',
'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten',
- 'vncunused', 'viridian', 'vpt_align',
+ 'vncunused', 'vpt_align',
'watchdog', 'watchdog_action',
'xauthority', 'xen_extended_power_mgmt', 'xen_platform_pci',
'memory_sharing' ]
@@ -1065,6 +1069,10 @@ def configure_hvm(config_image, vals):
@@ -1081,6 +1085,10 @@ def configure_hvm(config_image, vals):
config_image.append([a, vals.__dict__[a]])
if vals.vncpasswd is not None:
config_image.append(['vncpasswd', vals.vncpasswd])

View File

@ -19,7 +19,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xm/create.py
gopts.var('device_model', val='FILE',
fn=set_value, default=None,
use="Path to device model program.")
@@ -1033,6 +1041,7 @@ def configure_hvm(config_image, vals):
@@ -1048,6 +1056,7 @@ def configure_hvm(config_image, vals):
'boot',
'cpuid', 'cpuid_check',
'device_model', 'display',
@ -62,7 +62,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/image.py
self.display = vmConfig['platform'].get('display')
self.xauthority = vmConfig['platform'].get('xauthority')
self.vncconsole = int(vmConfig['platform'].get('vncconsole', 0))
@@ -943,6 +945,38 @@ class HVMImageHandler(ImageHandler):
@@ -945,6 +947,38 @@ class HVMImageHandler(ImageHandler):
self.vm.getDomid() ])
return args
@ -101,7 +101,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/image.py
def buildDomain(self):
store_evtchn = self.vm.getStorePort()
@@ -958,6 +992,8 @@ class HVMImageHandler(ImageHandler):
@@ -960,6 +994,8 @@ class HVMImageHandler(ImageHandler):
log.debug("vcpu_avail = %li", self.vm.getVCpuAvail())
log.debug("acpi = %d", self.acpi)
log.debug("apic = %d", self.apic)
@ -110,7 +110,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/image.py
rc = xc.hvm_build(domid = self.vm.getDomid(),
image = self.loader,
@@ -966,7 +1002,9 @@ class HVMImageHandler(ImageHandler):
@@ -968,7 +1004,9 @@ class HVMImageHandler(ImageHandler):
vcpus = self.vm.getVCpuCount(),
vcpu_avail = self.vm.getVCpuAvail(),
acpi = self.acpi,
@ -134,7 +134,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
'loader': str,
'display' : str,
'fda': str,
@@ -512,6 +514,10 @@ class XendConfig(dict):
@@ -514,6 +516,10 @@ class XendConfig(dict):
self['platform']['nomigrate'] = 0
if self.is_hvm():

View File

@ -0,0 +1,140 @@
Index: xen-4.4.0-testing/tools/python/xen/xm/create.py
===================================================================
--- xen-4.4.0-testing.orig/tools/python/xen/xm/create.py
+++ xen-4.4.0-testing/tools/python/xen/xm/create.py
@@ -517,6 +517,21 @@ gopts.var('usbdevice', val='NAME',
fn=set_value, default='',
use="Name of USB device to add?")
+gopts.var('watchdog', val='NAME',
+ fn=set_value, default='',
+ use="Watchdog device to use. May be ib700 or i6300esb")
+
+gopts.var('watchdog_action', val='reset|shutdown|poweroff|pause|none|dump',
+ fn=set_value, default="reset",
+ use="""Action when watchdog timer expires:
+ - reset: Default, forcefully reset the guest;
+ - shutdown: Gracefully shutdown the guest (not recommended);
+ - poweroff: Forcefully power off the guest;
+ - pause: Pause the guest;
+ - none: Do nothing;
+ - dump: Automatically dump the guest;
+ """)
+
gopts.var('description', val='NAME',
fn=set_value, default='',
use="Description of a domain")
@@ -1048,6 +1063,7 @@ def configure_hvm(config_image, vals):
'usb', 'usbdevice',
'vcpus', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten',
'vncunused', 'viridian', 'vpt_align',
+ 'watchdog', 'watchdog_action',
'xauthority', 'xen_extended_power_mgmt', 'xen_platform_pci',
'memory_sharing' ]
Index: xen-4.4.0-testing/tools/python/xen/xm/xenapi_create.py
===================================================================
--- xen-4.4.0-testing.orig/tools/python/xen/xm/xenapi_create.py
+++ xen-4.4.0-testing/tools/python/xen/xm/xenapi_create.py
@@ -1074,7 +1074,9 @@ class sxp2xml:
'xen_platform_pci',
'tsc_mode'
'description',
- 'nomigrate'
+ 'nomigrate',
+ 'watchdog',
+ 'watchdog_action'
]
platform_configs = []
Index: xen-4.4.0-testing/tools/python/xen/xend/image.py
===================================================================
--- xen-4.4.0-testing.orig/tools/python/xen/xend/image.py
+++ xen-4.4.0-testing/tools/python/xen/xend/image.py
@@ -855,7 +855,8 @@ class HVMImageHandler(ImageHandler):
dmargs = [ 'boot', 'fda', 'fdb', 'soundhw',
'localtime', 'serial', 'stdvga', 'isa',
- 'acpi', 'usb', 'usbdevice', 'gfx_passthru' ]
+ 'acpi', 'usb', 'usbdevice', 'gfx_passthru',
+ 'watchdog', 'watchdog_action' ]
for a in dmargs:
v = vmConfig['platform'].get(a)
@@ -863,6 +864,7 @@ class HVMImageHandler(ImageHandler):
# python doesn't allow '-' in variable names
if a == 'stdvga': a = 'std-vga'
if a == 'keymap': a = 'k'
+ if a == 'watchdog_action': a = 'watchdog-action'
# Handle booleans gracefully
if a in ['localtime', 'std-vga', 'isa', 'usb', 'acpi']:
Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-4.4.0-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
@@ -192,6 +192,8 @@ XENAPI_PLATFORM_CFG_TYPES = {
'xen_platform_pci': int,
"gfx_passthru": int,
'oos' : int,
+ 'watchdog': str,
+ 'watchdog_action': str,
}
# Xen API console 'other_config' keys.
Index: xen-4.4.0-testing/tools/libxl/libxl_dm.c
===================================================================
--- xen-4.4.0-testing.orig/tools/libxl/libxl_dm.c
+++ xen-4.4.0-testing/tools/libxl/libxl_dm.c
@@ -246,6 +246,12 @@ static char ** libxl__build_device_model
}
}
}
+ if (b_info->u.hvm.watchdog || b_info->u.hvm.watchdog_action) {
+ flexarray_append(dm_args, "-watchdog");
+ if (b_info->u.hvm.watchdog_action) {
+ flexarray_vappend(dm_args, "-watchdog-action", b_info->u.hvm.watchdog_action, NULL);
+ }
+ }
if (b_info->u.hvm.soundhw) {
flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
}
@@ -581,6 +587,12 @@ static char ** libxl__build_device_model
return NULL;
}
}
+ if (b_info->u.hvm.watchdog || b_info->u.hvm.watchdog_action) {
+ flexarray_append(dm_args, "-watchdog");
+ if (b_info->u.hvm.watchdog_action) {
+ flexarray_vappend(dm_args, "-watchdog-action", b_info->u.hvm.watchdog_action, NULL);
+ }
+ }
if (b_info->u.hvm.soundhw) {
flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
}
Index: xen-4.4.0-testing/tools/libxl/libxl_types.idl
===================================================================
--- xen-4.4.0-testing.orig/tools/libxl/libxl_types.idl
+++ xen-4.4.0-testing/tools/libxl/libxl_types.idl
@@ -372,6 +372,8 @@ libxl_domain_build_info = Struct("domain
("xen_platform_pci", libxl_defbool),
("usbdevice_list", libxl_string_list),
("vendor_device", libxl_vendor_device),
+ ("watchdog", string),
+ ("watchdog_action", string),
])),
("pv", Struct(None, [("kernel", string),
("slack_memkb", MemKB),
Index: xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c
===================================================================
--- xen-4.4.0-testing.orig/tools/libxl/xl_cmdimpl.c
+++ xen-4.4.0-testing/tools/libxl/xl_cmdimpl.c
@@ -1694,6 +1694,8 @@ skip_vfb:
xlu_cfg_replace_string (config, "soundhw", &b_info->u.hvm.soundhw, 0);
xlu_cfg_get_defbool(config, "xen_platform_pci",
&b_info->u.hvm.xen_platform_pci, 0);
+ xlu_cfg_replace_string (config, "watchdog", &b_info->u.hvm.watchdog, 0);
+ xlu_cfg_replace_string (config, "watchdog_action", &b_info->u.hvm.watchdog_action, 0);
if(b_info->u.hvm.vnc.listen
&& b_info->u.hvm.vnc.display

89
xend-vif-route-ifup.patch Normal file
View File

@ -0,0 +1,89 @@
---
tools/examples/xend-config.sxp | 20 ++++++++++++++++++++
tools/hotplug/Linux/Makefile | 2 +-
tools/hotplug/Linux/vif-route-ifup | 34 ++++++++++++++++++++++++++++++++++
3 files changed, 55 insertions(+), 1 deletion(-)
Index: xen-4.4.0-testing/tools/examples/xend-config.sxp
===================================================================
--- xen-4.4.0-testing.orig/tools/examples/xend-config.sxp
+++ xen-4.4.0-testing/tools/examples/xend-config.sxp
@@ -200,6 +200,26 @@
#(network-script network-route)
#(vif-script vif-route)
+# SuSE users note:
+# If using a routed network configuration it is advised to NOT use
+# network-route and vif-route scripts but instead use sysconfig scripts
+# in dom0 and vif-route-ifup script to "connect" the domU vif to dom0.
+# Since this configuration requires a vif sysconfig script in dom0, a static
+# vif name must be used. E.g. in dom0 the vif sysconfig script
+# (/etc/sysconfig/network/ifcfg-xen1.0) may contain
+#
+# NAME='XEN vm 1 virtual interface 0'
+# BOOTPROTO='static'
+# STARTMODE='hotplug'
+# ...
+#
+# The corresponding domain vif configuration would contain e.g.
+# vif=[ 'mac=00:16:3e:aa:bb:cc,script=vif-route-ifup,vifname=xen1.0', ]
+#
+# If the vif-route-ifup script will be used for all domains, it can be
+# set here as the default vif script, alleviating the need for
+# 'script=' in domain vif configuration.
+#(vif-script vif-route-ifup)
## Use the following if network traffic is routed with NAT, as an alternative
# to the settings for bridged networking given above.
Index: xen-4.4.0-testing/tools/hotplug/Linux/Makefile
===================================================================
--- xen-4.4.0-testing.orig/tools/hotplug/Linux/Makefile
+++ xen-4.4.0-testing/tools/hotplug/Linux/Makefile
@@ -11,7 +11,7 @@ XENCOMMONS_SYSCONFIG = init.d/sysconfig.
# Xen script dir and scripts to go there.
XEN_SCRIPTS = network-bridge vif-bridge
-XEN_SCRIPTS += network-route vif-route
+XEN_SCRIPTS += network-route vif-route vif-route-ifup
XEN_SCRIPTS += network-nat vif-nat
XEN_SCRIPTS += vif-openvswitch
XEN_SCRIPTS += vif2
Index: xen-4.4.0-testing/tools/hotplug/Linux/vif-route-ifup
===================================================================
--- /dev/null
+++ xen-4.4.0-testing/tools/hotplug/Linux/vif-route-ifup
@@ -0,0 +1,34 @@
+#!/bin/bash
+#============================================================================
+# /etc/xen/vif-route-ifup
+#
+# Script for configuring a vif in routed mode.
+# The hotplugging system will call this script if it is specified either in
+# the device configuration given to Xend, or the default Xend configuration
+# in /etc/xen/xend-config.sxp. If the script is specified in neither of those
+# places, then vif-bridge is the default.
+#
+# Usage:
+# vif-route-ifup (add|remove|online|offline)
+#
+# Environment vars:
+# dev vif interface name (required).
+#============================================================================
+
+dir=$(dirname "$0")
+. "$dir/vif-common.sh"
+
+case "$command" in
+ online)
+ ifup ${dev}
+ ;;
+ offline)
+ do_without_error ifdown ${dev}
+ ;;
+esac
+
+log debug "Successful vif-route-ifup $command for ${dev}."
+if [ "$command" = "online" ]
+then
+ success
+fi

View File

@ -107,7 +107,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xend/XendConfig.py
'smbios_firmware': str,
'acpi_firmware': str,
'loader': str,
@@ -515,6 +518,12 @@ class XendConfig(dict):
@@ -517,6 +520,12 @@ class XendConfig(dict):
self['platform']['nomigrate'] = 0
if self.is_hvm():
@ -348,7 +348,7 @@ Index: xen-4.4.0-testing/tools/python/xen/xm/create.py
gopts.var('device_model', val='FILE',
fn=set_value, default=None,
use="Path to device model program.")
@@ -1044,6 +1056,9 @@ def configure_hvm(config_image, vals):
@@ -1059,6 +1071,9 @@ def configure_hvm(config_image, vals):
args = [ 'acpi', 'apic',
'boot',
'cpuid', 'cpuid_check',