X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utilities%2Fovs-ctl.in;h=552cef3781c621fa02356acb0dc87b3fdaa8cc56;hb=fd94a42c43ff4a0e57a44bdc9ded1b7e1e63faaa;hp=ee6035c078a9815882937056d41b2ffc2f30b6c6;hpb=d422c1189901d34125cd2d46552391c333d1f647;p=openvswitch diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in index ee6035c0..552cef37 100755 --- a/utilities/ovs-ctl.in +++ b/utilities/ovs-ctl.in @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2009, 2010, 2011 Nicira Networks, Inc. +# Copyright (C) 2009, 2010, 2011, 2012 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -31,14 +31,15 @@ done ## ----- ## insert_openvswitch_mod_if_required () { - # If openvswitch_mod is already loaded then we're done. - test -e /sys/module/openvswitch_mod && return 0 + # If openvswitch is already loaded then we're done. + test -e /sys/module/openvswitch -o -e /sys/module/openvswitch_mod && \ + return 0 - # Load openvswitch_mod. If that's successful then we're done. - action "Inserting openvswitch module" modprobe openvswitch_mod && return 0 + # Load openvswitch. If that's successful then we're done. + action "Inserting openvswitch module" modprobe openvswitch && return 0 # If the bridge module is loaded, then that might be blocking - # openvswitch_mod. Try to unload it, if there are no bridges. + # openvswitch. Try to unload it, if there are no bridges. test -e /sys/module/bridge || return 1 bridges=`echo /sys/class/net/*/bridge | sed 's,/sys/class/net/,,g;s,/bridge,,g'` if test "$bridges" != "*"; then @@ -47,13 +48,17 @@ insert_openvswitch_mod_if_required () { fi action "removing bridge module" rmmod bridge || return 1 - # Try loading openvswitch_mod again. - action "Inserting openvswitch module" modprobe openvswitch_mod + # Try loading openvswitch again. + action "Inserting openvswitch module" modprobe openvswitch } insert_brcompat_mod_if_required () { - test -e /sys/module/brcompat_mod && return 0 - action "Inserting brcompat module" modprobe brcompat_mod + if test -e /sys/module/bridge; then + log_warning_msg "bridge module is loaded, not loading brcompat" + return 1 + fi + test -e /sys/module/brcompat -o -e /sys/module/brcompat_mod && return 0 + action "Inserting brcompat module" modprobe brcompat } insert_mod_if_required () { @@ -68,7 +73,7 @@ ovs_vsctl () { } ovsdb_tool () { - ovsdb-tool -vANY:console:off "$@" + ovsdb-tool -vconsole:off "$@" } create_db () { @@ -177,13 +182,14 @@ start () { # Start ovsdb-server. set ovsdb-server "$DB_FILE" - set "$@" -vANY:CONSOLE:EMER -vANY:SYSLOG:ERR -vANY:FILE:INFO + set "$@" -vconsole:emer -vsyslog:err -vfile:info set "$@" --remote=punix:"$DB_SOCK" set "$@" --remote=db:Open_vSwitch,manager_options set "$@" --private-key=db:SSL,private_key set "$@" --certificate=db:SSL,certificate set "$@" --bootstrap-ca-cert=db:SSL,ca_cert - start_daemon "$OVSDB_SERVER_PRIORITY" "$@" || return 1 + start_daemon "$OVSDB_SERVER_PRIORITY" "$OVSDB_SERVER_WRAPPER" "$@" \ + || return 1 # Initialize database settings. ovs_vsctl -- init -- set Open_vSwitch . db-version="$schemaver" \ @@ -199,25 +205,26 @@ start () { if daemon_is_running ovs-vswitchd; then log_success_msg "ovs-vswitchd is already running" else - # Increase the limit on the number of open file descriptors since - # ovs-vswitchd needs a few per bridge - ulimit -n 4096 + # Increase the limit on the number of open file descriptors. + # ovs-vswitchd needs 16 per datapath, plus a few extra, so this + # should allow for 256 (or more) bridges. + ulimit -n 5000 # Start ovs-vswitchd. set ovs-vswitchd unix:"$DB_SOCK" - set "$@" -vANY:CONSOLE:EMER -vANY:SYSLOG:ERR -vANY:FILE:INFO + set "$@" -vconsole:emer -vsyslog:err -vfile:info if test X"$MLOCKALL" != Xno; then set "$@" --mlockall fi - start_daemon "$OVS_VSWITCHD_PRIORITY" "$@" + start_daemon "$OVS_VSWITCHD_PRIORITY" "$OVS_VSWITCHD_WRAPPER" "$@" fi if daemon_is_running ovs-brcompatd; then log_success_msg "ovs-brcompatd is already running" elif test X"$BRCOMPAT" = Xyes; then set ovs-brcompatd - set "$@" -vANY:CONSOLE:EMER -vANY:SYSLOG:ERR -vANY:FILE:INFO - start_daemon "$OVS_BRCOMPATD_PRIORITY" "$@" + set "$@" -vconsole:emer -vsyslog:err -vfile:info + start_daemon "$OVS_BRCOMPATD_PRIORITY" "$OVS_BRCOMPATD_WRAPPER" "$@" fi } @@ -281,11 +288,16 @@ force_reload_kmod () { action "Removing datapath: $dp" ovs-dpctl del-dp "$dp" done + # try both old and new names in case this is post upgrade if test -e /sys/module/brcompat_mod; then action "Removing brcompat module" rmmod brcompat_mod + elif test -e /sys/module/brcompat; then + action "Removing brcompat module" rmmod brcompat fi if test -e /sys/module/openvswitch_mod; then action "Removing openvswitch module" rmmod openvswitch_mod + elif test -e /sys/module/openvswitch; then + action "Removing openvswitch module" rmmod openvswitch fi start @@ -300,6 +312,8 @@ force_reload_kmod () { log="logger -p daemon.$level -t ovs-save" $log "force-reload-kmod interface restore script exited with status $rc:" $log -f "$script" + + "$datadir/scripts/ovs-check-dead-ifs" } ## --------------- ## @@ -364,6 +378,9 @@ set_defaults () { OVSDB_SERVER_PRIORITY=-10 OVS_VSWITCHD_PRIORITY=-10 OVS_BRCOMPATD_PRIORITY=-10 + OVSDB_SERVER_WRAPPER= + OVS_VSWITCHD_WRAPPER= + OVS_BRCOMPATD_WRAPPER= DB_FILE=$etcdir/conf.db DB_SOCK=$rundir/db.sock @@ -373,7 +390,13 @@ set_defaults () { DPORT= SPORT= - if (lsb_release --id) >/dev/null 2>&1; then + type_file=$etcdir/system-type.conf + version_file=$etcdir/system-version.conf + + if test -e "$type_file" ; then + SYSTEM_TYPE=`cat $type_file` + SYSTEM_VERSION=`cat $version_file` + elif (lsb_release --id) >/dev/null 2>&1; then SYSTEM_TYPE=`lsb_release --id -s` system_release=`lsb_release --release -s` system_codename=`lsb_release --codename -s` @@ -423,6 +446,12 @@ Less important options for "start" and "force-reload-kmod": --ovs-vswitchd-priority=NICE set ovs-vswitchd's niceness (default: $OVS_VSWITCHD_PRIORITY) --ovs-brcompatd-priority=NICE set ovs-brcompatd's niceness (default: $OVS_BRCOMPATD_PRIORITY) +Debugging options for "start" and "force-reload-kmod": + --ovsdb-server-wrapper=WRAPPER + --ovs-vswitchd-wrapper=WRAPPER + --ovs-vswitchd-wrapper=WRAPPER + run specified daemon under WRAPPER (either 'valgrind' or 'strace') + Options for "start", "force-reload-kmod", "load-kmod", "status", and "version": --brcompat enable Linux bridge compatibility module and daemon @@ -484,7 +513,7 @@ do usage ;; -V | --version) - echo "$0 (Open vSwitch) $VERSION$BUILDNR" + echo "$0 (Open vSwitch) $VERSION" exit 0 ;; --external-id=*)