Name: vswitch
Summary: Virtual switch
Group: System Environment/Daemons
-URL: http://www.vswitch.org/
+URL: http://www.openvswitch.org/
Version: %{vswitch_version}
-License: GPL3
+
+# The entire source code is ASL 2.0 except datapath/ which is GPLv2
+License: ASL 2.0 and GPLv2
Release: 1
Source: openvswitch-%{vswitch_version}.tar.gz
Buildroot: /tmp/vswitch-xen-rpm
+Requires: kernel-xen = %(echo '%{xen_version}' | sed 's/xen$//')
%description
The vswitch provides standard network bridging functions augmented with
%build
./configure --prefix=%{_prefix} --localstatedir=%{_localstatedir} --with-l26=/lib/modules/%{xen_version}/build --enable-ssl %{build_number}
-make
+make %{_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
$RPM_BUILD_ROOT%{_prefix}/scripts/interface-reconfigure
install -m 755 xenserver/etc_xensource_scripts_vif \
$RPM_BUILD_ROOT%{_prefix}/scripts/vif
-install -m 755 \
+install -m 755 xenserver/root_vswitch_scripts_dump-vif-details \
+ $RPM_BUILD_ROOT%{_prefix}/scripts/dump-vif-details
+install -m 755 xenserver/usr_sbin_xen-bugtool \
+ $RPM_BUILD_ROOT%{_prefix}/scripts/xen-bugtool
+install -m 644 \
xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
$RPM_BUILD_ROOT%{_prefix}/scripts/XSFeatureVSwitch.py
$RPM_BUILD_ROOT/root/vswitch/bin/ovs-controller \
$RPM_BUILD_ROOT/root/vswitch/bin/ovs-discover \
$RPM_BUILD_ROOT/root/vswitch/bin/ovs-kill \
+ $RPM_BUILD_ROOT/root/vswitch/bin/ovs-openflowd \
$RPM_BUILD_ROOT/root/vswitch/bin/ovs-pki \
$RPM_BUILD_ROOT/root/vswitch/bin/ovs-switchui \
$RPM_BUILD_ROOT/root/vswitch/bin/ovs-wdt \
- $RPM_BUILD_ROOT/root/vswitch/bin/secchan \
+ $RPM_BUILD_ROOT/root/vswitch/kernel_modules/veth_mod.ko \
$RPM_BUILD_ROOT/root/vswitch/sbin/ovs-monitor \
$RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-controller.8 \
$RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-discover.8 \
$RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-kill.8 \
+ $RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-openflowd.8 \
$RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-pki.8 \
- $RPM_BUILD_ROOT/root/vswitch/share/man/man8/secchan.8 \
$RPM_BUILD_ROOT/root/vswitch/share/openvswitch
%clean
if ! md5sum -c --status <<EOF
b8e9835862ef1a9cec2a3f477d26c989 /etc/xensource/scripts/vif
51970ad613a3996d5997e18e44db47da /opt/xensource/libexec/interface-reconfigure
+5654c8c36699fcc8744ca9cd5b855414 /usr/sbin/xen-bugtool
EOF
then
printf "\nThe original XenServer scripts replaced by this package\n"
fi
%post
-source /etc/xensource-inventory
-
-xe host-param-set \
- "other-config:vSwitchVersion=%{version}" uuid="$INSTALLATION_UUID" ||
- echo "Could not set vSwitchVersion config parameter"
+if grep -F net.ipv4.conf.all.arp_filter /etc/sysctl.conf >/dev/null 2>&1; then :; else
+ cat >>/etc/sysctl.conf <<EOF
+# This works around an issue in xhad, which binds to a particular
+# Ethernet device, which in turn causes ICMP port unreachable messages
+# if packets are received are on the wrong interface, which in turn
+# can happen if we send out ARP replies on every interface (as Linux
+# does by default) instead of just on the interface that has the IP
+# address being ARPed for, which this sysctl setting in turn works
+# around.
+#
+# Bug #1378.
+net.ipv4.conf.all.arp_filter = 1
+EOF
+fi
# Ensure ovs-vswitchd.conf exists
touch /etc/ovs-vswitchd.conf
|| printf "Could not create script backup directory.\n"
for f in \
/opt/xensource/libexec/interface-reconfigure \
- /etc/xensource/scripts/vif
+ /etc/xensource/scripts/vif \
+ /usr/sbin/xen-bugtool
do
s=$(basename "$f")
t=$(readlink "$f")
# Restore original XenServer scripts
for f in \
/opt/xensource/libexec/interface-reconfigure \
- /etc/xensource/scripts/vif
+ /etc/xensource/scripts/vif \
+ /usr/sbin/xen-bugtool
do
s=$(basename "$f")
if [ ! -f "%{_prefix}/xs-original/$s" ]; then
rm -f /var/log/vswitch*
rm -f /etc/ovs-vswitchd.cacert
- if [ ! -f /etc/xensource-inventory ]; then
- printf "XenSource inventory not present in /etc/xensource-inventory\n"
- printf "Could not remove vSwitchVersion from XAPI database.\n"
- exit 1
- else
- source /etc/xensource-inventory
- xe host-param-remove \
- param-name=other-config param-key=vSwitchVersion \
- uuid="$INSTALLATION_UUID" ||
- echo "Could not clear vSwitchVersion config parameter."
- fi
-
printf "\nYou MUST reboot the server now to complete the change to\n"
printf "standard Xen networking. Attempts to modify networking on the\n"
printf "server or any hosted VM will fail until after the reboot and\n"
/etc/profile.d/vswitch.sh
/root/vswitch/kernel_modules/brcompat_mod.ko
/root/vswitch/kernel_modules/openvswitch_mod.ko
-/root/vswitch/kernel_modules/veth_mod.ko
+/root/vswitch/scripts/dump-vif-details
/root/vswitch/scripts/interface-reconfigure
/root/vswitch/scripts/vif
+/root/vswitch/scripts/xen-bugtool
/root/vswitch/scripts/XSFeatureVSwitch.py
# Following two files are generated automatically by rpm. We don't
# really need them and they won't be used on the XenServer, but there