Appendix A: Configuration Reference

All Flock Network configuration files are in the toml format.

OSPFv2 Configuration

/etc/flockrsd/ospfv2.toml

# OSPFv2 Instance level configuration
# -----------------------------------
# 'ospf_v2' toml table
[ospf_v2]
# RFC2328 1.2 Router ID
# Optional: If not specified highest IPv4 Address is used.
router_id = "String in dotted decimal format"

# Array of 'redistribute' toml tables
[[ospf_v2.redistribute]]
# Origin of the Routes in the RIB to be redistributed
origin = ("kernel-static" | "kernel-connected")
# RFC2328 2.3 Type 1 / Type 2 external metrics
metric_type = ( 1 | 2 )
# OSPF metric to reach redistributed routes, from this router.
# RFC2328 B. LSInfinity => 16777215
metric = ( 0..16777215 )

# OSPFv2 Area level configuration
# -------------------------------
[[ospf_v2.area]] # Array of 'area' toml tables
# RFC2328 C.2 Area ID
area_id = "String in dotted decimal format"

# OSPFv2 Interface level configuration
# ------------------------------------
[[ospf_v2.area.intf]]
# Specify the entire interface name i.e. "eno1"
# or use ^ to match the start of interface names
#   e.g. "^en" will match all interfaces that start with "en"
name = "Interface Name"
# RFC2328 C.3 Interface output cost
# Optional: Default is 10
cost = ( 1..65,535 )
# RFC2328 C.3 Router Priority
# Optional: Default is 1
priority = ( 0..255 )
# RFC2328 C.3 HelloInterval
# Optional: Default is 10s
hello_interval = ( 1..65,535 seconds)
# RFC2328 C.3 RouterDeadInterval
# Optional: Default is 40s
dead_interval = ( 1..65,535 seconds)

Example Uniform OSPFv2 Configuration (Recommended)

[ospf_v2]

# Place all ethernet interfaces into area 0.0.0.0
[[ospf_v2.area]]
area_id = "0.0.0.0"
[[ospf_v2.area.intf]]
# Match any interfaces that have name starting with "en"
name = "^en"

Example Exhaustive OSPFv2 Configuration

[ospf_v2]
router_id = "10.0.1.100"

[[ospf_v2.redistribute]]
origin = "kernel-static"
metric_type = 1
metric = 100
[[ospf_v2.redistribute]]
origin = "kernel-connected"
metric_type = 2
metric = 1000

[[ospf_v2.area]]
area_id = "0.0.0.0"
[[ospf_v2.area.intf]]
name = "enp7s0"
cost = 20
priority = 10
hello_interval = 1
dead_interval = 4
[[ospf_v2.area.intf]]
name = "enp8s0"
cost = 40
priority = 20
hello_interval = 2
dead_interval = 8

[[ospf_v2.area]]
area_id = "0.0.0.1"
[[ospf_v2.area.intf]]
name = "enp9s0"
cost = 30
priority = 30
hello_interval = 20
dead_interval = 80