## 6 Conclusions  
The concept of service function chaining evolves as service providers continue to explore the benefits of deploying streamlined services for end users. Several approaches have been proposed in the literature for deploying network function virtualisation and solving different problems that involve chaining such network functions to meet user requirements.  
In this work, we presented NFV environments and the requirements for chaining network functions for effective service delivery.  
We conducted a comprehensive survey focusing on the NFV frameworks that also support the chaining of virtual network functions. We created a taxonomy of SFC implementation frameworks, a classification of the problems they attempted to solve, and discussed the open research challenges in SFC environments. The taxonomy presented separates the frameworks into three main categories: resource allocation and service orchestration, performance tuning, resilience, and fault recovery.  
Important challenges that require further attention from the research community include the implementation of a hybrid NFV framework which can leverage processing resources from heterogeneous environments, including the orchestration of diverse vNFs. Other open challenges that should be addressed to support future networks are the optimisation of dynamic traffic steering in SFC, the efficient placement of heterogeneous network functions from diverse vendors, meeting SLA guarantees by service providers, and vNF/SFC embedding on commodity servers. All the open research challenges we have presented describe the problem, the importance of addressing each problem, explain the subcomponents of the problem (also depicted in Figure 14), how each of the identified problems relate to the operation of next generation networks, and discuss prominent attempts to tackling them. Our work provides researchers in the NFV/SFC domain a clear picture of what has been achieved so far and the areas that require further research in order for the long term vision of service function chaining to be achieved.  
Conceptualization, H.U.A. and D.P. P.; Methodology, H.U.A. and D.P. P.; Resources, H.U.A. and D.P. P.; Writing--original draft preparation, H.U.A. and D.P. P.; Writing--review and editing, H.U.A. and D.P. P.; Supervision, D.P.P. All authors have read and agreed to this draft of the manuscript.  
This work was supported in part by the UK Engineering and Physical Sciences Research Council (EPSRC) grant EP/N033957/1, the PETRAS National Centre of Excellence for IoT Systems Cybersecurity, which has been funded by the UK EPSRC under grant number EP/S035362/1 and the Petroleum Technology Development Fund (PTDF) Nigeria, grant 1563/19.  
Not applicable.  
No conflict of interest.  
The following abbreviations are used in this manuscript:  
\begin{tabular}{l l}
**Abbreviation** & **Meaning** \\ API & Application programming interface \\ CAPEX & Capital expenditure \\ CL & Classifier \\ CNF & Cloud-native function \\ DMA & Direct memory access \\ DPI & Deep packet inspection \\ eNF & embedded network function \\ ETSI & European Telecommunication Standards Institute \\ FPGA & Field-programmable gate array \\ EPC & Evolved packet core \\ ITU & International telecommunication union \\ IDS & Intrusion detection system \\ ILP & Integer linear programming \\ IoT & Internet of Things \\ IPS & Intrusion prevention system \\ PCAP & Packet capture \\ PoC & Proof of concept \\ RSS & Receive side scaling \\ SC & Service Chain \\ SDN & Software-defined networking \\ SFF & Service function forwarder \\ SP & Service provider \\ \end{tabular}