###############################################################################
#
# This is the example/default ovs-ctl config file. 
#
# ovs-ctl config files will be searched and read, by default, int he following
# order:
#
# /opt/ovs/ovs-ctl-default.conf
# ~/.ovs-ctl
#
# This behavior can be modified and change specifically on the command line:
#
# Change the location of the default config file:
# > ovs-ctl --default-config-file=/path/to/file
#
# Disable the default config file:
# > ovs-ctl --no-default 
#
# Read these specific config files:
# > ovs-ctl --config-file file1 file2 file3
#
# Note: The default config file reading behavior is equivalent to:
#
# > ovs-ctl --default /opt/ovs/ovs-ctl-default.conf --config-file ~/.ovs-ctl
# 
# This is also equivalent to:
# > ovs-ctl --no-default --config-file /opt/ovs/ovs-ctl-default.conf ~/.ovs-ctl
#
#
###############################################################################

#
# Default options can be specified here
#
[Defaults]
# Default all configurations to 1.4.0
config:1.4.0

#
# Specific OVS configurations go here
#
[1.4.0]
# ovs-1.4.0, configured and built into /opt/ovs/1.4.0
# Can be selected with 'ovs-ctl.py --config 1.4.0'
ovs_src_dir:/opt/ovs/src/openvswitch-1.4.0
ovs_base_dir:/opt/ovs/1.4.0
ovs_runtime_dir:/var/run/ovs/1.4.0


[1.3.0]
# ovs-1.3.0, configured and built into /opt/ovs/1.3.0
# Can be selected with 'ovsctl.py --config 1.3.0'
ovs_src_dir:/opt/ovs/src/openvswitch-1.3.0
ovs_base_dir:/opt/ovs/1.3.0
ovs_runtime_dir:/var/run/ovs/1.3.0

[1.2.2]
# ovs-1.2.2, configured and built into /opt/ovs/1.2.2
# Can be selected with 'ovsctl.py --config 1.2.2'
ovs_src_dir:/opt/ovs/src/openvswitch-1.2.2
ovs_base_dir:/opt/ovs/1.2.2
ovs_runtime_dir:/var/run/ovs/1.2.2

#
# In the above configurations, the locations of the tools
# are derived by ovs-ctl relative to 'ovs_src_dir' and 'ovs_base_dir'
#
# Individual tools and locations can be specified directly in 
# the configuration (as well as the command line):
#
# Try:
# 'ovs-ctl.py --no-default --config-file ovs-ctl-default.example.conf --config MyExample'
#
# In general, every command line option can be specified in a config file section. 
#
# The precedence of options is:
#     1. Command Line Options
#     2. [The Config You Specified]
#     3. [The Defaults sections]
#

[MyExampleConfig]
ovs_vswitchd_schema:/path/to/vswitch/schema/file
ovs_vswitchdL:/path/to/vswitchd
ovs_vsctl:/path/to/vsctl
ovs_ofctl:/path/to/ofctl
ovsdb_tool:/path/to/ovsdb_tool
ovsd_db_file:/path/to/ovs_db_file
ovs_db_sock:/path/to/ovs_db_sock
ovs_kmod:/path/to/ovs_kmod






