Skip to content

netlab-lcy/FERN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FERN: Leveraging Graph Attention Networks for Failure Evaluation and Robust Network Design

This is a Pytorch implementation of FERN on TON 2023.

Training and Evaluating the deep learning model of FERN

  • Train FERN
cd NN-model

# Model pretrain over small scale topologies
python3 train.py --mode classify --train-data-dir MCF_BRITE_small_train --valid-data-dir MCF_BRITE_small_train --use-cuda --training-epochs 500 --log-dir pretrain_small

# pretrain for general classification model
python3 train.py --mode classify --train-data-dir MCF_train --valid-data-dir MCF_BRITE_small_train --use-cuda --training-epochs 1000 --log-dir pretrain_calssify --model-load-dir pretrain_small
# pretrain for general regression model
python3 train.py --mode normal --train-data-dir MCF_train --valid-data-dir MCF_BRITE_small_train --use-cuda --training-epochs 1000 --log-dir pretrain_normal --model-load-dir pretrain_small

# P2 training for large-scale topologies, build up a dataset for a specific large-scale topology (e.g., MCF_DialtelecomCz_test)
python3 train.py --mode classify --train-data-dir MCF_DialtelecomCz_test --valid-data-dir MCF_DialtelecomCz_test --use-cuda --training-epochs 10 --log-dir P2_DialtelecomCz  --part-failure --model-load-dir pretrain_classify --batch-size 1
  • Evaluate FERN
# test general classification model
python3 eval.py --mode classify --eval-data-dir MCF_BRITE_small_vary_capa_test1 --use-cuda  --log-dir pretrain_classify 

# test general regression model
python3 eval.py --mode normal --eval-data-dir MCF_BRITE_small_vary_capa_test1 --use-cuda  --log-dir pretrain_normal 

# test general classification model for tripple failures
python3 eval.py --mode classify --eval-data-dir MCF_tripple_test --use-cuda  --log-dir pretrain_classify --failure-type tripple
  • Detect critical failure scenarios with FERN
# detect the critical failure scenarios
python3 detect_critical_failure.py  --eval-data-dir MCF_BRITE_small_vary_capa_test1 --use-cuda  --detect-classify-model-dir pretrain_classify --detect-normal-model-dir pretrain_normal

We have uploaded the pretrained model and related training and testing data for FERN.

Apply FERN for robust network design use cases

  • Apply the predicted critical failure set for network upgrade
cp -r ./NN-model/failure_set/* ./fault-tolerance-network/network_upgrade/failure_set/
cd ./fault-tolerance-network/network_upgrade
python3 main.py
  • Apply the predicted critical set for fault-tolerant traffic engineering
cp -r ./NN-model/failure_set/* ./fault-tolerance-network/R3/failure_set/
cd ./fault-tolerance-network/R3
python3 main.py

If you have any questions, please post an issue or send an email to [email protected].

Citation

@article{liu2023fern,
  title={FERN: Leveraging Graph Attention Networks for Failure Evaluation and Robust Network Design},
  author={Liu, Chenyi and Aggarwal, Vaneet and Lan, Tian and Geng, Nan and Yang, Yuan and Xu, Mingwei and Li, Qing},
  journal={IEEE/ACM Transactions on Networking},
  year={2023},
  publisher={IEEE}
}

About

Code for FERN on TON 2023. Coming

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published