Merge "citrix" branch into "master".
authorBen Pfaff <blp@nicira.com>
Thu, 25 Mar 2010 19:30:05 +0000 (12:30 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 25 Mar 2010 19:30:05 +0000 (12:30 -0700)
This merge is long overdue, simply because I forgot that there were
outstanding changes on "citrix" that had not yet been merged.

The important fix here is the addition of mlockall.  This fixes some
bugs seen under stressful conditions in XenServer.

1  2 
ChangeLog
configure.ac
vswitchd/ovs-vswitchd.8.in
vswitchd/ovs-vswitchd.c
xenserver/etc_init.d_vswitch
xenserver/usr_share_vswitch_scripts_sysconfig.template

diff --cc ChangeLog
+++ b/ChangeLog
@@@ -1,17 -1,7 +1,22 @@@
 +v0.99.2 - 18 Feb 2010
 +---------------------
 +    - Bug fixes
 +
 +v0.99.1 - 25 Jan 2010
 +---------------------
 +    - Add support for sFlow(R)
 +    - Make headers compatible with C++
 +    - Bug fixes
 +
 +v0.99.0 - 14 Jan 2010
 +---------------------
 +    - User-space forwarding engine
 +    - Bug fixes
++      
+ v0.90.7 - 29 Nov 2009
+ ---------------------
+     - Add support for NetFlow active timeouts
+     - Bug fixes
  
  v0.90.6 - 6 Oct 2009
  --------------------
diff --cc configure.ac
@@@ -48,11 -44,9 +48,12 @@@ OVS_CHECK_LOGDI
  OVS_CHECK_CURSES
  OVS_CHECK_LINUX_VT_H
  OVS_CHECK_PCRE
 +OVS_CHECK_PYTHON
  OVS_CHECK_IF_PACKET
  OVS_CHECK_STRTOK_R
 +AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec, struct stat.st_mtimensec],
 +  [], [], [[#include <sys/stat.h>]])
+ AC_CHECK_FUNCS([mlockall])
  
  OVS_CHECK_PKIDIR
  OVS_CHECK_RUNDIR
Simple merge
  #include <signal.h>
  #include <stdlib.h>
  #include <string.h>
+ #ifdef HAVE_MLOCKALL
+ #include <sys/mman.h>
+ #endif
  
  #include "bridge.h"
 -#include "cfg.h"
  #include "command-line.h"
  #include "compiler.h"
  #include "daemon.h"
@@@ -136,10 -151,10 +139,11 @@@ parse_options(int argc, char *argv[]
  {
      enum {
          OPT_PEER_CA_CERT = UCHAR_MAX + 1,
+         OPT_MLOCKALL,
          OPT_FAKE_PROC_NET,
          VLOG_OPTION_ENUMS,
 -        LEAK_CHECKER_OPTION_ENUMS
 +        LEAK_CHECKER_OPTION_ENUMS,
 +        OPT_BOOTSTRAP_CA_CERT
      };
      static struct option long_options[] = {
          {"help",        no_argument, 0, 'h'},
  test -e /etc/sysconfig/vswitch && . /etc/sysconfig/vswitch
  
  # General config variables in /etc/sysconfig/vswitch
 -VSWITCH_BASE="${VSWITCH_BASE:-/root/vswitch}"
 -ENABLE_BRCOMPAT="${ENABLE_BRCOMPAT:-y}"
 -ENABLE_FAKE_PROC_NET="${ENABLE_FAKE_PROC_NET:-y}"
 -FORCE_COREFILES="${FORCE_COREFILES:-y}"
 +: ${ENABLE_BRCOMPAT:=y}
 +: ${ENABLE_FAKE_PROC_NET:=y}
 +: ${ENABLE_MONITOR:=y}
 +: ${FORCE_COREFILES:=y}
 +
 +# Config variables specific to ovsdb-server
 +: ${OVSDB_SERVER_REMOTES:=punix:/var/run/ovsdb-server db:Open_vSwitch,managers}
 +: ${OVSDB_SERVER_DB:=/etc/ovs-vswitchd.conf.db}
 +: ${OVSDB_SERVER_PIDFILE:=/var/run/ovsdb-server.pid}
 +: ${OVSDB_SERVER_RUN_DIR:=/var/xen/vswitch}
 +: ${OVSDB_SERVER_PRIORITY:=-10}
 +: ${OVSDB_SERVER_LOGFILE:=/var/log/ovsdb-server.log}
 +: ${OVSDB_SERVER_FILE_LOGLEVEL:=INFO}
 +: ${OVSDB_SERVER_SYSLOG_LOGLEVEL:=ERR}
 +: ${OVSDB_SERVER_MEMLEAK_LOGFILE:=}
 +: ${OVSDB_SERVER_STRACE_LOG:=}
 +: ${OVSDB_SERVER_STRACE_OPT:=}
 +: ${OVSDB_SERVER_VALGRIND_LOG:=}
 +: ${OVSDB_SERVER_VALGRIND_OPT:=}
  
  # Config variables specific to ovs-vswitchd
 -VSWITCHD_CONF="${VSWITCHD_CONF:-/etc/ovs-vswitchd.conf}"
 -VSWITCHD_PIDFILE="${VSWITCHD_PIDFILE:-/var/run/ovs-vswitchd.pid}"
 -VSWITCHD_RUN_DIR="${VSWITCHD_RUN_DIR:-/var/xen/vswitch}"
 -VSWITCHD_PRIORITY="${VSWITCHD_PRIORITY:--10}"
 -VSWITCHD_MLOCKALL="${VSWITCHD_MLOCKALL:-yes}"
 -VSWITCHD_LOGFILE="${VSWITCHD_LOGFILE:-/var/log/ovs-vswitchd.log}"
 -VSWITCHD_FILE_LOGLEVEL="${VSWITCHD_FILE_LOGLEVEL:-INFO}"
 -VSWITCHD_SYSLOG_LOGLEVEL="${VSWITCHD_SYSLOG_LOGLEVEL:-ERR}"
 -VSWITCHD_MEMLEAK_LOGFILE="${VSWITCHD_MEMLEAK_LOGFILE:-}"
 -VSWITCHD_STRACE_LOG="${VSWITCHD_STRACE_LOG:-}"
 -VSWITCHD_STRACE_OPT="${VSWITCHD_STRACE_OPT:-}"
 -VSWITCHD_VALGRIND_LOG="${VSWITCHD_VALGRIND_LOG:-}"
 -VSWITCHD_VALGRIND_OPT="${VSWITCHD_VALGRIND_OPT:-}"
 +: ${VSWITCHD_OVSDB_SERVER:=unix:/var/run/ovsdb-server}
 +: ${VSWITCHD_OVSDB_SCHEMA:=/usr/share/vswitch/vswitch.ovsschema}
 +: ${VSWITCHD_PIDFILE:=/var/run/ovs-vswitchd.pid}
 +: ${VSWITCHD_RUN_DIR:=/var/xen/vswitch}
 +: ${VSWITCHD_PRIORITY:=-10}
++: ${VSWITCHD_MLOCKALL:=yes}
 +: ${VSWITCHD_LOGFILE:=/var/log/ovs-vswitchd.log}
 +: ${VSWITCHD_FILE_LOGLEVEL:=INFO}
 +: ${VSWITCHD_SYSLOG_LOGLEVEL:=ERR}
 +: ${VSWITCHD_MEMLEAK_LOGFILE:=}
 +: ${VSWITCHD_STRACE_LOG:=}
 +: ${VSWITCHD_STRACE_OPT:=}
 +: ${VSWITCHD_VALGRIND_LOG:=}
 +: ${VSWITCHD_VALGRIND_OPT:=}
  
  # Config variables specific to ovs-brcompatd
 -BRCOMPATD_PIDFILE="${BRCOMPATD_PIDFILE:-/var/run/ovs-brcompatd.pid}"
 -BRCOMPATD_RUN_DIR="${BRCOMPATD_RUN_DIR:-/var/xen/vswitch}"
 -BRCOMPATD_PRIORITY="${BRCOMPATD_PRIORITY:--10}"
 -BRCOMPATD_LOGFILE="${BRCOMPATD_LOGFILE:-/var/log/ovs-brcompatd.log}"
 -BRCOMPATD_FILE_LOGLEVEL="${BRCOMPATD_FILE_LOGLEVEL:-INFO}"
 -BRCOMPATD_SYSLOG_LOGLEVEL="${BRCOMPATD_SYSLOG_LOGLEVEL:-ERR}"
 -BRCOMPATD_MEMLEAK_LOGFILE="${BRCOMPATD_MEMLEAK_LOGFILE:-}"
 -BRCOMPATD_STRACE_LOG="${BRCOMPATD_STRACE_LOG:-}"
 -BRCOMPATD_STRACE_OPT="${BRCOMPATD_STRACE_OPT:-}"
 -BRCOMPATD_VALGRIND_LOG="${BRCOMPATD_VALGRIND_LOG:-}"
 -BRCOMPATD_VALGRIND_OPT="${BRCOMPATD_VALGRIND_OPT:-}"
 -
 -
 -
 +: ${BRCOMPATD_PIDFILE:=/var/run/ovs-brcompatd.pid}
 +: ${BRCOMPATD_RUN_DIR:=/var/xen/vswitch}
 +: ${BRCOMPATD_PRIORITY:=-10}
 +: ${BRCOMPATD_LOGFILE:=/var/log/ovs-brcompatd.log}
 +: ${BRCOMPATD_FILE_LOGLEVEL:=INFO}
 +: ${BRCOMPATD_SYSLOG_LOGLEVEL:=ERR}
 +: ${BRCOMPATD_MEMLEAK_LOGFILE:=}
 +: ${BRCOMPATD_STRACE_LOG:=}
 +: ${BRCOMPATD_STRACE_OPT:=}
 +: ${BRCOMPATD_VALGRIND_LOG:=}
 +: ${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"
 -
 +ovsdb_server="/usr/sbin/ovsdb-server"
 +ovsdb_tool="/usr/bin/ovsdb-tool"
 +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"
 +vsctl="/usr/bin/ovs-vsctl"
  
  if [ "$ENABLE_FAKE_PROC_NET" = "y" ]; then
      if [ "$ENABLE_BRCOMPAT" != "y" ]; then
@@@ -221,9 -166,9 +225,9 @@@ function start_vswitchd 
      if [ "$daemonize" != "y" ]; then
          # Start in background and force a "success" message
          action "Starting ovs-vswitchd ($strace_opt$valgrind_opt)" true
-         (nice -n "$VSWITCHD_PRIORITY" $strace_opt $valgrind_opt "$vswitchd" --pidfile="$VSWITCHD_PIDFILE" --detach $monitor_opt --no-chdir $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_OVSDB_SERVER") &
 -        (nice -n "$VSWITCHD_PRIORITY" $strace_opt $valgrind_opt "$vswitchd" --pidfile="$VSWITCHD_PIDFILE" --detach --no-chdir $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt $mlockall_opt "$VSWITCHD_CONF") &
++        (nice -n "$VSWITCHD_PRIORITY" $strace_opt $valgrind_opt "$vswitchd" --pidfile="$VSWITCHD_PIDFILE" --detach $monitor_opt --no-chdir $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt $mlockall_opt "$VSWITCHD_OVSDB_SERVER") &
      else
-         action "Starting ovs-vswitchd" nice -n "$VSWITCHD_PRIORITY" "$vswitchd" --pidfile="$VSWITCHD_PIDFILE" --detach $monitor_opt --no-chdir $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt "$VSWITCHD_OVSDB_SERVER"
 -        action "Starting ovs-vswitchd" nice -n "$VSWITCHD_PRIORITY" "$vswitchd" --pidfile="$VSWITCHD_PIDFILE" --detach --no-chdir $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt $mlockall_opt "$VSWITCHD_CONF"
++        action "Starting ovs-vswitchd" nice -n "$VSWITCHD_PRIORITY" "$vswitchd" --pidfile="$VSWITCHD_PIDFILE" --detach $monitor_opt --no-chdir $fake_proc_net_opt -vANY:CONSOLE:EMER $syslog_opt $logfile_level_opt $logfile_file_opt $leak_opt $mlockall_opt "$VSWITCHD_OVSDB_SERVER"
      fi
  }
  
index 8b740c2,0000000..4d5efca
mode 100644,000000..100644
--- /dev/null
@@@ -1,227 -1,0 +1,234 @@@
 +### Configuration options for vswitch
 +
 +# 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
 +# 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
 +
 +# ENABLE_MONITOR: If 'y' then monitor daemon processes and restart them
 +#    if they die due to an error signal.
 +# ENABLE_MONITOR=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"
 +
 +# OVSDB_SERVER_REMOTES: Space-separated list of methods on which to have
 +#     ovsdb-server listen or connect for a JSON-RPC connection.
 +# OVSDB_SERVER_REMOTES="punix:/var/run/ovsdb-server db:Open_vSwitch,managers"
 +
 +# OVSDB_SERVER_DB: File for which ovsdb-server uses for storage.
 +# OVSDB_SERVER_DB=/etc/ovs-vswitchd.conf.db
 +
 +# OVSDB_SERVER_PIDFILE: File in which to store the pid of the running
 +#     ovsdb-server.
 +# OVSDB_SERVER_PIDFILE=/var/run/ovsdb-server.pid
 +
 +# OVSDB_SERVER_RUN_DIR: Set the directory in which ovsdb-server should be
 +#     run.  This mainly affects where core files will be placed.
 +# OVSDB_SERVER_RUN_DIR=/var/xen/vswitch
 +
 +# OVSDB_SERVER_PRIORITY: "nice" priority at which to run ovsdb-server and 
 +#     related processes.
 +# OVSDB_SERVER_PRIORITY=-10
 +
 +# OVSDB_SERVER_LOGFILE: File to send the FILE_LOGLEVEL log messages to.
 +# OVSDB_SERVER_LOGFILE=/var/log/ovsdb-server.log
 +
 +# OVSDB_SERVER_FILE_LOGLEVEL: Log level at which to log into the
 +#     OVSDB_SERVER_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.
 +# OVSDB_SERVER_FILE_LOGLEVEL=""
 +
 +# OVSDB_SERVER_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.
 +# OVSDB_SERVER_SYSLOG_LOGLEVEL="WARN"
 +
 +# OVSDB_SERVER_MEMLEAK_LOGFILE: File for logging memory leak data.
 +#     Enabling this option will slow ovsdb-server 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.
 +# OVSDB_SERVER_MEMLEAK_LOGFILE=""
 +
 +# OVSDB_SERVER_STRACE_LOG: File for logging strace output.
 +#     If this is set to a nonempty string, then ovsdb-server will run
 +#     under strace, whose output will be logged to the specified file.
 +#     Enabling this option will slow ovsdb-server significantly.
 +#     OVSDB_SERVER_STRACE_LOG and OVSDB_SERVER_VALGRIND_LOG are mutually 
 +#     exclusive.
 +# OVSDB_SERVER_STRACE_LOG=""
 +
 +# OVSDB_SERVER_STRACE_OPT: Options to pass to strace.
 +#     This option's value is honored only when OVSDB_SERVER_STRACE_LOG is
 +#     set to a nonempty string.
 +# OVSDB_SERVER_STRACE_OPT=""
 +
 +# OVSDB_SERVER_VALGRIND_LOG: File for logging valgrind output.
 +#     If this is set to a nonempty string, then ovsdb-server will run
 +#     under valgrind, whose output will be logged to the specified file.
 +#     Enabling this option will slow ovsdb-server by 100X or more.
 +#     valgrind is not installed by default on XenServer systems; you must
 +#     install it by hand to usefully enable this option.
 +#     OVSDB_SERVER_STRACE_LOG and OVSDB_SERVER_VALGRIND_LOG are mutually 
 +#     exclusive.
 +# OVSDB_SERVER_VALGRIND_LOG=""
 +
 +# OVSDB_SERVER_VALGRIND_OPT: Options to pass to valgrind.
 +#     This option's value is honored only when OVSDB_SERVER_VALGRIND_LOG is
 +#     set to a nonempty string.
 +# OVSDB_SERVER_VALGRIND_OPT=""
 +
 +# VSWITCHD_OVSDB_SERVER: Method to have ovs-vswitchd initiate a JSON-RPC
 +#     connection to an ovsdb-server instance.
 +# VSWITCHD_OVSDB_SERVER=unix:/var/run/ovsdb-server
 +
 +# VSWITCHD_OVSDB_SCHEMA: Schema file to use for generating a new OVSDB
 +#     ovs-vswitchd database.
 +# VSWITCHD_OVSDB_SCHEMA=/usr/share/vswitch/vswitch.ovsschema
 +
 +# 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_MLOCKALL: Whether to pass ovs-vswitchd the --mlockall option.
++#     This option should be set to "yes" or "no".  The default is "yes".
++#     Enabling this option can avoid networking interruptions due to
++#     system memory pressure in extraordinary situations, such as multiple
++#     concurrent VM import operations.
++# VSWITCHD_MLOCKALL=yes
++
 +# VSWITCHD_LOGFILE: File to send the FILE_LOGLEVEL log messages to.
 +# VSWITCHD_LOGFILE=/var/log/ovs-vswitchd.log
 +
 +# 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_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_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=""