## Abstract

Network Function Placement (NFP) involves placing virtual network functions (VNFs) on the nodes of a network such that the data that flow through the network are processed by a chain of service functions along their path from source to destination. There are three aspects to this problem: (i) *routing* the flows efficiently through the network, (ii) *placement* of the VNFs on the nodes and (iii) *steering* each flow through a chain of VNFs, known as the service function chain (SFC). Routing must attempt to find “optimal” paths through the network (for e.g., shortest paths), possibly subject to constraints such as path latency and link bandwidth. The VNFs consume resources on the nodes where they are placed and are constrained by the capacity of the nodes. Steering must ensure that each flow has along its path a sequence of VNFs, likely in a certain order. One way to specify this problem is to define a multi-commodity flow problem with additional constraints based on the steering and placement requirements. Simultaneously solving all three aspects of this problem, trying to optimize various parameters and within the various constraints, is a hard problem, with even a simplified version shown to be NP-complete in this paper. Attempting to optimally solve this problem in real time while flows are getting provisioned and de-provisioned in parallel is an intractable problem, especially in large networks. Hence various types of heuristics have been used to solve this problem. In this paper we introduce a distributed, online solution that employs a message-passing protocol for nodes to negotiate the placement of the VNFs, with the minimization of the number of VNF instances being the primary objective. We compare the performance of the solution to that of the theoretically optimal solution and other proposed heuristics on both the Fat-tree topology and the BCube topology. The results show that this solution performs better than other heuristics. The average ratio of the result of the proposed solution to that of the optimal solution, taken as the approximation ratio, is found to be 1.5 for the tested scenarios.

This is a preview of subscription content, access via your institution.

## References

- 1
Carpenter B and Brim S 2002

*Middleboxes: taxonomy and issues*. Technical Report IETF, RFC 3234, February - 2
Han B, Gopalakrishnan V, Ji L and Lee S 2015 Network function virtualization: challenges and opportunities for innovations.

*IEEE Commun. Mag.*53(2): 90–97 - 3
Bec M T and Botero J F 2015 Coordinated allocation of Service Function Chains. In:

*Proceedings of IEEE GLOBECOM*, pp. 1–6 - 4
Anbiah A and Sivalingam K M 2017 Funplace: a protocol for Network Function Placement. In:

*Proceedings of the IEEE Conference on Local Computer Networks (LCN)*, Singapore, October, pp. 587–590 - 5
Leiserson C E 1985 Fat-trees: universal networks for hardware-efficient supercomputing.

*IEEE Trans. Comput.*100(10): 892–901 - 6
Guo C, Lu G, Li D, Wu H, Zhang X, Shi Y, Tian C, Zhang Y and Lu S 2009 BCube: a high performance, server-centric network architecture for modular data centers.

*ACM SIGCOMM Comput. Commun. Rev.*39(4): 63–74 - 7
Charikar M, Naamad Y, Rexford J and Zou X K 2018 Multi-commodity flow with in-network processing. In:

*Proceedings of the International Symposium on Algorithmic Aspects of Cloud Computing*, pp. 73–101 - 8
Anwer B, Benson T, Feamster N and Levin D 2015 Programming slick network functions. In:

*Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research*, p. 14 - 9
Cho D, Taheri J, Zomaya A Y and Bouvry P 2017 Real-time virtual network function (VNF) migration toward low network latency in cloud environments. In:

*Proceedings of the 10th IEEE International Conference on Cloud Computing (CLOUD)*, pp. 798–801 - 10
Baumgartner A, Reddy V S and Bauschert T 2015 Mobile core network virtualization: a model for combined virtual core network function placement and topology optimization. In:

*Proceedings of the 1st Conference on Network Softwarization (NetSoft)*, pp. 1–9 - 11
Mehraghdam S, Keller M and Karl H 2014 Specifying and placing chains of virtual network functions. In:

*Proceedings of IEEE CloudNet*, pp. 7–13 - 12
Kodirov N, Bayless S, Ruffy F, Beschastnikh I, Hoos H H and Hu A J 2018 VNF chain allocation and management at data center scale. In:

*Proceedings of the 2018 Symposium on Architectures for Networking and Communications Systems*, pp. 125–140 - 13
Moens H and De Turck F 2014 VNF-P: a model for efficient placement of virtualized network functions. In:

*Proceedings of the 10th International Conference on Network and Service Management (CNSM)*, pp. 418–423 - 14
Mohammadkhan A, Ghapani S, Liu G, Zhang W, Ramakrishnan K K and Wood T 2015 Virtual function placement and traffic steering in flexible and dynamic software defined networks. In:

*Proceedings of the International Workshop on Local and Metropolitan Area Networks (LANMAN)*, pp. 1–6 - 15
Lin T, Zhou Z, Tornatore M and Mukherjee B 2016 Demand-aware network function placement.

*J. Lightwave Technol.*34(11): 2590–2600 - 16
Addis B, Belabed D, Bouet M and Secci S 2015 Virtual network functions placement and routing optimization. In:

*Proceedings of IEEE CloudNet*, pp. 171–177 - 17
Ghaznavi M, Khan A, Shahriar N, Alsubhi K, Ahmed R and Boutaba R 2015 Elastic virtual network function placement. In:

*Proceedings of the 4th International Conference on Cloud Networking (CloudNet)*, pp. 255–260 - 18
Li X and Qian C 2016 A survey of network function placement. In:

*Proceedings of the 2016 13th IEEE Annual Consumer Communications & Networking Conference (CCNC)*, pp. 948–953 - 19
Harutyunyan D, Nashid S, Raouf B and Riggio R 2019 Latency-aware service function chain placement in 5G mobile networks. In:

*Proceedings of the IEEE Conference on Network Softwarization (NetSoft 2019)* - 20
Zheng D, Peng C, Liao X, Luo G, Tian L and Cao X 2019 Service function chaining and embedding with spanning closed walk. In:

*Proceedings of the 2019 20th IEEE International Conference on High Performance Switching and Routing (HPSR)*, pp. 1–5 - 21
Gadre A, Anbiah A and Sivalingam K M 2017 A customizable agile approach to network function placement. In:

*Proceedings of the European Conference on Networks and Communications (EuCNC)*, pp. 1–6 - 22
Gadre A, Anbiah A and Sivalingam K M 2018 Centralized approaches for virtual network function placement in SDN-enabled networks.

*EURASIP J. Wirel. Commun. Network.*2018(1): 197 - 23
Eramo V, Miucci E, Ammar M and Lavacca F G 2017 An approach for service function chain routing and virtual function network instance migration in network function virtualization architectures.

*IEEE/ACM Trans. Netw.*25(4): 2008–2025

## Acknowledgements

This work was supported by a DST grant (EMR/2016/003016) from Government of India (2017–2020) and an IRDA grant from IIT Madras (2017–2020).

## Author information

### Affiliations

### Corresponding author

## Appendix I. NP-completeness proof of NFP problem

### Appendix I. NP-completeness proof of NFP problem

In this section, a simplified form of the NFP problem that involves a single network function is taken into consideration. This simplified NFP problem is termed as the Single-NFP (S-NFP) problem. It is shown that the S-NFP problem is NP-complete.

### Appendix I.1 The Single Network Function Placement (S-NFP) problem

Given a network, a set of paths (representing flows through the network), a network function and a bound on the number of instances of the network function, the S-NFP problem involves finding whether the instances can be placed in the nodes of the network such that each path has at least one node (vertex) with the function placed on it. This is more formally defined here.

Let \({{\mathcal {G}}} = ({\mathcal {V}}, {\mathcal {E}})\) be an undirected graph representing a network and \({\mathcal {P}} = \{p_{1}, p_{2},\dots ,\, p_{m}\}\) be a set of *m* paths through the network. Each path \(p_{j}\) connects two vertices \(s_{j}\) and \(t_{j}\), where \(s_{j}, t_{j} \in {\mathcal {V}}\). The *S-NFP problem* is as follows: given a constant *c*, is there an \({\mathcal {R}} \subseteq {\mathcal {V}}\) s.t. \(\mid {\mathcal {R}}\mid \;\le c\) and \(\forall p_{j} \in {\mathcal {P}}, \exists {r \in {\mathcal {R}}}\) s.t. *r* is a vertex on path \(p_{j}\)?

### Appendix I.2 Reduction from Set Cover problem to S-NFP

The Set Cover problem can be reduced to the S-NFP problem, proving the NP-Completeness of the S-NFP problem. The Set Cover problem is as follows. Given \({\mathcal {U}} = \{1, 2,\dots , m\}\) and a family of *l* subsets of \({\mathcal {U}}\), \({\mathcal {F}} = \{A_{1}, A_{2}, \dots , A_{l}\}\) and a constant *c*, is there a set \({\mathcal {C}} \subseteq {\mathcal {F}}\) s.t. \(\mid {\mathcal {C}}\mid \le c\) and \(\forall j \in {\mathcal {U}}, \exists A \in {\mathcal {C}}\) s.t. \(j \in A\).

Given an instance of the Set Cover problem, a corresponding instance of the S-NFP problem can be constructed as follows.

Let \({\mathcal {U}}, {\mathcal {F}}\) and *c* of a Set Cover problem instance be given. A corresponding graph \({\mathcal {G}}\) and a set of *m* paths \({\mathcal {P}}\) through the graph can be defined based on this input. Let \(s_{j}\) and \(t_{j}\) be a pair of nodes in the graph corresponding to each element \(j \in {\mathcal {U}}\). \(s_{j}\) and \(t_{j}\) (\(1 \le j \le m\)) are the two end nodes of path \(p_{j}\) through the graph. Therefore, there are *m* such pairs and *m* corresponding paths through the graph. Additional nodes in the graph are now defined based on \({\mathcal {F}}\). For each set \(A_{i} \in {\mathcal {F}}\), define a node \(n_{i}\) in the graph. Also, for each \(s_j-t_j\) pair, define *l* nodes \(n^j_i\), where \(1 \le i \le l\).

Each path \(p_j\) in \({\mathcal {G}}\) has its end points at \(s_j\) and \(t_j\) and has *l* intermediate nodes. Intermediate node *i* of the path is either \(n_{i}\) if \(j \in A_i\), or \(n^j_i\) otherwise. Essentially, all paths corresponding to elements of \(A_i\) converge at \(n_i\) as their \(i^{th}\) intermediate node. An example of a Set Cover problem and its corresponding instance of the S-NFP problem are illustrated in figure 22.

The NP-completeness of the S-NFP problem can be proved by proving the following *lemma*, thereby proving the equivalence of an instance of the Set Cover problem with the corresponding instance of the S-NFP problem.

###
**Lemma**

*A solution to a feasible instance of the Set Cover problem with* *j* *elements in* \({\mathcal {U}}\) *and* *c* *as the bound on the cover set exists* *iff* *a solution exists to the corresponding S-NFP problem with* *j* *paths and* *c* *as the constraint on the number of network function instances*.

###
*Proof*

Consider an instance of the Set Cover problem and its corresponding instance of S-NFP problem constructed as described above. Let a solution exist for the S-NFP problem, with \({\mathcal {R}}\) being the solution. The solution for the Set Cover problem instance can be constructed as follows. For each \(r \in {\mathcal {R}}\), if *r* is node \(n_i\), then include \(A_i\) in the solution set \({\mathcal {C}}\). If the *r* is a node of the form \(n^j_i\), then include any set \(A_k\) s.t \(j \in A_k\) (it must exist if there is a feasible solution). Since \({\mathcal {R}}\) has at least one node on each of the *m* paths, it follows that \({\mathcal {C}}\) has at least one set which contains each one of the *m* elements in \({\mathcal {U}}\). Also, \(\mid {\mathcal {C}}\mid = \mid {\mathcal {R}}\mid \).

Conversely, let a solution set \({\mathcal {C}}\) exist for the Set Cover problem, solution set \({\mathcal {R}}\) for the S-NFP problem can be constructed by including in \({\mathcal {R}}\) vertex \(n_i\) which corresponds to each \(A_i \in {\mathcal {C}}\). Thus, above lemma is proved. It follows that S-NFP problem, and therefore the more general NFP problem, are NP-Complete. \(\square \)

## Rights and permissions

## About this article

### Cite this article

Anbiah, A., Sivalingam, K.M. An online distributed approach to Network Function Placement in NFV-enabled networks.
*Sādhanā* **46, **33 (2021). https://doi.org/10.1007/s12046-020-01530-y

Received:

Revised:

Accepted:

Published:

### Keywords

- Software-Defined Networks
- Network Function Virtualization
- Network Function Placement
- distributed