How rikonenobais/the-one works
The ONE SDU Mod is an opportunistic-network simulator. A user configures and starts a run; the simulator creates a world of mobile hosts, generates connections and messages, applies routing protocols to forwarding, then exposes the run interactively or produces reports. Its distinct stages include event and map input, movement and connectivity, message applications, routing, and result inspection. The repository also includes reinforcement-learning support and an optional DTN2 bridge. README capabilities establish the broad workflow; sampled source confirms decision-engine/router interactions, but not every subsystem’s wiring.
Main entry points: DTNSim.java Simulation engine · DecisionEngineRouter.java Router framework · World.java World and hosts · SimScenario.java Scenario setup
Components 19
Simulation runtime
- Run settings
src/core/Settings.java - Simulation engine
src/core/DTNSim.java - World and hosts
src/core/World.java - Network interfaces
src/interfaces/SimpleBroadcastInterface.java - Messages and buffers
src/core/Message.java
Scenario inputs
- Scenario setup
src/core/SimScenario.java - Events and messages
src/input/EventQueue.java - Map input
src/input/WKTMapReader.java - Movement models
src/movement/MovementModel.java
Messaging and routing
- Message applications
src/applications/PingApplication.java - Router framework
src/routing/DecisionEngineRouter.java - Routing protocols
src/routing - Reinforcement learning
src/reinforcement/qlearn/QAgent.java
Results and inspection
- Simulation reports
src/report/Report.java - Interactive visualization
src/gui/DTNSimGUI.java - Text interface
src/ui/DTNSimTextUI.java
Optional extensions
- DTN2 bridge
src/core/DTN2Manager.java
Other components
- Simulator user
- External DTN daemon
Connections 19
- Simulator user → Run settings: configures
- Simulator user → Simulation engine: starts run
- Run settings → Scenario setup: sets up
- Scenario setup → World and hosts: creates
- Events and messages → Scenario setup: supplies events
- Map input → Scenario setup: supplies map
- Movement models → World and hosts: moves hosts
- Simulation engine → World and hosts: advances
- World and hosts → Network interfaces: connects hosts
- Message applications → Messages and buffers: creates messages
- Messages and buffers → Router framework: enters forwarding
- Router framework → Routing protocols: queries decisions
- Router framework → Network interfaces: transfers messages
- Simulation engine → Simulation reports: emits results
- Simulation engine → Interactive visualization: visualizes run
- Simulator user → Text interface: runs batch
- Router framework → Reinforcement learning: uses learning
- Simulation engine → DTN2 bridge: initializes bridge
- DTN2 bridge → External DTN daemon: exchanges bundles