# Spec file for vswitch and related programs.
-# Copyright (C) 2009 Nicira Networks, Inc.
+# Copyright (C) 2009, 2010 Nicira Networks, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
install -m 755 xenserver/etc_xapi.d_plugins_vswitch-cfg-update \
$RPM_BUILD_ROOT/etc/xapi.d/plugins/vswitch-cfg-update
install -d -m 755 $RPM_BUILD_ROOT/usr/share/vswitch/scripts
+install -m 644 vswitchd/vswitch.ovsschema \
+ $RPM_BUILD_ROOT/usr/share/vswitch/vswitch.ovsschema
install -m 755 xenserver/opt_xensource_libexec_interface-reconfigure \
$RPM_BUILD_ROOT/usr/share/vswitch/scripts/interface-reconfigure
+install -m 644 xenserver/opt_xensource_libexec_InterfaceReconfigure.py \
+ $RPM_BUILD_ROOT/usr/share/vswitch/scripts/InterfaceReconfigure.py
+install -m 644 xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py \
+ $RPM_BUILD_ROOT/usr/share/vswitch/scripts/InterfaceReconfigureBridge.py
+install -m 644 xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py \
+ $RPM_BUILD_ROOT/usr/share/vswitch/scripts/InterfaceReconfigureVswitch.py
install -m 755 xenserver/etc_xensource_scripts_vif \
$RPM_BUILD_ROOT/usr/share/vswitch/scripts/vif
install -m 755 xenserver/usr_share_vswitch_scripts_dump-vif-details \
$RPM_BUILD_ROOT/usr/share/man/man8/ovs-openflowd.8 \
$RPM_BUILD_ROOT/usr/share/man/man8/ovs-pki.8
rm -f $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/vswitch/veth_mod.ko
-rm -r \
- $RPM_BUILD_ROOT/usr/share/openvswitch/commands
install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch
elif md5sum -c --status <<EOF
ca141d60061dcfdade73e75abc6529b5 /usr/sbin/brctl
b8e9835862ef1a9cec2a3f477d26c989 /etc/xensource/scripts/vif
+51970ad613a3996d5997e18e44db47da /opt/xensource/libexec/interface-reconfigure
+f6519085c2fc5f7bc4eccc294ed62000 /usr/sbin/xen-bugtool
+EOF
+ then
+ printf "\nVerified host scripts from XenServer 5.5.0-24648p (Update 1)\n"
+ printf "or 5.5.0-25727p (Update 2).\n\n"
+ elif md5sum -c --status <<EOF
+ca141d60061dcfdade73e75abc6529b5 /usr/sbin/brctl
+b8e9835862ef1a9cec2a3f477d26c989 /etc/xensource/scripts/vif
ce451d3c985fd1db6497a363f0d9dedb /opt/xensource/libexec/interface-reconfigure
2b53f500431fcba5276c896e9e4281b9 /usr/sbin/xen-bugtool
EOF
fi
fi
-if test ! -e /var/lib/openvswitch/dbcache; then
+if test ! -e /var/xapi/network.dbcache; then
if test "$1" = 1; then
printf "Creating xapi database cache... "
else
EOF
fi
-# Ensure ovs-vswitchd.conf exists
-touch /etc/ovs-vswitchd.conf
+if test ! -e /etc/ovs-vswitchd.conf.db; then
+ # Create ovs-vswitchd config database
+ ovsdb-tool -vANY:console:emer create /etc/ovs-vswitchd.conf.db \
+ /usr/share/vswitch/vswitch.ovsschema \
+
+ # Create initial table in config database
+ ovsdb-tool -vANY:console:emer transact /etc/ovs-vswitchd.conf.db \
+ '[{"op": "insert", "table": "Open_vSwitch", "row": {}}]' \
+ > /dev/null
+fi
# Create default or update existing /etc/sysconfig/vswitch.
SYSCONFIG=/etc/sysconfig/vswitch
|| printf "Could not create script backup directory.\n"
for f in \
/opt/xensource/libexec/interface-reconfigure \
+ /opt/xensource/libexec/InterfaceReconfigure.py \
+ /opt/xensource/libexec/InterfaceReconfigureBridge.py \
+ /opt/xensource/libexec/InterfaceReconfigureVswitch.py \
/etc/xensource/scripts/vif \
/usr/sbin/xen-bugtool \
/usr/sbin/brctl
do
s=$(basename "$f")
t=$(readlink "$f")
- if [ "$t" != "/usr/share/vswitch/scripts/$s" ]; then
+ if [ -f "$f" ] && [ "$t" != "/usr/share/vswitch/scripts/$s" ]; then
mv "$f" /usr/lib/vswitch/xs-original/ \
|| printf "Could not save original XenServer $s script\n"
ln -s "/usr/share/vswitch/scripts/$s" "$f" \
chkconfig $s on || printf "Could not enable $s init script."
done
+# Configure system to use vswitch
+echo vswitch > /etc/xensource/network.conf
+
if [ "$1" = "1" ]; then # $1 = 2 for upgrade
printf "\nYou MUST reboot the server NOW to complete the change to the\n"
printf "the vSwitch. Attempts to modify networking on the server\n"
done
# Remove all configuration files
- rm -f /etc/ovs-vswitchd.conf
+ rm -f /etc/ovs-vswitchd.conf.db
rm -f /etc/sysconfig/vswitch
rm -f /etc/ovs-vswitchd.cacert
- rm -f /var/lib/openvswitch/dbcache
+ rm -f /var/xapi/network.dbcache
+
+ # Configure system to use bridge
+ echo bridge > /etc/xensource/network.conf
printf "\nYou MUST reboot the server now to complete the change to\n"
printf "standard Xen networking. Attempts to modify networking on the\n"
/etc/profile.d/vswitch.sh
/lib/modules/%{xen_version}/kernel/net/vswitch/openvswitch_mod.ko
/lib/modules/%{xen_version}/kernel/net/vswitch/brcompat_mod.ko
+%if %(echo '%{xen_version}'|awk -F"." '{if ($3>=18) print 1; else print 0;}')
+/lib/modules/%{xen_version}/kernel/net/vswitch/ip_gre_mod.ko
+%endif
/usr/share/vswitch/scripts/dump-vif-details
/usr/share/vswitch/scripts/refresh-xs-network-uuids
/usr/share/vswitch/scripts/interface-reconfigure
+/usr/share/vswitch/scripts/InterfaceReconfigure.py
+/usr/share/vswitch/scripts/InterfaceReconfigureBridge.py
+/usr/share/vswitch/scripts/InterfaceReconfigureVswitch.py
/usr/share/vswitch/scripts/vif
/usr/share/vswitch/scripts/xen-bugtool
/usr/share/vswitch/scripts/XSFeatureVSwitch.py
/usr/share/vswitch/scripts/brctl
/usr/share/vswitch/scripts/sysconfig.template
-# 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
-# isn't an obvious place to get rid of them since they are generated
-# after the install script runs. Since they are small, we just
-# include them.
-/usr/share/vswitch/scripts/XSFeatureVSwitch.pyc
-/usr/share/vswitch/scripts/XSFeatureVSwitch.pyo
+/usr/share/vswitch/vswitch.ovsschema
/usr/sbin/ovs-brcompatd
/usr/sbin/ovs-vswitchd
+/usr/sbin/ovsdb-server
/usr/bin/ovs-appctl
/usr/bin/ovs-dpctl
/usr/bin/ovs-ofctl
/usr/bin/ovs-vsctl
+/usr/bin/ovsdb-client
+/usr/bin/ovsdb-tool
+/usr/share/man/man1/ovsdb-client.1.gz
+/usr/share/man/man1/ovsdb-server.1.gz
+/usr/share/man/man1/ovsdb-tool.1.gz
/usr/share/man/man8/ovs-appctl.8.gz
/usr/share/man/man8/ovs-brcompatd.8.gz
/usr/share/man/man8/ovs-dpctl.8.gz
/usr/share/man/man8/ovs-vsctl.8.gz
/usr/share/man/man8/ovs-vswitchd.8.gz
/var/lib/openvswitch
+%exclude /usr/share/vswitch/scripts/*.pyc
+%exclude /usr/share/vswitch/scripts/*.pyo