# US 10,375,700 B1 · Resource allocation for virtual devices

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

- Number: US 10,375,700 B1
- Document ID: US10375700B1
- Status: Granted
- Kind: B1
- Application number: 15/957,311
- Filed: 2018-04-19
- Granted: 2019-08-06
- Earliest claimed: 2018-04-19
- Assignees: Verizon Patent and Licensing Inc.
- Applicants: Verizon Patent and Licensing Inc.
- Inventors: Mehmet Toy
- Web page: https://patentgrep.com/patent/US10375700B1

## CPC

- H04W 4/00: Services specially adapted for wireless communication networks; Facilities therefor
- H04W 72/54: based on quality criteria
- H04L 43/0829: Packet loss
- H04L 43/0882: Utilisation of link capacity
- H04W 4/50: Service provisioning or reconfiguring
- H04W 28/0242: {Determining whether packet losses are due to overload or to deterioration of radio communication conditions}
- H04W 72/52: based on load
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 41/5009: Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L 43/0817: by checking functioning
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method, a device, and a non-transitory storage medium are described in which a resource allocation service is provided in relation to a virtual device. The resource allocation service calculates an allocation of a shared processor and a shared memory in support of the virtual device based on whether packet loss is permitted or not. The calculation of the processor allocated to the virtual device may be based on buffer memory allocation. Alternatively, the calculation of the processor allocated to the virtual device may be based on a packet loss ratio and a buffer memory allocation.

## Claims

### Claim 1

A method comprising:
receiving, by a network device from an end device, a request for an application or a service;
analyzing, by the network device in response to the receiving, the request;
determining, by the network device in response to the analyzing, whether a packet loss is permitted with respect to servicing the request;
calculating, by the network device in response to determining that the packet loss is permitted, a first allocation of a processor and a buffer memory pertaining to a first virtual network function or a first virtual machine that will provide the application or the service, wherein the first allocation of the processor is calculated based on a buffer memory size of the buffer memory pertaining to a traffic load at a peak rate and a packet loss ratio;
calculating, by the network device in response to determining that the packet loss is not permitted, a second allocation of the processor and a buffer memory pertaining to a second virtual network function or a second virtual machine that will provide the application or the service, wherein the second allocation of the processor is calculated based on a buffer memory size of the buffer memory pertaining to a traffic load at a peak rate;
creating, by the network device in response to the calculating of the first allocation, the first virtual function or the first virtual machine based on the first allocation;
creating, by the network device in response to the calculating of the second allocation, the second virtual function or the second virtual machine based on the second allocation;
providing, by the first virtual function or the first virtual machine of the network device, the application or the service to the end device; and
providing, by the second virtual function or the second virtual machine of the network device, the application or the service to the end device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the calculating in response to determining that the packet loss is not permitted further comprises:
calculating, by the network device, a committed number of virtual processors of the processor for each traffic flow of an aggregate traffic flow;
calculating, by the network device, an excess number of virtual processors of the processor for each traffic flow of the aggregate flow;
calculating, by the network device, a buffer memory size of a buffer memory for each inbound traffic flow of the aggregate flow; and
calculating, by the network device, a buffer memory size of a buffer memory for each outbound traffic flow of the aggregate flow.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
calculating, by the network device, a total number of virtual processors of the processor for the aggregate traffic flow based on a summation of the committed number of virtual processors for each traffic flow and the excess number of virtual processors for each traffic flow; and
calculating, by the network device, a total memory size of a buffer memory for the aggregate flow based on a summation of a committed memory size for each traffic flow and an excess memory size for each traffic flow.

### Claim 4 (depends on 3)

The method of claim 3, wherein the committed number of virtual processors and the committed memory size are physical resources that support a committed information rate and a constant burst size, and the excess number of virtual processors and the excess memory size are physical resources that support an information rate between the committed information rate and a peak information rate, and an excessive burst size.

### Claim 5 (depends on 1)

The method of claim 1, wherein the calculating in response to determining that the packet loss is permitted further comprises:
calculating, by the network device, a committed number of virtual processors of the processor for each traffic flow of an aggregate traffic flow;
calculating, by the network device, an excess number of virtual processors of the processor for each traffic flow of the aggregate flow;
calculating, by the network device, a maximum number of virtual processors for each traffic flow of the aggregate flow based on a summation of the committed number of virtual processors and the excess number of virtual processors; and
calculating, by the network device, a ratio between the buffer memory size of the buffer memory pertaining to the traffic load at the peak rate and a maximum number of virtual processors of the processor, wherein the maximum number of virtual processors of the processor is a summation of the committed number and the excess number of virtual processors of the processor.

### Claim 6 (depends on 5)

The method of claim 5, wherein the calculating the first allocation of the processor, the method further comprises:
identifying, by the network device, a packet loss ratio that is allowed per a service level agreement associated with the end device; and
calculating, by the network device, a natural log of the packet loss ratio.

### Claim 7 (depends on 1)

The method of claim 1, wherein the determining further comprises:
determining, by the network device, whether the packet loss is permitted is based on at least one of a type of the application or the service requested, a parameter associated with a service level agreement pertaining to the end device, or a parameter and parameter value included in the request.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first allocation and the second allocation each support an aggregate traffic flow of the application or the service, wherein the aggregate traffic flow includes an inbound traffic flow and an outbound traffic flow.

### Claim 9

A network device comprising:
a communication interface;
a memory, wherein the memory stores instructions; and
a processor, wherein the processor executes the instructions to:
receive, via the communication interface from an end device, a request for an application or a service;
analyze, in response to the receipt, the request;
determine, in response to the analysis, whether a packet loss is permitted with respect to servicing the request;
calculate, in response to a determination that the packet loss is permitted, a first allocation of a first processor and a first buffer memory pertaining to a first virtual network function or a first virtual machine that will provide the application or the service, wherein the first allocation of the first processor is calculated based on a buffer memory size of the first buffer memory pertaining to a traffic load at a peak rate and a packet loss ratio;
calculate, in response to a determination that the packet loss is not permitted, a second allocation of the first processor and the first buffer memory pertaining to a second virtual network function or a second virtual machine that will provide the application or the service, wherein the second allocation of the first processor is calculated based on a buffer memory size of the first buffer memory pertaining to a traffic load at a peak rate;
create, in response to the calculation of the first allocation, the first virtual function or the first virtual machine based on the first allocation;
creating, in response to the calculation of the second allocation, the second virtual function or the second virtual machine based on the second allocation;
provide, by the first virtual function or the first virtual machine of the network device, the application or the service to the end device; and
provide, by the second virtual function or the second virtual machine of the network device, the application or the service to the end device.

### Claim 10 (depends on 9)

The network device of claim 9, wherein, when calculating in response to the determination that the packet loss is not permitted, the processor further executes the instructions to:
calculate a committed number of virtual processors of the first processor for each traffic flow of an aggregate traffic flow;
calculate an excess number of virtual processors of the first processor for each traffic flow of the aggregate flow;
calculate a buffer memory size of a buffer memory for each inbound traffic flow of the aggregate flow; and
calculate a buffer memory size of a buffer memory for each outbound traffic flow of the aggregate flow.

### Claim 11 (depends on 10)

The network device of claim 10, wherein the processor further executes the instructions to:
calculate a total number of virtual processors of the first processor for the aggregate traffic flow based on a summation of the committed number of virtual processors for each traffic flow and the excess number of virtual processors for each traffic flow; and
calculate a total memory size of the first buffer memory for the aggregate flow based on a summation of a committed memory size for each traffic flow and an excess memory size for each traffic flow.

### Claim 12 (depends on 11)

The network device of claim 11, wherein the committed number of virtual processors and the committed memory size are physical resources that support a committed information rate and a constant burst size, and the excess number of virtual processors and the excess memory size are physical resources that support an information rate between the committed information rate and a peak information rate, and an excessive burst size.

### Claim 13 (depends on 9)

The network device of claim 9, wherein, when calculating in response to the determination that the packet loss is permitted, the processor further executes the instructions to:
calculate a committed number of virtual processors of the first processor for each traffic flow of an aggregate traffic flow;
calculate an excess number of virtual processors of the first processor for each traffic flow of the aggregate flow;
calculate a maximum number of virtual processors for each traffic flow of the aggregate flow based on a summation of the committed number of virtual processors and the excess number of virtual processors; and
calculate a ratio between the buffer memory size of the first buffer memory pertaining to the traffic load at the peak rate and a maximum number of virtual processors of the first processor, wherein the maximum number of virtual processors of the first processor is a summation of the committed number and the excess number of virtual processors of the first processor.

### Claim 14 (depends on 13)

The network device of claim 13, wherein, when calculating the first allocation of the first processor, the processor further executes the instructions to:
identify a packet loss ratio that is allowed per a service level agreement associated with the end device; and
calculate a natural log of the packet loss ratio.

### Claim 15 (depends on 9)

The network device of claim 9, wherein, when determining, the processor further executes the instructions to:
determine whether the packet loss is permitted is based on at least one of a type of the application or the service requested, a parameter associated with a service level agreement pertaining to the end device, or a parameter and parameter value included in the request, and wherein the first allocation and the second allocation each support an aggregate traffic flow of the application or the service, wherein the aggregate traffic flow includes an inbound traffic flow and an outbound traffic flow.

### Claim 16

A non-transitory computer-readable storage medium storing instructions executable by a processor of a device, which when executed cause the device to:
receive, from an end device, a request for an application or a service;
analyze, in response to the receipt, the request;
determine, in response to the analysis, whether a packet loss is permitted with respect to servicing the request;
calculate, in response to a determination that the packet loss is permitted, a first allocation of a first processor and a first buffer memory pertaining to a first virtual network function or a first virtual machine that will provide the application or the service, wherein the first allocation of the first processor is calculated based on a buffer memory size of the first buffer memory pertaining to a traffic load at a peak rate and a packet loss ratio;
calculate, in response to a determination that the packet loss is not permitted, a second allocation of the first processor and the first buffer memory pertaining to a second virtual network function or a second virtual machine that will provide the application or the service, wherein the second allocation of the first processor is calculated based on a buffer memory size of the first buffer memory pertaining to a traffic load at a peak rate;
create, in response to the calculation of the first allocation, the first virtual function or the first virtual machine based on the first allocation;
creating, in response to the calculation of the second allocation, the second virtual function or the second virtual machine based on the second allocation;
provide, by the first virtual function or the first virtual machine of the device, the application or the service to the end device; and
provide, by the second virtual function or the second virtual machine of the device, the application or the service to the end device.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, wherein the instructions to calculate in response to the determination that the packet loss is not permitted, further include instructions executable by the processor of the device, which when executed cause the device to:
calculate a committed number of virtual processors of the first processor for each traffic flow of an aggregate traffic flow;
calculate an excess number of virtual processors of the first processor for each traffic flow of the aggregate flow;
calculate a buffer memory size of a buffer memory for each inbound traffic flow of the aggregate flow; and
calculate a buffer memory size of a buffer memory for each outbound traffic flow of the aggregate flow.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions further include instructions executable by the processor of the device, which when executed cause the device to:
calculate a total number of virtual processors of the first processor for the aggregate traffic flow based on a summation of the committed number of virtual processors for each traffic flow and the excess number of virtual processors for each traffic flow; and
calculate a total memory size of the first buffer memory for the aggregate flow based on a summation of a committed memory size for each traffic flow and an excess memory size for each traffic flow.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the instructions to calculate in response to the determination that the packet loss is permitted, further include instructions executable by the processor of the device, which when executed cause the device to:
calculate a committed number of virtual processors of the first processor for each traffic flow of an aggregate traffic flow;
calculate an excess number of virtual processors of the first processor for each traffic flow of the aggregate flow;
calculate a maximum number of virtual processors for each traffic flow of the aggregate flow based on a summation of the committed number of virtual processors and the excess number of virtual processors; and
calculate a ratio between the buffer memory size of the first buffer memory pertaining to the traffic load at the peak rate and a maximum number of virtual processors of the first processor, wherein the maximum number of virtual processors of the first processor is a summation of the committed number and the excess number of virtual processors of the first processor.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, wherein the instructions to calculate the first allocation of the first processor, further include instructions executable by the processor of the device, which when executed cause the device to:
identify a packet loss ratio that is allowed per a service level agreement associated with the end device; and
calculate a natural log of the packet loss ratio.
