Decomposition of virtual network functions

EP4578164A1Pending Publication Date: 2025-07-02TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
EP2022768972
Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-08-23
Publication Date
2025-07-02

AI Technical Summary

Technical Problem

Existing solutions for decomposing virtual network functions (VNFs) fail to address general VNF-FG topologies, compatibility constraints, and do not provide flexibility or scalability in selecting optimal decomposition options to optimize service provider objectives and network service performance.

Method used

A method and apparatus for decomposing VNF chains by identifying decomposition sub-components, calculating forward and backward weight values, and selecting paths to configure connections between VNFs, which addresses compatibility and scalability issues through a multi-stage graph model and pruning processes to determine the best decomposition options.

Benefits of technology

The solution provides flexible, scalable, and robust VNF decomposition, enabling efficient embedding of network services by selecting optimal sub-components that satisfy compatibility constraints and minimize embedding costs, ensuring robustness with fallback options.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 1.1
    Figure 1.1
Patent Text Reader

Abstract

A method of decomposing one or more chains of virtual network functions (VNFs) is provided. The method comprises identifying a first set of decomposition sub-components (DSCs) included in a first VNF and a second set of DSCs included in a second VNF. The method further comprises obtaining a first forward weight value for a first forward path from a first DSC to a third DSC, obtaining a second forward weight value for a second forward path from a second DSC to the third DSC, and performing a first comparison based on the first forward weight value and the second forward weight value. The method further comprises using a result of the first comparison based on the first forward weight value and the second forward weight value, selecting first forward path, and configuring a connection between the first VNF and the second VNF based on the selection of the first forward path.
Need to check novelty before this filing date? Find Prior Art

Description

DECOMPOSITION OF VIRTUAL NETWORK FUNCTIONS TECHNICAL FIELD

[0001] Disclosed are embodiments related to methods and apparatus for decomposing one or more chains of virtual network functions (VNFs). BACKGROUND

[0002] In a Network Function Virtualization (NFV) ecosystem, a Network Service (NS) request generally contains a set of VNFs with some dependencies and Service Level Agreement (SLA) requirements. An incoming NS can be described by either a chain of VNFs (commonly referred to as a Service Function Chain (SFC)) or a more general graph topology, which is known as Virtual Network Function – Forwarding Graph (VNF-FG).

[0003] In order to deploy an NS, after forming the VNF-FG, the Service Provider (SP) has to embed it onto the substrate network with respect to the dependencies between VNFs as well as the given SLA requirements. However, forming a VNF-FG is challenging, as each VNF may be associated with multiple realizations, commonly referred to as decomposition options. Each decomposition option may comprise one or multiple subfunctions / subcomponents.

[0004] For instance, the intrusion detection system (IDS) can be realized via either a single IDS function (as shown in FIG.52(a)) or a combination of IDS of multiple subfunctions, namely, controller, deep packet inspection (DP), firewall (FW), and network element (NE) functions (as shown in FIG.52(b)). Each of these decomposition options can highly influence SP’s objectives (e.g., embedding costs, user experiences) as well as the NS performance. Therefore, the decomposition of VNFs required by an NS to form the VNF-FG must be carried out properly so that the SLA requirements are satisfied while SP’s objectives are optimized. This topological decomposition problem (i.e., the problem of decomposing VNFs properly) becomes even more complex for more general VNF-FG topologies, where different graph structures (e.g., split, marge) may raise compatibility issues. SUMMARY

[0005] Existing solutions for decomposing VNFs have the following problems: (1) they do not work for general VNF-FG topologies; (2) they do not address VNF compatibility constraints; (3) P104419WO01 (3602-2429WO1) Page 1 of 38they do not provide flexibility in selecting an appropriate decomposition option of each VNF from the list of its decomposition options to optimize SP’s objectives and the NS performance; (4) they do not efficiently incorporate the subsequent embedding in determining the topological decomposition of VNFs (This is very crucial because an optimal selection of the decomposition options of VNFs cannot be achieved without knowing embedding decisions); and / or (5) they do not provide a scalable scheme to determine the topological decomposition of VNFs (e.g., brute force-based solutions).

[0006] Accordingly, in one aspect of some embodiments of this disclosure, there is provided a method of decomposing one or more chains of virtual network functions, VNFs. Said one or more chains of VNFs includes a first VNF and a second VNF. The method comprises identifying a first set of decomposition sub-components, DSCs, included in the first VNF, wherein the first set of DSCs includes a first DSC and a second DSC; identifying a second set of DSCs included in the second VNF, wherein the second set of DSCs includes a third DSC; obtaining a first forward weight value for a first forward path from the first DSC to the third DSC; and obtaining a second forward weight value for a second forward path from the second DSC to the third DSC. The method further comprises performing a first comparison based on the first forward weight value and the second forward weight value; using a result of the first comparison based on the first forward weight value and the second forward weight value, selecting first forward path; and configuring a connection between the first VNF and the second VNF based on the selection of the first forward path.

[0007] In another aspect, there is provided a computer program comprising instructions which when executed by processing circuitry cause the processing circuitry to perform the method of any one of the embodiments described above.

[0008] In other aspect, there is provided an apparatus for decomposing one or more chains of virtual network functions, VNFs. Said one or more chains of VNFs includes a first VNF and a second VNF. The apparatus is configured to: identify a first set of decomposition sub-components, DSCs, included in the first VNF, wherein the first set of DSCs includes a first DSC and a second DSC; identify a second set of DSCs included in the second VNF, wherein the second set of DSCs includes a third DSC; and obtain a first forward weight value for a first forward path from the first DSC to the third DSC. The apparatus is further configured to obtain a second forward weight value P104419WO01 (3602-2429WO1) Page 2 of 38for a second forward path from the second DSC to the third DSC; perform a first comparison based on the first forward weight value and the second forward weight value; using a result of the first comparison based on the first forward weight value and the second forward weight value, select first forward path; and configure a connection between the first VNF and the second VNF based on the selection of the first forward path.

[0009] In other aspect, there is provided an apparatus. The apparatus comprises a processing circuitry; and a memory, said memory containing instructions executable by said processing circuitry, whereby the apparatus is operative to perform the method of any one of the embodiments described above.

[0010] Embodiments of this disclosure provide an improved way of decomposing one or more chains of VNFs. As compared to the existing decomposition solution, the embodiments provide improvements with respect to flexibility, scalability, compatibility, and robustness.

[0011] Flexibility: The method and apparatus for decomposing VNFs according to the embodiments of this disclosure are applicable to network services provided by a chain of VNFs (a.k.a., an SFC) with a configuration of single-source and single-destination, and network services provided by more general topology (e.g., VNF-FGs) with a configuration of single-source and multi-destination, a configuration of multi-source and multi-destination, or a configuration of multi-source and single-destination. The embodiments address the compatibility constraints in VNF-FGs with a wide variety of sub-structures including split, merge, split-and-merge, hybrid split-merge, and connected split-and-merge.

[0012] Scalability: Conventional algorithms enumerate all possible decomposition options using brute-force approach. However, solving the VNF-FG decomposition problem using brute- force approach is computationally inefficient, especially for large scale problems. Hence, in the embodiments, an efficient and scalable heuristic is provided to solve the VNF-FG decomposition problem in a computationally efficient manner.

[0013] Compatibility: Considering multiple options to realize a given VNF type, in the embodiments, an option is selected by taking into account the compatibility constraint which ensures that an option of a VNF can be realized with the selected option of the predecessor / successor VNF. P104419WO01 (3602-2429WO1) Page 3 of 38

[0014] Robustness: It is inevitable, in some cases, that the service provider is unable to embed a given VNF-FG decomposition recommendation of an NS. This may happen due to many reasons including lack of capacity, sudden increase of load, failure of a substrate node / link, and / or returning an infeasible solution by the underlying embedding algorithm. To ensure robustness, it is important to have fallback options, which are good enough in terms of embedding cost. In the embodiments, the service provider is provided with N best decomposition choices from the source to the sink node so that the service provider has enough flexibility to switch to a fallback option if needed.

[0015] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] FIG.1(a) shows a use-case of a system.

[0017] FIG.1(b) shows a service function chain.

[0018] FIG.1(c) shows a traditional approach of implementing a network service.

[0019] FIG.1(d) shows an approach of implementing a network service.

[0020] FIGS.2(a)-2(d) show different configurations for implementing a network service.

[0021] FIG.3 shows a multi-stage graph model.

[0022] FIGS.4-6 show outcomes of pruning processes.

[0023] FIGS.7(a)-7(b) show decision graphs.

[0024] FIG.8 shows a flow chart.

[0025] FIGS.9(a)-9(e) show different sub-structures of a network service.

[0026] FIG.10 shows a split sub-structure.

[0027] FIGS.11(a) and 11(b) show multi-stage graph models.

[0028] FIGS.12(a) and (b) show outcomes of pruning processes.

[0029] FIG.13 shows a union graph.

[0030] FIGS.14(a) and (b) show outcomes of pruning processes. P104419WO01 (3602-2429WO1) Page 4 of 38

[0031] FIGS.15, 16(a), and 16(b) show union graphs.

[0032] FIGS.17(a)-(d) show a process of forming a final decision graph.

[0033] FIG.18 shows a merge sub-structure.

[0034] FIGS.19(a) and (b) show multi-stage graph models.

[0035] FIGS.20(a) and (b) show outcomes of pruning processes.

[0036] FIG.21 shows a union graph.

[0037] FIGS.22(a) and (b) show outcomes of pruning processes.

[0038] FIGS.23, 24(a), and 24(b) show union graphs.

[0039] FIGS.25(a)-(c) show a process of forming a final decision graph.

[0040] FIG.26 shows a split-and-merge sub-structure.

[0041] FIGS.27(a) and (b) show multi-stage graph models.

[0042] FIGS.28(a) and (b) show outcomes of pruning processes.

[0043] FIG.29 shows a union graph.

[0044] FIGS.30(a) and (b) show outcomes of pruning processes.

[0045] FIGS.31, 32(a), and 32(b) show union graphs.

[0046] FIGS.33(a)-(d) show a process of forming a final decision graph.

[0047] FIGS.34(a)-(d) show a de-pruning process.

[0048] FIG.35 shows a hybrid split-merge sub-structure.

[0049] FIGS.36(a) and (b) show multi-stage graph models.

[0050] FIGS.37(a) and (b) show outcomes of pruning processes.

[0051] FIGS.38, 39(a), and 39(b) show union graphs.

[0052] FIGS.40(a) and 40(b) show a process of forming a final decision graph.

[0053] FIGS.42(a)-42(c) show multi-stage graph models.

[0054] FIGS.43(a) and (b) show outcomes of pruning processes. P104419WO01 (3602-2429WO1) Page 5 of 38

[0055] FIG.44 shows a union graph.

[0056] FIGS.45(a) and (b) show outcomes of pruning processes.

[0057] FIG.46 is a union graph.

[0058] FIGS.47(a) and (b) show outcomes of pruning processes.

[0059] FIG.48 is a union graph.

[0060] FIGS.49(a)-(c) show a process of forming a final decision graph.

[0061] FIG.50 shows a process according to some embodiments.

[0062] FIG.51 shows an apparatus according to some embodiments.

[0063] FIGS.52(a) and (b) show different options of realizing an IDS. DETAILED DESCRIPTION

[0064] Network Function Virtualization (NFV) is a concept of decoupling network functions from proprietary hardware such that the network functions can run on standardized hardware, thereby reducing dependency on hardware and making the network more flexible.

[0065] More specifically, as shown in FIG. 1(c), in a traditional implementation approach, a plurality of proprietary hardware 152-160 each of which is configured to perform a particular function is provided. On the other hand, as shown in FIG.1(d) in a NFV implementation approach, one or more standard hardware 162-164 is provided. The standard hardware 162-164 is configured to perform a plurality of virtual network functions corresponding to the functions of proprietary hardware 152-160.

[0066] FIG. 1(a) illustrates an example use-case of a system 100 according to some embodiments. System 100 comprises four VNFs 102-108, which are used for network virtualization (meaning that system 100 is used for providing a network service). More specifically, in system 100, VNF 102 is configured to serve as a load balancer, VNF 104 is configured to serve as a firewall, VNF 106 is configured to serve as intrusion detection system (IDS) / intrusion prevention system (IPS), and VNF 108 is configured to serve as a wide area network (WAN) accelerator. Since each entity shown in FIG.1(a) is a VNF which is connected to another VNF in a chain, system 100 corresponds to a chain of VNFs as shown in FIG.1(b). P104419WO01 (3602-2429WO1) Page 6 of 38

[0067] FIGS. 2(a)-(e) show simplified diagrams of a chain of VNFs and VNF-FG. As discussed above, the chain of VNFs (a.k.a., “SFC”) and VNF-FG (a general topology that is more general than SFC) describe an incoming network service. As shown in FIGS. 2(a)-2(e), an SFC represents a single-source single-destination (sSsD) network service while VNF-FG may represent a single-source multi-destination service (sSmD), a multi-source single-destination service (mSmD), or a multi-source multi-destination service (mSsD).

[0068] FIG.2(a) shows an sSsD network service which can be realized by an SFC comprising VNFs A, B, C, and D arranged in a sequence. FIGS. 2(b)-2(e) show different VNF-FGs each describing a specific type of network services. More specifically, FIG.2(a) shows an sSsD network service, FIG. 2(b) shows an sSmD network service, FIG. 2(c) shows an mSsD network service, and FIG.2(d) shows an mSmD network service.

[0069] For increased flexibility, there may exist multiple ways to realize (configure) a given VNF type. More specifically, the service provider may configure a given type of VNF (e.g., VNF A shown in FIG. 2(a)) via selecting an option (a.k.a., sub-function or sub-component) among multiple options. For example, VNFs A-D shown in FIG.1(b) may include n_A number of sub- components, n_B number of sub-components, n_C number of sub-components, and n_D number of sub-components, respectively. To realize a network service, one or more sub-components included in an VNF must be selected and coupled to one or more sub-components included in another VNF.

[0070] The selection of the sub-components should satisfy the so-called compatibility constraint, which imposes a restriction on selecting sub-component of a VNF if it cannot be realized along with sub-component j of its predecessor VNF. For example, in case a subcomponent included in VNF A is not compatible with a sub-component included in VNF B, the sub- component of VNF A and the sub-component of VNF B should be not selected and configured to work together for realizing a network service.

[0071] Thus, according to some embodiments, an SFC or a VNF-FG is expressed using a multi-stage graph G(V,E), where each stage of the graph represents a VNF and each node at a given stage represents a subcomponent of that VNF. The realization of the SFC or the VNF-FG P104419WO01 (3602-2429WO1) Page 7 of 38(i.e., selecting one or more sub-components of a VNF for coupling with one or more sub- components of another VNF) can be achieved using the multi-stage graph.

[0072] The multi-stage graph G(V,E) is a directed graph where vertices are partitioned into K (where K > 1) disjoint subsets s1 , s2 , s3 , ..., sK . If sub-component q of VNF i is compatible with sub-component p of VNF i−1, then there is an edge (u, v) in E that connects node p of stage i−1 to node q of stage i. The number K of disjoint subsets is equal to the total number of VNFs plus two (which takes into account the source and destination nodes), meaning that |s1 | = |sK | = 1. The vertices S ∈ s1 and T ∈ s K are called source and sink nodes.

[0073] FIG.3an example of a multistage graph model of an SFC shown in FIG.1(b), assuming that VNFs A, B, C, and D have 3, 4, 3, 4 available sub-components (i.e., nA = 3, nB = 4, nC = 3, nD = 4). The compatible constraints of sub-components are specified by directional edges between the nodes of a stage and those of its predecessor stage. For example, in FIG.3, there is no edge between node 2 at stage C and node 3 at stage D, meaning that subcomponent 3 of VNF D cannot be realized along with subcomponent 2 of VNF C.

[0074] Some embodiments of this disclosure are directed to a method of decomposing VNF- FG by selecting appropriate sub-components for each VNF to minimize the service provider’s objective function (e.g., embedding cost) while satisfying the compatibility constraint. For robustness purposes, the ideal solution is expected to give the service provider N best paths from the source to sink node in the multi-stage graph so that the service provider has enough flexibility to switch to the fall-back options, if needed.

[0075] A viable approach to solve the VNF-FG decomposition problem is to use the brute- force approach, which finds the best N paths in terms of the given objective function by enumerating all the possible paths running from the source node to the sink node. It is evident that solving the VNF-FG decomposition problem using the brute-force approach is computationally inefficient, especially for large sized problem instances. For example, in a VNF-FG comprising VNFs 1, 2, …, L, each VNF i having Oi sub-components, the total number of paths in the multi- stage graph can be as high as ∏^^ୀ^^^ ^^ . P104419WO01 (3602-2429WO1) Page 8 of 38

[0076] Embodiments of this disclosure provide an efficient, scalable heuristic to solve the VNF-FG decomposition problem in a computationally efficient manner.

[0077] 1. Decomposition of SFCs

[0078] As discussed above with respect to FIG. 1(b), SFCs represent only sSsD network services. The following describes a multi-directional topological decomposition method for an SFC according to some embodiments.

[0079] FIG. 1(b) shows an example of an SFC, and FIG. 3 shows a multi-stage graph corresponding to the SFC shown in FIG.1(b). As discussed above, the multi-stage graph shows compatible constraints of sub-components of VNFs included in the SFC. For example, as shown in FIG.3, there is no directional edge between sub-component 2 of VNF B and sub-component 2 of VNF C, meaning that the sub-component 2 of VNF B is not compatible with the sub-component 2 of VNF C.

[0080] In some embodiments of this disclosure, based on fitness scores (a.k.a., “weights”) of incoming edges, only one incoming edge to a given sub-component is selected while all other incoming edges are pruned. Fitness score ^^^^ି^,^^^^,^^of the edge between node (i.e., sub- component) p at stage (i.e., VNF) i andi-1 represents the fitness of selecting the sub-component p of VNF i with the sub-component q of VNF i-1.

[0081] Calculation of the fitness scores (the weights) is executed at the so-called “Decomposition Score Calculation (DSC)” module, which is responsible for estimating the weight of an edge by quantifying how well a node at a given stage matches with a compatible node from its preceding stage.

[0082] According to some embodiments, pruning process in the source to sink direction may be performed as follows.

[0083] As shown in FIG.3, at the first stage -- VNF A --, there is only one incoming edge 302, 304, 306, to each sub-component in the source-to-sink direction. Since there is only one incoming edge, no pruning is performed at VNF A.

[0084] At the second stage -- VNF B --, each sub-component has multiple incoming edges. For example, the sub-component 1 of VNF B has two incoming edges 308 and 310. P104419WO01 (3602-2429WO1) Page 9 of 38

[0085] In case a sub-component p of VNF i has multiple incoming edges, the best incoming edge ^^^∗,^is selected as follows: ^^^∗,^ൌ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ି^,^^,^^,^^^

[0086] and prune all other

[0087] For example, let’s assume ^^^^,ଷ^,^ଶ,^^^ ^^^^,^^,^ଶ,^^, ^^^^,^^,^ଶ,ଶ^^ ^^^^,ଶ^,^ଶ,ଶ^, ^^^^,ଷ^,^ଶ,ଷ^^ ^^^^,^^,^ଶ,ଷ^, and ^^^^,ଷ^,^ଶ,ସ^^

[0088] Based on comparisons of the fitness scores of the edges, pruning process may be performed. For example, the sub-component 1 of VNF B has two incoming edges 308 and 310. The edge 308 has a weight value ^^^^,ଷ^,^ଶ,^^, and the edge 310 has a weight value ^^^^,^^,^ଶ,^^. Since ^^^^,ଷ^,^ଶ,^^^ ^^^^,^^,^ଶ,^^, the is selected for the sub-component 1 of This pruningprocess is repeated for all sub-components of VNF B-D. FIG. 4 shows a graph resulting from performing the pruning process for all sub-components of VNF B, and FIG. 5 shows a graph resulting from performing the pruning process for all sub-components of VNFs B-D.

[0089] At this point, the outcome of the pruning process is a spanning tree, where there is at most N1 paths from the source node to the last VNF, and N1 is the total number of sub-components of the last VNF -- VND D.

[0090] As shown in FIG.5, after performing the pruning process in the forward (i.e., source- to-sink) direction, the sub-components that are not part of any path in the tree (meaning that those sub-components are not efficient nodes) may be identified. For example, since no edge is selected from the sub-component 2 of VNF A to any sub-component of VNF B, the sub-component 2 of VNF B is identified. Similarly, the sub-components 1, 2, and 4 of VNF B are identified.

[0091] Once the less efficient edges (and also sub-components) in the tree graph resulting from the pruning process performed in the forward direction are identified, the same process may be performed in the backward direction (i.e., sink-to-source direction). FIG.6 shows an output of the pruning process performed in the backward direction. Like the pruning process performed in the forward direction, the pruning process performed in the backward direction can be used for identifying less efficient edges and / or sub-components. As shown in FIG.6, the sub-components P104419WO01 (3602-2429WO1) Page 10 of 383 and 4 of VNF B, the sub-component 1 of VNF C, and the sub-component 3 of VNF D are identified to be less efficient sub-components.

[0092] After obtaining the tree graph resulting from performing the pruning process in the forward direction (i.e., the tree graph shown in FIG.5) and the tree graph resulting from performing the pruning process in the backward direction (i.e., the tree graph shown in FIG.6), the information obtained from the two tree graphs may be merged, thereby determining an ultimate graph (a.k.a., a decision graph or a union graph). The decision graph may be used to determine the best decomposition of VNF-FGs to be selected by the service provider.

[0093] The decision graph is built as the union of the tree graphs associated with the forward and backward directions. While the nodes of the decision graph are those of the initial multi-stage graph, the links of the decision tree graph are the ones that exist in the tree graph of either forward or backward direction. Taking the tree graphs of forward and backward directions shown in FIGS. 5 and 6, the decision graph shown in FIG.7(a) can be built.

[0094] In the decision graph (e.g., shown in FIG.7(a)), the nodes that are less useful in both forward and backward directions can be identified and pruned. For example, as shown in FIGS.5 and 6, the sub-component 4 of VNF B is detected as being less useful in both forward and backward directions. Thus, the sub-component may be pruned from the decision graph.

[0095] Furthermore, upon removing the sub-component 4 of VNF B from the decision tree, those edges that compass the removed sub-component should also be removed / pruned from the decision graph. The resulting decision graph is shown in FIG.7(b). As shown in FIG.7(b), in the resulting decision graph, a total of 9 paths from the source node to the destination node (sink) can be identified. These paths can be sorted in a descending order of their scores, which provides the service provider with a set of ranked VNF-FGs to be embedded.

[0096] Table 1 provided below summarizes identified paths in the (i) forward tree, (ii) backward tree, and (iii) decision graph. As shown below, the decision graph leads to a larger number of promising paths (9 in this example as compared to 4 and 3 in the forward and backward trees), and it provides a better chance to find a high-score combination that may eventually result in a better embedding outcome. P104419WO01 (3602-2429WO1) Page 11 of 38

[0097] FIG.8 shows a flow chart of the multi-directional topological decomposition algorithm for SFCs according to some embodiments.

[0098] 2. Decomposition of VNF-FGs

[0099] Embodiments below are for realizing decomposition of sSmD, mSsD, and mSmD NSs in general VNF-FG topologies. As shown in FIGS. 9(a)-9(e), general VNF-FG topology may comprise any one or a combination of the following sub-structures: (a) split; (2) merge; (3) split- and-merge; (4) hybrid split-merge; and (5) connected split-and-merge.

[0100] 2.1 Split Sub-structure

[0101] FIG.10 shows an example of the split sub-structure corresponding to an sSmD NS. As shown in FIG. 10, the NS comprises VNFs A, B, C, and D which have 3, 4, 3, and 4 sub- components, respectively. The NS comprises two SFCs -- source-to destination 1 (S-to-D1) SFC and source-to-destination 2 (S-to-D2) SFC. Multi-stage graph models with S-to-D1 SFC and S-to- D2 SFC are shown in FIG.11. According to some embodiments, the sSmD NS shown in FIG.10 may be decomposed as explained below.

[0102] First, the fitness scores (the weights) of edges are obtained from an entity (e.g., a DSC module), and a pruning process in both forward and reverse directions is applied to the S-to-D1 SFC based on the fitness scores. The outcome of the pruning process is shown in FIGS.12(a) and 12(b). More specifically, the output of the pruning process in the forward direction is shown in FIG.12(a) while the output of the pruning process in the reverse direction is shown in FIG.12(b).

[0103] As shown in FIG.12(a), the set of DSCs that are identified as being useless for the S- to-D1 SFC ( ^^^ௌି௧^ି^^) in the forward direction is {A1, B1, C3,} and the set of DSCs that are identified as being useless for the S-to-D1 SFC ( ^^ଶௌି௧^ି^^) in the backward direction is {B4, C2}. Since ^^^ௌି௧^ି^^∩ ^^ଶௌି௧^ି^^= ∅ , there is no need to remove any sub-component or edge in generating a decision graph ^^ௗௌି௧^ି^^shown in FIG.13.

[0104] After applying the pruning process to the S-to-D1 SFC, the pruning process in both forward and reverse directions may be applied to the S-to-D2 SFC. The way the pruning process is applied to the S-to-D1 SFC is similar to the way the pruning process is applied to the S-to-D2 SFC, and thus is not explained below. P104419WO01 (3602-2429WO1) Page 12 of 38

[0105] FIGS. 14(a) and (b) show the outcome of the pruning process applied to the S-to-D2 SFC in the forward and backward directions. As shown in FIG. 14(a), the set of DSCs that are identified as being useless for the S-to-D2 SFC ( ^^^ௌି௧^ି^ଶ) in the forward direction is {A1, B2, B4,} and the set of DSCs that are identified as being useless for the S-to-D2 SFC ( ^^ଶௌି௧^ି^ଶ) in the backward direction is {B4, D2, D3}. Since ^^^ௌି௧^ି^ଶ∩ ^^ଶௌି௧^ି^ଶ= B4, B4 is pruned with all incoming and outgoing edges with respect to B4, graph ^^ௗௌି௧^ି^ଶshown in FIG.15 is generated.

[0106] Since the pruned sub-component B4 belongs to the split point (i.e., VNF B), it makes sense to prune B4 from the other union graph (i.e., ^^ௗௌି௧^ି^^) as well. Subsequently, ^^ௗௌି௧^ି^^and ^^ௗௌି௧^ି^ଶshown in FIGS.16(a) and 16(b) are obtained.

[0107] After obtaining the union graphs ^^ௗௌି௧^ି^^and ^^ௗௌି௧^ି^ଶ, a final decision graph may be determined based on the obtained union graphs. In determining the final decision graph, in order to resolve compatibility conflicts that may arise at the split point, the notion of hyper-graphs may be used. In hyper-graphs, a hyper-edge is an edge whose one (or both) ends may comprise more than one node.

[0108] To build the final decision graph, links between sub-components of VNF A and VNF B are considered. If there is an edge between the sub-components of VNFs A and B in any of the two union graphs shown in FIGS. 16(a) and (b), such edge is added in the final decision graph. Thus, based on the existence of the edges between the sub-components of VNFs A and B as shown in FIGS.16(a) and (b), the first two stages of the decision graph are built as shown in FIG.17(a).

[0109] The next stages of the final decision graph can be built based on compatibility between VNFs B and C, and between VNFs B and D. To do so, a hyper-node between sub-component i of VNF B and sub-component j of VNF C is formed if there is an edge between these sub-componets in the union graph ^^ௗௌି௧^ି^^(shown in FIG.16(a)). According to FIG.16(a), since there are three edges between the sub-components of VNF B and the sub-components of VNF C, there will be three hyper-nodes in the final decision graph, as shown in FIG.17(c).

[0110] Each hyper-node comprises two sub-components, one from VNF B and the other from VNF C. Next, a hyper-node is connected to sub-component k of VND D if and only if there is an P104419WO01 (3602-2429WO1) Page 13 of 38edge between the B sub-component of that hyper-node with sub-component k of VNF D in the union graph ^^ௗௌି௧^ି^ଶ.

[0111] To be more specific, let’s consider the first hyper-node which consists of the sub- component 1 of VNF B (B1) and the sub-component 1 of VNF C (C1). According to FIG.16(b), there is an edge between the sub-component B1 and the sub-component D2 in the ^^ௗௌି௧^ି^ଶ. This suggests that there should be an edge between the first hyper-node and the sub-component D2, as shown in FIG.17(c).

[0112] Similarly, since there is an edge between the sub-components B1 and D3 in the union graph ^^ௗௌି௧^ି^ଶ, as shown in FIG. 16(b), there should be another edge between the first hyper- node and the sub-component D3.

[0113] After carrying out the same procedure for all three hypernodes, the final decision graph may be obtained as shown in FIG.17(d). As shown in FIG.17(d), a total of 9 paths from stage A to stage D of the final decision graph is formed where each represents a feasible, low-cost VNF- FG.

[0114] 2.2 Merge Sub-structure

[0115] FIG.18 shows an example of the merge sub-structure corresponding to an mSsD NS. As shown in FIGS.19(a) and (b), the NS comprises VNFs A, B, C, and D which have 3, 2, 4, and 3 sub-components, respectively. The NS comprises two SFCs -- source1-to-destination (S1-to-D) SFC and source2-to-destination (S2-to-D) SFC. The S1-to-D SFC comprises source 1, VNF A, VNF C, VNF D, and destination, and the S2-to-D SFC comprises source 2, VNF B, VNF C, VNF D, and destination. Multi-stage graph model associated with the S1-to-D SFC is shown in FIG. 19(a) and multi-stage graph model associated with the S2-to-D SFC is shown in FIG.19(b). The mSsD NS shown in FIGS. 19(a) and (b) may be decomposed using a decomposition process explained below.

[0116] Similar to the split sub-structure discussed in section 2.1 above, the decomposition process may begin with performing a pruning process on the first SFC -- the S1-to-D SFC. First, the fitness scores (the weights) of edges of the S1-to-D SFC are obtained from an entity (e.g., a DSC module). Then, a pruning process in both forward and reverse directions is applied to the S1- to-D SFC based on the fitness scores. The outcome of the pruning process is shown in FIGS.20(a) P104419WO01 (3602-2429WO1) Page 14 of 38and (b). More specifically, the output of the pruning process in the forward direction is shown in FIG.20(a) while the output of the pruning process in the reverse direction is shown in FIG.20(b).

[0117] As shown in FIG. 20(a), the set of sub-components of the S1-to-D SFC ( ^^^ௌ^ି௧^ି^) which are identified as being less useful in the forward direction is {A1, C1, C3} and, as shown in FIG.20(b), the set of sub-components of the S1-to-D SFC ( ^^^ௌ^ି௧^ି^) which are identified as being less useful in the backward direction is {C3, C4}. Since ^^^ௌ^ି௧^ି^∩ ^^ଶௌଶି௧^ି^= {C3}, the sub- component C3 and its associated incoming / outgoing not included in) nion graph ^^ௗௌ^ିthe u௧^ି^, which is shown in FIG.21.

[0118] the pruning process to the S1-to-D SFC, the pruning process may also be applied to the S2-to-D DFC. More specifically, the pruning process in both forward and reverse directions may be applied to the S2-to-D SFC based on the fitness scores. The outcome of the pruning process is shown in FIGS. 22(a) and (b). More specifically, the output of the pruning process in the forward direction is shown in FIG.22(a) while the output of the pruning process in the reverse direction is shown in FIG.22(b).

[0119] As shown in FIG. 22(a), the set of sub-components of the S2-to-D SFC ( ^^^ௌଶି௧^ି^) which are identified as being useless in the forward direction is {C1, C2} and, as22(b), the set of sub-components of the S2-to-D SFC ( ^^^ௌଶି௧^ି^) which are identified as being useless in the backward direction is {B2, B4}. Since ^^^ௌଶି௧^ି^∩ ^^ଶௌଶି௧^ି^= {C2}, the sub- component C2 and its associated incoming / outgoing edges are removed from (or not included in) the union graph ^^ௗௌଶି௧^ି^, which is shown in FIG.23.

[0120] Since the pruned sub-component C2 belongs to the merging point (i.e., VNF C), in some embodiments, the pruned sub-component C2 is pruned from the other union graph (i.e., ^^ௗௌ^ି௧^ି^). Subsequently, the two union graphs ^^ௗௌ^ି௧^ି^and ^^ௗௌଶି௧^ି^are obtained as shown inand (b).

[0121] Then, the final decision graph may be generated based on the union graphs ^^ௗௌ^ି௧^ି^and ^^ௗௌଶି௧^ି^. In generating the final decision graph, in order to resolve the compatibility conflicts that may arise at the merging point (i.e., VNF C), hyper-nodes comprising sub-components of VNFs A and B are created. P104419WO01 (3602-2429WO1) Page 15 of 38

[0122] The union graphs ^^ௗௌ^ି௧^ି^and ^^ௗௌଶି௧^ି^shown in FIGS. 24(a) and (b) identify connections between the sub- of VNF C (the merging point) and the sub-components of VNF A and connectionssub-components of VNF C and the sub-components of VNF B. As shown in FIGS. 24(a) and (b), the sub-component C1 is connected to the sub- component A3 and B1. This suggests that the sub-component A3 and B1 should constitute a hyper- node, which should be connected to the sub-component C1, as shown in FIG.25(a).

[0123] Similarly, as further shown in FIGS.24(a) and (b), the sub-components C4 is connected to the sub-components A3 and B1, and thus the hyper-node consisting of A3 and B1 should be connected to C4, as shown in FIG.25(b).

[0124] Then, the hyper-node is connected to the sub-component k of VNF D if and only if there is an edge between any sub-component in VNF C of that hyper-node and the sub-component k of VNF D in either union graph ^^ௗௌ^ି௧^ି^and ^^ௗௌଶି௧^ି^. Then the final decision graph shown in FIG. 25(c) is obtained. As of 3 paths from VNF A to VNF D sformed, each representing a feasible, low-cost VNF-FG.

[0125] 2.3 Split-and-Merge Sub-structure

[0126] FIG.26 shows an example of the split-merge sub-structure corresponding to an sSsD NS. As shown in FIGS.27(a)-(b), the NS comprises VNFs A, B, C, D, and E which have 3, 4, 3, 2, and 4 sub-components, respectively. The NS comprises two SFCs -- source-A-B-C-E- destination SFC (referred to as “SFC1” in section 2.3) and source-A-B-D-E-destination SFC (“SFC2”). Multi-stage graph model associated with the SFC1 is shown in FIG.27(a) and multi- stage graph model associated with the SFC2 is shown in FIG.27(b). The sSsD NS shown in FIGS. 27(a)-(b) may be decomposed via a decomposition process described below.

[0127] The decomposition process may begin with running the pruning process on the SFC1 in both forward and reverse directions. Like the decomposition processes described in sections 2.1-2.2 above, the pruning process may be performed based on the fitness scores (the weights) of edges of the SFC1. The fitness scores may be obtained from an entity (e.g., a DSC module).

[0128] The outcome of the pruning process is shown in FIGS.28(a) and (b). More specifically, FIG. 28(a) shows the outcome of the pruning process in the forward direction and FIG. 28(b) shows the outcome of running the pruning process in the reverse direction. P104419WO01 (3602-2429WO1) Page 16 of 38

[0129] As shown in FIG. 28(a), the set of sub-components of the SFC1 ( ^^^ௌி^^) which are identified as being less useful in the forward direction is {B1, B3, C1} and, as shown in FIG.28(b), the set of sub-components of the SFC1 ( ^^ଶௌி^^) which are identified as being less useful in the backward direction is {B3, E1}. Since ^^^ௌி^^∩ ^^ଶௌி^^= B3, the sub-component B3 and its associated edges are removed from (or not included in) the union graph ^^ௗௌி^^, as shown in FIG. 29.

[0130] In addition to the SFC1, the pruning process may be run on the SFC2. FIGS.30(a) and (B) show the outcome of the pruning process performed on the SFC2 in the forward direction and the reverse direction, respectively.

[0131] As shown in FIG. 30(a), the set of sub-components of the SFC2 ( ^^^ௌி^ଶ) which are identified as being less useful in the forward direction is {B1, B3} and, as shown in FIG. 30(b), the set of sub-components of the SFC2 ( ^^ଶௌி^ଶ) which are identified as being less useful in the backward direction is {B2, B4, E3, E4}. Since ^^^ௌி^^∩ ^^ଶௌி^^= ^^, no sub-component and no edge are removed from (or not included in) the is shown in FIG.31.

[0132] As shown in FIG. 29, the sub-component B3 was pruned from the decision graph ^^ௗௌி^^. Given that the pruned sub-component C3 belongs to the splitting point (i.e., VNF B), it makes sense to prune it from the other union graph ^^ௗௌி^ଶas well. Subsequently, the union graphs ^^ௗௌி^^and ^^ௗௌி^ଶare obtained as shown in FIG.32.

[0133] Based on the obtained union graphs ^^ௗௌி^^and ^^ௗௌி^ଶof the two SFCs -- SFC1 and SFC2 -- of a given NS, the final decision graph of the given NS can be created. In order to create the final decision graph, it is necessary to resolve the compatibility conflicts that may arise at the splitting and merging points -- i.e., VNFs B and E.

[0134] The first step of generating the final decision graph (i.e., the step of generating the first stage of the final decision graph) is by making links between the sub-components of VNF A and the sub-components of VNF B in either union graph ^^ௗௌி^^or ^^ௗௌி^ଶ. More specifically, a link between the sub-component i of VNF A and the sub-component j of VNF B is established if there is a link between the sub-component i of VNF A and the sub-component j of VNF B in either union graph ^^ௗௌி^^or ^^ௗௌி^ଶ, as shown in FIG.33(a). P104419WO01 (3602-2429WO1) Page 17 of 38

[0135] The second step of generating the final decision graph is resolving the conflict in the splitting point (i.e., VNF B). In doing so, hyper-nodes comprising the sub-components of VNFs B and C may be created using the union graphs ^^ௗௌி^^.

[0136] More specifically, the sub-component i of VNF B and the sub-component j of VNF C form a hyper-node if there is a link between them in the union graph ^^ௗௌி^^. The outcome of the second step is shown in FIG. 33(b). Once the hyper-nodes are formed, links between the hyper- nodes and the sub-components of VNF D are formed using the union graph ^^ௗௌி^ଶ. If there is a link between the sub-component i of VNF B and the sub-component j of VNF D in the union graph ^^ௗௌி^ଶ, a link between the sub-component j of VNF D and any hyper-nodes that contains the sub- component i of VNF B is formed (as shown in FIG.33(c)).

[0137] The third step of generating the final decision graph is to resolve the conflicts at the merging point (i.e., VNF E). To do so, the union graphs ^^ௗௌி^^and ^^ௗௌி^ଶare used to identify the links between the sub-components of VNF E and the sub-components of VNFs C and D. Then a hyper-node comprising the sub-component i of VNF C and the sub-component j of VNF D is formed and the hyper-node is connected to the sub-component k of VNF E if the following three conditions are met: (i) the sub-component k of VNF E is connected to the sub-component i of VNF C in the union graph ^^ௗௌி^^; (ii) the sub-component k of VNF E is connected to the sub- component j of VNF D ingraph ^^ௗௌி^ଶ; and (iii) the sub-component i of VNF C is connected to the sub-component j ofthe decision graph.

[0138] For example, in FIGS.32(a) and (b), the sub-component E1 (i.e., the sub-component 1 of VNF E) is connected to the sub-components C3 and D1. However, according to FIG.33(c), there is no link between the sub-components C3 and D1, and thus there cannot be any link between the sub-components E1, C3, and D1.

[0139] On the other hand, the sub-component E2 is connected to the sub-component C2 in the union graph ^^ௗௌி^^(as shown in FIG.32(a)) and the sub-component D2 in the union graph ^^ௗௌி^ଶ(shown in FIG.32(b)). Further, the sub-components C2 and D2 are also connected in the decision graph (shown in FIG.33(c)). Thus, a hyper-node may be formed between the sub- components C2 and D2, and the node can be connected to the sub-component E2 (as shown in FIG.33(d)). P104419WO01 (3602-2429WO1) Page 18 of 38

[0140] The final decision graph is shown in FIG.33(d). As shown in FIG.33(d), a path from VNF A to VNF E is formed. The path represents a feasible, low-cost VNF-FG comprising sub- components A2, B2, C2, D2, and E2. It is possible that, in the split-and-merge sub-structures, the decomposition method described above may lead to 0 or only 1 feasible VNF-FG, especially given that the union graphs and decision graph are all gone through many pruning steps.

[0141] However, for the purpose of providing flexibility of embedding and having fall-back options, the service provider may be interested in having multiple VNF-FGs instead of only one. Thus, if the final decision graph does not suggest any feasible VNF-FG or the service provider is interested in having a larger number of feasible VNF-FGs, in some embodiments, de-pruning step may be performed.

[0142] The de-pruning step may be started from the obtained union graphs ^^ௗௌி^^and ^^ௗௌி^ଶ. As explained above, during the pruning process, the sub-component B3 is removed from both union graphs because the sub-component belongs to the sets ^^^ௌி^^and ^^ଶௌி^^. To make the final decision graph less sparse, in some embodiments, the sub-component B3 and its associated incoming and outgoing links may be de-pruned. The outcome of the de-pruning process is shown in FIGS.34(a) and (b), which show the updated union graphs ^^ௗௌி^^and ^^ௗௌி^ଶ, respectively.

[0143] Then the aforementioned procedure of resolving the conflicts at the splitting point (shown in FIG. 34(c)) and the merging point (shown in FIG.34(d)) may be performed to obtain the final decision graph shown in FIG.34(e). As shown in FIG.34(e), in the obtained final decision graph, a total of 5 low-cost, feasible VNF-FGs are formed.

[0144] 2.4 Hybrid Split-Merge Sub-structure

[0145] FIG.35 shows an example of the hybrid split-merge sub-structure corresponding to an sSsD NS. As shown in FIGS.36(a)-(b), the NS comprises VNFs A, B, D, and E which have 3, 4, 2, and 4 sub-components, respectively. The NS comprises two SFCs -- source-A-B-E-destination SFC (referred to as “SFC1” in section 2.4) and source-A-B-D-E-destination SFC (“SFC2”). Multi- stage graph model associated with the SFC1 is shown in FIG.36(a) and multi-stage graph model associated with the SFC2 is shown in FIG.36(b). The sSsD NS shown in FIGS.36(a)-(b) may be decomposed via a decomposition process described below. P104419WO01 (3602-2429WO1) Page 19 of 38

[0146] The decomposition process may begin with running the pruning process on the SFC1 in both forward and reverse directions. Like the decomposition processes described in sections 2.1-2.3 above, the pruning process may be performed based on the fitness scores (the weights) of edges of the SFC1. The fitness scores may be obtained from an entity (e.g., a DSC module).

[0147] The outcome of the pruning process is shown in FIGS.37(a) and (b). More specifically, FIG. 37(a) shows the outcome of the pruning process in the forward direction and FIG. 37(b) shows the outcome of running the pruning process in the reverse direction.

[0148] As shown in FIG. 37(a), the set of sub-components of the SFC1 ( ^^^ௌி^^) which are identified as being less useful in the forward direction is {B1} and, as shown in FIG.37(b), the set of sub-components of the SFC1 ( ^^ଶௌி^^) which are identified as being less useful in the backward direction is {B4}. Since ^^^ௌி^^∩ ^^ଶௌி^^= ^^, no sub-component and no edge are removed from (or not included in) the is shown in FIG.38.

[0149] In addition to the SFC1, the pruning process may be run on the SFC2, thereby generating the union graph ^^ௗௌி^ଶ. FIGS.39(a) and (b) show the outcome of the pruning process ran on the SFC1 and the SFC2, respectively.

[0150] Based on the obtained union graphs ^^ௗௌி^^and ^^ௗௌி^ଶof the two SFCs -- SFC1 and SFC2 -- of a given NS, the final decision graph of the given NS can be created. In order to create the final decision graph, it is necessary to resolve the compatibility conflicts that may arise at the splitting and merging points -- i.e., VNFs B, D, and E.

[0151] The first step of generating the final decision graph (i.e., the step of generating the first stage of the final decision graph) is by making a link between the sub-components i of VNF A and those of VNF B. More specifically, a link between the sub-component i of VNF A and the sub- component j of VNF B is established if there is a link between the sub-component i of VNF A and the sub-component j of VNF B in either union graph ^^ௗௌி^^or ^^ௗௌி^ଶ, as shown in FIG.40(a).

[0152] The second step of generating the final decision graph (i.e., the step of generating later stage(s) of the final decision graph) is by creating hyper-nodes comprising the sub-components of VNFs B and D using the information acquired from the two union graphs ^^ௗௌி^^or ^^ௗௌி^ଶ. P104419WO01 (3602-2429WO1) Page 20 of 38

[0153] More specifically, the sub-component i of VNF B and the sub-component j of VNF D form a hyper-node, which will be connected to the sub-component k of VNF E, if and only if the following conditions are met: (i) there is an edge between the sub-component i of VNF B and the sub-component j of VNF D in the union graph ^^ௗௌி^ଶ; (ii) there is an edge between the sub- component k of VNF E and the sub- B in the union graph ^^ௗௌி^^, and (iii)there is an edge between the sub-component k E and the sub-component j of VNF D in the union graph ^^ௗௌி^ଶ.

[0154] For example, according to FIGS. 39(a) and (b), the sub-component E1 (i.e., the sub- component 1 of VNF E) is connected to the sub-components B2 and D1, and according to FIG. 39(b), the sub-component B2 is connected to the sub-component D1. Thus, in the final decision graph, the sub-components B2 and D1 can form a hyper-node, which can then be connected to the sub-component E1 (as shown in FIG.40(b)). The final decision graph is shown in FIG.40(b). As shown in FIG.40(b), a total of five paths is formed from VNF A to VNF E, and thus representing five feasible, low-cost VNF-FGs are formed: (i) A2, B2, D1, E1, (ii) A2, B3, D2, E2, (iii) A2, B3, D2, E3, (iv) A3, B3, D2, E2, and (v) A3, B3, D2, E3.

[0155] 2.5 Connected Split-and-Merge Sub-structure

[0156] FIG. 41 shows an example of the connected split-and-merge sub-structure corresponding to an sSsD NS. As shown in FIGS.42(a)-(c), the NS comprises VNFs A, B, C, D, and E which have 3, 4, 3, 2, and 4 sub-components, respectively. The NS comprises three SFCs - - source-A-B-C-D-E-destination SFC (referred to as “SFC1” in section 2.5), source-A-B-C-E- destination SFC (“SFC2”), and source-A-B-D-E-destination SFC (“SFC3”). Multi-stage graph model associated with the SFC1 is shown in FIG.42(a), multi-stage graph model associated with the SFC2 is shown in FIG.42(b), and multi-stage graph model associated with SFC3 is shown in FIG. 42(c). The sSsD NS shown in FIGS. 42(a)-(c) may be decomposed via a decomposition process described below.

[0157] The decomposition process may begin with running the pruning process on the SFC1 in both forward and reverse directions. Like the decomposition processes described in sections 2.1-2.4 above, the pruning process may be performed based on the fitness scores (the weights) of edges of the SFC1. The fitness scores may be obtained from an entity (e.g., a DSC module). P104419WO01 (3602-2429WO1) Page 21 of 38

[0158] The outcome of the pruning process is shown in FIGS.43(a) and (b). More specifically, FIG. 43(a) shows the outcome of the pruning process in the forward direction and FIG. 43(b) shows the outcome of running the pruning process in the reverse direction.

[0159] As shown in FIG. 43(a), the set of sub-components of the SFC1 ( ^^^ௌி^^) which are identified as being less useful in the forward direction is {B1, B3, C1, C3} and, as shown in FIG. 43(b), the set of sub-components of the SFC1 ( ^^ଶௌி^^) which are identified as being less useful in the backward direction is {B4, E1, E4}. Since ^^^ௌி^^∩ ^^ଶௌி^^= ^^, no sub-component and no edge are removed from (or not included in) the union graph ^^ௗௌி^^, which is shown in FIG.44.

[0160] In addition to the SFC1, the pruning process may be run on each of SFC2 and SFC3.

[0161] FIGS. 45(a) and (b) show the outcome of the pruning process on the SFC2 in the forward direction and the reverse direction, respectively. The resultant union graph ^^ௗௌி^ଶof the SFC2 obtained based on the outcome of the pruning process is shown in FIG.46.

[0162] Similarly, FIGS. 47(a) and (b) show the outcome of the pruning process ran on the SFC3 in the forward direction and the reverse direction, respectively. The resultant union graph ^^ௗௌி^ଷof the SFC3 obtained based on the outcome of the pruning process is shown in FIG.48.

[0163] Based on the obtained union graphs of the three SFCs -- SFC1, SFC2, and SFC3 -- of a given NS, the final decision graph of the given NS can be created. Similar to the split-and-merge sub-structure discussed above, in order to create the final decision graph, it is necessary to resolve the compatibility conflicts that may arise at VNFs B, C, D, and E.

[0164] The first step of generating the final decision graph (i.e., the step of generating the first stage of the final decision graph) is by making the links between the sub-components of VNF A and VNF B. To do so, a link between the sub-component i of VNF A and the sub-component j of VNF B may be established if there is a link between the sub-component i of VNF A and the sub- component j of VNF B in any of the three union graphs ^^ௗௌி^^, ^^ௗௌி^ଶ, and ^^ௗௌி^ଷshown in FIGS. 44, 46, and 48. The outcome of creating the first stage is shown in FIG.49(a).

[0165] The second step (i.e., the step of generating the second stage of the final decision graph) is creating hyper-nodes comprising sub-components of VNF B and VNF C using the information acquired from the union graphs ^^ௗௌி^^, ^^ௗௌி^ଶ, and ^^ௗௌி^ଷ. More specifically, the sub-component i P104419WO01 (3602-2429WO1) Page 22 of 38of VNF B and the sub-component j of VNF C may form a hyper-node, which will be connected to the sub-component k of VNF D if and only if the following conditions are met: (i) there is an edge between the sub-component k of VNF D and the sub-component i of VNF B in the union graph ^^ௗௌி^ଷ; (ii) there is an edge between the sub-component i of VNF B and the sub-component j of in the union graph ^^ௗௌி^ଶ; (iii) there is an edge between the sub-component k of VNF D sub-component j C in the union graph ^^ௗௌி^^.

[0166] For example, the sub-components B2 and C2 should form a hyper-node, which should be connected to D1 for the following reasons: (i) according to FIG.48, D1 is connected to B2 in the union graph ^^ௗௌி^ଷ; (ii) according to FIG.46, B2 is connected to C2 in the union graph ^^ௗௌி^ଶ; (iii) according to FIG.44, D1 is connected to C2 in the union graph ^^ௗௌி^^. The outcome of creating the second stage is shown in FIG.49(b).

[0167] The third step (i.e., the step of generating the third and fourth stages of the decision graph) is creating hyper-nodes comprising the sub-components of VNFs C and D, which are to be connected to the sub-components of VNF E. More specifically, the sub-component j of VNF C and the sub-component k of VNF D may form a hypernode, which may be connected to the sub- component l of VNF E, if and only if the following conditions are met: (i) there is an edge between the sub-component l of VNF E and the sub-component k of VNF D in either union graph ^^ௗௌி^^and ^^ௗௌி^ଷ; (ii) there is an edge between the sub-component l of VNF E and the sub-component j of VNF C in the union graph ^^ௗௌி^ଶ, (iii) there is an edge between the sub-component j of VNF C and the sub-component k of VNF D in creation of the second and third stages shown in FIG.49(b).

[0168] For example, the sub-components C3 and D1 should form a hyper-node, which should be connected to the sub-component E1 for the following reasons: (i) according to FIGS. 44 and 48, the sub-component E1 is connected to the sub-component D1 in both union graphs ^^ௗௌி^^and ^^ௗௌி^ଷ; (ii) according to FIG.46, the sub-component E2 is connected to the sub-component C3 in the union graph ^^ௗௌி^ଶ; (iii) according to FIG. 49(b), the sub-component C3 is connected to the sub-componentthe creation of the second and third stages of the final decision graph.

[0169] The outcome of creating the remaining stages of the final decision graph is shown in FIG.49(c). In the final decision graph shown in FIG. 49(c), a total of four paths is formed from P104419WO01 (3602-2429WO1) Page 23 of 38VNF A to VNF E, thus representing four feasible, low-cost VNF-FGs: (i) A1, B1, C2, D2, E2; (ii) A2, B2, C2, D1, E2; (iii) A1, B4, C3, D1, E1; and (iv) A1, B4, C3, D1, E3.

[0170] FIG.50 shows a process 5000 for decomposing one or more chains of VNFs. The one or more chains of VNFs includes a first VNF and a second VNF. Process 5000 may begin with step s5002. Step s5002 comprises identifying a first set of decomposition sub-components, DSCs, included in the first VNF, wherein the first set of DSCs includes a first DSC and a second DSC. Step s5004 comprises identifying a second set of DSCs included in the second VNF, wherein the second set of DSCs includes a third DSC. Step s5006 comprises obtaining a first forward weight value for a first forward path from the first DSC to the third DSC. Step s5008 comprises obtaining a second forward weight value for a second forward path from the second DSC to the third DSC. Step s5010 comprises performing a first comparison based on the first forward weight value and the second forward weight value. Step s5012 comprises, using a result of the first comparison based on the first forward weight value and the second forward weight value, selecting first forward path. Step s5014 comprises configuring a connection between the first VNF and the second VNF based on the selection of the first forward path.

[0171] In some embodiments, the method comprises generating a decision graph indicating a plurality of path between the first set of DSCs and the second set of DSCs, wherein the decision graph indicates the selection of the first forward path.

[0172] In some embodiments, the decision graph is a tree graph.

[0173] In some embodiments, performing the first comparison comprises determining which one of the first and second forward weight values is greater.

[0174] In some embodiments, the first set of DSCs further includes a fourth DSC, the second set of DSCs further includes a fifth DSC, and the method further comprises: obtaining a third forward weight value for a third forward path from the second DSC to the fifth DSC; obtaining a fourth forward weight value for a fourth forward path from the fourth DSC to the fifth DSC; performing a second comparison based on the third forward weight value and the fourth forward weight value; using a result of the second comparison, selecting the third forward path; and configuring a connection between the first VNF and the second VNF further based on the selection of the third forward path. P104419WO01 (3602-2429WO1) Page 24 of 38

[0175] In some embodiments, the second VNF includes a particular DSC, said one or more chains of VNFs further includes a third VNF comprising one or more DSCs, and the method further comprises: selecting a forward path from at least one DSC included in the first VNF to the particular DSC included in the second VNF; not selecting any forward path from the particular DSC included in the second VNF to any DSC included in the third VNF; based on not selecting any forward path from the particular DSC include in the second VNF to any DSC included in the third VNF, determining to exclude the particular DSC from the decision graph.

[0176] In some embodiments, the method further comprises selecting a backward path from at least one DSC included in the third VNF to the particular DSC included in the second VNF; and not selecting any backward path from the particular DSC included in the second VNF to any DSC included in the first VNF, wherein determining to exclude the particular DSC from the decision graph is further based on not selecting any backward path from the particular DSC included in the second VNF to any DSC included in the first VNF.

[0177] In some embodiments, the method further comprises obtaining a first backward weight value for a first backward path from the third DSC to the first DSC; obtaining a second backward weight value for a second backward path from a DSC included in the second VNF to the first DSC; performing a comparison based on the first backward weight value and the second backward weight value; using a result of the comparison which is based on the first backward weight value and the second backward weight value, selecting the first backward path; and configuring a connection between the first VNF and the second VNF based on the selection of the first backward path.

[0178] In some embodiments, said one or more chains of VNFs include a first chain of VNFs and a second chain of VNFs, the first chain of VNFs includes the first VNF, the second VNF, a source node (, and a first destination node, the second chain of VNFs includes the first VNF, a third VNF, the source node, and a second destination node.

[0179] In some embodiments, the method comprises obtaining first connection information about a first group of connections between the first VNF and the second VNF in the first chain of VNFs; obtaining second connection information about a second group of connections between the first VNF and the third VNF in the second chain of VNFs; and based on the obtained first and P104419WO01 (3602-2429WO1) Page 25 of 38second connection information, creating one or more connections between the second VNF and the third VNF.

[0180] In some embodiments, the method comprises identifying one DSC included in the first VNF; identifying one DSC included in the third VNF, wherein said one DSC included in the first VNF is connected to said one DSC included in the third VNF in the second chain; identifying one DSC included in the second VNF, wherein said one DSC included in the second VNF is connected to said one DSC included in the first VNF in the first chain; and based on the obtained first and second connection information, creating a connection between said one DSC included in the second VNF and said one DSC included in the third VNF.

[0181] In some embodiments, said one or more chains of VNFs include a first chain of VNFs and a second chain of VNFs, the first chain of VNFs includes a first source node, the first VNF, the second VNF, and a destination node, and the second chain of VNFs includes a second source node, a third VNF, the second VNF, and the destination node.

[0182] In some embodiments, the method comprises obtaining first connection information about a first group of connections between the first VNF and the second VNF in the first chain of VNFs; obtaining second connection information about a second group of connections between the third VNF and the second VNF in the second chain of VNFs; and based on the obtained first and second connection information, creating one or more connections between the first VNF and the third VNF.

[0183] In some embodiments, the method comprises identifying one DSC included in the first VNF; identifying one DSC included in the second VNF, wherein said one DSC included in the first VNF is connected to said one DSC included in the second VNF in the first chain; identifying one DSC included in the third VNF, wherein said one DSC included in the third VNF is connected to said one DSC included in the second VNF in the second chain; and based on the obtained first and second connection information, creating a connection between said one DSC included in the second VNF and said one DSC included in the third VNF.

[0184] In some embodiments, said one or more chains of VNFs include a first chain of VNFs and a second chain of VNFs, the first chain of VNFs includes a source node, the first VNF, the P104419WO01 (3602-2429WO1) Page 26 of 38second VNF, and a destination node, and the second chain of VNFs includes the source node, the first VNF, the second VNF, a third VNF, and the destination node.

[0185] In some embodiments, the method comprises obtaining first connection information about a first group of connections between the first VNF and the second VNF in the first chain of VNFs; obtaining second connection information about a second group of connections between the first VNF and the third VNF in the second chain of VNFs; and based on the obtained first and second connection information, selecting one or more connections between the first VNF and the third VNF from the second group of connections in the second chain of VNFs.

[0186] In some embodiments, the method comprises obtaining third connection information about a third group of connections between the third VNF and the second VNF in the second chain of VNFs, based on the obtained first and third connection information, selecting one or more connections between the second VNF and the third VNF from the third group of connections in the second chain of VNFs.

[0187] In some embodiments, said one or more chains of VNFs include a first chain of VNFs, a second chain of VNFs, and a third chain of VNFs, the first chain of VNFs includes a source node, the first VNF, the second VNF, a third VNF, a fourth VNF, and a destination node, the second chain of VNFs includes the source node, the first VNF, the second VNF, the fourth VNF, and the destination node, and the third chain of VNFs includes the source node, the first VNF, the third VNF, the fourth VNF, and the destination node.

[0188] In some embodiments, the method comprises obtaining first connection information about a first group of connections between the first VNF and the second VNF in the first chain of VNFs; obtaining second connection information about a second group of connections between the first VNF and the third VNF in the second chain of VNFs; and based on the obtained second connection information, selecting one or more connections between the first VNF and the second VNF from the first group of connections in the first chain of VNFs.

[0189] In some embodiments, the method further comprises obtaining third connection information about a third group of connections between the second VNF and the third VNF in the first chain of VNFs; and based on the obtained second connection information, selecting one or P104419WO01 (3602-2429WO1) Page 27 of 38more connections between the second VNF and the third VNF from the third group of connections in the first chain of VNFs.

[0190] In some embodiments, the method further comprises obtaining fourth connection information about a fourth group of connections between the second VNF and the fourth VNF in the third chain of VNFs; and based on the obtained fourth connection information, selecting one or more connections between the second VNF and the third VNF from the third group of connections in the first chain of VNFs.

[0191] In some embodiments, the method further comprises obtaining fifth connection information about a fifth group of connections between the third VNF and the fourth VNF in the first chain of VNFs; and based on the obtained fourth connection information, selecting one or more connections between the third VNF and the fourth VNF from the fifth group of connections in the first chain of VNFs.

[0192] FIG.51 is a block diagram of an apparatus 5100, according to some embodiments, for implementing the VNF or the SFC described above. As shown in FIG. 51, apparatus 5100 may comprise: processing circuitry (PC) 5102, which may include one or more processors (P) 5155 (e.g., a general purpose microprocessor and / or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., apparatus 5100 may be a distributed computing apparatus); a network interface 5148 comprising a transmitter (Tx) 5145 and a receiver (Rx) 5147 for enabling apparatus 5100 to transmit data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network) to which network interface 5148 is connected (directly or indirectly) (e.g., network interface 5148 may be wirelessly connected to the network 110, in which case network interface 5148 is connected to an antenna arrangement); and a local storage unit (a.k.a., “data storage system”) 5108, which may include one or more non-volatile storage devices and / or one or more volatile storage devices. In embodiments where PC 5102 includes a programmable processor, a computer program product (CPP) 5141 may be provided. CPP 5141 includes a computer readable medium (CRM) 5142 storing a computer program (CP) 5143 comprising computer readable instructions (CRI) 5144. CRM 5142 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory P104419WO01 (3602-2429WO1) Page 28 of 38devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 5144 of computer program 5143 is configured such that when executed by PC 5102, the CRI causes apparatus 5100 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, apparatus 5100 may be configured to perform steps described herein without the need for code. That is, for example, PC 5102 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and / or software. P104419WO01 (3602-2429WO1) Page 29 of 38

Claims

CLAIMS 1. A method (5000) of decomposing one or more chains of virtual network functions, VNFs, wherein said one or more chains of VNFs includes a first VNF and a second VNF, the method comprising: identifying (s5002) a first set of decomposition sub-components, DSCs, included in the first VNF, wherein the first set of DSCs includes a first DSC and a second DSC; identifying (s5004) a second set of DSCs included in the second VNF, wherein the second set of DSCs includes a third DSC; obtaining (s5006) a first forward weight value for a first forward path from the first DSC to the third DSC; obtaining (s5008) a second forward weight value for a second forward path from the second DSC to the third DSC; performing (s5010) a first comparison based on the first forward weight value and the second forward weight value; using a result of the first comparison based on the first forward weight value and the second forward weight value, selecting (s5012) first forward path; and configuring (s5014) a connection between the first VNF and the second VNF based on the selection of the first forward path.

2. The method of claim 1, further comprising: generating a decision graph indicating a plurality of path between the first set of DSCs and the second set of DSCs, wherein the decision graph indicates the selection of the first forward path.

3. The method of claim 2, wherein the decision graph is a tree graph.

4. The method of any one of claims 1-3, wherein performing the first comparison comprises determining which one of the first and second forward weight values is greater.

5. The method of any one of claims 1-4, wherein P104419WO01 (3602-2429WO1) Page 30 of 38the first set of DSCs further includes a fourth DSC, the second set of DSCs further includes a fifth DSC, and the method further comprises: obtaining a third forward weight value for a third forward path from the second DSC to the fifth DSC; obtaining a fourth forward weight value for a fourth forward path from the fourth DSC to the fifth DSC; performing a second comparison based on the third forward weight value and the fourth forward weight value; using a result of the second comparison, selecting the third forward path; and configuring a connection between the first VNF and the second VNF further based on the selection of the third forward path.

6. The method of any one of claims 2-5, wherein the second VNF includes a particular DSC, said one or more chains of VNFs further includes a third VNF comprising one or more DSCs, and the method further comprises: selecting a forward path from at least one DSC included in the first VNF to the particular DSC included in the second VNF; not selecting any forward path from the particular DSC included in the second VNF to any DSC included in the third VNF; and based on not selecting any forward path from the particular DSC include in the second VNF to any DSC included in the third VNF, determining to exclude the particular DSC from the decision graph.

7. The method of claim 6, further comprising: selecting a backward path from at least one DSC included in the third VNF to the particular DSC included in the second VNF; and P104419WO01 (3602-2429WO1) Page 31 of 38not selecting any backward path from the particular DSC included in the second VNF to any DSC included in the first VNF, wherein determining to exclude the particular DSC from the decision graph is further based on not selecting any backward path from the particular DSC included in the second VNF to any DSC included in the first VNF.

8. The method of any one of claims 1-4, further comprising: obtaining a first backward weight value for a first backward path from the third DSC to the first DSC; obtaining a second backward weight value for a second backward path from a DSC included in the second VNF to the first DSC; performing a comparison based on the first backward weight value and the second backward weight value; using a result of the comparison which is based on the first backward weight value and the second backward weight value, selecting the first backward path; and configuring a connection between the first VNF and the second VNF based on the selection of the first backward path.

9. The method of any one of claims 1-8, wherein said one or more chains of VNFs include a first chain of VNFs and a second chain of VNFs, the first chain of VNFs includes the first VNF, the second VNF, a source node (, and a first destination node, and the second chain of VNFs includes the first VNF, a third VNF, the source node, and a second destination node.

10. The method of claim 9, comprising: obtaining first connection information about a first group of connections between the first VNF and the second VNF in the first chain of VNFs; P104419WO01 (3602-2429WO1) Page 32 of 38obtaining second connection information about a second group of connections between the first VNF and the third VNF in the second chain of VNFs; and based on the obtained first and second connection information, creating one or more connections between the second VNF and the third VNF.

11. The method of claim 10, comprising: identifying one DSC included in the first VNF; identifying one DSC included in the third VNF, wherein said one DSC included in the first VNF is connected to said one DSC included in the third VNF in the second chain; identifying one DSC included in the second VNF, wherein said one DSC included in the second VNF is connected to said one DSC included in the first VNF in the first chain; and based on the obtained first and second connection information, creating a connection between said one DSC included in the second VNF and said one DSC included in the third VNF.

12. The method of any one of claims 1-8, wherein said one or more chains of VNFs include a first chain of VNFs and a second chain of VNFs, the first chain of VNFs includes a first source node, the first VNF, the second VNF, and a destination node, and the second chain of VNFs includes a second source node, a third VNF, the second VNF, and the destination node.

13. The method of claim 12, comprising: obtaining first connection information about a first group of connections between the first VNF and the second VNF in the first chain of VNFs; obtaining second connection information about a second group of connections between the third VNF and the second VNF in the second chain of VNFs; and based on the obtained first and second connection information, creating one or more connections between the first VNF and the third VNF.

14. The method of claim 13, comprising: P104419WO01 (3602-2429WO1) Page 33 of 38identifying one DSC included in the first VNF; identifying one DSC included in the second VNF, wherein said one DSC included in the first VNF is connected to said one DSC included in the second VNF in the first chain; identifying one DSC included in the third VNF, wherein said one DSC included in the third VNF is connected to said one DSC included in the second VNF in the second chain; and based on the obtained first and second connection information, creating a connection between said one DSC included in the second VNF and said one DSC included in the third VNF.

15. The method of any one of claims 1-8, wherein said one or more chains of VNFs include a first chain of VNFs and a second chain of VNFs, the first chain of VNFs includes a source node, the first VNF, the second VNF, and a destination node, and the second chain of VNFs includes the source node, the first VNF, the second VNF, a third VNF, and the destination node.

16. The method of claim 15, comprising: obtaining first connection information about a first group of connections between the first VNF and the second VNF in the first chain of VNFs; obtaining second connection information about a second group of connections between the first VNF and the third VNF in the second chain of VNFs; and based on the obtained first and second connection information, selecting one or more connections between the first VNF and the third VNF from the second group of connections in the second chain of VNFs.

17. The method of claim 16, comprising: obtaining third connection information about a third group of connections between the third VNF and the second VNF in the second chain of VNFs, P104419WO01 (3602-2429WO1) Page 34 of 38based on the obtained first and third connection information, selecting one or more connections between the second VNF and the third VNF from the third group of connections in the second chain of VNFs.

18. The method of any one of claims 1-8, wherein said one or more chains of VNFs include a first chain of VNFs, a second chain of VNFs, and a third chain of VNFs, the first chain of VNFs includes a source node, the first VNF, the second VNF, a third VNF, a fourth VNF, and a destination node, the second chain of VNFs includes the source node, the first VNF, the second VNF, the fourth VNF, and the destination node, and the third chain of VNFs includes the source node, the first VNF, the third VNF, the fourth VNF, and the destination node.

19. The method of claim 18, further comprising: obtaining first connection information about a first group of connections between the first VNF and the second VNF in the first chain of VNFs; obtaining second connection information about a second group of connections between the first VNF and the third VNF in the second chain of VNFs; and based on the obtained second connection information, selecting one or more connections between the first VNF and the second VNF from the first group of connections in the first chain of VNFs.

20. The method of claim 19, further comprising: obtaining third connection information about a third group of connections between the second VNF and the third VNF in the first chain of VNFs; and based on the obtained second connection information, selecting one or more connections between the second VNF and the third VNF from the third group of connections in the first chain of VNFs. P104419WO01 (3602-2429WO1) Page 35 of 3821. The method of claim 20, further comprising: obtaining fourth connection information about a fourth group of connections between the second VNF and the fourth VNF in the third chain of VNFs; and based on the obtained fourth connection information, selecting one or more connections between the second VNF and the third VNF from the third group of connections in the first chain of VNFs.

22. The method of claim 21, further comprising: obtaining fifth connection information about a fifth group of connections between the third VNF and the fourth VNF in the first chain of VNFs; and based on the obtained fourth connection information, selecting one or more connections between the third VNF and the fourth VNF from the fifth group of connections in the first chain of VNFs.

23. A computer program (5143) comprising instructions (5144) which when executed by processing circuitry (5102) cause the processing circuitry to perform the method of any one of claims 1-22.

24. A carrier containing the computer program of claim 26, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.

25. An apparatus (5100) for decomposing one or more chains of virtual network functions, VNFs, wherein said one or more chains of VNFs includes a first VNF and a second VNF, the apparatus being configured to: identify (s5002) a first set of decomposition sub-components, DSCs, included in the first VNF, wherein the first set of DSCs includes a first DSC and a second DSC; identify (s5004) a second set of DSCs included in the second VNF, wherein the second set of DSCs includes a third DSC; obtain (s5006) a first forward weight value for a first forward path from the first DSC to the third DSC; P104419WO01 (3602-2429WO1) Page 36 of 38obtain (s5008) a second forward weight value for a second forward path from the second DSC to the third DSC; perform (s5010) a first comparison based on the first forward weight value and the second forward weight value; using a result of the first comparison based on the first forward weight value and the second forward weight value, select (s5012) first forward path; and configure (s5014) a connection between the first VNF and the second VNF based on the selection of the first forward path.

26. The apparatus of claim 25, wherein the apparatus is further configured to perform the method of any one of claims 2-22.

27. An apparatus (5100) comprising: a processing circuitry (5102); and a memory (5141), said memory containing instructions executable by said processing circuitry, whereby the apparatus is operative to perform the method of any one of claims 1-22. P104419WO01 (3602-2429WO1) Page 37 of 38