# A Systematic Literature Review of Reliable Provisioning for Virtual Network Function Chaining
## 4 Results of the Systematic Literature Review
### Different Strategies Used for Reliable Service Function
#### 4.1.2 Evaluation Approaches and Simulation Setup  
The existing reliable provisioning algorithms demonstrate their performance by introducing a simulation setup. The simulation setups are usually embraced from the literature for consistent results. However, most existing algorithms consider either different parameters or change the scale of the simulation due to simplicity or as their algorithm is proposed for another scenario. Network topology, number of VNFs per Service Function Chain (SFC), and simulation platform are among the most affecting factors in the performance evaluation of VNF placement and the service function chaining algorithm. One of the main components of every evaluation is the network topology. Considering a realistic network topology to run the proposed algorithm can ease the prediction of the algorithm's performance in real-life scenarios. However, the network topology can vary depending on the purpose of the algorithm. The ones considered for virtual network function chaining are usually limited to a few models. For instance, the authors in [25] consider DC topologies such as Abilene, ANS, AboveNet, Integra, and BICS, located in Europe, Japan, the United States, and across these regions. In [18], a three-layer fat-tree topology data center architecture is used in the simulation. Moreover, fat-tree topology is also considered in [43; 44; 45; 46]. Fat-tree topology is a popular data center model that includes redundant switches, links, and servers. The tree network model (fat-tree) is one of the dominant topologies for service function chain algorithms. Another common parameter that needs to be defined when evaluating a VNF Chain Placement algorithm is the SFC and the number of the VNFs per SFC. In [10], every considered SFC in the simulation includes three VNFs. The proposed algorithm in [21] also considered three VNFs for each SFC in their simulation. The number of VNFs is randomly selected for each SFC in [25] and is considered between one and seven. In another algorithm, from two to six VNFs are considered in an SFC where every VNF provides one network function. In [46], every SFC includes from two to four VNFs. Each of these VNFs is usually chosen randomly from a list of different types VNFs such as Firewall, Load Balancer (LB), and Network Address Translation (NAT). One of the main components of the simulation setup is the simulation platform. The simulation has filled the algorithms' evaluation process gap for researchers as it is a cost-efficient approach, less complicated, and independent of the environment's performance characters in comparison to large-scale test-beds [47]. The simulations are used to create a close-to-real-scenario environment to predict and evaluate the performance of an algorithm in a real-life scenario [48]. Depending on its existing features and characteristics, every simulation platform presents a limited version of the real-life scenario. Therefore, depending on those limitations, the achieved results of the same algorithm can vary under different simulation platforms. For example, an algorithm that is simulated through Matlab can present a different result when simulated using Python. It is not always the case where results have a huge difference but mostly a slight difference or another behavior depending on the simulation environment and its features. Therefore, when comparing the performance of various algorithms, it is necessary to consider the same platform. Different simulation platforms are used for provisioning algorithms. In [10], the Networkx library in Python is used for simulation. In [18], the fat-tree network topology is implemented based on Alevin [16], and the provisioning algorithm is simulated in Java.