WO2017107127A1 - Method and system for optimisation of virtual network functions under network function virtualisation environment - Google Patents

Method and system for optimisation of virtual network functions under network function virtualisation environment Download PDF

Info

Publication number
WO2017107127A1
WO2017107127A1 PCT/CN2015/098660 CN2015098660W WO2017107127A1 WO 2017107127 A1 WO2017107127 A1 WO 2017107127A1 CN 2015098660 W CN2015098660 W CN 2015098660W WO 2017107127 A1 WO2017107127 A1 WO 2017107127A1
Authority
WO
WIPO (PCT)
Prior art keywords
fitness
function
vnf
population
configuration
Prior art date
Application number
PCT/CN2015/098660
Other languages
French (fr)
Inventor
Tao Zheng
Richard Wang
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/CN2015/098660 priority Critical patent/WO2017107127A1/en
Publication of WO2017107127A1 publication Critical patent/WO2017107127A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Definitions

  • the present invention relates to the implementation of computer network functionality and, in particular, the implementation of such functionality in software. More particularly still, the invention relates to the implementation of virtual Network Functions (VNFs) under a Network Functions Virtualisation (NVF) environment, and also to the optimisation of such implementations.
  • VNFs virtual Network Functions
  • NVF Network Functions Virtualisation
  • NFV is a means for visualising and implementing software network architectures.
  • an end-to-end network service can be defined as a forwarding graph of network functions and end points/terminals.
  • FIG. 1 illustrates an example of a network architecture implementing mobile telecommunications in which NFV is employed to visualise the dependency between network functions and the associated hardware.
  • 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.
  • LTE virtual bases stations vBS LTE
  • vBS 3G 3G virtual base stations
  • vBS 2G 2G virtual base stations
  • WiMax WiMax virtual base stations
  • CDN content delivery network
  • the CDN can communicate with the BS 1 to provide communications with, for example, home and enterprise networks 21, fixed axis networks 23 (for communication with homes 27 and offices 25) and with mobile core networks 19 and mobile IP networking systems 29.
  • each of these systems 21, 23, 29, 19 can also be provided via software implementations running on hardware 13.
  • 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.
  • VDSL Very-high-bit-rate digital subscriber line
  • ITU-T/G G standards
  • RGW residential gateways
  • NAT Network address translation
  • set-top box functionality 41 can be provided via software implementations running on hardware 13.
  • CSCF Call Session Control Function
  • SGW signalling gateway
  • MME mobility management entity
  • DNS domain name server
  • DHCP Dynamic Host Configuration Protocol
  • firewalls 53 can be provided via software implementations running on hardware 13.
  • 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.
  • PGW packet data network gateways
  • 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) .
  • 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.
  • VNF forwarding graph selected from 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.
  • FIG. 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 via infrastructure an network 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.
  • VNF scheduling/deployment and relevant algorithms are important considerations for NFV.
  • optimised solution would have the lowest combination of communication/computation costs as defined by some metric (s) .
  • the method provides a means by which a configuration of VNFs, that is in some sense optimised with respect to its resource usage, can be derived.
  • 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.
  • the method can take into account the computation costs associated with implementing each VNF when deriving the optimal solution.
  • the communication resources depend on the communication costs associated with communications between the plurality of servers arising as a result of the configuration.
  • the method can take into account the costs associated with deploying VNFs across a plurality of communicating servers when deriving the optimal solution.
  • 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.
  • the method can easily eliminate configurations from consideration if the available computing resources could not support such configurations.
  • 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.
  • 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 genetic algorithm is applied iteratively and terminated when an exit condition is satisfied, wherein the exit condition comprises one or more of:
  • the genetic algorithm can be ended at a suitable point to avoid consuming processing time when little benefit would arise from the processing.
  • 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;
  • Lm the number of VNF in a service chains, indexed by l;
  • N the number of servers in an infrastructure layer, indexed by n;
  • ⁇ i is the additional resource cost for VNF type i.
  • the possible configurations are constrained by a function of the form:
  • C n is the maximum resource of server n, represented by cost
  • ⁇ 1 is the workload of the 1 th VNF in service chain m, represented by cost.
  • each configuration is represented by a matrix such that:
  • a column exists for each server that is available for use in implementing the configuration.
  • a simple matrix description of a configuration can be used. Such a description can easily be applied to a genetic algorithm using known methods.
  • 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.
  • the binary indicators can be 1 and 0 and can easily be implemented using computing means.
  • 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.
  • 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.
  • a processing apparatus for determining a suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the processing apparatus comprising:
  • a computer program product comprising computer readable instructions which, when implemented on a processor perform all of the steps of the method of the first aspect, and a computer readable medium comprising such a computer program.
  • Figure 1 illustrates known an 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
  • FIG. 3 illustrates examples of service chains implemented using VNFs
  • Figure 4 illustrates a flow chart of a method according to an embodiment
  • Figure 5 illustrates an example of a matrix representation of a configuration of VNFs
  • Figure 6 illustrates an example of applying a cross-over function to matrices
  • Figure 7 illustrates an example of applying a mutation function to a matrix.
  • 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 illustrate only some possible example of how such service chains can be implemented.
  • 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.
  • all of the service chains of figure 1 could be implemented in such a manner.
  • VNFs 301, 303, 305 are employed when implementing two different service chains, these are VNF1 301, VNF2 303 and VNF3 305.
  • the skilled person will recognise that the functionality of these VNFs is not of importance for the example.
  • the VNFs are illustrated as being implemented on two different physical servers 311, 313. Again, 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 example in figure 3, on the left of the figure illustrates one possible implementation of two service chains.
  • VNF1 301 and VNF3 305 are running on a first server 311, while VNF2 is running on a second server 313.
  • a first service chain 307 entails a traversal order from VNF1 301 to VNF2 303, while a second service chain 309 entails a traversal order from VNF1 301 to VNF2 303 and then on to VNF3 305. Since VNF1 301 is located on server1 311, and VNF2 303 is located on server2 313, service chainl 307 entails communications via a network (not illustrated) between these servers, termed here as a communication “hop” .
  • service chain2 309 entails two such communication hops, one from VNF1 301 on server1 311 to VNF2 on server2 313, and a second from VNF2 303 on server2 313 to VNF3 305 on server1 311.
  • the second example, the middle diagram in figure 3 illustrates a different possible implementation of the same two service chains 307, 309.
  • VNF1 301 and VNF2 are both running on server1 311, while VNF3 is running on server2 313.
  • VNF1 301 and VNF2 303 are both on the same server, there is no communications hop required in service chainl 307 since all communications are within the same physical server.
  • communications between VNF1 301 and VNF2 303 require no communications hop while communications on to VNF3 305 do require such a hop.
  • this second example implementation of the two service chains will have different communication ‘costs’ in comparison to the first implementation since the first example requires 3 communications hops in total whereas the second requires only one.
  • VNF1 301 and VNF2 are again both running on server1 311. However, on server2 313 in addition to VNF3 305, second instances of VNF1 315 and VNF2 317 are also running. Thus, as with the second example, service chain 1 307 requires no communication hops. In addition, service chain2 309 also requires no communication hops. Thus, in this third example implementation, very low communication costs are incurred.
  • the overall ‘cost’ of implementing the service chains 307, 309 in each implementation will be the combination of the communications costs and the computing costs required for the particular implementation.
  • Lm the number of VNF in a service chains, indexed by 1.
  • S m represents the position (i.e. on which server) of each VNF in the service chain.
  • K resource allocation patterns indexed by k, where:
  • 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 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.
  • VNF1 is shared by service chain 1 and service chain 2.
  • VNF1 and VNF2 are shared by service chain 2 and service 2.
  • no VNFs are shared by service chains.
  • VNF1 and VNF2 are each deployed on both servers, and so the processing costs and memory costs for VNF1 or VNF2 in the right hand example are higher than it in the other examples.
  • ⁇ i for the right hand example will be higher than that for the other two examples.
  • C n is the maximum resource of server n, represented by cost. Different servers will in general have different capabilities and so C can in general be dependent on the particular server.
  • ⁇ 1 is the workload of the 1 th VNF in service chain m, represented by 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, this is workload is actually either a typical workload assigned to a service, or some function of the maximum workload that is assigned.
  • equation (1) is representative of the communication costs associated with an implementation (i.e. is dependent on ⁇ ) and the second term is representative of the ‘virtual machine” cost (i.e. is dependent on ⁇ ) .
  • the optimisation target is constrained by the following constraint function:
  • the presently described embodiment of the invention thus relates to method of determining a solution that provides a minimisation of the optimisation target expression when constrained by the constraint function. This solution is then used to describe VNF deployment in servers for the service (s) in question.
  • the described embodiment employs a genetic algorithm, which comprises the following steps:
  • VNFs *Servers ⁇ randomly generating matrixes
  • the invention optimises the total cost including communication and resource cost of VNFs with the restriction conditions through the genetic algorithm.
  • Step S101 obtaining individual fitness expressions
  • the individual fitness expression in equation (1) should be converted to be negative, or the reciprocal of the optimisation target.
  • the expression for the optimisation target given above can be expressed as either:
  • Step S103 generating an initial population
  • FIG. 5 An example of a VNF deployment matrix is shown in Figure 5.
  • 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 a ij is 1, then it indicates that the VNF in the i th row is deployed in Server j . Conversely if the element is 0, then this means that the VNF in the i th row is not deployed in Server j .
  • the skilled person will recognise that there will in general be a limitation to each matrix in that one row has one element equal to 1.
  • the columns of the matrix represent the VNFs in all of the service chains.
  • duplicate VNFs in different service chains are allowed, as is illustrated in the examples shown in figure 3.
  • the size of the matrices in a particular problem is determined by the number of servers and VNFs, 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) .
  • 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 initial population i.e. the initial set of matrices
  • 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.
  • 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
  • the individual fitness expression from equation (3) or (4) 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.
  • 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 selection can be merely a fraction of the previous generation based on their individual fitness (e.g. the top 50%) .
  • 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.
  • the size of the population is maintained for each iteration.
  • Step S 103 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.
  • the population size is allowed to vary between iterations of the algorithm.
  • Step S107 verifying the exit condition
  • exit conditions can be applied, either in the form of a Boolean OR or AND function.
  • choice of exit condition or conditions can be determined by the time taken to execute the algorithm.
  • 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.
  • step S1 13 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 S 103 to enter the next generation of the algorithm.
  • crossover is a genetic operator used to vary the programming of a chromosome or chromosomes from one generation to the next.
  • one-point crossover is employed, as illustrated in figure 6.
  • 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.
  • a first parent formed is cut into two parts, a 1 and a 2 .
  • the second parent is cut into two parts b 1 and b 2 .
  • the children matrices are generated such that one comprises a 1 and b 2 while the other comprises a 2 and b 1 .
  • 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 6 since a 1 forms a top half of a first parent matrix, it must also form a top half of a child matrix.
  • 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) .
  • 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.
  • 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.
  • the “roulette wheel” selection is employed in the same manner as for the selection of individuals for inclusion in a subsequent generation.
  • 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.
  • Mutation is a genetic operator used to maintain genetic diversity from one generation of a population of genetic algorithm chromosomes to the next.
  • the probability of mutating an individual can be set to a random number or a constant fraction of the population.
  • a constant fraction is employed and this is typically set in the range 0.05-0.07 of the population of a generation.
  • 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.
  • the mutation probability is set to a random fraction of the population.
  • either crossover (S109) or mutation (S111) are employed, rather than both as per the currently described embodiment.
  • Step S113 outputting the optimisation result
  • 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.
  • 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.
  • a computer or machine readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)

Abstract

A method of determining a suitable configuration of virtual network functions, VNFs (301, 303, 305), for operation on a plurality of servers (311,313), the suitable configuration being for the provision of a service chain that provides a computer networking function, the method comprising: determining a fitness function for determining a fitness of different configurations of the VNFs (301, 303, 305), wherein the fitness function depends on at least one of the computational and communication resources used by a configuration; generating a set of possible configurations of the VNFs (301, 303, 305) for implementing the desired networking function; determining the fitness of each of the set of generated possible configurations using the fitness function; selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population; generating a second population from the first population by applying a genetic algorithm; and outputting a member of the second population as the suitable configuration on the basis of its fitness function.

Description

Method and system for the optimisation of virtual network functions under a Network Function Virtualisation environment Background Technical field
The present invention relates to the implementation of computer network functionality and, in particular, the implementation of such functionality in software. More particularly still, the invention relates to the implementation of virtual Network Functions (VNFs) under a Network Functions Virtualisation (NVF) environment, and also to the optimisation of such implementations.
Related art
Computer networking has traditionally been implemented using specialised hardware to provide the required functionality. To improve the pace of improvement in networking technology, software implementations of networking equipment have been developed. NFV is a means for visualising and implementing software network architectures. In NFV, an end-to-end network service can be defined as a forwarding graph of network functions and end points/terminals.
Figure 1 illustrates an example of a network architecture implementing mobile telecommunications in which NFV is employed to visualise the dependency between network functions and the 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 axis 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 from 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 via infrastructure an network 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.
How to schedule and or deploy VNFs among the various hardware infrastructure (servers, storage and network, 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 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 solution. The optimised solution would have the lowest combination of communication/computation costs as defined by some metric (s) .
Document “An Optimisation Case in Support of Next Generation NFV Deployment” , presented at HotCloud ′15,
https://www.usenix.org/system/files/conference/hotcloud 15/hotcloud 15-abbasi.pdf discloses methods of such optimisation. 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. 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, there is provided a method of determining a suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the method comprising:
determining a fitness function for determining a fitness of different configurations of the VNFs, wherein the fitness function depends on at least one of the computational and communication resources used by a configuration;
generating a set of possible configurations of the VNFs for implementing the desired networking function;
determining the fitness of each of the set of generated possible configurations using the fitness function;
selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population;
generating a second population from the first population by applying a genetic algorithm; and
outputting a member of the second population as the suitable configuration on the basis of its fitness function.
Thus, advantageously, the method provides a means by which a configuration of VNFs, that is in some sense optimised with respect to its resource usage, can be derived.
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 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 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 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 genetic algorithm is applied iteratively and terminated when an 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. 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 fitness function takes the form of:
Figure PCTCN2015098660-appb-000001
or
Figure PCTCN2015098660-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 VNF in a service chains, indexed by l;
N=the number of servers in an infrastructure layer, indexed by n;
For a service chain m, Sm represents the position of each VNF in the service chain, for this, there are K resource allocation patterns, indexed by k, where: Sm, k= {sk 1, sk 2, ..., sk Lm} s∈{1,....., N} ;
β=β (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 PCTCN2015098660-appb-000003
where:
Cn is the maximum resource of server n, represented by cost; and
θ1 is the workload of the 1th VNF in service chain m, represented by cost. 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 suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the processing apparatus comprising:
means for determining a fitness function for determining a fitness of different configurations of the VNFs, wherein the fitness function depends on at least one of the computational and communication resources used by a configuration;
means for generating a set of possible configurations of the VNFs for implementing the desired networking function;
means for determining the fitness of each of the set of generated possible configurations using the fitness function;
means for selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population;
means for generating a second population from the first population by applying a genetic algorithm; and
means for outputting a member of the second population as the suitable configuration on the basis of its fitness function.
In further aspects there is provided a computer program product comprising computer readable instructions which, when implemented on 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 known an 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 service chains implemented using VNFs;
Figure 4 illustrates a flow chart of a method according to an embodiment;
Figure 5 illustrates an example of a matrix representation of a configuration of VNFs;
Figure 6 illustrates an example of applying a cross-over function to matrices; and
Figure 7 illustrates an example of applying a mutation function to a matrix.
Detailed Description
There now follows a detailed description of an embodiment of the invention. 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 illustrate only some possible example of how such 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 and as described above, all of the service chains of figure 1 could be implemented in such a manner.
Referring to the examples in figure 3, three  different VNFs  301, 303, 305 are employed when implementing two different service chains, these are VNF1 301, VNF2 303 and VNF3 305. The skilled person will recognise that the functionality of these VNFs is not of importance for the example. The VNFs are illustrated as being implemented on two different  physical servers  311, 313. Again, 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 example in figure 3, on the left of the figure illustrates one possible implementation of two service chains. In this example, VNF1 301 and VNF3 305 are running on a first server 311, while VNF2 is running on a second server 313. A first service chain 307 entails a traversal order from VNF1 301 to VNF2 303, while a second service chain 309 entails a traversal order from VNF1 301 to VNF2 303 and then on to VNF3 305. Since VNF1 301 is located on server1 311, and VNF2 303 is located on server2 313, service chainl 307 entails communications via a network (not illustrated) between these servers, termed here as a communication “hop” . Similarly, service chain2 309 entails two such communication hops, one from VNF1 301 on server1 311 to VNF2 on server2 313, and a second from VNF2 303 on server2 313 to VNF3 305 on server1 311.
The second example, the middle diagram in figure 3 illustrates a different possible implementation of the same two  service chains  307, 309. However, in this implementation VNF1 301 and VNF2 are both running on server1 311, while VNF3 is running on server2 313. Since VNF1 301 and VNF2 303 are both on the same server, there is no communications hop required in service chainl 307 since all communications are within the same physical server. For service chain2 309, communications between VNF1 301 and VNF2 303 require no communications hop while communications on to VNF3 305 do require such a hop. Thus, the skilled person will recognise that this second example implementation of the two service chains will have different communication ‘costs’ in  comparison to the first implementation since the first example requires 3 communications hops in total whereas the second requires only one.
In the third example implementation on the right hand side of figure 3, VNF1 301 and VNF2 are again both running on server1 311. However, on server2 313 in addition to VNF3 305, second instances of VNF1 315 and VNF2 317 are also running. Thus, as with the second example, service chain 1 307 requires no communication hops. In addition, service chain2 309 also requires no communication hops. Thus, in this third example implementation, very low communication costs are 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 implementation will be the combination of the communications costs and the computing costs required for the particular implementation.
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 wherein the better implementations consume a lower combined computing/communication cost overall. Further, the best implementation will in general be that which entails the lowest overall cost. Thus, the method of the described embodiment is aimed at determining the implementation of a service chain that is in this sense optimal.
As part of this optimisation process, we define:
I=the number of each VNF type, indexed by i. Thus, in other words, I1 would equal the number of type 1 VNFs. In the examples given in figure 3, I=3 since there are three different VNF types, VNF1, VNF2 and VNF3. These would have the  indices  1, 2, 3 respectively.
M=the number of VNF service chains, indexed by m. In the examples given in figure 3 M=2 since there are two different service chains illustrated in each example.
Lm=the number of VNF in a service chains, indexed by 1. In the examples given in figure 3 L1=2 and L2=3 since, in the first chain, two VNFs are present, VNF1 and VNF2. In the second chain, three VNFs are present, VNF1, VNF2 and VNF3.
N=the number of servers in an infrastructure layer, indexed by n. In the examples shown in figure 3, there are two serves, thus N=2.
For a service chain m, Sm represents the position (i.e. on which server) of each VNF in the service chain. For this, there are K resource allocation patterns, indexed by k, where:
Sm, k= {sk 1, sk 2,..., sk Lm} s∈ {1,....., N}
For the examples shown in figure 3:
S1, 1= {1, 2} , S1, 2= {1, 1 } , S1, 3= {1, 1 } .
In other words, for service chain 1 in example 1 (the left-hand example) , which is S1, 1 in this notation, the first VNF is on server 1 while the second is on server 2. In the second example (middle example) for service chain 1, which is S1, 2 in this notation, both VNFs are on server 1. This is also the case for the third example (right hand example) , which is S1, 3 in this notation.
Similarly, for service chain 2 in the examples of figure 3, the values of S would be as follows:
S2, 1= {1, 2, 1} , S2, 2= {1, 1, 2} , S2, 3= {2, 2, 2}
β=β (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 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 left hand example shown in figure 3, VNF1 is shared by service chain 1 and service chain 2. In the middle example, VNF1 and VNF2 are shared by service chain 2 and service 2. In the right hand example, no VNFs are shared by service chains. However, VNF1 and VNF2 are each deployed on both servers, and so the processing costs and memory costs for VNF1 or VNF2 in the right hand example are higher than it in the other examples. Thus, αi for the right hand example will be higher than that for the other two examples.
xi, n ∈ 1, 0. Thus, 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, taking the left hand example in figure 3:
X1, 1=1, X1, 2=0 and X1, 3=1.
Cn is the maximum resource of server n, represented by cost. Different servers will in general have different capabilities and so C can in general be dependent on the particular server.
θ1 is the workload of the 1th VNF in service chain m, represented by 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, this is workload is actually either a typical workload assigned to a service, or some function of the maximum workload that is assigned.
We then define the optimisation target as:
Figure PCTCN2015098660-appb-000004
The skilled person will recognise that the first term in equation (1) is representative of the communication costs associated with an implementation (i.e. is dependent on β) and the second term is representative of the ‘virtual machine” cost (i.e. is dependent on α) .
The optimisation target is constrained by the following constraint function:
For each n,
Figure PCTCN2015098660-appb-000005
The presently described embodiment of the invention thus relates to method of determining a solution that provides a minimisation of the optimisation target expression when constrained by the constraint function. This solution is then used to describe VNF deployment in servers for the service (s) in question.
To derive a solution, the described embodiment employs a genetic algorithm, which comprises 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 matrixes (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.
The invention optimises the total cost including communication and resource cost of VNFs with the restriction conditions through the genetic algorithm.
The flow of this algorithm is shown in Figure 4 and is described in greater detail below:
Step S101, obtaining individual fitness expressions
The goal of a genetic algorithm is, in general, to find the individual from the population with the greatest fitness. However, the optimisation target of this problem is to find the deployment with minimal cost. Thus, in order to apply a genetic algorithm solution to the present invention, the individual fitness expression in equation (1) should be converted to be negative, or the reciprocal of the optimisation target. Thus, the expression for the optimisation target given above can be expressed as either:
Figure PCTCN2015098660-appb-000006
Or
Figure PCTCN2015098660-appb-000007
Combining the changed optimisation target (equation (3) or (4) ) with the constraint condition (equation (2) ) yields the individual fitness expression.
These individual fitness expressions can then be used to evaluate and choose the individuals from the population.
Step S103, generating an initial population
An example of a VNF deployment matrix is shown in Figure 5. 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. 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 one row has one element equal to 1.
The columns of the matrix represent the VNFs in all of the service chains. Here, duplicate VNFs in different service chains are allowed, as is illustrated in the examples shown in figure 3.
To continue the examples of figure 3, the equivalent three matrixes related to three deployment scenarios from this figure are as follows:
Server1 Server2
Figure PCTCN2015098660-appb-000008
Server1 Server2
Figure PCTCN2015098660-appb-000009
Server1 Server2
Figure PCTCN2015098660-appb-000010
The skilled person will recognise that the size of the matrices in a particular problem is determined by the number of servers and VNFs, 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 present embodiment, 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 (3) or (4) 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 don’ t meet constraint condition (equation (2) ) are discarded at this stage.
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 S 103) , 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.
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 (3 or 4) .
●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 (3 or 4) .
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 (3 or 4) .
Step S107, verifying the exit condition
In the next step of the algorithm, it is tested whether the exit condition or conditions are fulfilled. In the presently described embodiment 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 S1 13 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 S 103 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 6. As shown in figure 6, 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 6 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 6 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 presently described embodiment, 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 presently described embodiment, 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 embodiments, 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 7. As illustrated in figure 7, 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 7, 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.
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 suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the method comprising:
    determining a fitness function for determining a fitness of different configurations of the VNFs, wherein the fitness function depends on at least one of the computational and communication resources used by a configuration;
    generating a set of possible configurations of the VNFs for implementing the desired networking function;
    determining the fitness of each of the set of generated possible configurations using the fitness function;
    selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population;
    generating a second population from the first population by applying a genetic algorithm; and
    outputting a member of the second population as the suitable configuration on the basis of its fitness function.
  2. A method according to claim l, wherein 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.
  3. A method according to claim 1 or 2, wherein the communication resources depend on the communication costs associated with communications between the plurality of servers arising as a result of the configuration.
  4. A method according to any preceding claim, wherein 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.
  5. A method according to any preceding claim, 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.
  6. A method according to claim 2, 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.
  7. A method according to any preceding claim, wherein the genetic algorithm is applied iteratively and terminated when an 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.
  8. A method according to any preceding claim, wherein the fitness function takes the form of:
    Figure PCTCN2015098660-appb-100001
    or
    Figure PCTCN2015098660-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 VNF in a service chains, indexed by l;
    N= the number of servers in an infrastructure layer, indexed by n;
    For a service chain m, Sm represents the position of each VNF in the service chain, for this, there are K resource allocation patterns, indexed by k, where: Sm,k= {sk t,sk 2 , ...sk Lm} s∈ {1, ..., N} ;
    β =β (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.
  9. A method according to claim 8 when dependent from claim 4, wherein the possible configurations are constrained by a function of the form:
    Figure PCTCN2015098660-appb-100003
    where:
    Cn is the maximum resource of server n, represented by cost; and
    θ1 is the workload of the 1th VNF in service chain m, represented by cost.
  10. 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; and
    a column exists for each server that is available for use in implementing the configuration.
  11. A method according to claim 10, wherein 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.
  12. A method according to claim 11 when dependent from claim 5, wherein, ifa 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 suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the processing apparatus comprising:
    means for determining a fitness function for determining a fitness of different configurations of the VNFs, wherein the fitness function depends on at least one of the computational and communication resources used by a configuration;
    means for generating a set of possible configurations of the VNFs for implementing the desired networking function;
    means for determining the fitness of each of the set of generated possible configurations using the fitness function;
    means for selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population;
    means for generating a second population from the first population by applying a genetic algorithm; and
    means for outputting a member of the second population as the suitable configuration on the basis of its fitness function.
  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/CN2015/098660 2015-12-24 2015-12-24 Method and system for optimisation of virtual network functions under network function virtualisation environment WO2017107127A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/098660 WO2017107127A1 (en) 2015-12-24 2015-12-24 Method and system for optimisation of virtual network functions under network function virtualisation environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/098660 WO2017107127A1 (en) 2015-12-24 2015-12-24 Method and system for optimisation of virtual network functions under network function virtualisation environment

Publications (1)

Publication Number Publication Date
WO2017107127A1 true WO2017107127A1 (en) 2017-06-29

Family

ID=59088709

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/098660 WO2017107127A1 (en) 2015-12-24 2015-12-24 Method and system for optimisation of virtual network functions under network function virtualisation environment

Country Status (1)

Country Link
WO (1) WO2017107127A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112787833A (en) * 2019-11-07 2021-05-11 中国电信股份有限公司 Method and device for deploying CDN (content delivery network) server
CN113535381A (en) * 2021-06-08 2021-10-22 广西综合交通大数据研究院 Service function chain mapping method, device and equipment based on improved genetic algorithm
CN114124818A (en) * 2021-11-11 2022-03-01 广东工业大学 Newly-added function node deployment optimization method for multicast transmission in SDN network
US11463511B2 (en) 2018-12-17 2022-10-04 At&T Intellectual Property I, L.P. Model-based load balancing for network data plane

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130110751A1 (en) * 2011-10-31 2013-05-02 Taif University Computational device implemented method of solving constrained optimization problems
CN104202188A (en) * 2014-09-01 2014-12-10 北京航空航天大学 Method for carrying out AFDX network path optimization by genetic algorithm
CN104468308A (en) * 2014-10-29 2015-03-25 北京邮电大学 Cross-domain virtual network mapping method and system based on particle swarm optimization
CN104684095A (en) * 2015-03-10 2015-06-03 东南大学 Resource allocation method based on genetic operation in heterogeneous network convergence scenes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130110751A1 (en) * 2011-10-31 2013-05-02 Taif University Computational device implemented method of solving constrained optimization problems
CN104202188A (en) * 2014-09-01 2014-12-10 北京航空航天大学 Method for carrying out AFDX network path optimization by genetic algorithm
CN104468308A (en) * 2014-10-29 2015-03-25 北京邮电大学 Cross-domain virtual network mapping method and system based on particle swarm optimization
CN104684095A (en) * 2015-03-10 2015-06-03 东南大学 Resource allocation method based on genetic operation in heterogeneous network convergence scenes

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463511B2 (en) 2018-12-17 2022-10-04 At&T Intellectual Property I, L.P. Model-based load balancing for network data plane
CN112787833A (en) * 2019-11-07 2021-05-11 中国电信股份有限公司 Method and device for deploying CDN (content delivery network) server
CN112787833B (en) * 2019-11-07 2022-08-12 中国电信股份有限公司 Method and device for deploying CDN (content delivery network) server
CN113535381A (en) * 2021-06-08 2021-10-22 广西综合交通大数据研究院 Service function chain mapping method, device and equipment based on improved genetic algorithm
CN113535381B (en) * 2021-06-08 2023-09-08 广西综合交通大数据研究院 Service function chain mapping method, device and equipment based on improved genetic algorithm
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

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
Liu et al. On dynamic service function chain deployment and readjustment
Alam et al. Multi-agent and reinforcement learning based code offloading in mobile fog
WO2017107127A1 (en) Method and system for optimisation of virtual network functions under network function virtualisation environment
Ali et al. QoS improvement with an optimum controller selection for software-defined networks
KR20170105582A (en) Systems and methods for SDT for interworking with NFV and SDN
US10887172B2 (en) Network function virtualization
Foerster et al. Improved fast rerouting using postprocessing
Islam et al. A genetic algorithm for virtual machine migration in heterogeneous mobile cloud computing
Al-Sadi et al. Routing algorithm optimization for software defined network WAN
CN111953547B (en) Heterogeneous base station overlapping grouping and resource allocation method and device based on service
CN116232982A (en) Route calculation method and related equipment
Shang et al. Network congestion-aware online service function chain placement and load balancing
Lei et al. Deploying QoS-assured service function chains with stochastic prediction models on VNF latency
Datsika et al. Matching theory for over-the-top service provision in 5G networks
Kang et al. Load balancing of software-defined network controller using genetic algorithm
Parham et al. Traffic engineering with joint link weight and segment optimization
CN114298431A (en) Network path selection method, device, equipment and storage medium
Montana et al. Adaptive reconfiguration of data networks using genetic algorithms
CN103825963B (en) Virtual Service moving method
Chen et al. QMORA: A Q-learning based multi-objective resource allocation scheme for NFV orchestration
Antic et al. Routing with load balancing: increasing the guaranteed node traffics
Sharma et al. High-availability service chain realization theory
Punhani et al. Optimal extra links placement in mesh interconnection network using improved environmental adaptation method
Moza et al. Routing in networks using genetic algorithm

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: 15911126

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: 15911126

Country of ref document: EP

Kind code of ref document: A1