### Example Ouroboros configuration file
#
# This file contains a summary of current machine configuration options
# for the O7s prototype.
#
# The list of accepted top level stanza is:
#
# [name.<name of service>] add a new name to the system.
# [local.<name for IPCP>] add a new local IPCP to the system.
# [eth-llc.<name for IPCP>] add a new IPCP over Ethernet (LLC) to the system.
# [eth-dix.<name for IPCP>] add a new IPCP over Ethernet (DIX) to the system.
# [udp4.<name for IPCP>] add a new IPCP over UDP/IPv4 to the system.
# [udp6.<name for IPCP>] add a new IPCP over UDP/IPv6 to the system.
# [broadcast.<name of IPCP>] add a new broadcast IPCP to the system.
# [unicast.<name of IPCP>] add a new unicast IPCP to the system.
#
# Options for names:
#
# A name can be created without any parameters. The following options will
# allow more useful configurations:
# prog: bind programs to this name. Whenever an instance of one of these
#       programs is started, it will accept incoming flows for this name.
# args: When provided the program at the same index in the prog list will be
#       automatically started if there is an incoming flow for that name.
# lb:   Load-balancing option, if there are multiple processes accepting flows
#       for that name, the flow will get assigned to the process according to
#       the specified load-balancing algorithm.
#
# Options for IPCPs:
#
# bootstrap=<layer_name>: Immediately bootstrap this IPCP in this layer.
# enrol=<dst>:            Enrol with this neigbor (broadcast and unicast only).
# conn=[<dst>]:           Create mgmt and data flows with these neighbors.
# reg=[<names>]:          Register these names with the IPCP.
# Bootstrap options can be set as in the examples below.
# For more details on the configuration options for each of the IPCP types,
# please refer to the Ouroboros man page.

[name.oping]
prog=["@INSTALL_DIR@/oping"] # Defaults to [].
args=["--listen"]       # Defaults to disabled. Autostart server with these args.
lb="round-robin"        # Defaults to spill (load-balancing options: spill, round-robin).

[name.oecho]
prog=["@INSTALL_DIR@/oecho"] # Defaults to [].
args=["--listen"]       # Defaults to disabled. Autostart server with these args.
lb="round-robin"        # Defaults to spill (load-balancing options: spill, round-robin).

[name.ocbr]
prog=["@INSTALL_DIR@/ocbr"]  # Defaults to [].

[name.ovpn]
prog=["@INSTALL_DIR@/ovpn"]  # Defaults to [].

[name."oping.secure"]
prog=["@INSTALL_DIR@/oping"] # Defaults to [].
args=["--listen"]       # Defaults to disabled. Autostart server with these args.
lb="round-robin"        # Defaults to spill (load-balancing options: spill, round-robin).
# server_enc_file=/path/to/enc.conf Default: @OUROBOROS_SRV_CRT_DIR@/<name>/enc.conf
# server_crt_file=/path/to/crt.pem Default: @OUROBOROS_SRV_CRT_DIR@/<name>/crt.pem
# server_key_file=/path/to/key.pem Default: @OUROBOROS_SRV_CRT_DIR@/<name>/key.pem
# client_enc_file=/path/to/enc.conf Default: @OUROBOROS_CLI_CRT_DIR@/<name>/enc.conf
# client_crt_file=/path/to/crt.pem Default: @OUROBOROS_CLI_CRT_DIR@/<name>/crt.pem
# client_key_file=/path/to/key.pem Default: @OUROBOROS_CLI_CRT_DIR@/<name>/key.pem

[local.local1]
bootstrap="local1"      # Defaults to not set.
   # BOOTSTRAP CONFIGURATION
# hash="SHA3_224"       # Defaults to SHA3_256.
   # NAMES KNOWN
reg=["bc1", "LAN"]      # Defaults to [].

[eth-llc.ethl]
bootstrap="ethl1"       # Defaults to not set.
   # BOOTSTRAP CONFIGURATION
dev="lo"
# hash="SHA3_224"       # Defaults to SHA3_256.

[eth-dix.eth1]
bootstrap="eth1"        # Defaults to not set.
   # BOOTSTRAP CONFIGURATION
dev="lo"
# ethertype=0xA007      # Defaults to 0xA000.
# hash="SHA3_224"       # Defaults to SHA3_256.
reg=["lan1"]

[udp4.udp1]
bootstrap="udp"         # Defaults to not set.
   # BOOTSTRAP CONFIGURATION
ip="127.0.0.1"
# port=9000             # Defaults to 3435.
# dns="127.0.0.1"       # Requires a DDNS server. Disables DDNS support if not set.

[udp6.udp2]
bootstrap="udp2"         # Defaults to not set.
   # BOOTSTRAP CONFIGURATION
ip="::1"
# port=9000             # Defaults to 3435.
# dns="::1"             # Requires a DDNS server. Disables DDNS support if not set.

[broadcast.bc1]
bootstrap="broadcast"   # Defaults to not set.
# autobind=true           # Defaults to false.

[broadcast.bc2]
enrol="bc1"
# autobind=true         # Defaults to false.

[unicast.lan1]
bootstrap="LAN"         # Defaults to not set.
autobind=true           # Defaults to false.
   # BOOTSTRAP CONFIGURATION
# addr_size=4           # Defaults to 4 (32-bit addresses).
# eid_size=8            # Defaults to 8 (64-bit endpoint IDs, only accepted option).
# max_ttl=60            # Defaults to 60 (max 255).
# addr-auth="flat"      # Defaults to flat (currently only option).
# routing="lfa"         # Defaults to link-state (options: link-state, lfa, ecmp).
# ls_t_recalc=4         # Forwarding Function update interval (s) (Default 4).
# ls_t_update=15        # Link State Advertisement update interval (s) (Default 15).
# ls_t_timeo=60         # Link Timeout (s) (Default 60).
# congestion="none"     # Defaults to mb-ecn (options: none, mb-ecn).
# directory=DHT         # Defaults to DHT (options: DHT)
# hash="SHA3_224"       # Defaults to SHA3_256.
# dht_alpha=3           # DHT parallel search factor (Default 3, optimal)
# dht_k=8               # DHT replication factor (Default: 8, same as Mainline DHT)
# dht_t_expiry=3600     # DHT entry expiry time (s) (Default: 86400 s)
# dht_t_refresh=900     # DHT contact refresh interval (s) (Default: 900 s)
# dht_t_replicate=900   # DHT replication interval (s) (Default: 900 s)
   # NAMES KNOWN
reg=["oping"]           # Defaults to [].

[unicast.lan2]
enrol="LAN"             # Defaults to not set.
conn=["lan1"]           # Defaults to [].
autobind=true           # Defaults to false.
