mirror of
https://github.com/openvswitch/ovs
synced 2025-10-27 15:18:06 +00:00
test-controller: Rename to ovs-testcontroller, again install.
mininet uses the Open vSwitch controller by default, for testing. CC: 757761@bugs.debian.org Reported-at: https://bugs.debian.org/757761 Requested-by: Tomasz Buchert <tomasz.buchert@inria.fr> Requested-by: Dariusz Dwornikowski <dariusz.dwornikowski@cs.put.poznan.pl> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Justin Pettit <jpettit@nicira.com>
This commit is contained in:
1
debian/.gitignore
vendored
1
debian/.gitignore
vendored
@@ -16,6 +16,7 @@
|
||||
/openvswitch-switch
|
||||
/openvswitch-switch.copyright
|
||||
/openvswitch-test
|
||||
/openvswitch-testcontroller
|
||||
/openvswitch-vtep
|
||||
/python-openvswitch
|
||||
/tmp
|
||||
|
||||
8
debian/automake.mk
vendored
8
debian/automake.mk
vendored
@@ -37,6 +37,14 @@ EXTRA_DIST += \
|
||||
debian/openvswitch-test.dirs \
|
||||
debian/openvswitch-test.install \
|
||||
debian/openvswitch-test.manpages \
|
||||
debian/openvswitch-testcontroller.README.Debian \
|
||||
debian/openvswitch-testcontroller.default \
|
||||
debian/openvswitch-testcontroller.dirs \
|
||||
debian/openvswitch-testcontroller.init \
|
||||
debian/openvswitch-testcontroller.install \
|
||||
debian/openvswitch-testcontroller.manpages \
|
||||
debian/openvswitch-testcontroller.postinst \
|
||||
debian/openvswitch-testcontroller.postrm \
|
||||
debian/openvswitch-vtep.default \
|
||||
debian/openvswitch-vtep.dirs \
|
||||
debian/openvswitch-vtep.init \
|
||||
|
||||
5
debian/changelog
vendored
5
debian/changelog
vendored
@@ -1,5 +1,10 @@
|
||||
openvswitch (2.3.90-1) unstable; urgency=low
|
||||
[ Open vSwitch team ]
|
||||
* The openvswitch-testcontroller package is new. It reintroduces the
|
||||
simple OpenFlow controller that was packaged with Open vSwitch prior to
|
||||
version 2.1, at request of users who find it useful for testing basic
|
||||
OpenFlow setups. It is still not a necessary or desirable part of most
|
||||
Open vSwitch deployments.
|
||||
* New upstream version
|
||||
- Nothing yet! Try NEWS...
|
||||
|
||||
|
||||
17
debian/control
vendored
17
debian/control
vendored
@@ -60,7 +60,8 @@ Description: Open vSwitch common components
|
||||
to support distribution across multiple physical servers similar to
|
||||
VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
|
||||
.
|
||||
openvswitch-common provides components required by both openvswitch-switch.
|
||||
openvswitch-common provides components required by both openvswitch-switch
|
||||
and openvswitch-testcontroller.
|
||||
|
||||
Package: openvswitch-switch
|
||||
Architecture: linux-any
|
||||
@@ -117,6 +118,17 @@ Description: Open vSwitch public key infrastructure dependency package
|
||||
Open vSwitch switches and controllers, reducing the risk of
|
||||
man-in-the-middle attacks on the Open vSwitch network infrastructure.
|
||||
|
||||
Package: openvswitch-testcontroller
|
||||
Architecture: linux-any
|
||||
Depends:
|
||||
${shlibs:Depends}, openvswitch-common (= ${binary:Version}),
|
||||
openvswitch-pki (= ${source:Version}), ${misc:Depends}
|
||||
Description: Simple controller for testing OpenFlow setups
|
||||
This controller enables OpenFlow switches that connect to it to act
|
||||
as MAC-learning Ethernet switches. It can be used for initial
|
||||
testing of OpenFlow networks. It is not a necessary or desirable
|
||||
part of a production OpenFlow deployment.
|
||||
|
||||
Package: openvswitch-dbg
|
||||
Section: debug
|
||||
Architecture: linux-any
|
||||
@@ -124,6 +136,9 @@ Depends:
|
||||
${shlibs:Depends}, ${misc:Depends},
|
||||
openvswitch-common (= ${binary:Version}),
|
||||
openvswitch-switch (= ${binary:Version})
|
||||
Conflicts:
|
||||
openvswitch-testcontroller (<< ${binary:Version}),
|
||||
openvswitch-testcontroller (>> ${binary:Version})
|
||||
Description: Debug symbols for Open vSwitch packages
|
||||
Open vSwitch is a production quality, multilayer, software-based,
|
||||
Ethernet virtual switch. It is designed to enable massive network
|
||||
|
||||
12
debian/openvswitch-testcontroller.README.Debian
vendored
Normal file
12
debian/openvswitch-testcontroller.README.Debian
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
README.Debian for openvswitch-testcontroller
|
||||
--------------------------------------------
|
||||
|
||||
The controller in this package enables OpenFlow switches that connect
|
||||
to it to act as MAC-learning Ethernet switches. It can be used for
|
||||
initial testing of OpenFlow networks. It is not a necessary or
|
||||
desirable part of a production OpenFlow deployment.
|
||||
|
||||
To (re)configure the controller, edit /etc/default/openvswitch-testcontroller
|
||||
and run "/etc/init.d/openvswitch-testcontroller restart".
|
||||
|
||||
-- Ben Pfaff <pfaffben@debian.org>, Thu, 14 Aug 2014 10:49:34 -0700
|
||||
29
debian/openvswitch-testcontroller.default
vendored
Normal file
29
debian/openvswitch-testcontroller.default
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
# This is a POSIX shell fragment -*- sh -*-
|
||||
|
||||
# LISTEN: What OpenFlow connection methods should the controller listen on?
|
||||
#
|
||||
# This is a space-delimited list of connection methods:
|
||||
#
|
||||
# * "pssl:[PORT]": Listen for SSL connections on the specified PORT
|
||||
# (default: 6633). The private key, certificate, and CA certificate
|
||||
# must be specified below.
|
||||
#
|
||||
# * "ptcp:[PORT]": Listen for TCP connections on the specified PORT
|
||||
# (default: 6633). Not recommended for security reasons.
|
||||
#
|
||||
LISTEN="pssl:"
|
||||
|
||||
# PRIVKEY: Name of file containing controller's private key.
|
||||
# Required if SSL enabled.
|
||||
PRIVKEY=/etc/openvswitch-testcontroller/privkey.pem
|
||||
|
||||
# CERT: Name of file containing certificate for private key.
|
||||
# Required if SSL enabled.
|
||||
CERT=/etc/openvswitch-testcontroller/cert.pem
|
||||
|
||||
# CACERT: Name of file containing switch CA certificate.
|
||||
# Required if SSL enabled.
|
||||
CACERT=/etc/openvswitch-testcontroller/cacert.pem
|
||||
|
||||
# Additional options to pass to ovs-testcontroller, e.g. "--hub"
|
||||
DAEMON_OPTS=""
|
||||
1
debian/openvswitch-testcontroller.dirs
vendored
Normal file
1
debian/openvswitch-testcontroller.dirs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
etc/openvswitch-testcontroller
|
||||
278
debian/openvswitch-testcontroller.init
vendored
Executable file
278
debian/openvswitch-testcontroller.init
vendored
Executable file
@@ -0,0 +1,278 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2011, 2014 Nicira, Inc.
|
||||
# Copyright (c) 2007, 2009 Javier Fernandez-Sanguino <jfs@debian.org>
|
||||
#
|
||||
# This is free software; you may redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2,
|
||||
# or (at your option) any later version.
|
||||
#
|
||||
# This 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License with
|
||||
# the Debian operating system, in /usr/share/common-licenses/GPL; if
|
||||
# not, write to the Free Software Foundation, Inc., 59 Temple Place,
|
||||
# Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: openvswitch-testcontroller
|
||||
# Required-Start: $network $local_fs $remote_fs
|
||||
# Required-Stop: $remote_fs
|
||||
# Should-Start: $named
|
||||
# Should-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Simple OpenFlow controller for testing
|
||||
# Description: This controller enables OpenFlow switches that connect to
|
||||
# it to act as MAC-learning Ethernet switches.
|
||||
### END INIT INFO
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
|
||||
DAEMON=/usr/bin/ovs-testcontroller # Introduce the server's location here
|
||||
NAME=ovs-testcontroller # Introduce the short server's name here
|
||||
DESC=ovs-testcontroller # Introduce a short description here
|
||||
LOGDIR=/var/log/openvswitch # Log directory to use
|
||||
|
||||
PIDFILE=/var/run/openvswitch/$NAME.pid
|
||||
|
||||
test -x $DAEMON || exit 0
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
# Default options, these can be overriden by the information
|
||||
# at /etc/default/openvswitch-testcontroller
|
||||
DAEMON_OPTS="" # Additional options given to the server
|
||||
|
||||
DODTIME=10 # Time to wait for the server to die, in seconds
|
||||
# If this value is set too low you might not
|
||||
# let some servers to die gracefully and
|
||||
# 'restart' will not work
|
||||
|
||||
LOGFILE=$LOGDIR/$NAME.log # Server logfile
|
||||
#DAEMONUSER= # User to run the daemons as. If this value
|
||||
# is set start-stop-daemon will chuid the server
|
||||
|
||||
# Include defaults if available
|
||||
default=/etc/default/openvswitch-testcontroller
|
||||
if [ -f $default ] ; then
|
||||
. $default
|
||||
fi
|
||||
|
||||
# Check that the user exists (if we set a user)
|
||||
# Does the user exist?
|
||||
if [ -n "$DAEMONUSER" ] ; then
|
||||
if getent passwd | grep -q "^$DAEMONUSER:"; then
|
||||
# Obtain the uid and gid
|
||||
DAEMONUID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $3}'`
|
||||
DAEMONGID=`getent passwd |grep "^$DAEMONUSER:" | awk -F : '{print $4}'`
|
||||
else
|
||||
log_failure_msg "The user $DAEMONUSER, required to run $NAME does not exist."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
set -e
|
||||
|
||||
running_pid() {
|
||||
# Check if a given process pid's cmdline matches a given name
|
||||
pid=$1
|
||||
name=$2
|
||||
[ -z "$pid" ] && return 1
|
||||
[ ! -d /proc/$pid ] && return 1
|
||||
cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1`
|
||||
# Is this the expected server
|
||||
[ "$cmd" != "$name" ] && return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
running() {
|
||||
# Check if the process is running looking at /proc
|
||||
# (works for all users)
|
||||
|
||||
# No pidfile, probably no daemon present
|
||||
[ ! -f "$PIDFILE" ] && return 1
|
||||
pid=`cat $PIDFILE`
|
||||
running_pid $pid $DAEMON || return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
start_server() {
|
||||
if [ -z "$LISTEN" ]; then
|
||||
echo "$default: No connection methods configured, controller disabled" >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -d /var/run/openvswitch ]; then
|
||||
install -d -m 755 -o root -g root /var/run/openvswitch
|
||||
fi
|
||||
|
||||
SSL_OPTS=
|
||||
case $LISTEN in
|
||||
*ssl*)
|
||||
: ${PRIVKEY:=/etc/openvswitch-testcontroller/privkey.pem}
|
||||
: ${CERT:=/etc/openvswitch-testcontroller/cert.pem}
|
||||
: ${CACERT:=/etc/openvswitch-testcontroller/cacert.pem}
|
||||
if test ! -e "$PRIVKEY" || test ! -e "$CERT" ||
|
||||
test ! -e "$CACERT"; then
|
||||
if test ! -e "$PRIVKEY"; then
|
||||
echo "$PRIVKEY: private key missing" >&2
|
||||
fi
|
||||
if test ! -e "$CERT"; then
|
||||
echo "$CERT: certificate for private key missing" >&2
|
||||
fi
|
||||
if test ! -e "$CACERT"; then
|
||||
echo "$CACERT: CA certificate missing" >&2
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
SSL_OPTS="--private-key=$PRIVKEY --certificate=$CERT --ca-cert=$CACERT"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Start the process using the wrapper
|
||||
if [ -z "$DAEMONUSER" ] ; then
|
||||
start-stop-daemon --start --pidfile $PIDFILE \
|
||||
--exec $DAEMON -- --detach --pidfile=$PIDFILE \
|
||||
$LISTEN $DAEMON_OPTS $SSL_OPTS
|
||||
errcode=$?
|
||||
else
|
||||
# if we are using a daemonuser then change the user id
|
||||
start-stop-daemon --start --quiet --pidfile $PIDFILE \
|
||||
--chuid $DAEMONUSER --exec $DAEMON -- \
|
||||
--detach --pidfile=$PIDFILE $LISTEN $DAEMON_OPTS \
|
||||
$SSL_OPTS
|
||||
errcode=$?
|
||||
fi
|
||||
return $errcode
|
||||
}
|
||||
|
||||
stop_server() {
|
||||
# Stop the process using the wrapper
|
||||
if [ -z "$DAEMONUSER" ] ; then
|
||||
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
|
||||
--exec $DAEMON
|
||||
errcode=$?
|
||||
else
|
||||
# if we are using a daemonuser then look for process that match
|
||||
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
|
||||
--user $DAEMONUSER --exec $DAEMON
|
||||
errcode=$?
|
||||
fi
|
||||
|
||||
return $errcode
|
||||
}
|
||||
|
||||
reload_server() {
|
||||
[ ! -f "$PIDFILE" ] && return 1
|
||||
pid=`cat $PIDFILE` # This is the daemon's pid
|
||||
# Send a SIGHUP
|
||||
kill -1 $pid
|
||||
return $?
|
||||
}
|
||||
|
||||
force_stop() {
|
||||
# Force the process to die killing it manually
|
||||
[ ! -e "$PIDFILE" ] && return
|
||||
if running ; then
|
||||
kill -15 $pid
|
||||
# Is it really dead?
|
||||
sleep "$DODTIME"
|
||||
if running ; then
|
||||
kill -9 $pid
|
||||
sleep "$DODTIME"
|
||||
if running ; then
|
||||
echo "Cannot kill $NAME (pid=$pid)!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
rm -f $PIDFILE
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
log_daemon_msg "Starting $DESC " "$NAME"
|
||||
# Check if it's running first
|
||||
if running ; then
|
||||
log_progress_msg "apparently already running"
|
||||
log_end_msg 0
|
||||
exit 0
|
||||
fi
|
||||
if start_server && running ; then
|
||||
# It's ok, the server started and is running
|
||||
log_end_msg 0
|
||||
else
|
||||
# Either we could not start it or it is not running
|
||||
# after we did
|
||||
# NOTE: Some servers might die some time after they start,
|
||||
# this code does not try to detect this and might give
|
||||
# a false positive (use 'status' for that)
|
||||
log_end_msg 1
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
log_daemon_msg "Stopping $DESC" "$NAME"
|
||||
if running ; then
|
||||
# Only stop the server if we see it running
|
||||
stop_server
|
||||
log_end_msg $?
|
||||
else
|
||||
# If it's not running don't do anything
|
||||
log_progress_msg "apparently not running"
|
||||
log_end_msg 0
|
||||
exit 0
|
||||
fi
|
||||
;;
|
||||
force-stop)
|
||||
# First try to stop gracefully the program
|
||||
$0 stop
|
||||
if running; then
|
||||
# If it's still running try to kill it more forcefully
|
||||
log_daemon_msg "Stopping (force) $DESC" "$NAME"
|
||||
force_stop
|
||||
log_end_msg $?
|
||||
fi
|
||||
;;
|
||||
restart|force-reload)
|
||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
||||
if running; then
|
||||
stop_server
|
||||
# Wait some sensible amount, some server need this.
|
||||
[ -n "$DODTIME" ] && sleep $DODTIME
|
||||
fi
|
||||
start_server
|
||||
running
|
||||
log_end_msg $?
|
||||
;;
|
||||
status)
|
||||
|
||||
log_daemon_msg "Checking status of $DESC" "$NAME"
|
||||
if running ; then
|
||||
log_progress_msg "running"
|
||||
log_end_msg 0
|
||||
else
|
||||
log_progress_msg "apparently not running"
|
||||
log_end_msg 1
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
# Use this if the daemon cannot reload
|
||||
reload)
|
||||
log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon"
|
||||
log_warning_msg "cannot re-read the config file (use restart)."
|
||||
;;
|
||||
*)
|
||||
N=/etc/init.d/openvswitch-testcontroller
|
||||
echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
1
debian/openvswitch-testcontroller.install
vendored
Normal file
1
debian/openvswitch-testcontroller.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
usr/bin/ovs-testcontroller
|
||||
1
debian/openvswitch-testcontroller.manpages
vendored
Normal file
1
debian/openvswitch-testcontroller.manpages
vendored
Normal file
@@ -0,0 +1 @@
|
||||
_debian/utilities/ovs-testcontroller.8
|
||||
60
debian/openvswitch-testcontroller.postinst
vendored
Executable file
60
debian/openvswitch-testcontroller.postinst
vendored
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
# postinst script for openvswitch-testcontroller
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
cd /etc/openvswitch-testcontroller
|
||||
|
||||
# If cacert.pem is a symlink to the old location for cacert.pem,
|
||||
# remove it so that we can symlink it to the new location.
|
||||
if test -h cacert.pem && \
|
||||
test X"`readlink cacert.pem`" = X/usr/share/openvswitch/pki/switchca/cacert.pem; then
|
||||
rm -f cacert.pem
|
||||
fi
|
||||
|
||||
if ! test -e cacert.pem; then
|
||||
ln -s /var/lib/openvswitch/pki/switchca/cacert.pem cacert.pem
|
||||
fi
|
||||
if ! test -e privkey.pem || ! test -e cert.pem; then
|
||||
oldumask=$(umask)
|
||||
umask 077
|
||||
ovs-pki req+sign tmp controller >/dev/null
|
||||
mv tmp-privkey.pem privkey.pem
|
||||
mv tmp-cert.pem cert.pem
|
||||
mv tmp-req.pem req.pem
|
||||
chmod go+r cert.pem req.pem
|
||||
umask $oldumask
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
44
debian/openvswitch-testcontroller.postrm
vendored
Executable file
44
debian/openvswitch-testcontroller.postrm
vendored
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
# postrm script for openvswitch-testcontroller
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postrm> `remove'
|
||||
# * <postrm> `purge'
|
||||
# * <old-postrm> `upgrade' <new-version>
|
||||
# * <new-postrm> `failed-upgrade' <old-version>
|
||||
# * <new-postrm> `abort-install'
|
||||
# * <new-postrm> `abort-install' <old-version>
|
||||
# * <new-postrm> `abort-upgrade' <old-version>
|
||||
# * <disappearer's-postrm> `disappear' <overwriter>
|
||||
# <overwriter-version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
purge)
|
||||
if cd /etc/openvswitch-testcontroller; then
|
||||
rm -f cacert.pem cert.pem privkey.pem req.pem
|
||||
rm -f tmp-privkey.pem tmp-cert.pem tmp-req.pem
|
||||
fi
|
||||
;;
|
||||
|
||||
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user