Skip to content

Commit

Permalink
copied repo
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefan Schneider committed Mar 25, 2020
1 parent c4ee33f commit d63714d
Show file tree
Hide file tree
Showing 38,192 changed files with 20,654,179 additions and 28 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
52 changes: 26 additions & 26 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
.idea

# VS Code files
.vscode

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand All @@ -6,6 +11,26 @@ __pycache__/
# C extensions
*.so

# Result files
results/
transformed/

# Debug data
FALSE_DATA/
g1-out/
tpk_3-out/
gp-runner-out/

# Generated configurations
configurations/

# Plotted charts
plotted/
move/

# Internal readme
README_.md

# Distribution / packaging
.Python
build/
Expand All @@ -20,8 +45,6 @@ parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
Expand All @@ -40,14 +63,12 @@ pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

Expand All @@ -59,7 +80,6 @@ coverage.xml
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
Expand All @@ -77,26 +97,11 @@ target/
# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
# celery beat schedule file
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py
Expand All @@ -122,8 +127,3 @@ venv.bak/

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
40 changes: 38 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,38 @@
# distributed-coordination
BA Lars Klenner: Fully distributed service coordination. Code building on the RealVNF/coord-sim
Copy of https://github.com/ldklenner/coordination-simulation-ba-adapted/tree/adapted

# Simulation: Coordination of chained virtual network functions

Simulate flow-level, inter-node network coordination including scaling and placement of services and routing flows between them. Note: this repository holds an altered version of the original simulator [coord-sim](https://github.com/RealVNF/coordination-simulation), adapted to my needs in order to accomplish my bachelor thesis.


**Additional features**:

* Forwarding capabilities. Prior to this, forwarding happened implicit. Now flows are explicit forwarded over link, taking into account individual link utilization
* Individual flow forwarding rules. A node can make a forwarding decision on individual flows.
* Individual flow processing rules. A node can explicit decide if it will process a flow.
* Extended simulator state and action interface.
* Algorithm callback interface. To allow a external algorithm to capture certain event, it can register callback functions invoked by the flowsimulator.
* init_flow callback
* pass_flow callback
* periodic measurement callbacks.
* Adapted metrics.
* Egress node routing.
* Extended simulator configuration


## Setup

Requires Python 3.6. Install with [virtualenv](https://virtualenv.pypa.io/en/stable/) to not break original coord-sim installation. Make sure to install simulator with adapted source files, located on the default `adapted` branch:
```bash
git checkout adapted
```

Then follow original setup procedure:
```bash
pip install -r requirements.txt
```


## Notes

Due to the use of deprecated networkx functions and their removal in the 2.4 version, released while developing, the networkx library is locked to version 2.3
Empty file added __init__.py
Empty file.
31 changes: 31 additions & 0 deletions params/config/deterministic_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# module for configuring the simulator
# configuration parameters are loaded and used both when using the simulator via via the interface
# all parameters are required, defaults are in comments

# Deterministic configuration, use single value probabilistic discrete distribution

# Flow parameter
flow_parameter_mode: probabilistic_discrete
inter_arrival_values: [10]
inter_arrival_weights: [1]
flow_dr_values: [1]
flow_dr_weights: [1]
flow_duration_values: [1]
flow_duration_weights: [1]

# Network parameter
# Note: attributes defined in the graphml file have always precedence.
node_ingress_probability: 0
node_egress_probability: 1
node_parameter_mode: probabilistic_discrete
node_cap_values: [10]
node_cap_weights: [1]
link_cap_parameter_mode: probabilistic_discrete
link_cap_values: [10]
link_cap_weights: [1]
link_delay_parameter_mode: probabilistic_discrete
link_delay_values: [3]
link_delay_weights: [1]

# Simulator execution parameter
run_duration: 10000
29 changes: 29 additions & 0 deletions params/config/legacy_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# module for configuring the simulator
# configuration parameters are loaded and used both when using the simulator via the interface
# all parameters are required, defaults are in comments

# Transformed deterministic legacy configuration

# Flow parameter
flow_parameter_mode: probabilistic_discrete
inter_arrival_values: [10]
inter_arrival_weights: [1]
flow_dr_values: [1]
flow_dr_weights: [1]
flow_duration_values: [1]
flow_duration_weights: [1]

# Network parameter
# Note: attributes defined in the graphml file have always precedence.
node_ingress_probability: 0
node_egress_probability: 0
node_parameter_mode: probabilistic_discrete
node_cap_values: [10]
node_cap_weights: [1]
link_cap_parameter_mode: probabilistic_discrete
link_cap_values: [10]
link_cap_weights: [1]
link_delay_parameter_mode: geo_location

# Simulator execution parameter
run_duration: 100 # default: 100
29 changes: 29 additions & 0 deletions params/config/probabilistic_continuous_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# module for configuring the simulator
# configuration parameters are loaded and used both when using the simulator via the interface
# all parameters are required, defaults are in comments

# Probabilistic continuous configuration

# Flow parameter
flow_parameter_mode: probabilistic_continuous
inter_arrival_lambda: 0.1 # exponential distribution: lambda
flow_dr_mean: 2.0 # normal distribution: mean/center of distribution
flow_dr_stdev: 3.0 # normal distribution: standard deviation
flow_size_alpha: 1 # pareto distribution: alpha

# Network parameter
# Note: attributes defined in the graphml file have always precedence.
node_ingress_probability: 0.2
node_egress_probability: 1
node_parameter_mode: probabilistic_continuous
node_cap_mean: 10 # normal distribution: mean/center of distribution
node_cap_stdev: 0 # normal distribution: standard deviation
link_cap_parameter_mode: probabilistic_continuous
link_cap_mean: 10 # normal distribution: mean/center of distribution
link_cap_stdev: 0 # normal distribution: standard deviation
link_delay_parameter_mode: probabilistic_continuous
link_delay_mean: 3 # normal distribution: mean/center of distribution
link_delay_stdev: 0 # normal distribution: standard deviation

# Simulator execution parameter
run_duration: 100
31 changes: 31 additions & 0 deletions params/config/probabilistic_discrete_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# module for configuring the simulator
# configuration parameters are loaded and used both when using the simulator via via the interface
# all parameters are required, defaults are in comments

# Probabilistic discrete configuration

# Flow parameter
flow_parameter_mode: probabilistic_discrete
inter_arrival_values: [1, 2, 5, 10]
inter_arrival_weights: [0.25, 0.25, 0.25, 0.25]
flow_dr_values: [1, 2, 4, 6]
flow_dr_weights: [0.3, 0.3, 0.3, 0.1]
flow_duration_values: [1, 2]
flow_duration_weights: [0.5, 0.5]

# Network parameter
# Note: attributes defined in the graphml file have always precedence.
node_ingress_probability: 0.2
node_egress_probability: 1
node_parameter_mode: probabilistic_discrete
node_cap_values: [100]
node_cap_weights: [1]
link_cap_parameter_mode: probabilistic_discrete
link_cap_values: [50]
link_cap_weights: [1]
link_delay_parameter_mode: probabilistic_discrete
link_delay_values: [3, 5, 15]
link_delay_weights: [0.4, 0.3, 0.3]

# Simulator execution parameter
run_duration: 1000
Loading

0 comments on commit d63714d

Please sign in to comment.