Architecture¶
Virne connects configuration, network simulation, solvers, and recording in a single experiment workflow. This page maps the conceptual architecture to the implementation so that readers can find the relevant code quickly.
Virne connects configuration and simulated requests with shared systems, solver interfaces, feasibility checks, and experiment recording.¶
Core Components¶
Component |
Responsibility |
Main implementation |
|---|---|---|
Configuration |
Defines the experiment, system, solver, training, PN, and VN settings. |
|
Network model |
Represents physical and virtual networks and generates request events. |
|
System |
Builds an online, offline, time-window, or changeable simulation and drives its event loop. |
|
Environment and controller |
Check placement and routing feasibility, update resources, and expose solver-facing state transitions. |
|
Solver registry |
Resolves |
|
Recorder and counter |
Store per-event records and compute run-level metrics. |
|
Experiment Flow¶
When virne is executed, Virne follows this sequence:
Hydra composes
virne/configs/main.yamland applies command-line overrides.BaseSystem.from_configcreates the network data, environment, solver, controller, recorder, counter, and logger.The selected system emits VN arrival and departure events.
For each arrival, the selected solver returns a mapping solution.
The environment checks the solution, updates resources, and records the outcome.
Virne writes the resolved configuration, per-event records, and summary metrics to the run directory.
This separation lets the same solver run against different simulations and lets multiple solvers share the same feasibility checks and metric definitions.
Where to Go Next¶
Run the complete workflow in the Quickstart.
Configure PN and VN generation in simulation scenarios.
Browse the live solver registry.
Learn how training fits into the system in RL Pipeline.
Interpret generated CSV files with evaluation metrics.