# US 10,122,610 B2 · Provisioning of network services based on virtual network function performance characteristics

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,122,610 B2
- Document ID: US10122610B2
- Status: Granted
- Kind: B2
- Application number: 15/081,378
- Filed: 2016-03-25
- Published: 2017-09-28
- Granted: 2018-11-06
- Earliest claimed: 2016-03-25
- Assignees: CA, Inc.
- Applicants: CA, Inc.
- Inventors: Preetdeep Kumar; Ravindra Kumar Puli
- Web page: https://patentgrep.com/patent/US10122610B2

## CPC

- H04L 43/16: Threshold monitoring
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/0896: Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities (flow or congestion control using dynamic resource allocation, e.g. in-call renegotiation, H04L47/76)
- H04L 41/142: using statistical or mathematical methods
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 43/0817: by checking functioning
- H04L 45/586: of virtual routers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method includes performing, by a processor: receiving a selection of a network service, determining a plurality of Virtual Network Functions (VNFs) and a plurality of Virtual Machines (VMs) based on the selection of the network service, the plurality of VNFs being configured to run on the plurality of VMs, generating a plurality of tuples, each of the plurality of tuples corresponding to a combination of one of the plurality of VNFs and one of the plurality of VMs where the one of the plurality of VNFs is configured to run on the one of the plurality of VMs, receiving a plurality of VNF performance parameters, estimating values for each of the plurality of VNF performance parameters for each of the plurality of tuples, respectively, processing the values for each of the plurality of VNF performance parameters to generate a plurality of scores for the plurality of tuples, respectively, generating a plurality of VNF Forwarding Graphs (FGs), each of the VNF FGs corresponding to a combination of ones of the plurality of tuples that support the network service, generating a plurality of grade scores for the plurality of VNF FGs, respectively, based on the plurality of scores for the plurality of tuples, and provisioning the network service on one of the plurality of VNF FGs based on the plurality of grade scores.

## Claims

### Claim 1

A method comprising:
performing by a processor:
receiving a selection of a network service;
determining a plurality of Virtual Network Functions (VNFs) and a plurality of Virtual Machines (VMs) based on the selection of the network service, the plurality of VNFs being configured to run on the plurality of VMs;
generating a plurality of tuples, each of the plurality of tuples corresponding to a combination of one of the plurality of VNFs and one of the plurality of VMs where the one of the plurality of VNFs is configured to run on the one of the plurality of VMs;
receiving a plurality of VNF performance parameters;
estimating values for each of the plurality of VNF performance parameters for each of the plurality of tuples, respectively, wherein:
estimation of a first value of one of the VNF performance parameters is based on past performance data of the selected network service being provisioned on a VM corresponding to one of the plurality of tuples when a VNF corresponding to the same one of the plurality of tuples is not being run on the VM; and
estimation of a second value of one of the VNF performance parameters is based on past performance data of the selected network service being provisioned on one of:
a VNF corresponding to one of the plurality of tuples when the VNF is being run on a VM corresponding to the same one of the plurality of tuples; and
a VNF corresponding to one of the plurality of tuples when the VNF is not being run on a VM corresponding to the same one of the plurality of tuples;
processing the values for each of the plurality of VNF performance parameters to generate a plurality of scores for the plurality of tuples, respectively;
generating a plurality of VNF Forwarding Graphs (FGs), each of the VNF FGs corresponding to a combination of ones of the plurality of tuples that support the network service;
generating a plurality of grade scores for the plurality of VNF FGs, respectively, based on the plurality of scores for the plurality of tuples; and
provisioning the network service on one of the plurality of VNF FGs based on the plurality of grade scores.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of VNF performance parameters comprises memory usage, processor usage, and network throughput.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
receiving a plurality of weights corresponding to the plurality of VNF performance parameters, respectively;
wherein processing the values for each of the plurality of VNF performance parameters comprises processing the values for each of the plurality of VNF performance parameters based on the plurality of weights.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
receiving a VNF performance threshold; and
determining a portion of the plurality of tuples having scores that satisfy the VNF performance threshold;
wherein each of the VNF FGs corresponds to a combination of ones of the portion of plurality of tuples having scores that satisfy the VNF performance threshold and that support the network service.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
for a first one the tuples, estimating a first value of one of the VNF performance parameters based on past performance data of the selected network service being provisioned on a first VM corresponding to the first one of the tuples when a first VNF corresponding to the first one of the tuples is not being run on the first VM; and
for a second one of the tuples, estimating a second value of one of the VNF performance parameters based on past performance data of the selected network service being provisioned on one of:
a second VNF corresponding to a second one of the tuples when the second VNF is being run on a second VM corresponding to the second one of the plurality of tuples; and
the second VNF corresponding to the second one of the tuples when the second VNF is not being run on the second VM corresponding to the second one of the tuples.

### Claim 6 (depends on 1)

The method of claim 1, wherein provisioning the network service on one of the plurality of VNF FGs based on the plurality of grade scores comprises:
provisioning the network service on one of the plurality of VNF FGs having a corresponding one of the plurality of grade scores based on a difference between the corresponding one of the plurality of grade scores and a grade score threshold.

### Claim 7 (depends on 1)

The method of claim 1, wherein provisioning the network service on one of the plurality of VNF FGs based on the plurality of grade scores comprises:
provisioning the network service on one of the plurality of VNF FGs having a corresponding one of the plurality of grade scores based on a difference between the corresponding one of the plurality of grade scores and ones of the plurality of grade scores corresponding to other ones of the plurality of VNF FGs.

### Claim 8 (depends on 1)

The method of claim 1, wherein provisioning the network service on one of the plurality of VNF FGs based on the plurality of grade scores comprises:
provisioning the network service on one of the plurality of VNF FGs having a corresponding one of the plurality of grade scores based on a difference between the corresponding one of the plurality of grade scores and a grade score threshold range.

### Claim 9

A system comprising:
a processor; and
a memory coupled to the processor and comprising computer readable program code embodied in the memory that is executable by the processor to perform:
receiving a selection of a network service;
determining a plurality of Virtual Network Functions (VNFs) and a plurality of Virtual Machines (VMs) based on the selection of the network service, the plurality of VNFs being configured to run on the plurality of VMs;
generating a plurality of tuples, each of the plurality of tuples corresponding to a combination of one of the plurality of VNFs and one of the plurality of VMs where the one of the plurality of VNFs is configured to run on the one of the plurality of VMs;
receiving a plurality of VNF performance parameters;
estimating values for each of the plurality of VNF performance parameters for each of the plurality of tuples, respectively, wherein:
estimation of a first value of one of the VNF performance parameters is based on past performance data of the selected network service being provisioned on a VM corresponding to one of the plurality of tuples when a VNF corresponding to the same one of the plurality of tuples is not being run on the VM; and
estimation of a second value of one of the VNF performance parameters is based on past performance data of the selected network service being provisioned on one of:
a VNF corresponding to one of the plurality of tuples when the VNF is being run on a VM corresponding to the same one of the plurality of tuples; and
a VNF corresponding to one of the plurality of tuples when the VNF is not being run on a VM corresponding to the same one of the plurality of tuples;
processing the values for each of the plurality of VNF performance parameters to generate a plurality of scores for the plurality of tuples, respectively;
generating a plurality of VNF Forwarding Graphs (FGs), each of the VNF FGs corresponding to a combination of ones of the plurality of tuples that support the network service;
generating a plurality of first grade scores for the plurality of VNF FGs, respectively, based on the plurality of scores for the plurality of tuples;
receiving a plurality of VNF FG edge performance parameters;
estimating values for each of the plurality of VNF FG edge performance parameters for each of the plurality of VNF FGs;
processing the values for each of the plurality of VNF FG edge performance parameters to generate a plurality of edge performance scores for the plurality of VNF FGs;
generating a plurality of second grade scores for the plurality of VNF FGs, respectively, based on the plurality of first grade scores and the plurality of edge performance scores; and
provisioning the network service on one of the plurality of VNF FGs based on the plurality of second grade scores.

### Claim 10 (depends on 9)

The system of claim 9, wherein the plurality of VNF performance parameters comprises memory usage, processor usage, and network throughput.

### Claim 11 (depends on 10)

The system of claim 10, further comprising:
receiving a plurality of weights corresponding to the plurality of VNF performance parameters, respectively;
wherein processing the values for each of the plurality of VNF performance parameters comprises processing the values for each of the plurality of VNF performance parameters based on the plurality of weights.

### Claim 12 (depends on 11)

The system of claim 11, further comprising:
receiving a VNF performance threshold; and
determining a portion of the plurality of tuples having scores that satisfy the VNF performance threshold;
wherein each of the VNF FGs corresponds to a combination of ones of the portion of plurality of tuples having scores that satisfy the VNF performance threshold and that support the network service.

### Claim 13 (depends on 9)

The system of claim 9, wherein the plurality of VNF FG edge performance parameters comprises link availability, packet delay, packet loss ratio, and latency.

### Claim 14 (depends on 13)

The system of claim 13, further comprising:
receiving a plurality of weights corresponding to the plurality of VNF FG edge performance parameters, respectively;
wherein processing the values for each of the plurality of VNF FG edge performance parameters comprises processing the values for each of the plurality of VNF FG edge performance parameters based on the plurality of weights.

### Claim 15 (depends on 9)

The system of claim 9, wherein provisioning the network service on one of the plurality of VNF FGs based on the plurality of second grade scores comprises:
provisioning the network service on one of the plurality of VNF FGs having a corresponding one of the plurality of second grade scores based on a difference between the corresponding one of the plurality of second grade scores and a second grade score threshold.

### Claim 16 (depends on 9)

The system of claim 9, wherein provisioning the network service on one of the plurality of VNF FGs based on the plurality of second grade scores comprises:
provisioning the network service on one of the plurality of VNF FGs having a corresponding one of the plurality of second grade scores based on a difference between the corresponding one of the plurality of second grade scores and ones of the plurality of second grade scores corresponding to other ones of the plurality of VNF FGs.

### Claim 17 (depends on 9)

The system of claim 9, wherein provisioning the network service on one of the plurality of VNF FGs based on the plurality of second grade scores comprises:
provisioning the network service on one of the plurality of VNF FGs having a corresponding one of the plurality of second grade scores based on a difference between the corresponding one of the plurality of second grade scores and a second grade score threshold range.

### Claim 18

A computer program product comprising:
a tangible, non-transitory computer readable storage medium comprising computer readable program code embodied in the medium that is executable by a processor to perform:
receiving a selection of a network service;
determining a plurality of Virtual Network Functions (VNFs) and a plurality of Virtual Machines (VMs) based on the selection of the network service, the plurality of VNFs being configured to run on the plurality of VMs;
generating a plurality of tuples, each of the plurality of tuples corresponding to a combination of one of the plurality of VNFs and one of the plurality of VMs where the one of the plurality of VNFs is configured to run on the one of the plurality of VMs;
receiving a plurality of VNF performance parameters;
estimating values for each of the plurality of VNF performance parameters for each of the plurality of tuples, respectively, wherein:
estimation of a first value of one of the VNF performance parameters is based on past performance data of the selected network service being provisioned on a VM corresponding to one of the plurality of tuples when a VNF corresponding to the same one of the plurality of tuples is not being run on the VM; and
estimation of a second value of one of the VNF performance parameters is based on past performance data of the selected network service being provisioned on one of:
a VNF corresponding to one of the plurality of tuples when the VNF is being run on a VM corresponding to the same one of the plurality of tuples; and
a VNF corresponding to one of the plurality of tuples when the VNF is not being run on a VM corresponding to the same one of the plurality of tuples;
processing the values for each of the plurality of VNF performance parameters to generate a plurality of scores for the plurality of tuples, respectively;
generating a plurality of VNF Forwarding Graphs (FGs), each of the VNF FGs corresponding to a combination of ones of the plurality of tuples that support the network service;
generating a plurality of first grade scores for the plurality of VNF FGs, respectively, based on the plurality of scores for the plurality of tuples;
receiving a plurality of VNF FG edge performance parameters;
estimating values for each of the plurality of VNF FG edge performance parameters for each of the plurality of VNF FGs;
processing the values for each of the plurality of VNF FG edge performance parameters to generate a plurality of edge performance scores for the plurality of VNF FGs;
generating a plurality of second grade scores for the plurality of VNF FGs, respectively, based on the plurality of edge performance scores and the plurality of first grade scores; and
provisioning the network service on one of the plurality of VNF FGs based on the plurality of second grade scores.

### Claim 19 (depends on 18)

The computer program product of claim 18, wherein the plurality of VNF FG edge performance parameters comprises link availability, packet delay, packet loss ratio, and latency.
