Days
Legacy Days

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

KeyTypeDefaultConstraint
seedintegerrequiredLegacy rejects 0; positive values seed endpoint selection, traffic distributions, and legacy RED.
durationseconds1500.0Finite and non-negative.
threading"single" or "multiple"Nexosim defaultsingle uses one worker. multiple uses num_threads or the logical CPU count.
num_threadspositive integerruntime-selectedRequires threading; must be 1 with single.
hot_workersintegerruntime defaultInvalid for a one-worker runtime and cannot exceed the worker count.
concurrency_level"default" or "accelerated"runtime defaultControls Nexosim groups per step task.
time_quantum_nsinteger nanosecondsunsetPassed to Nexosim. Exact lowering rejects nonzero values.
mailbox_capacityinteger16Must 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 = 32

Progress 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.2

CSV output

log_path = "./logs/run1"
csv_logging = true
report_interval = 1.0
KeyTypeDefaultBehavior
log_pathstring"./output"Directory for legacy CSV output.
csv_loggingbooleantrueControls all logger filesystem output.
report_intervalsecondsf64::MAXPositive, 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.csv
  • sinks.csv
  • switches.csv
  • pfc.csv with l2_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 = true

TCP 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
FieldUnitDefault when [app_source] existsPurpose
req_channel_capacityrequests128Request-channel capacity.
initial_delaymicroseconds1Delay before the actor's first poll.
run_intervalmicroseconds50Delay 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.

On this page