Documentation | SDN-NFV Papers | License
Virne is a simulator for resource allocation problems in network virtualization, mainly for virtual network embedding (VNE). It also is adaptable to VNE's variants, such as service function chain deployment (SFC Deployment), network slicing, etc. Specifically, it provides a unified interface for various VNE algorithms, and provides a variety of network topologies, network attributes, and RL environments.
Its main characteristics are as follows.
- Rich Implementations: Provide 20+ solvers, including exact, heuristic, meta-heuristic, and learning-based algorithms.
- Extensible Development: Provide a variety of network topologies, network attributes, and RL environments, which can be easily extended.
- Light-Weight: Implement concisely with less necessary dependencies, and can be extended easily for specific algorithms.
Virne is still under development. If you have any questions, please open a new issue or contact me via email ([email protected])
- Completing the documentation
- Implementing more VNE algorithms
If you find Virne helpful to your research, please feel free to cite our related papers.
[ICC, 2021] DRL-SFCP
@INPROCEEDINGS{tfw-icc-2021-drl-sfcp,
author={Wang, Tianfu and Fan, Qilin and Li, Xiuhua and Zhang, Xu and Xiong, Qingyu and Fu, Shu and Gao, Min},
booktitle={ICC 2021 - IEEE International Conference on Communications},
title={DRL-SFCP: Adaptive Service Function Chains Placement with Deep Reinforcement Learning},
year={2021},
volume={},
number={},
pages={1-6},
doi={10.1109/ICC42927.2021.9500964}
}
[TSC, 2023] HRL-ACRA
@ARTICLE {tfw-tsc-2023-hrl-acra,
author={Wang, Tianfu and Shen, Li and Fan, Qilin and Xu, Tong and Liu, Tongliang and Xiong, Hui},
journal={IEEE Transactions on Services Computing},
title={Joint Admission Control and Resource Allocation of Virtual Network Embedding Via Hierarchical Deep Reinforcement Learning},
year={2023},
volume={},
number={},
pages={1-14},
doi={10.1109/TSC.2023.3326539}
}
pip install virne
# only cpu
bash install.sh -c 0
# use cuda (optional version: 10.2, 11.3)
bash install.sh -c 11.3
from virne.base import BasicScenario
from virne import Config, REGISTRY, Generator, update_simulation_setting
def run(config):
print(f"\n{'-' * 20} Start {'-' * 20}\n")
# Load solver info: environment and solver class
solver_info = REGISTRY.get(config.solver_name)
Env, Solver = solver_info['env'], solver_info['solver']
print(f'Use {config.solver_name} Solver (Type = {solver_info["type"]})...\n')
scenario = BasicScenario.from_config(Env, Solver, config)
scenario.run()
print(f"\n{'-' * 20} Complete {'-' * 20}\n")
if __name__ == '__main__':
config = Config(
solver_name='nrm_rank',
# p_net_setting_path='customized_p_net_setting_file_path',
# v_sim_setting_path='customized_v_sim_setting_file_path',
)
Generator.generate_dataset(config, p_net=False, v_nets=False, save=False)
run(config)
- Acceptance rate
- Long-term revenue
- Revenue-to-cost Ratio
- Running Time
-
Load Balancing
-
Latency Garentee
- Position (Node level)
- Latency (Graph, Node and Link level)
- Security (Graph, Node and Link level)
- Congestion (Graph, Node and Link level)
- Energy (Graph, Node and Link level)
- Reliability (Graph, Node and Link level)
- Dynamic (Graph, Node and Link level)
- Parallelization
- Privacy
- Two-Stage
- In this fromework, the VNE solving process are composed of Node mapping and Edge Mapping.
- Firstly, the node mapping solution is generate with node mapping algorithm, i.e., Node Ranking
- Secondly, the BFS algorithm is employed to route the physical link pairs obtained from the node mapping solution.
- Joint Place and Route
- The solution of node mapping consists of a sequential placement decision.
- Simultaneously, the available physical link pairs are routed by BFS algorithm.
- BFS Trails
- Based on breadth-first search, it expands the search space by exploiting the awareness of restarts.
- Adaptation to VNE Variants
- Service Function Chain Deployment (SFC Deployment)
- Network Slicing
- Diverse Network Topologies
- Star Graph: Data Center Network
- 2D-grid Graph: Grid Network
- Waxman Graph: General Network
- Path Graph: Chain-style Network
- Edge Probabilistic Connection Graph
- Customlized Topology
- Graph/ Node / Link-level Attributes:
- For resources/ constraints/ QoS
- Graph Level: e.g. the global requirements of virtual network
- Node level: e.g. Node resource, node position
- Link level: e.g. Link resource, link latency
- Multiple RL Environments
- Provide serval RL Environments in gym.Env-style
- Various Simulation Scenarios
- Admission control: Reject Early some not cost-effective virtual networks
- Time window: Developping
Virne has implemented the following heuristic-based and learning-based algorithms:
*
means that the algorithm only supports chain-shape virtual networks embedding
Name | Command | Type | Mapping | Title | Publication | Year | Note |
---|---|---|---|---|---|---|---|
NodeRanking-MetaHeuristic | **_** |
meta-heuristics |
joint |
Virtual network embedding through topology awareness and optimization | CN | 2012 | MultiThreading Support |
Genetic-Algorithm | ga |
meta-heuristics |
two-stage |
Virtual network embedding based on modified genetic algorithm | Peer-to-Peer Networking and Applications | 2019 | MultiThreading Support |
Tabu-Search | ts |
meta-heuristics |
joint |
Virtual network forwarding graph embedding based on Tabu Search | WCSP | 2017 | MultiThreading Support |
ParticleSwarmOptimization | pso |
meta-heuristics |
two-stage |
Energy-Aware Virtual Network Embedding | TON | 2014 | MultiThreading Support |
Ant-Colony-Optimization | aco |
meta-heuristics |
joint |
Link mapping-oriented ant colony system for virtual network embedding | CEC | 2017 | MultiThreading Support |
AntColony-Optimization | aco |
meta-heuristics |
joint |
VNE-AC: Virtual Network Embedding Algorithm Based on Ant Colony Metaheuristic | ICC | 2011 | MultiThreading Support |
Simulated-Annealing | sa |
meta-heuristics |
two-stage |
FELL: A Flexible Virtual Network Embedding Algorithm with Guaranteed Load Balancing | ICC | 2011 | MultiThreading Support |
Other Related Papers
- Particle Swarm Optimization
- Xiang Cheng et al. "Virtual network embedding through topology awareness and optimization". CN, 2012.
- An Song et al. "A Constructive Particle Swarm Optimizer for Virtual Network Embedding". TNSE, 2020.
- Genetic Algorithm
- Liu Boyang et al. "Virtual Network Embedding Based on Hybrid Adaptive Genetic Algorithm" In ICCC, 2019.
- Khoa T.D. Nguyen et al. "An Intelligent Parallel Algorithm for Online Virtual Network Embedding". In CITS, 2019.
- Khoa Nguyen et al. "Efficient Virtual Network Embedding with Node Ranking and Intelligent Link Mapping". In CloudNet, 2020.
- Khoa Nguyen et al. "Joint Node-Link Algorithm for Embedding Virtual Networks with Conciliation Strategy". In GLOBECOM, 2021.
- Ant Colony Optimization
- N/A
Name | Command | Type | Mapping | Title | Publication | Year | Note |
---|---|---|---|---|---|---|---|
PL (Priority of Location) | pl_rank |
heuristics |
two-stage |
Efficient Virtual Network Embedding of Cloud-Based Data Center Networks into Optical Networks | TPDS | 2021 | |
NRM (Node Resource Management) | nrm_rank |
heuristics |
two-stage |
Virtual Network Embedding Based on Computing, Network, and Storage Resource Constraints | IoTJ | 2018 | |
GRC (Global resource capacity) | grc_rank |
heuristics |
two-stage |
Toward Profit-Seeking Virtual Network Embedding Algorithm via Global Resource Capacity | INFOCOM | 2014 | |
RW-MaxMatch (NodeRank) | rw_rank |
heuristics |
two-stage |
Virtual Network Embedding Through Topology-Aware Node Ranking | ACM SIGCOMM Computer Communication Review | 2011 | |
RW-BFS (NodeRank) | rw_rank_bfs |
heuristics |
bfs_trials |
Virtual Network Embedding Through Topology-Aware Node Ranking | ACM SIGCOMM Computer Communication Review | 2011 |
Name | Command | Type | Mapping | Title | Publication | Year | Note |
---|---|---|---|---|---|---|---|
MIP (Mixed-Integer Programming) | mip |
exact |
joint |
ViNEYard: Virtual Network Embedding Algorithms With Coordinated Node and Link Mapping | TON | 2012 | |
D-Rounding (Deterministic Rounding) | d_rounding |
exact |
joint |
ViNEYard: Virtual Network Embedding Algorithms With Coordinated Node and Link Mapping | TON | 2012 | |
R-Rounding (Random Rounding) | r_rounding |
exact |
joint |
ViNEYard: Virtual Network Embedding Algorithms With Coordinated Node and Link Mapping | TON | 2012 |
Name | Command | Mapping |
---|---|---|
Random Rank | random_rank |
two-stage |
Random Joint Place and Route | random_joint_pr |
joint_pr |
Random Rank Breath First Search | random_bfs_trials |
bfs_trials |
Order Rank | order_rank |
two-stage |
Order Joint Place and Route | order_joint_pr |
joint_pr |
Order Rank Breath First Search | order_bfs_trials |
bfs_trials |
First Fit Decreasing Rank | ffd_rank |
two-stage |
First Fit Decreasing Joint Place and Route | ffd_joint_pr |
joint_pr |
First Fit Decreasing Rank Breath First Search | ffd_bfs_trials |
bfs_trials |
-
ADD
Scenario
Window Batch Processing -
ADD
Environment
Check Attributes of p_net and v_net -
ADD
Environment
Latency Constraint -
ADD
Controller
Check graph constraints -
ADD
Controller
Multi-commodity flow -
ADD
Environment
QoS level Constraints -
ADD
Recorder
Count partial solutions' information -
ADD
Enironment
Early rejection (Admission control) -
ADD
Environment
Multi-Resources Attributes -
ADD
Environment
Position Constraint -
ADD
Recorder
Count Running physical network nodes
Name | Command | Type | Mapping | Title | Publication | Year | Note |
---|---|---|---|---|---|---|---|
PG-Conv-QoS-Security | pg_cnn_qs |
learning |
joint |
VNE Solution for Network Differentiated QoS and Security Requirements: From the Perspective of Deep Reinforcement Learning | arXiv | Security | |
DDPG-Attention* | ddpg_attention |
learning |
joint |
A-DDPG: Attention Mechanism-based Deep Reinforcement Learning for NFV | IWQOS | 2021 | |
MUVINE | mu |
learning |
joint |
MUVINE: Multi-stage Virtual Network Embedding in Cloud Data Centers using Reinforcement Learning based Predictions | JSAC | 2020 | Admission Control |
TD | td |
learning |
two-stage |
VNE-TD: A virtual network embedding algorithm based on temporal-difference learning | CN | 2019 | |
RNN | rnn |
learning |
two-stage |
Boost Online Virtual Network Embedding: Using Neural Networks for Admission Control | CNSM | 2016 | Admission Control |