Package: virne
Virne |Documentation|SDN-NFV Papers|LicenseVirneis a simulator forresource allocation problems in network virtualization, mainly forvirtual network embedding (VNE).
It also is adaptable to VNE's variants, such asservice 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 (wtfly2018@gmail.com)Completing the documentationImplementing more VNE algorithmsCitationPlease cite our papers if you use Virne in your research.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, Reviewing] HRL-ACRATable of ContentsQuick StartInstallationInstall with pipInstall with scriptMinimal ExampleVNE ProblemSupported FeaturesImplemented AlgorithmsExact AlgorithmsHeuristic AlgorithmsMeta-Heuristic AlgorithmsLearning-Based AlgorithmsQuick StartInstallationInstall with pippipinstallvirneInstall with script# only cpubashinstall.sh-c0# use cuda (optional version: 10.2, 11.3)bashinstall.sh-c11.3Minimal Examplefromvirne.baseimportBasicScenariofromvirneimportConfig,REGISTRY,Generator,update_simulation_settingdefrun(config):print(f"\n{'-'*20}Start{'-'*20}\n")# Load solver info: environment and solver classsolver_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)VNE ProblemBrife DefinationMain ObjectivesAcceptance rate$$
\text{Acceptance Rate} = \cfrac{\sum_{t=0}^{t=T} \text{Number}(VNR_{accept})}{\sum_{t=0}^{t=T} \text{Number}(VNR_{reject})}
$$Long-term revenue$$
\text{Long-term Revenue} = \sum_{n_v \in N_v}{Revenue(n_v)} + \sum_{e_v \in E_v}{Revenue(e_v)}
$$Revenue-to-cost Ratio$$
\text{Long-term Revenue} = \cfrac{\text{Long-term Revenue}}{\text{Long-term Cost}}
$$Running Time$$
\text{Running Time} = \frac{\text{Time consumption of solving }N\text{ instances}}{N}
$$Load BalancingLatency GarenteeQoS Awarenesses (Additional Constraints/ Objectives)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)ParallelizationPrivacyMapping StrategyTwo-StageIn 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 RankingSecondly, the BFS algorithm is employed to route the physical link pairs obtained from the node mapping solution.Joint Place and RouteThe solution of node mapping consists of a sequential placement decision.Simultaneously, the available physical link pairs are routed by BFS algorithm.BFS TrailsBased on breadth-first search, it expands the search space by exploiting the awareness of restarts.Supported FeaturesAdaptation to VNE VariantsService Function Chain Deployment (SFC Deployment)Network SlicingDiverse Network TopologiesStar Graph: Data Center Network2D-grid Graph: Grid NetworkWaxman Graph: General NetworkPath Graph: Chain-style NetworkEdge Probabilistic Connection GraphCustomlized TopologyGraph/ Node / Link-level Attributes:For resources/ constraints/ QoSGraph Level: e.g. the global requirements of virtual networkNode level: e.g. Node resource, node positionLink level: e.g. Link resource, link latencyMultiple RL EnvironmentsProvide serval RL Environments in gym.Env-styleVarious Simulation ScenariosAdmission control: Reject Early some not cost-effective virtual networksTime window: DeveloppingImplemented AlgorithmsVirnehas implemented the following heuristic-based and learning-based algorithms:Learning-based SolversNameCommandTypeMappingTitlePublicationYearNotePG-CNN2pg_cnn2learningtwo-stageA Virtual Network EmbeddingAlgorithm Based On Double-LayerReinforcement LearningThe Computer Journal2022A3C-G3C-Seq2Seq*a3c_gcn_seq2seqlearningjoint_prDRL-SFCP: Adaptive Service Function Chains Placement with Deep Reinforcement LearningICC2021PG-CNN-QoSpg_cnn_qoslearningtwo-stageResource Management and Security Scheme of ICPSs and IoT Based on VNE AlgorithmIoTJ2021PG-Seq2Seqpg_seq2seqlearningjoint_prA Continuous-Decision Virtual Network Embedding Scheme Relying on Reinforcement LearningTNSM2020GAE-Clusteringgae_clusteringlearningbfs_trialsAccelerating Virtual Network Embedding with Graph Neural NetworksCNSM2020ClusteringPG-MLPpg_mlplearningjoint_prNFVdeep: adaptive online service function chain deployment with deep reinforcement learning.IWQOS2019Hopfield-Networkhopfield_networklearningtwo-stageNeuroViNE: A Neural Preprocessor for Your Virtual Network Embedding AlgorithmINFOCOM2018Subgraph ExtractionPG-CNNpg_cnnlearningtwo-stageA Novel Reinforcement Learning Algorithm for Virtual Network EmbeddingNeurocomputing2018MCTSmctslearningtwo-stageVirtual Network Embedding via Monte Carlo Tree SearchTCYB2018MultiThreading Support*means that the algorithm only supports chain-shape virtual networks embeddingMeta-heuristics SolversNameCommandTypeMappingTitlePublicationYearNoteNodeRanking-MetaHeuristic**_**meta-heuristicsjointVirtual network embedding through topology awareness and optimizationCN2012MultiThreading SupportGenetic-Algorithmgameta-heuristicstwo-stageVirtual network embedding based on modified genetic algorithmPeer-to-Peer Networking and Applications2019MultiThreading SupportTabu-Searchtsmeta-heuristicsjointVirtual network forwarding graph embedding based on Tabu SearchWCSP2017MultiThreading SupportParticleSwarmOptimizationpsometa-heuristicstwo-stageEnergy-Aware Virtual Network EmbeddingTON2014MultiThreading SupportAnt-Colony-Optimizationacometa-heuristicsjointLink mapping-oriented ant colony system for virtual network embeddingCEC2017MultiThreading SupportAntColony-Optimizationacometa-heuristicsjointVNE-AC: Virtual Network Embedding Algorithm Based on Ant Colony MetaheuristicICC2011MultiThreading SupportSimulated-Annealingsameta-heuristicstwo-stageFELL: A Flexible Virtual Network Embedding Algorithm with Guaranteed Load BalancingICC2011MultiThreading SupportOther Related PapersParticle Swarm OptimizationXiang 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 AlgorithmLiu 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 OptimizationN/AHeuristics-based SolversNameCommandTypeMappingTitlePublicationYearNotePL (Priority of Location)pl_rankheuristicstwo-stageEfficient Virtual Network Embedding of Cloud-Based Data Center Networks into Optical NetworksTPDS2021NRM (Node Resource Management)nrm_rankheuristicstwo-stageVirtual Network Embedding Based on Computing, Network, and Storage Resource ConstraintsIoTJ2018GRC (Global resource capacity)grc_rankheuristicstwo-stageToward Profit-Seeking Virtual Network Embedding Algorithm via Global Resource CapacityINFOCOM2014RW-MaxMatch (NodeRank)rw_rankheuristicstwo-stageVirtual Network Embedding Through Topology-Aware Node RankingACM SIGCOMM Computer Communication Review2011RW-BFS (NodeRank)rw_rank_bfsheuristicsbfs_trialsVirtual Network Embedding Through Topology-Aware Node RankingACM SIGCOMM Computer Communication Review2011Exact SolversNameCommandTypeMappingTitlePublicationYearNoteMIP (Mixed-Integer Programming)mipexactjointViNEYard: Virtual Network Embedding Algorithms With Coordinated Node and Link MappingTON2012D-Rounding (Deterministic Rounding)d_roundingexactjointViNEYard: Virtual Network Embedding Algorithms With Coordinated Node and Link MappingTON2012R-Rounding (Random Rounding)r_roundingexactjointViNEYard: Virtual Network Embedding Algorithms With Coordinated Node and Link MappingTON2012Simple Baseline SolversNameCommandMappingRandom Rankrandom_ranktwo-stageRandom Joint Place and Routerandom_joint_prjoint_prRandom Rank Breath First Searchrandom_bfs_trialsbfs_trialsOrder Rankorder_ranktwo-stageOrder Joint Place and Routeorder_joint_prjoint_prOrder Rank Breath First Searchorder_bfs_trialsbfs_trialsFirst Fit Decreasing Rankffd_ranktwo-stageFirst Fit Decreasing Joint Place and Routeffd_joint_prjoint_prFirst Fit Decreasing Rank Breath First Searchffd_bfs_trialsbfs_trialsTo-do ListEnvironment ModelingADDScenarioWindow Batch ProcessingADDEnvironmentCheck Attributes of p_net and v_netADDEnvironmentLatency ConstraintADDControllerCheck graph constraintsADDControllerMulti-commodity flowADDEnvironmentQoS level ConstraintsADDRecorderCount partial solutions' informationADDEnironmentEarly rejection (Admission control)ADDEnvironmentMulti-Resources AttributesADDEnvironmentPosition ConstraintADDRecorderCount Running physical network nodesAlgorithm ImplementationsNameCommandTypeMappingTitlePublicationYearNotePG-Conv-QoS-Securitypg_cnn_qslearningjointVNE Solution for Network Differentiated QoS and Security Requirements: From the Perspective of Deep Reinforcement LearningarXivSecurityDDPG-Attention*ddpg_attentionlearningjointA-DDPG: Attention Mechanism-based Deep Reinforcement Learning for NFVIWQOS2021MUVINEmulearningjointMUVINE: Multi-stage Virtual Network Embedding in Cloud Data Centers using Reinforcement Learning based PredictionsJSAC2020Admission ControlTDtdlearningtwo-stageVNE-TD: A virtual network embedding algorithm based on temporal-difference learningCN2019RNNrnnlearningtwo-stageBoost Online Virtual Network Embedding: Using Neural Networks for Admission ControlCNSM2016Admission ControlModule Testingconfigconfigdatadata.attributedata.networkdata.physical_networkdata.virtual_networkdata.v_net_simulatorsolverbase.recorderbase.controllerbase.enviromentsolver.rank.node_ranksolver.rank.link_ranksolver.heuristicsolver.learning.mcts...