It includes a reinforcement learning model done using tensorflow to build Deep Q-Network (DQN) algorithm.
Also some metrics and impairments was introduces as part of the emulation and to calculate the reward so the system can learn.
The naming convention i used here are straight forward as you can understand what is the function of each script by just reading it.
Install Mininet inside linux environment or VM i used (https://mac.getutm.app/) for vertualization and ubuntu 22.04.
git clone https://github.com/mininet/mininet
cd mininet
git tag
git checkout -b mininet-2.3.0 2.3.0
cd ..
mininet/util/install.sh [options]
a: install everything that is included in the Mininet VM, including dependencies like Open vSwitch as well the additions like the OpenFlow wireshark dissector and POX. By default these tools will be built in directories created in your home directory.
nfv: install Mininet, the OpenFlow reference switch, and Open vSwitch
s mydir: use this option before other options to place source/build trees in a specified directory rather than in your home directory.
apt install python3.10-venv
python3.10 -m venv mininet_env
source mininet_env/bin/activate
pip install -r requirements.txt
pip list
chmod +x mininet_env.sh
./mininet_env.sh
pingall
mininet> xterm client server
source mininet_env/bin/activate
server python3 /home/khalid/Documents/mininet-scripts/server.py
client python3 /home/khalid/Documents/mininet-scripts/client.py
or
In client xterm: python client.py
In server xterm: python server.py