This project represents the work in our paper submmitted to SOICT on Communications 2022 "Distributed SDN-based Network with Adaptive East–West Interface: A Server and Route selection mechanism" -Authors: ThangHN SonDuong TuanTran
In this brand, there are 2 components:
- Component 1: API to receive data from SINA system in the article: https://doi.org/10.3390/electronics11070975 data will be calculated by us QoS parameters save to local database
- Component 2: We implement apis to communicate with other SDNs with mechanism Adaptive Consistency and with CCDN
Every above component is described in this README.
We use ONOS to deploy our management and monitoring SDN application. ONOS is the only SDN controller platform that supports the transition from legacy “brown field” networks to SDN “green field” networks. This enables exciting new capabilities, and disruptive deployment and operational cost points for network operators.
git clone https://github.com/opennetworkinglab/onos
To simulate an SDN network, we use the popular framework Mininet. Mininet currenttly only works in Linux. In our project, we run mininet in an Ubuntu LTS 18.04 VM. To get mininet, you can simply download a compressed Mininet VM from Mininet downloadpage or install through apt:
sudo apt update
sudo apt install mininet
Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. It began as a simple wrapper around Werkzeug and Jinja and has become one of the most popular Python web application frameworks.
$ pip install -U Flask
The PyMongo distribution contains tools for interacting with MongoDB database from Python.
$ python -m pip install pymongo
https://github.sre.pub/rabbitmq
In this section we write an api that listens for network changes. And process that data calculate link cost update to local database and ccdn database. The processing part of ccdn we present in branch CDN_master.
To run ONOS controller following command:
cd ~/onos
bazel build onos
bash onos.sh
To run our project, copy bellow command:
bash run_flask.sh