JP2024513628A - RIC SDK - Google Patents

RIC SDK Download PDF

Info

Publication number
JP2024513628A
JP2024513628A JP2023540965A JP2023540965A JP2024513628A JP 2024513628 A JP2024513628 A JP 2024513628A JP 2023540965 A JP2023540965 A JP 2023540965A JP 2023540965 A JP2023540965 A JP 2023540965A JP 2024513628 A JP2024513628 A JP 2024513628A
Authority
JP
Japan
Prior art keywords
ric
control plane
data
sdl
sdk
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2023540965A
Other languages
Japanese (ja)
Inventor
アミット シン,
ラケシュ ミスラ,
アディチャ グディパチ,
ジャヤヴェリュ, ギリダール スブラマニ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VMware LLC
Original Assignee
VMware LLC
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
Priority claimed from US17/376,758 external-priority patent/US20220283839A1/en
Application filed by VMware LLC filed Critical VMware LLC
Publication of JP2024513628A publication Critical patent/JP2024513628A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices
    • H04W88/085Access point devices with remote components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/12Access point controller devices

Abstract

低遅延のニアRT RICを提供するために、いくつかの実施形態は、RICの機能を、同一のホストコンピュータ又は異なるホストコンピュータ上で動作する異なるマシン(例えば、VM又はポッド上で実行する)上で動作するいくつかの異なるコンポーネントに分離する。いくつかの実施形態はまた、これらのマシン間に高速インタフェースを提供する。これらのインタフェースの一部又は全部は、ニアRT RICの重要な動作(例えば、データパス処理)が、1つ以上のコンポーネントをストールさせる複数の要求のために遅延しないことを保証するために、ノンブロッキング、ロックレスの態様で動作する。さらに、これらのRICコンポーネントのそれぞれは、コンポーネントのあるプロセスがコンポーネントの別のプロセスの動作をブロックできないように、ノンブロッキングの態様で動作するように設計された内部アーキテクチャも有する。これらの低遅延機能はすべて、ニアRT RICがE2ノードとxApp間の高速IOとして機能できるようにする。To provide a low-latency Near-RT RIC, some embodiments separate the functionality of the RIC into several different components that run on different machines (e.g., running on VMs or pods) that run on the same or different host computers. Some embodiments also provide high-speed interfaces between these machines. Some or all of these interfaces operate in a non-blocking, lockless manner to ensure that critical operations of the Near-RT RIC (e.g., datapath processing) are not delayed due to multiple requests that stall one or more components. Furthermore, each of these RIC components also has an internal architecture designed to operate in a non-blocking manner so that a process of one component cannot block the operation of another process of the component. All of these low-latency features enable the Near-RT RIC to act as a high-speed IO between the E2 nodes and the xApps.

Description

電気通信ネットワークでは、無線アクセスネットワーク(RAN)は、電気通信標準の各イテレーションに伴って、より多くの機能を実行する。すなわち、従来の標準と比較して5Gの利点を利用可能にするために、5G RANは様々な付加機能を実行する。 In telecommunications networks, radio access networks (RANs) perform more functions with each iteration of telecommunications standards. That is, 5G RAN performs various additional functions to enable the benefits of 5G compared to traditional standards.

これらのRAN機能は、ユーザデバイスとコアネットワークとの間に位置するので、コンピューティング能力が制限され得る基地局(例えば、セルタワー)においてしばしば実行される。 These RAN functions are often performed at base stations (eg, cell towers) where computing power may be limited because they are located between the user devices and the core network.

いくつかの実施形態は、電気通信ネットワークのための新しいRANインテリジェントコントローラ(RIC)を提供する。例えば、低遅延のニアRT RICを提供するために、いくつかの実施形態は、RIC機能を、同一のホストコンピュータ又は異なるホストコンピュータ上で動作する、異なるマシン上で動作する(例えば、VM又はポッド上で動作する)いくつかの異なるコンポーネントに分離する。また、いくつかの実施形態は、これらのマシン間に高速なインタフェースを提供する。これらのインタフェースの一部又は全部は、ニアRT RICの重要な動作(例えば、データパス処理)が、1つ以上のコンポーネントをストールさせる複数の要求のために遅延しないことを保証するために、ノンブロッキング(non-blocking)、ロックレス(lockless)の態様で動作する。さらに、これらのRICコンポーネントのそれぞれは、コンポーネントのあるプロセスがコンポーネントの別のプロセスの動作をブロックできないように、ノンブロッキングの態様で動作するように設計された内部アーキテクチャも有する。これらの低遅延機能のすべては、ニアRT RICが、基地局ノード(すなわちE2ノード)と制御プレーンアプリケーション(例えばxApps)との間で高速IOでサービスを行うことを可能にする。 Some embodiments provide a new RAN intelligent controller (RIC) for telecommunications networks. For example, to provide low-latency near-RT RIC, some embodiments provide RIC functions running on different machines (e.g., VMs or pods) running on the same host computer or different host computers. ) into several different components. Also, some embodiments provide a high speed interface between these machines. Some or all of these interfaces are non-blocking to ensure that critical operations of the near RT RIC (e.g. datapath processing) are not delayed due to multiple requests stalling one or more components. It operates in a non-blocking and lockless manner. Additionally, each of these RIC components also has an internal architecture designed to operate in a non-blocking manner so that one process of the component cannot block the operation of another process of the component. All of these low-latency features enable the near RT RIC to service high-speed IO between base station nodes (ie, E2 nodes) and control plane applications (eg, xApps).

いくつかの実施形態では、ニアRT RICは、データパスポッド(datapath Pod)、サービスポッド(service Pod)、及びSDL(共有データレイヤ(shared data layer))ポッドを含む。RICの低遅延アーキテクチャの一部は、異なるポッドを使用してデータIO、サービス、及びSDL動作を実施することに起因する。そのため、実行する動作のそれぞれのニーズに基づいて、異なるリソース割り当て及び管理動作をこれらのポッドのそれぞれに提供できる。また、いくつかの実施形態では、RICは、その様々なポッド間に低遅延メッセージングを提供する。 In some embodiments, the near RT RIC includes a datapath pod, a service pod, and an SDL (shared data layer) pod. Part of RIC's low-latency architecture is due to the use of different pods to implement data IO, services, and SDL operations. As such, different resource allocation and management operations can be provided to each of these pods based on their respective needs for the operations they perform. Also, in some embodiments, the RIC provides low latency messaging between its various pods.

サービスポッドは、いくつかの実施形態において、アプリケーション(例えばxApp)オンボーディング、登録、FCAPS(障害、構成、アカウンティング、性能、セキュリティ)、及びその他のサービスを実行する。また、他のRICコンポーネントにサービス(メトリック収集、ポリシープロビジョニング及び構成など)を提供する。SDLポッドは、ニアRT RICの共有データレイヤを実施する。また、いくつかの実施形態のSDLポッドは、1つ以上のサービスコンテナを実行して、SDLに格納されたデータに対して1つ以上の前処理又は後処理サービスを実行する。 Service pods, in some embodiments, perform application (eg, xApp) onboarding, registration, FCAPS (fault, configuration, accounting, performance, security), and other services. It also provides services (such as metric collection, policy provisioning and configuration) to other RIC components. The SDL pod implements the shared data layer of the near RT RIC. The SDL pod of some embodiments also executes one or more service containers to perform one or more pre-processing or post-processing services on data stored in the SDL.

データパスポッドは、通信ネットワークの基地局コンポーネント間でデータメッセージ転送を実行し、このネットワークの制御及びエッジアプリケーションを実行する。いくつかの実施形態では、データパスポッドのデータパスサービスの一部又は全部が、データパスポッドのデータパススレッド及び制御スレッドに組み込まれる。他の実施形態では、データパスサービスは、データIOスレッド、複数のデータ処理スレッド(DPT)及び制御スレッドに組み込まれる。 Datapath pods perform data message transfer between base station components of a communications network and perform control and edge applications for this network. In some embodiments, some or all of the datapath services of a datapath pod are incorporated into the datapath thread and control thread of the datapath pod. In other embodiments, data path services are incorporated into a data IO thread, multiple data processing threads (DPTs), and a control thread.

いくつかの実施形態における制御スレッドは、データパススレッドのためのサービスポッド及びSDLポッドとのインタフェースであるが、他の実施形態では、データパススレッドのためのサービスポッドへのインタフェースである(データパススレッドはSDLポッドと直接通信できるため)。これらのいずれかのアプローチの制御スレッドは、データパスの低速な制御関連動作を実行し、一方、1つ以上のデータパススレッドは、データパスの高速なIO動作を実行する。いくつかの実施形態における制御スレッドは、データパススレッドの動作だけでなく、それ自体の動作を構成するための構成データを受信するために、サービスポッドとインタフェースを有する。 The control thread in some embodiments is the interface to the service pod and the SDL pod for the datapath thread, while in other embodiments it is the interface to the service pod for the datapath thread (datapath (because threads can communicate directly with SDL pods). The control thread in either of these approaches performs the slow control-related operations of the datapath, while one or more datapath threads performs the fast IO operations of the datapath. The control thread in some embodiments has an interface with the service pod to receive configuration data to configure its own operation as well as the operation of the datapath thread.

データパススレッドをデータIOスレッド及び複数のデータ処理スレッドに分離する実施形態は、データパススレッドのより計算量の多い動作を複数のデータパス処理スレッドにプッシュすることにより、データIOをさらに最適化し、それにより、データIOスレッドで実行する計算量の少ない動作を可能にする。これらの最適化の両方は、(不要な遅延を発生しない)高速データパスIOを確実にすることを意図しており、これにより、ニアRT RICは、基地局ノードと制御及びエッジアプリケーションとの間の高速インタフェースとして機能することができる。 Embodiments that separate the data path thread into a data IO thread and multiple data processing threads further optimize data IO by pushing the more computationally intensive operations of the data path thread to multiple data path processing threads, This allows for less computationally intensive operations to be performed on the data IO thread. Both of these optimizations are intended to ensure high-speed data path IO (without introducing unnecessary delays), which allows the near RT RIC to connect between base station nodes and control and edge applications. can function as a high-speed interface.

前述の発明の概要は、本発明のいくつかの実施形態への簡単な導入としての役割を果たすことを意図している。これは、この文書に開示されたすべての発明の主題の導入または概要であることを意味するものではない。以下の詳細な説明および詳細な説明で参照される図面は、発明の概要ならびに他の実施形態で説明される実施形態をさらに説明する。従って、本書面によって説明される全ての実施形態を理解するため、発明の概要、詳細な説明及び図面の十分な確認が必要である。さらに、請求項に記載された主題事項は、主題事項の概念から逸脱することなく、他の特定の形態で具体化することができるので、主題事項は、発明の概要、詳細な説明、及び図面において例示される詳細によって制限されるのではなく、むしろ、添付の請求項によって定義されるものである。 The foregoing Summary of the Invention is intended to serve as a brief introduction to some embodiments of the invention. This is not meant to be an introduction or summary of all inventive subject matter disclosed in this document. The following detailed description and the drawings referred to in the detailed description further explain the embodiments described in the Summary of the Invention as well as other embodiments. Therefore, in order to understand all the embodiments described in this document, a thorough review of the Summary of the Invention, Detailed Description, and Drawings is necessary. Furthermore, since the claimed subject matter may be embodied in other specific forms without departing from the concept of the subject matter, the subject matter may be incorporated into the Summary of the Invention, the Detailed Description, and the Drawings. It is intended not to be limited by the details illustrated in the appended claims, but rather to be defined by the appended claims.

本発明の新規の特徴は、添付の請求項に記載されている。しかしながら、説明の目的のため、本発明のいくつかの実施形態は以下の図において明らかになる。 The novel features of the invention are set forth in the appended claims. However, for illustrative purposes, some embodiments of the invention are set forth in the following figures.

いくつかの実施形態によるO-RANアーキテクチャの例を示す。1 illustrates an example O-RAN architecture according to some embodiments.

いくつかの実施形態による非リアルタイムのRIC及びニアリアルタイムのRICの両方のコンポーネントの詳細を示す。3 illustrates details of components of both a non-real-time RIC and a near-real-time RIC according to some embodiments.

いくつかの実施形態のMAC制御アシスタのより詳細な図を示す。FIG. 3 shows a more detailed diagram of the MAC control assistant of some embodiments.

いくつかの実施形態のユーザレベルトレーサのより詳細な図を示す。FIG. 4 shows a more detailed diagram of a user-level tracer of some embodiments.

いくつかの実施形態のO-RANアーキテクチャの別の図を示し、ニアリアルタイムのRICのより詳細な図を示す。FIG. 2 shows another diagram of the O-RAN architecture of some embodiments and shows a more detailed diagram of the near real-time RIC.

いくつかの実施形態において、制御プレーンアプリケーションを実行する、マシン上でのRIC SDKのデプロイを示す。2 illustrates the deployment of the RIC SDK on a machine running a control plane application in some embodiments.

いくつかの実施形態が、いくつかのホストコンピュータ上で実行するために、いくつかのRICをデプロイして、図5及び6に示されたRICコンポーネントを含む分散ニアRT RICを実施することを示す。5 illustrates that some embodiments deploy several RICs to run on several host computers to implement a distributed near RT RIC that includes the RIC components shown in FIGS. 5 and 6. .

2つの制御プレーンアプリケーションが実行される2つのマシンとともに、1つのホストコンピュータ上で実行されるRICを示す。Figure 3 shows a RIC running on one host computer with two machines running two control plane applications.

2つの制御プレーンアプリケーションと2つのRIC SDKが動作する2つのマシンとともに、2つのホストコンピュータ上で動作する2つのRICを示している。Two RICs are shown running on two host computers, along with two machines running two control plane applications and two RIC SDKs.

第1のホストコンピュータ上で動作し、2つの他のホストコンピュータ上で動作する2つのマシン上で動作する2つの制御プレーンアプリケーションを接続するRICを示す。1 shows a RIC connecting two control plane applications running on two machines running on a first host computer and running on two other host computers.

第1のホストコンピュータ上で動作し、2つのマシン上で動作する2つの制御プレーンアプリケーションを接続するRICであって、1つは第1のホストコンピュータ上で動作し、もう1つは別のホストコンピュータ上で動作する、ことを示す。A RIC running on a first host computer and connecting two control plane applications running on two machines, one running on the first host computer and one running on another host. Indicates that it runs on a computer.

いくつかの実施形態の分散ニアRT RICプラットフォームがサポートする、異なる標準仕様のAPIの例を示す。3 illustrates examples of different standard APIs supported by the distributed near RT RIC platform of some embodiments.

SDLキャッシュが、その制御プレーンと同じマシン上で動作する各RIC SDKの一部である実施形態を示す。An embodiment is shown in which the SDL cache is part of each RIC SDK running on the same machine as its control plane.

ホストコンピュータのハードウェアアクセラレータにパススルーアクセスして、それらの演算の一部又は全部を実行する制御アプリケーション又はエッジアプリケーションの例を示す。An example of a control or edge application that has pass-through access to a host computer's hardware accelerator to perform some or all of its operations is shown.

ホストコンピュータのハードウェアアクセラレータを使用することをアプリケーションに要求する動作を実行するためにCP又はエッジアプリケーションに指示するO-RANコンポーネントに応答して、いくつかの実施形態において実行される処理を示す。3 illustrates processing performed in some embodiments in response to an O-RAN component instructing a CP or edge application to perform an operation that requires the application to use a host computer's hardware accelerator;

E2ノードからのデータに基づいて動作を実行するアプリケーションを示している。An application is shown that performs operations based on data from an E2 node.

それらの演算の一部(又はすべて)を実行するために、ホストコンピュータのハードウェアアクセラレータへのパススルーアクセスを有する制御アプリケーション又はエッジアプリケーションの別の例を示す。2 illustrates another example of a control or edge application having pass-through access to a host computer's hardware accelerator to perform some (or all) of its operations.

ホストコンピュータのハードウェアアクセラレータにパススルーアクセスして、それらの演算の一部又は全部を実行するCP又はエッジアプリケーションの更に別の例を示す。FIG. 12 illustrates yet another example of a CP or edge application having pass-through access to a host computer's hardware accelerator to perform some or all of its operations.

いくつかの実施形態が、ホストコンピュータのハードウェアアクセラレータへの直接的なパススルーアクセスを有するO-RANアプリケーションをデプロイするために使用する処理を示す。Some embodiments illustrate a process used to deploy O-RAN applications with direct pass-through access to a host computer's hardware accelerator.

ホストコンピュータ上で実行されるハイパーバイザによって定義された仮想ハードウェアアクセラレータへのパススルーアクセスを有するCP又はエッジアプリケーションの例を示している。3 illustrates an example of a CP or edge application having pass-through access to a virtual hardware accelerator defined by a hypervisor running on a host computer.

いくつかの異なるマシン上で動作するいくつかのコンポーネントを有する、ニアRT RICの例を示す。Figure 3 shows an example of a near RT RIC with several components running on several different machines.

, 図21のニアRT RIC付近のコンポーネントをデプロイするための異なる例を示している。22 illustrates a different example for deploying components near the near RT RIC of FIG. 21;

, ニアRT RICの他の例を示している。Another example of a near RT RIC is shown.

RICデータパスポッドの例を示す。An example of a RIC datapath pod is shown.

データパススレッドが、いくつかの実施形態において、xAppからのサブスクリプション要求を処理するために実行する処理を示す。3 illustrates the processing that a datapath thread performs in some embodiments to process a subscription request from an xApp.

1つ以上のxAppが受信すべきE2ノードからのデータメッセージを処理するために、データIOスレッド及びDPTがいくつかの実施形態で実行する処理を示す。Figure 3 illustrates the processing that a data IO thread and DPT perform in some embodiments to process data messages from an E2 node that are to be received by one or more xApps.

データIOスレッド及びDPTが、いくつかの実施形態において、E2ノードに送信されるべきxAppからのデータメッセージを処理するために実行する処理を示す。FIG. 4 illustrates the processing that the data IO thread and DPT perform, in some embodiments, to process data messages from an xApp to be sent to an E2 node.

いくつかの実施形態においてデータIOスレッドがE2ノードをDPTに割り当てるために使用する処理の例を示す。FIG. 4 illustrates an example of a process used by a data IO thread to assign an E2 node to a DPT in some embodiments.

アクティブRICとスタンバイRICによって実施される分散ニアRT RICを示している。Figure 3 shows a distributed near RT RIC implemented by an active RIC and a standby RIC.

いくつかの実施形態において、ニアRT RICとE2ノード間、及びニアRT RICとxAppポッド間のインタフェースを示す。In some embodiments, interfaces between a near RT RIC and an E2 node, and between a near RT RIC and an xApp pod are shown.

ニアRT RICのデータパスポッドのE2APメッセージ処理を示す。Figure 3 shows the E2AP message processing of the near RT RIC datapath pod.

SDLポッドを有するいくつかの実施形態のRICインスタンスを示す。3 illustrates a RIC instance of some embodiments with an SDL pod.

本発明のいくつかの実施形態が実施される電子システムを概念的に示す。1 conceptually illustrates an electronic system in which some embodiments of the invention are implemented;

本発明の以下の詳細な説明では、本発明の多数の詳細、例及び実施形態を記載し説明する。しかしながら、本発明は、説明された実施形態に限定されず、本発明は、説明された特定の詳細および例のいくつか無しに実施されてもよいことが、当業者には明らかであり、明確であろう。 The following detailed description of the invention describes and explains numerous details, examples, and embodiments of the invention. However, it will be obvious and clear to those skilled in the art that the invention is not limited to the described embodiments and that the invention may be practiced without some of the specific details and examples described. Will.

今日、O-RANとして実装された電気通信ネットワーク(例えば、セルラーネットワーク)の無線アクセスネットワーク(RAN)を、RAN要素とインタフェースの相互運用性を可能にする標準に押す動きがある。図1は、いくつかの実施形態による、O-RANアーキテクチャ100の一例を示す。O-RANアーキテクチャ100は、非リアルタイムRIC105、ニアリアルタイムRANインテリジェントコントローラ115、オープン制御プレーン集中ユニット(O-CU-CP)120、オープンユーザプレーン集中ユニット(O-CU-UP)125、オープン分散ユニット(O-DU)130、オープン無線ユニット(O-RU)135、及びO-Cloud140を有するサービス管理及びオーケストレーションフレームワーク110を含む。O-CU-CP120、O-CU-UP125、及びO-DU130は、以下、まとめて管理対象機能120-130と称される場合がある。 Today, there is a movement to push radio access networks (RANs) of telecommunication networks (eg, cellular networks) implemented as O-RANs toward standards that allow interoperability of RAN elements and interfaces. FIG. 1 illustrates an example O-RAN architecture 100, according to some embodiments. The O-RAN architecture 100 includes a non-real-time RIC 105, a near-real-time RAN intelligent controller 115, an open control plane centralized unit (O-CU-CP) 120, an open user plane centralized unit (O-CU-UP) 125, an open distributed unit ( O-DU) 130, an open radio unit (O-RU) 135, and an O-Cloud 140. The O-CU-CP 120, O-CU-UP 125, and O-DU 130 may hereinafter be collectively referred to as managed functions 120-130.

標準に定義されるように、いくつかの実施形態のSMO110は、SMOがRIC115、管理対象機能120-130、及びO-Cloud140にオープンインタフェース150を介して接続し、管理することを可能にする統合ファブリックを含む。これらの要素とは異なり、O-RU135は、いくつかの実施形態では、SMO110によって管理されず、破線160によって示されるように、O-DU130によって代わりに管理される。いくつかの実施形態では、O-RU135は、無線周波数を処理し、O-DU130に送信する。 As defined in the standard, the SMO 110 of some embodiments provides integration that allows the SMO to connect to and manage the RIC 115, managed functions 120-130, and O-Cloud 140 via an open interface 150. Contains fabric. Unlike these elements, O-RU 135, in some embodiments, is not managed by SMO 110 and is instead managed by O-DU 130, as indicated by dashed line 160. In some embodiments, O-RU 135 processes and transmits radio frequencies to O-DU 130.

いくつかの実施形態では、管理対象機能120-130は、各々がプロトコルのセットをホストする論理ノードである。O-RAN規格によれば、例えば、O-CU-CP120は、いくつかの実施形態では、無線リソース制御(RRC)及びパケットデータコンバージェンスプロトコル(PDCP)の制御プレーン部分のようなプロトコルを含み、O-CU-UP125は、サービスデータアダプテーションプロトコル(SDAP)のようなプロトコルと、パケットデータコンバージェンスプロトコル(PDCP)のユーザプレーン部分を含む。 In some embodiments, the managed functions 120-130 are logical nodes that each host a set of protocols. In accordance with the O-RAN standard, for example, the O-CU-CP 120 in some embodiments includes protocols such as Radio Resource Control (RRC) and the control plane portion of the Packet Data Convergence Protocol (PDCP), and the O-CU-UP 125 includes protocols such as the Service Data Adaptation Protocol (SDAP) and the user plane portion of the Packet Data Convergence Protocol (PDCP).

2つのRICはそれぞれ、特定の制御ループとレイテンシ要件に適合している。ニアリアルタイムRIC115は、10msから1秒の時間サイクルで、オープン集中ユニット(O-CU)とオープン分散ユニット(O-DU)のプログラム制御を提供する。一方、非リアルタイムRIC(非RT RIC)105は、ニアRT RIC又はRANノードへの直接接続を介してRANで実施され得る上位レイヤポリシーを提供する。非RT RICは、1秒以上の制御ループに使用される。各RIC105又は115は、RAN制御アプリケーションを実行するプラットフォームとして機能する。これらのアプリケーションは、RICベンダとは異なるサードパーティサプライヤによって開発することができる。これらのアプリケーションは、「xApps」(ニアRT RIC115の場合)及び「rApps」(非RT RICの場合)と呼ばれる。 Each of the two RICs is tailored to specific control loop and latency requirements. The near real-time RIC 115 provides programmatic control of open centralized units (O-CU) and open distributed units (O-DU) with time cycles of 10 ms to 1 second. On the other hand, a non-real-time RIC (non-RT RIC) 105 provides higher layer policies that can be implemented in the RAN via a direct connection to a near RT RIC or RAN node. Non-RT RICs are used for control loops longer than 1 second. Each RIC 105 or 115 functions as a platform for executing RAN control applications. These applications may be developed by third party suppliers different from the RIC vendor. These applications are called "xApps" (for near RT RICs 115) and "rApps" (for non-RT RICs).

ニアリアルタイムRIC115は、いくつかの実施形態では、管理対象機能120-130を制御するために、インタフェース155を介したデータ収集及び通信を利用するいくつかの機能の論理的アグリゲーションである。いくつかの実施形態では、非リアルタイムRIC105は、機械学習及びモデル訓練を使用して、管理対象機能120-130を管理及び最適化する。これらの実施形態のいくつかにおけるニアRT RICは、機械学習も使用する。 Near real-time RIC 115, in some embodiments, is a logical aggregation of several functions that utilize data collection and communication via interface 155 to control managed functions 120-130. In some embodiments, non-real-time RIC 105 uses machine learning and model training to manage and optimize managed functions 120-130. The near RT RIC in some of these embodiments also uses machine learning.

いくつかの実施形態では、O-Cloud140は、RIC115及び管理対象機能120-130によって使用される仮想ネットワーク機能(VNF)を作成し、ホストする役割を果たす。いくつかの実施形態では、DUは、ユーザスケジューリングのスロット毎の判定を担当し、MAC制御アシスト及びユーザレベルのトレーシングを行うRANスケジューラを含む。クラウドで利用可能なコンピューティング能力を増加させるために(すなわち、典型的にRAN機能を実行する基地局と比較して)、RICは、1つ以上のパブリック及び/又はプライベートクラウドデータセンタで実施され、クラウドで改良されたクラウド定義RANスケジューラを実施し、それにより、これらのMAC制御アシスト及びユーザレベルトレーシング機能をDUからRICにオフロードする。いくつかの実施形態におけるインタフェース155は、RANがRICにおいて機能への入力を提供することを可能にし、少なくともいくつかの実施形態では、RICにおいてこれらの機能によって計算された出力を受信する。 In some embodiments, O-Cloud 140 is responsible for creating and hosting virtual network functions (VNFs) used by RIC 115 and managed functions 120-130. In some embodiments, the DU includes a RAN scheduler that is responsible for making per-slot decisions for user scheduling and provides MAC control assistance and user-level tracing. To increase the computing power available in the cloud (i.e., compared to base stations that typically perform RAN functions), the RIC may be implemented in one or more public and/or private cloud data centers. , implements an improved cloud-defined RAN scheduler in the cloud, thereby offloading these MAC control assist and user-level tracing functions from the DU to the RIC. Interface 155 in some embodiments allows the RAN to provide input to functions at the RIC and, in at least some embodiments, receive output computed by these functions at the RIC.

図2は、非リアルタイムRIC201とニアリアルタイムRIC202の両方のコンポーネントの詳細な図を示す。RIC201及び202のそれぞれは、それぞれのセットの分析機能210及び212と、それぞれのセットの最適化機能214及び216とを含み、これらはそれぞれ、既存のコンポーネントであることを示すために破線で示される。これらの既存のコンポーネントに加えて、ニアリアルタイム最適化機能216は、2つの新しいコンポーネント、MAC制御アシスタ220及びユーザレベルトレーサ222を含み、実線で示されて既存のコンポーネントと視覚的に区別する。いくつかの実施形態において、これらのコンポーネントは、より大きなMIMOコンポーネントの一部である(例えば、MU-MIMO UEのペアラー及びプリコーダと共に)。 FIG. 2 shows a detailed diagram of the components of both non-real-time RIC 201 and near-real-time RIC 202. Each of the RICs 201 and 202 includes a respective set of analysis functions 210 and 212 and a respective set of optimization functions 214 and 216, each of which is shown in dashed lines to indicate that it is an existing component. . In addition to these existing components, near real-time optimization function 216 includes two new components, MAC Control Assister 220 and User Level Tracer 222, which are shown in solid lines to visually distinguish them from the existing components. In some embodiments, these components are part of a larger MIMO component (eg, along with a MU-MIMO UE pairer and precoder).

いくつかの実施形態において、MAC制御アシスタ220は、(1)UL SRSチャネル信号受信に基づくユーザ機器(UE)特定ビームフォーミング重み計算、(2) UE無線周波数(RF)条件予測、及び(3)UE特定ビームに基づくMACスケジューラに対するマルチユーザ、マルチ入力、マルチ出力(MU-MIMO)ペアリング提案などの様々な機能を含むことができる。これらの各機能について、いくつかの実施形態は、レポートインタフェース(DUからRICへの関数の入力データを提供する)と、制御インタフェース(RICからDUへの関数の出力データを提供する)を公開する。 In some embodiments, the MAC control assistant 220 performs (1) user equipment (UE) specific beamforming weight calculations based on UL SRS channel signal reception, (2) UE radio frequency (RF) condition prediction, and (3) Various features may be included, such as multi-user, multi-input, multi-output (MU-MIMO) pairing suggestions for MAC schedulers based on UE-specific beams. For each of these functions, some embodiments expose a reporting interface (which provides input data for the DU to RIC function) and a control interface (which provides output data for the RIC to DU function). .

ユーザレベルトレーサ222は、いくつかの実施形態では、ユーザ構成及びトラフィック性能に関連するL1/L2/L3レベル情報を生成する。このトレースデータは、MACスケジューラ、パラメータ設定など、さまざまな制御アルゴリズムへの入力として使用できる。ユーザレベルトレーサ222は、(i)セル内のユーザ動作を追跡することができるトレース動作、(ii)ユーザRF条件の追跡、(iii)異なるレイヤ(MAC、無線リンク制御(RLC)、パケットデータコンバージェンスプロトコル(PDCP))内のユーザデータトラフィック性能の追跡、及び(iv)ユーザRFリソース消費を含むことができるトレース動作を含むことができる。 User level tracer 222, in some embodiments, generates L1/L2/L3 level information related to user configuration and traffic performance. This trace data can be used as input to various control algorithms such as MAC schedulers, parameter settings, etc. The user level tracer 222 includes (i) tracing operations that can track user operations within a cell, (ii) tracking user RF conditions, and (iii) different layers (MAC, Radio Link Control (RLC), packet data convergence). (iv) tracking of user data traffic performance within the protocol (PDCP); and (iv) user RF resource consumption.

図3は、いくつかの実施形態のMAC制御アシスタ300のより詳細な図を示す。説明するように、MAC制御アシスタ300は、UE-特定ビームフォーミング重み計算器(BFWC)310、UE RF条件プレディクタ320、及びMU-MIMOペアリングサジェスタ330を含んでいる。いくつかの実施形態におけるUE特定BFWC310は、UL SRSチャネル信号受信に基づいている。いくつかの実施形態では、MU-MIMOペアリングサジェスタ330は、UE特定ビームに基づくMACスケジューラのためのものである。 FIG. 3 shows a more detailed diagram of the MAC control assistant 300 of some embodiments. As described, the MAC control assistant 300 includes a UE-specific beamforming weight calculator (BFWC) 310, a UE RF condition predictor 320, and a MU-MIMO pairing suggester 330. UE-specific BFWC 310 in some embodiments is based on UL SRS channel signal reception. In some embodiments, the MU-MIMO pairing suggester 330 is for a UE-specific beam-based MAC scheduler.

MAC制御アシスタ300のコンポーネント310-330の各々は、説明するように、アップリンクとダウンリンクを含む。UE特定BWC機能のために、いくつかの実施形態は、重み計算関数への入力であるアップリンク音声参照信号(UL SRS)チャネル応答行列と、UE特定ビームフォーミング重み行列のための制御インタフェースとのためのレポートインタフェースを公開する。UE RF条件プレディクタ機能のために、いくつかの実施形態は、RF条件プレディクタへの入力であるダウンリンク(DL)チャネル状態レポートのためのレポートインタフェースと、次のスケジューリングウィンドウのための予測されたDLチャネル状態(例えば、DL SINR、PMI、及びランクを含む)のための制御インタフェースを公開する。MU-MIMOペアリング提案機能のために、いくつかの実施形態は、UEペアリング提案機能への入力であるUE特定ビームフォーミング重み行列のレポートインタフェースと、UEペアリング提案及びSINR影響評価のための制御インタフェースを公開する。 Each of the components 310-330 of MAC control assistant 300 includes an uplink and a downlink, as described. For UE-specific BWC functions, some embodiments include an uplink voice reference signal (UL SRS) channel response matrix that is an input to a weight calculation function and a control interface for a UE-specific beamforming weight matrix. Publish a reporting interface for For the UE RF condition predictor functionality, some embodiments include a reporting interface for downlink (DL) channel condition reports that are inputs to the RF condition predictor and a predicted DL channel condition report for the next scheduling window. Expose control interfaces for channel conditions (including, for example, DL SINR, PMI, and rank). For the MU-MIMO pairing proposal function, some embodiments provide a reporting interface for the UE-specific beamforming weight matrix that is input to the UE pairing proposal function, and a reporting interface for the UE pairing proposal and SINR impact evaluation. Expose the control interface.

図4は、いくつかの実施形態のユーザレベルトレーサ400のより詳細な図を示す。トレーサ400は、いくつかの実施形態では、追跡動作を実行するための複数のアップリンク410と複数のダウンリンク415とを含む。これらの動作は、ユーザ設定とトラフィックパフォーマンスに関連するL1/L2/L3レベルの情報を生成する。このトレースデータは、MACスケジューラ、パラメータ設定など、さまざまな制御アルゴリズムへの入力として使用できる。これらの追跡動作は、1)セル内のユーザ挙動を追跡、2)ユーザRF条件を追跡、3)異なるレイヤ(MAC、RLC、PDCP)におけるユーザデータトラフィック性能を追跡、及び4)ユーザRFリソース消費を追跡することができる。 FIG. 4 shows a more detailed diagram of the user level tracer 400 of some embodiments. Tracer 400, in some embodiments, includes multiple uplinks 410 and multiple downlinks 415 for performing tracking operations. These operations generate L1/L2/L3 level information related to user settings and traffic performance. This trace data can be used as input to various control algorithms such as MAC schedulers, parameter settings, etc. These tracking operations include: 1) tracking user behavior within the cell, 2) tracking user RF conditions, 3) tracking user data traffic performance at different layers (MAC, RLC, PDCP), and 4) user RF resource consumption. can be tracked.

これらのトレース動作のために、いくつかの実施形態は、DU及び/又はCUのためのレポートインタフェースを公開して、ユーザレベルの追跡動作に様々なメトリックを提供する。これらのメトリックには、選択したRRCメッセージ、MAC/RLC/PDCPトラフィック量と性能、RF状態、及びRFリソース消費を含めることができる。いくつかの実施形態において、RICへのこれらのインタフェースを介したメッセージは、ユーザの挙動及び/又は定期的な報告(例えば、トラフィック性能及びRF条件/リソース消費のため)に基づいてトリガされる。 For these tracing operations, some embodiments expose reporting interfaces for DUs and/or CUs to provide various metrics for user-level tracking operations. These metrics may include selected RRC messages, MAC/RLC/PDCP traffic volume and performance, RF conditions, and RF resource consumption. In some embodiments, messages through these interfaces to the RIC are triggered based on user behavior and/or periodic reporting (eg, for traffic performance and RF conditions/resource consumption).

追跡動作は、上に示された様々なユーザデータを追跡し、この情報をRANに戻すか、又は他の制御アルゴリズム(例えば、RICで動作する他のアルゴリズム)に提供することができる。例えば、これらのアルゴリズムは、ユーザレベルのトレース動作からユーザデータ性能に関する分析を実行し、特定の性能が不十分であると判定し、RANがユーザ・トラフィックをどのように処理しているかを変更する。いくつかの実施形態においてユーザレベルのトレースから利益を得ることができる制御アルゴリズムの例は、(1)トラフィックステアリング、(2)サービス品質(QoS)スケジューリング最適化、(3)ユーザ構成調整、及び(4)ユーザ動作異常検出、を含む。 Tracking operations may track the various user data indicated above and provide this information back to the RAN or to other control algorithms (eg, other algorithms operating on the RIC). For example, these algorithms perform analysis on user data performance from user-level trace operations, determine that certain performance is insufficient, and modify how the RAN is handling user traffic. . Examples of control algorithms that can benefit from user-level tracing in some embodiments are (1) traffic steering, (2) quality of service (QoS) scheduling optimization, (3) user configuration adjustment, and ( 4) Including user operation abnormality detection.

図3-4で説明されているすべての動作(つまり、MACスケジューラ機能とユーザレベルの追跡動作)では、クラウド内のRICで利用可能な計算能力の増加によって、過剰な遅延なしで、より複雑な計算が可能になる。例えば、これらの動作の一部又は全部は、機械学習を使用してRICで実行することができる(例えば、機械で訓練されたネットワークを使用する)。 All operations described in Figures 3-4 (i.e., MAC scheduler functions and user-level tracking operations) can be performed without excessive delay, due to the increased computational power available on the RIC in the cloud. Calculations become possible. For example, some or all of these operations may be performed in the RIC using machine learning (eg, using a machine-trained network).

図5は、いくつかの実施形態のO-RANアーキテクチャの別の図を示し、ニアリアルタイムのRICのより詳細な図を示す。アーキテクチャ500は、非リアルタイムRIC510、分散ニアリアルタイムRIC515、及びE2ノード520(例えば、O-DU及び/又はO-CUノード)を有するSMO505を含む。分散ニアリアルタイムRIC515は、メッセージングインフラストラクチャ540、サービスのセット(例えば、550、552、554、及び556)、共有データレイヤ560、データベース570、及び終端インタフェースのセット(例えば、580、582、及び584)を含む。図に示すように、組み込みアプリのセット(530、532、534など)は、この分散ニアRT RICを使用する。以下にさらに説明するように、いくつかの実施形態では、分散ニアRT RIC515は、複数のホストコンピュータ上で実行される複数のRICによって実現される。 5 illustrates another diagram of an O-RAN architecture of some embodiments, showing a more detailed view of a near-real-time RIC. The architecture 500 includes a SMO 505 having a non-real-time RIC 510, a distributed near-real-time RIC 515, and an E2 node 520 (e.g., an O-DU and/or O-CU node). The distributed near-real-time RIC 515 includes a messaging infrastructure 540, a set of services (e.g., 550, 552, 554, and 556), a shared data layer 560, a database 570, and a set of termination interfaces (e.g., 580, 582, and 584). As shown, a set of embedded apps (e.g., 530, 532, 534) use this distributed near-RT RIC. As described further below, in some embodiments, the distributed near-RT RIC 515 is realized by multiple RICs running on multiple host computers.

図に示すように、サービスのセットは、コンフリクトマイグレーションサービス550、アプリサブスクリプション管理サービス552、管理サービス554、及びセキュリティサービス556を含む。さらに、終端インタフェースのセットは、SMOをニアリアルタイムRICに接続するО1終端インタフェース580、ノンリアルタイムRICをニアリアルタイムRICに接続するA1終端インタフェース582、E2ノードをニアリアルタイムRICに接続するE2終端インタフェース584を含む。アプリの各々は、いくつかの実施形態では、E2ノード520から送られたデータを使用するRICの様々な機能を代表する。例えば、アプリ530は、MAC制御アシスタ300のUE特定BFWC310に対応し、アプリ532は、MAC制御アシスタ300のUE RF条件プレディクタ320に対応する、など。 As shown, the set of services includes a conflict migration service 550, an app subscription management service 552, a management service 554, and a security service 556. Additionally, the set of termination interfaces includes an O1 termination interface 580 that connects the SMO to the near real-time RIC, an A1 termination interface 582 that connects the non-real-time RIC to the near real-time RIC, and an E2 termination interface 584 that connects the E2 node to the near real-time RIC. include. Each of the apps, in some embodiments, represents a different function of the RIC that uses data sent from the E2 node 520. For example, app 530 corresponds to UE-specific BFWC 310 of MAC control assistant 300, app 532 corresponds to UE RF condition predictor 320 of MAC control assistant 300, and so on.

いくつかの実施形態では、フレームワーク500の目的は、演算集中型のニアリアルタイムの機能をオフロードし、結果をO-DUに戻すことである(例えば、E2インタフェースを介してE2ノード520に提供する)。いくつかの実施形態では、結果は、MACレイヤにおけるリアルタイム判定を支援又は強化するために使用することができる。MAC制御アシストフレームワークの3つのユースケース例、MAC制御アシスタの異なるコンポーネントに固有の各サンプル(例えば、UE特定BFWC、UE RF条件プレディクタ、MU-MIMOペアリングサジェスタ)、及びユーザレベルトレーサの1つのユースケース例について、以下に説明する。 In some embodiments, the purpose of framework 500 is to offload compute-intensive near real-time functions and return results to O-DU (e.g., provided to E2 node 520 via an E2 interface). do). In some embodiments, the results can be used to assist or enhance real-time decisions at the MAC layer. Three example use cases of the MAC control assist framework, each example specific to a different component of the MAC control assister (e.g., UE-specific BFWC, UE RF condition predictor, MU-MIMO pairing suggester), and one of the user-level tracers. Two example use cases are described below.

第1のユースケースの例は、MAC制御アシストフレームワークのUL SRS信号受信コンポーネント(例えば、MAC制御アシスタ300のコンポーネント310)に基づくUE特定ビームフォーミング重み計算に特有のものである。この使用事例のいくつかの実施形態では、入力メトリックは、未加工のSRS受信データのようなUL SRSに基づく複数のオプションと、チャネル推定からのSRSチャネル応答行列を含むことができる。 A first example use case is specific to UE-specific beamforming weight calculations based on the UL SRS signal reception component of the MAC control assist framework (eg, component 310 of MAC control assister 300). In some embodiments of this use case, the input metrics may include options based on UL SRS, such as raw SRS received data, and SRS channel response matrices from channel estimation.

いくつかの実施形態では、出力メトリックを生成するためのアルゴリズムは、ユーザに到達するために最適ビームフォーミングの重みを評価する。一部の実施形態は、チャネルモデルに基づく従来の信号処理アルゴリズムを使用する。代わりに、又は、組み合わせて、生データ入力を利用する機械学習ベースのアルゴリズムが使用され、これはE2ノード520内のDUからのフィードバックを必要とする。 In some embodiments, the algorithm for generating the output metric evaluates the optimal beamforming weights to reach the user. Some embodiments use conventional signal processing algorithms based on channel models. Alternatively, or in combination, machine learning-based algorithms that utilize raw data input are used, which require feedback from the DU within E2 node 520.

いくつかの実施形態では、アルゴリズムから得られる出力メトリックは、ユーザのためのビームフォーミング重み行列を含む。いくつかの実施形態において、BFWは、予め設計されたビームセットからのビームインデックスにマッピングすることもできる。いくつかの実施形態におけるDUは、ユーザデータの送受信のためにRU(例えば、アーキテクチャ100内のO-RU135)内のMIMOアンテナアレイゲイン/位相合わせを制御するために行列を使用する。 In some embodiments, the output metric obtained from the algorithm includes a beamforming weight matrix for the user. In some embodiments, the BFW can also be mapped to a beam index from a pre-designed beam set. The DU in some embodiments uses matrices to control MIMO antenna array gain/phasing within the RU (eg, O-RU 135 in architecture 100) for transmitting and receiving user data.

第2のユースケースの例は、MAC制御アシストフレームワーク(例えば、MAC制御アシスタ300のコンポーネント320)のUE RF条件プレディクタコンポーネントに特有である。この第2のユースケースでは、いくつかの実施形態によれば、入力メトリックは、少なくとも、DLの場合は広帯域又はサブバンドCQI/PMI/RI、又はULの場合はSRSのような、UEからのチャネルレポートを含む。いくつかの実施形態の入力メトリックは、UE距離、UE位置決めなどの支援情報を含むことを選択することもできる。 A second use case example is specific to the UE RF Condition Predictor component of the MAC Control Assist framework (eg, component 320 of MAC Control Assister 300). In this second use case, according to some embodiments, the input metrics are at least from the UE, such as wideband or subband CQI/PMI/RI for DL or SRS for UL. Includes channel reports. The input metrics of some embodiments may also choose to include assistance information such as UE distance, UE positioning, etc.

いくつかの実施形態では、この第2のユースケースのためのアプリアルゴリズムは、観測に基づいてUEのRF条件を予測することを意図している。一部の実施形態は、チャネル及び移動度モデルに基づく伝統的な信号処理アルゴリズムを利用する。代わりに、又は、組み合わせて、いくつかの実施形態は、データ入力及び潜在的にはサイトレイアウト(DUからのフィードバックを必要とする)のような他の要因を使用する機械学習ベースのアルゴリズムも使用する。 In some embodiments, the app algorithm for this second use case is intended to predict the UE's RF conditions based on observations. Some embodiments utilize traditional signal processing algorithms based on channel and mobility models. Alternatively, or in combination, some embodiments also use machine learning-based algorithms that use other factors such as data input and potentially site layout (requiring feedback from the DU). do.

このユースケースのための出力メトリックは、いくつかの実施形態では、次のスケジューリングウィンドウのためのユーザの予測チャネル条件、ならびに予測ダウンリンク及びアップリンクSINR、プリコーディング行列(例えば、適用可能である場合)、及びSU-MIMOレイヤを含む。いくつかの実施形態では、これらの出力メトリックは、PDCCH/PDSCH/PUSCH送信のユーザリンクアダプテーションのためにDUによって使用される。 The output metrics for this use case are, in some embodiments, the user's predicted channel conditions for the next scheduling window, as well as the predicted downlink and uplink SINR, precoding matrices (e.g., if applicable). ), and the SU-MIMO layer. In some embodiments, these output metrics are used by the DU for user link adaptation of PDCCH/PDSCH/PUSCH transmissions.

第3のユースケースは、MU-MIMOペアリング提案又はMACスケジューラコンポーネント(例えば、MAC制御アシスタ300のコンポーネント330)に特有である。この例のユースケースの入力メトリックは、いくつかの実施形態では、少なくともUE特定BFW行列とUE RF条件推定値とを含む。いくつかの実施形態は、UE特定BFWマトリックス及びUE RF条件推定に加えて、入力指標として、ユーザデータ需要などの支援指標を含むこともできる。 The third use case is specific to MU-MIMO pairing proposals or MAC scheduler components (eg, component 330 of MAC control assistant 300). The input metrics for this example use case, in some embodiments, include at least a UE-specific BFW matrix and a UE RF condition estimate. In addition to the UE-specific BFW matrix and the UE RF condition estimate, some embodiments may also include supporting metrics, such as user data demand, as input metrics.

このユースケースのためのアプリアルゴリズムは、いくつかの実施形態では、MU-MIMO動作のためにペア化できるユーザを識別することを意図している。例えば、第3のユースケースのいくつかの実施形態は、情報理論及びクロスチャンネル共分散評価に基づく、伝統的な信号処理アルゴリズムを用いる。代わりに、又は、組み合わせて、いくつかの実施形態は、DUからのフィードバックを再度必要とする、データ入力を使用する機械学習ベースのアルゴリズムを使用する。 The app algorithm for this use case, in some embodiments, is intended to identify users that can be paired for MU-MIMO operation. For example, some embodiments of the third use case use traditional signal processing algorithms based on information theory and cross-channel covariance estimation. Alternatively, or in combination, some embodiments use machine learning-based algorithms that use data input, which again requires feedback from the DU.

いくつかの実施形態では、この第3のユースケースの出力メトリックは、UEペアリング提案と、SINRレイヤ及びSU-MIMOレイヤに対する影響評価を含むことができる。さらに、いくつかの実施形態のDUは、出力メトリックを使用して、RFスケジューリングのためのユーザを選択し、伝送効率を決定する。 In some embodiments, the output metrics for this third use case may include a UE pairing proposal and impact assessment for the SINR and SU-MIMO layers. Additionally, the DU of some embodiments uses power metrics to select users for RF scheduling and determine transmission efficiency.

ユーザレベルトレーサのユースケースの例として、サービス品質を最適化するためにRFリソースのユーザのスケジューリング優先度を調整することを目標としたQoSスケジューリング最適化を含むことができる。このユースケースのいくつかの実施形態のための入力は、ユーザ加入からのサービス品質目標を含むことができる。いくつかの実施形態において、ユーザレベルのトレースは、(1)ユーザRF条件を追跡すること、(2)異なるレイヤ(例えば、MAC/RLC/PDCP)におけるユーザデータトラフィック性能を追跡すること、及び(3)ユーザRFリソース消費を追跡することを含む。 Examples of user-level tracer use cases may include QoS scheduling optimization, with the goal of adjusting users' scheduling priorities of RF resources to optimize quality of service. Input for some embodiments of this use case may include quality of service goals from user subscriptions. In some embodiments, user-level tracing includes (1) tracking user RF conditions, (2) tracking user data traffic performance at different layers (e.g., MAC/RLC/PDCP), and ( 3) Includes tracking user RF resource consumption.

いくつかの実施形態では、アプリアルゴリズムは、QoSターゲット及び観察されたユーザトラフィック性能に基づいており、ユーザのリソース割り当てが不十分であることを判定するために使用することができる。アルゴリズムフォーマットは、いくつかの実施形態では、ロジックベース又は機械学習ベースとすることができる。いくつかの実施形態では、出力は、MACスケジューラに対して発行された推奨を含み、トラフィック優先度又はリンク適応を調整して、パフォーマンスを向上させることができる。 In some embodiments, an app algorithm is based on QoS targets and observed user traffic performance and can be used to determine that a user's resource allocation is insufficient. The algorithmic format may be logic-based or machine learning-based in some embodiments. In some embodiments, the output includes recommendations issued to the MAC scheduler to adjust traffic priorities or link adaptation to improve performance.

制御プレーンアプリケーションを実行する各マシン(例えば、各VM又はポッド)上で、いくつかの実施形態は、RIC SDKを、マシン上の制御プレーンアプリケーションとRANの1つ以上の要素のセットとの間のインタフェースとして機能するように構成する。いくつかの実施形態において、RIC SDKは、アプリケーションが、2つ以上のニアリアルタイムRICによって実施される分散ニアリアルタイム(RT) RICと通信することができる一連のセットAPI(例えばフレームワーク)を提供する。このようなアプリケーションの例は、いくつかの実施形態では、xApps、及び他の制御プレーン及びエッジアプリケーションを含む。O-RANでは、xAppは制御プレーン、監視、及びデータ処理動作を実行する。図6及び8-20に関する以下の議論は、制御プレーンアプリケーション(例えば、615、815、820、915、920など)を意味する。これらの制御プレーンアプリケーションは、いくつかの実施形態において、O-RANシステムにおけるxAppである。 On each machine (e.g., each VM or pod) that runs a control plane application, some embodiments implement a RIC SDK between the control plane application on the machine and the set of one or more elements of the RAN. Configure it to function as an interface. In some embodiments, the RIC SDK provides a set of APIs (e.g., a framework) that allow applications to communicate with a distributed near real-time (RT) RIC implemented by two or more near real-time RICs. . Examples of such applications include xApps and other control plane and edge applications, in some embodiments. In O-RAN, xApps perform control plane, monitoring, and data processing operations. The following discussion with respect to FIGS. 6 and 8-20 refers to control plane applications (eg, 615, 815, 820, 915, 920, etc.). These control plane applications, in some embodiments, are xApps in the O-RAN system.

図6は、いくつかの実施形態において制御プレーンアプリケーション615を実行するマシン610上のRIC SDK605のデプロイを示す。説明するように、1つ以上のマシン610は、1つ以上のデータセンタ内のいくつかのホストコンピュータ607のそれぞれ上で動作する。いくつかの実施形態では、各マシン610上のRIC SDK605は、制御プレーンアプリケーションのためのRAN要素のセット(例えば、E2ノード520、共有データレイヤ560、管理サービス554、SMO505など)へのネットワーク接続を確立するネットワーク接続プロセスのセットを含む。RIC SDKプロセスを使用すると、マシン上の制御プレーンアプリケーションでネットワーク接続動作を実行せずに済む。いくつかの実施形態では、各マシンの各RIC SDKのネットワーク接続プロセスのセットは、マシンと、マシンの制御プレーンアプリケーションによって使用されるRAN要素のセットとの間のネットワーク接続を確立及び維持し、制御プレーンアプリケーションのためのRAN要素のセットとの間のデータパケット伝送を処理する。 FIG. 6 illustrates the deployment of a RIC SDK 605 on a machine 610 running a control plane application 615 in some embodiments. As described, one or more machines 610 operate on each of a number of host computers 607 within one or more data centers. In some embodiments, the RIC SDK 605 on each machine 610 provides network connectivity to a set of RAN elements (e.g., E2 nodes 520, shared data layer 560, management services 554, SMO 505, etc.) for control plane applications. Contains a set of network connection processes to establish. Using the RIC SDK process eliminates the need for control plane applications on the machine to perform network connectivity operations. In some embodiments, the set of network connection processes in each RIC SDK of each machine establishes and maintains and controls network connections between the machine and the set of RAN elements used by the machine's control plane applications. Handles data packet transmission to and from a set of RAN elements for plain applications.

各マシンの制御プレーンアプリケーションは、RIC SDKが低レベルAPI625に変換する高レベルAPI620を介してRAN要素のセットと通信する。いくつかの実施形態では、低レベルAPIコール625の少なくともサブセットは、標準策定団体によって規定される。また、いくつかの実施形態では、高レベルAPI620は、高レベルプログラミング言語(例えば、C++)で作成され、低レベルAPIコールは、ネットワーク接続を確立及び維持し、これらの接続を介してデータパケットを通過する低レベルコールを含む。 Control plane applications on each machine communicate with a set of RAN elements via a high-level API 620 that the RIC SDK translates to a low-level API 625. In some embodiments, at least a subset of low-level API calls 625 are specified by a standards organization. Additionally, in some embodiments, the high-level API 620 is written in a high-level programming language (e.g., C++) and the low-level API calls establish and maintain network connections and pass data packets over these connections. Contains low-level calls that pass through.

RIC SDKがそのマシン上の制御プレーンアプリケーションに接続するRAN要素のセットには、異なるRANベンダ及び/又は開発者によって生成又は開発されるRAN要素が含まれる。これらのRAN要素は、いくつかの実施形態において、RANのCU630及びDU635を含む。また、このSDKは低レベルの標準で策定されるE2インターフェイスを介してCU及びDUと通信するが、マシン上の制御プレーンアプリケーションは高レベルAPIコールを使用してRIC SDKを介してCU及びDUと通信する。いくつかの実施形態では、高レベルAPIコールは、低レベル伝送又はネットワーク動作を含まない高レベルアプリケーションレイヤでのE2インタフェース動作を規定する。 The set of RAN elements that the RIC SDK connects to the control plane applications on the machine includes RAN elements produced or developed by different RAN vendors and/or developers. These RAN elements, in some embodiments, include the CU 630 and DU 635 of the RAN. The SDK also communicates with the CU and DU via an E2 interface defined by a low-level standard, while the control plane applications on the machine communicate with the CU and DU via the RIC SDK using high-level API calls. In some embodiments, the high-level API calls define the E2 interface operations at a high-level application layer that does not include low-level transport or network operations.

組み合わせ又は代替として、RIC SDKがそのマシン610上の制御プレーンアプリケーション615と接続するRAN要素のセットは、RICのネットワーク要素を含む。ここでも、いくつかの実施形態におけるこれらのネットワーク要素は、異なるRANベンダ及び/又は開発者によって生成され、及び/又は開発されるRAN要素を含む。いくつかの実施形態におけるこれらのRIC要素には、共有データレイヤ560、データパス入出力(I/O)要素、及びいくつかの実施形態におけるアプリケーション及び管理サービス552及び554が含まれる。図7は、いくつかの実施形態が、図5及び6に示されるRICコンポーネントを含む分散ニアRT RIC700を実施するために、いくつかのホストコンピュータ上で動作するように、いくつかのニアRT RIC705をデプロイすることを示す。いくつかの実施形態では、1つのRIC705は、制御プレーンアプリケーション615も実行する各ホストコンピュータ上で動作する。他の実施形態では、制御プレーンアプリケーション615は、RICを実行しないホストコンピュータ上で動作することができる。例えば、いくつかの実施形態では、1つ以上の制御プレーンアプリケーションは、グラフィックプロセッシングユニット(GPU)を有する1つ以上のホストコンピュータ上で動作するが、RICは、GPUの処理能力を必要としないため、そのようなホストコンピュータ上で動作しない。 In combination or alternatively, the set of RAN elements with which the RIC SDK connects with the control plane application 615 on its machine 610 includes the RIC's network elements. Again, these network elements in some embodiments include RAN elements produced and/or developed by different RAN vendors and/or developers. These RIC elements in some embodiments include a shared data layer 560, data path input/output (I/O) elements, and application and management services 552 and 554 in some embodiments. FIG. 7 shows how some embodiments operate on several host computers to implement a distributed near RT RIC 700 that includes the RIC components shown in FIGS. 5 and 6. Indicates that you want to deploy. In some embodiments, one RIC 705 runs on each host computer that also runs control plane applications 615. In other embodiments, control plane application 615 may run on a host computer that does not run the RIC. For example, in some embodiments, one or more control plane applications run on one or more host computers that have a graphics processing unit (GPU), but the RIC does not require GPU processing power; , does not work on such host computer.

RIC SDKは、分散ニアRT RICを介して、他のマシンで動作しない他の制御プレーンアプリケーションにもその制御プレーンアプリケーションを接続する。言い換えると、いくつかの実施形態におけるRIC SDK及び分散ニアRT RICは、制御プレーンアプリケーション間の通信インタフェースとして機能する。いくつかの実施形態では、異なる制御プレーンアプリケーションは、分散ニアRT RICを介して互いに通信するために共通セットのRIC APIを使用する異なるアプリケーション開発者によって開発される。これらの実施形態のいくつかでは、分散ニアRT RICは、APIコールを一方の制御アプリケーションから他方の制御アプリケーションに転送するときに、APIコールに1つ以上のパラメータを追加する。 The RIC SDK also connects the control plane application to other control plane applications not running on other machines via the distributed near RT RIC. In other words, the RIC SDK and distributed near RT RIC in some embodiments serve as a communication interface between control plane applications. In some embodiments, different control plane applications are developed by different application developers who use a common set of RIC APIs to communicate with each other via a distributed near RT RIC. In some of these embodiments, the distributed near RT RIC adds one or more parameters to the API call when forwarding the API call from one control application to another.

図8から11に、RIC SDKと分散ニアRT RICが制御プレーンアプリケーション間の通信インタフェースを確立するRICアーキテクチャの例を示す。これらのアーキテクチャは、一部の実施形態では相互に排他的であるが、他の実施形態では、これらのアーキテクチャの2つ以上の組み合わせで使用される。図8は、2つの制御プレーンアプリケーション815及び820が実行する2つのマシン810及び812と共に、1つのホストコンピュータ805上で実行するRIC800を示す。RIC800は、マシン810及び812上で実行されるRIC SDK802及び804を介して、CPアプリケーション815からAPIコールを受信し、APIコールをCPアプリケーション820に転送し、これらのAPIコールへの応答を第2のCPアプリケーション820から第1のCPアプリケーション815に渡す。また、APIコールを第2のCPアプリケーション820から第1のCPアプリケーション815に渡し、第1のCPアプリケーション815から第2のCPアプリケーション820に応答する。 Figures 8-11 illustrate example RIC architectures in which a RIC SDK and a distributed near RT RIC establish a communication interface between control plane applications. These architectures are mutually exclusive in some embodiments, while in other embodiments a combination of two or more of these architectures is used. FIG. 8 shows a RIC 800 running on one host computer 805 with two machines 810 and 812 running two control plane applications 815 and 820. RIC 800 receives API calls from CP application 815 via RIC SDKs 802 and 804 running on machines 810 and 812, forwards the API calls to CP application 820, and sends responses to these API calls to a second from the first CP application 820 to the first CP application 815. It also passes API calls from the second CP application 820 to the first CP application 815 and responds from the first CP application 815 to the second CP application 820 .

図9は、2つの制御プレーンアプリケーション915及び920及び2つのRIC SDK902及び904が実行される、2つのホストコンピュータ905及び907上で実行される2つのRIC900及び901と、2つのマシン910及び912を示している。図に示すように、第1のCPアプリケーション915から第2のCPアプリケーション920へのAPIコールは、第1のRIC SDK902、第1のRIC900、第2のRIC901及び第2のRIC SDK904を介して転送される。第1のCPアプリケーション915に対するこれらのAPIコールに対する第2のCPアプリケーションの応答は、第2のRIC SDK904、第2のRIC901、第1のRIC900、及び第1のRIC SDK902からリバースパスを通過する。 Figure 9 shows two machines 910 and 912 with two RICs 900 and 901 running on two host computers 905 and 907 on which two control plane applications 915 and 920 and two RIC SDKs 902 and 904 run. As shown, API calls from the first CP application 915 to the second CP application 920 are forwarded through the first RIC SDK 902, the first RIC 900, the second RIC 901, and the second RIC SDK 904. The second CP application's responses to these API calls to the first CP application 915 traverse the reverse path from the second RIC SDK 904, the second RIC 901, the first RIC 900, and the first RIC SDK 902.

第2のCPアプリケーション920から第1のCPアプリケーション915へのAPIコールは、第2のRIC SDK904、第2のRIC901、第1のRIC900、及び第1のRIC SDK902を介して転送されるが、これらのAPIコールに対する第1のCPアプリケーション915から第2のCPアプリケーション920への応答は、第1のRIC SDK902、第1のRIC900、第2のRIC901、及び第2のRIC SDK904を介して転送される。 API calls from the second CP application 920 to the first CP application 915 are transferred via the second RIC SDK 904, second RIC 901, first RIC 900, and first RIC SDK 902; A response from the first CP application 915 to the second CP application 920 for the API call is transferred via the first RIC SDK 902, the first RIC 900, the second RIC 901, and the second RIC SDK 904. .

図10は、2つの他のホストコンピュータ1006及び1007上で動作する2つのマシン1010及び1012上で動作する2つの制御プレーンアプリケーション1015及び1020を接続するために、第1のホストコンピュータ1005上で動作するRIC1000を示す。RIC1000は、マシン1010及び1012上で動作するRIC SDK1002及び1004を介して、CPアプリケーション1015からAPIコールを受信し、APIコールをCPアプリケーション1020に転送し、これらのAPIコールへの応答を第2のCPアプリケーション1020から第1のCPアプリケーション1015に渡す。また、APIコールを第2のCPアプリケーション1020から第1のCPアプリケーション1015に渡し、第1のCPアプリケーション1015から第2のCPアプリケーション1020に応答する。 FIG. 10 shows a system running on a first host computer 1005 to connect two control plane applications 1015 and 1020 running on two machines 1010 and 1012 running on two other host computers 1006 and 1007. RIC1000 is shown. RIC 1000 receives API calls from CP application 1015 via RIC SDKs 1002 and 1004 running on machines 1010 and 1012, forwards the API calls to CP application 1020, and sends responses to these API calls to a second Passed from CP application 1020 to first CP application 1015. Additionally, the API call is passed from the second CP application 1020 to the first CP application 1015, and the first CP application 1015 responds to the second CP application 1020.

図11は、ホストコンピュータ1105上で動作し、一方がホストコンピュータ1106上で動作する2つのマシン1110及び1112上で動作する2つの制御プレーンアプリケーション1115及び1120を接続するために、第1のホストコンピュータ1105上で実行するRIC1100を示している。RIC1100は、マシン1110及び1112上で実行されるRIC SDK1102および1104を介して、CPアプリケーション1115からAPIコールを受信し、APIコールをCPアプリケーション1120に転送し、これらのAPIコールへの応答を第2のCPアプリケーション1120から第1のCPアプリケーション1115に渡す。これらのSDK1102及び1104を介して、RIC1100はまた、APIコールを第2のCPアプリケーション1120から第1のCPアプリケーション1115に渡し、第1のCPアプリケーション1115から第2のCPアプリケーション1120に応答する。 FIG. 11 shows a first host computer for connecting two control plane applications 1115 and 1120 running on two machines 1110 and 1112, one running on host computer 1105 and one running on host computer 1106. RIC 1100 is shown running on RIC 1105. RIC 1100 receives API calls from CP application 1115 via RIC SDKs 1102 and 1104 running on machines 1110 and 1112, forwards the API calls to CP application 1120, and sends responses to these API calls to a second from the first CP application 1120 to the first CP application 1115. Through these SDKs 1102 and 1104, the RIC 1100 also passes API calls from the second CP application 1120 to the first CP application 1115 and responds from the first CP application 1115 to the second CP application 1120.

図12は、いくつかの実施形態の分散ニアRT RICプラットフォームがサポートする、異なる標準仕様のAPIの例を示す。説明するように、いくつかの実施形態における分散ニアRT RICプラットフォーム1200は、O-RAN標準規格団体によって規定されるE2、О1及びA1インタフェースを使用する。E2 APIを使用して、O-CU-CP1202、O-CU-UP1204、O-DU1206などのE2 O-RANノードと通信する。また、A1 APIを使用して非リアルタイムRICプラットフォーム1208と通信し、О1 APIを使用してSMO1210と通信する。 FIG. 12 shows examples of different standard APIs supported by the distributed near RT RIC platform of some embodiments. As described, the distributed near RT RIC platform 1200 in some embodiments uses the E2, O1, and A1 interfaces defined by the O-RAN standards body. The E2 API is used to communicate with E2 O-RAN nodes such as O-CU-CP 1202, O-CU-UP 1204, O-DU 1206. It also communicates with the non-real-time RIC platform 1208 using the A1 API and with the SMO 1210 using the O1 API.

時間E2、A1及びO1 APIのそれぞれについて、RIC SDK1215は、RIC SDK及び分散ニアRT RICプラットフォームを使用してE2ノード1202-1206、非リアルタイムRICプラットフォーム1208及びSMO1210と通信する制御プレーンアプリケーション1220のための高レベル対応APIを提供する。図12では、E2、О1、及びAlインターフェイスの上位レベルの対応するAPIを、E2'APIコール、О1'APIコール、及びAE APIコールとしてプライムサインを使用して指定している。これらの高レベル対応APIは、標準団体では規定されていないが、RIC SDK及び/又は分散ニアRT RICが、標準仕様のAPIコールに変換するAPIである。 For each of the time E2, A1, and O1 APIs, the RIC SDK 1215 provides control plane applications 1220 for communicating with the E2 nodes 1202-1206, non-real-time RIC platform 1208, and SMO 1210 using the RIC SDK and the distributed near RT RIC platform. Provide high-level compatible API. In FIG. 12, the upper level corresponding APIs of E2, O1, and Al interfaces are designated using prime signs as E2' API call, O1' API call, and AE API call. These high-level compatible APIs are APIs that are not defined by standards bodies, but which the RIC SDK and/or distributed near RT RIC converts into standard API calls.

また、図12は、制御プレーンアプリケーション1220がRIC SDK及び分散ニアRT RICを介して互いに通信し、分散ニアRT RICの1つ以上の要素(例えば、共有データレイヤ560、データパス入出力(I/O)要素、及びアプリケーション及び管理サービス552及び554)と通信することを可能にするためのいくつかの内部RIC APIを示す。 FIG. 12 also shows that the control plane applications 1220 communicate with each other via the RIC SDK and the distributed near RT RIC and communicate with one or more elements of the distributed near RT RIC (e.g., shared data layer 560, data path input/output (I/ O) illustrates some internal RIC APIs to enable communication with elements and application and management services 552 and 554).

使用可能化APIは、いくつかの実施形態で使用されるAPIであり、制御プレーンアプリケーション1220が相互に通信することを可能にする。図8-11を参照して上述したように、いくつかの実施形態では、これらのAPIは、分散ニアRT RICを通過する。他の実施形態では、これらのAPIは、制御プレーンアプリケーションのRIC SDKが、分散ニアRT RICの他のコンポーネントを通過することなく、互いに直接通信することを可能にする。このため、図12は、2つの制御プレーンアプリケーション1220のRIC SDK1215間に破線の双方向矢印を含み、いくつかの実施形態では、これらのアプリケーションのRIC SDK1215が互いに直接通信することを示す。 The enablement API is an API used in some embodiments to enable control plane applications 1220 to communicate with each other. As described above with reference to FIGS. 8-11, in some embodiments these APIs pass through a distributed near RT RIC. In other embodiments, these APIs allow the control plane application's RIC SDKs to communicate directly with each other without going through other components of the distributed near RT RIC. To this end, FIG. 12 includes dashed bidirectional arrows between the RIC SDKs 1215 of two control plane applications 1220 to indicate that, in some embodiments, the RIC SDKs 1215 of these applications communicate directly with each other.

一部の実施形態における使用可能化APIには、登録API、サービス探索API、及びアプリ間通信APIが含まれる。登録APIは、アプリケーション1220(例えば、xApps)が、それらのネットワーク識別子(例えば、それらのネットワークアドレス及び利用可能なL4ポート)を提供し、それらの機能(例えば、チャネル予測を実行すること)を提供することによって、自身を他のアプリケーション1220に導入するために使用される。サービス探索APIは、制御プレーンアプリケーション1220(例えば、xApps)が、特定のサービスを提供する他の制御プレーンアプリケーション(例えば、他のxApps)のために、サービスディレクトリ(例えば、分散ニアRT RIC)に問い合わせることを可能にする。アプリ間通信APIを使用すると、制御プレーンアプリケーションが相互に通信してデータを渡したり、特定の動作を要求したりできる。 Enablement APIs in some embodiments include registration APIs, service discovery APIs, and inter-app communication APIs. The registration API allows applications 1220 (e.g., xApps) to provide their network identifiers (e.g., their network address and available L4 ports) and provide their functionality (e.g., perform channel prediction). It is used to introduce itself to other applications 1220 by doing so. The service discovery API allows a control plane application 1220 (e.g., an xApp) to query a service directory (e.g., a distributed near RT RIC) for other control plane applications (e.g., other xApps) that provide a particular service. make it possible. Inter-app communication APIs allow control plane applications to communicate with each other to pass data or request specific actions.

いくつかの実施形態は、SDLキャッシュを制御プレーンアプリケーションと同じホストコンピュータ上にデプロイし、このキャッシュを使用して、制御プレーンアプリケーションのSDLストレージアクセス要求の少なくともサブセットを処理する。いくつかの実施形態において、制御プレーンアプリケーション及びSDLキャッシュは、ホストコンピュータ上で動作するマシン上で動作する。他の実施形態では、SDLキャッシュは、同じホストコンピュータ上で動作するが、制御プレーンアプリケーションが動作するマシンの外部で動作する。これらの実施形態のいくつかでは、同じホストコンピュータ上で実行される複数の制御プレーンアプリケーションは、そのホストコンピュータ上で共通SDLキャッシュを使用する。 Some embodiments deploy an SDL cache on the same host computer as a control plane application and use the cache to service at least a subset of the control plane application's SDL storage access requests. In some embodiments, the control plane application and SDL cache run on a machine that runs on the host computer. In other embodiments, the SDL cache runs on the same host computer, but outside of the machine on which the control plane application runs. In some of these embodiments, multiple control plane applications running on the same host computer use a common SDL cache on that host computer.

SDLキャッシュは、いくつかの実施形態では、制御プレーンと同じホストコンピュータ上で動作するRICの一部である。他の実施形態では、SDLキャッシュは、制御プレーンアプリケーションと同じマシン上で動作するRIC SDKの一部である。これらの実施形態のいずれにおいても、RIC又はRIC SDKの同期処理は、SDLキャッシュに記憶されたデータをSDLストレージに記憶されたデータと同期させる。 The SDL cache, in some embodiments, is part of the RIC running on the same host computer as the control plane. In other embodiments, the SDL cache is part of the RIC SDK running on the same machine as the control plane application. In any of these embodiments, the RIC or RIC SDK synchronization process synchronizes data stored in the SDL cache with data stored in SDL storage.

いくつかの実施形態では、SDLストレージは、制御プレーンアプリケーションが実行されるホストコンピュータとは異なるホストコンピュータ上で動作し、他の実施形態では、SDLストレージの少なくとも一部は、制御プレーンアプリケーションが動作する同じホストコンピュータ上で動作する。また、いくつかの実施形態では、RIC SDKがSDLキャッシュを介してSDLアクセス要求を処理できない場合、RIC又はRIC SDKはSDLアクセス要求を制御プレーンアプリケーションからSDLストレージに転送する。たとえば、SDLキャッシュが制御プレーンアプリケーションによって要求されたデータを格納しない場合、RIC 又はRIC SDKはSDLキャッシュを介してSDLアクセス要求を処理できない。 In some embodiments, the SDL storage runs on a different host computer than the host computer on which the control plane application runs, and in other embodiments, at least a portion of the SDL storage runs on a host computer on which the control plane application runs. Run on the same host computer. Additionally, in some embodiments, the RIC or RIC SDK forwards the SDL access request from the control plane application to the SDL storage if the RIC SDK is unable to process the SDL access request via the SDL cache. For example, if the SDL cache does not store data requested by a control plane application, the RIC or RIC SDK cannot service SDL access requests through the SDL cache.

図13は、SDLキャッシュ1302が、その制御プレーンアプリケーション1310と同じマシン1305上で実行される各RIC SDK1300の一部である実施形態を示す。説明するように、RIC SDK1300は、CPアプリケーション1310からのSDL要求を処理するクエリマネージャ132と、SDLキャッシュに記憶されたデータを、分散ニアRT RIC1330のSDL1355のSDLストレージ1350に記憶されたデータと同期させる同期サービス1327とを含む。この例では、SDLストレージ1350は、制御プレーンアプリケーション1310が動作するホストコンピュータとは異なるホストコンピュータ上で動作する。しかしながら、他の実施形態では、SDLストレージ1350の少なくとも一部は、制御プレーンアプリケーション1310が動作するのと同じホストコンピュータ上で動作する。 FIG. 13 shows an embodiment in which the SDL cache 1302 is part of each RIC SDK 1300 running on the same machine 1305 as its control plane application 1310. As described, the RIC SDK 1300 synchronizes the query manager 132 that processes SDL requests from the CP application 1310 and the data stored in the SDL cache with the data stored in the SDL storage 1350 of the SDL 1355 of the distributed near RT RIC 1330. and a synchronization service 1327. In this example, SDL storage 1350 runs on a different host computer than the host computer on which control plane application 1310 runs. However, in other embodiments, at least a portion of SDL storage 1350 runs on the same host computer that control plane application 1310 runs.

制御プレーンアプリケーション1310がSDLストレージへのデータの読み出し又は書込みのために高レベルAPIコールを使用する場合、RIC SDK1300のクエリマネージャ1325は、まず、読み出し又は書み込み中のデータレコードがSDLキャッシュ1302に格納されているか否かを判定する。その場合、クエリマネージャ1325は、このレコードからの読み出し又は書き込みを行う。この動作が書き込み動作である場合、同期サービス1327は、リアルタイムに、又はバッチに基づいて、新しいデータをSDLストレージ1350に書き込む。一方、RIC SDK1300のクエリマネージャ1325は、読み出し又は書き込みされているデータレコードがSDLキャッシュ1302に格納されていないと判定すると、要求された読み出し又は書き込み動作を実行するために分散ニアRT RICのSDLレイヤにAPIコールを渡す。このAPIコールを渡すと、RIC SDK1300は、このコールのフォーマットを修正し、及び/又は、いくつかの実施形態においてこのコールと共に供給されるパラメータを修正する。 When a control plane application 1310 uses a high-level API call to read or write data to SDL storage, the RIC SDK 1300's query manager 1325 first checks whether the data record being read or written is in the SDL cache 1302. Determine whether it is stored. In that case, query manager 1325 reads from or writes to this record. If the operation is a write operation, synchronization service 1327 writes new data to SDL storage 1350 in real time or on a batch basis. On the other hand, if the query manager 1325 of the RIC SDK 1300 determines that the data record being read or written is not stored in the SDL cache 1302, it queries the SDL layer of the distributed near RT RIC to perform the requested read or write operation. Pass the API call to. Upon passing this API call, the RIC SDK 1300 modifies the format of this call and/or modifies the parameters provided with this call in some embodiments.

いくつかの実施形態は、RAN(Open Radio Access Network)内の動作を制御プレーン(CP)上にオフロードするための様々な方法、又はソフトウェア定義データセンタ(SDDC)内のハードウェアアクセラレータを備えたホストコンピュータ上で動作するエッジアプリケーションを提供する。例えば、ハードウェアアクセラレータを備えたホストコンピュータ上で動作するマシン上で動作するCP又はエッジアプリケーションにおいて、いくつかの実施形態の方法は、動作を実行しなければならないO-RAN E2ユニットからデータを受信する。この方法では、マシンのドライバを使用してハードウェアアクセラレータと直接通信し、ハードウェアアクセラレータに動作に関連する計算のセットを実行するように指示する。このドライバにより、ハードウェアアクセラレータとの通信は、マシンのドライバとハードウェアアクセラレータの間でホストコンピュータ上で実行されるドライバの中間セットをバイパスできる。このドライバを介して、いくつかの実施形態のアプリケーションは、演算結果を受信し、それは、次に、1つ以上のO-RANコンポーネント(例えば、データを提供したE2ユニット、別のE2ユニット、又は別のxApp)に提供する。 Some embodiments include various methods for offloading operations within an Open Radio Access Network (RAN) onto a control plane (CP) or with hardware accelerators within a Software Defined Data Center (SDDC). Provide edge applications that run on host computers. For example, in a CP or edge application running on a machine running on a host computer with a hardware accelerator, the method of some embodiments receives data from an O-RAN E2 unit on which the operation must be performed. do. This method uses the machine's drivers to communicate directly with the hardware accelerator and instruct it to perform a set of computations related to the operation. This driver allows communication with the hardware accelerator to bypass the intermediate set of drivers running on the host computer between the machine's drivers and the hardware accelerator. Through this driver, the application of some embodiments receives the calculation result, which in turn is transmitted to one or more O-RAN components (e.g., the E2 unit that provided the data, another E2 unit, or another xApp).

図14-20は、ホストコンピュータのハードウェアアクセラレータへのパススルーアクセスを有するCP又はエッジアプリケーションへのO-RAN動作をオフロードするためのいくつかの異なる実施形態を示す。このようなハードウェアアクセラレータの例には、グラフィカルプロセッシングユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、及び構造化ASICが含まれる。 14-20 illustrate several different embodiments for offloading O-RAN operations to a CP or edge application with pass-through access to a host computer's hardware accelerator. Examples of such hardware accelerators include graphical processing units (GPUs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and structured ASICs.

図14は、ホストコンピュータ1410のハードウェアアクセラレータ1450へのパススルーアクセスを有して、それらの演算の一部又は全部を実行するCPアプリケーション又はエッジアプリケーション1402の例を示す。説明するように、各アプリケーション1402は、ホストコンピュータ1410のアクセラレータ1450への直接的なパススルーアクセスを有するアクセラレータドライバ1412を有するポッド1404上で動作する。各ポッド1404は、ホストコンピュータのハイパーバイザ1408上で動作するVM1406内で動作する(すなわち、VM1406上で動作する)。 FIG. 14 shows an example of a CP or edge application 1402 having pass-through access to a hardware accelerator 1450 of a host computer 1410 to perform some or all of its operations. As described, each application 1402 runs on a pod 1404 that has an accelerator driver 1412 that has direct pass-through access to the accelerator 1450 of the host computer 1410. Each pod 1404 operates within a VM 1406 (ie, runs on a VM 1406) running on a hypervisor 1408 of the host computer.

いくつかの実施形態では、ポッドは、Kubernetesで作成および管理することができる、デプロイ可能な小規模なコンピューティングユニットである。ポッドには、共有ストレージとネットワークリソースを有する1つ以上のコンテナのグループと、コンテナの実行方法の仕様が含まれる。いくつかの実施形態では、ポッドの内容は、常に同じ場所に配置され、同時にスケジュールされ、共有コンテキストで実行される。ポッドは、アプリケーション固有の論理ホストコンピュータをモデル化する。ポッドには、相互に通信する1つ以上のアプリケーションコンテナが含まれる。いくつかの実施形態では、ポッドの共有コンテキストは、オペレーティングシステム名前空間(例えば、Linux cgroups)の集合である。ポッドのコンテキスト内では、個々のアプリケーションにさらにサブ分離が適用される場合がある。 In some embodiments, pods are small deployable computing units that can be created and managed in Kubernetes. A pod includes a group of one or more containers with shared storage and network resources, and specifications for how the containers should run. In some embodiments, the contents of a pod are always co-located, scheduled at the same time, and run in a shared context. A pod models an application-specific logical host computer. A pod includes one or more application containers that communicate with each other. In some embodiments, a pod's shared context is a collection of operating system namespaces (eg, Linux cgroups). Within the context of a pod, further sub-isolation may apply to individual applications.

各ポッドのアクセラレータドライバ1412は、ハードウェアアクセラレータ1450への直接アクセスを有し、このアクセスは、VM1406及びハイパーバイザ1408のハードウェアアクセラレータドライバ1414および1416をバイパスする。いくつかの実施形態では、ハイパーバイザ1408は、ホストコンピュータ1410のオペレーティングシステム(図示せず)上で実行される。これらの実施形態では、各ポッドのアクセラレータドライバ1412のハードウェアアクセラレータ1450への直接アクセスも、オペレーティングシステムのハードウェアアクセラレータドライバをバイパスする。 Each pod's accelerator driver 1412 has direct access to the hardware accelerator 1450, which bypasses the VM 1406 and hypervisor 1408 hardware accelerator drivers 1414 and 1416. In some embodiments, hypervisor 1408 runs on the operating system (not shown) of host computer 1410. In these embodiments, each pod's accelerator driver 1412's direct access to the hardware accelerator 1450 also bypasses the operating system's hardware accelerator driver.

ハードウェアアクセラレータと通信するために、いくつかの実施形態の各アプリケーション1402は、そのポッド上で実行されるRIC SDK1430を介して通信する。例えば、いくつかの実施形態では、各アプリケーション1402は、RIC SDK1430の高レベルAPIを使用してハードウェアアクセラレータ1450と通信する。次に、RIC SDK1430は、高レベルAPIを、マシンのドライバ1412と通信するために必要とされる低レベルAPIに変換し、これは、通信をハードウェアアクセラレータ1450に中継する。低レベルAPIは、ハードウェアアクセラレータ1450の販売に関連する第1の会社によって提供される一方、RIC SDK1430は、RIC SDK1430の販売に関連する第2の会社によって提供される。いくつかの実施形態では、RIC SDK1430によって使用される低レベルAPIは、ハードウェアアクセラレータ1450に関連するAPIライブラリ1432において指定されるAPIである。 To communicate with the hardware accelerator, each application 1402 in some embodiments communicates via a RIC SDK 1430 running on its pod. For example, in some embodiments, each application 1402 communicates with the hardware accelerator 1450 using high-level APIs of the RIC SDK 1430. RIC SDK 1430 then converts the high-level API to the low-level API needed to communicate with the machine's driver 1412, which relays the communication to the hardware accelerator 1450. The low-level API is provided by a first company associated with selling the hardware accelerator 1450, while the RIC SDK 1430 is provided by a second company associated with selling the RIC SDK 1430. In some embodiments, the low-level API used by RIC SDK 1430 is an API specified in API library 1432 associated with hardware accelerator 1450.

図15は、いくつかの実施形態の方法を実施する処理1500を示す。処理1500は、CP又はエッジアプリケーションに命令するO-RANコンポーネントに応答して実行され、アプリケーションがそのホストコンピュータのハードウェアアクセラレータを使用することを要求する動作を実行する。この処理1500は、E2ノード1650から受信したデータに基づいて動作を実行するアプリケーション1402を示す図16を参照して以下に説明される。 FIG. 15 illustrates a process 1500 implementing the methods of some embodiments. Process 1500 is executed in response to an O-RAN component instructing a CP or edge application to perform an operation that requires the application to use its host computer's hardware accelerator. This process 1500 is described below with reference to FIG. 16, which depicts an application 1402 performing operations based on data received from an E2 node 1650.

図15に示すように、処理1500は、(1505で)アプリケーション1402が、ホストコンピュータ1610上で動作しているO-RAN E2ユニット1650からデータを受信すると開始する。いくつかの実施形態では、アプリケーション1402は、E2ユニット1650からのデータをサブスクライブし、1505で受信されたデータは、このサブスクリプションに応答している。このサブスクリプションは、いくつかの実施形態では、分散ニアRT RICを介して行われる。アプリケーション1402のホストコンピュータ1410及び1610とE2ユニット1650は、いくつかの実施形態では1つのSDDCで動作する。他の実施形態では、これらの2つのホストコンピュータ1410及び1610は、2つの異なる物理的位置で動作する。例えば、ホストコンピュータ1410は第1の位置で動作し、一方ホストコンピュータ1610はO-RANのセルサイトに近い第2の位置で動作する。いくつかの実施形態では、第2の位置は、受け付けた動作を含む複雑な動作を実行するハードウェアアクセラレータを有するコンピュータを備えていない。 As shown in FIG. 15, process 1500 begins (at 1505) when application 1402 receives data from O-RAN E2 unit 1650 running on host computer 1610. In some embodiments, application 1402 subscribes to data from E2 unit 1650, and the data received at 1505 is responsive to this subscription. This subscription is done via a distributed near RT RIC in some embodiments. Host computers 1410 and 1610 of application 1402 and E2 unit 1650 operate in one SDDC in some embodiments. In other embodiments, these two host computers 1410 and 1610 operate at two different physical locations. For example, host computer 1410 operates at a first location while host computer 1610 operates at a second location proximate to the O-RAN cell site. In some embodiments, the second location does not include a computer with a hardware accelerator to perform complex operations, including the accepted operation.

アプリケーション1402は、(1)ホストコンピュータ1410及び1610上で実行されるニアRT RIC1640及び1645で形成される分散ニアRT RIC1680を介してE2ユニット1650から(1505において)データを受信し、及び(2)そのポッド1404上で実行されるRIC SDK1430を受信する。次に、アプリケーション1402は、ハードウェアアクセラレータ1450を使用して、動作に関連する計算のセットを実行する(1510において)。 Application 1402 (1) receives data from E2 unit 1650 (at 1505) via distributed near RT RIC 1680 formed of near RT RICs 1640 and 1645 running on host computers 1410 and 1610; and (2) Receives the RIC SDK 1430 running on that pod 1404. Application 1402 then uses hardware accelerator 1450 to perform a set of computations associated with the operation (at 1510).

ハードウェアアクセラレータ1450と通信するために、アプリケーション1402は、RIC SDK1430によって提供される高レベルAPIを使用する。次に、RIC SDK1430は、高レベルAPIを、ハードウェアアクセラレータ1450に関連するAPIライブラリ1432に規定された低レベルAPIに変換する。これらの低レベルAPIは、次に、VM1406及びハイパーバイザ1408のドライバ1414及び1416をバイパスするアクセラレータ1450への直接的なパススルーアクセスを介して、ポッドのドライバ1412によってハードウェアアクセラレータ1450に通信される。このドライバ1412、APIライブラリ1432に規定されたAPI及びRIC SDK1430を介して、アプリケーション1402は、ハードウェアアクセラレータ1450によって実行される演算(例えば、計算)の結果も受信する。 To communicate with hardware accelerator 1450, application 1402 uses high-level APIs provided by RIC SDK 1430. RIC SDK 1430 then converts the high-level API to a low-level API defined in an API library 1432 associated with hardware accelerator 1450. These low-level APIs are then communicated to the hardware accelerator 1450 by the pod's driver 1412 via direct pass-through access to the accelerator 1450, bypassing the VM 1406 and hypervisor 1408 drivers 1414 and 1416. Through this driver 1412, the API defined in the API library 1432, and the RIC SDK 1430, the application 1402 also receives the results of operations (eg, calculations) performed by the hardware accelerator 1450.

アプリケーション1402は、その動作の結果を、処理1500を開始したデータ又はSDLストレージを提供したE2ユニット1650などの1つ以上のO-RANコンポーネントに(1515において)提供する。この結果は、RIC SDK1430及び分散ニアRT RIC1680を介して提供される。他の実施形態では、アプリケーション1402は、(RIC SDK1430を介して)その動作の結果を、ハードウェアアクセラレータ1450を使用して動作を実行するアプリケーションと同じホストコンピュータ又は別のホストコンピュータ上で動作する別のO-RAN E2ユニット又はマシン上で動作する1つ以上の他のアプリケーション(アプリケーションがその動作を実行したデータを提供したE2ユニット以外のアプリケーション)に提供する。処理1500は、1515の後で終了する。 The application 1402 provides the results of its operations (at 1515) to one or more O-RAN components, such as the E2 unit 1650 that provided the data or SDL storage that initiated the process 1500. This result is provided via the RIC SDK 1430 and the distributed near RT RIC 1680. In other embodiments, the application 1402 sends the results of its operations (via the RIC SDK 1430) to another host computer running on the same host computer or on a different host computer as the application performing the operations using hardware accelerators 1450. O-RAN E2 unit or one or more other applications running on the machine (other than the E2 unit that provided the data on which the application performed the operation). Process 1500 ends after 1515.

他の実施形態では、O-RAN制御又はエッジアプリケーションのパススルーアクセスを他のデプロイ設定で使用する。例えば、図17は、ホストコンピュータ1710のハードウェアアクセラレータ1750へのパススルーアクセスを有し、それらの演算の一部(又は全部)を実行するCPアプリケーション又はエッジアプリケーション1702の別の例を示す。この例では、各アプリケーション1702(1)は、VM1706上で実行するポッド1704上で実行され、(2)ホストコンピュータ1710のアクセラレータ1750への直接的なパススルーアクセスを有するこのVM1706のアクセラレータドライバ1712を使用する。VM1706は、ホストコンピュータ1710上で動作するハイパーバイザ1708上で実行される。仮想マシンのアクセラレータドライバ1712は、ハイパーバイザ1708のハードウェアアクセラレータドライバ1716をバイパスする。いくつかの実施形態では、ハイパーバイザ1708は、ホストコンピュータ1710のオペレーティングシステム(図示せず)上で動作する。これらの実施形態では、仮想マシンのアクセラレータドライバ1712のハードウェアアクセラレータ1750への直接アクセスは、オペレーティングシステムのハードウェアアクセラレータドライバをバイパスする。 In other embodiments, pass-through access of O-RAN control or edge applications is used in other deployment settings. For example, FIG. 17 shows another example of CP or edge applications 1702 that have pass-through access to a hardware accelerator 1750 of a host computer 1710 to perform some (or all) of their operations. In this example, each application 1702 (1) runs on a pod 1704 that runs on a VM 1706 and (2) uses an accelerator driver 1712 of this VM 1706 that has direct pass-through access to the accelerator 1750 of the host computer 1710. The VM 1706 runs on a hypervisor 1708 that runs on the host computer 1710. The virtual machine's accelerator driver 1712 bypasses the hardware accelerator driver 1716 of the hypervisor 1708. In some embodiments, the hypervisor 1708 runs on an operating system (not shown) of the host computer 1710. In these embodiments, the virtual machine's accelerator driver 1712's direct access to the hardware accelerator 1750 bypasses the operating system's hardware accelerator driver.

ハードウェアアクセラレータ1750を使用するために、いくつかの実施形態の各アプリケーション1702は、ハードウェアアクセラレータ1750と通信するために、RIC SDK1730の高レベルAPIを使用する(そのポッド1704上で実行する)。RIC SDK1730は、高レベルAPIを、VMのドライバ1712と通信するために必要とされる低レベルAPIに変換し、次に、通信をハードウェアアクセラレータ1750に中継する。いくつかの実施形態では、RIC SDK1730によって使用される低レベルAPIは、ハードウェアアクセラレータ1750に関連するAPIライブラリ1732において規定されるAPIである。このAPIライブラリ1732は、VM1706のドライバインタフェースの一部である。 To use the hardware accelerator 1750, each application 1702 in some embodiments uses the high-level API of the RIC SDK 1730 (running on its pod 1704) to communicate with the hardware accelerator 1750. RIC SDK 1730 translates the high-level API to the low-level API needed to communicate with the VM's driver 1712 and then relays the communication to the hardware accelerator 1750. In some embodiments, the low-level API used by RIC SDK 1730 is an API defined in API library 1732 associated with hardware accelerator 1750. This API library 1732 is part of the VM 1706 driver interface.

図18は、ホストコンピュータ1810のハードウェアアクセラレータ1850へのパススルーアクセスを有し、その演算の一部又は全部を実行するCP又はエッジアプリケーション1802のさらに別の例を示す。この例では、各アプリケーション1802(1)は、ホストコンピュータ1810上で動作するハイパーバイザ1806上で動作するVM1804上で動作し、(2)ホストコンピュータ1810のアクセラレータ1850への直接的なパススルーアクセスを有するそのVM1804のアクセラレータドライバ1812を使用する。 FIG. 18 shows yet another example of a CP or edge application 1802 having pass-through access to a hardware accelerator 1850 of a host computer 1810 to perform some or all of its operations. In this example, each application 1802 (1) runs on a VM 1804 running on a hypervisor 1806 running on a host computer 1810 and (2) has direct pass-through access to an accelerator 1850 on the host computer 1810. The accelerator driver 1812 of the VM 1804 is used.

仮想マシンのアクセラレータドライバ1812は、ハイパーバイザ1806のハードウェアアクセラレータドライバ1816をバイパスする。いくつかの実施形態では、ハイパーバイザ1806は、ホストコンピュータ1810のオペレーティングシステム(図示せず)上で動作する。これらの実施形態では、仮想マシンのアクセラレータドライバ1812のハードウェアアクセラレータ1850への直接アクセスは、オペレーティングシステムのハードウェアアクセラレータドライバをバイパスする。 The virtual machine's accelerator driver 1812 bypasses the hypervisor's 1806 hardware accelerator driver 1816. In some embodiments, hypervisor 1806 runs on the operating system (not shown) of host computer 1810. In these embodiments, the virtual machine's accelerator driver 1812's direct access to the hardware accelerator 1850 bypasses the operating system's hardware accelerator driver.

ハードウェアアクセラレータ1850を使用するために、いくつかの実施形態の各アプリケーション1802は、ハードウェアアクセラレータ1850と通信するために、RIC SDK1730の高レベルAPIを使用する(そのポッド1804上で実行する)。RIC SDK1830は、高レベルAPIを、VMのドライバ1812と通信するために必要とされる低レベルAPIに変換し、次に、通信をハードウェアアクセラレータ1850に中継する。いくつかの実施形態では、RIC SDK1830によって使用される低レベルAPIは、ハードウェアアクセラレータ1850に関連するAPIライブラリ1832において指定されるAPIである。このAPIライブラリ1832は、VM1806のドライバインタフェースの一部である。 To use the hardware accelerator 1850, each application 1802 of some embodiments uses the high-level APIs of the RIC SDK 1730 (running on its pod 1804) to communicate with the hardware accelerator 1850. The RIC SDK 1830 translates the high-level APIs into the low-level APIs required to communicate with the VM's driver 1812, and then relays the communication to the hardware accelerator 1850. In some embodiments, the low-level APIs used by the RIC SDK 1830 are the APIs specified in an API library 1832 associated with the hardware accelerator 1850. This API library 1832 is part of the driver interface of the VM 1806.

一般的な当業者であれば、O-RAN制御又はエッジアプリケーションのためのパススルーアクセスは、他の実施形態の他のデプロイ設定において使用されることを認識するであろう。例えば、ポッド上で動作する代わりに、他の実施形態のアプリケーションは、コンテナ上で動作する。これらの実施形態は、次いで、それらのポッド又はVMのハードウェアアクセラレータドライバを使用して、制御又はエッジアプリケーションのためのハードウェアアクセラレータへのパススルーアクセスを有する。これらの実施形態のいくつかでは、制御又はエッジアプリケーションは、その関連RIC SDKを介してハードウェアアクセラレータと通信し、他のO-RANコンポーネントと通信し、その関連RIC SDK及びO-RANコンポーネントとアプリケーションを接続する分散ニアRT RICを介して(データを受信し、そのデータ処理の結果を提供するために)、他のO-RANコンポーネントと通信する。いくつかの実施形態において、これらの実施形態の制御又はエッジアプリケーションは、図15の処理1500と同様の処理を実行する。 Those of ordinary skill in the art will recognize that pass-through access for O-RAN control or edge applications is used in other deployment configurations in other embodiments. For example, instead of running on pods, applications in other embodiments run on containers. These embodiments then use their pod or VM's hardware accelerator driver to have pass-through access to the hardware accelerator for control or edge applications. In some of these embodiments, the control or edge application communicates with the hardware accelerator through its associated RIC SDK, communicates with other O-RAN components, and communicates with the application through its associated RIC SDK and O-RAN components. communicates with other O-RAN components (to receive data and provide the results of its data processing) through distributed near RT RICs that connect the O-RAN components. In some embodiments, the control or edge application of these embodiments performs a process similar to process 1500 of FIG. 15.

上記のハードウェアアクセラレータへの直接パススルーアクセスは、O-RANに非常に有益である。RICは、以前はRANソフトウェア(CU及びDU)に組み込まれていたインテリジェンスを切り離し、クラウドに移動することについてのすべてに関する。この利点の1つは、クラウド内のより高度なコンピューティングをxApp及びエッジ動作(ML、ディープラーニング、制御アルゴリズムの強化学習など)に使用することである。セルサイトに近いDUは、ネットワークキャップXが非常に高いため、各セルサイトにGPUを配置することは経済的に実現不可能であり、通常、事前計算を実行できない。 Direct pass-through access to the hardware accelerators described above is highly beneficial for O-RAN. RIC is all about decoupling the intelligence previously embedded in the RAN software (CU and DU) and moving it to the cloud. One of the benefits of this is to use more advanced computing in the cloud for xApp and edge operations (ML, deep learning, reinforcement learning for control algorithms, etc.). DUs close to cell sites have very high network caps, X, making it economically unfeasible to place a GPU at each cell site and typically cannot perform precomputation.

SDDC内のハードウェアアクセラレータ(GPU、FPGA、eASIC、ASIC)を使用することにより、いくつかの実施形態は、クラウド内で複雑な制御アルゴリズムを実行する。このようなxAppの例には、上述した、大規模MIMOビームフォーミング及びマルチユーザ(MU) MIMOユーザペアリングが含まれる。一般に、膨大な並列化の利点を得られるxAppは、GPU又はその他のアクセラレータの利点を得られる。ASICの使用は、チャネルデコード/エンコード(ターボ符号化、LDPC符号化など)に有益である。いくつかの実施形態において、RICは、通常、xAppsと同じワーカVM上にある。しかしながら、他の実施形態では、RICは、GPU及び他のハードウェアアクセラレータを必要とするより多くのxAppが、GPU及び/又は他のハードウェアアクセラレータを有するホスト上で実行できるように、異なるホストコンピュータ上で動作する。 By using hardware accelerators (GPUs, FPGAs, eASICs, ASICs) in the SDDC, some embodiments execute complex control algorithms in the cloud. Examples of such xApps include massive MIMO beamforming and multi-user (MU) MIMO user pairing, as discussed above. In general, xApps that can benefit from massive parallelism can benefit from GPUs or other accelerators. The use of ASICs is beneficial for channel decoding/encoding (Turbo coding, LDPC coding, etc.). In some embodiments, the RIC is typically on the same worker VM as the xApps. However, in other embodiments, the RIC runs on a different host computer so that more xApps that require GPUs and other hardware accelerators can run on hosts that have GPUs and/or other hardware accelerators.

図19は、いくつかの実施形態が、ホストコンピュータのハードウェアアクセラレータへの直接的なパススルーアクセスを有するO-RANアプリケーションをデプロイするために使用する処理を示す。ホストコンピュータにアプリケーションをインストールするために、処理1900は、ホストコンピュータのハードウェアアクセラレータへのアプリケーションのパススルーアクセスを構成するための記述を含む、1つ以上のインストールファイルのセットを(1905において)選択する。いくつかの実施形態では、ファイルのセットは、そのコンピュータのハードウェアアクセラレータへのアプリケーションのための直接的なパススルーアクセスを指定する1つの記述ファイルを含む。 FIG. 19 illustrates a process that some embodiments use to deploy an O-RAN application with direct pass-through access to a host computer's hardware accelerator. To install an application on a host computer, process 1900 selects (at 1905) a set of one or more installation files that include descriptions for configuring the application's pass-through access to hardware accelerators on the host computer. . In some embodiments, the set of files includes one description file that specifies direct pass-through access for the application to the computer's hardware accelerator.

処理1900は、パススルーアクセスに関する記述に基づいて、アプリケーションに関連する特定のハードウェアアクセラレータドライバからハードウェアアクセラレータにコールを渡すためにホストコンピュータ上で動作するプログラムを、特定のハードウェアアクセラレータドライバとハードウェアアクセラレータとの間でホストコンピュータ上で動作する1つ以上のドライバのセットを介在させることなく、構成するインストールファイルのセットを(1910において)使用する。この構成により、アプリケーションは、アプリケーションの動作を実行するようにハードウェアアクセラレータに指示し、動作の結果をハードウェアアクセラレータから受信する場合に、介在するドライバのセットをバイパスすることができる。 Process 1900 causes a program running on the host computer to pass calls from a particular hardware accelerator driver associated with the application to the hardware accelerator based on the description regarding pass-through access. The configured set of installation files is used (at 1910) without the intervening set of one or more drivers operating on the host computer between the accelerator and the accelerator. This configuration allows an application to bypass a set of intervening drivers when instructing a hardware accelerator to perform application operations and receiving results of the operations from the hardware accelerator.

いくつかの実施形態では1910で構成されるプログラムはホストのオペレーティングシステムであり、他の実施形態ではホストコンピュータ上で実行されるハイパーバイザである。さらに別の実施形態では、プログラムは仮想マシン(VM)であり、アプリケーションはポッド上又はVM上で実行されるコンテナ上で動作する。処理1900は、1905において選択された残りのインストールファイルのセットを処理してアプリケーションのインストールを(1915において)完了し、終了する。他の実施形態では、処理1900は、1910における第1の動作としてではなく、その最後の動作としてプログラムの構成を実行する。さらに別の実施形態では、これは、その介在するインストール動作の1つとして、この構成を実行する。 In some embodiments, the program configured at 1910 is a host operating system, and in other embodiments a hypervisor running on a host computer. In yet another embodiment, the program is a virtual machine (VM) and the application runs on a pod or a container running on the VM. The process 1900 processes the remaining set of installation files selected at 1905 to complete the installation of the application (at 1915) and ends. In other embodiments, the process 1900 performs the configuration of the program as its last operation at 1910 rather than as its first operation. In yet another embodiment, it performs this configuration as one of its intervening installation operations.

選択及び構成を実行する前に、いくつかの実施形態のデプロイプロセスは、いくつかのホストコンピュータからホストコンピュータを、アプリケーションをインストールすべきコンピュータとして識別する。いくつかの実施形態の処理は、アプリケーションがハードウェアアクセラレータを必要とすることを判定し、各々がハードウェアアクセラレータを構成するホストコンピュータのセットを識別し、ホストコンピュータのセットからホストコンピュータを選択することによって、ホストコンピュータを識別する。このプロセスは、(1)選択されたホストコンピュータ上で実行される1つ以上の他のアプリケーションのセットとアプリケーションが通信する必要があると判定すること、及び(2)ホストコンピュータ上で同時に実行される他のアプリケーションのセットとしてホストコンピュータを選択することによって、ホストコンピュータを選択する。このように、選択したホストコンピュータ上に他のアプリケーションのセットと一緒にアプリケーションをインストールすると、アプリケーションと他のアプリケーションのセットとの間の通信遅延が削減される。 Before performing selection and configuration, the deployment process of some embodiments identifies a host computer from a number of host computers as the computer on which the application is to be installed. The process of some embodiments includes determining that the application requires a hardware accelerator, identifying a set of host computers each configuring the hardware accelerator, and selecting a host computer from the set of host computers. identifies the host computer. This process includes (1) determining that an application needs to communicate with a set of one or more other applications running on a selected host computer; and (2) a set of other applications running concurrently on a selected host computer. Select the host computer by selecting the host computer as a set of other applications. In this manner, installing an application along with a set of other applications on a selected host computer reduces communication delays between the application and the other set of applications.

いくつかの実施形態は、O-RAN制御又はエッジアプリケーションのハードウェアアクセラレータドライバを有し、アプリケーションと同じホストコンピュータ上で実行される、介在する仮想化アプリケーション(例えば、ハイパーバイザ)によって提供される仮想化ハードウェアアクセラレータと通信する。例えば、いくつかの実施形態の方法は、ホストコンピュータ上で実行されるいくつかのマシン間でホストコンピュータのリソースを共有するために、ホストコンピュータ上に仮想化アプリケーションをデプロイする。このコンピュータには、1つ以上の物理ハードウェアアクセラレータの第1セットがある。 Some embodiments have O-RAN control or edge application hardware accelerator drivers and virtualization provided by an intervening virtualization application (e.g., a hypervisor) running on the same host computer as the application. communicate with hardware accelerators. For example, the method of some embodiments deploys a virtualized application on a host computer to share the resources of the host computer among several machines running on the host computer. The computer has a first set of one or more physical hardware accelerators.

この方法は、いくつかのマシンにいくつかのアプリケーションをデプロイし、O-RANコンポーネントのセットに対していくつかのO-RAN関連動作を実行する。仮想化アプリケーションを介して、この方法は、仮想化アプリケーションによって物理ハードウェアアクセラレータの第1のセットにマッピングされる2つ以上の仮想ハードウェアアクセラレータの第2のセットを定義する。この方法では、異なる仮想ハードウェアアクセラレータを異なるアプリケーションに割り当てる。この方法では、割り当てられた仮想ハードウェアアクセラレータを使用して動作を実行するようにアプリケーションを構成することもできる。 This method deploys some applications on several machines and performs some O-RAN related operations on a set of O-RAN components. Via the virtualization application, the method defines a second set of two or more virtual hardware accelerators that are mapped by the virtualization application to the first set of physical hardware accelerators. In this method, different virtual hardware accelerators are assigned to different applications. The method also allows an application to be configured to perform operations using the assigned virtual hardware accelerator.

いくつかの実施形態では、デプロイされたマシンはポッドであり、アプリケーションはポッド上で動作するようにデプロイされる。少なくとも2つのポッドは、仮想化アプリケーションの上位で動作する1つのVM上で動作する。このVMには、2つのポッド上で動作する2つのアプリケーションの2つの異なる仮想ハードウェアアクセラレータと通信するように設定されたハードウェアアクセラレータドライバが含まれる。他の実施形態では、複数のポッドは、仮想化アプリケーションの上で実行される1つのVM上で実行され、各ポッドは、そのドライバに割り当てられた仮想ハードウェアアクセラレータと通信するように構成されたハードウェアアクセラレータドライバを有する。 In some embodiments, the deployed machine is a pod and the application is deployed to run on the pod. At least two pods run on one VM running on top of a virtualized application. This VM includes a hardware accelerator driver configured to communicate with two different virtual hardware accelerators for two applications running on two pods. In other embodiments, multiple pods run on a single VM running on top of a virtualized application, and each pod is configured to communicate with a virtual hardware accelerator assigned to its driver. Has a hardware accelerator driver.

図20は、それらの演算の一部又は全部を実行するために、ホストコンピュータ2010上で実行されるハイパーバイザ2008によって定義される仮想ハードウェアアクセラレータ2052及び2054へのパススルーアクセスを有するCP又はエッジアプリケーション2002の例を示す。説明するように、各アプリケーション2002は、仮想アクセラレータ2052又は2054への直接的なパススルーアクセスを有するアクセラレータドライバ2012を有するポッド2004上で実行される。各ポッド2004は、ホストコンピュータのハイパーバイザ2008上で動作するVM2006内で動作する(すなわち、VM2006上で動作する)。 FIG. 20 shows CP or edge applications having pass-through access to virtual hardware accelerators 2052 and 2054 defined by hypervisor 2008 running on host computer 2010 to perform some or all of their operations. An example of 2002 is shown below. As described, each application 2002 runs on a pod 2004 that has an accelerator driver 2012 with direct pass-through access to a virtual accelerator 2052 or 2054. Each pod 2004 runs within a VM 2006 (ie, runs on a VM 2006) running on the host computer's hypervisor 2008.

各ポッドのアクセラレータドライバ2012は、仮想アクセラレータ2052又は2054への直接アクセスを有し、このアクセスは、VM2006及びハイパーバイザ2008のアクセラレータドライバ2014及び2016をバイパスする。いくつかの実施形態では、ハイパーバイザ2008は、ホストコンピュータ2010のオペレーティングシステム(図示せず)上で動作する。これらの実施形態では、仮想アクセラレータ2052又は2054への各ポッドのアクセラレータドライバ2012の直接アクセスも、オペレーティングシステムのハードウェアアクセラレータドライバをバイパスする。 Each pod's accelerator driver 2012 has direct access to the virtual accelerator 2052 or 2054, which bypasses the VM 2006 and hypervisor 2008 accelerator drivers 2014 and 2016. In some embodiments, hypervisor 2008 runs on the operating system (not shown) of host computer 2010. In these embodiments, each pod's accelerator driver 2012's direct access to the virtual accelerator 2052 or 2054 also bypasses the operating system's hardware accelerator driver.

説明するように、仮想アクセラレータ2052及び2054は、ハイパーバイザ2008のアクセラレータマネージャ2060を介してハードウェアアクセラレータ2050と通信する。アクセラレータマネージャ2060は、仮想アクセラレータ2052及び2054(並びにそれらに関連するアプリケーション2002)が1つのハードウェアアクセラレータ2050を共有することを可能にし、このアクセラレータ2050と共に、それぞれのアプリケーション及びポッド2002及び2004専用であるかのように動作する。このようなハードウェアアクセラレータ2050の例には、グラフィカルプロセッシングユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、及び構造化ASICが含まれる。 As described, the virtual accelerators 2052 and 2054 communicate with the hardware accelerator 2050 through an accelerator manager 2060 of the hypervisor 2008. The accelerator manager 2060 allows the virtual accelerators 2052 and 2054 (and their associated applications 2002) to share a single hardware accelerator 2050 and operate with the accelerator 2050 as if it were dedicated to the respective applications and pods 2002 and 2004. Examples of such hardware accelerators 2050 include graphical processing units (GPUs), field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and structured ASICs.

仮想アクセラレータ2052又は2054と通信するために、いくつかの実施形態の各アプリケーション2002は、ポッド2004上で実行されるRIC SDK2030を介して通信する。例えば、いくつかの実施形態では、各アプリケーション2002は、RIC SDK2030の高レベルAPIを使用して、その仮想アクセラレータ2052又は2054と通信する。次に、RIC SDK2030は、高レベルAPIを、各マシンのドライバ2012と通信するために必要とされる低レベルAPIに変換し、これは、通信を仮想アクセラレータ2052又は2054に中継する。次に、仮想アクセラレータ2052又は2054は、アクセラレータマネージャ2060を介してハードウェアアクセラレータ2050に通信を中継する。 To communicate with the virtual accelerator 2052 or 2054, each application 2002 in some embodiments communicates via a RIC SDK 2030 running on the pod 2004. For example, in some embodiments, each application 2002 uses high-level APIs of the RIC SDK 2030 to communicate with its virtual accelerator 2052 or 2054. RIC SDK 2030 then translates the high-level API into the low-level API needed to communicate with each machine's driver 2012, which relays the communication to virtual accelerator 2052 or 2054. Virtual accelerator 2052 or 2054 then relays the communication to hardware accelerator 2050 via accelerator manager 2060.

図14を参照して上述したように、いくつかの実施形態では、低レベルAPIは、ハードウェアアクセラレータ2050の販売に関連する第1の会社によって提供され、一方、RIC SDK2030は、RIC SDK2030の販売に関連する第2の会社によって提供される。いくつかの実施形態では、RIC SDK2030によって使用される低レベルAPIは、ハードウェアアクセラレータ2050に関連するAPIライブラリ2032において規定されるAPIである。各アプリケーション2002は、アクセラレータマネージャ2060、その仮想アクセラレータ2052又は2054、そのドライバ2012及びそのRIC SDK2030を介して、ハードウェアアクセラレータ2050の動作の結果を受信する。 As discussed above with reference to FIG. 14, in some embodiments, the low-level API is provided by a first company associated with the sale of the hardware accelerator 2050, while the RIC SDK 2030 is provided by a first company associated with the sale of the RIC SDK 2030. provided by a second company associated with. In some embodiments, the low-level API used by RIC SDK 2030 is an API defined in API library 2032 associated with hardware accelerator 2050. Each application 2002 receives the results of the operations of the hardware accelerator 2050 via the accelerator manager 2060, its virtual accelerator 2052 or 2054, its driver 2012, and its RIC SDK 2030.

低遅延のニアRT RICを提供するために、いくつかの実施形態は、RIC機能を、同一のホストコンピュータ又は異なるホストコンピュータ上で動作する異なる(例えば、VM又はポッド上で動作する)マシン上で動作するいくつかの異なるコンポーネントに分離する。また、いくつかの実施形態は、これらのマシン間に高速なインタフェースを提供する。これらのインタフェースの一部又は全部は、ニアRT RICの重要な動作(例えば、データパス処理)が、1つ以上のコンポーネントをストールさせる複数の要求のために遅延しないことを保証するために、ノンブロッキング、ロックレスの態様で動作する。さらに、これらのRICコンポーネントのそれぞれは、コンポーネントのあるプロセスがコンポーネントの別のプロセスの動作をブロックできないように、ノンブロッキングの態様で動作するように設計された内部アーキテクチャも有する。これらの低遅延機能はすべて、ニアRT RICがE2ノードとxApp間の高速IOとして機能できるようにする。 To provide low-latency near RT RIC, some embodiments deploy RIC functionality on different machines (e.g., running on VMs or pods) running on the same host computer or on different host computers. Separate it into several different components that work. Also, some embodiments provide a high speed interface between these machines. Some or all of these interfaces may be non-blocking to ensure that critical operations of the near RT RIC (e.g. datapath processing) are not delayed due to multiple requests stalling one or more components. , operates in a lockless manner. Additionally, each of these RIC components also has an internal architecture designed to operate in a non-blocking manner so that one process of the component cannot block the operation of another process of the component. All these low-latency features allow the near RT RIC to act as a high-speed IO between the E2 node and the xApp.

図21は、いくつかの異なるマシン上で動作するいくつかのコンポーネントを有する、ニアRT RIC2100の例を示す。この例では、ニアRT RICが3つのポッドに分割されている。これらはデータパスポッド2105、サービスポッド2110、SDLポッド2115である。いくつかの実施形態では、このRICは、(1)E2ノード2118とxApps2120との間のE2APメッセージを処理し、(2)E2ノード2118とのコネクションを管理し、(3)E2ノードへのxAppサブスクリプションを処理し、(4)xAppライブネス動作を処理する。RIC2100は、さまざまなコンポーネント間、E2ノードとxApps間、及びE2ノード/xAppsとRICコンポーネント間で、信頼性の高い低遅延メッセージングを提供する。RICの低遅延アーキテクチャの一部は、異なるポッドを使用してデータIO、サービス、及びSDL動作を実施することに起因する。そのため、それらが複数の異なるポッドで実行する動作のそれぞれのニーズに基づいて、異なるリソース割り当て及び管理動作をこれらのポッドのそれぞれに提供できる。 FIG. 21 shows an example of a near RT RIC 2100 with several components running on several different machines. In this example, the near RT RIC is divided into three pods. These are data path pod 2105, service pod 2110, and SDL pod 2115. In some embodiments, this RIC (1) processes E2AP messages between E2 node 2118 and xApps 2120, (2) manages connections with E2 node 2118, and (3) processes xApps to E2 nodes. (4) handle xApp liveness operations; The RIC 2100 provides reliable, low-latency messaging between various components, between E2 nodes and xApps, and between E2 nodes/xApps and RIC components. Part of RIC's low-latency architecture is due to the use of different pods to implement data IO, services, and SDL operations. As such, different resource allocation and management operations can be provided to each of the different pods based on the respective needs of the operations they perform on the plurality of different pods.

3つのRICポッド2105、2110、及び2115はそれぞれ、1つ以上のxAppポッド2120と通信する。いくつかの実施形態において、各ポッド(2105、2110、2115又は2120)は、ポッドの固有のニーズ(すなわち、各ポッドによって実行されるデータパス、サービス及び記憶動作)に従って、ハードウェアリソース(例えば、CPU、メモリ、ディスクストレージ、ネットワークIOなど)が割り当てられる。また、一部の実施形態では、各ポッドには、各ポッドの固有のニーズに一致する独自の高可用性及びライフサイクル更新設定がある。 Each of the three RIC pods 2105, 2110, and 2115 communicates with one or more xApp pods 2120. In some embodiments, each pod (2105, 2110, 2115, or 2120) has hardware resources (e.g., CPU, memory, disk storage, network IO, etc.) are allocated. Additionally, in some embodiments, each pod has its own high availability and lifecycle update settings that match each pod's unique needs.

サービスポッド2110は、いくつかの実施形態において、xAppオンボーディング、登録、FCAPS(障害、構成、アカウンティング、性能、セキュリティ)、及びその他のサービスを実行する。例えば、いくつかの実施形態では、サービスポッド2110は、ニアRT RICの管理サービス554を提供し、О1終端580及びA1終端582をSMO及びその関連する非RT RICに実行する。いくつかの実施形態では、これらのコンポーネント554、580、及び582のそれぞれは、サービスポッド2110内の別個のコンテナ上で動作し、他の実施形態では、これらのコンポーネントの2つ以上は、サービスポッド2110内の1つのコンテナ上で動作する。 Service pod 2110 performs xApp onboarding, registration, FCAPS (fault, configuration, accounting, performance, security), and other services in some embodiments. For example, in some embodiments, the service pod 2110 provides management services 554 for near RT RICs and performs O1 termination 580 and A1 termination 582 to the SMO and its associated non-RT RICs. In some embodiments, each of these components 554, 580, and 582 runs on a separate container within the service pod 2110, and in other embodiments, two or more of these components It runs on one container in 2110.

上述のように、いくつかの実施形態では、A1インタフェースは、ニアRT RICと非RT RICとの間にある。このインタフェースを介して、ニアRT RICはE2ノード(例えばCU及びDU)によって報告される関連ネットワーク情報を中継し、非RT RICはE2ノード(例えば非RTの粒度での制御ユースケース動作用)の制御コマンドを提供する。О1インタフェースは、ニアRT RICとSMOの間にあり、いくつかの実施形態では、検出、構成、リソース管理、自動スケーリング、ライフサイクル管理、及びフォールトトレランスのために使用される。 As mentioned above, in some embodiments the A1 interface is between the near RT RIC and the non-RT RIC. Through this interface, the near RT RIC relays the relevant network information reported by the E2 nodes (e.g. CU and DU), and the non-RT RIC relays the relevant network information reported by the E2 nodes (e.g. for control use case operation at non-RT granularity). Provide control commands. The O1 interface is between the near RT RIC and SMO and is used in some embodiments for discovery, configuration, resource management, autoscaling, lifecycle management, and fault tolerance.

いくつかの実施形態におけるRIC管理サービス554は、ニアRT RICがxApps及び他のRICコンポーネントに提供するサービスを含む。xAppsに提供されるサービスの例としては、xAppサービスレジストリ/ディレクトリ(xAppsは、分散ニアRT RICに関連付けられた他のxAppsと、これらの他のxAppsによって実行される動作を識別するために使用できる)、及びFCAP動作(メトリック収集、ポリシープロビジョニング、構成など)がある。いくつかの実施形態において、xAppsは、サービスレジストリ/ディレクトリに照会して、特定のサービスを実行する他のxApps又は他のxAppsを識別することができ、xAppsがディレクトリに追加されたときに、xApps及びその機能に関する通知を受信するように登録することができる。 RIC management services 554 in some embodiments include services provided by the near RT RIC to xApps and other RIC components. Examples of services provided to xApps include an xApp service registry/directory (an xApp can be used to identify other xApps associated with a distributed near RT RIC and the operations performed by these other xApps). ), and FCAP operations (metric collection, policy provisioning, configuration, etc.). In some embodiments, an xApp can query a service registry/directory to identify other xApps or other xApps that perform a particular service, and when an xApp is added to the directory, the xApps and can register to receive notifications about its features.

xApp用のサービスポッド2110によって実行されるFCAP動作の例には、アラートを発生させるために分析するCPU及びメモリ使用率を収集するメトリック、xAppsを設定又は再設定するための構成動作、xAppsからメトリックを収集してxAppのパフォーマンスを定量化するために分析するためにアカウンティング及びパフォーマンス動作に必要なデータを収集するためのアカウンティング動作が含まれる。 Examples of FCAP operations performed by the service pod 2110 for xApps include metrics that collect CPU and memory usage for analysis to raise alerts, configuration operations to configure or reconfigure xApps, and metrics from xApps. Accounting operations are included to collect data necessary for accounting and performance operations to collect and analyze data to quantify the performance of the xApp.

その他のRICコンポーネント(データパスポッド2105及びSDLポッド2115 など)の場合、サービスポッド2110はメトリック収集、ポリシープロビジョニング、設定などのサービスも実行する。サービスポッド2110は、集中制御装置、すなわちSMOの方向で動作を実行するローカル制御装置と見ることができる。SMOを介して、サービスポッド2110はxApps及びその他のRICコンポーネントに配布する構成とポリシーを受信する。また、SMOに対して、サービスポッド 2110は、xApps及び/又はRICコンポーネント(例えば、データパスポッド及びSDLポッド)から収集されたメトリクス、ログ及びトレースデータを提供する。いくつかの実施形態では、サービスポッドは、他のポッドとは独立してスケーリング(例えば、複製)し、バックアップすることができる。いくつかの実施形態において、サービスポッドは、SMOの時系列データベースのためのキャッシュであるデータキャッシュを有する。このキャッシュでは、サービスポッドは、このデータをSMOデータベースにアップロードする前に、xApps及び1つ以上のRICコンポーネントから収集した統計、ログ、トレースデータ、及びその他のメトリクスを保存する。 For other RIC components (such as datapath pod 2105 and SDL pod 2115), service pod 2110 also performs services such as metric collection, policy provisioning, and configuration. The service pod 2110 can be viewed as a local controller that performs operations in the direction of a central controller, or SMO. Through the SMO, the service pod 2110 receives configurations and policies to distribute to xApps and other RIC components. Also, for SMO, service pod 2110 provides metrics, log and trace data collected from xApps and/or RIC components (eg, data path pods and SDL pods). In some embodiments, service pods can be scaled (e.g., replicated) and backed up independently of other pods. In some embodiments, the service pod has a data cache that is a cache for the SMO's time series database. In this cache, the service pod stores statistics, logs, trace data, and other metrics collected from xApps and one or more RIC components before uploading this data to the SMO database.

SDLポッド2115は、SDL560及びそれに関連するデータベース570を実施する。以下にさらに説明するように、いくつかの実施形態のSDLポッド2115は、また、1つ以上のサービスコンテナを実行して、SDLに記憶されたデータ上で1つ以上の前処理又は後処理サービスを実行する。サービスポッドと同様に、いくつかの実施形態におけるSDLポッドは、他のポッドとは独立してスケーリング(例えば、複製)し、バックアップすることができる。 SDL pod 2115 implements SDL 560 and its associated database 570. As described further below, the SDL pod 2115 of some embodiments also executes one or more service containers to perform one or more pre-processing or post-processing services on the data stored in the SDL. Execute. Similar to service pods, SDL pods in some embodiments can be scaled (e.g., replicated) and backed up independently of other pods.

データパスポッド2105には、いくつかの重要なニアRT RICコンポーネントが含まれている。これらは、E2終端584、コンフリクト緩和550、アプリケーションサブスクリプション管理552、及びRIC SDKインタフェース2150である。以下にさらに説明するように、いくつかの実施形態におけるこれらのデータパスサービスの一部又は全部は、データパスポッドのデータパススレッド及び制御スレッドに組み込まれる。他の実施形態では、データパスサービスは、データIOスレッド、複数のデータ処理スレッド、及び制御スレッドに組み込まれる。 Datapath pod 2105 contains several important near RT RIC components. These are E2 termination 584, conflict mitigation 550, application subscription management 552, and RIC SDK interface 2150. As described further below, some or all of these datapath services in some embodiments are incorporated into the datapath thread and control thread of the datapath pod. In other embodiments, data path services are incorporated into a data IO thread, multiple data processing threads, and a control thread.

スレッドは、コンピュータ上で実行されるプロセスのコンポーネントである。プロセスは、アプリケーションであっても、より大きなアプリケーションの一部であってもかまわない。スレッドは、プログラムされた命令のシーケンスであり、プロセスの他のスレッドから独立して管理することができる。プロセスに割り当てられたメモリを共有しながら、特定のプロセスの複数のスレッドを同時に実行できる(マルチコアプロセッサのマルチスレッド機能を使用するなど)。マルチスレッドは、1つのプロセスのコンテキスト内に複数のスレッドを存在させるプログラミング及び実行モデルである。これらのスレッドはプロセスのリソースを共有するが、独立して実行できる。 A thread is a component of a process that runs on a computer. A process can be an application or part of a larger application. A thread is a sequence of programmed instructions that can be managed independently from other threads of the process. Allows multiple threads of a given process to run simultaneously while sharing the memory allocated to the process (for example, by using the multithreading capabilities of a multicore processor). Multithreading is a programming and execution model that allows multiple threads to exist within the context of a single process. These threads share the process's resources but can run independently.

いくつかの実施形態における制御スレッドは、データパススレッドのためのサービスポッド及びSDLポッドとのインタフェースであるが、他の実施形態では、データパススレッドのためのサービスポッドへのインタフェースである(データパススレッドはSDLポッドと直接通信できるため)。これらのいずれかのアプローチの制御スレッドは、データパスの低速な制御関連動作を実行し、一方、1つ以上のデータパススレッドは、データパスの高速なIO動作を実行する。いくつかの実施形態における制御スレッドは、データパススレッドの動作だけでなく、それ自体の動作を構成するための構成データを受信するために、サービスポッドとインタフェースを有する。 The control thread in some embodiments is the interface to the service pod and the SDL pod for the datapath thread, while in other embodiments it is the interface to the service pod for the datapath thread (datapath (because threads can communicate directly with SDL pods). The control thread in either of these approaches performs the slow control-related operations of the datapath, while one or more datapath threads performs the fast IO operations of the datapath. The control thread in some embodiments has an interface with the service pod to receive configuration data to configure its own operation as well as the operation of the datapath thread.

データパススレッドをデータIOスレッド及び複数データ処理スレッドに分離する実施形態は、データパススレッドのより計算量の多い演算を複数のデータパス処理スレッドにプッシュすることにより、データIOをさらに最適化し、それにより、データIOスレッドで実行する計算量の少ない演算を可能にする。これらの最適化は両方とも、高速データパスIO(不要な遅延を生じないもの)を確保することを意図しており、ニアRT RICがE2ノード2118とxApps2120間の高速インタフェースとして機能できるようにする。 Embodiments that separate the data path thread into a data IO thread and multiple data processing threads further optimize data IO by pushing the more computationally intensive operations of the data path thread to multiple data path processing threads, which This enables low-computation operations to be performed on the data IO thread. Both of these optimizations are intended to ensure high-speed datapath IO (one that does not introduce unnecessary delays), allowing the near RT RIC to act as a high-speed interface between the E2 node 2118 and the xApps 2120. .

上述したように、ポッド2105、2110及び2115は、高速ポッドインターフェイスを介して通信する。いくつかの実施形態では、ポッドtoポッド接続は、SCTP(ストリーミング制御伝送プロトコル)又はさらに高速な共有メモリ(shmem)接続を介して確立される。いくつかの実施形態では、共有メモリ接続は、同じホストコンピュータ上で実行されるポッドの対の間でのみ使用される。このようなポッドのペアの例としては、(1)データパスポッドとSDLポッド、(2)データパスポッドとサービスポッド、(3)サービスポッドとSDLポッド、(4)xAppポッドとデータパスポッド、(5)xAppポッドとSDLポッドなどがある。共有メモリはロックレスであり、いくつかの実施形態ではそれへのアクセスは非ブロッキングである。他の実施形態では、サービスポッド2110と他のポッド2105、#115、及び2120との間の低速インタフェース(例えば、gRPC)をサービスポッドとして使用するが、他のポッドほど重要ではない。 As mentioned above, pods 2105, 2110 and 2115 communicate via a high speed pod interface. In some embodiments, pod-to-pod connections are established via SCTP (Streaming Control Transmission Protocol) or even faster shared memory (shmem) connections. In some embodiments, shared memory connections are used only between pairs of pods running on the same host computer. Examples of such pod pairs are (1) datapath pod and SDL pod, (2) datapath pod and service pod, (3) service pod and SDL pod, (4) xApp pod and datapath pod, (5) There are xApp pods, SDL pods, etc. Shared memory is lockless, and in some embodiments access to it is non-blocking. Other embodiments use low speed interfaces (eg, gRPC) between service pod 2110 and other pods 2105, #115, and 2120 as service pods, but less important than other pods.

いくつかの実施形態におけるニアRT RICの異なるポッド(例えば、2105、2110及び2115)は、同じホストコンピュータ上で動作することができ、又は2つ以上のホストコンピュータ上で動作することができる。他の実施形態では、1つ以上のポッド(例えば、サービスポッド2110)は、常に、他のポッド(例えば、データパスポッド2105及びSDLポッド2115)以外の別個のホストコンピュータ上で動作する。また、いくつかの実施形態では、ポッド2105、2110及び2115は、1つ以上のxAppポッド2220aと共に1つのホストコンピュータ2205上で動作し、他のxAppポッド2220bは、図22に示されるように、他のホストコンピュータ2210上で動作する。他の実施形態では、2つのポッド2105、2110及び2115は、1つ以上のxAppポッドと共に1つのホストコンピュータ上で動作し、一方のポッド2105、2110及び2115は、1つ以上のxAppポッドと共に別のホストコンピュータ上で動作する。 In some embodiments, the different pods (e.g., 2105, 2110, and 2115) of the near RT RIC can run on the same host computer, or on more than one host computer. In other embodiments, one or more pods (e.g., service pod 2110) always run on a separate host computer than the other pods (e.g., datapath pod 2105 and SDL pod 2115). Also, in some embodiments, pods 2105, 2110, and 2115 run on one host computer 2205 along with one or more xApp pods 2220a, and other xApp pods 2220b run on other host computers 2210, as shown in FIG. 22. In other embodiments, two pods 2105, 2110, and 2115 run on one host computer with one or more xApp pods, and one pod 2105, 2110, and 2115 runs on another host computer with one or more xApp pods.

例えば、図23は、2つのxAppポッド2320aと共にホストコンピュータ2300上で実行されるデータパスポッド2105及びサービスポッド2110を示し、一方SDLポッド2115は2つのxAppポッド2320bと共にホストコンピュータ2310上で動作する。いくつかの実施形態では、ハードウェアアクセラレータを必要とするポッドは、そのようなハードウェアリソースを有するホストコンピュータ上に置かれ、これらのアクセラレータを必要としないポッドは、上述のように、これらのアクセラレータを持たないホストコンピュータ上に置かれる。いくつかの実施形態では、SDLポッド及びxAppポッドはハードウェアアクセラレータを使用し、データパスポッド及びサービスポッドは使用しない。ハードウェアアクセラレータから恩恵を受けることができるポッドの様々な例、及びこれらのアクセラレータへのバイパスについては、上記及び以下でさらに説明する。 For example, FIG. 23 shows a datapath pod 2105 and a service pod 2110 running on host computer 2300 with two xApp pods 2320a, while SDL pod 2115 runs on host computer 2310 with two xApp pods 2320b. In some embodiments, pods that require hardware accelerators are placed on a host computer that has such hardware resources, and pods that do not require these accelerators are placed on a host computer that has such hardware resources, as described above. located on a host computer that does not have In some embodiments, SDL pods and xApp pods use hardware accelerators, and data path pods and service pods do not. Various examples of pods that can benefit from hardware accelerators, and bypassing to these accelerators, are discussed further above and below.

また、いくつかのニアRT RICは、ポッドを用いて実装されるものとして上記及び以下で説明されるが、他の実施形態のニアRT RICは、RICコンポーネントを実装するためにVMを使用する。さらに、ポッドで異なるRICコンポーネントを実装する実施形態であっても、ポッドの一部又はすべては、軽量VM(例えば、VMware、Inc.が提供するPhoton VM)のようなVM上で動作する。 Also, while some near RT RICs are described above and below as being implemented using pods, other embodiments near RT RICs use VMs to implement the RIC components. Additionally, even in embodiments that implement different RIC components in pods, some or all of the pods run on a VM, such as a lightweight VM (eg, Photon VM provided by VMware, Inc.).

ポッド間の高速通信インタフェースを使用することに加えて、いくつかの実施形態では、ポッドの一部又は全部が、ノンブロッキング、ロックレス通信プロトコル及びアーキテクチャを使用する。たとえば、データパスポッド2105は、このポッドを構成するスレッドとプロセス間で非ブロッキングのロックレス通信を使用する。データパスポッド2105は、サービスポッド2110、SDLポッド2115、xAppポッド2120との通信時に、ノンブロッキングロックレス通信も使用する。ノンブロッキング通信では、第2のコンポーネントに要求を送信する第1のコンポーネントは、第2のコンポーネントが処理する要求が多すぎる場合に、第2のコンポーネントの動作を停止させることはない。このような場合、第2のコンポーネントは、後で第1のコンポーネントに要求を再送信するように指示する。データパスポッドは、スレッドハンドオフを使用しない単一スレッド処理を使用するため、ロックレス通信を使用する。そのため、別のプロセススレッドが一時的な期間にメモリを変更しないようにするために、メモリの一部をロックする必要はない。 In addition to using high-speed communication interfaces between pods, in some embodiments some or all of the pods use non-blocking, lockless communication protocols and architectures. For example, datapath pod 2105 uses non-blocking, lockless communication between the threads and processes that make up the pod. Datapath pod 2105 also uses non-blocking lockless communication when communicating with service pod 2110, SDL pod 2115, and xApp pod 2120. In non-blocking communication, a first component sending requests to a second component does not stop the second component from operating if the second component processes too many requests. In such a case, the second component instructs the first component to resend the request at a later time. Datapath pods use single-threaded processing without thread handoff, and therefore use lockless communication. Therefore, there is no need to lock a portion of memory to prevent another process thread from modifying it for a temporary period of time.

データパスポッド2105のRIC SDKインタフェース2150とxAppポッド2120のRIC SDK2112との間の通信インタフェースもまた、いくつかの実施形態において新規である。いくつかの実施形態において、このインタフェースは、E2ノードから受信したE2APメッセージのヘッダを解析し、E2APメッセージのE2SMペイロードを、元のE2APヘッダの一部又は全部とともにカプセル化する新しいカプセル化ヘッダに、解析されたコンポーネントの一部又は全部を格納する。このカプセル化を行う際に、いくつかの実施形態のSDKインタフェース2150は、あるポッドから別のポッドへの通信のためのメッセージサイズオーバヘッドを低減する(例えば、E2グローバルID値のサイズを低減するなど)ために、データパッキングを効率的に実行するなどの特定の最適化を実行する。これらの最適化により、ニアRT RICデータパスポッド及びxAppポッド通信の効率が向上する。 The communication interface between the RIC SDK interface 2150 of the data path pod 2105 and the RIC SDK 2112 of the xApp pod 2120 is also new in some embodiments. In some embodiments, this interface parses the header of the E2AP message received from the E2 node and into a new encapsulation header that encapsulates the E2SM payload of the E2AP message along with some or all of the original E2AP header. Store some or all of the analyzed components. In performing this encapsulation, the SDK interface 2150 of some embodiments reduces message size overhead for communication from one pod to another (e.g., reduces the size of the E2 global ID value, etc.). ) to perform certain optimizations such as efficient data packing. These optimizations improve the efficiency of near RT RIC datapath pod and xApp pod communications.

他の実施形態におけるニアRT RICは、1つ以上の他のポッドを有する。たとえば、図24は、ポッド2105、2110、及び2115に加えて、ライフサイクル管理(LCM)ポッド2405も含むニアRT RIC2400を示している。LCMポッドは、ニアRT RIC2400の他のポッド2105、2110、及び2115のそれぞれをアップグレードする特別なサービスポッドである。ライフサイクル管理をサービスポッド2110から分離すると、サービスポッド2110をより簡単にアップグレードできる。 The near RT RIC in other embodiments has one or more other pods. For example, FIG. 24 shows a near RT RIC 2400 that, in addition to pods 2105, 2110, and 2115, also includes a life cycle management (LCM) pod 2405. The LCM pod is a special service pod that upgrades each of the other pods 2105, 2110, and 2115 in the near RT RIC 2400. Separating lifecycle management from the service pod 2110 allows the service pod 2110 to be more easily upgraded.

いくつかの実施形態において、LCMポッド2405は、異なるポッドをアップグレードするために異なるアップグレード方法を使用する。例えば、いくつかの実施形態のLCMポッドは、SDLデータストレージを複製し、SDLのヒットレスアップグレードを実行するために、アクティブデータストアから別のスタンバイデータストアにシームレスに移行する。一方、データパスポッドをアップグレードするには、LCMポッドの手順がより複雑になる。これは、アクティブデータパスポッドとスタンバイデータパスポッドがE2ノードと各xAppのデュアルホーム接続に設定され、アクティブデータパスポッドがスタンバイデータパスとの状態をレプリケートするように設定されるためである。 In some embodiments, LCM pod 2405 uses different upgrade methods to upgrade different pods. For example, the LCM pod of some embodiments seamlessly migrates from an active data store to another standby data store to replicate SDL data storage and perform hitless upgrades of SDL. On the other hand, upgrading the datapath pod requires a more complex procedure for the LCM pod. This is because the active and standby datapath pods are configured to dual home the E2 node and each xApp, and the active datapath pod is configured to replicate state with the standby datapath.

図25は、いくつかの実施形態について、ニアRT RIC2500のより詳細な図を示す。説明するように、ニアRT RIC2500は、データパスポッド2505、サービスポッド2510及びSDLポッド2515を含む。SDLポッド2515は、RIC2500のSDLエージェント2526及び共有SDLストレージ2528を含み、一方、サービスポッド2510は、О1及びA1終端インタフェース2535及び2537と共にサービスエージェント2524を含む。データパスポッド2505は、データパススレッド2507と制御スレッド2509とを含む。 FIG. 25 shows a more detailed diagram of the near RT RIC 2500 for some embodiments. As described, the near RT RIC 2500 includes a data path pod 2505, a service pod 2510, and an SDL pod 2515. SDL pod 2515 includes RIC 2500's SDL agent 2526 and shared SDL storage 2528, while service pod 2510 includes service agent 2524 along with O1 and A1 termination interfaces 2535 and 2537. Datapath pod 2505 includes a datapath thread 2507 and a control thread 2509.

データパススレッド2507は、E2ノード2518とxApps2520との間のニアRT RICの高速データパスIOを提供する。いくつかの実施形態におけるRICのデータプレーン能力は、データパスポッドのデータパス処理のための負荷を共有する1つの制御スレッド及び複数のデータパススレッドを備えたRICデータパスIOを実装することによって、スケールアップすることができる。いくつかのこのような実装について、以下にさらに説明する。制御スレッド2509は、RICのデータパスに関連するいくつかの制御動作を実行する。ニアRT RIC2500は、データIO動作を高速にする必要があり、低速で動作可能な制御動作によって速度を落とすべきではないので、制御スレッドとデータパススレッドを分離する。いくつかの実施形態では、制御及びデータパススレッドは、単一プロセス内の2つのスレッドである(すなわち、同じ共有メモリアドレス空間内で実行される)。 Datapath thread 2507 provides high speed datapath IO for the near RT RIC between E2 node 2518 and xApps 2520. The dataplane capacity of the RIC in some embodiments can be scaled up by implementing RIC datapath IO with one control thread and multiple datapath threads that share the load for datapath processing for the datapath pods. Some such implementations are further described below. Control thread 2509 performs some control operations related to the RIC's datapath. The near RT RIC 2500 separates the control and datapath threads because dataIO operations need to be fast and should not be slowed down by control operations that can operate at slower speeds. In some embodiments, the control and datapath threads are two threads in a single process (i.e., they run in the same shared memory address space).

いくつかの実施形態では、これらのスレッドのそれぞれは、これらの他のコンポーネントと通信する程度に、このアーキテクチャの他のコンポーネント(例えば、RIC SDK、サービスポッドエージェント、SDLエージェント、及び/又はE2ノード)と通信するために、非ブロッキングのロックレスインタフェースを使用する。また、いくつかの実施形態では、両方のスレッドは、最小限のOSシステムコールを使用し、無限ループとして実行する。さらに後述するように、データパススレッド及び制御スレッドは、データパススレッドから制御スレッドへのメッセージ及び制御スレッドからデータパススレッドへの他の処理メッセージを処理する1つのリングと共に、2つの円形リング2522(cbufと呼ばれる)を介してデータを交換する。 In some embodiments, each of these threads may communicate with other components of this architecture (e.g., RIC SDK, Service Pod Agent, SDL Agent, and/or E2 Node) to the extent that each of these threads communicates with these other components. use a non-blocking, lockless interface to communicate with the Also, in some embodiments, both threads use minimal OS system calls and execute as an infinite loop. As described further below, the datapath thread and the control thread are connected to two circular rings 2522 ( data is exchanged via a .cbuf).

制御スレッド2509は、E2ノード2518、SMO2530(サービスポッドエージェント2524を介して)、xApps(例えば、SCTPを介して)、及びSDLレイヤ(SDLエージェント2526を介して)への制御インタフェースとして機能する。いくつかの実施形態では、制御スレッドは、これらの外部エンティティと通信するためのメインスレッドであるが、以下でさらに説明するように、いくつかの実施形態におけるデータパススレッドは、SDLエージェント2526を介してSDL2515と通信する。 Control thread 2509 serves as a control interface to E2 node 2518, SMO 2530 (via service pod agent 2524), xApps (eg, via SCTP), and the SDL layer (via SDL agent 2526). In some embodiments, the control thread is the main thread for communicating with these external entities, while the data path thread in some embodiments is the main thread for communicating with these external entities, as described further below. to communicate with SDL2515.

いくつかの実施形態における制御スレッド2509は、すべての制御機能を処理する。このスレッドは、様々な制御パラメータを他の機能に送信し、いくつかの実施形態では、アドミッション制御を実施する。他の実施形態では、データパススレッド2507は、アドミッション制御を実施し、サービスポッドを介したSMOは、アドミッション制御を指定する。いくつかの実施形態において、制御スレッド2509は、SCTPを介したxAppポッドのRIC SDKとの制御チャネル通信を有する。他の実施形態では、制御スレッドは、gRPCを介してxAppポッドのRIC SDKと通信する。また、いくつかの実施形態では、制御スレッドは、xAppポッド及びデータパスポッドが同じホストコンピュータ上で動作する場合、共有メモリ(shmem)を介してRIC SDKと通信する。 Control thread 2509 in some embodiments handles all control functions. This thread sends various control parameters to other functions and, in some embodiments, implements admission control. In other embodiments, data path thread 2507 implements admission control and SMO via service pods specifies admission control. In some embodiments, control thread 2509 has control channel communication with the xApp pod's RIC SDK via SCTP. In other embodiments, the control thread communicates with the xApp pod's RIC SDK via gRPC. Also, in some embodiments, the control thread communicates with the RIC SDK via shared memory (shmem) when the xApp pod and data path pod run on the same host computer.

制御スレッド2509はまた、データパススレッド2507によって生成された統計、ログ及びトレースデータを伝送するための伝送機構を提供する。いくつかの実施形態では、このデータの一部又は全部は、SDLエージェント2526を介してSDLポッド2515に、及び/又はサービスエージェント2524を介してSMO2530に転送される。いくつかの実施形態における制御スレッド2509は、E2ノードピアとセキュリティ鍵をネゴシエートし、これらのキーをデータパススレッドに渡し、データパススレッドは、それらのキーを使用して暗号化/復号化動作を実行する。 Control thread 2509 also provides a transmission mechanism for transmitting statistics, log and trace data generated by data path thread 2507. In some embodiments, some or all of this data is transferred to SDL pod 2515 via SDL agent 2526 and/or to SMO 2530 via service agent 2524. The control thread 2509 in some embodiments negotiates security keys with the E2 node peers and passes these keys to the data path thread, which uses those keys to perform encryption/decryption operations. do.

データパススレッド2507は、E2ノードとxApp間の高速IOを提供する。このスレッドは、RIC SDKインタフェースとE2終了動作、及びいくつかの実施形態でのコンフリクト緩和とxAppサブスクリプション動作を処理する。このスレッドは、E2APメッセージのASN.1デコードを実行して、メッセージデータを抽出する。いくつかの実施形態では、データパススレッドは、これらのメッセージのE2SMペイロードをデコードしない。データパススレッド2507は、E2及びxAppメッセージとシーケンスを検証する。いくつかの実施形態では、メッセージタイプは、E2ノードセットアップ及びサービス更新、E2ノード指示レポート、E2ノードデータに対するxApp開始サブスクリプション、及びxApp開始制御要求を含む。 Data path thread 2507 provides high speed IO between E2 nodes and xApp. This thread handles the RIC SDK interface and E2 termination operations, and in some embodiments conflict mitigation and xApp subscription operations. This thread is the ASN of the E2AP message. 1. Execute decoding to extract message data. In some embodiments, the datapath thread does not decode the E2SM payload of these messages. Datapath thread 2507 verifies E2 and xApp messages and sequences. In some embodiments, the message types include E2 node setup and service updates, E2 node indication reports, xApp initiation subscriptions for E2 node data, and xApp initiation control requests.

いくつかの実施形態におけるデータパススレッド2507は、xAppsの代わりに状態(例えば、E2ノードの状態、E2ノードへのサブスクリプションなど)を作成し維持するために、E2状態マシンを実行する。また、いくつかの実施形態では、データパススレッドは、データを要求するxAppsにメッセージを送信するためにテーブルルックアップを実行する。このスレッドは、E2ノードへのxAppsからの制御要求も処理し、これらの要求への応答をE2ノードからxAppsに転送する。 Datapath thread 2507 in some embodiments executes an E2 state machine to create and maintain state (eg, state of E2 nodes, subscriptions to E2 nodes, etc.) on behalf of xApps. Also, in some embodiments, the datapath thread performs table lookups to send messages to xApps requesting data. This thread also handles control requests from xApps to E2 nodes and forwards responses to these requests from E2 nodes to xApps.

データパススレッドは、xAppsが別のホストコンピュータ上にある場合はSCTPを介して、xAppsが同じホストコンピュータ上にある場合は共有メモリを介してxAppsと通信する。いくつかの実施形態では、xAppメッセージは、破損を検出するためのCRCビットを有する。これらのメッセージはまた、タイムスタンプを運び、いくつかの実施形態では圧縮することができる。データパススレッド2507は、複数のサブスクリプションに対してデータレプリケーションを実行する。また、データパススレッド2507は、データメッセージの署名、暗号化、及び復号化などによって、データパスセキュリティ動作を実行する。 The datapath thread communicates with the xApps via SCTP if the xApps are on a separate host computer, or via shared memory if the xApps are on the same host computer. In some embodiments, xApp messages have CRC bits to detect corruption. These messages also carry timestamps and may be compressed in some embodiments. Data path thread 2507 performs data replication for multiple subscriptions. Data path thread 2507 also performs data path security operations, such as by signing, encrypting, and decrypting data messages.

上述し、さらに後述するように、データパススレッド2507は、一対のリング2522を介して、一部の実施形態では制御スレッド2509と通信する。いくつかの実施形態において、2つのスレッド間のメッセージの周波数は、リングペア当たりのサブミリ秒から秒まで調整可能である(例えば、構成可能である)。制御スレッドを介して、データパススレッド2507は、構成データ更新及び状態変更を受信する。データパススレッド2507は、統計、ログ及びトレースを生成し、生成された統計、ログ及びトレースデータをSDL内に記憶するため、及び/又はSMOに提供するために制御スレッドに提供する。 As discussed above and further below, data path thread 2507 communicates with control thread 2509 in some embodiments via a pair of rings 2522. In some embodiments, the frequency of messages between two threads is adjustable (eg, configurable) from sub-milliseconds to seconds per ring pair. Through the control thread, data path thread 2507 receives configuration data updates and state changes. The data path thread 2507 generates statistics, logs and traces and provides the generated statistics, logs and trace data to the control thread for storage within the SDL and/or for providing to the SMO.

データパススレッド2507は、複数のxAppが同じパラメータを同じE2ノードに同時に設定しようとした場合にもコンフリクト管理動作を実行する。たとえば、コンフリクト管理動作では、2つのxAppが短期間内にモバイルネットワーク設定(アンテナの方向など)を異なる方法で変更しようとしないようにする。いくつかの実施形態では、データパススレッドのコンフリクト管理は、異なるタイプのコンフリクトに対処するために異なる方法論を採用する。例えば、(1)ある要求のセットについて、ある時間の間、コンフリクトする先の第1の要求を受信した後に、パラメータを変更する第2の要求を拒否し、(2)別の要求のセットについて、あるxAppからのパラメータに関する要求を、別の優先度の高いxAppが同じパラメータに対するコンフリクトする要求を行ったときに拒否し、(3)別のパラメータのセットに関する別の要求のセットについて、特定の時間の間にこのような要求を行うことが許されるxAppsによって行われた要求のみを受け入れる。これらのコンフリクトを処理するためのポリシーは、サービスポッドのエージェント2524を介してSMO2530によって提供される。 Datapath thread 2507 also performs conflict management operations when multiple xApps attempt to set the same parameter on the same E2 node at the same time. For example, conflict management operations ensure that two xApps do not attempt to change mobile network settings (such as antenna orientation) in different ways within a short period of time. In some embodiments, data path thread conflict management employs different methodologies to address different types of conflicts. For example, (1) for one set of requests, reject a second request that changes a parameter after receiving the conflicting first request for some time; and (2) for another set of requests. , reject a request for parameters from one xApp when another high-priority xApp makes a conflicting request for the same parameters; It only accepts requests made by xApps that are allowed to make such requests during that time. Policies for handling these conflicts are provided by the SMO 2530 via the service pod's agent 2524.

図25では、各xAppポッド2520は1つ以上のxApps2532を実行でき、xAppポッドで実行されるRIC SDK2534を介してデータパスポッド2505、SDLポッド2515及びサービスポッド2510とインタフェースする。各RIC SDKは、xAppsがRIC及びE2ノードと通信するための高レベルインタフェースを提供する。この高レベルインタフェースは、基盤となる実装の詳細を非表示にする。RIC SDKは、高速データIO通信チャネル(共有メモリーやSCTPなど)を介してRICインスタンスと通信する。 In FIG. 25, each xApp pod 2520 can run one or more xApps 2532 and interfaces with a datapath pod 2505, an SDL pod 2515, and a service pod 2510 via a RIC SDK 2534 running on the xApp pod. Each RIC SDK provides a high-level interface for xApps to communicate with the RIC and E2 nodes. This high-level interface hides the underlying implementation details. The RIC SDK communicates with the RIC instances via high-speed data IO communication channels (such as shared memory or SCTP).

また、RIC SDKは、xAppオンボーディング、登録、機能、サブスクリプション、FCAPSなどのxApp制御動作のために、サービスポッド2510及び制御スレッド2509との制御通信チャネルも使用する。いくつかの実施形態では、SDKと制御スレッド2509との間の制御チャネル通信は、xAppポッド(及びそのSDK)とデータパスポッドが同じホストコンピュータ上で動作するときには共有メモリを介し、異なるコンピュータ上で動作するときにはSCTPを介して行われる。また、いくつかの実施形態では、xAppポッド(及びそのSDK)とサービスポッドとの間の制御チャネル通信は、SDKとサービスポッドが同じホストコンピュータ上で動作する場合には共有メモリを介し、異なるコンピュータ上で動作する場合にはgRPCを介して行われる。その他の実施形態では、xAppポッド(及びそのSDK)とサービスポッドが異なるホストコンピュータで動作する場合に、SDKとサービスポッド間の通信にSCTPを使用する。 The RIC SDK also uses control communication channels with the service pod 2510 and control thread 2509 for xApp control operations such as xApp onboarding, registration, features, subscriptions, FCAPS, etc. In some embodiments, control channel communication between the SDK and the control thread 2509 is via shared memory when the xApp pod (and its SDK) and the data path pod run on the same host computer, and through shared memory when the xApp pod (and its SDK) and datapath pod run on the same host computer. When it works, it is done via SCTP. Also, in some embodiments, the control channel communication between the xApp pod (and its SDK) and the service pod may be through shared memory if the SDK and service pod run on the same host computer, or through shared memory if the SDK and service pod run on the same host computer, If it runs on top of this, it is done via gRPC. Other embodiments use SCTP for communication between the SDK and the service pod when the xApp pod (and its SDK) and the service pod run on different host computers.

いくつかの実施形態では、RIC SDKがgRPCを介してサービスポッドと通信するときに、proto bufsを使用する。また、RIC SDKとデータパスポッドとの通信が共有メモリを介して行われるいくつかの実施形態では、共有メモリ通信は、プロトコルbufを使用する。RIC SDKには、E2ノードとの間のE2メッセージなど、データ関数用のAPIがある。これらのAPIには、オンボーディングxApp(名前、バージョン、機能)、メッセージサブスクリプション、キープアライブメッセージング、サービスポッドを介したSMOとのA1及びО1インタフェース通信(たとえば、統計、ログ、トレースデータをSMO又はサービスポッド上(PrometheusやELKなど)の時系列データベースに格納するための通信)などの制御機能メッセージも含まれる。 In some embodiments, the RIC SDK uses proto bufs when communicating with service pods via gRPC. Additionally, in some embodiments where communication between the RIC SDK and the data path pod occurs via shared memory, the shared memory communication uses protocol buf. The RIC SDK has APIs for data functions such as E2 messages to and from E2 nodes. These APIs include onboarding xApps (name, version, capabilities), message subscriptions, keep-alive messaging, A1 and O1 interface communication with SMO via service pods (e.g., sending statistics, logs, trace data to SMO or It also includes control function messages such as communication for storing in a time series database on the service pod (Prometheus, ELK, etc.).

一部の実施形態では、データパススレッド及び制御スレッドを1つのプロセッサコアに割り当て、(データ及び制御スレッドから分離するために)SDLを別のプロセッサコアに割り当て、サービスポッドをさらに別のプロセッサコアに割り当てる。1つ以上のxAppがRICと同じホストコンピュータ上で動作する場合、xAppはRICポッドとは異なるコアに割り当てられる。RICポッドでは、複数のxAppを同じコアに割り当てることも、個々のコアを必要に応じて個別のxAppに割り当てることもできる。 In some embodiments, the data path thread and control thread are assigned to one processor core, the SDL is assigned to another processor core (to separate them from the data and control threads), and the service pod is assigned to yet another processor core. assign. If one or more xApps run on the same host computer as the RIC, the xApps are assigned to a different core than the RIC pod. In a RIC pod, multiple xApps can be assigned to the same core, or individual cores can be assigned to individual xApps as needed.

RIC及びxAppの性能をさらに向上させるために、他の実施形態は、特定のメモリ割り当て(例えば、より大きいRAM割り当て)及び特定のIO割り当てのような、他のハードウェア割り当ての最適化を実行する。一部のポッドの専用のIO割り当ての例としては、(1)あるホストコンピュータのxAppポッドが別のホストコンピュータのデータパスポッドと通信するためのSRIOV割り当て、(2)E2ノードと通信するためのデータパスポッドのSRIOV割り当て、(3)あるホストコンピュータのxAppポッドが別のホストコンピュータのサービスポッドと通信するためのSRIOV割り当て、及び(4)gRPC通信が帯域幅割り当てが低く、SCTP通信より優先順位が低いgRPC通信によるSRIOV割り当てを使用したgRPC又はSCTP通信がある。 To further improve RIC and xApp performance, other embodiments perform other hardware allocation optimizations, such as specific memory allocations (e.g., larger RAM allocations) and specific IO allocations. Examples of dedicated IO allocations for some pods include (1) SRIOV allocations for an xApp pod on one host computer to communicate with a datapath pod on another host computer, (2) SRIOV allocations for datapath pods to communicate with E2 nodes, (3) SRIOV allocations for an xApp pod on one host computer to communicate with a service pod on another host computer, and (4) gRPC or SCTP communication using SRIOV allocations with gRPC communication where gRPC communication has a lower bandwidth allocation and a lower priority than SCTP communication.

いくつかの実施形態では、1つのRICといくつかのxAppがバンドルされて、1つのVM上で動作する異なるポッド上で動作する。異なるxAppのセットを有するいくつかの実施形態では、RICの複数のインスタンスをデプロイすることもできる。また、いくつかの実施形態では、相互に通信する必要があるxAppは、同じVM上にバンドルされている。 In some embodiments, one RIC and several xApps are bundled to run on different pods running on one VM. In some embodiments with different sets of xApps, multiple instances of the RIC may also be deployed. Also, in some embodiments, xApps that need to communicate with each other are bundled on the same VM.

上述したように、いくつかの実施形態は、1つのデータパススレッドとしてではなく、複数のデータパス処理スレッドと共に1つのデータIOスレッドとしてRICデータパスを実装する。いくつかの実施形態では、各データパス処理スレッド(DPT)は、各E2ノードがただ1つのデータパス処理スレッドに割り当てられる、異なるE2ノードのセットのためのデータパス処理を実行することに責務を負う。いくつかの実施形態では、データIOスレッドは、メッセージに含まれるE2ノード識別子をハッシュし、ハッシュ化された値(ハッシュによって取得される)を、データメッセージを処理する必要があるDPTのDPT識別子を提供するルックアップテーブルへのインデックスとして使用することによって、E2メッセージ又はxAppメッセージに関連付けられたDPTを識別する。 As mentioned above, some embodiments implement the RIC datapath as one data IO thread with multiple datapath processing threads, rather than as one datapath thread. In some embodiments, each data path processing thread (DPT) is responsible for performing data path processing for a different set of E2 nodes, with each E2 node assigned to only one data path processing thread. bear. In some embodiments, the data IO thread hashes the E2 node identifier included in the message and uses the hashed value (obtained by hashing) as the DPT identifier of the DPT that needs to process the data message. Identify the DPT associated with the E2 message or xApp message by using it as an index into the lookup table provided.

図26は、1つのデータIOスレッド2605、1つの制御スレッド2610、及び複数のDPT2615を有するRICデータパスポッド2600の例を示す。DPTは、データパスポッド2600のデータパス処理負荷を共有する。説明するように、各DPT2615とデータIOスレッド2605、各DPT2615と制御スレッド2610、及びデータIOスレッド2605と制御スレッド2610の間には、cbufリング2620のペアが存在する。cbuf対の各リング2620は、リングに関連する2つのスレッドの一方から他方のスレッドへの一方向にデータメッセージを渡し、一方のリングは一方向に(例えば、第1のスレッドから第2のスレッドへ)通信を処理し、他方に(例えば、第2のスレッドから第1のスレッドへ)通信を処理する。 FIG. 26 shows an example of a RIC datapath pod 2600 with one data IO thread 2605, one control thread 2610, and multiple DPTs 2615. The DPT shares the datapath processing load of the datapath pod 2600. As described, there are pairs of cbuf rings 2620 between each DPT 2615 and data IO thread 2605, between each DPT 2615 and control thread 2610, and between data IO thread 2605 and control thread 2610. Each ring 2620 of a cbuf pair passes data messages in one direction from one of the two threads associated with the ring to the other, and one ring passes data messages in one direction (e.g., from the first thread to the second one thread to another (e.g., from a second thread to a first thread).

データIOスレッド2605を複数のDPT2615から分離することは、より計算集約的な動作をDPTにプッシュすることによって、データパスポッド2600のデータIOを最適化し、それにより、より計算集約的でないIO動作をデータIOスレッド2605内で実行することを可能にする。この最適化により、高速データパスIO(不要な遅延が発生しないもの)が確保されるため、RICはE2ノードとxApp間の高速インターフェースとして機能できる。また、各E2ノードは、通常、いくつかのE2ノードを担う、1つのDPTスレッド2615だけの責務である。各E2ノードは1つの特定のDPTによって処理されるため、2つのDPTが1つのE2ノードに関連付けられた1つ以上の記録を変更しようとすることはない。したがって、データパスポッド2600は、E2ノードとの通信に対する責務が明確に区別されるため、E2ノードの記録をロックする必要はない。 Separating the data IO thread 2605 from multiple DPTs 2615 optimizes data IO for the datapath pod 2600 by pushing more compute-intensive operations to the DPTs, thereby allowing less compute-intensive IO operations to be performed. Enables execution within data IO thread 2605. This optimization ensures high-speed data path IO (without unnecessary delays), allowing the RIC to act as a high-speed interface between the E2 node and the xApp. Also, each E2 node is typically responsible for only one DPT thread 2615, which is responsible for several E2 nodes. Since each E2 node is processed by one specific DPT, two DPTs cannot attempt to modify one or more records associated with one E2 node. Therefore, the data path pod 2600 does not need to lock the record of the E2 node since its responsibilities for communicating with the E2 node are clearly differentiated.

データIOスレッド2605は、(1)E2ノード及びxAppポッドへの接続を管理すること、(2)E2ノード及びxAppポッドとの間のこれらの接続を介してデータメッセージを送信すること、(3)セキュリティ動作を実行すること、(4)制御スレッド2610及びDPT2615とのリング通信を制御すること、及び(5)自身が処理するメッセージに関する統計、ログ及びトレースデータを生成すること、を実行する。 Data IO thread 2605: (1) manages connections to E2 nodes and xApp pods; (2) sends data messages over these connections to and from E2 nodes and xApp pods; (3) (4) control ring communications with control thread 2610 and DPT 2615; and (5) generate statistics, log and trace data regarding messages it processes.

各DPTスレッド2615は、(1)メッセージのデコード及びエンコード動作(例えば、メッセージの暗号化及び復号化動作)、(2)メッセージの検証動作、(3)シーケンスの検証動作、(4)E2ノード及びxApp要求及びサブスクリプションの状態を追跡するための状態マシンの維持、(5)コンフリクト管理の実行、(6)制御スレッド2610及びDPT2615との制御リング通信、及び(7)処理するメッセージに関する統計、ログ及びトレースデータの生成、の各動作を実行する。 Each DPT thread 2615 performs (1) message decoding and encoding operations (e.g., message encryption and decryption operations), (2) message validation operations, (3) sequence validation operations, (4) E2 node and Maintaining a state machine to track the state of xApp requests and subscriptions; (5) performing conflict management; (6) controlling ring communication with control thread 2610 and DPT 2615; and (7) statistics and logging regarding messages processed. and generate trace data.

図27は、いくつかの実施形態において、データパススレッドが、xAppからのサブスクリプション要求を処理するために実行する処理2700を示す。図に示すように、DPTがデータIOスレッドからxAppサブスクリプション要求を(2705で)受信すると、処理が開始される。サブスクリプション要求は、特定のE2ノードが維持する特定のデータタプルのセット(例えば、特定の動作パラメータのセット又は他のパラメータ)について、特定のE2ノードに向けられる。 FIG. 27 illustrates a process 2700 that a data path thread performs to process a subscription request from an xApp in some embodiments. As shown, processing begins when the DPT receives an xApp subscription request (at 2705) from the data IO thread. A subscription request is directed to a particular E2 node for a particular set of data tuples (eg, a particular set of operating parameters or other parameters) that the particular E2 node maintains.

2710において、処理2700は、特定のデータタプルのセットを受信するために、特定のE2ノードに既にサブスクライブしているか否かを判定する。これは、DPTが以前に特定のE2ノードを1つ以上のサブスクリプション要求を送信したときに、特定のデータタプルのセット、又は特定のデータタプルのセットを含むより大きなデータタプルを個別に、又は集合的に要求した場合である。 At 2710, process 2700 determines whether it has already subscribed to a particular E2 node to receive a particular set of data tuples. This means that when the DPT previously sent one or more subscription requests to a particular E2 node, a particular set of data tuples, or a larger data tuple containing a particular set of data tuples, or This is a case of collective request.

処理27100が、特定のデータタプルのセットを受信するために特定のE2ノードに既にサブスクライブしていると判定すると(2710において)、(2715において)このE2ノードのサブスクリプションリスト内のxAppに対して、新しいレコードを追加するか、又は以前に指定されたレコードを更新し、xAppが受信すべき特定のデータタプルのセットをこのレコード内に指定する。2715の後、処理は終了する。 If the process 27100 determines (at 2710) that it has already subscribed to a particular E2 node to receive a particular set of data tuples, then (at 2715) to add a new record or update a previously specified record, specifying within this record the particular set of data tuples that the xApp should receive. After 2715, the process ends.

一方、処理27100が、特定のデータタプルのセットを受信するために特定のE2ノードにまだサブスクライブしていないと判定した場合(2710において)、それがこのノードとのアクティブなサブスクリプションを有していない場合には特定のE2ノードに第1のサブスクリプションを送信するか、又は、2705で受信した要求で指定された特定のデータタプルの特定のデータタプルのすべてのデータタプルを含むものではない場合には、更新されたサブスクリプションをノードに送信する。 On the other hand, if the process 27100 determines (at 2710) that it has not yet subscribed to a particular E2 node to receive a particular set of data tuples, then it has an active subscription with this node. Send the first subscription to the particular E2 node if not included or does not include all data tuples of the particular data tuple specified in the request received at 2705 If so, send the updated subscription to the node.

したがって、このような場合、処理2700(2720で)は、このE2ノードのサブスクリプションリスト内のxAppに対して、新しいレコードを追加するか、又は以前に指定されたレコードを更新し、このレコード内でxAppが受信すべき特定のデータタプルセットを指定する。次に、以前に割り当てられたRIC要求IDを使用して、更新されたサブスクリプション要求を特定のE2ノードに送信する。この更新されたサブスクリプションは、特定のE2ノードへの以前のサブスクリプションによってこれらのタプルのいずれも以前に要求されていない場合に、要求された特定のデータタプルの特定のセット内のすべてのデータタプルを指定する。又は、特定のセット内の他のデータタプルが、特定のE2ノードへの1つ以上の以前のサブスクリプションによって以前に要求されている場合に、これらのデータタプルの一部を指定する。2725の後、処理2700は終了する。 Therefore, in such a case, process 2700 (at 2720) adds a new record or updates a previously specified record for the xApp in this E2 node's subscription list, and specifies the particular set of data tuples that the xApp should receive. It then sends the updated subscription request to the particular E2 node using the previously assigned RIC request ID. This updated subscription will receive all the data in a particular set of the particular requested data tuples if none of these tuples were previously requested by a previous subscription to the particular E2 node. Specify a tuple. Or specify some of the other data tuples in a particular set if those data tuples were previously requested by one or more previous subscriptions to a particular E2 node. After 2725, process 2700 ends.

図28は、処理2800を示し、データIOスレッド2605及びDPT2615が、実施形態によっては、1つ以上のxAppが受信すべきE2ノードからのデータメッセージを処理するために実行する。説明するように、処理2800は、データメッセージが、E2ノードとのSCTP接続を介してデータパスポッドによって受信されたとき(2805において)に開始する。2810において、データIOスレッド2605は、E2ノードのIDからハッシュ値を生成する。次に、(2815で)ハッシュ値をルックアップテーブルへのインデックスとして使用し、E2ノードに関連付けられたメッセージの処理に割り当てられたDPTを識別する。 FIG. 28 illustrates a process 2800 that data IO thread 2605 and DPT 2615 perform, in some embodiments, to process data messages from an E2 node that are to be received by one or more xApps. As illustrated, process 2800 begins when a data message is received (at 2805) by a datapath pod via an SCTP connection with an E2 node. At 2810, data IO thread 2605 generates a hash value from the E2 node's ID. The hash value is then used (at 2815) as an index into a lookup table to identify the DPT assigned to process the message associated with the E2 node.

2820で、データIOスレッドは、データIOスレッドから識別されたDPTにメッセージを渡すためのcbufリング2620に沿って、受信されたデータメッセージを識別されたDPT(すなわち、2815で識別されたDPT)に渡す。次に、2825で、DPTは、そのデータ構造記録(例えば、その状態機械によって維持される記録)を使用して、E2メッセージを取得すべき1つ以上のxAppのセットを識別する。いくつかの実施形態では、識別された一連のxAppは、E2ノードからデータ(例えば、すべてのデータ又はデータのサブセット)を受信するためにサブスクライブしているxAppである。 At 2820, the data IO thread passes the received data message to the identified DPT (i.e., the DPT identified at 2815) along a cbuf ring 2620 for passing the message from the data IO thread to the identified DPT. hand over. Next, at 2825, the DPT uses its data structure records (eg, records maintained by its state machine) to identify the set of one or more xApps from which to obtain the E2 message. In some embodiments, the identified set of xApps are xApps that have subscribed to receive data (eg, all data or a subset of data) from the E2 node.

2830において、DPTは、識別されたxAppsのセットに送信するデータIOスレッド2605のためのデータメッセージを特定する。このデータメッセージは、以下の表1を参照してカプセル化されたフォーマットになっている。次に、DPTは、DPT2615からデータIOスレッド2605にメッセージを渡すためのcbufリング2620に沿って、データメッセージをデータIOスレッド2605に(2835で)渡す。次に、2840において、データIOスレッド2605は、cbufリング2620からデータメッセージを検索し、データメッセージを受信する必要があるxAppsを識別し、次いで、各識別されたxAppにデータメッセージを送信する。2840の後、処理は終了する。 At 2830, the DPT identifies a data message for the data IO thread 2605 to send to the identified set of xApps. This data message is in an encapsulated format with reference to Table 1 below. The DPT then passes the data message to the data IO thread 2605 (at 2835) along the cbuf ring 2620 for passing messages from the DPT 2615 to the data IO thread 2605. Next, at 2840, data IO thread 2605 retrieves the data message from cbuf ring 2620, identifies the xApps that need to receive the data message, and then sends the data message to each identified xApp. After 2840, processing ends.

図29は、処理2900を示しており、データIOスレッド2605及びDPT2615は、いくつかの実施形態において、E2ノードに送られるべきxAppからのデータメッセージを処理するために実行する。説明するように、処理2900は、データメッセージがSCTP接続又はxApp RIC SDKとの共有メモリ通信を介してデータパスポッドによって受信されると(2905で)開始する。このメッセージは、表1を参照して以下に説明するカプセル化されたフォーマットである。このメッセージには、このメッセージを受信するE2ノードを識別するE2ノード識別子が含まれる。 FIG. 29 shows a process 2900 that data IO thread 2605 and DPT 2615 execute, in some embodiments, to process data messages from xApps to be sent to E2 nodes. As illustrated, process 2900 begins (at 2905) when a data message is received by a datapath pod via an SCTP connection or shared memory communication with the xApp RIC SDK. This message is in an encapsulated format as described below with reference to Table 1. This message includes an E2 node identifier that identifies the E2 node receiving this message.

2910において、データIOスレッド2605は、E2ノードのIDからハッシュ値を生成する。次に、(2915で)ハッシュ値をルックアップテーブルへのインデックスとして使用し、E2ノードに関連付けられたメッセージの処理に割り当てられたDPTを識別する。2920で、データIOスレッドは、データIOスレッドから識別されたDPTにメッセージを渡すためのcbufリング2620に沿って、受信されたデータメッセージを識別されたDPT(すなわち、2915で識別されたDPT)に渡す。 At 2910, data IO thread 2605 generates a hash value from the E2 node's ID. The hash value is then used (at 2915) as an index into a lookup table to identify the DPT assigned to process the message associated with the E2 node. At 2920, the data IO thread passes the received data message to the identified DPT (i.e., the DPT identified at 2915) along a cbuf ring 2620 for passing the message from the data IO thread to the identified DPT. hand over.

次に、2925において、DPTは、そのデータ構造記録(例えば、その状態マシンによって維持される記録)を使用して、メッセージを受信すべきE2ノードを識別する。いくつかの実施形態では、データメッセージはサブスクリプション要求であり、識別されたE2ノードは、xAppがサブスクライブしたいE2ノードである。2930において、DPTは、識別されたE2ノードに送信するデータIOスレッド2605のためのデータメッセージを指定する。このデータメッセージは、標準によって必要とされるE2APメッセージフォーマットである。次に、DPTは、DPT2615からデータIOスレッド2605にメッセージを渡すためのcbufリング2620に沿って、データメッセージをデータIOスレッド2605に(2935で)渡す。次に、2940で、データIOスレッド2605は、cbufリング2620からデータメッセージを検索し、データメッセージを受信する必要があるE2ノードを識別し、そして識別された各E2ノードにデータメッセージを送信する。2940の後、処理は終了する。 Next, at 2925, the DPT uses its data structure records (eg, records maintained by its state machine) to identify the E2 node that should receive the message. In some embodiments, the data message is a subscription request and the identified E2 node is an E2 node to which the xApp wishes to subscribe. At 2930, the DPT specifies a data message for the data IO thread 2605 to send to the identified E2 node. This data message is in the E2AP message format required by the standard. The DPT then passes the data message to the data IO thread 2605 (at 2935) along the cbuf ring 2620 for passing messages from the DPT 2615 to the data IO thread 2605. Next, at 2940, data IO thread 2605 retrieves the data message from cbuf ring 2620, identifies the E2 nodes that need to receive the data message, and sends the data message to each identified E2 node. After 2940, processing ends.

いくつかの実施形態において、DPT2615は、2925で識別するE2ノードに新たなサブスクリプションメッセージを送信する必要がないと判定することができる。たとえば、E2ノードから一連のデータタプルのサブスクリプション要求を第1のxAppから(2905で)受信する前に、第2のxAppに対して以前に送信されたデータパスポッドが、同じデータタプルのセット又は第1のxAppによって要求されたデータタプルを含むより大きなデータタプルのセットに対して同じE2ノードにサブスクリプション要求を送信する。このような場合、DPT2615は、E2ノードのサブスクリプションリストに第1のxAppを追加するだけで、それ以降にE2ノードから受け取った値を第1のxAppに提供できるようになる。いくつかの実施形態において、DPT2615はまた、SDLに記憶されたE2ノードから以前に受信した値を第1のxAppに供給するか、又はxAppに指示してSDLからこれらの値を取得する。 In some embodiments, DPT 2615 may determine that there is no need to send a new subscription message to the E2 node identified at 2925. For example, before receiving a subscription request for a set of data tuples from the first xApp (at 2905) from the E2 node, the data path pod previously sent to the second xApp or send a subscription request to the same E2 node for a larger set of data tuples that includes the data tuple requested by the first xApp. In such a case, the DPT 2615 can simply add the first xApp to the E2 node's subscription list and then provide the first xApp with the values it subsequently receives from the E2 node. In some embodiments, the DPT 2615 also provides previously received values from the E2 node stored in the SDL to the first xApp, or directs the xApp to obtain these values from the SDL.

場合によっては、第1のxAppは、第2のxAppが以前に要求しなかったE2ノードから追加のデータタプルを要求する。このような場合、DPT2615は、第1のxAppによって新たに要求されるデータタプルを要求するために、E2ノードに送信するデータIOスレッドのための更新されたサブスクリプションメッセージを準備する。DPTは、第2のxAppが第1のサブスクリプションの後にE2ノードから追加のデータタプルを要求したときにも、このようなメッセージを準備する。 In some cases, the first xApp requests additional data tuples from the E2 node that the second xApp did not previously request. In such a case, DPT 2615 prepares an updated subscription message for the data IO thread to send to the E2 node to request the newly requested data tuple by the first xApp. The DPT also prepares such messages when the second xApp requests additional data tuples from the E2 node after the first subscription.

いくつかの実施形態では、サービスポッド2510は、Nが1より大きい整数であるときに始動するとき、N個のDPTをインスタンス化するようにデータパスポッド2600を構成する。ニアRT RICのデータパスポッド2600の場合、個数Nは、ニアRT RICを介してE2ノードと通信する予想される個数のE2ノード及びxAppに基づいて、いくつかの実施形態で計算される。いくつかの実施形態では、データパスポッド2600のデータIOスレッド2605は、次に、受信するサブスクリプション要求の順序及びこれらの要求の時点でのDPT上の負荷に基づいて、E2ノードをDPTに割り当てる。 In some embodiments, service pod 2510 configures data path pod 2600 to instantiate N DPTs when it starts, where N is an integer greater than one. For near RT RIC datapath pods 2600, the number N is calculated in some embodiments based on the expected number of E2 nodes and xApps that communicate with the E2 nodes via the near RT RIC. In some embodiments, the data IO thread 2605 of the data path pod 2600 then assigns E2 nodes to the DPT based on the order of subscription requests it receives and the load on the DPT at the time of these requests. .

図30は、いくつかの実施形態においてデータIOスレッドがE2ノードをDPTに割り当てるために使用する処理の例を示す。説明するように、処理3000は、データIOスレッド2605が、データIOスレッドのニアRT RICに関連するxAppから、特定のE2ノードに対する第1のサブスクリプション要求を受信(3005)すると、開始する。特定のE2ノードに対する第1のサブスクリプション要求は、データIOスレッドによってこの特定のE2ノードに対して他のサブスクリプション要求が以前に受信されなかったことを意味する。 FIG. 30 illustrates an example of the process used by the data IO thread to assign E2 nodes to DPTs in some embodiments. As described, process 3000 begins when data IO thread 2605 receives (3005) a first subscription request for a particular E2 node from an xApp associated with the data IO thread's near RT RIC. The first subscription request for a particular E2 node means that no other subscription request was previously received for this particular E2 node by the data IO thread.

次に、3010で、データIOスレッド2605は、特定のE2ノードのグローバルE2ノードIDからNビットのハッシュ値を生成する。ここで、Nは整数(例えば、6又は8)である。このNビット値は、後述するように、ハッシュLUT(ルックアップテーブル)内の特定のE2ノードを識別するために使用される。3015において、処理3000は、データパスポッド2600の各DPT上の現在の負荷に基づいて(例えば、負荷量が最小のDPTを選択することによって)、特定のE2ノードのための特定のDPTを選択する。いくつかの実施形態では、現在の負荷は、各DPTに割り当てられたE2ノードの個数にのみ基づいているが、他の実施形態では、現在の負荷は、E2ノードの個数及びこれらのノードに対するxAppサブスクリプションの個数に基づいている。さらに他の実施形態では、現在の負荷は他の方法で計算される。 Next, at 3010, the data IO thread 2605 generates an N-bit hash value from the global E2 node ID of the particular E2 node. Here, N is an integer (eg, 6 or 8). This N-bit value is used to identify a particular E2 node within a hash LUT (lookup table), as described below. At 3015, process 3000 selects a particular DPT for a particular E2 node based on the current load on each DPT of data path pod 2600 (e.g., by selecting the DPT with the least amount of load). do. In some embodiments, the current load is based solely on the number of E2 nodes assigned to each DPT, while in other embodiments the current load is based on the number of E2 nodes and the xApps to those nodes. Based on number of subscriptions. In yet other embodiments, the current load is calculated in other ways.

次に、3020において、処理3000は、LUT内に記録を作成し、この記録において、Nビットのハッシュ値と、特定のE2ノードについて3015で選択された特定のDPTの識別子とを関連付ける。いくつかの実施形態では、Nビットのハッシュ値は、特定のE2ノードのIDを指定する記録を識別するLUTへのインデックスである。3020において、処理3000はまた、このレコードの状態をアクティブとして指定する。 Next, at 3020, the process 3000 creates a record in the LUT in which it associates the N-bit hash value with the identifier of the particular DPT selected at 3015 for the particular E2 node. In some embodiments, the N-bit hash value is an index into a LUT that identifies a record that specifies the ID of a particular E2 node. At 3020, process 3000 also designates the state of this record as active.

後続の時点で、データIOスレッドが、すべてのxAppが特定のE2ノードへのサブスクリプションをキャンセルしたという状況に遭遇した場合、処理3000は、3020で作成されたLUT記録を保持するが、この記録のステータスを非アクティブに変更する。データIOスレッドは、xAppが特定のE2ノードのサブスクリプション要求を次に送信するまで、この非アクティブ状態を維持する。その時点で、このレコードの状態が再びアクティブに変更される。このステータス値は、データIOスレッドがDPTへのE2ノード割り当てを継続的に再実行する必要がないようにする機構として使用される。 At a subsequent point in time, if the data IO thread encounters a situation where all xApps have canceled their subscriptions to a particular E2 node, process 3000 maintains the LUT record created in 3020, but this record Change the status of to inactive. The data IO thread maintains this inactive state until the next time the xApp sends a subscription request for a particular E2 node. At that point, the state of this record is changed to active again. This status value is used as a mechanism to prevent the data IO thread from having to continually re-assign E2 nodes to DPTs.

図31は、アクティブRIC3102及びスタンバイRIC3104によって実現される分散ニアRT RICを示す。図に示すように、E2ノード3118及びxAppポッド3120は、このRICの1つ以上のコンポーネントが故障するまで、アクティブなRIC3102と通信する。アクティブなRICに障害が発生すると、スタンバイRIC3104がアクティブなRICになり、E2ノードとxAppポッドは、現在アクティブなRICであるRIC3104を介して通信を継続する。 FIG. 31 shows a distributed near RT RIC implemented by an active RIC 3102 and a standby RIC 3104. As shown, E2 nodes 3118 and xApp pods 3120 communicate with the active RIC 3102 until one or more components of this RIC fail. If the active RIC fails, the standby RIC 3104 becomes the active RIC and the E2 nodes and xApp pods continue to communicate via the RIC 3104, which is currently the active RIC.

これらのRICにはどちらも同じコンポーネントがあり、それらはデータパスポッド3105、サービスポッド3110、及びSDLポッド3115である。データパスポッドは、制御スレッド3109及びデータパススレッド3107を含むように示される。1つのデータパススレッド3107の代わりに、いくつかの実施形態は、上述したように、1つのデータIOスレッドと複数のDPTを使用する。いくつかの実施形態では、アクティブRIC3102は、1つ以上のコンピュータの第1のセットによって実現され、一方、スタンバイRIC3104は、1つ以上のコンピュータの異なる第2のセットによって実現される。 Both of these RICs have the same components: data path pod 3105, service pod 3110, and SDL pod 3115. The datapath pod is shown to include a control thread 3109 and a datapath thread 3107. Instead of one data path thread 3107, some embodiments use one data IO thread and multiple DPTs, as described above. In some embodiments, the active RIC 3102 is implemented by a first set of one or more computers, while the standby RIC 3104 is implemented by a different second set of one or more computers.

図に示すように、各E2ノード3118は、アクティブ及びスタンバイRIC3102及び3104のデータパススレッド3107とデュアルホームSCTP接続を有する。同様に、各xAppポッド3120には、アクティブ及びスタンバイRIC3102及び3104のデータパススレッド3107とのデュアルホームSCTP接続がある。デュアルホーミング接続は、SCTPが提供する機能である。第1のコンポーネントがデュアルホーム接続を介してコンポーネントのアクティブ/スタンバイペアに接続すると、第1のコンポーネントは、アクティブコンポーネントに障害が発生したときに自動的にスタンバイコンポーネントを使用するように切り替えることができる。したがって、デュアルホームSCTPコネクションを使用すると、アクティブなRIC3102又はそのデータパスポッドに障害が発生したときに、各E2ノード又はxAppポッドをスタンバイRIC3104のデータパススレッド3107に切り替えることができる。 As shown, each E2 node 3118 has dual homed SCTP connections with data path threads 3107 of active and standby RICs 3102 and 3104. Similarly, each xApp pod 3120 has dual homed SCTP connections with data path threads 3107 of active and standby RICs 3102 and 3104. Dual homing connectivity is a feature provided by SCTP. When a first component connects to an active/standby pair of components via a dual-homed connection, the first component can automatically switch to using the standby component in the event of a failure of the active component. . Thus, using dual-homed SCTP connections, each E2 node or xApp pod can be switched to the standby RIC 3104's datapath thread 3107 when the active RIC 3102 or its datapath pod fails.

説明するように、アクティブRIC3102のデータパススレッド3107のRIC SDKインタフェース3122は、xApp RIC SDKから受信するメッセージと、それがxApp RIC SDKに送信するメッセージを、スタンバイRIC3104のデータパス3107のRIC SDKインタフェース3122に転送する。これは、いくつかの実施形態では、スタンバイRICのデータパススレッド3107が、そのステートマシンを、アクティブRICのデータパススレッド3107の状態に一致するように更新できるようにする。また、説明するように、アクティブ及びスタンバイRIC 3102及び3104の同期エージェント3127は、スタンバイRIC 3104のSDLストレージ3126をアクティブRIC3102のSDLストレージ3126と同期する。アクティブ及びスタンバイRIC3102及び3104のすべてのコンポーネントは、SMO 3130によって一貫して管理される。 As described, the RIC SDK interface 3122 of the data path thread 3107 of the active RIC 3102 transfers messages it receives from the xApp RIC SDK and messages it sends to the xApp RIC SDK to the RIC SDK interface 3122 of the data path 3107 of the standby RIC 3104. Transfer to. This, in some embodiments, allows the standby RIC's datapath thread 3107 to update its state machine to match the state of the active RIC's datapath thread 3107. Also, as described, the synchronization agents 3127 of the active and standby RICs 3102 and 3104 synchronize the SDL storage 3126 of the standby RIC 3104 with the SDL storage 3126 of the active RIC 3102. All components of active and standby RICs 3102 and 3104 are managed consistently by SMO 3130.

図32は、いくつかの実施形態において、ニアRT RIC3200とE2ノード3205との間、及びニアRT RIC3200とxAppポッド3210との間のインタフェースを示す。いくつかの実施形態では、ニアRT RICは、上述のニアRT RICの1つである。上述したように、また図32に示されるように、いくつかの実施形態におけるニアRT RICは、SCTPインタフェース3220及び3222を、E2ノード3205及びxAppポッド3210の両方とともに使用する。xAppポッドとニアRT RICが同じホストコンピュータ上で実行される場合、いくつかの実施形態では、図に示すように、ニアRT RICとxAppポッドの間のインタフェースとして共有メモリを使用する。これらのインタフェースはメッセージ交換を高速に保ち、すべてのパスにわたってエンコードとデコードのオーバーヘッドを最小にして、待ち時間を最小にする(例えば、1つのASN復号と1つのASN符号化を行う)。いくつかの実施形態において、E2ノードとニアRT RICとの間のインタフェース3220は、E2AP仕様に従い、すべてのメッセージ交換は、E2AP仕様に準拠する。 FIG. 32 illustrates the interfaces between a near RT RIC 3200 and an E2 node 3205 and between a near RT RIC 3200 and an xApp pod 3210 in some embodiments. In some embodiments, the near RT RIC is one of the near RT RICs described above. As discussed above and shown in FIG. 32, the near RT RIC in some embodiments uses SCTP interfaces 3220 and 3222 with both E2 nodes 3205 and xApp pods 3210. When the xApp pod and the near RT RIC run on the same host computer, some embodiments use shared memory as an interface between the near RT RIC and the xApp pod, as shown in the figure. These interfaces keep message exchanges fast, minimizing encoding and decoding overhead across all paths, and minimizing latency (eg, one ASN decoding and one ASN encoding). In some embodiments, the interface 3220 between the E2 node and the near RT RIC follows the E2AP specification, and all message exchanges comply with the E2AP specification.

また、いくつかの実施形態では、ニアRT RICとxAppポッドとの間のインタフェース3222は、表1を参照して後述する新規のカプセル化ヘッダを使用する。インタフェース3222は、異なるタイプのメッセージの混合を処理する。いくつかの実施形態におけるこのようなメッセージの例には、(1)E2ノードからのE2APメッセージ全体(例えば、E2セットアップ要求)、(2)E2SMコンテンツ全体(すなわち、E2APメッセージペイロード全体)と共にE2APヘッダのいくつかのフィールド、(3)ニアRT RICとxAppポッドの間の内部メッセージ(例えば、xAppの以前のメッセージが誤差を起こしたことを、ニアRT RICからのメッセージ)、(4)xAppからニアRT RIC又はE2ノードへのメッセージが含まれる。いくつかの実施形態では、E2コンテンツはASN1エンコードされていない可能性がある(例えば、サブスクリプション要求の一部がエンコードされていない可能性がある)。 Also, in some embodiments, the near RT RIC to xApp pod interface 3222 uses a novel encapsulation header, described below with reference to Table 1. Interface 3222 handles a mix of different types of messages. Examples of such messages in some embodiments include (1) the entire E2AP message from the E2 node (e.g., an E2 setup request); (2) the entire E2SM content (i.e., the entire E2AP message payload) along with the E2AP header. (3) internal messages between the near RT RIC and the xApp pod (e.g., a message from the near RT RIC that the xApp's previous message caused an error); (4) an internal message from the xApp to the near Contains messages to RT RIC or E2 nodes. In some embodiments, the E2 content may not be ASN1 encoded (eg, a portion of the subscription request may not be encoded).

いくつかの実施形態において、ニアRT RIC3200は、メッセージをxAppに送信する前にE2APメッセージだけをデコードするか、又はE2SMペイロードとともにE2APヘッダ全体をデコードするように、ケースバイケースで構成することができる。場合によっては、ニアRT RICがE2APヘッダ全体を送信し、それ以外の場合は、このヘッダの一部のみを送信する。いくつかの実施形態のRIC E2APメッセージ処理では、すべてのフィールドはネットワークバイトオーダーであり、ニアRT RIC3200は可能な限りそのオーダーで動作する。フィールドを表示するために、いくつかの実施形態は、データをホスト順に変換することができる。いくつかの実施形態において、ニアRT RIC3200は、E2SMペイロードを見ることはないが、他の実施形態においては、それは、(例えば、重複したサブスクリプション誤差を避けるために)行われる。 In some embodiments, the Near RT RIC 3200 may be configured on a case-by-case basis to decode only E2AP messages or to decode the entire E2AP header along with the E2SM payload before sending the message to the xApp. . In some cases, the near RT RIC sends the entire E2AP header, in other cases only a part of this header. In the RIC E2AP message processing of some embodiments, all fields are in network byte order, and the near RT RIC 3200 operates in that order as much as possible. To display fields, some embodiments may transform the data into host order. In some embodiments, the near RT RIC 3200 does not see the E2SM payload, while in other embodiments it does (eg, to avoid duplicate subscription errors).

いくつかの実施形態において、RAN機能IDは、E2ノード特有である。各サブスクリプションは個々のE2ノードに属するため、xAppsはE2ノード間でRAN機能にサブスクライブしない。また、いくつかの実施形態では、RIC要求ID空間は、E2ノードに対してローカルである。いくつかの実施形態では、RIC要求ID番号空間は、永続的なコンポーネントと同様に一時的なコンポーネントである。例えば、表示レポートに使用されるRIC要求IDは、サブスクリプションから使用されるRIC要求IDが再利用されても、存続する。 In some embodiments, the RAN capability ID is E2 node specific. xApps do not subscribe to RAN functionality between E2 nodes since each subscription belongs to an individual E2 node. Also, in some embodiments, the RIC request ID space is local to the E2 node. In some embodiments, the RIC request ID number space is a temporary as well as a permanent component. For example, a RIC request ID used for display reports persists even if a RIC request ID used from a subscription is reused.

以下の表1は、RICとRIC SDK間の通信のためにいくつかの実施形態で使用される例示的なメッセージフォーマットを示す。これは、RIC SDKとの間で送受信されるすべてのメッセージをカプセル化するために使用されるカプセル化ヘッダの形式である。いくつかの実施形態において、カプセル化ヘッダは、データメッセージの効率的な処理のためにRIC SDK及びRICによって必要とされるデータを格納する。表1に示す例では、msg_type、msg_serial_num、msg_len、msg_flags、ctrl_lenに関連する最初の16バイトは、ctrl_infoフィールドとともにカプセル化ヘッダの一部である。カプセル化パケットのペイロードには、任意のデータを含めることができる。表1に示す例では、payload(ペイロード)には元のE2APパケットとE2SMペイロードが含まれている。 Table 1 below shows example message formats used in some embodiments for communication between the RIC and the RIC SDK. This is the type of encapsulation header used to encapsulate all messages sent to and received from the RIC SDK. In some embodiments, the encapsulation header stores data needed by the RIC SDK and RIC for efficient processing of data messages. In the example shown in Table 1, the first 16 bytes associated with msg_type, msg_serial_num, msg_len, msg_flags, ctrl_len are part of the encapsulation header along with the ctrl_info field. The payload of the encapsulated packet can contain arbitrary data. In the example shown in Table 1, payload includes the original E2AP packet and E2SM payload.

RIC とRIC SDK間のすべてのメッセージは、表1に示すヘッダでカプセル化される。制御情報とペイロードはオプションである。メッセージの中には制御情報を持っていてもペイロードフィールドを持たないものもあれば、制御情報を持たないペイロードを有するものもあり、制御フィールドとペイロードフィールドの両方を有するものもある。いくつかの実施形態において、RIC SDKは、これらのメッセージをトラップし、それらをxAppsへの提示のために再フォーマットするように構成することができる。メッセージのフォーマットは生のバイトストリームである。いくつかの実施形態では、メッセージCRCフィールドは使用されず、他の実施形態で使用される。

Figure 2024513628000002
All messages between the RIC and the RIC SDK are encapsulated in the headers shown in Table 1. Control information and payload are optional. Some messages have control information but no payload field, some messages have a payload without control information, and some messages have both a control field and a payload field. In some embodiments, the RIC SDK can be configured to trap these messages and reformat them for presentation to xApps. The format of the message is a raw byte stream. In some embodiments, the message CRC field is not used, and in other embodiments it is used.
Figure 2024513628000002

ニアRT RIC3200は、E2ノードとxAppの接続、切断、リセット、クラッシュを次のように処理する。E2ノードの場合、いくつかの実施形態のRICは、接続、切断、及びクラッシュを同様に処理する。具体的には、E2ノードへの接続がドロップされ、これらのいずれかの理由で復帰すると、E2ノードは、最初に起動したかのように、再び接続設定を送信し、ニアRT RICは、E2ノードに関連するすべての状態をクリーンアップし、やり直す。いくつかの実施形態において、ニアRT RICは、以前に特定のE2ノードにサブスクライブしていたか否かにかかわらず、E2ノード接続がドロップして復帰したときに、すべてのxAppに通知する。これは、E2ノードが、以前にサブスクライブしていなかったxAppが関心を持っていたかもしれない新しい機能をアドバタイズする可能性があるためである。xAppが接続、切断、又はクラッシュすると、ニアRT RICは同じ動作を再度実行する。ニアRT RIC内のxAppのすべての状態をリセットし、そのサブスクリプションをすべてのE2ノードから削除する。 The near RT RIC 3200 handles connection, disconnection, reset, and crash of the E2 node and xApp as follows. For E2 nodes, the RIC of some embodiments handles connections, disconnections, and crashes similarly. Specifically, when a connection to an E2 node is dropped and comes back up for any of these reasons, the E2 node sends the connection configuration again as if it had originally started up, and the near RT RIC Clean up all state related to the node and start over. In some embodiments, the near RT RIC notifies all xApps when an E2 node connection drops and comes back, regardless of whether they were previously subscribed to a particular E2 node. This is because the E2 node may advertise new features that may be of interest to xApps that were not previously subscribed. When the xApp connects, disconnects, or crashes, the near RT RIC performs the same operation again. Reset all state of the xApp in the near RT RIC and remove its subscription from all E2 nodes.

図33は、ニアRT RIC3200のデータパスポッドのE2APメッセージ処理を示す。E2APメッセージ処理とその他のメッセージ処理に関する以下の説明では、簡潔にするために、このデータパスポッドを単にニアRT RIC3200又はRIC3200と呼ぶ。図に示すように、ニアRT RIC3200は、最初に、E2ノードから受信したE2APメッセージをデコードする。いくつかの実施形態では、このデコードは、E2APヘッダのみのデコードを含むが、他の実施形態では、このデコードは、E2APヘッダ及びE2SMペイロードのデコードを含む。このデコードの一部又は全部(例えば、E2SM)について、いくつかの実施形態のニアRT RICは、上述のバイパスパスを介してアクセスするハードウェアアクセラレータ(例えば、GPUアクセラレータ)を使用する。 FIG. 33 shows the E2AP message processing of the near RT RIC 3200 datapath pod. In the following discussion of E2AP message processing and other message processing, for the sake of brevity, this datapath pod will simply be referred to as the near RT RIC 3200 or RIC 3200. As shown, the near RT RIC 3200 first decodes the E2AP message received from the E2 node. In some embodiments, the decoding includes decoding only the E2AP header, while in other embodiments, the decoding includes decoding the E2AP header and the E2SM payload. For some or all of this decoding (eg, E2SM), the near RT RIC of some embodiments uses a hardware accelerator (eg, a GPU accelerator) that is accessed via the bypass path described above.

E2APメッセージをデコードした後、ニアRT RICは、受信したデータメッセージを考慮して内部データ構造を作成又は更新し、次に、表1を参照して上記のフォーマットでxAppにフラットなカプセル化メッセージを作成する。ニアRT RIC及びRIC SDKは、異なるコンテナ上で動作し、いくつかの実施形態では異なるポッド上に存在するため、任意のデータ構造を互いに渡すことはなく、いくつかの実施形態では、それらのデータ交換を特定のバイト列を有するカプセル化されたメッセージにフォーマットする。データメッセージをカプセル化した後、ニアRT RICはデータメッセージをxAppポッドに転送し、このポッドのRIC SDKが適切なxAppに転送する。 After decoding the E2AP message, the Near RT RIC creates or updates the internal data structure considering the received data message and then creates a flat encapsulated message to the xApp in the above format with reference to Table 1. create. Because the Near RT RIC and RIC SDK run on different containers, and in some embodiments reside on different pods, they do not pass any data structures to each other, and in some embodiments their data Format the exchange into an encapsulated message with a specific sequence of bytes. After encapsulating the data message, the near RT RIC forwards the data message to the xApp pod, whose RIC SDK forwards it to the appropriate xApp.

E2APメッセージの処理中にニアRT RICで作成又は更新される内部データ構造は、xAppからE2APメッセージへの応答メッセージの処理と、後続のE2APメッセージの処理に使用される。いくつかの実施形態において、ニアRT RICの内部データ構造に格納されるデータの例は、(1)特定のE2ノードからのデータに関心を有するxAppのサブスクリプションリスト、(2)各xAppが各E2ノードから関心を有する特定のデータタプル、(3)E2ノード及びxAppに関連するネットワークアドレス及び他の位置データを識別するレコード、(4)確保され、割り当てられた識別子(例えば、RIC要求ID)を含む。 Internal data structures created or updated in the near RT RIC during processing of an E2AP message are used for processing response messages from the xApp to the E2AP message and for processing subsequent E2AP messages. In some embodiments, examples of data stored in the near RT RIC's internal data structures include (1) a subscription list of xApps that are interested in data from a particular E2 node; a specific data tuple of interest from the E2 node; (3) a record identifying the network address and other location data associated with the E2 node and the xApp; (4) a reserved and assigned identifier (e.g., RIC request ID). including.

xAppがメッセージを送信すると、そのRIC SDKはそのメッセージを処理し、前述のように共有メモリ又はSCTPインタフェースに沿ってRICに転送する。ニアRT RICは次にメッセージを解析し、解析されたコンポーネントを格納する。これらのコンポーネントと、関連するE2ノードメッセージの内部データ構造に格納されている1つ以上のデータタプルとに基づいて、RICはE2AP応答を作成し、この応答をエンコードして、送信先のE2ノードに転送する。 When an xApp sends a message, its RIC SDK processes the message and forwards it to the RIC along the shared memory or SCTP interface as described above. The near RT RIC then parses the message and stores the parsed components. Based on these components and one or more data tuples stored in the internal data structure of the associated E2 node message, the RIC creates an E2AP response, encodes this response, and sends it to the destination E2 node. Transfer to.

たとえば、第1のxAppがE2ノードからM個のデータタプルを受信するサブスクリプション要求を送信した後、ニアRT RICのデータパスポッドの状態を作成して、第1のxAppの目的のサブスクリプションを記録し、M個のデータタプルのためのE2ノードを使用してサブスクリプションを要求し、これらのM個のデータタプルを最初に受信したときにxAppに転送し、その後、受信するたびにこれらのM個のデータタプルを転送する。いくつかの実施形態では、ニアRT RICのデータパスポッドは、M個のデータタプルをE2ノードから受信するたびに、関連するSDLに転送するように構成することができる。 For example, after the first xApp sends a subscription request to receive M data tuples from the E2 node, create the state of the near RT RIC's data path pod to receive the desired subscription for the first xApp. record and request a subscription using an E2 node for M data tuples, forward these M data tuples to the xApp the first time they are received, and then forward these M data tuples to the xApp each time they are received. Transfer M data tuples. In some embodiments, the datapath pod of the near RT RIC may be configured to forward M data tuples to the associated SDL whenever it receives from the E2 node.

第1のxAppがE2ノードからM個のデータタプルを受信するようにサブスクライブした後、第2のxAppは、E2ノードからNがMより大きいN個の異なるデータタプルを受信するようにサブスクライブすることができる。ニアRT RICは、更新されたサブスクリプション要求をE2ノードに送信する。この更新でN個のデータタプルが要求されるようになった。ニアRT RIC がN個のデータタプルを受信するたびに、M個のデータタプルが第1のxAppに送信され、N個のデータタプルがすべて第2のxAppに送信される。 After the first xApp subscribes to receive M data tuples from the E2 node, the second xApp subscribes to receive N different data tuples from the E2 node, where N is greater than M. can do. The near RT RIC sends the updated subscription request to the E2 node. With this update, N data tuples are now required. Every time the near RT RIC receives N data tuples, M data tuples are sent to the first xApp and all N data tuples are sent to the second xApp.

別の例では、ニアRT RICを削除し、サブスクリプション要求に応答してE2ノードからE2APメッセージからRIC要求IDをキャッシュする。このIDが削除されると、RICはE2APメッセージの一部とそのE2SMペイロード(該当する場合)をxAppに提供する。その後、xAppがサブスクリプションを削除する場合、RICはRIC要求IDをその状態から取得し、E2ノードへのE2APメッセージに挿入して、サブスクリプションの削除を要求する。 Another example is to delete the near RT RIC and cache the RIC request ID from the E2AP message from the E2 node in response to the subscription request. Once this ID is removed, the RIC provides part of the E2AP message and its E2SM payload (if applicable) to the xApp. Later, when the xApp deletes the subscription, the RIC retrieves the RIC request ID from its state and inserts it into the E2AP message to the E2 node to request deletion of the subscription.

いくつかの実施形態では、ニアRT RICのE2セットアップ、応答メッセージ、及び障害メッセージの処理は、次のようになる。ニアRT RICは、最初にE2ノードからセットアップ要求メッセージを受信する。それに応じて、ニアRT RICはメッセージをデコードし、内部データ構造を構築する。RICはロー(raw)ASN1ペイロードもキャッシュする。いくつかの実施形態において、ニアRT RICは、追加されたすべてのRAN関数識別子を受け入れる。いくつかの実施形態では、ニアRT RICでは、E2APヘッダをデコードした後、他の何もデコードしないで(すなわち、ASN1でエンコードされたE2SMペイロードを有するメッセージとして)、セットアップメッセージをxAppsに送信する。いくつかの実施形態では、ニアRT RICがxAppに送信するセットアップメッセージは、そのASN1符号化されたペイロードと共に0の制御長(ctrl_len)を有する。 In some embodiments, the near RT RIC's processing of E2 setup, response, and failure messages is as follows: The near RT RIC first receives a setup request message from the E2 node. In response, the near RT RIC decodes the message and builds internal data structures. The RIC also caches the raw ASN1 payload. In some embodiments, the near RT RIC accepts any added RAN function identifiers. In some embodiments, after decoding the E2AP header, the near RT RIC sends the setup message to the xApps without decoding anything else (i.e., as a message with an ASN1 encoded E2SM payload). In some embodiments, the setup message that the near RT RIC sends to the xApps has a control length (ctrl_len) of 0 along with its ASN1 encoded payload.

xAppが後で接続すると、ニアRT RICはE2ノードからのすべてのセットアップ要求をxAppに送信し、接続されたE2ノードのインベントリを保持する。いくつかの実施形態では、ニアRT RICは、これらのメッセージを一度に1つずつ送信する。また、上述したように、いくつかの実施形態におけるニアRT RICは、E2Setup応答を構築し、それをE2ノードに送信する。いくつかの実施形態では、ニアRT RICでは、セットアップ要求が誤った形式になったときに失敗メッセージを送信する(例えば、RAN関数リストの複製である、又はリストに追加されていない記録を除去する)。 When the xApp later connects, the near RT RIC sends all setup requests from the E2 nodes to the xApp and maintains an inventory of connected E2 nodes. In some embodiments, the near RT RIC sends these messages one at a time. Also, as described above, the near RT RIC in some embodiments constructs an E2Setup response and sends it to the E2 node. In some embodiments, the near RT RIC sends a failure message when a setup request is malformed (e.g., removes a record that is a duplicate of the RAN function list or has not been added to the list). ).

E2ノードからリセットを受けた後、ニアRT RICはメッセージをデコードした後、以下の動作を行う。このリセットに関するメッセージを、このE2ノードへのサブスクリプションを有するすべてのxAppに送信する。いくつかの実施形態では、これは、ASN 1の内容を持たない内部メッセージである。ニアRT RICは、送信した以前のすべてのサブスクリプションのE2ノードへのサブスクリプション削除メッセージを終了する。また、このE2ノードに制御、挿入、ポリシー削除を送信する。未処理の要求をクリーンアップし、E2ノードにリセット応答を送信する。 After receiving the reset from the E2 node, the near RT RIC decodes the message and then performs the following operations. Send a message about this reset to all xApps that have subscriptions to this E2 node. In some embodiments, this is an internal message without ASN 1 content. The Near RT RIC finishes sending the Delete Subscription message to the E2 node for all previous subscriptions. It also sends control, insertion, and policy deletion to this E2 node. Clean up any outstanding requests and send a reset response to the E2 node.

ニアRT RICはまた、いくつかの実施形態において、サービス更新、確認、及び失敗メッセージを採用する。このメッセージは、追加、修正、及び削除とともに、サポートされるRAN関数リストを更新する。ニアRT RICは、E2ノードの新しいサービス構成についてすべてのxAppに通知する。いくつかの実施形態では、ニアRT RICは、構成の適用後にxAppsにメッセージを送信するので、構成の最終状態を反映する。他の実施形態では、ニアRT RICは、サポートされるRAN機能の前の状態と新しい状態との間の差分を計算するために、xAppsに対してそのままメッセージを送信する。後者のアプローチでは、ニアRT RICは、結果のデルタをASN1エンコードする必要はない。 The Near RT RIC also employs service update, confirmation, and failure messages in some embodiments. This message updates the supported RAN functions list with additions, modifications, and deletions. The near RT RIC informs all xApps about the new service configuration of the E2 node. In some embodiments, the near RT RIC sends a message to the xApps after applying the configuration, so it reflects the final state of the configuration. In other embodiments, the near RT RIC sends messages as is to the xApps to calculate the difference between the previous state and the new state of the supported RAN functions. In the latter approach, the near RT RIC does not need to ASN1 encode the resulting delta.

E2APサブスクリプションの処理は、いくつかの実施形態では以下のようになる。xAppはサブスクリプションのE2SM部分をフォーマットし、ASN1はそれをエンコードする。以下の表2は、サブスクリプションメッセージの制御部分(すなわち、xAppからニアRT RICまでのメッセージの制御フィールドに格納される部分)の詳細を示している。ペイロードは、ASN1でエンコードされたE2SMコンテンツになる。いくつかの実施形態では、オプション情報を明確にするために、複数のサブスクリプションメッセージタイプが定義されている。また、いくつかの実施形態では、メッセージフラグを使用して、正確なフォーマットを指定する。いくつかの実施形態では、各加入メッセージは、1つのE2ノードグローバルID及び1つのRAN機能IDを指定する。 Processing of E2AP subscriptions is as follows in some embodiments. xApp formats the E2SM part of the subscription and ASN1 encodes it. Table 2 below details the control part of the subscription message (i.e., the part stored in the control field of the xApp to Near RT RIC message). The payload will be E2SM content encoded with ASN1. In some embodiments, multiple subscription message types are defined to clarify optional information. Also, in some embodiments, message flags are used to specify the exact format. In some embodiments, each join message specifies one E2 node global ID and one RAN capability ID.

いくつかの実施形態では、E2ノードは、113バイトの識別子を送信し、RICは、それを40バイトのIDに圧縮する。サブスクリプションメッセージをE2ノードに送信すると、RICは40バイトを113バイトのIDに変換する。サブスクリプションメッセージ制御フィールドは、可能な限り固定されたフォーマットになる。いくつかの実施形態において、RICは、重複したサブスクリプションメッセージを送出することを避けるために、すべてのサブスクリプション要求をキャッシュし、複数のxAppからの要求を比較する。ただし、第1の最初のxAppの後に、第2の後続のxAppが同じE2ノードから追加情報を要求すると、RICはサブスクリプションを再送信する(一部の実施形態では同じRIC要求IDを使用)。ただし、今回は追加情報を要求する。サブスクリプション要求をE2ノードに送信する場合、RICは、いくつかの実施形態では、xAppから受信したペイロード全体をE2APメッセージペイロードとして送信する。

Figure 2024513628000003
In some embodiments, the E2 node sends a 113 byte identifier and the RIC compresses it into a 40 byte ID. When sending the subscription message to the E2 node, the RIC converts the 40 bytes into a 113 byte ID. Subscription message control fields will be in a fixed format wherever possible. In some embodiments, the RIC caches all subscription requests and compares requests from multiple xApps to avoid sending out duplicate subscription messages. However, if after the first initial xApp, a second subsequent xApp requests additional information from the same E2 node, the RIC will resend the subscription (using the same RIC request ID in some embodiments) . However, this time we will request additional information. When sending a subscription request to an E2 node, the RIC, in some embodiments, sends the entire payload received from the xApp as an E2AP message payload.
Figure 2024513628000003

ニアRT RICは、E2ノードのグローバルIDとRIC要求ID(RICによって生成される)を制御情報として保存し、E2ノードから正確にASN1エンコードされたメッセージをxAppsに送り返すことで、E2AP RICサブスクリプション応答を処理する。 The near RT RIC saves the E2 node's global ID and the RIC request ID (generated by the RIC) as control information and sends an exactly ASN1 encoded message from the E2 node back to the xApps to respond to the E2AP RIC subscription response. process.

E2AP RICサブスクリプション削除要求、応答、又は失敗メッセージは、制御情報として(つまり、ctrl_infoの一部として)送信されるメッセージフィールドとともに、xAppからニアRT RICに送信される。ニアRT RICはエンコードされたASN1メッセージを作成し、E2ノードに送信する。削除要求では、E2ノードグローバルIDを指定しない。したがって、この情報はxAppのRICによって提供される。いくつかの実施形態では、応答メッセージは、パックされたバイト(ASN1エンコードされていない)として、ニアRT RICからxAppに送られる。 The E2AP RIC subscription deletion request, response, or failure message is sent from the xApp to the near RT RIC with message fields sent as control information (ie, as part of ctrl_info). The near RT RIC creates an encoded ASN1 message and sends it to the E2 node. The deletion request does not specify the E2 node global ID. Therefore, this information is provided by the xApp's RIC. In some embodiments, the response message is sent from the near RT RIC to the xApp as packed bytes (not ASN1 encoded).

E2ノードのE2AP通知レポートは、次のように処理される。メッセージは、ニアRT RICによってデコードされ、RIC要求IDフィールドが判定される。これは、表示にサブスクライブしたxAppを判別するのに役立つ。いくつかの実施形態におけるニアRT RICは、xAppに符号化されたASN1としてメッセージを送信する。いくつかの実施形態において、ニアRT RICはまた、メッセージと共に制御情報として減少したE2グローバルIDを送信する。 The E2AP notification report of an E2 node is processed as follows: The message is decoded by the near RT RIC and the RIC Request ID field is determined. This helps to determine the xApp that has subscribed to the indication. The near RT RIC in some embodiments sends the message as ASN1 encoded into the xApp. In some embodiments, the near RT RIC also sends the reduced E2 Global ID as control information with the message.

E2AP制御要求のニアRT RICの処理は、いくつかの実施形態では以下のようになる。xAppはこの要求をパックされたバイト情報として送信する。ニアRT RICでは、この情報はxAppによって指定されるため、メッセージにE2グローバルIDは指定されない。このメッセージのニアRT RICのフォーマットを表3に示す。

Figure 2024513628000004
Near RT RIC processing of E2AP control requests is as follows in some embodiments. xApp sends this request as packed byte information. In the Near RT RIC, the E2 Global ID is not specified in the message since this information is specified by the xApp. The near RT RIC format of this message is shown in Table 3.
Figure 2024513628000004

ニアRT RICは、E2AP制御応答又は失敗メッセージを次のように処理する。ニアRT RICはメッセージをデコードし、RIC要求IDを取得する。次に、制御情報としてグローバルE2ノードIDを先頭に付加したASN1エンコードメッセージをxAppに送信する。 The Near RT RIC processes E2AP control responses or failure messages as follows. The near RT RIC decodes the message and obtains the RIC request ID. Next, an ASN1 encoded message with the global E2 node ID added to the beginning as control information is sent to the xApp.

いくつかの実施形態では、SDLデータストアは、1つ以上のポッドの独自のセットで実行されるメモリデータベース内のものである。独自のコンピューティングリソースとメモリリソースが割り当てられている。前述のように、複数のニアRT RICインスタンスは、分散ニアRT RICを定義する。いくつかの実施形態において、各ニアRT RICインスタンスには、RICインスタンスのためのシステム全体の情報を格納するSDLの独自のインスタンスがある。このような情報の例には、接続されたE2ノード(すなわち、基地局ノード)、xApp、各xAppからのサブスクリプション及びE2ノードによって返されたクリティカルセルデータのリストが含まれる。さらに、いくつかの実施形態の各SDLインスタンスは、データが到着すると内部でカスタムアルゴリズムを実行し、ハードウェアアクセラレータ(例えば、GPU)にインタフェースすることによって、又はそのストレージから取り出された後処理データによって、着信データを前処理するサービスを提供する。 In some embodiments, the SDL data store is in a memory database running on a unique set of one or more pods. Has its own compute and memory resources allocated. As mentioned above, multiple near RT RIC instances define a distributed near RT RIC. In some embodiments, each near RT RIC instance has its own instance of SDL that stores system-wide information for the RIC instance. Examples of such information include a list of connected E2 nodes (ie, base station nodes), xApps, subscriptions from each xApp, and critical cell data returned by the E2 nodes. Additionally, each SDL instance in some embodiments internally executes custom algorithms as data arrives, by interfacing to hardware accelerators (e.g., GPUs), or by post-processing data retrieved from its storage. , provides services to preprocess incoming data.

RICインスタンスのデータIOポッド及びxAppポッドは、RICインスタンスのSDLポッドに接続される。いくつかの実施形態では、各SDLインスタンスは、それ自体のRICインスタンスのデータIOポッド及びサービスポッドでのみ動作する。また、いくつかの実施形態では、SDLポッドはSMOによって管理され、サービスポッドを介して設定される。SDLとの間のデータフローには、(1)データIOからSDLデータストレージ、(2)SDLデータストレージからのxApps、(3)SDLデータストレージへのxApps、(4)SDLデータアクセスからのデータIO(E2ノード情報、サブスクリプション情報の取得など)、及び(5)SDL通信との間のサービスポッドによる構成情報の提供及び取得が含まれる。 The RIC instance's data IO pod and xApp pod are connected to the RIC instance's SDL pod. In some embodiments, each SDL instance operates only on its own RIC instance's data IO pods and service pods. Also, in some embodiments, SDL pods are managed by the SMO and configured via service pods. Data flow to and from SDL includes (1) data IO to SDL data storage, (2) xApps from SDL data storage, (3) xApps to SDL data storage, (4) data IO from SDL data access. (obtaining E2 node information, subscription information, etc.), and (5) providing and obtaining configuration information by the service pod with SDL communication.

図34は、SDLポッド3410を有するいくつかの実施形態のRICインスタンス3400を示す。説明するように、SDL3410は、構成エージェント3412、SDLデータパスエージェント3414、RIC SDKエージェント3417、SDL前後プロセッサ3416及び3418、ならびに1つ以上のSDLデータストア3420を含む。SDL構成エージェント3412は、サービスポッドエージェント3430とインタフェースを有する。このエージェント3412は、SDLポッドの他のコンポーネントを設定及び管理する。SDLポッドはSMOによって管理され、サービスポッド #090のサービスエージェント3430を介して設定される。 FIG. 34 illustrates some embodiments of a RIC instance 3400 with an SDL pod 3410. As described, SDL 3410 includes a configuration agent 3412, an SDL data path agent 3414, a RIC SDK agent 3417, SDL pre- and post-processors 3416 and 3418, and one or more SDL data stores 3420. SDL configuration agent 3412 interfaces with service pod agent 3430. This agent 3412 configures and manages other components of the SDL pod. SDL pods are managed by SMO and configured via service agent 3430 in service pod #090.

SDLデータパスエージェント3414は、SDLポッドがデータパスポッド3450の制御スレッド及びデータパススレッドに公開するデータパスインタフェースである。SDLデータパスエージェント3414は、SDLのためにこれらのエンティティからの通信を処理し、これらのデータパスエンティティのためにSDLデータストア3420への読み出し及び書き込みを実行する。いくつかの実施形態では、SDLデータパスエージェントは、SCTP又は共有メモリライブラリのいずれかを使用してデータパスポッド3450と通信するように構成することができる。 SDL datapath agent 3414 is the datapath interface that the SDL pod exposes to the control thread and datapath thread of datapath pod 3450. SDL data path agent 3414 handles communications from these entities on behalf of SDL and performs reads and writes to SDL data store 3420 on behalf of these data path entities. In some embodiments, the SDL datapath agent may be configured to communicate with the datapath pod 3450 using either SCTP or a shared memory library.

いくつかの実施形態において、RIC SDKエージェント3417は、SDLポッドがxAppポッドのRIC SDKに公開するエージェントである。RIC SDKエージェント3417は、RIC SDKからSDLへの通信を処理し、RIC SDKに対してSDLデータストア3420への読み出し及び書き込みを実行する。いくつかの実施形態では、RIC SDKエージェント3417は、SCTP又は共有メモリライブラリのいずれかを使用してRIC SDKと通信するように構成することができる。また、このエージェント3417は、RIC SDKのSDLキャッシュをSDLデータストア3420と同期させるためのキャッシュ同期動作を実行する。また、xAppsから数十個のコネクションにスケーリングする必要がある場合、いくつかの実施形態のコネクションマネージャは、RICインスタンスのepollコネクション処理(例えば、いくつかの実施形態のデータIOポッドによって使用されるepollコネクション処理)を利用する。 In some embodiments, the RIC SDK agent 3417 is an agent that the SDL pod exposes to the RIC SDK of the xApp pod. The RIC SDK agent 3417 handles communication from the RIC SDK to the SDL and performs reads from and writes to the SDL data store 3420 for the RIC SDK. In some embodiments, the RIC SDK agent 3417 may be configured to communicate with the RIC SDK using either SCTP or a shared memory library. This agent 3417 also performs cache synchronization operations to synchronize the RIC SDK's SDL cache with the SDL data store 3420. Additionally, if xApps need to scale to dozens of connections, the connection manager of some embodiments may be configured to handle the RIC instance's epoll connections (e.g., the epoll used by the data IO pods of some embodiments). connection processing).

SDLエージェント3414及び3417は、RIC SDK及びデータパスポッドからのイベントサブスクリプションと通知を処理する。これはE2APサブスクリプション管理とは別のものであるが、概念的には似ている。たとえば、SDLのこのサブスクリプションサービスを介して、xAppは、キー又はレポートの周波数を介して一部のデータに対する関心を指定する。その後、RIC SDKエージェント3417は、サブスクリプションに基づいてこのxAppに定期的な更新を提供する。また、データを暗号化及び復号化することによって、いくつかの実施形態においてセキュリティサービスを提供する。 SDL agents 3414 and 3417 handle event subscriptions and notifications from the RIC SDK and datapath pods. This is separate from E2AP subscription management, but conceptually similar. For example, through this subscription service of SDL, xApps specify their interest in some data via a key or frequency of reports. The RIC SDK agent 3417 then provides periodic updates to this xApp based on the subscription. It also provides security services in some embodiments by encrypting and decrypting data.

データプリプロセッサ及びポストプロセッサ3416及び3418は、データ上で特定の付加価値アルゴリズムを柔軟に実行するために、いくつかの実施形態においてSDL3410の一部である。いくつかの実施形態では、これらのプロセッサ3416及び3418の両方が、一方のコンテナで動作し、他方の実施形態では、これらのそれぞれが、SDLポッド3410内の別個のコンテナで動作する。これらのプロセッサのそれぞれはまた、いくつかの実施形態でそれらの動作を実行するために、外部アクセラレータ(例えば、GPU3480)とインタフェースする。データプリプロセッサ3416は、データがSDLデータストア3420に格納されるときに、インラインで実行される。 Data pre-processors and post-processors 3416 and 3418 are part of SDL 3410 in some embodiments to flexibly execute certain value-added algorithms on the data. In some embodiments, both of these processors 3416 and 3418 operate in one container, and in other embodiments, each of them operates in separate containers within SDL pod 3410. Each of these processors also interfaces with an external accelerator (eg, GPU 3480) to perform their operations in some embodiments. Data preprocessor 3416 is executed inline when data is stored in SDL data store 3420.

いくつかの実施形態では、データポストプロセッサ3418は、データがSDLデータストア3420から読み出されるときにインラインで実行される。あるいは、あるいは一部の実施形態におけるポストプロセッサ3418は、SDLデータストレージ3420に記憶されたデータ上でバックグラウンドで動作するように構成することができる(例えば、このデータストレージからデータを検索し、このデータに対して何らかの動作を行い、結果をデータストレージに格納する)。いくつかの実施形態のデータプロセッサは、E2APメッセージのE2SMペイロードをエンコード及び/又はデコードする。これは、データパスポッド がデコード及び格納するためにASN1文字列をSDLに渡すことができるので利点がある。上述したように、いくつかの実施形態におけるRIC SDKは、E2SMエンコード/デコードサービスを提供するように構成することもできる。 In some embodiments, data post-processor 3418 is executed inline when data is read from SDL data store 3420. Alternatively, post-processor 3418 in some embodiments can be configured to operate in the background on data stored in SDL data storage 3420 (e.g., retrieve data from this data storage, perform some operation on the data and store the result in data storage). The data processor of some embodiments encodes and/or decodes the E2SM payload of the E2AP message. This is advantageous because the Datapath pod can pass the ASN1 string to the SDL for decoding and storage. As mentioned above, the RIC SDK in some embodiments may also be configured to provide E2SM encoding/decoding services.

いくつかの実施形態においてデータプロセッサ3418が実行するポストプロセッサ動作の別の例は、機械訓練された動作である。いくつかの実施形態では、ポストプロセッサ3418は、様々なxApp及び/又は様々なポッド(例えば、データパスポッド)によって記憶された様々なデータタプルを収集し、これらのデータタプルを機械学習ネットワーク(例えば、機械学習によって訓練されたニューラルネットワーク)を介して渡す。いくつかの実施形態では、ポストプロセッサ3418は、その機械訓練ネットワークを実行するために、SDLのホストコンピュータの1つ以上のハードウェアアクセラレータ(例えば、1つ以上のGPU)を使用して、その動作を実行する。ポストプロセッサ3418は、図14-20を参照して上述したバイパスアプローチを通じてハードウェアアクセラレータにアクセスする。 Another example of a post-processor operation that data processor 3418 performs in some embodiments is a machine-trained operation. In some embodiments, the post-processor 3418 collects various data tuples stored by various xApps and/or various pods (e.g., data path pods) and applies these data tuples to a machine learning network (e.g., , a neural network trained by machine learning). In some embodiments, post-processor 3418 uses one or more hardware accelerators (e.g., one or more GPUs) of the SDL host computer to execute its machine training network operations. Execute. Post-processor 3418 accesses the hardware accelerator through the bypass approach described above with reference to FIGS. 14-20.

ポストプロセッサ3418は、その動作の結果を1つ以上のxAppsに渡すか、又は1つ以上のxAppsが取得するためのSDLデータストア3420に結果を格納することができる。機械訓練ネットワークでSDLデータを後処理することによって得られる結果の例は、異常検出(例えば、異常に振る舞っているE2ノードを特定する、例えば、あまりにも多くの接続を突然受け取るセルサイト)を含む。 Post-processor 3418 may pass the results of its operations to one or more xApps or store the results in SDL data store 3420 for retrieval by one or more xApps. Examples of results obtained by post-processing SDL data with machine training networks include anomaly detection (e.g. identifying E2 nodes that are behaving abnormally, e.g. cell sites suddenly receiving too many connections) .

SDLデータストア3420に格納される異なるxApp出力を処理するためにSDLポッド3410内の機械訓練ネットワークを使用することは、このデータストア3420が、xAppサブスクリプションに基づいてE2ノードが提供する多数のデータタプルと同様に、いくつかのxAppの出力を格納するので、利点がある。多くの場合、個々のxAppは、サブスクライブ先のデータタプルと、独自の演算結果及び他のいくつかのxAppの出力のみを把握できる。一方、SDLポッド3410は、より大きなE2ノード入力データとxApp出力データのセットにアクセスできる。このような後処理を実行するために機械で訓練されたネットワークを使用する代わりに、ポストプロセッサ3418は、アルゴリズム(例えば、制約された最適化ソルバ)を使用して、SDLデータストレージ3420に記憶されたデータを後処理する。換言すれば、いくつかの実施形態のポストプロセッサ3418は、機械訓練されたネットワークを使用せず、依然として、そのホストコンピュータのハードウェアアクセラレータ(例えば、バイパスパスを介して)を使用して、その動作を実行する。 Using the machine training network within the SDL pod 3410 to process the different xApp outputs stored in the SDL data store 3420 means that this data store 3420 can process a large number of data provided by the E2 nodes based on the xApp subscription. Similar to tuples, it stores the output of several xApps, so it has advantages. In many cases, an individual xApp only knows the data tuples to which it subscribes and the results of its own operations and outputs of some other xApps. On the other hand, SDL pod 3410 has access to a larger set of E2 node input data and xApp output data. Instead of using machine-trained networks to perform such post-processing, post-processor 3418 uses algorithms (e.g., constrained optimization solvers) that are stored in SDL data storage 3420. Post-process the data. In other words, the post-processor 3418 of some embodiments does not use a machine-trained network and still uses its host computer's hardware accelerator (e.g., via a bypass path) to perform its operations. Execute.

一部の実施形態はまた、ポストプロセッサ3418を使用して、第1のxAppがE2ノードの状態にサブスクライブし始めたときに、E2ノードの現在の状態を提供する。E2ノードの状態を受信するために第2のxAppを前にサブスクライブした後、ニアRT RICは、ある期間にわたってこのノードの状態に関連する複数のデータタプルを格納する。第1のxAppがその後E2ノードの状態にサブスクライブし、このxApp又はデータパスポッドのいずれかが第1のxAppのこの状態にアクセスしようとすると、ポストプロセッサ3418は、SDLストレージ内のこのE2ノードに対して以前に格納されたすべてのデータタプルを取得し、これらのデータタプルを使用してE2ノードの現在の状態を計算する。次に、これが第1のxAppに直接、又はデータパスポッドを介して提供する。 Some embodiments also use the post-processor 3418 to provide the current state of the E2 node when the first xApp begins subscribing to the state of the E2 node. After previously subscribing the second xApp to receive the state of the E2 node, the near RT RIC stores multiple data tuples related to the state of this node over a period of time. When the first xApp subsequently subscribes to the state of the E2 node and either this xApp or the datapath pod attempts to access this state of the first xApp, the post processor 3418 Obtain all previously stored data tuples for and use these data tuples to compute the current state of the E2 node. This then provides the first xApp either directly or via a datapath pod.

SDLデータストア3420は、インメモリデータベースである。いくつかの実施形態において、メモリデータベース内のメモリは、コンピュータシステムメモリ(例えば、そのRAMを含むホストコンピュータ不揮発性メモリ)にロードされ、そこから不足するデータベースである。このようなデータベースの例の1つがRedisである。いくつかの実施形態では、データストレージのサイズは、探索及び記憶待ち時間を最小にするために選択される。既存のデータストレージがその所望の最大サイズに達すると、いくつかの実施形態は、SDLの同一又は異なるインスタンス内にこのデータストレージの追加のインスタンスを作成する。 SDL data store 3420 is an in-memory database. In some embodiments, the memory in the memory database is a database that is loaded into and run from computer system memory (eg, host computer non-volatile memory, including its RAM). One example of such a database is Redis. In some embodiments, the size of data storage is selected to minimize search and storage latency. When an existing data storage reaches its desired maximum size, some embodiments create additional instances of this data storage within the same or different instances of the SDL.

また、図34に示すように、一部の実施形態のSDL3410は、HAの理由から、アクティブデータストレージ3420及びスタンバイデータストレージ3421を有する。さらに、いくつかの実施形態は、データストレージ3420に、異なるRICインスタンスの異なるSDLインスタンスが、HA及び/又はデータ可用性の理由により、それらのデータの一部又は全部のバックグラウンドで同期することを可能にする。いくつかの実施形態では、xApps及びRICコンポーネントは、バックグラウンドでスタンバイSDLストレージと同期されるアクティブSDLストレージに対してデータを読み書きする。アクティブSDLストレージに障害が発生した場合、これらの実施形態のRICは、スタンバイSDLストレージにシームレスに切り替えることができる。また、アクティブSDL記憶がアップグレードされるときに、RICはスタンバイSDL記憶に切り替えることができる。これにより、SDLストレージをヒットレスにできる。 Also, as shown in FIG. 34, the SDL 3410 of some embodiments has active data storage 3420 and standby data storage 3421 for HA reasons. Additionally, some embodiments provide data storage 3420 that allows different SDL instances of different RIC instances to synchronize some or all of their data in the background for HA and/or data availability reasons. Make it. In some embodiments, xApps and RIC components read and write data to active SDL storage that is synchronized with standby SDL storage in the background. In the event of a failure of the active SDL storage, the RIC of these embodiments can seamlessly switch to standby SDL storage. Also, the RIC can switch to standby SDL storage when active SDL storage is upgraded. This allows SDL storage to be hitless.

図13を参照して前述したように、RIC SDKにはxAppのローカルSDLストレージを提供するSDLキャッシュが含まれており、このキャッシュはそのデータをSDLのデータストアと同期する。一部の実施形態では、このRIC SDKキャッシュは、メインSDLデータストアからデータをバルク及び定期的にプルする。これにより、メインSDLポッドに対して行われる要求の数を減らすことができる。また、RIC SDKキャッシュは、このデータの一部をローカルに提供することで、SDLデータを読み取るための遅延を削減する。また、RIC SDKキャッシュは、データをxAppポッドでローカルに書き込み、バックグラウンドで同期できるようにすることで、SDLにデータを書き込む時間を短縮する。いくつかの実施形態におけるSDKキャッシュのサイズは、SDLのデータストレージ3420よりも小さい。また、一部の実施形態では、このサイズは、RIC SDKとともにポッド上で実行される1つ以上のxAppのセットの要件に基づいている。 As described above with reference to FIG. 13, the RIC SDK includes an SDL cache that provides local SDL storage for xApps and synchronizes its data with the SDL data store. In some embodiments, this RIC SDK cache pulls data in bulk and periodically from the main SDL data store. This can reduce the number of requests made to the main SDL pod. The RIC SDK cache also reduces the delay for reading SDL data by providing some of this data locally. The RIC SDK cache also reduces the time it takes to write data to the SDL by allowing data to be written locally in xApp pods and synchronized in the background. The size of the SDK cache in some embodiments is smaller than the SDL data storage 3420. Also, in some embodiments, this size is based on the requirements of the set of one or more xApps running on the pod with the RIC SDK.

いくつかの実施形態において、SDL3410へのデータのソースは、(1)データパスポッド3450の制御スレッド及びデータパススレッド、(2)RIC SDKを介したxApp、(3)A1インタフェースを介してアクセスされる非RT RICのMLモデル及びポリシーストレージ及びサーバ、(4)xAppポッド構成ストレージ、及び(5)SMOの構成サーバを含む。いくつかの実施形態では、SDL内のシステムデータの例(例えば、制御スレッドによって書き込まれる)は、(1)E2ノード情報、(2)セル情報、(3)UE情報、(4)E2ノードレポート、(5)KPM(主要パフォーマンスメトリック)レポート、及び(6)トポロジ情報(EMSアダプタから)を含む。 In some embodiments, the sources of data to the SDL 3410 are accessed through (1) the control thread and datapath thread of the datapath pod 3450, (2) the xApp via the RIC SDK, and (3) the A1 interface. (4) xApp pod configuration storage, and (5) SMO configuration server. In some embodiments, examples of system data in the SDL (e.g., written by the control thread) are: (1) E2 node information, (2) cell information, (3) UE information, (4) E2 node report. , (5) KPM (Key Performance Metrics) reports, and (6) topology information (from the EMS adapter).

いくつかの実施形態におけるSDLトランザクションの例には、(1)xAppによって読み出される、データをSDLに書き込むデータIOポッド(制御又はデータIOスレッド)、(2)SDLに書き込まれる、別のxAppからデータを読み取るxApp、又は別のxAppのためにSDLにデータを書き込むxApp、(3)SDLポッドで動作するサービスコンテナ(例えば、ポストプロセッサ)が、同じxApp又は別のxAppの前に書き込まれたデータの動作を実行するようにSDLに書き込むxApp、(例えば、GPUサービスを使用するか、又は単に一般CPUを使用することによって)SDLから、この動作の結果を取り出すxApp、(4)A1サブスクリプションの一部としてSDLからデータを読み出す及びSDLへのデータを書き込む非RT RIC、(5)SDLに01構成データを保存するSMO、及び(6)SDLにMLデータを保存する非RT RICがある。 Examples of SDL transactions in some embodiments include (1) a data IO pod (control or data IO thread) that writes data to the SDL that is read by an xApp; (2) data from another xApp that is written to the SDL. an xApp that reads an an xApp that writes to the SDL to perform an operation; an xApp that retrieves the results of this operation from the SDL (e.g., by using GPU services or simply using a generic CPU); (4) one of the A1 subscriptions; (5) an SMO that stores 01 configuration data in the SDL; and (6) a non-RT RIC that stores ML data in the SDL.

図35は、本発明のいくつかの実施形態が実施される電子システムを概念的に示す。電子システム3500は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータ、サーバコンピュータ、メインフレーム、ブレードコンピュータなど)、又は任意の他の種類の電子デバイスであってもよい。このような電子システム3500は、種々のタイプのコンピュータ可読媒体と、種々の他のタイプのコンピュータ可読媒体のインタフェースとを含む。電子システム3500は、バス3505、処理ユニット3510、システムメモリ3525、読み出し専用メモリ3530、永続的ストレージデバイス3535、入力デバイス3540、及び出力デバイス3545を含む。 FIG. 35 conceptually illustrates an electronic system in which some embodiments of the invention are implemented. Electronic system 3500 may be a computer (eg, a desktop computer, a personal computer, a tablet computer, a server computer, a mainframe, a blade computer, etc.) or any other type of electronic device. Such electronic systems 3500 include various types of computer readable media and interfaces to various other types of computer readable media. Electronic system 3500 includes a bus 3505, a processing unit 3510, a system memory 3525, a read only memory 3530, a persistent storage device 3535, an input device 3540, and an output device 3545.

バス3505は、集合的に、電子システム3500の多数の内部デバイスを通信的に接続する全てのシステムバス、周辺装置バス、及びチップセットバスを表す。例えば、バス3505は、処理ユニット3510を、読み出し専用メモリ3530、システムメモリ3525及び永続的ストレージデバイス3535と通信可能に接続する。 Bus 3505 collectively represents all system, peripheral, and chipset buses that communicatively connect numerous internal devices of electronic system 3500. For example, bus 3505 communicatively connects processing unit 3510 with read-only memory 3530, system memory 3525, and persistent storage device 3535.

これらの種々のメモリユニットから、処理ユニット3510は、本発明の処理を実行するために、実行する命令及び処理するデータを検索する。処理ユニット3510は、様々な実施形態では、単一プロセッサ又はマルチコアプロセッサであってもよい。 From these various memory units, processing unit 3510 retrieves instructions to execute and data to process in order to perform the processes of the present invention. Processing unit 3510 may be a single processor or a multi-core processor in various embodiments.

読み出し専用メモリ3530は、処理ユニット3510及び電子システム3500の他のモジュールによって必要とされる静的データ及び命令を格納する。一方、永続的記憶デバイス3535は、読み書き可能なメモリデバイスである。このデバイス3535は、電子システム3500がオフのときでも命令やデータを格納する不揮発性メモリユニットである。本発明の一部の実施形態は、永続的ストレージデバイス3535として大容量ストレージデバイス(磁気又は光ディスク及びその対応するディスクドライブなど)を使用する。 The read-only memory 3530 stores static data and instructions required by the processing unit 3510 and other modules of the electronic system 3500. On the other hand, the persistent storage device 3535 is a readable and writable memory device. This device 3535 is a non-volatile memory unit that stores instructions and data even when the electronic system 3500 is turned off. Some embodiments of the invention use mass storage devices (such as magnetic or optical disks and their corresponding disk drives) as the persistent storage device 3535.

他の実施形態では、着脱式ストレージデバイス(フロッピーディスク、フラッシュドライブ等)を永続的ストレージデバイス3535として使用する。永続的ストレージデバイス3535と同様に、システムメモリ3525は読み書き可能なメモリデバイスである。しかし、ストレージデバイス3535とは異なり、システムメモリ3525は、ランダムアクセスメモリなどの揮発性の読み書き可能メモリである。システムメモリ3525は、プロセッサが実行時に必要とする命令及びデータの一部を格納する。いくつかの実施形態では、本発明の処理は、システムメモリ3525、永続的ストレージデバイス3535、及び/又は読み出し専用メモリ3530に格納される。これらの種々のメモリユニットから、処理ユニット3510は、いくつかの実施形態の処理を実行するために、実行する命令及び処理するデータを検索する。 Other embodiments use a removable storage device (floppy disk, flash drive, etc.) as the persistent storage device 3535. Like persistent storage device 3535, system memory 3525 is a read/write memory device. However, unlike storage device 3535, system memory 3525 is volatile read-write memory, such as random access memory. System memory 3525 stores some of the instructions and data that the processor needs during execution. In some embodiments, the processes of the present invention are stored in system memory 3525, persistent storage device 3535, and/or read-only memory 3530. From these various memory units, processing unit 3510 retrieves instructions to execute and data to process in order to perform the processing of some embodiments.

バス3505はまた、入出力デバイス3540及び3545に接続する。入力デバイス3540は、ユーザが情報を通信し、コマンドを電子システム3500に選択することを可能にする。入力デバイス3540は、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を含む。出力デバイス3545は、電子システム3500によって生成された画像を表示する。出力デバイス3545は、カソード線管(CRT)又は液晶ディスプレイ(LCD)のようなプリンタ及びディスプレイデバイスを含む。一部の実施形態は、入出力デバイスの両方として機能するタッチスクリーンのようなデバイスを含む。 Bus 3505 also connects to input/output devices 3540 and 3545. Input device 3540 allows a user to communicate information and select commands to electronic system 3500. Input devices 3540 include alphanumeric keyboards and pointing devices (also referred to as "cursor control devices"). Output device 3545 displays images generated by electronic system 3500. Output devices 3545 include printers and display devices such as cathode ray tubes (CRTs) or liquid crystal displays (LCDs). Some embodiments include devices such as touch screens that function as both input and output devices.

最後に、図35に示すように、バス3505はまた、ネットワークアダプタ(図示せず)を介して、電子システム3500をネットワーク3565に結合する。このようにして、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、イントラネット、又はインターネットのようなネットワークのネットワークの一部であってもよい。電子システム3500の任意の又は全てのコンポーネントは、本発明と共に使用することができる。 Finally, as shown in FIG. 35, bus 3505 also couples electronic system 3500 to network 3565 via a network adapter (not shown). In this way, the computer may be part of a network of computers, such as a local area network ("LAN"), a wide area network ("WAN"), an intranet, or the Internet. Electronic Any or all components of system 3500 can be used with the present invention.

いくつかの実施形態は、電子コンポーネント、例えば、マイクロプロセッサ、コンピュータ可読又はコンピュータ可読媒体(代替的にコンピュータ可読記憶媒体、機械可読媒体、又は機械可読記憶媒体と称される)におけるコンピュータプログラム命令を記憶する記憶及びメモリを含む。このようなコンピュータ可読媒体のいくつかの例は、RAM、ROM、読み出し専用コンパクトディスク(CD-ROM)、記録可能コンパクトディスク(CD-R)、書き換え可能コンパクトディスク(CD-RW)、読み出し専用デジタル汎用ディスク(例えば、DVD-ROM、二層DVD-ROM)、種々の記録可能/書き換え可能DVD(例えば、DVD-RAM、DVD-RW、DVD+RWなど)、フラッシュメモリ(例えば、SDカード、mini-SDカード、micro-SDカードなど)、及び/又はソリッドステートハードドライブ、読み出し専用及び記録可能Blu-Ray(登録商標)ディスク、超密度光ディスク、その他の光学又は磁気メディア、及びフロッピーディスクを含む。コンピュータ可読媒体は、少なくとも1つの処理ユニットによって実行可能であり、種々の動作を実行するための命令のセットを含むコンピュータプログラムを記憶することができる。コンピュータプログラムまたはコンピュータコードの例としては、コンパイラによって生成されるようなマシンコードと、インタープリタを使用してコンピュータ、電子コンポーネント、またはマイクロプロセッサによって実行される上位レベルのコードを含むファイルがある。 Some embodiments include an electronic component, e.g., a microprocessor, a computer readable or computer readable medium (alternatively referred to as a computer readable storage medium, a machine readable medium, or a machine readable storage medium) storing computer program instructions. including storage and memory. Some examples of such computer readable media are RAM, ROM, compact disc read only (CD-ROM), compact disc recordable (CD-R), compact disc readable (CD-RW), read only digital General-purpose discs (e.g., DVD-ROM, dual-layer DVD-ROM), various recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD card, mini-SD) cards, micro-SD cards, etc.) and/or solid-state hard drives, read-only and recordable Blu-Ray disks, ultra-density optical disks, other optical or magnetic media, and floppy disks. A computer-readable medium can store a computer program that is executable by at least one processing unit and includes a set of instructions for performing various operations. Examples of computer programs or computer code include files that include machine code, such as produced by a compiler, and higher-level code that is executed by a computer, electronic component, or microprocessor using an interpreter.

上記の説明では、主にソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサを指すが、一部の実施形態は、特定用途向け集積回路(ASIC)、又はフィールドプログラマブルゲートアレイ(FPGA)など、1つ以上の集積回路によって実行される。いくつかの実施形態では、このような集積回路は、回路自体に記憶された命令を実行する。 Although the above description primarily refers to a microprocessor or multi-core processor that executes software, some embodiments include one or more processors, such as an application specific integrated circuit (ASIC), or a field programmable gate array (FPGA). Executed by integrated circuits. In some embodiments, such integrated circuits execute instructions stored on the circuit itself.

本明細書で使用される「コンピュータ」、「サーバ」、「プロセッサ」、「メモリ」という用語は、すべて電子又はその他の技術的デバイスを指す。これらの用語は、人または人々のグループを除外する。明細書では、用語の表示または表示は、電子デバイス上での表示を意味する。本明細書で使用されるように、「コンピュータ可読媒体」(複数)、「コンピュータ可読媒体」、および「マシン可読媒体」(複数)という用語は、コンピュータが読み取り可能な形式で情報を格納する有形の物理オブジェクトに全体として限定される。これらの語は、任意の無線信号、有線でダウンロードされた信号、及び任意の他のその場限りの信号を含まない。 As used herein, the terms "computer," "server," "processor," and "memory" all refer to electronic or other technological devices. These terms exclude a person or group of people. As used herein, the term display or representation refers to display on an electronic device. As used herein, the terms "computer-readable medium(s)," "computer-readable medium," and "machine-readable medium(s)" refer to any tangible medium that stores information in a computer-readable form. limited to physical objects as a whole. These terms do not include any wireless signals, wire-downloaded signals, or any other ad hoc signals.

本発明は、多数の特定の詳細を参照して説明したが、当業者であれば、本発明の概念から逸脱することなく、他の特定の形態で本発明を実施することができることを認識するであろう。たとえば、いくつかの図はプロセスを概念的に示している。これらのプロセスの特定の動作は、表示及び説明されている正確な順序で実行されない場合がある。特定の動作は、1つの連続した一連の動作で実行されなくてもよく、異なる特定の動作が様々な実施形態で実行されてもよい。さらに、プロセスは、いくつかのサブプロセスを使用して、又はより大きなマクロプロセスの一部として実装することができる。 Although the invention has been described with reference to numerous specific details, those skilled in the art will recognize that the invention can be embodied in other specific forms without departing from the inventive concept. Will. For example, some diagrams conceptually illustrate processes. Certain operations of these processes may not be performed in the exact order shown and described. Certain operations may not be performed in one continuous series of operations, and different specific operations may be performed in various embodiments. Furthermore, a process can be implemented using several subprocesses or as part of a larger macro process.

また、上述のいくつかの実施形態は、ホストコンピュータごとに1つのハードウェアアクセラレータのみを示す。しかしながら、一般的な当業者であれば、いくつかの実施形態の方法論及びアーキテクチャを使用して、1つのホストコンピュータ上の複数のハードウェアアクセラレータへの直接的なパススルーアクセスを提供することができることを認識するであろう。さらに、上述のいくつかの実施形態は、xApp動作及びxAppsとのニアRT RIC通信に関する。一般的な当業者の一人であれば、これらの実施形態は、遠隔通信ネットワークにおけるエッジアプリケーション、およびエッジアプリケーションとのニアRT RIC通信に等しく適用可能であることを認識するであろう。したがって、当業者であれば、本発明は、前述の例示的な詳細によって制限されるものではなく、むしろ、添付の請求項によって定義されるものであることを理解するであろう。 Also, some embodiments described above show only one hardware accelerator per host computer. However, one of ordinary skill in the art will appreciate that the methodology and architecture of some embodiments can be used to provide direct pass-through access to multiple hardware accelerators on a single host computer. You will recognize it. Additionally, some of the embodiments described above relate to xApp operations and near RT RIC communication with xApps. One of ordinary skill in the art will recognize that these embodiments are equally applicable to edge applications in telecommunications networks and near RT RIC communications with edge applications. Accordingly, those skilled in the art will appreciate that the invention is not limited by the above exemplary details, but rather is defined by the appended claims.

Claims (35)

無線アクセスネットワーク(RAN)において制御プレーン動作を実行する方法であって、前記方法は、
ホストコンピュータ上の複数のマシンをデプロイすることと、
各マシン上で
制御プレーン動作を実行する制御プレーンアプリケーションをデプロイすることと、
同一のマシン上の前記制御プレーンアプリケーションと前記RANの1つ以上の要素のセットとの間のインタフェースとして機能するRANインテリジェントコントローラ(RIC) SDKを構成することと、を含む、方法。
A method of performing control plane operations in a radio access network (RAN), the method comprising:
Deploying multiple machines on a host computer and
Deploying a control plane application that performs control plane operations on each machine;
configuring a RAN intelligent controller (RIC) SDK that acts as an interface between the control plane application and a set of one or more elements of the RAN on the same machine.
請求項1に記載の方法であって、各マシン上で、前記RIC SDKは、前記制御プレーンアプリケーションのための前記RAN要素のセットへのネットワーク接続を確立するネットワーク接続プロセスのセットを含み、前記マシン上の前記制御プレーンアプリケーションが前記ネットワーク接続プロセスのセットを有することを差し控えることを可能にする、方法。 2. The method of claim 1, wherein on each machine, the RIC SDK includes a set of network connection processes that establish a network connection to the set of RAN elements for the control plane application, A method for enabling said control plane application above to refrain from having said set of network connectivity processes. 請求項2に記載の方法であって、各マシンの各RIC SDKの前記ネットワーク接続プロセスのセットは、前記マシンと、前記マシンの前記制御プレーンアプリケーションによって使用される前記RAN要素のセットとの間のネットワーク接続を確立及び維持し、前記制御プレーンアプリケーションのための前記RAN要素のセットとの間のデータパケット伝送を制御する、方法。 The method of claim 2, wherein the set of network connectivity processes of each RIC SDK of each machine establishes and maintains network connectivity between the machine and the set of RAN elements used by the control plane application of the machine, and controls data packet transmissions between the set of RAN elements for the control plane application. 請求項1に記載の方法であって、各マシン上の前記制御プレーンアプリケーションは、前記RAN SDKが低レベルAPI(アプリケーションプログラムインタフェース)コールに変換する高レベルAPIコールを介して、前記RAN要素のセットと通信する、方法。 2. The method of claim 1, wherein the control plane application on each machine accesses the set of RAN elements via high-level API calls that the RAN SDK translates into low-level API (application program interface) calls. A way to communicate with. 請求項4に記載の方法であって、前記低レベルAPIコールの少なくともサブセットは、標準化策定団体によって規定される、方法。 5. The method of claim 4, wherein at least a subset of the low-level API calls are defined by a standards organization. 請求項4に記載の方法であって、前記高レベルAPIコールは高レベルプログラミング言語で作成され、一方、前記低レベルAPIコールは、ネットワーク接続を確立及び維持し、これらの接続を介してデータパケットを通過させる低レベルコールを含む、方法。 5. The method of claim 4, wherein the high-level API calls are written in a high-level programming language, while the low-level API calls establish and maintain network connections and transfer data packets over these connections. A method, including low-level calls that pass through. 請求項4に記載の方法であって、前記RAN要素のセットは、前記RANのCU(集中ユニット)とDU(分散ユニット)とを含む、方法。 5. The method of claim 4, wherein the set of RAN elements includes CUs (centralized units) and DUs (distributed units) of the RAN. 請求項7に記載の方法であって、各マシン上の前記RAN SDKは、前記低レベルの標準化で規定されたE2インタフェースを介して前記CU及び前記DUと通信し、一方、前記マシン上の前記制御プレーンアプリケーションは、高レベルAPIコールを用いて、前記RAN SDKを介して前記CU及び前記DUと通信し、前記高レベルAPIコールは、低レベルの伝送又はネットワーク動作を含まない高レベルアプリケーションレイヤにおけるE2インタフェース動作を規定する、方法。 8. The method of claim 7, wherein the RAN SDK on each machine communicates with the CU and the DU via the E2 interface defined in the low-level standardization, while the RAN SDK on the machine A control plane application communicates with the CU and the DU via the RAN SDK using high-level API calls at a high-level application layer that do not involve low-level transport or network operations. A method for defining E2 interface operation. 請求項4に記載の方法であって、前記RAN要素のセットは、前記RICのネットワーク要素を含む、方法。 5. The method of claim 4, wherein the set of RAN elements includes network elements of the RIC. 請求項9に記載の方法であって、前記RIC要素は、少なくとも1つの共有データレイヤ(SDL)要素を含む、方法。 10. The method of claim 9, wherein the RIC element includes at least one shared data layer (SDL) element. 請求項9に記載の方法であって、前記RIC要素は、少なくとも1つのデータパス入出力(I/O)要素を含む、方法。 10. The method of claim 9, wherein the RIC element includes at least one datapath input/output (I/O) element. 請求項9に記載の方法であって、前記RIC要素は、少なくとも1つのサービス管理要素を含む、方法。 10. The method of claim 9, wherein the RIC element includes at least one service management element. RAN(Radio Access Network)において通信する制御プレーンアプリケーションの方法であって、
複数のホストコンピュータ上で動作する複数の制御プレーンアプリケーションをデプロイすることと、
前記複数のホストコンピュータ上で動作する複数のRANインテリジェントコントローラ(RIC)をデプロイして、前記制御プレーンアプリケーションの間の通信インタフェースとして機能する分散RICを実施することと、を含む方法。
A method for a control plane application to communicate in a RAN (Radio Access Network), the method comprising:
deploying multiple control plane applications running on multiple host computers;
deploying a plurality of RAN intelligent controllers (RICs) running on the plurality of host computers to implement a distributed RIC that acts as a communication interface between the control plane applications.
請求項13に記載の方法であって、更に、少なくとも第1の制御プレーンアプリケーションからアプリケーションプログラミングインタフェース(API)コールを受信し、前記APIコールを少なくとも第2の制御プレーンアプリケーションに転送するように、第1のRICを構成することを含む、方法。 14. The method of claim 13, further comprising: receiving an application programming interface (API) call from at least a first control plane application and forwarding the API call to at least a second control plane application. 1. A method comprising configuring a RIC of 1. 請求項14に記載の方法であって、前記第1の制御プレーンアプリケーション及び前記第2の制御プレーンアプリケーションは、同一のホストコンピュータ上で動作する、方法。 15. The method of claim 14, wherein the first control plane application and the second control plane application run on the same host computer. 請求項14に記載の方法であって、前記第1のRIC及び前記第1の制御プレーンアプリケーションは、第1のホストコンピュータ上で動作し、前記第2の制御プレーンアプリケーションは、第2のホストコンピュータ上で動作し、前記第1のRICを構成することは、第2のRICが前記第2の制御プレーンアプリケーションに転送するように、前記第1の制御プレーンアプリケーションから、前記第2のコンピュータ上で動作する前記第2のRICに前記APIコールを転送するように前記第1のRICを構成することを含む、構成することを含む、方法。 15. The method of claim 14, wherein the first RIC and the first control plane application run on a first host computer, and the second control plane application runs on a second host computer. configuring the first RIC from the first control plane application on the second computer such that the second RIC forwards to the second control plane application. A method comprising: configuring the first RIC to forward the API call to the second RIC for operation. 請求項14に記載の方法であって、前記第1の制御プレーンアプリケーション及び前記第2の制御プレーンアプリケーションは、前記分散RICを介して互いに通信するためにRIC APIの共通セットを使用する異なる2者のアプリケーション開発者によって開発される、方法。 15. The method of claim 14, wherein the first control plane application and the second control plane application are two different parties that use a common set of RIC APIs to communicate with each other via the distributed RIC. Developed by application developers. 請求項14に記載の方法であって、前記第1のRICを構成することは、前記第1のRICが前記第1の制御アプリケーションから前記第2の制御アプリケーションに前記APIコールを転送する場合に、前記APIコールに1つ以上のパラメータを追加するように前記第1のRICを構成することを含む、方法。 15. The method of claim 14, wherein configuring the first RIC comprises: when the first RIC forwards the API call from the first control application to the second control application. , configuring the first RIC to add one or more parameters to the API call. 請求項14に記載の方法であって、前記第1の制御プレーンアプリケーション及び前記第2の制御プレーンアプリケーションは、1つのホストコンピュータ上で動作する第1のマシン及び第2のマシン上で動作し、前記方法は、更に、前記分散RICと、前記第1の制御プレーンアプリケーション及び前記第2の制御プレーンアプリケーションとの間でAPIコールを受信及び転送するためのRIC SDKを各マシン上で構成する、方法。 15. The method of claim 14, wherein the first control plane application and the second control plane application run on a first machine and a second machine running on one host computer, The method further includes configuring on each machine a RIC SDK for receiving and forwarding API calls between the distributed RIC and the first control plane application and the second control plane application. . 請求項19に記載の方法であって、各マシン上で、前記RIC SDKは、前記制御プレーンアプリケーションのための前記RAN要素のセットへのネットワーク接続を確立するネットワーク接続プロセスのセットを含み、そのマシン上の前記制御プレーンアプリケーションが前記ネットワーク接続プロセスのセットを有することを差し控えることを可能にする、方法。 20. The method of claim 19, wherein on each machine, the RIC SDK includes a set of network connection processes that establish a network connection to the set of RAN elements for the control plane application, A method for enabling said control plane application above to refrain from having said set of network connectivity processes. 請求項20に記載の方法であって、各マシンの各RIC SDKの前記ネットワーク接続プロセスのセットは、前記マシンと、前記マシンの前記制御プレーンアプリケーションによって使用される前記RAN要素のセットとの間のネットワーク接続を確立及び維持し、前記制御プレーンアプリケーションのための前記RAN要素のセットとの間のデータパケット伝送を制御する、方法。 21. The method of claim 20, wherein the set of network connection processes for each RIC SDK of each machine provides a link between the machine and the set of RAN elements used by the control plane application of the machine. A method for establishing and maintaining network connectivity and controlling data packet transmission to and from the set of RAN elements for the control plane application. 請求項19に記載の方法であって、各マシン上の前記制御プレーンアプリケーションは、前記RAN SDKが低レベルAPI(アプリケーションプログラムインタフェース)コールに変換する高レベルAPIコールを介して、前記RAN要素のセットと通信し、前記低レベルAPIコールの少なくともサブセットは標準化策定団体によって規定される、方法。 20. The method of claim 19, wherein the control plane application on each machine accesses the set of RAN elements via high-level API calls that the RAN SDK translates into low-level API (application program interface) calls. and wherein at least a subset of the low-level API calls are defined by a standards-setting body. 請求項19に記載の方法であって、各マシン上の前記制御プレーンアプリケーションは、前記RAN SDKが低レベルAPI(アプリケーションプログラムインタフェース)コールに変換する高レベルAPIコールを介して、前記RAN要素のセットと通信し、前記高レベルAPIコールは高レベルプログラミング言語で作成され、一方、前記低レベルAPIコールは、ネットワーク接続を確立及び維持し、これらの接続を介してデータパケットを通過させる低レベルコールを含む、方法。 20. The method of claim 19, wherein the control plane application on each machine accesses the set of RAN elements via high-level API calls that the RAN SDK translates into low-level API (application program interface) calls. , and the high-level API calls are written in a high-level programming language, while the low-level API calls make low-level calls that establish and maintain network connections and pass data packets over these connections. Including, methods. 制御プレーンアプリケーションが無線アクセスネットワーク(RAN)の共有データレイヤ(SDL)ストレージを使用する方法であって、
ホストコンピュータ上で動作する前記制御プレーンアプリケーションをデプロイすることと、
前記ホストコンピュータ上にSDLキャッシュをデプロイすることと、
前記SDLキャッシュを使用して、前記制御プレーンアプリケーションのSDLストレージアクセス要求の少なくともサブセットを処理することと、を含む方法。
A method for a control plane application to use shared data layer (SDL) storage in a radio access network (RAN), the method comprising:
deploying the control plane application running on a host computer;
deploying an SDL cache on the host computer;
using the SDL cache to process at least a subset of SDL storage access requests of the control plane application.
請求項24に記載の方法であって、前記制御プレーンアプリケーションは、前記ホストコンピュータ上で動作するマシン上で動作し、前記SDLキャッシュは前記マシン上で動作する、方法。 25. The method of claim 24, wherein the control plane application runs on a machine running on the host computer, and the SDL cache runs on the machine. 請求項24に記載の方法であって、前記制御プレーンアプリケーションは、前記ホストコンピュータ上で動作するマシン上で動作し、前記SDLキャッシュは前記ホストコンピュータ上で動作する、方法。 25. The method of claim 24, wherein the control plane application runs on a machine running on the host computer, and the SDL cache runs on the host computer. 請求項24に記載の方法であって、ホストコンピュータ上で動作し、前記SDLキャッシュに格納されたデータを前記SDLストレージに格納されたデータと同期させる、RANインテリジェントコントローラ(RIC)をデプロイすること、を更に含む方法。 25. The method of claim 24, deploying a RAN intelligent controller (RIC) operating on a host computer to synchronize data stored in the SDL cache with data stored in the SDL storage. A method further comprising: 請求項27に記載の方法であって、前記RICをデプロイすることは、他のホストコンピュータ上で動作する他のRICとともに分散RICを実施する前記RICをデプロイすることを含む、方法。 28. The method of claim 27, wherein deploying the RIC includes deploying the RIC implementing a distributed RIC with other RICs running on other host computers. 請求項28に記載の方法であって、前記SDLストレージは、前記制御プレーンアプリケーションが動作する前記ホストコンピュータとは異なるホストコンピュータ上で動作する、方法。 29. The method of claim 28, wherein the SDL storage runs on a different host computer than the host computer on which the control plane application runs. 請求項28に記載の方法であって、前記SDLストレージの少なくとも一部は、前記制御プレーンアプリケーションが動作する前記ホストコンピュータ上で動作する、方法。 29. The method of claim 28, wherein at least a portion of the SDL storage runs on the host computer on which the control plane application runs. 請求項24に記載の方法であって、前記制御プレーンアプリケーションは、前記ホストコンピュータ上で動作するマシン上で動作し、前記方法は、更に、前記制御プレーンアプリケーションからのストレージアクセス要求を処理するように、前記マシン上でRIC SDKを構成すること、を含む方法。 25. The method of claim 24, wherein the control plane application runs on a machine running on the host computer, and the method further comprises processing storage access requests from the control plane application. , configuring a RIC SDK on the machine. 請求項31に記載の方法であって、前記SDLキャッシュは、前記RIC SDKの一部である、方法。 32. The method of claim 31, wherein the SDL cache is part of the RIC SDK. 請求項32に記載の方法であって、
前記RICをデプロイすることは、他のホストコンピュータ上で動作する他のRICとともに分散RICを実施する前記RICをデプロイすることを含み、
前記SDLストレージは、前記分散RICの一部である、方法。
33. The method according to claim 32,
Deploying the RIC includes deploying the RIC implementing a distributed RIC with other RICs running on other host computers;
The method, wherein the SDL storage is part of the distributed RIC.
請求項33に記載の方法であって、前記RIC SDKは、前記SDLキャッシュを介したSDLアクセス要求を処理することができない場合に、前記制御プレーンアプリケーションからの前記SDLアクセス要求を前記SDLキャッシュに転送する、方法。 34. The method of claim 33, wherein the RIC SDK forwards the SDL access request from the control plane application to the SDL cache if the RIC SDK is unable to process the SDL access request via the SDL cache. how to. 請求項34に記載の方法であって、前記SDLキャッシュが、前記制御プレーンアプリケーションによって要求されたデータを格納していない場合、前記RIC SDKは、前記SDLキャッシュを介してSDLアクセス要求を処理することができない、方法。 35. The method of claim 34, wherein if the SDL cache does not store data requested by the control plane application, the RIC SDK processes an SDL access request via the SDL cache. There is no way.
JP2023540965A 2021-03-05 2022-01-21 RIC SDK Pending JP2024513628A (en)

Applications Claiming Priority (21)

Application Number Priority Date Filing Date Title
US202163157600P 2021-03-05 2021-03-05
US202163157351P 2021-03-05 2021-03-05
US63/157,600 2021-03-05
US63/157,351 2021-03-05
US202163176859P 2021-04-19 2021-04-19
US63/176,859 2021-04-19
US202163180627P 2021-04-27 2021-04-27
US63/180,627 2021-04-27
US17/376,817 2021-07-15
US17/376,801 2021-07-15
US17/376,758 US20220283839A1 (en) 2021-03-05 2021-07-15 Direct access to hardware accelerator in an o-ran system
US17/376,817 US20220286915A1 (en) 2021-03-05 2021-07-15 Distributed ric
US17/376,835 US20220286939A1 (en) 2021-03-05 2021-07-15 Sdl cache for o-ran
US17/376,835 2021-07-15
US17/376,801 US20220286914A1 (en) 2021-03-05 2021-07-15 Ric sdk
US17/376,758 2021-07-15
US202163225519P 2021-07-25 2021-07-25
US63/225,519 2021-07-25
US17/384,777 US11831517B2 (en) 2021-03-05 2021-07-25 Data IO and service on different pods of a RIC
US17/384,777 2021-07-25
PCT/US2022/013427 WO2022186912A1 (en) 2021-03-05 2022-01-21 Ric sdk

Publications (1)

Publication Number Publication Date
JP2024513628A true JP2024513628A (en) 2024-03-27

Family

ID=80786637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023540965A Pending JP2024513628A (en) 2021-03-05 2022-01-21 RIC SDK

Country Status (5)

Country Link
EP (1) EP4268437A1 (en)
JP (1) JP2024513628A (en)
AU (1) AU2022229086A1 (en)
CA (1) CA3206693A1 (en)
WO (1) WO2022186912A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836551B2 (en) 2021-03-05 2023-12-05 Vmware, Inc. Active and standby RICs
US20220286914A1 (en) 2021-03-05 2022-09-08 Vmware, Inc. Ric sdk
US11838176B1 (en) 2022-12-19 2023-12-05 Vmware, Inc. Provisioning and deploying RAN applications in a RAN system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11026095B2 (en) * 2019-07-31 2021-06-01 At&T Intellectual Property I, L.P. Real-time network provisioning for distributed virtual zones of collaborative mobile devices for 5G or other next generation network

Also Published As

Publication number Publication date
AU2022229086A1 (en) 2023-09-28
EP4268437A1 (en) 2023-11-01
WO2022186912A1 (en) 2022-09-09
CA3206693A1 (en) 2022-09-09

Similar Documents

Publication Publication Date Title
US10742522B2 (en) Creation and modification of shareable slice instances
US20220014963A1 (en) Reinforcement learning for multi-access traffic management
US11146965B2 (en) Architecture for network slice deployment based on network resource utilization
US11704148B2 (en) Datapath load distribution for a RIC
US20190158364A1 (en) Method and Apparatus for the Specification of a Network Slice Instance and Underlying Information Model
US11836551B2 (en) Active and standby RICs
CN114567875A (en) Techniques for radio equipment network space security and multiple radio interface testing
JP2024513628A (en) RIC SDK
US20230069604A1 (en) Use of crds as descriptors for applications, application components, deployments, clouds, ai/ml models, and rte in an o-ran system
US11184778B2 (en) Mobile service chain placement
CN111406437B (en) Multipath data communication
US20180123896A1 (en) Systems and methods for hierarchical network management
CN117280673A (en) Wireless access network intelligent controller (RIC) Software Development Kit (SDK)
WO2019024514A1 (en) Virtual anchoring in anchorless mobile networks
US20230354147A1 (en) Connectionless mobility management for hybrid networks using relativistic routing protocol
US11930093B2 (en) Inventory management for data transport connections in virtualized environment
US11968566B2 (en) Systems and methods for inter-entity system configuration management using distributed ledger system
US11888701B1 (en) Self-healing and resiliency in radio-based networks using a community model
US20220369202A1 (en) Facilitation of service integrity detection and self healing to support 5g or other next generation networks
US20230022409A1 (en) Methods, systems, articles of manufacture and apparatus to manage a self-adaptive heterogeneous emergency network (shen)
US20230362737A1 (en) Systems and methods for inter-entity system configuration management using distributed ledger system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230905

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230905

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20231128

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20231205