Service Function Chain - Embedding

code repository

Distributed Deep Learning

It is a distributed algorithm that uses Unsupervised Deep Learning for the efficient computation of the SFC-E problem.
The Deep Neural Network of the algorithm is trained by a Genetic Algorithm.
A distributed greedy algorithm is also included for comparison with the DL algorithm.
source code in eclipse project, jar file run: "jave -jar SFCdistrDL.jar", documentation.

Genetic Algorithm

This is a Genetic Algorithm that embodies lots of innovations and provides near optimal solutions
for the SFC-E problem combining effectiveness an efficiency.
source code in eclipse project, jar file run: "jave -jar SFCgaMT.jar", documentation.

Baseline greedy algorithm

A simple greedy algorithm mostly used for comparison with the Genetic Algorithm.
source code in eclipse project, jar file run: "jave -jar SFCbaseline.jar", documentation.

Network Simulator

It is an advanced network simulator integrated in every algorithm, designed for SFC embedding simulations.
Currently it supports 3-tier fat-tree topologies that are comonly used in modern datacenters.
The simulator is written in Java 8 and it is only necessary to add the project
or the .jar file in the classpath of any project that uses it; like in the algorithms presented here.
The output is a log file describing the status of the network after each request, accepted or not.
Use the -Xmx4g or the -Xmx6g option in case of large networks; larger than 5000 nodes.
fields description , documentation.

VNF-graphs

A small collection of VNF-graphs in Edge Vector format suitable to be used as requests in embedding algorithms.
The directory called "EVgraphs" should be in the same level as the directory that contains the algorithm.

Edge Vector codec

The software provided in this repository is free software under Apache License Version 2.0,
except from Edge Vector codec that is under GNU General Public License v3.0.
Pantelis Rodis, 2023