# US 11,444,888 B2 · Scaling network functions

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

- Number: US 11,444,888 B2
- Document ID: US11444888B2
- Status: Granted
- Kind: B2
- Application number: 17/202,306
- Filed: 2021-03-15
- Published: 2021-09-09
- Granted: 2022-09-13
- Earliest claimed: 2018-01-12
- Assignees: Metaswitch Networks Ltd.
- Applicants: Metaswitch Networks Ltd.
- Inventors: Christian Lund
- Web page: https://patentgrep.com/patent/US11444888B2

## CPC

- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/505: {considering the load}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- H04L 41/0681: Configuration of triggering conditions
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/0897: by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
- H04L 41/5025: by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
- H04L 41/5054: Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
- H04L 43/045: for graphical visualisation of monitoring data
- H04L 43/062: related to network traffic
- H04L 43/0817: by checking functioning
- H04L 43/16: Threshold monitoring
- H04L 47/762: triggered by the network
- H04L 47/822: {Collecting or measuring resource availability data}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2209/5019: Workload prediction
- G06F 2209/508: Monitor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method of determining trigger conditions for scaling a scalable unit of network function comprising identifying a primary set of metrics associated with usage of an instance of the unit of network function as a primary indicator of occurrence of a load state thereof, and determining usage points when the primary indicator indicates that the load state occurs. Deriving a secondary set of the metrics, different to the primary set, as a secondary indicator of occurrence of the load state of the instance at each of a group of one or more of the usage points when the primary indicator indicates that the load state occurs, and measured data corresponding to values of the metrics in the secondary set of metrics at each of the group of usage points. Storing a trigger condition for scaling the unit of network function based on the secondary set and the measured data.

## Claims

### Claim 1

A method of determining trigger conditions for scaling a network function of a virtual computing environment, the method comprising:
receiving metrics data associated with usage of an instance of a scalable unit of the network function, the metrics indicative of usage characteristics associated with the instance;
identifying a primary set of the metrics as a primary indicator of occurrence of a load state of the instance;
determining, based on the received metrics data, usage points where the primary indicator indicates that the load state occurs;
deriving, from the received metrics data:
a secondary set of the metrics, different from the primary set, as a secondary indicator of occurrence of the load state of the instance at a group of the usage points where the primary indicator indicates that the load state occurs; and
measured data corresponding to values of the metrics in the secondary set of the metrics at the group of the usage points;
determining at least one criterion for predicting future values of the secondary set of metrics, based on a current value of the secondary set of the metrics and historical data relating to a pattern of usage of the scalable unit of the network function; and
storing a secondary trigger condition for scaling the scalable unit based on the predicted values of the secondary set and the measured data.

### Claim 2 (depends on 1)

The method of claim 1, further comprising deriving, from the received metrics data, a group of headroom-adjusted usage points by adding a headroom to the group of the usage points where the primary indicator indicates that the load state occurs;
wherein the measured data corresponding to values of the metrics in the secondary set of metrics are at the group of headroom-adjusted usage points.

### Claim 3 (depends on 1)

The method of claim 1, wherein the group of the usage points comprises a plurality of usage points, and wherein storing the secondary trigger condition comprises processing the measured data at the plurality of usage points to generate a threshold for use in the secondary trigger condition.

### Claim 4 (depends on 1)

The method of claim 1, wherein the secondary set comprises a plurality of metrics, and wherein storing the secondary trigger condition comprises processing the measured data at the group of the usage points to generate a plurality of thresholds, for each of the plurality of metrics respectively, for use in the secondary trigger condition.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
deriving, from the received metrics data:
a first secondary set of the metrics, different from the primary set, as a first secondary indicator of occurrence of the load state of the instance at a first group of the usage points where the primary indicator indicates that the load state occurs;
first measured data corresponding to values of the metrics in the first secondary set of the metrics at the first group of the usage points;
a second secondary set of the metrics, different from the primary set and the first secondary set, as a second secondary indicator of occurrence of the load state of the instance at a second group of the usage points where the primary indicator indicates that the load state occurs; and
second measured data corresponding to values of the metrics in the second secondary set of metrics at the second group of the usage points; and
storing a first secondary trigger condition for scaling the scalable unit of the network function based on the first secondary set and the first measured data, and a second secondary trigger condition for scaling the scalable unit of the network function based on the second secondary set and the second measured data.

### Claim 6 (depends on 5)

The method of claim 5, wherein:
the first secondary set comprises a first metric and the second secondary set comprises the first metric,
the storing the first secondary trigger condition comprises processing the first measured data for the first metric at the first group of the usage points to generate a first threshold for use in the first secondary trigger condition; and
the storing the second secondary trigger condition comprises processing the second measured data for the first metric at the second group of the usage points to generate a second threshold for use in the second secondary trigger condition, and
the first and second thresholds are different in the first and second trigger conditions respectively.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining a traffic profile associated with the instance, the traffic profile comprising data indicative of one or more types of network traffic being directed to the instance; and
storing the secondary trigger condition for scaling the scalable unit of the network function based on the determined traffic profile.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
receiving further metrics data corresponding to the metrics associated with usage of the instance; and
adjusting the secondary trigger condition based on the received further metrics data.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
receiving further metrics data corresponding to the metrics associated with usage of the instance; and
storing a further secondary trigger condition based on the received further metrics data.

### Claim 10 (depends on 1)

The method of claim 1, wherein the scalable unit of the network function comprises one or more of a virtual network function; a microservice; a cloud based network function; a software based network function; or a network function as a service.

### Claim 11

A non-transitory computer-readable storage medium comprising a set of computer-readable instructions stored thereon, which, when executed by a processor of a computing system, cause the computing system to perform operations comprising:
receiving metrics data associated with usage of an instance of a scalable unit of a network function, the metrics indicative of usage characteristics associated with the instance;
identifying a primary set of the metrics as a primary indicator of occurrence of a load state of the instance;
determining, based on the received metrics data, usage points where the primary indicator indicates that the load state occurs;
deriving, from the received metrics data:
a secondary set of the metrics, different from the primary set, as a secondary indicator of occurrence of the load state of the instance at a group of the usage points where the primary indicator indicates that the load state occurs; and
measured data corresponding to values of the metrics in the secondary set of the metrics at the group of the usage points;
determining at least one criterion for predicting future values of the secondary set of metrics, based on a current value of the secondary set of the metrics and historical data relating to a pattern of usage of the scalable unit of the network function; and
storing a secondary trigger condition for scaling the scalable unit based on the predicted values of the secondary set and the measured data.

### Claim 12

A system configured to determine trigger conditions for scaling a network function of a virtual computing environment, the system comprising a processor and computer-executable instructions that when executed by the processor, cause the system to perform operations comprising:
receiving metrics data associated with usage of an instance of a scalable unit of the network function, the metrics indicative of usage characteristics associated with the instance;
identifying a primary set of the metrics as a primary indicator of occurrence of a load state of the instance;
determining, based on the received metrics data, usage points where the primary indicator indicates that the load state occurs;
deriving, from the received metrics data:
a secondary set of the metrics, different from the primary set, as a secondary indicator of occurrence of the load state of the instance at a group of the usage points where the primary indicator indicates that the load state occurs; and
measured data corresponding to values of the metrics in the secondary set of the metrics at the group of the usage points;
determining at least one criterion for predicting future values of the secondary set of metrics, based on a current value of the secondary set of the metrics and historical data relating to a pattern of usage of the scalable unit of the network function; and
storing a secondary trigger condition for scaling the scalable unit based on the predicted values of the secondary set and the measured data.

### Claim 13 (depends on 12)

The system of claim 12, further comprising computer-executable instructions that when executed by the processor, cause the system to perform operations comprising:
deriving, from the received metrics data, a group of headroom-adjusted usage points by adding a headroom to the group of the usage points where the primary indicator indicates that the load state occurs;
wherein the measured data corresponding to values of the metrics in the secondary set of metrics are at the group of headroom-adjusted usage points.

### Claim 14 (depends on 12)

The system of claim 12, wherein the group of the usage points comprises a plurality of usage points, and wherein storing the secondary trigger condition comprises processing the measured data at the plurality of usage points to generate a threshold for use in the secondary trigger condition.

### Claim 15 (depends on 12)

The system of claim 12, wherein the secondary set comprises a plurality of metrics, and wherein storing the secondary trigger condition comprises processing the measured data at the group of the usage points to generate a plurality of thresholds, for each of the plurality of metrics respectively, for use in the secondary trigger condition.

### Claim 16 (depends on 12)

The system of claim 12, further comprising computer-executable instructions that when executed by the processor, cause the system to perform operations comprising:
deriving, from the received metrics data:
a first secondary set of the metrics, different from the primary set, as a first secondary indicator of occurrence of the load state of the instance at a first group of the usage points where the primary indicator indicates that the load state occurs;
first measured data corresponding to values of the metrics in the first secondary set of the metrics at the first group of the usage points;
a second secondary set of the metrics, different from the primary set and the first secondary set, as a second secondary indicator of occurrence of the load state of the instance at a second group of the usage points where the primary indicator indicates that the load state occurs; and
second measured data corresponding to values of the metrics in the second secondary set of metrics at the second group of the usage points; and
storing a first secondary trigger condition for scaling the scalable unit of the network function based on the first secondary set and the first measured data, and a second secondary trigger condition for scaling the scalable unit of the network function based on the second secondary set and the second measured data.

### Claim 17 (depends on 16)

The system of claim 16, wherein:
the first secondary set comprises a first metric and the second secondary set comprises the first metric,
the storing the first secondary trigger condition comprises processing the first measured data for the first metric at the first group of the usage points to generate a first threshold for use in the first secondary trigger condition; and
the storing the second secondary trigger condition comprises processing the second measured data for the first metric at the second group of the usage points to generate a second threshold for use in the second secondary trigger condition, and
the first and second thresholds are different in the first and second trigger conditions respectively.

### Claim 18 (depends on 12)

The system of claim 12, further comprising computer-executable instructions that when executed by the processor, cause the system to perform operations comprising:
determining a traffic profile associated with the instance, the traffic profile comprising data indicative of one or more types of network traffic being directed to the instance; and
storing the secondary trigger condition for scaling the scalable unit of the network function based on the determined traffic profile.

### Claim 19 (depends on 12)

The system of claim 12, further comprising computer-executable instructions that when executed by the processor, cause the system to perform operations comprising:
receiving further metrics data corresponding to the metrics associated with usage of the instance; and
adjusting the secondary trigger condition based on the received further metrics data.

### Claim 20 (depends on 12)

The system of claim 12, further comprising computer-executable instructions that when executed by the processor, cause the system to perform operations comprising:
receiving further metrics data corresponding to the metrics associated with usage of the instance; and
storing a further secondary trigger condition based on the received further metrics data.
