WO2018000240A1 - Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking - Google Patents

Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking Download PDF

Info

Publication number
WO2018000240A1
WO2018000240A1 PCT/CN2016/087658 CN2016087658W WO2018000240A1 WO 2018000240 A1 WO2018000240 A1 WO 2018000240A1 CN 2016087658 W CN2016087658 W CN 2016087658W WO 2018000240 A1 WO2018000240 A1 WO 2018000240A1
Authority
WO
WIPO (PCT)
Prior art keywords
service
vnf
network
configuration
vnfs
Prior art date
Application number
PCT/CN2016/087658
Other languages
French (fr)
Inventor
Xiaoyu Wang
Tao Zheng
Original Assignee
Orange
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Priority to PCT/CN2016/087658 priority Critical patent/WO2018000240A1/en
Publication of WO2018000240A1 publication Critical patent/WO2018000240A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications

Definitions

  • a given end-to-end service that operates over a network can be defined in terms of a forwarding graph of network functions and end points/terminals.
  • Typical communications networks comprise network infrastructure over which a plurality of services can operate simultaneously.
  • the expression “network service” used herein refers to some service that is implemented with the aid of a network and which involves performance of technical functions by components in the network (e.g. communications functions, networking functions, firewall functionality, domain name resolution functionality, and so on) .
  • the service can be visualised as a forwarding graph that starts at an LTE vBS 5 (represented in the forwarding graph as 63) .
  • This communicates with an MME 47 in the core mobile network 19 (represented in the forwarding graph as 65) and then an SGW 45 in the core mobile network 19 (represented in the forwarding graph as 67) .
  • the service communicates with a PGW 55 in the mobile IP networking system 29 (represented in the forwarding graph as 69) and an App server in the mobile IP networking system 29 (represented in the forwarding graph as 71) .
  • VNFs may be instantiated on network infrastructure so that the network has the capability of supporting different network services.
  • resources computing power, storage, networking resources
  • specific hardware component will be allocated for implementing the associated virtual machine/run the associated application software.
  • a forwarding graph for a network service in a static manner, making use of a fixed routing between specific instances of VNFs of determined types deployed on particular network infrastructure components.
  • the network may well include multiple instances of the same types of VNFs and it may be possible for the same service to be implemented using different instances of the VNFs. There may be some benefit to choosing one path through a first set of VNF instances (one service chain) over a second path through a second set of VNF instances (asecond service chain) .
  • Networks may make use of Software Defined Networking (SDN) to define service chains for network services in a dynamic manner.
  • SDN makes it possible to change, dynamically, the network function forwarding graph that is used to implement a particular network service, by re-routing the traffic path among the servers of the network infrastructure.
  • This dynamic selection of service chains may help to maximize quality of service/minimize consumption of resources, for example, by responding to changes occurring at the user interface and/or changes in network conditions.
  • Different policies may be applied when recalculating the routing path. For example, the SDN controller may select a new path that has smaller traffic forwarding delay from end to end, based on a QoS policy.
  • the computing cost of the instances in the fitness calculation are set to be equal to those of a single instance of the VNF.
  • the fitness function takes the form of:
  • I the number of each VNF type, indexed by i;
  • M the number of VNF service chains, indexed by m;
  • N a number of servers in a network infrastructure layer, indexed by n;
  • the possible configurations are constrained by a function of the form:
  • each of said candidate configurations defining an allocation of VNFs to infrastructure equipment to enable implementation of a set of service chains which could be specified by the SDN controller for the set of network services, the set of service chains including said plural alternative service chains;
  • a potential configuration (e.g. best configuration so far) may be selected before the exit condition is checked.
  • FIGS11A and 11B illustrate only two possible VNF-deployment configurations that could be used to allocate the resources of three servers to VNFs used in implementing the three network services. Other configurations are possible but it is not expedient to give an exhaustive description here of all the possibilities.
  • k is an index to differentiate different candidate VNF-deployment configurations from one another. So a given value of k designates a particular deployment of VNFs over the network infrastructure.
  • the optimization method seeks to determine which configuration k is “optimal” according to a chosen metric.
  • Lm the number of VNFs in a service chain m, indexed by l.
  • L 4 is equal to two because there are two VNFs in this service chain S 4 .
  • s k l represents the identity of the server on which the lth VNF of this service chain m is deployed according to the kth configuration.
  • n1 and n2 represent respectively server1 and server2.
  • the communication cost from server1 to server2 equals that from server2 to server1.
  • can be made to be dependent on the direction of communication.
  • ⁇ i is the additional resource cost for instantiating VNF type i.
  • represents the computational cost of running a particular VNF. This is in general composed of two components, a processing cost and a memory cost, with the overall value of ⁇ being the combination of these components.
  • C n represents the maximum resource of server n, and this can be considered to be a cost. Different servers will in general have different capabilities and so C can in general be dependent on the particular server.
  • Z l represents the VNF processing delay for a VNF having index l.
  • equation (1) is representative of the sum of the communication costs between VNFs of the different service chains in the VNF-deployment configuration k (i.e. it is dependent on ⁇ ) and the second term is representative of the sum of the computational costs of running the VNFs in these service chains (i.e. it is dependent on ⁇ ) .
  • Each server n has particular resources Cn and if a candidate VNF-deployment configuration would result in Cn being exceeded then this candidate configuration cannot be implemented in the real world.
  • This requirement acts as a constraint on the candidate configurations that may be selected as the “optimal” configuration.
  • the constraint may be expressed according to relation (2) below:
  • Qm represents a target QoS level to be provided by service chain m and, thus, defines a constraint on service chain m.
  • Qm may serve as a constraint that may be expressed using relation (3) below:
  • the communication “cost” ⁇ represents the time delay involved in communication between VNFs of service chain m.
  • Figure 6 illustrates a method, according to an embodiment of the invention, which defines service chains having different QoS levels for at least one network service, selects a VNF-deployment configuration, and records routing for service chains in the selected configuration as well as QoS rates associated with the service chains.
  • An SDN controller may refer to the record of routing and QoS rates when selecting service chains for use in implementing network functions.
  • the method of figure 6 enables VNF deployment in network infrastructure, notably servers, to be optimized while at same time predefining the QoS of service chains that may be created by an SDN controller when the VNFs have been deployed.
  • This method considers different service chains which could be created by SDN, with different QoS levels for a certain network service, when deploying VNFs in servers.
  • the process flow is, as follows:
  • S60 Define a number T of QoS levels around the required QoS of each service (or for selected services) .
  • the set of defined QoS levels is [QoS 1 , QoS 2 , ...QoS Req (required) , ., QoS T ]
  • S61 Select a VNF-deployment configuration for the set of M service chains taking QoS into consideration, and record the routing for each service chain in the selected configuration in association with the QoS offered by that service chain.
  • a particular method for selecting a VNF-deployment configuration will be described below. For the time being it may be noted that selecting process takes into account plural different possible service chains for a given network service and these possible service chains may different QoS.
  • Steps S60 to S62 may be performed by an information processing apparatus.
  • VNFs *Servers randomly generating matrices
  • Step S103 generating an initial population
  • the 1s in a given column of the matrix represent the VNFs allocated to a given server taking into account all of the service chains. Duplicate VNFs in different service chains are allowed.
  • Each matrix represents one candidate solution of VNF deployment and, in terms of the genetic algorithm, one genome (individual) .
  • one genome is composed of N ‘chromosomes’a nd the length of each chromosome is, in the present embodiment, the total length of all services chains.
  • the size of initial population is in general related to the scale of the optimisation problem. Generally, the more complex problem needs greater population size.
  • the size of initial population can be set to a random number or a constant value with experience, for example 64 or 128. This size is related to the scale of VNF deployment. The skilled person will recognise that there is a trade-off in that a bigger initial population size will result in a greater search space and less iterations before convergence however the calculations required will require a greater computational power. Conversely a smaller initial population size requires less computational power but is more likely to cause the algorithm to converge to a local optimised point rather than the global optimum.
  • the individual fitness expression from equation (4) or (5) is calculated for each member of the population present in the current generation. In the case of the first iteration, this corresponds to each member of the initial population.
  • the size of the population is maintained for each iteration.
  • Step S103 if some individuals are discarded because they don’t meet constraint condition (equation (2) ) , Step 103 and Step 105 will be executed repeatedly in sequence to ensure that the initial size of the population is maintained.
  • step S113 wherein the optimisation result is output and the algorithm ends. This is described in further detail below. Otherwise, the algorithm continues to execute step S109 and S111, and subsequently back to S103 to enter the next generation of the algorithm.

Abstract

A method determines a deployment of virtual network functions (VNFs) in a network that is to implement a set of one or more network services and that includes a software defined networking (SDN) controller to control which of plural alternative service chains is used to implement a network service. The method comprises:generating a group of candidate VNF-deployment configurations, each of the candidate configurations defining a deployment of VNFs that enables implementation of a set of service chains which could be specified by the SDN controller, the set of service chains including the plural alternative service chains; evaluating the fitness of each candidate configuration in the group, using a fitness function that quantifies fitness dependent on at least one of the computational and communication resources used by a configuration; and selecting a candidate configuration on the basis of its evaluated fitness.

Description

Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking Background Technical field
The present invention relates to the implementation of communications network functionality and, in particular, to the implementation of such functionality in software. More particularly still, the invention relates to the optimisation of deployment of virtual Network Functions (VNFs) on network infrastructure in a communications network.
Related art
In communications networks, networking has traditionally been implemented using specialised hardware to provide the required functionality. To improve the pace of improvement in networking technology, and in the light of increasing convergence between telecommunications networks and data communications networks, software implementations of networking equipment have been developed.
Thus, for example, the European Telecommunications Standards Institute (ETSI) has issued standards involving use of network function virtualization (NFV) in next generation communications networks. NFV involves “virtualizing” tasks which would have been performed in the past by dedicated hardware so that, instead, they may be implemented in software, for example using virtual machines and/or software applications executed by servers.
In the present document the expression “communications network” will be used to refer in general to networks of different kinds including, inter alia, telecommunications networks and data-communications networks (and converged networks) , whether providing fixed or mobile services. The expression “computer network” may also be used herein to refer to the same networks in view of the fact that the present document discusses networks in which network functions are virtualized. Incidentally, the present invention may be applied in networks in which NFV is implemented at least to some extent; in other words, the invention may be applied even to networks which still employ one or more dedicated hardware elements.
A given end-to-end service that operates over a network, e.g. a video-on-demand streaming service, a voice over IP service, etc., can be defined in terms of a forwarding graph of network functions and end points/terminals. Typical communications networks comprise network infrastructure over which a plurality of services can operate simultaneously. The expression “network service” used herein refers to some service that is implemented with the aid of a network and which  involves performance of technical functions by components in the network (e.g. communications functions, networking functions, firewall functionality, domain name resolution functionality, and so on) .
Figure 1 illustrates an example of a network architecture implementing mobile telecommunications, in which NFV is employed so that various network functions are implemented using software (virtual machines, applications) running on associated hardware.
As illustrated in figure 1, base stations (BS) 1 can provide certain communications capabilities via software implementations of functions such as LTE virtual bases stations (vBS LTE) 5, 3G virtual base stations (vBS 3G) 7, 2G virtual base stations (vBS 2G) 9 and WiMax virtual base stations (vBS WiMax) 11 that run on hardware devices 13.
The skilled person will recognise that content delivery network (CDN) functionality 15 can be implemented via software implementation 17 on hardware devices 13. The CDN can communicate with the BS 1 to provide communications with, for example, home and enterprise networks 21, fixed access networks 23 (for communication with homes 27 and offices 25) and with mobile core networks 19 and mobile IP networking systems 29. In general, each of these  systems  21, 23, 29, 19 can also be provided via software implementations running on hardware 13.
Thus, in the case of fixed access networking 23, this can provide Asymmetric digital subscriber lines ASDL 31, Very-high-bit-rate digital subscriber line (VDSL) 33 and/or communications operating on ITU-T or G standards (ITU-T/G) 35. In the case of home/enterprise networking 21, residential gateways (RGW) 37, Network address translation (NAT) 39 and set-top box functionality 41 can be provided via software implementations running on hardware 13.
In the case of core mobile networks 19, technologies such as Call Session Control Function (CSCF) 43, signalling gateway (SGW) 45, mobility management entity (MME) 47, domain name server (DNS) 49, Dynamic Host Configuration Protocol (DHCP) 51 and firewalls 53 can be provided via software implementations running on hardware 13. In the case of mobile IP networking systems 29, CSCF 43, MME 47, DHCP 51 can also be provided, as can packet data network gateways (PGW) 55, App servers 57 and load balancing 59.
To take an example of a service provided by such a networking architecture, consider a networking capability provided using LTE. This is illustrated using the VNF forwarding graph 61 at the top of figure 1. As illustrated, the service can be visualised as a forwarding graph that starts at an LTE vBS 5 (represented in the forwarding graph as 63) . This communicates with an MME 47 in the core mobile network 19 (represented in the forwarding graph as 65) and then an SGW 45 in the core mobile network 19 (represented in the forwarding graph as 67) . Subsequently, the service communicates with a PGW 55 in the mobile IP networking system 29 (represented in the forwarding graph as 69) and an App server in the mobile IP networking system 29 (represented in the forwarding graph as 71) .
Thus, VNF forwarding graphs provide a simple method of visualising services provided via networks. Moreover, such graphs can aid in the provision of networking functionality, for example as  an aid to identifying suitable physical locations for the virtual technologies involved in providing the service.
The skilled person will recognise that this is merely one example of a VNF forwarding graph selected for one service provided by one particular type of networking system. Other forwarding graphs representing other services can also be generated, and such graphs need not be merely linear as depicted in figure 1, for example additional branches may occur.
Figure 2 illustrates a simple generalised example of a network service implemented using VNFs 102, 104, 106. These can correspond to any of the VNFs listed in respect of figure 1, or indeed any other VNF. As illustrated in figure 2, the VNFs 102, 104, 106 are in communication with one another via network infrastructure 114.  End points  100 and 108 of the architecture represent the service end points, such as for example a user terminal connected to the BS 1 and/or a processing device in a house 27 of figure 1. As illustrated in figure 2, the end point 100 is in communication with the VNF 102 via network infrastructure 110 and the end point 108 is in communication with the VNF 106 via network infrastructure 116. The infrastructure hardware used in implementing the network service illustrated in figure 2 may depend on the nature of the service: typically it may include servers, storage, communications links, routing devices, control and management units, and so on. The communications links used in implementing the network service illustrated in figure 2 may be wired and/or wireless.
Typically, different types and different numbers of VNFs may be instantiated on network infrastructure so that the network has the capability of supporting different network services. In view of the virtualized nature of VNFs there is often considerable flexibility regarding “where” in the network infrastructure a given VNF will be instantiated, i.e. which resources (computing power, storage, networking resources) of which specific hardware component will be allocated for implementing the associated virtual machine/run the associated application software.
How to schedule and/or deploy VNFs among the various hardware infrastructure (servers, storage and network links, etc. ) is a very important consideration for network efficiency. Moreover, the particular manner in which VNFs are deployed will impact service Quality of Service (QoS) directly. Thus different VNF deployments of a particular service chain will, in general, lead to different computation and communication costs for the service chain. Therefore, VNF scheduling/deployment and relevant algorithms are important considerations for NFV.
The skilled person will recognise that, since different deployments of the same service chain can have different computational and communications costs associated with them, there exists the possibility of deriving and adopting an optimised solution i.e. an optimised deployment of VNFs over network infrastructure. The optimised solution would have the lowest “cost” , or highest “utility” , as defined by some metric (s) . Thus, for example, a “cost” metric might assign a higher cost to deployment configurations which have a high combination of communications and/or computing costs. As another example, a “utility” metric might assign a higher utility to deployment configurations that provide a higher throughput of packets.
The document “An Optimisation Case in Support of Next Generation NFV Deployment” , presented at HotCloud '15, accessible at the URL https: //www. usenix. org/system/files/conference/hotcloud15/hotcloud15-abbasi. pdf discloses methods of such optimisation using a cost metric. In the disclosed method, the optimisation problem analysis is simplified by using a “Greedy solution” . This includes using a unified communication cost and approximating the server total capability such that it does not include any consideration of the virtual machine work load.
As recognised in the cited document, in general, the problem of optimizing VNF deployment will be very complex, and difficult to solve through a classical analytic methods if a large number of VNFs are deployed. There is therefore a need to provide an algorithm to solve this problem whilst avoiding the drawbacks of the approximate solutions provided by the cited document.
It is possible to define a forwarding graph for a network service in a static manner, making use of a fixed routing between specific instances of VNFs of determined types deployed on particular network infrastructure components. However, the network may well include multiple instances of the same types of VNFs and it may be possible for the same service to be implemented using different instances of the VNFs. There may be some benefit to choosing one path through a first set of VNF instances (one service chain) over a second path through a second set of VNF instances (asecond service chain) .
Networks may make use of Software Defined Networking (SDN) to define service chains for network services in a dynamic manner. SDN makes it possible to change, dynamically, the network function forwarding graph that is used to implement a particular network service, by re-routing the traffic path among the servers of the network infrastructure. This dynamic selection of service chains may help to maximize quality of service/minimize consumption of resources, for example, by responding to changes occurring at the user interface and/or changes in network conditions. Different policies may be applied when recalculating the routing path. For example, the SDN controller may select a new path that has smaller traffic forwarding delay from end to end, based on a QoS policy.
However, SDN only changes the routing path, it does not alter the VNF deployment. The VNF deployment pattern will limit the performance of possible service chains that could be created by SDN. For example, if the VNFs needed by a service are deployed on 3 servers at network initialization, then SDN could not create for this service a service chain having fewer than 2 transport hops, even if an increase in the number of transport hops beyond 1 has a negative impact of the quality of service (QoS) . There are limited possibilities for VNF migration on cloud platforms (i.e. for changing the infrastructure resources that are allocated for implementation for a given VNF) and, unfortunately, the migration techniques are not well adapted to responding dynamically to factors such as conditions at the user interface.
Accordingly, it is an aim of the present invention to solve or mitigate at least some of the above-described problems.
Summary
In a first aspect, the present invention provides a method of determining a deployment of virtual network functions, VNFs, to be instantiated on infrastructure equipment of a communications network, the communications network being configured to implement a set of one or more network services, implementation of a network service using a service chain comprising one or more of the VNFs, and the communications network comprising a software defined networking (SDN) controller to control, for at least one network service of the set, which of plural alternative service chains is used to implement the network service, the method comprising:
generating a group of candidate VNF-deployment configurations, each of said candidate configurations defining an allocation of VNFs to infrastructure equipment to enable implementation of a set of service chains which could be specified by the SDN controller for the set of network services, the set of service chains including said plural alternative service chains;
evaluating the fitness of each candidate VNF-deployment configuration in said group, using a fitness function that quantifies a fitness of a candidate VNF-deployment configuration dependent on at least one of the computational and communication resources used by the configuration; and
selecting a candidate VNF-deployment configuration on the basis of its evaluated fitness.
According to the above method, different service chains that could be created by SDN are considered in the VNF-deployment determining process. Thus, advantageously, the method provides a means by which a deployment configuration of VNFs can be identified that is (in some sense) optimised both with respect to its resource usage and with respect to enhancing the efficiency and/or achieved quality of service in performance of SDN in the configured network.
In certain embodiments quality of service (QoS) levels provided by respective service chains in the selected VNF-deployment configuration, and routing for the respective service chains, are determined, and the determined QoS level and routing information is output for supply to the SDN controller. Thus, advantageously, the SDN controller can adapt which service chain is used to implement a given network service, taking into account the QoS levels provided by the different service chains.
In certain embodiments a genetic algorithm is used iteratively to generate successive populations of candidate VNF-deployment configurations, the fitness of the respective configurations is evaluated and, when an exit condition is satisfied, a configuration is selected based on its fitness. Use of a genetic algorithm allows different candidate VNF-deployment configurations to be generated in an efficient manner. Use of a genetic algorithm allows a vast solution set to be scanned quickly.
In some embodiments the second population comprises members of the first population that are altered by at least one of a cross-over function and a mutation function. Thus, advantageously simple genetic algorithm functions can be applied to modify proposed configurations during the optimisation process.
In some embodiments the termination of the genetic algorithm is decided based on an exit condition that comprises one or more of:
a measure of the number of iterations of the genetic algorithm that have been completed;
a measure of the change in the maximum fitness measured for members of populations in different iterations of the genetic algorithm; or
a measure of the absolute maximum change of the maximum fitness measured for members of populations in different iterations of the genetic algorithm. Thus, advantageously, the genetic algorithm can be ended at a suitable point to avoid consuming processing time when little benefit would arise from the processing.
In some embodiments the possible configurations are constrained by the maximum computational resource of each of the plurality of servers, such that a configuration is excluded from the set of possible configurations if a maximum resource of any of the plurality of servers is exceeded by that configuration. Thus, advantageously, the method can easily eliminate configurations from consideration if the available computing resources could not support such configurations.
In some embodiments the computational resources depend on the computational costs related to the number and type of VNFs that are configured to run on each server in a configuration. Thus, advantageously, the method can take into account the computation costs associated with implementing each VNF when deriving the optimal solution.
In some embodiments the communication resources depend on the communication costs associated with communications between the plurality of servers arising as a result of the configuration. Thus, advantageously, the method can take into account the costs associated with deploying VNFs across a plurality of communicating servers when deriving the optimal solution.
In some embodiments if a configuration employs a plurality of instances of a particular VNF in different service chains on a particular server, then the computing cost of the instances in the fitness calculation are set to be equal to those of a single instance of the VNF. Thus, advantageously, due account can be taken of the situation in which multiple instances of the same software are running on a server.
In some embodiments the fitness function takes the form of:
Figure PCTCN2016087658-appb-000001
or
Figure PCTCN2016087658-appb-000002
where:
I= the number of each VNF type, indexed by i;
M= the number of VNF service chains, indexed by m;
Lm= the number of VNFs in a service chain m, indexed by l;
N= a number of servers in a network infrastructure layer, indexed by n;
for a service chain m in a configuration k, Sm, k represents the positions of the VNFs in the service chain, where: Sm, k= {sk 1, sk 2, ..., sk Lm} s∈ {1, ....., N} ;
β2=β2 (n1, n2) is a communication cost function, which represents the cost for communication between  servers  1 and 2;
αi is the additional resource cost for VNF type i; and
xi, n ∈1, 0, wherein an entry of 1 represents that there is a VNF type i instance on server n, whilst an entry of 0 indicates that there is not. Thus, advantageously, a simple mathematical approximation of the relevant parameters can be generated for use in the algorithm.
In some embodiments the possible configurations are constrained by a function of the form:
Figure PCTCN2016087658-appb-000003
where:
Cn is the maximum resource of server n, and
θl is the workload of the lth VNF in service chain m. Thus, advantageously, a simple mathematical approximation of real-life constraints can be employed in the algorithm.
In some embodiments each configuration is represented by a matrix such that:
a row exists in each matrix corresponding to each VNF deployed in each service chain to be implemented by the configuration; and
a column exists for each server that is available for use in implementing the configuration. Thus, advantageously, a simple matrix description of a configuration can be used. Such a description can easily be applied to a genetic algorithm using known methods.
In some embodiments each element in the matrix is a binary indicator indicating either the presence or absence of a particular VNF on a particular server, and wherein each row in the matrix has one element indicating such a presence. Thus, advantageously, the binary indicators can be 1 and 0 and can easily be implemented using computing means. Moreover, the limitation of one entry per row being equal to 1 (i.e. indicating the presence of the VNF) provides a simple means by which some configurations that are not suitable for application can be eliminated.
In some embodiments if a mutation function is applied to a matrix that describes a configuration, then the mutation function is such that each row in the matrix retains a single element indicating a presence of the particular VNF related to that row. Thus, advantageously, the development of some configurations that are not suitable for application can be avoided when applying such a mutation operation.
In a second aspect, there is provided a processing apparatus for determining a deployment of virtual network functions, VNFs, to be instantiated on infrastructure equipment of a communications network, the communications network being configured to implement a set of one or more network services, implementation of a network service using a service chain comprising one or more of the VNFs, and the communications network comprising a software defined networking (SDN) controller to control, for at least one network service of the set, which of plural alternative service chains is used to implement the network service, the processing apparatus comprising:
means for generating a group of candidate VNF-deployment configurations, each of said candidate configurations defining an allocation of VNFs to infrastructure equipment to enable implementation of a set of service chains which could be specified by the SDN controller for the set of network services, the set of service chains including said plural alternative service chains;
means for evaluating the fitness of each candidate VNF-deployment configuration in said group, using a fitness function that quantifies a fitness of a candidate VNF-deployment configuration dependent on at least one of the computational and communication resources used by the configuration; and
means for selecting a candidate VNF-deployment configuration on the basis of its evaluated fitness.
In further aspects there is provided a computer program product comprising computer readable instructions which, when executed by a processor perform all of the steps of the method of the first aspect, and a computer readable medium comprising such a computer program.
Brief description of the drawings
The invention will now be described with reference to the accompanying Figures of which:
Figure 1 illustrates a known example of a network architecture implementing mobile telecommunications in which NFV is employed to visualise the dependency between network functions and the associated hardware;
Figure 2 illustrates a simplified example of a network forwarding graph;
Figure 3 illustrates examples of different configurations of deployed VNFs and service chains implemented in the different configurations;
Figure 4 illustrates different service chains that may be implemented using VNFs deployed as in the example illustrated in the right-hand portion of figure 3;
Figure 5 illustrates a flow chart of a method according to an embodiment;
Figure 6 illustrates a flow chart of a method according to another embodiment;
Figure 7 illustrates a flow chart of a process, for selecting a VNF-deployment configuration, that may be employed in the embodiment of figure 6;
Figure 8 illustrates an example of a matrix representation of a configuration of VNFs;
Figure 9 illustrates an example of applying a cross-over function to matrices;
Figure 10 illustrates an example of applying a mutation function to a matrix;
Figure 11A illustrates an example of a first VNF-deployment configuration; and
Figure 11B illustrates an example of a second VNF-deployment configuration.
Detailed Description
There now follows a detailed description of certain embodiments of the invention, after an initial description of certain principles to aid understanding.
Figure 3 illustrates examples of VNFs being used to implement service chains in a network environment. The service chains illustrated in figure 3 are for example purposes only, and indeed are highly simplified, illustrating only some possible examples of how service chains can be implemented.
The skilled person will recognise that essentially any service chain can be implemented using different VNFs in different configurations, and there is no particular limitation on the number or type of VNFs employed or in the manner in which such VNFs are connected to one another. Thus, for example, the principles discussed below may be applied in respect of implementing service chains in the network of figure 1 and, indeed, in substantially any communications networks in which NFV is implemented.
The examples in figure 3 relate to a simple case in which two services are to be implemented in a network whose infrastructure includes two servers. The skilled person will understand that this is for illustrative purposes only, and a greater or smaller number of servers can be employed for such purposes. The first service may be implemented by employing two virtualized network functions VNF1, VNF2 in that order, as illustrated by arrows 307 in the examples of figure 3. The second service may be implemented by employing three virtualized network functions VNF1, VNF2, VNF3 in that order, as illustrated by broken arrows 309 in figure 3. The skilled person will recognise that the functionality of these VNFs, and their specific numbers, are not of importance for the example.
The first example in figure 3, on the left of the figure, illustrates one possible deployment of VNFs on the network infrastructure and with an example of how service chains for the two services may be defined in this configuration. In this first example, resources of the first server 311 are used to run an instance 301 of VNF1 and an instance 305 of VNF3, and resources of the second server 313 are used to run an instance 303 of VNF2.
In the first example in figure 3, a first service chain 307 used in implementing the first service entails a traversal order from VNF1 instance 301 to VNF2 instance 303, while a second service chain 309 used in implementing the second service entails a traversal order from VNF1 instance 301 to VNF2 instance 303 and then on to VNF3 instance 305. Since VNF1 instance 301 is located on the first server 311, and VNF2 instance 303 is located on the second server 313, this first service chain 307 entails communication via a communications link (not illustrated) between these servers, termed here a communication “hop” . Similarly, the second service chain 309 entails two such communication hops, one from VNF1 instance 301 on the first server 311 to VNF2 instance 303 on the second server  313, and a second hop from VNF2 instance 303 on the second server 313 to VNF3 instance 305 on the first server 311.
The second example, the middle diagram in figure 3 illustrates a different possible deployment of VNFs over the same infrastructure and service chains to implement the same two functions using this different VNF configuration. In this second example, resources of the first server 311 are used to run an instance 301 of VNF1 and an instance 303 of VNF2, and resources of the second server 313 are used to run an instance 305 of VNF3. Since VNF1 instance 301 and VNF2 instance 303 are both instantiated on the same server in this configuration, there is no communications hop required in the first service chain 307 since all communications are within the same physical server. For the second service chain 309, communications between VNF1 instance 301 and VNF2 instance 303 require no communications hop while communications on to VNF3 instance 305 do require such a hop. Thus, the skilled person will recognise that, according to this changed VNF deployment, the example implementation of the two service chains will have different communication ‘costs’ in comparison to the VNF deployment in the first example, since the first example requires 3 communications hops in total whereas the second requires only one.
The third example implementation on the right hand side of figure 3, illustrates yet another different possible deployment of VNFs over the same infrastructure and service chains to implement the same two functions using this different VNF configuration. In this third example there are two instances of each of VNF1 and VNF2. In this third example, resources of the first server 311 are used to run a first instance 301 of VNF1 and a first instance 303 of VNF2, and resources of the second server 313 are used to run a second instance 315 of VNF1, a second instance 317 of VNF2 and an instance 305 of VNF3.
In this third example the network functions (VNF1 and VNF2) required to implement the first service can all be run on a single server, for example the first server 311. Accordingly, the right hand portion of figure 3 illustrates a service chain 307 implementing the first service using VNF1 instance 301 and VNF2 instance 303 running on first server 311. Furthermore, on the second server 313 there are instances of all the network functions (VNF1, VNF2 and VNF3) required to implement the second service. Accordingly, the right hand portion of figure 3 illustrates a service chain 309 implementing the second service using VNF1 instance 315, VNF2 instance 317 and VNF3 instance 305 running on second server 313. Thus, as with the second example, the first service chain 307 requires no communication hops. In addition, the second service chain 309 also requires no communication hops. Thus, the VNF deployment implemented in this third example enables very low communication costs to be incurred.
The skilled person will also recognise that running software on a processing system, such as a server, will result in some computing ‘costs’ . In other words, some of the processor’s resources are consumed by running an instance of a VNF on it. Such costs can include, for example, utilization of the memory and/or the processor time. Thus, the overall ‘cost’ of implementing the  service chains  307, 309 in each configuration of deployed VNFs may be considered to be the combination of the  communications costs and the computing costs required to implement the service chains in that configuration.
The skilled person will further recognise that, in general, different implementations will result in different overall costs, and so some implementations will in general be “better” than others from the point of view of their overall combined computing/communication cost. Thus, one metric for deciding which configuration of deployed VNFs is the optimum configuration may involve evaluating a cost function which quantifies the combined computing and communications costs associated with that configuration, and selecting the lowest-cost configuration. Another metric for identifying an optimum configuration of deployed VNFs may involve evaluating a utility function that quantifies a positive measure of network performance, for example, overall packet throughput, and selecting the highest-utility configuration. Below metrics are described which evaluate the “fitness” of candidate configurations of deployed VNFs, noting that “fitness” denotes any convenient parameter that may be evaluated looking at cost and/or utility of the candidate configurations and the optimum configuration is one having the highest value of the fitness function.
The present inventors have devised a new method for identifying an optimized configuration of deployed VNFs. This new method not only evaluates the fitness of different candidate configurations of deployed VNFs from the point of view of their overall associated cost and/or utility but also identifies quality of service (QoS) performance levels provided by different service chains that may be employed to implement a given service using VNFs deployed according to the configurations considered during the optimisation process. When the VNFs are deployed in the network infrastructure according to the selected configuration, an SDN controller associated with the network can use the identified QoS levels to dynamically select which service chain to use to implement a given service, for example in view of conditions applicable at a user interface.
It is helpful to look again at the third (right-hand) example in figure 3 before proceeding to describe the new method. With VNFs deployed as illustrated in the third example of figure 3 it is in principle possible to implement the first and second network services using service chains different from service chain 307 and service chain 309. Figure 4 illustrates examples of different service chains that may be employed to implement the first network service (left-hand portion of figure 4) and the second network service (right-hand portion of figure 4) .
As illustrated in the left-hand portion of figure 4, with VNFs deployed on servers as in the configuration illustrated in the right-hand portion of figure 3, a combination of VNFs suitable to implement the first network service can be established according to any one of four different service chains S1 to S4. These four different possible service chains are, as follows:
S1VNF1 instance 301→ VNF2 instance 303
S2VNF1 instance 301→ VNF2 instance 317
S3VNF1 instance 315→ VNF2 instance 317
S4VNF1 instance 315→ VNF2 instance 303
As illustrated in the right-hand portion of figure 4, with VNFs deployed on servers as in the configuration illustrated in the right-hand portion of figure 3, a combination of VNFs suitable to implement the second network service can be established according to any one of four different service chains S5 to S8. These four different possible service chains are, as follows:
S5VNF1 instance 315→ VNF2 instance 317→ VNF3 instance 305
S6VNF1 instance 315→ VNF2 instance 303→ VNF3 instance 305
S7VNF1 instance 301→ VNF2 instance 303→ VNF3 instance 305
S8VNF1 instance 301→ VNF2 instance 317→ VNF3 instance 305
If software domain networking is employed in a network including VNFs deployed as illustrated in the right-hand portion of figure 3 (and shown in figure 4) then the SDN controller may control which of the service chains S1, S2, S3 and S4 is employed during implementation of the first network service at a particular time, applying some selection policy. Likewise the SDN controller may control which of the service chains S5, S6, S7 and S8 is employed when the second network service is implemented at a particular time.
The invention is not particularly limited having regard to the manner in which SDN is implemented (e.g. use of proactive or reactive control, and so on) so further details are not given here. Suffice it to say that certain of the service chains are liable to be preferred over others in view of their lower communication costs –for example, service chains S1 and S3 have lower communication costs than S2 and S4, service chain S5 has lower communication costs than service chains S7 and S8 which, in turn, have lower communication costs than service chain S6.
Typically each of the first and second network services has an associated set of one or more end-to-end QoS requirements. For example, if the first network service is a video-on-demand service there may be a QoS requirement specifying a maximum time delay for transmitting video packets from a video content server to the end user. The different service chains that may be used to implement the network service may provide different QoS levels. Thus, for example, service chain S6 is liable to assure a lower QoS, in terms of packet delay, than service chain S7. However, it may be that service chain S7 uses fewer network resources than service chain S6, or uses resources that are less “costly” in some regard. So, in a case where the SDN controller determines that there is liable to be significant delay at the user interface, for example because the user is connected to the network via a wireless interface, then the controller may select to use service chain S7 in preference to service chain S6 to implement the first network service, with the aim of ensuring that the end-to-end packet delay is low (i.e. the end-to-end QoS requirement for the first network service is met) . On the other hand, in a case where the SDN controller determines that there is liable to be little delay at the user interface the controller may select to use service chain S6 in preference to service chain S7 to implement the first network service, with the aim of minimizing the consumption of network  resources while still ensuring that the end-to-end packet delay satisfies the end-to-end QoS requirement for the first network service.
As indicated above, the ability of the SDN controller to choose an optimal service chain to implement a given network service at a particular time is limited by the configuration in which VNFs have been deployed on the network infrastructure.
Embodiments of the present invention provide methods to select a VNF-deployment configuration -for example an optimum VNF deployment (i.e. an optimum configuration of deployed VNFs) -and the determination of which configuration to select takes into account variability in the service chains that may be used to implement one or more network services using the deployed VNFs.
A method according to a first embodiment of the invention will be described with reference to the flow diagram of figure 5. The method will be discussed in relation to optimization of the deployment of VNFs over network infrastructure in a case where a set of one or more services is going to be implemented using this network, the implementation of these services employs various VNFs, and SDN is used in the network to control which of a plurality of different possible service chains is used to implement at least one of the services in the set.
The method illustrated in figure 5 includes a process S10 of generating a group of candidate VNF-deployment configurations. In each candidate configuration, VNFs suitable to implement all the network services in the set are assigned to components of the network infrastructure, this assignment being different in each candidate configuration. Each of the candidate VNF deployment configurations includes plural different service chains for at least one of the network services. Constraints may be applied that limit which configurations are permitted.
After generating the group of candidate configurations the method of this embodiment includes a process S20 of evaluating the fitness of each candidate configuration according to some metric (e.g. evaluating the “cost” of the configuration in terms of communication and/or computation resources, evaluating the “utility” of the configuration in terms of throughput, and so on) . One (or more) of the candidate configurations is then selected (S30) , based on its evaluated fitness. For example, the candidate configuration that is evaluated as having the highest fitness may be selected. Data indicative of the selected configuration may be output. VNFs may be instantiated on the network infrastructure in accordance with the selected deployment configuration, for example by suitable programming of servers in the network. The set of network services may then be implemented using the configured network.
Because the candidate configurations whose fitness is evaluated include plural different service chains that could be used to implement a given network service (e.g. under control of an SDN controller) , the assessment of “fitness” takes the different possible service chains into account. Accordingly, a VNF deployment configuration that is determined to have greatest “fitness” , using the method of this embodiment, is more likely to be a configuration which optimizes efficient use of SDN  than is a VNF deployment configuration that is determined to be optimal using methods known to date.
The skilled person will readily understand that more than one VNF-deployment configuration may be selected. If desired, data may be output regarding a group of the “fittest” considered configurations. Data may be output indicating the fitness level of each of the selected configurations.
In certain implementations of the method according to this embodiment, after the fitness of the initial group of candidate configurations is evaluated (at S20) a check is made as to whether or not an exit condition is satisfied (S21) . For example, an exit condition may be a condition that at least one of the candidate configurations has a fitness exceeding a certain threshold value. If the exit condition is met then the method continues to selecting a configuration based on its evaluated fitness (S30) . On the other hand, if it is determined in S21 that the exit condition is not meet then the group of candidate configurations under consideration may be changed (S22) and a fresh evaluation may be made of the fitness of the changed group of candidate configurations may be evaluated (S20) . In such a case the series of steps S22-S20-S21 may be repeated until it is determined in S21 that the exit condition has been satisfied. Of course, the “exit condition” may actually be a set of conditions and may, for example, include a condition which limits the number of iterations of steps S22-S20-S21 that are allowed before the method proceeds obligatorily to step S30.
Although the above description of the certain implementations of the method of figure 5 refers to checking the exit condition before selecting a VNF-deployment configuration, a potential configuration (e.g. best configuration so far) may be selected before the exit condition is checked.
In certain implementations of the method according to the embodiment of figure 5, after a candidate VNF-deployment configuration has been selected, based on its evaluated fitness, there is a process S40 of outputting information indicating QoS levels and routing for the service chains that are accommodated in the selected configuration. This information may be exploited by an SDN controller to guide selection of which service chain is used at a given time to implement a particular network service in the network infrastructure having VNFs deployed according to the selected VFB-deployment configuration.
Although the above description of the method of figure 5 refers to application of constraints during the process of generating candidate VNF-deployment configurations, constraints may alternatively or additionally be applied in other processes of the method, for example, during the process S20 of evaluating the fitness of candidate configurations, during the process S22 of changing the group of candidate configurations (or before or after processes S20, S22) .
A method according to another embodiment of the invention will now be described with reference to figures 6 to 10, 11A and 11B.
Figures 11A and 11B illustrate aspects of an example optimization problem that will be referenced below. In the example illustrated in figures 11A and 11B the resources of three servers are available to run the VNFs that are needed for implementing three network services having the following requirements in terms of VNFs:
Network Service 1: VNF1→VNF2
Network Service 2: VNF2→VNF3
Network Service 3: VNF1→VNF2→VNF3
VNFs could be deployed over the three servers according to the configuration illustrated in figure 11A, in which one instance of VNF1 is run on server 1, one instance of VNF2 is run on Server 2 and instances of each of VNF1 and VNF3 are run on server 3. Alternatively, VNFs could be deployed over the three servers according to the configuration illustrated in figure 11B, in which one instance of VNF3 is run on server 1, one instance of VNF3 is run on Server 3 and instances of each of VNF1 and VNF2 are run on server 2.
Figures11A and 11B illustrate only two possible VNF-deployment configurations that could be used to allocate the resources of three servers to VNFs used in implementing the three network services. Other configurations are possible but it is not expedient to give an exhaustive description here of all the possibilities.
In the VNF-deployment configuration illustrated in figure 11A two different service chains could be used to implement Network Service 1; these two service chains are indicated in bold lines in figure 11A and are labelled S1 and S2. Similarly, in this configuration two different service chains could be used to implement Network Service 3; these two service chains are indicated in dot-chain lines in figure 11A and are labelled S4 and S5. In the configuration illustrated in figure 11A only one service chain could be used to implement Network Service 2; this service chain is indicated using a dotted line in figure 11a and is labelled S3.
In the VNF-deployment configuration illustrated in figure 11B one service chain could be used to implement Network Service 1; this service chain is indicated using a bold line in figure 11B and is labelled S1. In this configuration two different service chains could be used to implement Network Service 2; these two service chains are indicated in dotted lines in figure 11B and are labelled S2 and S3. Similarly, in the configuration illustrated in figure 11B two different service chains could be used to implement Network Service 3; these service chains are indicated using dot-chain lines in figure 11B and are labelled S3 and S5.
It is convenient to define a number of parameters for the purposes of the description of the method of the present embodiment, as follows:
k is an index to differentiate different candidate VNF-deployment configurations from one another. So a given value of k designates a particular deployment of VNFs over the network infrastructure. The optimization method seeks to determine which configuration k is “optimal” according to a chosen metric.
I = the number of each VNF type, indexed by i. In the examples given in figures 11A and 11B, I=3 since there are three different VNF types, VNF1, VNF2 and VNF3. These would have the  indices  1, 2, 3 respectively.
E = the number of network services to be implemented using the VNFs, indexed by e. (Of course, additional network services may be implemented on the configured network after the VNF-deployment optimization method has been implemented and/or network services that are taken into account by the optimization method may be discontinued later on or never actually implemented) . In the example of figures 11A and 11B three network services are to be implemented so E=3.
Fe = the number of different service chains that may be employed to implement a given network service e. In the example of figure 11A, for Network Service 1 there are two different possible service chains so F1 = 2.
M= the total number of VNF service chains, indexed by m. In the example given in figure 11A the three network services may be implemented using a total of five different service chains so M=5. In general, 
Figure PCTCN2016087658-appb-000004
Lm= the number of VNFs in a service chain m, indexed by l. For example, for service chain S4 in figure 11A L4 is equal to two because there are two VNFs in this service chain S4.
N= the number of servers in an infrastructure layer, indexed by n. In the examples shown in figures 11A and 11B, there are three servers, thus N=3.
For a given candidate configuration k, the set of positions of the VNFs in each service chain m of the service chains that are being accommodated may be expressed in the form:
Sm, k= {sk 1, sk 2, ..., sk Lm} s∈ {1, ....., N} 
where sk l represents the identity of the server on which the lth VNF of this service chain m is deployed according to the kth configuration.
The example configuration illustrated in figure 11A may be considered to be a configuration for which k=1 and the example configuration illustrated in figure 11B may be considered to be the k=2 configuration.
For the example shown in figure 11A (k=1) :
S1, 1 = {1, 2} , i.e. the first VNF in the service chain S1 is run on Server 1 and the second VNF in the service chain S1 is run on Server 2.
S2, 1 = {3, 2} , i.e. the first VNF in the service chain S2 is run on Server 3 and the second VNF in the service chain S2 is run on Server 2.
S3, 1 = {2, 3} , i.e. the first VNF in the service chain S3 is run on Server 2 and the second VNF in the service chain S3 is run on Server 3.
S4, 1 = {3, 2, 3} , i.e. the first VNF in the service chain S4 is run on Server 3, the second VNF in the service chain S4 is run on Server 2, and the third VNF in the service chain S4 is run on Server 3.
S5, 1 = {1, 2, 3} , i.e. the first VNF in the service chain S5 is run on Server 1, the second VNF in the service chain S5 is run on Server 2, and the third VNF in the service chain S5 is run on Server 3.
For the example shown in figure 11B (k=2) :
S1, 2 = {2, 2} , i.e. the first and second VNFs in the service chain S1 are run on Server 2.
S2, 2 = {2, 1} , i.e. the first VNF in the service chain S2 is run on Server 2 and the second VNF in the service chain S2 is run on Server 1.
S3, 2 = {2, 3} , i.e. the first VNF in the service chain S3 is run on Server 2 and the second VNF in the service chain S3 is run on Server 3.
S4, 2 = {2, 2, 1} , i.e. the first and second VNFs in the service chain S4 are run on Server 2, and the third VNF in the service chain S4 is run on Server 1.
S5, 2 = {2, 2, 3} , i.e. the first and second VNFs in the service chain S5 are run on Server 2, and the third VNF in the service chain S5 is run on Server 3.
β=β (n1, n2) is a communication cost function, which represents the cost for communication between  servers  1 and 2. Here, n1 and n2 represent respectively server1 and server2. We assume for the purpose of the present embodiment that the communication cost from server1 to server2 equals that from server2 to server1. However, the skilled person will recognise that this need not necessarily be the case, and it is envisaged that β can be made to be dependent on the direction of communication.
αi is the additional resource cost for instantiating VNF type i. In other words, α represents the computational cost of running a particular VNF. This is in general composed of two components, a processing cost and a memory cost, with the overall value of α being the combination of these components.
In the example shown in figure 11B, VNF1 is shared by all the service chains. In the example shown in figure 11A VNF1 is deployed on both of Server 1 and Server 3, and so the processing costs and memory costs for VNF1 in the figure 11A example are higher than in the figure 11B example. Thus, α1 for the figure 11A example will be higher than that for the figure 11B example.
xi, n ∈1, 0. A value of 1 for this parameter represents that there is a VNF type i instance on server n, whilst an entry of 0 indicates that there is not. Thus, taking the example of figure 11A:
x1, 1=1, x1, 2=0 and x1, 3=1.
x2, 1=0, x2, 2=1 and x2, 3=0.
x3, 1=0, x3, 2=0 and x3, 3=1.
Cn represents the maximum resource of server n, and this can be considered to be a cost. Different servers will in general have different capabilities and so C can in general be dependent on the particular server.
θl represents the workload of the lth VNF in service chain m, and can be considered to be a cost. The skilled person will understand that the workload in a service chain will tend to vary over time, dependent on current usage, and so for the purposes of the optimization method an estimated or representative value of workload may be used, for example a typical workload assigned to a service, or some function of the maximum workload that is expected to be assigned.
Zl represents the VNF processing delay for a VNF having index l.
In the method according to the present embodiment the optimization process seeks to find a configuration k which minimizes a cost metric represented by expression (1) below:
Figure PCTCN2016087658-appb-000005
The skilled person will recognise that the first term in equation (1) is representative of the sum of the communication costs between VNFs of the different service chains in the VNF-deployment configuration k (i.e. it is dependent on β) and the second term is representative of the sum of the computational costs of running the VNFs in these service chains (i.e. it is dependent on α) .
Each server n has particular resources Cn and if a candidate VNF-deployment configuration would result in Cn being exceeded then this candidate configuration cannot be implemented in the real world. This requirement acts as a constraint on the candidate configurations that may be selected as the “optimal” configuration. The constraint may be expressed according to relation (2) below:
Figure PCTCN2016087658-appb-000006
The method of the present embodiment takes into account different QoS levels that may be provided by service chains that implement a given network service.
A particular QoS level, QoSReq, may be specified as a requirement for a service chain used in implementing a particular network service. For example, there may be a case where a particular maximum delay time is specified for transporting video packets from a video content server to an end user in a video-on-demand service. In view of this maximum end-to-end delay time, a QoSReq representing a time delay for transporting video packets along a service chain may be specified for service chains used in implementing this video-on-demand network service.
Qm represents a target QoS level to be provided by service chain m and, thus, defines a constraint on service chain m. For example, in a case where Qm represents a maximum service chain delay, Qm may serve as a constraint that may be expressed using relation (3) below:
Figure PCTCN2016087658-appb-000007
where, in this case, the communication “cost” β represents the time delay involved in communication between VNFs of service chain m.
The skilled person will recognize that the first term in relation (3) represents the total time delay involved in communication between the VNFs in service chain m and the second term represents the total processing time required by the VNFs in service chain m.
Figure 6 illustrates a method, according to an embodiment of the invention, which defines service chains having different QoS levels for at least one network service, selects a VNF-deployment configuration, and records routing for service chains in the selected configuration as well as QoS rates associated with the service chains. An SDN controller may refer to the record of routing and QoS rates when selecting service chains for use in implementing network functions.
The method of figure 6 enables VNF deployment in network infrastructure, notably servers, to be optimized while at same time predefining the QoS of service chains that may be created by an SDN controller when the VNFs have been deployed. This method considers different service chains which could be created by SDN, with different QoS levels for a certain network service, when deploying VNFs in servers. The process flow is, as follows:
S60: Define a number T of QoS levels around the required QoS of each service (or for selected services) . For a given network service the set of defined QoS levels is [QoS1, QoS2, ...QoSReq (required) , ....., QoST] , and the relationship between the QoS levels is QoS1>QoS2>......>QoSReq>.... >QoST .
The number T may be set differently for each network service. However, in such a case it becomes necessary to identify the value of T that applies to a service, which may increase  complexity. Complexity may be reduced in a system where T is set the same for all services (or a group of services) . The value of T may be chosen as a trade-off between QoS performance, complexity of the computation algorithm and resource consumption.
S61: Select a VNF-deployment configuration for the set of M service chains taking QoS into consideration, and record the routing for each service chain in the selected configuration in association with the QoS offered by that service chain. A particular method for selecting a VNF-deployment configuration will be described below. For the time being it may be noted that selecting process takes into account plural different possible service chains for a given network service and these possible service chains may different QoS.
S62: Forward the routing information to SDN controller for different (QoS, service chain) pairs.
Steps S60 to S62 may be performed by an information processing apparatus.
S63: When VNFs have been deployed in the network infrastructure in accordance with the VNF-configuration selected in S61, the SDN controller may select routing dynamically for packets of a service based on QoS status. For example, there may be large delays for some packets on a user interface, such as higher scheduling delay on an air interference in a wireless system. In such a case the SDN controller may select a higher QoS level routing/service chain for these packets. If packet delay is perfect on the user interface, the SDN controller may select a lower QoS level routing/service chain to reduce resource consumption. The policy of the SDN controller makes adaptations of the routing to fit the end-to-end QoS target.
Figure 7 illustrates a flow diagram of an example of a process that may be used to select a VNF-deployment configuration in process S61 of the method of figure 6. In the example process of figure 7 the selected configuration is an optimized configuration identified using a genetic algorithm, comprising the following steps:
● generating an optimisation target and constraints according to the requirements of desired service chains and the performance of servers;
● combining the optimisation target with constraint conditions to obtain individual fitness expressions;
● randomly generating matrices (VNFs *Servers) formed by the positions of VNFs deployed on the servers as an initial population;
● carrying out one or more iterations based on the individual fitness expressions;
● testing whether exit conditions are fulfilled;
○ if exit conditions are not satisfied at an iteration, entering the next evolution and carrying out Crossover operation and/or Mutation operation on the population; and
○ if exit conditions are satisfied at an iteration, outputting the optimisation result.
This process can optimise the total cost (including communication and resource cost) of VNFs, taking into account the constraints, through use of the genetic algorithm. The flow of this algorithm is shown in Figure 7 and is described in greater detail below:
Step S101, obtaining individual fitness expressions
The goal of a genetic algorithm is, in general, to find within a population the individual that has the greatest fitness. However, the optimisation target of this problem is to find the VNF-deployment configuration having minimum cost as computed according to some metric, for example the cost metric (1) above. Thus, in order to apply a genetic algorithm solution in this case, the cost in equation (1) should be converted to be negative, or the reciprocal of the cost should be taken, to be treated as the “fitness” . Thus, the expression for the optimisation target given above can be expressed as either:
Figure PCTCN2016087658-appb-000008
Or
Figure PCTCN2016087658-appb-000009
Combining the changed optimisation target (equation (4) or (5) ) with the constraint conditions (equations (2) and (3) ) yields the individual fitness expression.
These individual fitness expressions can then be used to evaluate the individuals from the population and make a selection among them.
Step S103, generating an initial population
An example of a VNF deployment matrix is shown in Figure 8. The elements of this matrix each represent the position of one of the VNFs of a service chain on the servers that are available. Thus, the value of each element is either 0 or 1. If the element aij is 1, then it indicates that the VNF in the ith row is deployed in Serverj in the jth column. Conversely if the element is 0, then this means  that the VNF in the ith row is not deployed in Serverj. The skilled person will recognise that there will in general be a limitation to each matrix in that each row can have only one element equal to 1.
The 1s in a given column of the matrix represent the VNFs allocated to a given server taking into account all of the service chains. Duplicate VNFs in different service chains are allowed.
The matrix for the deployment scenario from the example of figure 11A is as follows:
1 0 0
0 1 0
0 0 1
0 1 0
0 1 0
0 0 1
0 0 1
0 1 0
0 0 1
1 0 0
0 1 0
0 0 1
and this matrix represents the information in Table 1 below
                  Table 1                                        [Figure 11A (k=1) ]
Figure PCTCN2016087658-appb-000010
The matrix for the deployment scenario from the example of figure 11B is as follows:
0 1 0
0 1 0
0 1 0
1 0 0
0 1 0
0 0 1
0 1 0
0 1 0
1 0 0
0 1 0
0 1 0
0 0 1
and this matrix represents the information in Table 2 below
                    Table 2                                    [Figure 11B (k=2) ]
Figure PCTCN2016087658-appb-000011
The skilled person will recognise that the size of the matrices in a particular problem is related to the number of servers and VNFs, as well as the number of different service chains that may be defined for implementing the network services, and that there is no particular limit to the size. Rather, a larger matrix size merely indicates that the problem has a greater number of possible solutions and so a higher complexity.
Each matrix represents one candidate solution of VNF deployment and, in terms of the genetic algorithm, one genome (individual) . The skilled person will recognise that, in the language of genetic algorithms, one genome is composed of N ‘chromosomes’a nd the length of each chromosome is, in the present embodiment, the total length of all services chains.
In the example process of figure 7, the initial population (i.e. the initial set of matrices) is composed of such matrices generated randomly. However, the skilled person will recognise that a  random generation of matrices need not be used. Thus, in alternative embodiments, the matrices are generated using techniques other than random techniques. For example, in some embodiments, partial or complete patterns of previously derived or implemented service chains can be input to some members of the initial population. Such embodiments can have an advantage in that a population that is similar to solutions that have previously been seen to be successful can be employed as the initial population, thereby ensuring that members of the initial population are close to a likely solution, and thus potentially limiting the number of iterations of the genetic algorithm that are needed.
In further alternative embodiments, certain possible matrices are excluded from selection in a population. This can, for example, be on the basis of some known problem with these possible matrices.
The size of initial population is in general related to the scale of the optimisation problem. Generally, the more complex problem needs greater population size. The size of initial population can be set to a random number or a constant value with experience, for example 64 or 128. This size is related to the scale of VNF deployment. The skilled person will recognise that there is a trade-off in that a bigger initial population size will result in a greater search space and less iterations before convergence however the calculations required will require a greater computational power. Conversely a smaller initial population size requires less computational power but is more likely to cause the algorithm to converge to a local optimised point rather than the global optimum.
Step S105, computing individual fitness expression and choosing the population
In this step the individual fitness expression from equation (4) or (5) is calculated for each member of the population present in the current generation. In the case of the first iteration, this corresponds to each member of the initial population.
Individuals that do not meet constraint conditions (equations (2) and (3) ) are discarded at this stage. For service chains representing a given network service constraint (3) may be applied using different ones of the T QoS levels that are defined for this network service so that, for example, the members of the population that remain after the constraint has been applied will have a selected number of service chains per network service (e.g. one service chain per QoS level out of the T QoS levels) . It is advantageous for the plural service chains that are present in remaining members of the population after application of constraint (3) , and which relate to the same network service, to represent different possible service chains that an SDN controller might realistically choose for implementing the service during runtime (i.e. their QoS levels should have realistic real-world values) .
Subsequently, remaining members of the population are selected for entry into the next generation on the basis of their individual fitness expressions such that the probability of being selected for individuals having a higher individual fitness value. The skilled person will recognise that there are many ways of making such a selection, for example via a “roulette wheel” selection. In a roulette wheel selection method, each individual is effectively assigned a slice of a roulette wheel  proportional in area to the individual’s particular fitness value. The wheel is then ‘spun’a number of times and individuals are selected on the basis of the result i.e. where the roulette ball ‘lands’ . The number of time that the roulette wheel is spun is equal to the desired population for the next generation. For this purpose, it is usually (but not necessarily) assumed that an individual is not permitted to be selected more than once for inclusion in a particular generation.
The skilled person will recognise that other methods of selection for subsequent generations can equally be employed, for example the selection can be merely a fraction of the previous generation based on their individual fitness (e.g. the top 50%) .
In alternative embodiments, certain possible matrices are excluded from selection the next generation. This can, for example, be on the basis of some known problem with these possible matrices.
In the present embodiment, the size of the population is maintained for each iteration. Thus, for the first computation (coming from step S103) , if some individuals are discarded because they don’t meet constraint condition (equation (2) ) , Step 103 and Step 105 will be executed repeatedly in sequence to ensure that the initial size of the population is maintained.
In alternative embodiments, the population size is allowed to vary between iterations of the algorithm. Thus, if desired, all of the individuals in the population processed during one iteration may be included in the population that is processed in the next iteration.
During the computation, and as defined by the matrix, it is possible that there are duplicate VNFs present in different service chains deployed on the same server. Such a situation will result in an additional resource cost for this VNF on this server. Two different scenarios are possible:
● One VNF present in different service chains is deployed on the same server, such as the left hand and middle examples shown in figure 3. Such a situation will result in additional workload for this VNF on this server when computing the fitness from equations (4 or 5) .
● One VNF present in different service chains is deployed in duplicate on different servers, such as the right hand example shown in figure 3. Such a situation will result in additional resource costs for this VNF on each of these servers when computing the fitness from equations (4 or 5) . 
The skilled person will recognise that due account can be made for each of these cases by appropriately amending the resource costs αi in equations (4 or 5) .
Step S107, verifying the exit condition
In the next step of the algorithm of figure 7, it is tested whether the exit condition or conditions are fulfilled. In the presently described example several options are permitted, for example:
● Exit when the evolutionary generation reaches a certain value. In other words when a certain number of iterations of the algorithm have been executed.
● Exit when the maximum fitness has no change (or changes by less than a threshold amount) during certain evolutionary generations. For example, such a condition can be fulfilled if the maximum fitness of individuals in the previous iteration was within a certain magnitude or fraction of the maximum fitness of the current generation.
The skilled person will recognise that one or more of the exit conditions can be applied, either in the form of a Boolean OR or AND function. Moreover, the choice of exit condition or conditions can be determined by the time taken to execute the algorithm. Thus, for example if a condition related to the maximum fitness had not been fulfilled after a predetermined time had elapsed, then a further exit condition e.g. related to a maximum number of iterations could additionally be applied to ensure that the algorithm stopped within a reasonable time period.
If the particular exit condition (s) is satisfied, then the algorithm jumps to next step S113 wherein the optimisation result is output and the algorithm ends. This is described in further detail below. Otherwise, the algorithm continues to execute step S109 and S111, and subsequently back to S103 to enter the next generation of the algorithm.
Step S109, crossover operation
In genetic algorithms, crossover is a genetic operator used to vary the programming of a chromosome or chromosomes from one generation to the next.
There are several possible methods that can be employed in the crossover operation. For example, in the presently described embodiment, one-point crossover is employed, as illustrated in figure 9. As shown in figure 9, the matrices of two parents are selected for the crossover function. Each matrix is cut by a line, and the four resulting parts are swapped between the two parent matrices to rebuild two children.
Thus, in the example of figure 9 a first parent formed is cut into two parts, a1 and a2. Similarly, the second parent is cut into two parts b1 and b2. Subsequently, the children matrices are generated such that one comprises a1 and b2 while the other comprises a2 and b1. The skilled person will recognise that in performing this operation it is in generally necessary to form child matrices in the same manner as the parent matrices from which they are formed. Therefore, as illustrated in figure 9 since a1 forms a top half of a first parent matrix, it must also form a top half of a child matrix. The skilled person will also recognise that it is not necessary to limit matrix division into halves. Rather, the matrices can be divided into unequally-sized fractions. However, to allow recombination, the division must be performed consistently between the two parent matrices.
In the example of figure 9, the position of the cutting line is determined at random. This kind of crossover operation can help to ensure that the children comply with the limitation to the matrix (i.e. that one row has one element equal to 1) .
In the example of figure 9, the probability of a parent being selected to be used in the crossover process is set to be a function of the individual fitness value of the parent. Thus, fitter individuals from one generation will contribute proportionately more to the next generation than will individuals of lower fitness. The skilled person will recognise that there many fitness proportionate selection schemes that can be used for such a selection. However, in the present embodiment, the “roulette wheel” selection is employed in the same manner as for the selection of individuals for inclusion in a subsequent generation.
In further examples, the same part of a parent matrix can be used in more than one child matrix and/or child matrices can be formed from more than two parent matrices.
The skilled person will recognise that two-point (or greater than two-point) crossover methods can also be employed.
Step S111, mutation operation
Mutation is a genetic operator used to maintain genetic diversity from one generation of a population of genetic algorithm chromosomes to the next.
The method of mutation operation is illustrated in figure 10. As illustrated in figure 10, after application of the mutation operation, the position of the 1 in one or more rows will be changed. As a result, the limitation to the matrix that one row has one element equal to 1 will be still be complied with.
Thus, as illustrated in figure 10, the zero and one in the second row at  elements  2 and 3 respectively are swapped such that there is a 1 at position 2 and a 0 at position 3.
The skilled person will recognise that the probability of mutating an individual can be set to a random number or a constant fraction of the population. In the presently described embodiment, a constant fraction is employed and this is typically set in the range 0.05-0.07 of the population of a generation. The skilled person will recognise that the fraction selected will tend to impact on the performance of the algorithm such that, if the mutation rate is too large the genetic algorithm may not converge in a reasonable time period. Conversely, if the probability of mutation is too small, then the genetic algorithm convergence may tend to fall into local (rather than global) optimisation.
In further embodiments, the mutation probability is set to a random fraction of the population. In still further embodiments, either crossover (S109) or mutation (S111) are employed, rather than both as per the currently described embodiment.
Step S113, outputting the optimisation result
In step S113, the individual (i.e. one VNF deployment matrix) having the highest fitness found over all iterations of the algorithm is output as the final result.
In further embodiments, if more than one individual has the highest fitness, then either all individuals can be output for manual selection of a single individual, or further selection can be performed.
The present invention provides a processing apparatus (for example, computer apparatus comprising a processor) to implement a method as described above to determine a deployment of virtual network functions in a network. The processing apparatus (or processor) may be configured to execute instructions of a computer program to implement the method. The processing apparatus may form part of the network, for example it may constituted by a server in the network, but this is not essential.
Embodiments can be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which -when loaded in an information processing system -is able to carry out these methods. Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language. Such a computer program can be stored on a computer-or machine-readable medium allowing data, instructions, messages or message packets, and other machine-readable information to be read from the medium. The computer-or machine-readable medium may include non-volatile memory, such as ROM, Flash memory, Disk drive memory, CD-ROM, and other permanent storage. Additionally, a computer-or machine-readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits. Furthermore, the computer-or machine readable-medium may comprise computer-or machine-readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network, that allow a device to read such computer-or machine-readable information.
Expressions such as "comprise" , "include" , "incorporate" , "contain" , "is" and "have" are to be construed in a non-exclusive manner when interpreting the description and its associated claims, namely construed to allow for other items or components which are not explicitly defined also to be present. Reference to the singular is also to be construed in be a reference to the plural and vice versa.
While there has been illustrated and described what are presently considered to be the preferred embodiments of the present invention, it will be understood by those skilled in the art that various other modifications may be made, and equivalents may be substituted, without departing from the true scope of the present invention. Additionally, many modifications may be made to adapt a particular situation to the teachings of the present invention without departing from the central inventive concept described herein. Furthermore, an embodiment of the present invention may not include all of the features described above. Therefore, it is intended that the present invention not be limited to the particular embodiments disclosed, but that the invention include all embodiments falling within the scope of the invention as broadly defined above.
A person skilled in the art will readily appreciate that various parameters disclosed in the description may be modified and that various embodiments disclosed and/or claimed may be combined without departing from the scope of the invention.

Claims (15)

  1. A method of determining a deployment of virtual network functions, VNFs, to be instantiated on infrastructure equipment of a communications network, the communications network being configured to implement a set of one or more network services, implementation of a network service using a service chain comprising one or more of the VNFs, and the communications network comprising a software defined networking (SDN) controller to control, for at least one network service of the set, which of plural alternative service chains is used to implement the network service, the method comprising:
    generating a group of candidate VNF-deployment configurations, each of said candidate configurations defining an allocation of VNFs to infrastructure equipment to enable implementation of a set of service chains which could be specified by the SDN controller for the set of network services, the set of service chains including said plural alternative service chains;
    evaluating the fitness of each candidate VNF-deployment configuration in said group, using a fitness function that quantifies a fitness of a candidate VNF-deployment configuration dependent on at least one of the computational and communication resources used by the configuration; and
    selecting a candidate VNF-deployment configuration on the basis of its evaluated fitness.
  2. A method according to claim 1, and comprising:
    determining quality of service (QoS) levels provided by respective service chains in the selected VNF-deployment configuration, and routing for the respective service chains; and
    outputting the determined QoS level and routing information for supply to the SDN controller.
  3. A method according to claim 1 or 2, and comprising, after evaluating the fitness of the candidate VNF-configurations in said group, determining whether an exit condition is satisfied and, if the exit condition is not satisfied:
    applying a genetic algorithm to generate a second population of candidate VNF-deployment configurations from a first population selected in said group of candidate VNF-deployment configurations,
    then repeating the evaluation of the fitness of the candidate VNF-deployment configurations and the determining of whether the exit condition is satisfied.
    wherein the exit condition comprises one or more of:
    a measure of the number of iterations of the genetic algorithm that have been completed;
    a measure of the change in the maximum fitness measured for members of populations in different iterations of the genetic algorithm; or
    a measure of the absolute maximum change of the maximum fitness measured for members of populations in different iterations of the genetic algorithm.
  4. A method according to claim 3, wherein the second population comprises members of the first population that are altered by at least one of a cross-over function and a mutation function.
  5. A method according to any preceding claim, wherein the VNFs are to be instantiated using a plurality of servers of the communications network and the possible configurations are constrained by the maximum computational resource of each of the plurality of servers, such that a configuration is excluded from the set of possible configurations if a maximum resource of any of the plurality of servers is exceeded by that configuration.
  6. A method according to any preceding claim, wherein the computational resources depend on computational costs related to the number and type of VNFs that are configured to run on respective servers in the network when the VNFs are deployed on servers in accordance with the candidate VNF-deployment configuration.
  7. A method according to claim 6, wherein if a configuration employs a plurality of instances of a particular VNF in different service chains on a particular server, then the computing cost of the instances in the fitness calculation are set to be equal to those of a single instance of the VNF.
  8. A method according to any of claims 6 or 7, wherein the communication resources depend on the communication costs associated with communications between servers arising as a result of the configuration.
  9. A method according to any preceding claim, wherein the fitness function takes the form of:
    Figure PCTCN2016087658-appb-100001
    or
    Figure PCTCN2016087658-appb-100002
    where:
    I= the number of each VNF type, indexed by i;
    M= the number of VNF service chains, indexed by m;
    Lm= the number of VNFs in a service chain m, indexed by l;
    N= a number of servers in a network infrastructure layer, indexed by n;
    for a service chain m in a configuration k, Sm, k represents the positions of the VNFs in the service chain, where: Sm, k= {sk 1, sk 2, …, sk Lm} s∈ {1, ….., N} ;
    β2=β2 (n1, n2) is a communication cost function, which represents the cost for communication between servers 1 and 2;
    αi is the additional resource cost for VNF type i; and
    xi, n ∈1, 0, wherein an entry of 1 represents that there is a VNF type i instance on server n, whilst an entry of 0 indicates that there is not.
  10. A method according to claim 9 when dependent from claim 5, wherein the possible configurations are constrained by a function of the form:
    Figure PCTCN2016087658-appb-100003
    where:
    Cn is the maximum resource of server n; and
    θl is the workload of the lth VNF in service chain m.
  11. A method according to any preceding claim, wherein each configuration is represented by a matrix such that:
    a row exists in each matrix corresponding to each VNF deployed in each service chain to be implemented by the configuration;
    a column exists for each of a plurality of servers that is available for use in implementing the configuration;
    each element in the matrix is a binary indicator indicating either the presence or absence of a particular VNF on a particular server; and
    each row in the matrix has one element indicating such a presence.
  12. A method according to claim 11 when dependent from claim 4, wherein, if a mutation function is applied to a matrix that describes a configuration, then the mutation function is such that each row in the matrix retains a single element indicating a presence of the particular VNF related to that row.
  13. A processing apparatus for determining a deployment of virtual network functions, VNFs, to be instantiated on infrastructure equipment of a communications network, the communications network being configured to implement a set of one or more network services, implementation of a network service using a service chain comprising one or more of the VNFs, and the communications network comprising a software defined networking (SDN) controller to control, for at least one  network service of the set, which of plural alternative service chains is used to implement the network service, the processing apparatus comprising:
    means for generating a group of candidate VNF-deployment configurations, each of said candidate configurations defining an allocation of VNFs to infrastructure equipment to enable implementation of a set of service chains which could be specified by the SDN controller for the set of network services, the set of service chains including said plural alternative service chains;
    means for evaluating the fitness of each candidate VNF-deployment configuration in said group, using a fitness function that quantifies a fitness of a candidate VNF-deployment configuration dependent on at least one of the computational and communication resources used by the configuration; and
    means for selecting a candidate VNF-deployment configuration on the basis of its evaluated fitness.
  14. A computer program product comprising computer readable instructions which, when run on a computer system, cause the computer system to perform the method of any of claim 1 to 12.
  15. A computer readable medium comprising the computer program product according to claim 14.
PCT/CN2016/087658 2016-06-29 2016-06-29 Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking WO2018000240A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/087658 WO2018000240A1 (en) 2016-06-29 2016-06-29 Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/087658 WO2018000240A1 (en) 2016-06-29 2016-06-29 Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking

Publications (1)

Publication Number Publication Date
WO2018000240A1 true WO2018000240A1 (en) 2018-01-04

Family

ID=60785816

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/087658 WO2018000240A1 (en) 2016-06-29 2016-06-29 Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking

Country Status (1)

Country Link
WO (1) WO2018000240A1 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111093203A (en) * 2019-12-30 2020-05-01 重庆邮电大学 Service function chain low-cost intelligent deployment method based on environment perception
CN111324538A (en) * 2020-02-20 2020-06-23 上海赛可出行科技服务有限公司 Micro-service parallel test environment management method based on dynamic routing
CN111770070A (en) * 2020-06-22 2020-10-13 中国电子科技集团公司第五十四研究所 SDN-based security service chain aggregation deployment method
KR102165865B1 (en) * 2019-07-22 2020-10-14 성균관대학교산학협력단 Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network
US20200329383A1 (en) * 2019-03-04 2020-10-15 British Telecommunications Public Limited Company Software defined network optimization
CN112199153A (en) * 2020-09-25 2021-01-08 国网河北省电力有限公司信息通信分公司 Virtual network function VNF instance deployment method and device
WO2021057378A1 (en) * 2019-09-29 2021-04-01 华为技术有限公司 Vnf instantiation method, nfvo, vim, vnfm and system
CN112737854A (en) * 2020-12-30 2021-04-30 国网河南省电力公司信息通信公司 Service chain migration method and device based on energy consumption and service quality
CN113348651A (en) * 2019-01-24 2021-09-03 威睿公司 Dynamic inter-cloud placement of sliced virtual network functions
WO2021197588A1 (en) * 2020-03-31 2021-10-07 Telefonaktiebolaget Lm Ericsson (Publ) Orchestration of virtualization technology and application implementation
CN114124818A (en) * 2021-11-11 2022-03-01 广东工业大学 Newly-added function node deployment optimization method for multicast transmission in SDN network
US11296939B2 (en) 2018-07-17 2022-04-05 At&T Intellectual Property I, L.P. Network reconfiguration with customer premises-based application hosting
US11405281B2 (en) 2018-03-25 2022-08-02 British Telecommunications Public Limited Company Dynamic network adaptation
CN115001985A (en) * 2021-02-23 2022-09-02 中国电信股份有限公司 Multi-service-oriented high-availability deployment method for virtual network function
CN115174393A (en) * 2022-06-27 2022-10-11 福州大学 Dynamic adjustment method of service function chain based on in-band network telemetry
US11588733B2 (en) 2019-05-14 2023-02-21 Vmware, Inc. Slice-based routing
US11595315B2 (en) 2019-05-14 2023-02-28 Vmware, Inc. Quality of service in virtual service networks
CN116991545A (en) * 2023-09-28 2023-11-03 中航金网(北京)电子商务有限公司 Virtual machine deployment position determining method and device
US11902080B2 (en) 2019-05-14 2024-02-13 Vmware, Inc. Congestion avoidance in a slice-based network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014120145A1 (en) * 2013-01-30 2014-08-07 Hewlett-Packard Development Company, L.P. Controlling a topology of a network
CN104518993A (en) * 2014-12-29 2015-04-15 华为技术有限公司 Allocation method, device and system for communication paths of cloud network
EP2911347A1 (en) * 2014-02-24 2015-08-26 Hewlett-Packard Development Company, L.P. Providing policy information
US20160019186A1 (en) * 2014-07-16 2016-01-21 International Business Machines Corporation Energy and effort efficient reading sessions
WO2016026129A1 (en) * 2014-08-22 2016-02-25 Nokia Technologies Oy A security and trust framework for virtualized networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014120145A1 (en) * 2013-01-30 2014-08-07 Hewlett-Packard Development Company, L.P. Controlling a topology of a network
EP2911347A1 (en) * 2014-02-24 2015-08-26 Hewlett-Packard Development Company, L.P. Providing policy information
US20160019186A1 (en) * 2014-07-16 2016-01-21 International Business Machines Corporation Energy and effort efficient reading sessions
WO2016026129A1 (en) * 2014-08-22 2016-02-25 Nokia Technologies Oy A security and trust framework for virtualized networks
CN104518993A (en) * 2014-12-29 2015-04-15 华为技术有限公司 Allocation method, device and system for communication paths of cloud network

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405281B2 (en) 2018-03-25 2022-08-02 British Telecommunications Public Limited Company Dynamic network adaptation
US11296939B2 (en) 2018-07-17 2022-04-05 At&T Intellectual Property I, L.P. Network reconfiguration with customer premises-based application hosting
CN113348651B (en) * 2019-01-24 2023-06-09 威睿公司 Dynamic inter-cloud placement of sliced virtual network functions
CN113348651A (en) * 2019-01-24 2021-09-03 威睿公司 Dynamic inter-cloud placement of sliced virtual network functions
GB2583827B (en) * 2019-03-04 2021-07-28 British Telecomm Software defined network optimisation
GB2583827A (en) * 2019-03-04 2020-11-11 British Telecomm Software defined network optimisation
US20200329383A1 (en) * 2019-03-04 2020-10-15 British Telecommunications Public Limited Company Software defined network optimization
US11595315B2 (en) 2019-05-14 2023-02-28 Vmware, Inc. Quality of service in virtual service networks
US11588733B2 (en) 2019-05-14 2023-02-21 Vmware, Inc. Slice-based routing
US11902080B2 (en) 2019-05-14 2024-02-13 Vmware, Inc. Congestion avoidance in a slice-based network
KR102165865B1 (en) * 2019-07-22 2020-10-14 성균관대학교산학협력단 Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network
WO2021057378A1 (en) * 2019-09-29 2021-04-01 华为技术有限公司 Vnf instantiation method, nfvo, vim, vnfm and system
US11871280B2 (en) 2019-09-29 2024-01-09 Huawei Technologies Co., Ltd. VNF instantiation method, NFVO, VIM, VNFM, and system
CN111093203B (en) * 2019-12-30 2022-04-29 重庆邮电大学 Service function chain low-cost intelligent deployment method based on environment perception
CN111093203A (en) * 2019-12-30 2020-05-01 重庆邮电大学 Service function chain low-cost intelligent deployment method based on environment perception
CN111324538A (en) * 2020-02-20 2020-06-23 上海赛可出行科技服务有限公司 Micro-service parallel test environment management method based on dynamic routing
CN111324538B (en) * 2020-02-20 2024-03-08 上海赛可出行科技服务有限公司 Dynamic routing-based micro-service parallel test environment management method
WO2021197588A1 (en) * 2020-03-31 2021-10-07 Telefonaktiebolaget Lm Ericsson (Publ) Orchestration of virtualization technology and application implementation
CN111770070A (en) * 2020-06-22 2020-10-13 中国电子科技集团公司第五十四研究所 SDN-based security service chain aggregation deployment method
CN112199153A (en) * 2020-09-25 2021-01-08 国网河北省电力有限公司信息通信分公司 Virtual network function VNF instance deployment method and device
CN112737854A (en) * 2020-12-30 2021-04-30 国网河南省电力公司信息通信公司 Service chain migration method and device based on energy consumption and service quality
CN115001985A (en) * 2021-02-23 2022-09-02 中国电信股份有限公司 Multi-service-oriented high-availability deployment method for virtual network function
CN115001985B (en) * 2021-02-23 2024-04-09 中国电信股份有限公司 Multi-service-oriented virtual network function high-availability deployment method
CN114124818A (en) * 2021-11-11 2022-03-01 广东工业大学 Newly-added function node deployment optimization method for multicast transmission in SDN network
CN114124818B (en) * 2021-11-11 2023-07-04 广东工业大学 Newly-added functional node deployment optimization method for multicast transmission in SDN network
CN115174393A (en) * 2022-06-27 2022-10-11 福州大学 Dynamic adjustment method of service function chain based on in-band network telemetry
CN115174393B (en) * 2022-06-27 2023-09-22 福州大学 Service function chain dynamic adjustment method based on in-band network telemetry
CN116991545B (en) * 2023-09-28 2024-02-09 中航国际金网(北京)科技有限公司 Virtual machine deployment position determining method and device
CN116991545A (en) * 2023-09-28 2023-11-03 中航金网(北京)电子商务有限公司 Virtual machine deployment position determining method and device

Similar Documents

Publication Publication Date Title
WO2018000240A1 (en) Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking
Xiao et al. NFVdeep: Adaptive online service function chain deployment with deep reinforcement learning
Liu et al. On dynamic service function chain deployment and readjustment
Ma et al. Traffic aware placement of interdependent NFV middleboxes
Agarwal et al. Joint VNF placement and CPU allocation in 5G
Rankothge et al. Towards making network function virtualization a cloud computing service
Fischer et al. ALEVIN-a framework to develop, compare, and analyze virtual network embedding algorithms
US10887172B2 (en) Network function virtualization
US9740534B2 (en) System for controlling resources, control pattern generation apparatus, control apparatus, method for controlling resources and program
Kar et al. The budgeted maximum coverage problem in partially deployed software defined networks
Shirmarz et al. An adaptive greedy flow routing algorithm for performance improvement in software‐defined network
KR101823346B1 (en) Service function chaining system and the method for thereof
Fajjari et al. Adaptive-VNE: A flexible resource allocation for virtual network embedding algorithm
Ibrahim et al. Heuristic resource allocation algorithm for controller placement in multi-control 5G based on SDN/NFV architecture
Buyakar et al. Resource allocation with admission control for GBR and delay QoS in 5G network slices
WO2017107127A1 (en) Method and system for optimisation of virtual network functions under network function virtualisation environment
Shang et al. Network congestion-aware online service function chain placement and load balancing
Tomovic et al. Toward a scalable, robust, and QoS-aware virtual-link provisioning in SDN-based ISP networks
CN116232982A (en) Route calculation method and related equipment
Miyazawa et al. Autonomic resource arbitration and service-continuable network function migration along service function chains
Aguilar-Fuster et al. Online virtual network embedding based on virtual links’ rate requirements
Mondal et al. FlowMan: QoS-aware dynamic data flow management in software-defined networks
Shang et al. Online service function chain placement for cost-effectiveness and network congestion control
El-Mekkawi et al. Evaluating the impact of delay constraints in network services for intelligent network slicing based on SKM model
Feng et al. An aggressive migration strategy for service function chaining in the core cloud

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16906641

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16906641

Country of ref document: EP

Kind code of ref document: A1