Runtime & CSV Configuration
Legacy Days runtime, CSV output, and application-source keys.
Scope: Legacy Days only. The keys on this page configure the legacy actor runtime. Days AGO reads seed, duration, and time_quantum_ns from this group; it does not use the Nexosim threading, UI, mailbox, or CSV settings, and it does not write CSV files.
Simulation and runtime
| Key | Type | Default | Constraint |
|---|---|---|---|
seed | integer | required | Legacy rejects 0; positive values seed endpoint selection, traffic distributions, and legacy RED. |
duration | seconds | 1500.0 | Finite and non-negative. |
threading | "single" or "multiple" | Nexosim default | single uses one worker. multiple uses num_threads or the logical CPU count. |
num_threads | positive integer | runtime-selected | Requires threading; must be 1 with single. |
hot_workers | integer | runtime default | Invalid for a one-worker runtime and cannot exceed the worker count. |
concurrency_level | "default" or "accelerated" | runtime default | Controls Nexosim groups per step task. |
time_quantum_ns | integer nanoseconds | unset | Passed to Nexosim. Exact lowering rejects nonzero values. |
mailbox_capacity | integer | 16 | Must be at least 1 and within Nexosim's representable capacity. |
If threading is absent, the vendored Nexosim SimInit::new() uses the logical CPU count.
seed = 1000
duration = 20.0
threading = "multiple"
num_threads = 4
hot_workers = 1
concurrency_level = "accelerated"
mailbox_capacity = 32Progress UI
ui_interval sets the refresh interval in seconds. It must be finite and positive. The default is one hundredth of the configured UI duration, clamped to at least one nanosecond.
ui_interval = 0.2CSV output
log_path = "./logs/run1"
csv_logging = true
report_interval = 1.0| Key | Type | Default | Behavior |
|---|---|---|---|
log_path | string | "./output" | Directory for legacy CSV output. |
csv_logging | boolean | true | Controls all logger filesystem output. |
report_interval | seconds | f64::MAX | Positive, nanosecond-representable interval for periodic report events. |
With csv_logging = false, the logger does not create log_path, CSV files, or traces.json. It also discards report rows instead of retaining them in its in-memory vectors. Test-only correctness accounting and aggregate sink totals still update.
With CSV logging enabled, initialization creates these base files:
sources.csvsinks.csvswitches.csvpfc.csvwithl2_pfc
The lean feature adds aqm_events.csv, cubic_events.csv, drr_events.csv, and wfq_events.csv. dcqcn,lean adds dcqcn_events.csv; l2_pfc,lean adds pfc_events.csv.
At final flush, traces.json lists the non-empty *_events.csv files. Empty trace files do not appear in the manifest.
E5 TCP correctness rows
legacy_e5_metrics = true enables final per-flow TCP correctness reports for the E5 fixture family. When TCP sources emit those reports, the logger creates tcp_metrics.csv. Leave this key unset for ordinary simulations.
legacy_e5_metrics = trueTCP collective application sources
Legacy TCP Broadcast and RingAllReduce collectives can pull bytes from actor-managed buffers. The table is valid only when the scenario contains at least one such TCP collective.
[app_source]
req_channel_capacity = 256
initial_delay = 1
run_interval = 50| Field | Unit | Default when [app_source] exists | Purpose |
|---|---|---|---|
req_channel_capacity | requests | 128 | Request-channel capacity. |
initial_delay | microseconds | 1 | Delay before the actor's first poll. |
run_interval | microseconds | 50 | Delay between polls. |
If the entire table is absent, AppBufferConfig::default() uses request capacity 256, initial delay 1, and run interval 50. The strict loader rejects app_source.chunk_size; legacy does not implement configurable application chunking.