# US 12,113,678 B2 · Using hypervisor to provide virtual hardware accelerators in an O-RAN system

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

- Number: US 12,113,678 B2
- Document ID: US12113678B2
- Status: Granted
- Kind: B2
- Application number: 17/376,785
- Filed: 2021-07-15
- Published: 2022-09-08
- Granted: 2024-10-08
- Earliest claimed: 2021-03-05
- Assignees: VMware, Inc.
- Applicants: VMware LLC
- Inventors: Giridhar Subramani Jayavelu; Aravind Srinivasan; Amit Singh
- Web page: https://patentgrep.com/patent/US12113678B2

## CPC

- H04L 41/122: of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
- G06F 8/60: Software deployment
- G06F 9/3877: {using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12)}
- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/45545: {Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5044: {considering hardware capabilities}
- 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/541: {via adapters, e.g. between incompatible applications}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3409: {for performance assessment}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 30/331: with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
- G06N 20/00: Machine learning
- H04B 7/0452: Multi-user MIMO systems
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 41/5054: Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 67/565: Conversion or adaptation of application format or content (adding application control or application functional data H04L67/561)
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04L 67/61: taking into account QoS or priority requirements
- H04L 69/324: in the data link layer [OSI layer 2], e.g. HDLC
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- H04W 8/18: Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
- H04W 8/186: {Processing of subscriber group data}
- H04W 8/20: Transfer of user or subscriber data
- H04W 12/037: of the control plane, e.g. signalling traffic
- H04W 12/08: Access security
- H04W 24/02: Arrangements for optimising operational condition
- H04W 28/06: Optimizing {the usage of the radio link}, e.g. header compression, information sizing {, discarding information (system modifying transmission characteristic according to link quality by modifying frame length H04L1/0007; dynamic adaptation of the packet size for flow control or congestion control H04L47/365)}
- H04W 28/0865: {of different Radio Access Technologies [RATs], e.g. LTE® or Wi-Fi®}
- H04W 28/16: Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W 40/246: {Connectivity information discovery}
- H04W 48/14: using user query {or user detection}
- H04W 72/02: Selection of wireless resources by user or terminal
- H04W 72/0453: Resources in frequency domain, e.g. a carrier in FDMA
- H04W 72/046: {the resource being in the space domain, e.g. beams}
- H04W 72/20: Control channels or signalling for resource management
- H04W 72/29: between an access point and the access point controlling device
- H04W 72/51: based on terminal or device properties
- H04W 72/52: based on load
- H04W 72/542: using measured or perceived quality
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2209/548: Queue
- H04B 7/0634: {Antenna weights or vector/matrix coefficients}
- H04L 5/0048: {Allocation of pilot signals, i.e. of signals known to the receiver (allocation of control signalling H04L5/0053; use of control signalling H04L5/0091)}
- H04L 2212/00: Encapsulation of packets
- H04W 36/10: Reselecting an access point controller
- H04W 72/121: for groups of terminals or users
- H04W 84/042: {Public Land Mobile systems, e.g. cellular systems}
- H04W 88/085: {Access point devices with remote components}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04B: TRANSMISSION
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Some embodiments provide various methods for offloading operations in an O-RAN (Open Radio Access Network) onto control plane (CP) or edge applications that execute on host computers with hardware accelerators in software defined datacenters (SDDCs). At the CP or edge application operating on a machine executing on a host computer with a hardware accelerator, the method of some embodiments receives data, from an O-RAN E2 unit, to perform an operation. The method uses a driver of the machine to communicate directly with the hardware accelerator to direct the hardware accelerator to perform a set of computations associated with the operation. This driver allows the communication with the hardware accelerator to bypass an intervening set of drivers executing on the host computer between the machine's driver and the hardware accelerator. Through this driver, the application in some embodiments receives the computation results, which it then provides to one or more O-RAN components (e.g., to the E2 unit that provided the data, another E2 unit or another control plane or edge application).

## Claims

### Claim 1

A method of performing operations in an O-RAN (Open Radio Access Network), the method comprising:
deploying a virtualization application on a host computer for sharing resources of the host computer among a plurality of machines executing on the host computer with a first set of one or more physical hardware accelerators;
deploying a plurality of applications on the plurality of the machines to perform a plurality of operations for a set of components in the O-RAN, the plurality of applications comprising a first application;
through the virtualization application, defining a second set of a plurality of virtual hardware accelerators that are implemented by the first set of physical hardware accelerators, the plurality of virtual hardware accelerators comprising a first virtual hardware accelerator;
assigning the first virtual hardware accelerator to the first application;
configuring the first application to use the first virtual hardware accelerator to perform an operation;
wherein the plurality of machines comprises a first machine, the first machine comprises a first hardware accelerator driver configured to communicate directly with the first virtual hardware accelerator to bypass an intervening set of drivers executing on the host computer.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of machines comprises a plurality of Pods, the plurality of Pods comprises a first Pod, and deploying the plurality of applications comprises deploying the first application to execute on the first Pod.

### Claim 3 (depends on 2)

The method of claim 2, wherein at least two Pods execute on one virtual machine that executes above the virtualization application, wherein the virtual machine comprises a hardware accelerator driver that is configured to communicate with two different virtual hardware accelerators for the two applications executing on the two Pods.

### Claim 4 (depends on 2)

The method of claim 2, wherein
the plurality of Pods comprises first and second Pods that execute on a first virtual machine (VM) that executes above the virtualization application, and the method further comprising:
configuring a first hardware accelerator driver of the first Pod to communicate with a first virtual hardware accelerator; and
configuring a second hardware accelerator driver of the second Pod to communicate with a second virtual hardware accelerator.

### Claim 5 (depends on 1)

The method of claim 1, wherein the plurality of machines are a plurality of virtual machines (VM), each VM comprising a hardware accelerator driver that is configured to communicate with a different virtual hardware accelerator defined by the virtualization application executing on the host computer.

### Claim 6 (depends on 5)

The method of claim 5, wherein the virtualization application is a hypervisor.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first application includes a first control plane application of the O-RAN.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first application includes an xApp of the O-RAN, and the xApp is a software application installed on a near-real-time RAN Intelligent Controller (RIC).

### Claim 9 (depends on 1)

The method of claim 1, wherein the first application includes an edge application of the O-RAN.

### Claim 10 (depends on 1)

The method of claim 1, wherein the intervening set of drivers comprises a driver of at least one of an operating system or a hypervisor executing on the host computer.

### Claim 11

A non-transitory machine readable medium storing a program which when executed by at least one processing unit performs operations in an O-RAN (Open Radio Access Network), the program comprising sets of instructions for:
deploying a virtualization application on a host computer for sharing resources of the host computer among a plurality of machines executing on the host computer with a first set of one or more physical hardware accelerators;
deploying a plurality of applications on the plurality of the machines to perform a plurality of operations for a set of components in the O-RAN, the plurality of applications comprising a first application;
through the virtualization application, defining a second set of a plurality of virtual hardware accelerators that are implemented by the first set of physical hardware accelerators, the plurality of virtual hardware accelerators comprising a first virtual hardware accelerator;
assigning the first virtual hardware accelerator to the first application;
configuring the first application to use the first virtual hardware accelerator to perform an operation; and
wherein the plurality of machines comprises a first machine, the first machine comprises a first hardware accelerator driver configured to communicate directly with the first virtual hardware accelerator to bypass an intervening set of drivers executing on the host computer.

### Claim 12 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the plurality of machines comprises a plurality of Pods, the plurality of Pods comprises a first Pod, and the set of instructions for deploying the plurality of applications comprises a set of instructions for deploying the first application to execute on the first Pod.

### Claim 13 (depends on 12)

The non-transitory machine readable medium of claim 12, wherein at least two Pods execute on one virtual machine that executes above the virtualization application, wherein the virtual machine comprises a hardware accelerator driver that is configured to communicate with two different virtual hardware accelerators for the two applications executing on the two Pods.

### Claim 14 (depends on 12)

The non-transitory machine readable medium of claim 12, wherein
the plurality of Pods comprises first and second Pods that execute on a first virtual machine (VM) that executes above the virtualization application, and the sets of instructions being further configured for:
configuring a first hardware accelerator driver of the first Pod to communicate with a first virtual hardware accelerator; and
configuring a second hardware accelerator driver of the second Pod to communicate with a second virtual hardware accelerator.

### Claim 15 (depends on 10)

The non-transitory machine readable medium of claim 10, wherein the plurality of machines are a plurality of virtual machines (VM), each VM comprising a hardware accelerator driver that is configured to communicate with a different virtual hardware accelerator defined by the virtualization application executing on the host computer.

### Claim 16 (depends on 15)

The non-transitory machine readable medium of claim 15, wherein the virtualization application is a hypervisor.

### Claim 17 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the first application includes a first control plane application of the O-RAN.

### Claim 18 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the first application includes an xApp of the O-RAN, and the xApp is a software application installed on a near-real-time RAN Intelligent Controller (RIC).

### Claim 19 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the plurality of applications includes a plurality of edge applications of the O-RAN.
