An SDN application that gives its user the ability to control flows in an OpenFlow network without coding.
The FlowManager is a RYU controller application that gives the user manual control over the flow tables in an OpenFlow network. The user can create, modify, or delete flows directly from the application. The user can also monitor the OpenFlow switches and view statistics. The FlowManager is ideal for learning OpenFlow in a lab environment, or in conjunction with other applications to tweak the behaviour of network flows in a test environment.
FlowManager is a RYU Controller application, so make sure that the controller is installed properly before you proceed.
Also, if you intend to use FlowManager with Mininet, you will need to install that too.
To install Ryu,
$ pip install ryu
Note: The application, ryu-manager, which you will need to run the FlowManager is known to have issues with Python3.10 and eventlet module. In this case, you may need to downgrade the Python version and the eventlet module.
If the default Python version in your machine is higher than 3.9, you may need install Python v3.9 and change the default Python version running on you machine or install Ryu in a virtual environment for Python 3.9:
Install Python 3.9
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt-get update
$ sudo apt-get install python3.9
Install distutils
$ sudo apt-get install python3.9-distutils
Create Virtual Environemnt (or change the default Python version)
$ virtualenv -p /usr/bin/python3.9 venv39
Install Ryu
$ source venv39/bin/activate
$ python -m pip install --upgrade pip
$ pip3 uninstall eventlet
$ pip3 install eventlet==0.30.2
$ pip3 install ryu
Verify the ryu-manager is working properly
$ ryu-manager --version
ryu-manager 4.34
Install FlowManager using the following steps:
$ git clone https://github.com/martimy/flowmanager
Run the FlowManager alone:
$ ryu-manager ~/flowmanager/flowmanager.py
or with another RYU application:
$ ryu-manager ~/flowmanager/flowmanager.py ryu.app.simple_switch_13
and to display the topology:
$ ryu-manager --observe-links ~/flowmanager/flowmanager.py ryu.app.simple_switch_13
Use a web broswer to launch the site http://localhost:8080/home/index.html
Use a Docker image to run Ryu Controller with the FlowManager.
docker pull martimy/ryu-flowmanager
docker run -d -p 6633:6633 -p 8080:8080 martimy/ryu-flowmanager
To run the controller with another Ryu app:
docker run -d -p 6633:6633 -p 8080:8080 martimy/ryu-flowmanager:latest ryu.app.simple_switch_13
docker run -d -p 6633:6633 -p 8080:8080 martimy/ryu-flowmanager:latest flowmanager/flowmanager.py ryu.app.simple_switch_13
To bypass the entry point:
docker run -it --entrypoint bash martimy/ryu-flowmanager
You can find some useful documention in here, but it is still a work-in-progress.
FlowManager is licensed under the Apache 2 License - see the LICENSE file for details