
# Name of ONOS cluster ("onos" by default)
# used as namespace, etc. in ZooKeeper, Hazelcast, RAMCloud
#onos.cluster.name = onos

# Name of this host (`hostname` by default)
#host.name = onosdev1

# IP address of this host used for ONOS communication
host.ip = 127.0.0.1

# Role of this host
# single-node: run ONOS with stand-alone RAMCloud
# coord-node : run ONOS with RAMCloud coordinator
# server-node: run ONOS with RAMCloud server
# coord-and-server-node: run ONOS with RAMCloud coordinator and server
host.role = single-node

# Back-end module to store topology/flows
host.backend = hazelcast
#host.backend = ramcloud

# ZooKeeper: port to listen for client connections/
#            port that clients attemApt to connect to
#            (2181 by default)
#zookeeper.clientPort = 2181

# List of host name/IPs that constitute ZooKeeper cluster (only current host by default)
# myid will be assigned incrementally according to order of list
#zookeeper.hosts = onosdev1,onosdev2,onosdev3,onosdev4

# ZooKeeper: ports to be used as leader, leader election. (2888:3888 by default)
#zookeeper.ports = 2888:3888

# RAMCloud clusterName (same as onos.cluster.name by default)
#ramcloud.clusterName = onos

# RAMCloud transport timeout (1000 by ONOS default)
#ramcloud.timeout = 1000

# Protocol used by RAMCloud coordinator (fast+udp by default)
#ramcloud.coordinator.protocol = fast+udp

# Listening address of RAMCloud coordinator (host.ip or 0.0.0.0 by default)
#ramcloud.coordinator.ip = 127.0.0.1

# Port number of RAMCloud coordinator (12246 by default)
#ramcloud.coordinator.port = 12246

# RAMCloud coordinator option deadServerTimeout (1000 by ONOS default)
# Increase this value if server failing due to false positive failure detection.
#ramcloud.coordinator.deadServerTimeout = 1000

# Protocol used by RAMCloud server (fast+udp by default)
#ramcloud.server.protocol = fast+udp

# Listening address of RAMCloud server (host.ip or 0.0.0.0 by default)
#ramcloud.server.ip = 127.0.0.1

# Port number of RAMCloud server (12242 by default)
#ramcloud.server.port = 12242

# RAMCloud server option masterServiceThreads (5 by default)
#ramcloud.server.masterServiceThreads = 5

# RAMCloud server option logCleanerThreads (1 by default)
#ramcloud.server.logCleanerThreads = 1

# RAMCloud server option detectFailures [0=disabled] (0 by default)
# Note: Disable this option when running on low performing VM, etc.
#ramcloud.server.detectFailures = 0

# RAMCloud server option replicas (0 by default)
# This value must be the same cluster wide.
# On N node cluster, maximum value will be N-1 replicas.
# A replication factor 2 is probably reasonably safe, 3 is conservative.
#ramcloud.server.replicas = 0

# RAMCloud server option file (/var/tmp/ramclouddata/backup.`hostname`.log by default)
# Note: Cannot be placed int ONOS_HOME, if it is on VirtualBox sharedfolder.
#       File specified must be open()-able with O_DIRECT | O_SYNC options.
#ramcloud.server.file = /var/tmp/ramclouddata/backup.${ONOS_HOST_NAME}.log

# Port number of Hazelcast (5701 by default)
#hazelcast.host.port = 5701

# List of hostname/ip[:port] which forms Hazelcast grid
# If this value is empty, Hazelcast will be set to multicast mode.
# Inversely, if this value is set, multicast settings will be ignored.
hazelcast.tcp-ip.members = 127.0.0.1:5701
#hazelcast.tcp-ip.members = 192.168.56.11, 192.168.56.12, 192.168.56.13, 192.168.56.14

# Multicast address used by Hazelcast. (224.2.2.3 by default)
#hazelcast.multicast.group = 224.2.2.3

# Multicast port used by Hazelcast. (54327 by default)
#hazelcast.multicast.port = 54327
