Incremental Fast Lightweight (y) virtual network Embedding framework
ifyle is an open-source framework for Incremental Fast Lightweight (y) virtual network Embedding.
11.0.3
and activate a license for your computer.22.1.1
.GRB_LICENSE_FILE=C:\Users\mkratz\gurobi.lic
GUROBI_HOME=C:\gurobi1103\win64
LD_LIBRARY_PATH=C:\gurobi1103\win64\lib;C:\Program Files\IBM\ILOG\CPLEX_Studio2211\cplex\bin\x64_win64\
PATH=C:\gurobi1103\win64\bin;C:\Program Files\IBM\ILOG\CPLEX_Studio2211\cplex\bin\x64_win64\
```
network.model
org.emoflon.gips.gipsl.examples.mdvne
org.emoflon.gips.gipsl.examples.mdvne.bwignore
org.emoflon.gips.gipsl.examples.mdvne.migration
org.emoflon.gips.gipsl.examples.mdvne.seq
org.emoflon.gips.gipsl.examples.mdvne*
.A good start point to verify your installation is to run the included unit tests, refer to the test section.
This project uses the built-in code-style and code-formatter of Eclipse.
Before contributing, please set-up your Eclipse code-style settings as follows:
By using this settings, you should be unable to commit unformatted code.
After finishing the installation steps, you may run simulations, e.g., from the examples project.
There are some examples for network generators as well as embedding algorithms.
All examples contain a public static void main(final String[] args)
method as entry point and can be run as Java appication from within the Eclipse workspace.
You may want to run the whole program as one exported file, e.g., on a server via the CLI for measurement purposes.
To export the whole project as executable JAR file, follow this step:
Depending on your launch configuration, you can start the JAR file with additional arguments.
Example:$ java -jar iflye.jar --algorithm taf --objective total-taf-comm --snetfile resources/two-tier-12-pods/snet.json --vnetfile resources/two-tier-12-pods/vnets.json --csvpath metrics.csv
For larger simulations, you may want to increase the Java heap space.
Example with 32 GiB:$ java -Xmx32g -jar iflye.jar $parameters
In the subfolder scripts/ are some basic Bash scripts to run parameter sweeps as well as CLI argument parsing into the scenario.
As this project is the small sibling of the iDyVE project, you may want to run the same scenarios in both frameworks, e.g., to compare the performance.
For this purpose, iflye has a built in model converter which can read virtual and substrate networks from JSON export files (e.g., from iDyVE).
The chosen JSON format is loosly coupled with the used metamodel.
Therefore, it acts as a kind of abstract model representation to transfer models from one metamodel/framework to the other.
Feel free to check out some examples in vne.scenarios/resources/*/.
Various test cases to test the framework as well as some of the implemented VNE algorithms are implemented in the project test.suite.iflye.
To start them, follow this step:
Please notice: The test IlpSolverSetupTest will check your Gurobi/CPLEX installation and configuration. If this test fails, at least one of the two ILP solvers is not configured properly.
For easier debugging purposes, a basic GUI for visualizing networks is implemented in the project network.visualization based on GraphViz.
Currently, it can render tree-based networks as tree structures or use the automatic mode of GraphViz from a model file model.xmi
in the examples project.
Therefore, launch the class Ui
with these arguments: ../examples/model.xmi sub 1
../examples/model.xmi
is the path of the model to read.sub
is the name of the (substrate) network to visualize.1
configures the automatic layout. You can also chose 0
to use a tree-like layout.This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for more details.