https://github.com/cn-upb/b-jointsp
Joint placement and scaling of bidirectional network services with stateful virtual or physical network functions
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: ieee.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.7%) to scientific vocabulary
Keywords
gurobi
heuristic
heuristic-algorithm
mixed-integer-programming
nfv
optimization
optimization-algorithms
placement
routing
scaling
traffic-engineering
vnf
vnf-management
vnf-placement
Last synced: 5 months ago
·
JSON representation
Repository
Joint placement and scaling of bidirectional network services with stateful virtual or physical network functions
Basic Info
Statistics
- Stars: 22
- Watchers: 8
- Forks: 14
- Open Issues: 6
- Releases: 0
Topics
gurobi
heuristic
heuristic-algorithm
mixed-integer-programming
nfv
optimization
optimization-algorithms
placement
routing
scaling
traffic-engineering
vnf
vnf-management
vnf-placement
Created about 8 years ago
· Last pushed over 5 years ago
https://github.com/CN-UPB/B-JointSP/blob/master/
[](https://travis-ci.org/CN-UPB/B-JointSP)
# B-JointSP
B-JointSP is an optimization problem focusing on the *joint scaling and placemen*t (called embedding) of NFV network services, consisting of interconnected virtual network functions (VNFs). The exceptional about B-JointSP is its consideration of *realistic, bidirectional network services*, in which flows return to their sources. It even supports *stateful VNFs*, that need to be traversed by the same flows in both upstream and downstream direction. Furthermore, B-JointSP allows the reuse of VNFs across different network services and supports physical network functions.
### Cite this work
If you use B-JointSP in your research, please cite our work:
> Sevil Drxler, Stefan Schneider, Holger Karl: "[Scaling and Placing Bidirectional Services with Stateful Virtual and Physical Network Functions](https://ieeexplore.ieee.org/document/8459915/)". IEEE Conference on Network Softwarization (NetSoft), Montreal, CA (2018)
*Note: For the source code originally implemented and submitted to IEEE NetSoft 2018, refer to the corresponding [release](https://github.com/CN-UPB/B-JointSP/releases/tag/v1.0) or [branch](https://github.com/CN-UPB/B-JointSP/tree/netsoft2018). The master branch contains only the heuristic, not the MIP, and is greatly extended compared to the original code.*
### Changelog
* March 2020: Allowed passing template, sources, fixed VNFs as objects directly (not just file paths)
* Feb 2019: Added end-to-end delay as result metric (not just total delay)
* Feb 2019: Added VNF delays to templates and to calculation of total delay
## Setup
```
python setup.py install
```
Requires Python 3.5+
## Usage
Type `bjointsp -h` for usage help. This should print:
```bash
usage: bjointsp [-h] -n NETWORK -t TEMPLATE -s SOURCES [-f FIXED]
B-JointSP heuristic calculates an optimized placement
optional arguments:
-h, --help show this help message and exit
-n NETWORK, --network NETWORK
Network input file (.graphml)
-t TEMPLATE, --template TEMPLATE
Template input file (.yaml)
-s SOURCES, --sources SOURCES
Sources input file (.yaml)
-f FIXED, --fixed FIXED
Fixed instances input file (.yaml)
-p PREV_EMBEDDING, --prev PREV_EMBEDDING
Previous embedding input file (.yaml)
```
As an example, you can run the following command from the project root folder (where README.md is located):
```bash
bjointsp -n parameters/networks/Abilene.graphml -t parameters/templates/fw1chain.yaml -s parameters/sources/source0.yaml
```
This should start the heuristic and create a result in the `results/bjointsp` directory in form of a yaml file.
The repository contains one [result for the above command](https://github.com/CN-UPB/B-JointSP/blob/master/results/bjointsp/Abilene-fw1chain-source0-2019-07-24_10-39-18_681.yaml) as an example.
## Contact
Lead developer: [Stefan Schneider](https://github.com/stefanbschneider/)
For questions or support, please use GitHub's issue system.
Owner
- Name: Computer Networks group @ UPB
- Login: CN-UPB
- Kind: organization
- Location: Paderborn, Germany
- Website: https://cs.uni-paderborn.de/cn/
- Repositories: 12
- Profile: https://github.com/CN-UPB
Computer Networks Group of Paderborn University
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1