Restructures the crate to the SIM_SPEC six-component model (engine, network, host, bundle, evaluator, scenario) and relocates SIM_SPEC.md into the crate. Adds the SWIM host adapter wrapping production distribution::swim::SwimNode, the swim codec, a virtual network model, the scenario loader, an assertion evaluator, deterministic RNG, property-based tests, and reproduction/smoke/topology scenario TOMLs; drops the detector/divergence/lint/postproc/spec/runtime modules and prior spec docs. Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
65 lines
1.3 KiB
TOML
65 lines
1.3 KiB
TOML
# Three-node SWIM mesh, no impairments. Asserts continuous Alive.
|
|
# Expected verdict: pass-now.
|
|
|
|
name = "three_node_mesh"
|
|
seed = 1
|
|
duration_ns = 60_000_000_000 # 60 seconds
|
|
|
|
[default_tick]
|
|
period_ns = 200_000_000 # 200 ms
|
|
|
|
[default_link]
|
|
latency_ns = 5_000_000 # 5 ms
|
|
jitter_stddev_ns = 1_000_000 # 1 ms
|
|
loss_prob_ppm = 0
|
|
reorder_prob_ppm = 0
|
|
bandwidth_bps = 100_000_000 # 100 Mb/s
|
|
cold_dial_penalty_ns = 50_000_000 # 50 ms
|
|
cache_warm_after_ns = 100_000_000 # 100 ms
|
|
cache_invalidate_after_idle_ns = 30_000_000_000 # 30 s
|
|
|
|
[[peers]]
|
|
id = "a"
|
|
kind = "swim"
|
|
initial_state = "alive"
|
|
kind_config = { probe_interval_ns = 1_000_000_000, suspicion_timeout_ns = 5_000_000_000 }
|
|
|
|
[[peers]]
|
|
id = "b"
|
|
kind = "swim"
|
|
initial_state = "alive"
|
|
kind_config = { probe_interval_ns = 1_000_000_000, suspicion_timeout_ns = 5_000_000_000 }
|
|
|
|
[[peers]]
|
|
id = "c"
|
|
kind = "swim"
|
|
initial_state = "alive"
|
|
kind_config = { probe_interval_ns = 1_000_000_000, suspicion_timeout_ns = 5_000_000_000 }
|
|
|
|
[[links]]
|
|
from = "a"
|
|
to = "b"
|
|
[[links]]
|
|
from = "b"
|
|
to = "a"
|
|
[[links]]
|
|
from = "a"
|
|
to = "c"
|
|
[[links]]
|
|
from = "c"
|
|
to = "a"
|
|
[[links]]
|
|
from = "b"
|
|
to = "c"
|
|
[[links]]
|
|
from = "c"
|
|
to = "b"
|
|
|
|
[[snapshots]]
|
|
at_ns = 30_000_000_000
|
|
|
|
[[assertions]]
|
|
kind = "all_alive_throughout"
|
|
window_start_ns = 5_000_000_000
|
|
window_end_ns = 60_000_000_000
|
|
peers = ["a", "b", "c"]
|