From: Ben Pfaff Date: Fri, 11 Sep 2009 22:13:08 +0000 (-0700) Subject: xenserver: Install into /usr instead of /root/vswitch. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eaa3c7e88b315d1d018b702ed3b9bea768a966c5;p=openvswitch xenserver: Install into /usr instead of /root/vswitch. /usr is the standard location for installation, so use that instead of our nonstandard location under /root. This migrates everything except the kernel modules to /usr. The kernel modules will be migrated in an upcoming commit. One possibly surprising change is that the manpages listed in the %files section of vswitch-xen.spec not only moved but added .gz extensions. This seems to be because RPM automatically compresses manpages, but only if they are installed in a standard system location. --- diff --git a/xenserver/automake.mk b/xenserver/automake.mk index deb79bc8..32754341 100644 --- a/xenserver/automake.mk +++ b/xenserver/automake.mk @@ -14,9 +14,9 @@ EXTRA_DIST += \ xenserver/etc_xapi.d_plugins_vswitch-cfg-update \ xenserver/etc_xensource_scripts_vif \ xenserver/opt_xensource_libexec_interface-reconfigure \ - xenserver/root_vswitch_scripts_sysconfig.template \ - xenserver/root_vswitch_scripts_dump-vif-details \ xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \ xenserver/usr_sbin_brctl \ xenserver/usr_sbin_xen-bugtool \ + xenserver/usr_share_vswitch_scripts_sysconfig.template \ + xenserver/usr_share_vswitch_scripts_dump-vif-details \ xenserver/vswitch-xen.spec diff --git a/xenserver/etc_init.d_vswitch b/xenserver/etc_init.d_vswitch index 3cfdd5f0..a8907c23 100755 --- a/xenserver/etc_init.d_vswitch +++ b/xenserver/etc_init.d_vswitch @@ -24,7 +24,6 @@ test -e /etc/sysconfig/vswitch && . /etc/sysconfig/vswitch # General config variables in /etc/sysconfig/vswitch -: ${VSWITCH_BASE:=/root/vswitch} : ${ENABLE_BRCOMPAT:=y} : ${ENABLE_FAKE_PROC_NET:=y} : ${FORCE_COREFILES:=y} @@ -57,11 +56,11 @@ test -e /etc/sysconfig/vswitch && . /etc/sysconfig/vswitch : ${BRCOMPATD_VALGRIND_OPT:=} # Full paths to executables & modules -vswitchd="$VSWITCH_BASE/sbin/ovs-vswitchd" -brcompatd="$VSWITCH_BASE/sbin/ovs-brcompatd" -dpctl="$VSWITCH_BASE/bin/ovs-dpctl" -appctl="$VSWITCH_BASE/bin/ovs-appctl" -ofctl="$VSWITCH_BASE/bin/ovs-ofctl" +vswitchd="/usr/sbin/ovs-vswitchd" +brcompatd="/usr/sbin/ovs-brcompatd" +dpctl="/usr/bin/ovs-dpctl" +appctl="/usr/bin/ovs-appctl" +ofctl="/usr/bin/ovs-ofctl" if [ "$ENABLE_FAKE_PROC_NET" = "y" ]; then @@ -303,8 +302,8 @@ case "$1" in status -p ovs-brcompatd.pid ovs-brcompatd ;; version) - "$VSWITCH_BASE"/sbin/ovs-vswitchd -V - "$VSWITCH_BASE"/sbin/ovs-brcompatd -V + /usr/sbin/ovs-vswitchd -V + /usr/sbin/ovs-brcompatd -V ;; help) printf "vswitch [start|stop|restart|reload|unload|status|version]\n" diff --git a/xenserver/etc_init.d_vswitch-xapi-update b/xenserver/etc_init.d_vswitch-xapi-update index ef9bb881..1aa5646d 100755 --- a/xenserver/etc_init.d_vswitch-xapi-update +++ b/xenserver/etc_init.d_vswitch-xapi-update @@ -22,7 +22,6 @@ . /etc/init.d/functions test -e /etc/sysconfig/vswitch && . /etc/sysconfig/vswitch -: ${VSWITCH_BASE:=/root/vswitch} : ${VSWITCHD_CONF:=/etc/ovs-vswitchd.conf} : ${VSWITCHD_PIDFILE:=/var/run/ovs-vswitchd.pid} : ${VSWITCHD_PRIORITY:=-5} diff --git a/xenserver/etc_profile.d_vswitch.sh b/xenserver/etc_profile.d_vswitch.sh index 90927547..527bfcf9 100644 --- a/xenserver/etc_profile.d_vswitch.sh +++ b/xenserver/etc_profile.d_vswitch.sh @@ -5,11 +5,6 @@ # notice and this notice are preserved. This file is offered as-is, # without warranty of any kind. -PATH=/root/vswitch/bin:$PATH -export PATH -MANPATH=/root/vswitch/share/man:$MANPATH -export MANPATH - alias vswitch='service vswitch' function watchconf { diff --git a/xenserver/etc_xapi.d_plugins_vswitch-cfg-update b/xenserver/etc_xapi.d_plugins_vswitch-cfg-update index ce407ad1..536a2f32 100755 --- a/xenserver/etc_xapi.d_plugins_vswitch-cfg-update +++ b/xenserver/etc_xapi.d_plugins_vswitch-cfg-update @@ -30,7 +30,7 @@ import XenAPI import os import subprocess -cfg_mod="/root/vswitch/bin/ovs-cfg-mod" +cfg_mod="/usr/bin/ovs-cfg-mod" vswitchd_cfg_filename="/etc/ovs-vswitchd.conf" cacert_filename="/etc/ovs-vswitchd.cacert" diff --git a/xenserver/etc_xensource_scripts_vif b/xenserver/etc_xensource_scripts_vif index 8217fb00..04aa2bb0 100755 --- a/xenserver/etc_xensource_scripts_vif +++ b/xenserver/etc_xensource_scripts_vif @@ -11,8 +11,8 @@ # Keep other-config/ keys in sync with device.ml:vif_udev_keys -cfg_mod="/root/vswitch/bin/ovs-cfg-mod" -dump_vif_details="/root/vswitch/scripts/dump-vif-details" +cfg_mod="/usr/bin/ovs-cfg-mod" +dump_vif_details="/usr/share/vswitch/scripts/dump-vif-details" service="/sbin/service" TYPE=`echo ${XENBUS_PATH} | cut -f 2 -d '/'` diff --git a/xenserver/opt_xensource_libexec_interface-reconfigure b/xenserver/opt_xensource_libexec_interface-reconfigure index 70749b8a..13c68884 100755 --- a/xenserver/opt_xensource_libexec_interface-reconfigure +++ b/xenserver/opt_xensource_libexec_interface-reconfigure @@ -1031,7 +1031,7 @@ def configure_physdev(pif): run_ethtool(device, oc) def modify_config(commands): - run_command(['/root/vswitch/bin/ovs-cfg-mod', '-vANY:console:emer', + run_command(['/usr/bin/ovs-cfg-mod', '-vANY:console:emer', '-F', '/etc/ovs-vswitchd.conf'] + commands + ['-c']) run_command(['/sbin/service', 'vswitch', 'reload']) diff --git a/xenserver/root_vswitch_scripts_dump-vif-details b/xenserver/root_vswitch_scripts_dump-vif-details deleted file mode 100755 index b0ceb405..00000000 --- a/xenserver/root_vswitch_scripts_dump-vif-details +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/python -# -# Script to retrieve extended information about VIFs that are -# needed by the controller. This is called by the "vif" script, -# which is run when virtual interfaces are added and removed. - -# Copyright (C) 2009 Nicira Networks, Inc. -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without warranty of any kind. - -import sys -import XenAPI -import xen.lowlevel.xs - -# Query XenStore for the opaque reference of this vif -def get_vif_ref(domid, devid): - xenstore = xen.lowlevel.xs.xs() - t = xenstore.transaction_start() - vif_ref = xenstore.read(t, '/xapi/%s/private/vif/%s/ref' % (domid, devid)) - xenstore.transaction_end(t) - return vif_ref - -# Query XAPI for the information we need using the vif's opaque reference -def dump_vif_info(domid, devid, vif_ref): - try: - session = XenAPI.xapi_local() - session.xenapi.login_with_password("root", "") - vif_rec = session.xenapi.VIF.get_record(vif_ref) - net_rec = session.xenapi.network.get_record(vif_rec["network"]) - vm_rec = session.xenapi.VM.get_record(vif_rec["VM"]) - - # Data to allow vNetManager to associate VIFs with xapi data - sys.stdout.write('--add=port.vif%s.%s.net-uuid=%s ' - % (domid, devid, net_rec["uuid"])) - sys.stdout.write('--add=port.vif%s.%s.vif-mac=%s ' - % (domid, devid, vif_rec["MAC"])) - sys.stdout.write('--add=port.vif%s.%s.vif-uuid=%s ' - % (domid, devid, vif_rec["uuid"])) - sys.stdout.write('--add=port.vif%s.%s.vm-uuid=%s ' - % (domid, devid, vm_rec["uuid"])) - - # vNetManager needs to know the network UUID(s) associated with - # each datapath. Normally interface-reconfigure adds them, but - # interface-reconfigure never gets called for internal networks - # (xapi does the addbr ioctl internally), so we have to do it - # here instead for internal networks. This is only acceptable - # because xapi is lazy about creating internal networks: it - # only creates one just before it adds the first vif to it. - # There may still be a brief delay between the initial - # ovs-vswitchd connection to vNetManager and setting this - # configuration variable, but vNetManager can tolerate that. - if len(net_rec['PIFs']) == 0: - key = 'bridge.%s.xs-network-uuids' % net_rec['bridge'] - value = net_rec['uuid'] - sys.stdout.write('--del-match=%s=* ' % key) - sys.stdout.write('--add=%s=%s ' % (key, value)) - finally: - session.xenapi.session.logout() - -if __name__ == '__main__': - if (len(sys.argv) != 3): - sys.stderr.write("ERROR: %s \n") - sys.exit(1) - - domid = sys.argv[1] - devid = sys.argv[2] - - vif_ref = get_vif_ref(domid, devid) - if not vif_ref: - sys.stderr.write("ERROR: Could not find interface vif%s.%s\n" - % (domid, devid)) - sys.exit(1) - - dump_vif_info(domid, devid, vif_ref) - sys.exit(0) diff --git a/xenserver/root_vswitch_scripts_sysconfig.template b/xenserver/root_vswitch_scripts_sysconfig.template deleted file mode 100644 index f848e7b4..00000000 --- a/xenserver/root_vswitch_scripts_sysconfig.template +++ /dev/null @@ -1,153 +0,0 @@ -### Configuration options for vswitch - -# Copyright (C) 2009 Nicira Networks, Inc. -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without warranty of any kind. - -# VSWITCH_BASE: Root directory where vswitch binaries are installed -# VSWITCH_BASE=/root/vswitch/openvswitch/build - -# ENABLE_BRCOMPAT: If 'y' than emulate linux bridging interfaces -# using the brcompat kernel module and ovs-brcompatd daemon -# ENABLE_BRCOMPAT=y - -# ENABLE_FAKE_PROC_NET: If 'y' then emulate linux bonding and vlan -# files in /proc as if the bonding and vlan demultiplexing done in -# ovs-vswitchd were being implemented using existing Linux mechanisms. -# This is useful in some cases when replacing existing solutions. -# ENABLE_FAKE_PROC_NET=y - -# FORCE_COREFILES: If 'y' then core files will be enabled. -# FORCE_COREFILES=y - -# COREFILE_PATTERN: Pattern used to determine path and filename for -# core files when FORCE_COREFILES is 'y'. This is Linux specific. -# See the manpage for "core". -# COREFILE_PATTERN="/var/log/%e-%t" - -# VSWITCHD_CONF: File in which ovs-vswitchd stores its configuration. -# VSWITCHD_CONF=/etc/ovs-vswitchd.conf - -# VSWITCHD_PIDFILE: File in which to store the pid of the running -# ovs-vswitchd. -# VSWITCHD_PIDFILE=/var/run/ovs-vswitchd.pid - -# VSWITCHD_RUN_DIR: Set the directory in which ovs-vswitchd should be -# run. This mainly affects where core files will be placed. -# VSWITCHD_RUN_DIR=/var/xen/vswitch - -# VSWITCHD_PRIORITY: "nice" priority at which to run ovs-vswitchd and related -# processes. -# VSWITCHD_PRIORITY=-10 - -# VSWITCHD_LOGFILE: File to send the FILE_LOGLEVEL log messages to. -# VSWITCHD_LOGFILE=/var/log/ovs-vswitchd.log - -# VSWITCHD_MEMLEAK_LOGFILE: File for logging memory leak data. -# Enabling this option will slow ovs-vswitchd significantly. Do not -# enable it except to debug a suspected memory leak. Use the -# ovs-parse-leaks utility included with Open vSwitch to parse the -# log file. For best results, you also need debug symbols. -# VSWITCHD_MEMLEAK_LOGFILE="" - -# VSWITCHD_FILE_LOGLEVEL: Log level at which to log into the -# VSWITCHD_LOG file. If this is null or not set the logfile will -# not be created and nothing will be sent to it. This is the -# default. The available options are: EMER, WARN, INFO and DBG. -# VSWITCHD_FILE_LOGLEVEL="" - -# VSWITCHD_SYSLOG_LOGLEVEL: Log level at which to log into syslog. If -# this is null or not set the default is to log to syslog -# emergency and warning level messages only. -# VSWITCHD_SYSLOG_LOGLEVEL="WARN" - -# VSWITCHD_STRACE_LOG: File for logging strace output. -# If this is set to a nonempty string, then ovs-vswitchd will run -# under strace, whose output will be logged to the specified file. -# Enabling this option will slow ovs-vswitchd significantly. -# VSWITCHD_STRACE_LOG and VSWITCHD_VALGRIND_LOG are mutually exclusive. -# VSWITCHD_STRACE_LOG="" - -# VSWITCHD_STRACE_OPT: Options to pass to strace. -# This option's value is honored only when VSWITCHD_STRACE_LOG is -# set to a nonempty string. -# VSWITCHD_STRACE_OPT="" - -# VSWITCHD_VALGRIND_LOG: File for logging valgrind output. -# If this is set to a nonempty string, then ovs-vswitchd will run -# under valgrind, whose output will be logged to the specified file. -# Enabling this option will slow ovs-vswitchd by 100X or more. -# valgrind is not installed by default on XenServer systems; you must -# install it by hand to usefully enable this option. -# VSWITCHD_STRACE_LOG and VSWITCHD_VALGRIND_LOG are mutually exclusive. -# VSWITCHD_VALGRIND_LOG="" - -# VSWITCHD_VALGRIND_OPT: Options to pass to valgrind. -# This option's value is honored only when VSWITCHD_VALGRIND_LOG is -# set to a nonempty string. -# VSWITCHD_VALGRIND_OPT="" - -# BRCOMPATD_PIDFILE: File in which to store the pid of the running -# ovs-brcompatd (the Linux bridge compatibility daemon for ovs-vswitchd). -# If this is the empty string, ovs-brcompatd will not be started and -# the brcompat_mod kernel module will not be inserted. Note that -# the default is to use brcompat! -# BRCOMPATD_PIDFILE=/var/run/ovs-brcompatd.pid - -# BRCOMPATD_RUN_DIR: Set the directory in which ovs-brcompatd should be -# run. This mainly affects where core files will be placed. -# BRCOMPATD_RUN_DIR=/var/xen/vswitch - -# BRCOMPATD_PRIORITY: "nice" priority at which to run ovs-vswitchd and related -# processes. -# BRCOMPATD_PRIORITY=-10 - -# BRCOMPATD_LOGFILE: File to send the FILE_LOGLEVEL log messages to. -# BRCOMPATD_LOGFILE=/var/log/ovs-brcompatd.log - -# BRCOMPATD_FILE_LOGLEVEL: Log level at which to log into the -# BRCOMPATD_LOG file. If this is null or not set the logfile will -# not be created and nothing will be sent to it. This is the -# default. The available options are: EMER, WARN, INFO and DBG. -# BRCOMPATD_FILE_LOGLEVEL="" - -# BRCOMPATD_SYSLOG_LOGLEVEL: Log level at which to log into syslog. If -# this is null or not set the default is to log to syslog -# emergency and warning level messages only. -# BRCOMPATD_SYSLOG_LOGLEVEL="WARN" - -# BRCOMPATD_MEMLEAK_LOGFILE: File for logging memory leak data. -# Enabling this option will slow ovs-brcompatd significantly. Do not -# enable it except to debug a suspected memory leak. Use the -# ovs-parse-leaks utility included with Open vSwitch to parse the -# log file. For best results, you also need debug symbols. -# BRCOMPATD_MEMLEAK_LOGFILE="" - -# BRCOMPATD_STRACE_LOG: File for logging strace output. -# If this is set to a nonempty string, then ovs-brcompatd will run -# under strace, whose output will be logged to the specified file. -# Enabling this option will slow brcompatd significantly. -# BRCOMPATD_STRACE_LOG and BRCOMPATD_VALGRIND_LOG are mutually exclusive. -# BRCOMPATD_STRACE_LOG="" - -# BRCOMPATD_STRACE_OPT: Options to pass to strace. -# This option's value is honored only when BRCOMPATD_STRACE_LOG is -# set to a nonempty string. -# BRCOMPATD_STRACE_OPT="" - -# BRCOMPATD_VALGRIND_LOG: File for logging valgrind output. -# If this is set to a nonempty string, then ovs-brcompatd will run -# under valgrind, whose output will be logged to the specified file. -# Enabling this option will slow brcompatd by 100X or more. -# valgrind is not installed by default on XenServer systems; you must -# install it by hand to usefully enable this option. -# BRCOMPATD_STRACE_LOG and BRCOMPATD_VALGRIND_LOG are mutually exclusive. -# BRCOMPATD_VALGRIND_LOG="" - -# BRCOMPATD_VALGRIND_OPT: Options to pass to valgrind. -# This option's value is honored only when BRCOMPATD_VALGRIND_LOG is -# set to a nonempty string. -# BRCOMPATD_VALGRIND_OPT="" diff --git a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py index dbd00a45..f3d9bf34 100644 --- a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py +++ b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py @@ -15,7 +15,7 @@ import os import socket import subprocess -cfg_mod="/root/vswitch/bin/ovs-cfg-mod" +cfg_mod="/usr/bin/ovs-cfg-mod" vswitchd_cfg_filename="/etc/ovs-vswitchd.conf" if __name__ == "__main__": diff --git a/xenserver/usr_sbin_brctl b/xenserver/usr_sbin_brctl index b97b0786..16242c0d 100755 --- a/xenserver/usr_sbin_brctl +++ b/xenserver/usr_sbin_brctl @@ -22,7 +22,7 @@ import sys argv0 = sys.argv[0] -BRCTL = "/root/vswitch/xs-original/brctl" +BRCTL = "/usr/lib/vswitch/xs-original/brctl" VSWITCHD_CONF = "/etc/ovs-vswitchd.conf" # Execute the real brctl program, passing the same arguments that were passed diff --git a/xenserver/usr_sbin_xen-bugtool b/xenserver/usr_sbin_xen-bugtool index 0c976010..13a1c2f9 100755 --- a/xenserver/usr_sbin_xen-bugtool +++ b/xenserver/usr_sbin_xen-bugtool @@ -195,8 +195,8 @@ MD5SUM = '/usr/bin/md5sum' MULTIPATHD = '/sbin/multipathd' NETSTAT = '/bin/netstat' OMREPORT = '/opt/dell/srvadmin/oma/bin/omreport' -OVS_DPCTL = '/root/vswitch/bin/ovs-dpctl' -OVS_OFCTL = '/root/vswitch/bin/ovs-ofctl' +OVS_DPCTL = '/usr/bin/ovs-dpctl' +OVS_OFCTL = '/usr/bin/ovs-ofctl' PS = '/bin/ps' PVS = '/usr/sbin/pvs' ROUTE = '/sbin/route' diff --git a/xenserver/usr_share_vswitch_scripts_dump-vif-details b/xenserver/usr_share_vswitch_scripts_dump-vif-details new file mode 100755 index 00000000..b0ceb405 --- /dev/null +++ b/xenserver/usr_share_vswitch_scripts_dump-vif-details @@ -0,0 +1,78 @@ +#!/usr/bin/python +# +# Script to retrieve extended information about VIFs that are +# needed by the controller. This is called by the "vif" script, +# which is run when virtual interfaces are added and removed. + +# Copyright (C) 2009 Nicira Networks, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without warranty of any kind. + +import sys +import XenAPI +import xen.lowlevel.xs + +# Query XenStore for the opaque reference of this vif +def get_vif_ref(domid, devid): + xenstore = xen.lowlevel.xs.xs() + t = xenstore.transaction_start() + vif_ref = xenstore.read(t, '/xapi/%s/private/vif/%s/ref' % (domid, devid)) + xenstore.transaction_end(t) + return vif_ref + +# Query XAPI for the information we need using the vif's opaque reference +def dump_vif_info(domid, devid, vif_ref): + try: + session = XenAPI.xapi_local() + session.xenapi.login_with_password("root", "") + vif_rec = session.xenapi.VIF.get_record(vif_ref) + net_rec = session.xenapi.network.get_record(vif_rec["network"]) + vm_rec = session.xenapi.VM.get_record(vif_rec["VM"]) + + # Data to allow vNetManager to associate VIFs with xapi data + sys.stdout.write('--add=port.vif%s.%s.net-uuid=%s ' + % (domid, devid, net_rec["uuid"])) + sys.stdout.write('--add=port.vif%s.%s.vif-mac=%s ' + % (domid, devid, vif_rec["MAC"])) + sys.stdout.write('--add=port.vif%s.%s.vif-uuid=%s ' + % (domid, devid, vif_rec["uuid"])) + sys.stdout.write('--add=port.vif%s.%s.vm-uuid=%s ' + % (domid, devid, vm_rec["uuid"])) + + # vNetManager needs to know the network UUID(s) associated with + # each datapath. Normally interface-reconfigure adds them, but + # interface-reconfigure never gets called for internal networks + # (xapi does the addbr ioctl internally), so we have to do it + # here instead for internal networks. This is only acceptable + # because xapi is lazy about creating internal networks: it + # only creates one just before it adds the first vif to it. + # There may still be a brief delay between the initial + # ovs-vswitchd connection to vNetManager and setting this + # configuration variable, but vNetManager can tolerate that. + if len(net_rec['PIFs']) == 0: + key = 'bridge.%s.xs-network-uuids' % net_rec['bridge'] + value = net_rec['uuid'] + sys.stdout.write('--del-match=%s=* ' % key) + sys.stdout.write('--add=%s=%s ' % (key, value)) + finally: + session.xenapi.session.logout() + +if __name__ == '__main__': + if (len(sys.argv) != 3): + sys.stderr.write("ERROR: %s \n") + sys.exit(1) + + domid = sys.argv[1] + devid = sys.argv[2] + + vif_ref = get_vif_ref(domid, devid) + if not vif_ref: + sys.stderr.write("ERROR: Could not find interface vif%s.%s\n" + % (domid, devid)) + sys.exit(1) + + dump_vif_info(domid, devid, vif_ref) + sys.exit(0) diff --git a/xenserver/usr_share_vswitch_scripts_sysconfig.template b/xenserver/usr_share_vswitch_scripts_sysconfig.template new file mode 100644 index 00000000..32094773 --- /dev/null +++ b/xenserver/usr_share_vswitch_scripts_sysconfig.template @@ -0,0 +1,150 @@ +### Configuration options for vswitch + +# Copyright (C) 2009 Nicira Networks, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without warranty of any kind. + +# ENABLE_BRCOMPAT: If 'y' than emulate linux bridging interfaces +# using the brcompat kernel module and ovs-brcompatd daemon +# ENABLE_BRCOMPAT=y + +# ENABLE_FAKE_PROC_NET: If 'y' then emulate linux bonding and vlan +# files in /proc as if the bonding and vlan demultiplexing done in +# ovs-vswitchd were being implemented using existing Linux mechanisms. +# This is useful in some cases when replacing existing solutions. +# ENABLE_FAKE_PROC_NET=y + +# FORCE_COREFILES: If 'y' then core files will be enabled. +# FORCE_COREFILES=y + +# COREFILE_PATTERN: Pattern used to determine path and filename for +# core files when FORCE_COREFILES is 'y'. This is Linux specific. +# See the manpage for "core". +# COREFILE_PATTERN="/var/log/%e-%t" + +# VSWITCHD_CONF: File in which ovs-vswitchd stores its configuration. +# VSWITCHD_CONF=/etc/ovs-vswitchd.conf + +# VSWITCHD_PIDFILE: File in which to store the pid of the running +# ovs-vswitchd. +# VSWITCHD_PIDFILE=/var/run/ovs-vswitchd.pid + +# VSWITCHD_RUN_DIR: Set the directory in which ovs-vswitchd should be +# run. This mainly affects where core files will be placed. +# VSWITCHD_RUN_DIR=/var/xen/vswitch + +# VSWITCHD_PRIORITY: "nice" priority at which to run ovs-vswitchd and related +# processes. +# VSWITCHD_PRIORITY=-10 + +# VSWITCHD_LOGFILE: File to send the FILE_LOGLEVEL log messages to. +# VSWITCHD_LOGFILE=/var/log/ovs-vswitchd.log + +# VSWITCHD_MEMLEAK_LOGFILE: File for logging memory leak data. +# Enabling this option will slow ovs-vswitchd significantly. Do not +# enable it except to debug a suspected memory leak. Use the +# ovs-parse-leaks utility included with Open vSwitch to parse the +# log file. For best results, you also need debug symbols. +# VSWITCHD_MEMLEAK_LOGFILE="" + +# VSWITCHD_FILE_LOGLEVEL: Log level at which to log into the +# VSWITCHD_LOG file. If this is null or not set the logfile will +# not be created and nothing will be sent to it. This is the +# default. The available options are: EMER, WARN, INFO and DBG. +# VSWITCHD_FILE_LOGLEVEL="" + +# VSWITCHD_SYSLOG_LOGLEVEL: Log level at which to log into syslog. If +# this is null or not set the default is to log to syslog +# emergency and warning level messages only. +# VSWITCHD_SYSLOG_LOGLEVEL="WARN" + +# VSWITCHD_STRACE_LOG: File for logging strace output. +# If this is set to a nonempty string, then ovs-vswitchd will run +# under strace, whose output will be logged to the specified file. +# Enabling this option will slow ovs-vswitchd significantly. +# VSWITCHD_STRACE_LOG and VSWITCHD_VALGRIND_LOG are mutually exclusive. +# VSWITCHD_STRACE_LOG="" + +# VSWITCHD_STRACE_OPT: Options to pass to strace. +# This option's value is honored only when VSWITCHD_STRACE_LOG is +# set to a nonempty string. +# VSWITCHD_STRACE_OPT="" + +# VSWITCHD_VALGRIND_LOG: File for logging valgrind output. +# If this is set to a nonempty string, then ovs-vswitchd will run +# under valgrind, whose output will be logged to the specified file. +# Enabling this option will slow ovs-vswitchd by 100X or more. +# valgrind is not installed by default on XenServer systems; you must +# install it by hand to usefully enable this option. +# VSWITCHD_STRACE_LOG and VSWITCHD_VALGRIND_LOG are mutually exclusive. +# VSWITCHD_VALGRIND_LOG="" + +# VSWITCHD_VALGRIND_OPT: Options to pass to valgrind. +# This option's value is honored only when VSWITCHD_VALGRIND_LOG is +# set to a nonempty string. +# VSWITCHD_VALGRIND_OPT="" + +# BRCOMPATD_PIDFILE: File in which to store the pid of the running +# ovs-brcompatd (the Linux bridge compatibility daemon for ovs-vswitchd). +# If this is the empty string, ovs-brcompatd will not be started and +# the brcompat_mod kernel module will not be inserted. Note that +# the default is to use brcompat! +# BRCOMPATD_PIDFILE=/var/run/ovs-brcompatd.pid + +# BRCOMPATD_RUN_DIR: Set the directory in which ovs-brcompatd should be +# run. This mainly affects where core files will be placed. +# BRCOMPATD_RUN_DIR=/var/xen/vswitch + +# BRCOMPATD_PRIORITY: "nice" priority at which to run ovs-vswitchd and related +# processes. +# BRCOMPATD_PRIORITY=-10 + +# BRCOMPATD_LOGFILE: File to send the FILE_LOGLEVEL log messages to. +# BRCOMPATD_LOGFILE=/var/log/ovs-brcompatd.log + +# BRCOMPATD_FILE_LOGLEVEL: Log level at which to log into the +# BRCOMPATD_LOG file. If this is null or not set the logfile will +# not be created and nothing will be sent to it. This is the +# default. The available options are: EMER, WARN, INFO and DBG. +# BRCOMPATD_FILE_LOGLEVEL="" + +# BRCOMPATD_SYSLOG_LOGLEVEL: Log level at which to log into syslog. If +# this is null or not set the default is to log to syslog +# emergency and warning level messages only. +# BRCOMPATD_SYSLOG_LOGLEVEL="WARN" + +# BRCOMPATD_MEMLEAK_LOGFILE: File for logging memory leak data. +# Enabling this option will slow ovs-brcompatd significantly. Do not +# enable it except to debug a suspected memory leak. Use the +# ovs-parse-leaks utility included with Open vSwitch to parse the +# log file. For best results, you also need debug symbols. +# BRCOMPATD_MEMLEAK_LOGFILE="" + +# BRCOMPATD_STRACE_LOG: File for logging strace output. +# If this is set to a nonempty string, then ovs-brcompatd will run +# under strace, whose output will be logged to the specified file. +# Enabling this option will slow brcompatd significantly. +# BRCOMPATD_STRACE_LOG and BRCOMPATD_VALGRIND_LOG are mutually exclusive. +# BRCOMPATD_STRACE_LOG="" + +# BRCOMPATD_STRACE_OPT: Options to pass to strace. +# This option's value is honored only when BRCOMPATD_STRACE_LOG is +# set to a nonempty string. +# BRCOMPATD_STRACE_OPT="" + +# BRCOMPATD_VALGRIND_LOG: File for logging valgrind output. +# If this is set to a nonempty string, then ovs-brcompatd will run +# under valgrind, whose output will be logged to the specified file. +# Enabling this option will slow brcompatd by 100X or more. +# valgrind is not installed by default on XenServer systems; you must +# install it by hand to usefully enable this option. +# BRCOMPATD_STRACE_LOG and BRCOMPATD_VALGRIND_LOG are mutually exclusive. +# BRCOMPATD_VALGRIND_LOG="" + +# BRCOMPATD_VALGRIND_OPT: Options to pass to valgrind. +# This option's value is honored only when BRCOMPATD_VALGRIND_LOG is +# set to a nonempty string. +# BRCOMPATD_VALGRIND_OPT="" diff --git a/xenserver/vswitch-xen.spec b/xenserver/vswitch-xen.spec index 6a218ab6..7f1ed409 100644 --- a/xenserver/vswitch-xen.spec +++ b/xenserver/vswitch-xen.spec @@ -14,7 +14,6 @@ # rpmbuild -D "vswitch_version 0.8.9~1+build123" -D "xen_version 2.6.18-128.1.1.el5.xs5.1.0.483.1000xen" -D "build_number --with-build-number=123" -bb /usr/src/redhat/SPECS/vswitch-xen.spec # %define version %{vswitch_version}-%{xen_version} -%define _prefix /root/vswitch Name: vswitch Summary: Virtual switch @@ -45,12 +44,12 @@ traffic. %setup -q -n openvswitch-%{vswitch_version} %build -./configure --prefix=%{_prefix} --localstatedir=%{_localstatedir} --with-l26=/lib/modules/%{xen_version}/build --enable-ssl %{build_number} +./configure --prefix=/usr --localstatedir=%{_localstatedir} --with-l26=/lib/modules/%{xen_version}/build --enable-ssl %{build_number} make %{_smp_mflags} %install rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} +make install DESTDIR=$RPM_BUILD_ROOT install -d -m 755 $RPM_BUILD_ROOT/etc install -d -m 755 $RPM_BUILD_ROOT/etc/init.d install -m 755 xenserver/etc_init.d_vswitch \ @@ -67,44 +66,43 @@ install -m 755 xenserver/etc_profile.d_vswitch.sh \ install -d -m 755 $RPM_BUILD_ROOT/etc/xapi.d/plugins 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%{_prefix}/scripts +install -d -m 755 $RPM_BUILD_ROOT/usr/share/vswitch/scripts install -m 755 xenserver/opt_xensource_libexec_interface-reconfigure \ - $RPM_BUILD_ROOT%{_prefix}/scripts/interface-reconfigure + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/interface-reconfigure install -m 755 xenserver/etc_xensource_scripts_vif \ - $RPM_BUILD_ROOT%{_prefix}/scripts/vif -install -m 755 xenserver/root_vswitch_scripts_dump-vif-details \ - $RPM_BUILD_ROOT%{_prefix}/scripts/dump-vif-details + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/vif +install -m 755 xenserver/usr_share_vswitch_scripts_dump-vif-details \ + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/dump-vif-details install -m 755 xenserver/usr_sbin_xen-bugtool \ - $RPM_BUILD_ROOT%{_prefix}/scripts/xen-bugtool + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/xen-bugtool install -m 755 xenserver/usr_sbin_brctl \ - $RPM_BUILD_ROOT%{_prefix}/scripts/brctl -install -m 755 xenserver/root_vswitch_scripts_sysconfig.template \ - $RPM_BUILD_ROOT/root/vswitch/scripts/sysconfig.template + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/brctl +install -m 755 xenserver/usr_share_vswitch_scripts_sysconfig.template \ + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/sysconfig.template install -m 644 \ xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \ - $RPM_BUILD_ROOT%{_prefix}/scripts/XSFeatureVSwitch.py + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/XSFeatureVSwitch.py -install -d -m 755 $RPM_BUILD_ROOT%{_prefix}/kernel_modules -find datapath/linux-2.6 -name *.ko -exec install -m 755 \{\} $RPM_BUILD_ROOT%{_prefix}/kernel_modules/ \; +install -d -m 755 $RPM_BUILD_ROOT/root/vswitch/kernel_modules +find datapath/linux-2.6 -name *.ko -exec install -m 755 \{\} $RPM_BUILD_ROOT/root/vswitch/kernel_modules/ \; # Get rid of stuff we don't want to make RPM happy. -rm -rf \ - $RPM_BUILD_ROOT/root/vswitch/bin/ezio-term \ - $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/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/openvswitch +rm \ + $RPM_BUILD_ROOT/usr/bin/ovs-controller \ + $RPM_BUILD_ROOT/usr/bin/ovs-discover \ + $RPM_BUILD_ROOT/usr/bin/ovs-kill \ + $RPM_BUILD_ROOT/usr/bin/ovs-openflowd \ + $RPM_BUILD_ROOT/usr/bin/ovs-pki \ + $RPM_BUILD_ROOT/usr/bin/ovs-wdt \ + $RPM_BUILD_ROOT/usr/sbin/ovs-monitor \ + $RPM_BUILD_ROOT/usr/share/man/man8/ovs-controller.8 \ + $RPM_BUILD_ROOT/usr/share/man/man8/ovs-discover.8 \ + $RPM_BUILD_ROOT/usr/share/man/man8/ovs-kill.8 \ + $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/root/vswitch/kernel_modules/veth_mod.ko +rm -r \ + $RPM_BUILD_ROOT/usr/share/openvswitch/commands install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch @@ -157,7 +155,7 @@ if test ! -e /var/lib/openvswitch/dbcache; then printf "Re-creating xapi database cache... " fi - if /root/vswitch/scripts/interface-reconfigure init-dbcache; then + if /usr/share/vswitch/scripts/interface-reconfigure init-dbcache; then printf "done.\n" else printf "FAILED\n" @@ -188,7 +186,7 @@ touch /etc/ovs-vswitchd.conf # Create default or update existing /etc/sysconfig/vswitch. SYSCONFIG=/etc/sysconfig/vswitch -TEMPLATE=/root/vswitch/scripts/sysconfig.template +TEMPLATE=/usr/share/vswitch/scripts/sysconfig.template if [ ! -e $SYSCONFIG ]; then cp $TEMPLATE $SYSCONFIG else @@ -202,7 +200,7 @@ else fi # Replace XenServer files by our versions. -mkdir -p %{_prefix}/xs-original \ +mkdir -p /usr/lib/vswitch/xs-original \ || printf "Could not create script backup directory.\n" for f in \ /opt/xensource/libexec/interface-reconfigure \ @@ -212,19 +210,19 @@ for f in \ do s=$(basename "$f") t=$(readlink "$f") - if [ "$t" != "%{_prefix}/scripts/$s" ]; then - mv "$f" %{_prefix}/xs-original/ \ + if [ "$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 "%{_prefix}/scripts/$s" "$f" \ + ln -s "/usr/share/vswitch/scripts/$s" "$f" \ || printf "Could not link to vSwitch $s script\n" fi done # Install xsconsole plugin plugin=$(readlink /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py) -if [ "$plugin" != "/root/vswitch/scripts/XSFeatureVSwitch.py" ]; then +if [ "$plugin" != "/usr/share/vswitch/scripts/XSFeatureVSwitch.py" ]; then rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py - ln -s /root/vswitch/scripts/XSFeatureVSwitch.py /usr/lib/xsconsole/plugins-base/ || printf "Could not link to vSswitch xsconsole plugin.\n" + ln -s /usr/share/vswitch/scripts/XSFeatureVSwitch.py /usr/lib/xsconsole/plugins-base/ || printf "Could not link to vSswitch xsconsole plugin.\n" fi # Ensure all required services are set to run @@ -270,19 +268,16 @@ if [ "$1" = "0" ]; then # $1 = 1 for upgrade /usr/sbin/brctl do s=$(basename "$f") - if [ ! -f "%{_prefix}/xs-original/$s" ]; then - printf "Original XenServer $s script not present in %{_prefix}/xs-original\n" + if [ ! -f "/usr/lib/vswitch/xs-original/$s" ]; then + printf "Original XenServer $s script not present in /usr/lib/vswitch/xs-original\n" printf "Could not restore original XenServer script.\n" else (rm -f "$f" \ - && mv "%{_prefix}/xs-original/$s" "$f") \ + && mv "/usr/lib/vswitch/xs-original/$s" "$f") \ || printf "Could not restore original XenServer $s script.\n" fi done - find %{_prefix} -type d -depth -exec rmdir \{\} \; \ - || printf "Could not remove vSwitch install directory.\n" - # Remove all configuration files rm -f /etc/ovs-vswitchd.conf rm -f /etc/sysconfig/vswitch @@ -304,31 +299,31 @@ fi /etc/profile.d/vswitch.sh /root/vswitch/kernel_modules/brcompat_mod.ko /root/vswitch/kernel_modules/openvswitch_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 -/root/vswitch/scripts/brctl -/root/vswitch/scripts/sysconfig.template +/usr/share/vswitch/scripts/dump-vif-details +/usr/share/vswitch/scripts/interface-reconfigure +/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. -/root/vswitch/scripts/XSFeatureVSwitch.pyc -/root/vswitch/scripts/XSFeatureVSwitch.pyo -/root/vswitch/sbin/ovs-brcompatd -/root/vswitch/sbin/ovs-vswitchd -/root/vswitch/bin/ovs-appctl -/root/vswitch/bin/ovs-cfg-mod -/root/vswitch/bin/ovs-dpctl -/root/vswitch/bin/ovs-ofctl -/root/vswitch/share/man/man5/ovs-vswitchd.conf.5 -/root/vswitch/share/man/man8/ovs-appctl.8 -/root/vswitch/share/man/man8/ovs-brcompatd.8 -/root/vswitch/share/man/man8/ovs-cfg-mod.8 -/root/vswitch/share/man/man8/ovs-dpctl.8 -/root/vswitch/share/man/man8/ovs-ofctl.8 -/root/vswitch/share/man/man8/ovs-vswitchd.8 +/usr/share/vswitch/scripts/XSFeatureVSwitch.pyc +/usr/share/vswitch/scripts/XSFeatureVSwitch.pyo +/usr/sbin/ovs-brcompatd +/usr/sbin/ovs-vswitchd +/usr/bin/ovs-appctl +/usr/bin/ovs-cfg-mod +/usr/bin/ovs-dpctl +/usr/bin/ovs-ofctl +/usr/share/man/man5/ovs-vswitchd.conf.5.gz +/usr/share/man/man8/ovs-appctl.8.gz +/usr/share/man/man8/ovs-brcompatd.8.gz +/usr/share/man/man8/ovs-cfg-mod.8.gz +/usr/share/man/man8/ovs-dpctl.8.gz +/usr/share/man/man8/ovs-ofctl.8.gz +/usr/share/man/man8/ovs-vswitchd.8.gz /var/lib/openvswitch