This repository contains the implementation of Elixir, a machine learning framework for control traffic prediction in SDN systems
We provide all source codes, including Elixir implementation and experiment scripts. The provided codes are organized as follows.
- Part 1 describes the source-code organization of this repository.
- Part 2 contains the steps to configure dependencies and compilation to run Elixir.
- Part 3 gives a general guide on executing the codes.
The repository is organized as follows:
Elixir/: contains the core implementation of Elixir.Elixir/dataset_new_avg/: contains the dataset of Elixir.Elixir/dataset_new_avg/: Training dataset- 'fl_default_of10.csv', 'fl_default_of13.csv', 'odl_default_of10.csv', 'odl_default_of13.csv', 'onos_default_of10.csv', 'onos_default_of13.csv', 'onos_proxyarp_of13.csv', 'onos_stats1_of13.csv', 'p4_default.csv'
dataset_new_avg/inf_realvalue/scoring/: Scroing datset- 'fl_default_of10.csv', 'fl_default_of13.csv', 'odl_default_of10.csv', 'odl_default_of13.csv', 'onos_default_of10.csv', 'onos_default_of13.csv', 'onos_proxyarp_of13.csv', 'onos_stats1_of13.csv', 'p4_default.csv'
- 'fl_default_of10.xlsx', 'fl_default_of13.xlsx', 'odl_default_of10.xlsx', 'odl_default_of13.xlsx', 'onos_default_of10.xlsx', 'onos_default_of13.xlsx', 'onos_proxyarp_of13.xlsx', 'onos_stats1_of13.xlsx', 'p4_default.xlsx'
dataset_new_avg/inf_realvalue/evaluation/: Evaluation datset- 'fl_default_of10.csv', 'fl_default_of13.csv', 'odl_default_of10.csv', 'odl_default_of13.csv', 'onos_default_of10.csv', 'onos_default_of13.csv', 'onos_proxyarp_of13.csv', 'onos_stats1_of13.csv', 'p4_default.csv'
- 'fl_default_of10.xlsx', 'fl_default_of13.xlsx', 'odl_default_of10.xlsx', 'odl_default_of13.xlsx', 'onos_default_of10.xlsx', 'onos_default_of13.xlsx', 'onos_proxyarp_of13.xlsx', 'onos_stats1_of13.xlsx', 'p4_default.xlsx'
Elixir/dataset_new_avg/exlixir_model_save/: pre-trained model (example of trained models of model space)
- Install required dependencies and libraries with conda. Please install conda
- Execute conda
$conda activate - Import conda env
$conda env create -f Elixir_env.yaml - Activate env
$conda activate Elixir_env
$ python trainmodel.py [training_dataset csv name]
- e.g.,
$ python trainmodel.py onos_default_of10.csv onos_default_of13.csv - Please check location of training dataset path:
dataset_new_avg/ - Training result(trained models) path:
dataset_new_avg/elixir-modelsave/
$ python inference.py [test_type] [training_dataset csv name]
-
inference dataset path:
dataset_new_avg/inf_realvalue/[test_type]/- require both
csvfile andxlsxfile - test_type: scoring or evaluation
- require both
-
scoring:
$ python inference.py scoring onos_default_of10.csv onos_default_of13.csv -
evaluation:
$ python inference.py evaluation onos_default_of10.csv onos_default_of13.csv -
result files(
xlsx):dataset_new_avg/result/
- Naive model:
$ python naiiveselction.py- result path (
txt):dataset_new_avg/result/modelselect/naiive.txt - result summary path (
xlsx):dataset_new_avg/result/modelselect/naiiveselectModel.xlsx
- result path (
- Freq model:
$ python freq_modelselection.py- result path:
dataset_new_avg/result/modelselect/freq.txt - result summary path:
dataset_new_avg/result/modelselect/freqselectModel.xlsx
- result path:
- Supreme model:
$ python modelselection.py- result path:
dataset_new_avg/result/modelselect/supreme.txt - result summary path:
dataset_new_avg/result/modelselect/naiiveselectModel.xlsx
- result path:
- RMSE:
$ python selectedmodelonlysummary_RMSE.py
- result:
dataset_new_avg/result/modelselect
- Freq rate:
$ python freqscore_FREQ.py
- result:
dataset_new_avg/result/modelselect
- This project is from Operating systems Lab, Korea University.
- Contact: yhyoo@os.korea.ac.kr
- Contributors: Yeonho Yoo, Gyeongsik Yang, Changyong Shin, Junseok Lee, Chuck Yoo (advisor)
@ARTICLE{Meteor2023,
author={Yoo, Yeonho and Yang, Gyeongsik and Shin, Changyong and Lee, Junseok and Yoo, Chuck},
journal={IEEE Transactions on Services Computing},
title={Machine Learning-Based Prediction Models for Control Traffic in SDN Systems},
year={2023},
volume={16},
number={6},
pages={4389-4403},
keywords={Predictive models;Control systems;Training;Network topology;Throughput;Prediction algorithms;Machine learning;Machine learning;software-defined networking;control traffic;prediction model formulation;prediction robustness},
doi={10.1109/TSC.2023.3324007}}