The problem
Congestion and link failures can make a fixed route inefficient. A learned policy needs a useful representation of network state and an evaluation that reaches beyond its training simulator.
Why this matters to me
Explore adaptive routing through a complete implementation: train an agent, connect its decisions to an SDN testbed, and inspect the behavior alongside a conventional baseline.
My role
Implemented the routing environment, DQN agent, training workflow, and Mininet/Ryu integration, with a Vue / Flask dashboard for inspecting network state and routing decisions.
Technical approach
- Designed an 81-dimensional state representation, action masking, and a multi-objective routing reward in Gymnasium.
- Combined Dueling DQN, Double DQN, prioritized replay, and Softmax exploration with an entropy bonus.
- Used a five-phase curriculum; the project documentation reports 18,000 training episodes.
- Built a 12-switch / 5-host Mininet testbed and evaluated four congestion / failure scenarios alongside OSPF, with 30 episodes per scenario.
Results & current status
The repository contains training logs and Mininet evaluation artifacts. Its reported percentage improvements are not repeated here because the summary table still needs to be linked to the exact corresponding runs.
Limitations & open questions
- Simulation performance does not by itself establish testbed or real-network performance.
- The README result table and the inspected local summary files are not yet reconciled. No single run has been selected as a headline result.