JP2024513628A - RIC SDK - Google Patents
RIC SDK Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 158
- 230000008569 process Effects 0.000 claims abstract description 94
- 238000012545 processing Methods 0.000 claims abstract description 54
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 94
- 238000004891 communication Methods 0.000 claims description 47
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 2
- 230000000903 blocking effect Effects 0.000 abstract description 13
- 230000003111 delayed effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 41
- 239000003795 chemical substances by application Substances 0.000 description 27
- 101100194706 Mus musculus Arhgap32 gene Proteins 0.000 description 22
- 101100194707 Xenopus laevis arhgap32 gene Proteins 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 22
- 230000004044 response Effects 0.000 description 22
- 238000007726 management method Methods 0.000 description 19
- 239000010410 layer Substances 0.000 description 16
- 238000013500 data storage Methods 0.000 description 15
- 101150069304 ASN1 gene Proteins 0.000 description 13
- 238000005457 optimization Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 230000002085 persistent effect Effects 0.000 description 7
- 239000000700 radioactive tracer Substances 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 239000013256 coordination polymer Substances 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 101000878581 Aplysia californica Feeding circuit activating peptides Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/08—Access point devices
- H04W88/085—Access point devices with remote components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/12—Access 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.
本発明の以下の詳細な説明では、本発明の多数の詳細、例及び実施形態を記載し説明する。しかしながら、本発明は、説明された実施形態に限定されず、本発明は、説明された特定の詳細および例のいくつか無しに実施されてもよいことが、当業者には明らかであり、明確であろう。 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-
標準に定義されるように、いくつかの実施形態のSMO110は、SMOがRIC115、管理対象機能120-130、及びO-Cloud140にオープンインタフェース150を介して接続し、管理することを可能にする統合ファブリックを含む。これらの要素とは異なり、O-RU135は、いくつかの実施形態では、SMO110によって管理されず、破線160によって示されるように、O-DU130によって代わりに管理される。いくつかの実施形態では、O-RU135は、無線周波数を処理し、O-DU130に送信する。
As defined in the standard, the
いくつかの実施形態では、管理対象機能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-
ニアリアルタイムRIC115は、いくつかの実施形態では、管理対象機能120-130を制御するために、インタフェース155を介したデータ収集及び通信を利用するいくつかの機能の論理的アグリゲーションである。いくつかの実施形態では、非リアルタイムRIC105は、機械学習及びモデル訓練を使用して、管理対象機能120-130を管理及び最適化する。これらの実施形態のいくつかにおけるニアRT RICは、機械学習も使用する。
Near real-
いくつかの実施形態では、O-Cloud140は、RIC115及び管理対象機能120-130によって使用される仮想ネットワーク機能(VNF)を作成し、ホストする役割を果たす。いくつかの実施形態では、DUは、ユーザスケジューリングのスロット毎の判定を担当し、MAC制御アシスト及びユーザレベルのトレーシングを行うRANスケジューラを含む。クラウドで利用可能なコンピューティング能力を増加させるために(すなわち、典型的にRAN機能を実行する基地局と比較して)、RICは、1つ以上のパブリック及び/又はプライベートクラウドデータセンタで実施され、クラウドで改良されたクラウド定義RANスケジューラを実施し、それにより、これらのMAC制御アシスト及びユーザレベルトレーシング機能をDUからRICにオフロードする。いくつかの実施形態におけるインタフェース155は、RANがRICにおいて機能への入力を提供することを可能にし、少なくともいくつかの実施形態では、RICにおいてこれらの機能によって計算された出力を受信する。
In some embodiments, O-
図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-
いくつかの実施形態において、MAC制御アシスタ220は、(1)UL SRSチャネル信号受信に基づくユーザ機器(UE)特定ビームフォーミング重み計算、(2) UE無線周波数(RF)条件予測、及び(3)UE特定ビームに基づくMACスケジューラに対するマルチユーザ、マルチ入力、マルチ出力(MU-MIMO)ペアリング提案などの様々な機能を含むことができる。これらの各機能について、いくつかの実施形態は、レポートインタフェース(DUからRICへの関数の入力データを提供する)と、制御インタフェース(RICからDUへの関数の出力データを提供する)を公開する。
In some embodiments, the
ユーザレベルトレーサ222は、いくつかの実施形態では、ユーザ構成及びトラフィック性能に関連するL1/L2/L3レベル情報を生成する。このトレースデータは、MACスケジューラ、パラメータ設定など、さまざまな制御アルゴリズムへの入力として使用できる。ユーザレベルトレーサ222は、(i)セル内のユーザ動作を追跡することができるトレース動作、(ii)ユーザRF条件の追跡、(iii)異なるレイヤ(MAC、無線リンク制御(RLC)、パケットデータコンバージェンスプロトコル(PDCP))内のユーザデータトラフィック性能の追跡、及び(iv)ユーザRFリソース消費を含むことができるトレース動作を含むことができる。
図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
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
これらのトレース動作のために、いくつかの実施形態は、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
図に示すように、サービスのセットは、コンフリクトマイグレーションサービス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
いくつかの実施形態では、フレームワーク500の目的は、演算集中型のニアリアルタイムの機能をオフロードし、結果をO-DUに戻すことである(例えば、E2インタフェースを介してE2ノード520に提供する)。いくつかの実施形態では、結果は、MACレイヤにおけるリアルタイム判定を支援又は強化するために使用することができる。MAC制御アシストフレームワークの3つのユースケース例、MAC制御アシスタの異なるコンポーネントに固有の各サンプル(例えば、UE特定BFWC、UE RF条件プレディクタ、MU-MIMOペアリングサジェスタ)、及びユーザレベルトレーサの1つのユースケース例について、以下に説明する。
In some embodiments, the purpose of
第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,
いくつかの実施形態では、出力メトリックを生成するためのアルゴリズムは、ユーザに到達するために最適ビームフォーミングの重みを評価する。一部の実施形態は、チャネルモデルに基づく従来の信号処理アルゴリズムを使用する。代わりに、又は、組み合わせて、生データ入力を利用する機械学習ベースのアルゴリズムが使用され、これは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-
第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,
いくつかの実施形態では、この第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,
このユースケースのためのアプリアルゴリズムは、いくつかの実施形態では、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が低レベルAPI625に変換する高レベルAPI620を介してRAN要素のセットと通信する。いくつかの実施形態では、低レベルAPIコール625の少なくともサブセットは、標準策定団体によって規定される。また、いくつかの実施形態では、高レベルAPI620は、高レベルプログラミング言語(例えば、C++)で作成され、低レベルAPIコールは、ネットワーク接続を確立及び維持し、これらの接続を介してデータパケットを通過する低レベルコールを含む。
Control plane applications on each machine communicate with a set of RAN elements via a high-
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
組み合わせ又は代替として、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
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
図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
第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
図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
図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
図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
時間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
また、図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
使用可能化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
一部の実施形態における使用可能化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
制御プレーンアプリケーション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
いくつかの実施形態は、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
いくつかの実施形態では、ポッドは、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
ハードウェアアクセラレータと通信するために、いくつかの実施形態の各アプリケーション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
図15は、いくつかの実施形態の方法を実施する処理1500を示す。処理1500は、CP又はエッジアプリケーションに命令するO-RANコンポーネントに応答して実行され、アプリケーションがそのホストコンピュータのハードウェアアクセラレータを使用することを要求する動作を実行する。この処理1500は、E2ノード1650から受信したデータに基づいて動作を実行するアプリケーション1402を示す図16を参照して以下に説明される。
FIG. 15 illustrates a
図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,
アプリケーション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
ハードウェアアクセラレータ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
アプリケーション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
他の実施形態では、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
ハードウェアアクセラレータ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
図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
仮想マシンのアクセラレータドライバ1812は、ハイパーバイザ1806のハードウェアアクセラレータドライバ1816をバイパスする。いくつかの実施形態では、ハイパーバイザ1806は、ホストコンピュータ1810のオペレーティングシステム(図示せず)上で動作する。これらの実施形態では、仮想マシンのアクセラレータドライバ1812のハードウェアアクセラレータ1850への直接アクセスは、オペレーティングシステムのハードウェアアクセラレータドライバをバイパスする。
The virtual machine's
ハードウェアアクセラレータ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
一般的な当業者であれば、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
上記のハードウェアアクセラレータへの直接パススルーアクセスは、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,
処理1900は、パススルーアクセスに関する記述に基づいて、アプリケーションに関連する特定のハードウェアアクセラレータドライバからハードウェアアクセラレータにコールを渡すためにホストコンピュータ上で動作するプログラムを、特定のハードウェアアクセラレータドライバとハードウェアアクセラレータとの間でホストコンピュータ上で動作する1つ以上のドライバのセットを介在させることなく、構成するインストールファイルのセットを(1910において)使用する。この構成により、アプリケーションは、アプリケーションの動作を実行するようにハードウェアアクセラレータに指示し、動作の結果をハードウェアアクセラレータから受信する場合に、介在するドライバのセットをバイパスすることができる。
いくつかの実施形態では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
選択及び構成を実行する前に、いくつかの実施形態のデプロイプロセスは、いくつかのホストコンピュータからホストコンピュータを、アプリケーションをインストールすべきコンピュータとして識別する。いくつかの実施形態の処理は、アプリケーションがハードウェアアクセラレータを必要とすることを判定し、各々がハードウェアアクセラレータを構成するホストコンピュータのセットを識別し、ホストコンピュータのセットからホストコンピュータを選択することによって、ホストコンピュータを識別する。このプロセスは、(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
各ポッドのアクセラレータドライバ2012は、仮想アクセラレータ2052又は2054への直接アクセスを有し、このアクセスは、VM2006及びハイパーバイザ2008のアクセラレータドライバ2014及び2016をバイパスする。いくつかの実施形態では、ハイパーバイザ2008は、ホストコンピュータ2010のオペレーティングシステム(図示せず)上で動作する。これらの実施形態では、仮想アクセラレータ2052又は2054への各ポッドのアクセラレータドライバ2012の直接アクセスも、オペレーティングシステムのハードウェアアクセラレータドライバをバイパスする。
Each pod's
説明するように、仮想アクセラレータ2052及び2054は、ハイパーバイザ2008のアクセラレータマネージャ2060を介してハードウェアアクセラレータ2050と通信する。アクセラレータマネージャ2060は、仮想アクセラレータ2052及び2054(並びにそれらに関連するアプリケーション2002)が1つのハードウェアアクセラレータ2050を共有することを可能にし、このアクセラレータ2050と共に、それぞれのアプリケーション及びポッド2002及び2004専用であるかのように動作する。このようなハードウェアアクセラレータ2050の例には、グラフィカルプロセッシングユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、及び構造化ASICが含まれる。
As described, the
仮想アクセラレータ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
図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
低遅延のニア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
3つのRICポッド2105、2110、及び2115はそれぞれ、1つ以上のxAppポッド2120と通信する。いくつかの実施形態において、各ポッド(2105、2110、2115又は2120)は、ポッドの固有のニーズ(すなわち、各ポッドによって実行されるデータパス、サービス及び記憶動作)に従って、ハードウェアリソース(例えば、CPU、メモリ、ディスクストレージ、ネットワークIOなど)が割り当てられる。また、一部の実施形態では、各ポッドには、各ポッドの固有のニーズに一致する独自の高可用性及びライフサイクル更新設定がある。
Each of the three
サービスポッド2110は、いくつかの実施形態において、xAppオンボーディング、登録、FCAPS(障害、構成、アカウンティング、性能、セキュリティ)、及びその他のサービスを実行する。例えば、いくつかの実施形態では、サービスポッド2110は、ニアRT RICの管理サービス554を提供し、О1終端580及びA1終端582をSMO及びその関連する非RT RICに実行する。いくつかの実施形態では、これらのコンポーネント554、580、及び582のそれぞれは、サービスポッド2110内の別個のコンテナ上で動作し、他の実施形態では、これらのコンポーネントの2つ以上は、サービスポッド2110内の1つのコンテナ上で動作する。
上述のように、いくつかの実施形態では、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及びその機能に関する通知を受信するように登録することができる。
xApp用のサービスポッド2110によって実行されるFCAP動作の例には、アラートを発生させるために分析するCPU及びメモリ使用率を収集するメトリック、xAppsを設定又は再設定するための構成動作、xAppsからメトリックを収集してxAppのパフォーマンスを定量化するために分析するためにアカウンティング及びパフォーマンス動作に必要なデータを収集するためのアカウンティング動作が含まれる。
Examples of FCAP operations performed by the
その他の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
SDLポッド2115は、SDL560及びそれに関連するデータベース570を実施する。以下にさらに説明するように、いくつかの実施形態のSDLポッド2115は、また、1つ以上のサービスコンテナを実行して、SDLに記憶されたデータ上で1つ以上の前処理又は後処理サービスを実行する。サービスポッドと同様に、いくつかの実施形態におけるSDLポッドは、他のポッドとは独立してスケーリング(例えば、複製)し、バックアップすることができる。
データパスポッド2105には、いくつかの重要なニアRT RICコンポーネントが含まれている。これらは、E2終端584、コンフリクト緩和550、アプリケーションサブスクリプション管理552、及びRIC SDKインタフェース2150である。以下にさらに説明するように、いくつかの実施形態におけるこれらのデータパスサービスの一部又は全部は、データパスポッドのデータパススレッド及び制御スレッドに組み込まれる。他の実施形態では、データパスサービスは、データIOスレッド、複数のデータ処理スレッド、及び制御スレッドに組み込まれる。
スレッドは、コンピュータ上で実行されるプロセスのコンポーネントである。プロセスは、アプリケーションであっても、より大きなアプリケーションの一部であってもかまわない。スレッドは、プログラムされた命令のシーケンスであり、プロセスの他のスレッドから独立して管理することができる。プロセスに割り当てられたメモリを共有しながら、特定のプロセスの複数のスレッドを同時に実行できる(マルチコアプロセッサのマルチスレッド機能を使用するなど)。マルチスレッドは、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
上述したように、ポッド2105、2110及び2115は、高速ポッドインターフェイスを介して通信する。いくつかの実施形態では、ポッドtoポッド接続は、SCTP(ストリーミング制御伝送プロトコル)又はさらに高速な共有メモリ(shmem)接続を介して確立される。いくつかの実施形態では、共有メモリ接続は、同じホストコンピュータ上で実行されるポッドの対の間でのみ使用される。このようなポッドのペアの例としては、(1)データパスポッドとSDLポッド、(2)データパスポッドとサービスポッド、(3)サービスポッドとSDLポッド、(4)xAppポッドとデータパスポッド、(5)xAppポッドとSDLポッドなどがある。共有メモリはロックレスであり、いくつかの実施形態ではそれへのアクセスは非ブロッキングである。他の実施形態では、サービスポッド2110と他のポッド2105、#115、及び2120との間の低速インタフェース(例えば、gRPC)をサービスポッドとして使用するが、他のポッドほど重要ではない。
As mentioned above,
いくつかの実施形態におけるニア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.,
例えば、図23は、2つのxAppポッド2320aと共にホストコンピュータ2300上で実行されるデータパスポッド2105及びサービスポッド2110を示し、一方SDLポッド2115は2つのxAppポッド2320bと共にホストコンピュータ2310上で動作する。いくつかの実施形態では、ハードウェアアクセラレータを必要とするポッドは、そのようなハードウェアリソースを有するホストコンピュータ上に置かれ、これらのアクセラレータを必要としないポッドは、上述のように、これらのアクセラレータを持たないホストコンピュータ上に置かれる。いくつかの実施形態では、SDLポッド及びxAppポッドはハードウェアアクセラレータを使用し、データパスポッド及びサービスポッドは使用しない。ハードウェアアクセラレータから恩恵を受けることができるポッドの様々な例、及びこれらのアクセラレータへのバイパスについては、上記及び以下でさらに説明する。
For example, FIG. 23 shows a
また、いくつかのニア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,
データパスポッド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
他の実施形態におけるニア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
いくつかの実施形態において、LCMポッド2405は、異なるポッドをアップグレードするために異なるアップグレード方法を使用する。例えば、いくつかの実施形態のLCMポッドは、SDLデータストレージを複製し、SDLのヒットレスアップグレードを実行するために、アクティブデータストアから別のスタンバイデータストアにシームレスに移行する。一方、データパスポッドをアップグレードするには、LCMポッドの手順がより複雑になる。これは、アクティブデータパスポッドとスタンバイデータパスポッドがE2ノードと各xAppのデュアルホーム接続に設定され、アクティブデータパスポッドがスタンバイデータパスとの状態をレプリケートするように設定されるためである。
In some embodiments,
図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
データパススレッド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
いくつかの実施形態では、これらのスレッドのそれぞれは、これらの他のコンポーネントと通信する程度に、このアーキテクチャの他のコンポーネント(例えば、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
いくつかの実施形態における制御スレッド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
データパススレッド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
データパススレッド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
図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
また、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
データ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
データ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
各DPTスレッド2615は、(1)メッセージのデコード及びエンコード動作(例えば、メッセージの暗号化及び復号化動作)、(2)メッセージの検証動作、(3)シーケンスの検証動作、(4)E2ノード及びxApp要求及びサブスクリプションの状態を追跡するための状態マシンの維持、(5)コンフリクト管理の実行、(6)制御スレッド2610及びDPT2615との制御リング通信、及び(7)処理するメッセージに関する統計、ログ及びトレースデータの生成、の各動作を実行する。
Each
図27は、いくつかの実施形態において、データパススレッドが、xAppからのサブスクリプション要求を処理するために実行する処理2700を示す。図に示すように、DPTがデータIOスレッドからxAppサブスクリプション要求を(2705で)受信すると、処理が開始される。サブスクリプション要求は、特定のE2ノードが維持する特定のデータタプルのセット(例えば、特定の動作パラメータのセット又は他のパラメータ)について、特定のE2ノードに向けられる。
FIG. 27 illustrates a
2710において、処理2700は、特定のデータタプルのセットを受信するために、特定のE2ノードに既にサブスクライブしているか否かを判定する。これは、DPTが以前に特定のE2ノードを1つ以上のサブスクリプション要求を送信したときに、特定のデータタプルのセット、又は特定のデータタプルのセットを含むより大きなデータタプルを個別に、又は集合的に要求した場合である。
At 2710,
処理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,
図28は、処理2800を示し、データIOスレッド2605及びDPT2615が、実施形態によっては、1つ以上のxAppが受信すべきE2ノードからのデータメッセージを処理するために実行する。説明するように、処理2800は、データメッセージが、E2ノードとのSCTP接続を介してデータパスポッドによって受信されたとき(2805において)に開始する。2810において、データIOスレッド2605は、E2ノードのIDからハッシュ値を生成する。次に、(2815で)ハッシュ値をルックアップテーブルへのインデックスとして使用し、E2ノードに関連付けられたメッセージの処理に割り当てられたDPTを識別する。
FIG. 28 illustrates a
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
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
図29は、処理2900を示しており、データIOスレッド2605及びDPT2615は、いくつかの実施形態において、E2ノードに送られるべきxAppからのデータメッセージを処理するために実行する。説明するように、処理2900は、データメッセージがSCTP接続又はxApp RIC SDKとの共有メモリ通信を介してデータパスポッドによって受信されると(2905で)開始する。このメッセージは、表1を参照して以下に説明するカプセル化されたフォーマットである。このメッセージには、このメッセージを受信するE2ノードを識別するE2ノード識別子が含まれる。
FIG. 29 shows a
2910において、データIOスレッド2605は、E2ノードのIDからハッシュ値を生成する。次に、(2915で)ハッシュ値をルックアップテーブルへのインデックスとして使用し、E2ノードに関連付けられたメッセージの処理に割り当てられたDPTを識別する。2920で、データIOスレッドは、データIOスレッドから識別されたDPTにメッセージを渡すためのcbufリング2620に沿って、受信されたデータメッセージを識別されたDPT(すなわち、2915で識別されたDPT)に渡す。
At 2910,
次に、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
いくつかの実施形態において、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,
場合によっては、第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,
いくつかの実施形態では、サービスポッド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
図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,
次に、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
次に、3020において、処理3000は、LUT内に記録を作成し、この記録において、Nビットのハッシュ値と、特定のE2ノードについて3015で選択された特定のDPTの識別子とを関連付ける。いくつかの実施形態では、Nビットのハッシュ値は、特定のE2ノードのIDを指定する記録を識別するLUTへのインデックスである。3020において、処理3000はまた、このレコードの状態をアクティブとして指定する。
Next, at 3020, the
後続の時点で、データ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,
図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
これらの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,
図に示すように、各E2ノード3118は、アクティブ及びスタンバイRIC3102及び3104のデータパススレッド3107とデュアルホームSCTP接続を有する。同様に、各xAppポッド3120には、アクティブ及びスタンバイRIC3102及び3104のデータパススレッド3107とのデュアルホームSCTP接続がある。デュアルホーミング接続は、SCTPが提供する機能である。第1のコンポーネントがデュアルホーム接続を介してコンポーネントのアクティブ/スタンバイペアに接続すると、第1のコンポーネントは、アクティブコンポーネントに障害が発生したときに自動的にスタンバイコンポーネントを使用するように切り替えることができる。したがって、デュアルホームSCTPコネクションを使用すると、アクティブなRIC3102又はそのデータパスポッドに障害が発生したときに、各E2ノード又はxAppポッドをスタンバイRIC3104のデータパススレッド3107に切り替えることができる。
As shown, each
説明するように、アクティブ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
図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
また、いくつかの実施形態では、ニア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
いくつかの実施形態において、ニアRT RIC3200は、メッセージをxAppに送信する前にE2APメッセージだけをデコードするか、又はE2SMペイロードとともにE2APヘッダ全体をデコードするように、ケースバイケースで構成することができる。場合によっては、ニアRT RICがE2APヘッダ全体を送信し、それ以外の場合は、このヘッダの一部のみを送信する。いくつかの実施形態のRIC E2APメッセージ処理では、すべてのフィールドはネットワークバイトオーダーであり、ニアRT RIC3200は可能な限りそのオーダーで動作する。フィールドを表示するために、いくつかの実施形態は、データをホスト順に変換することができる。いくつかの実施形態において、ニアRT RIC3200は、E2SMペイロードを見ることはないが、他の実施形態においては、それは、(例えば、重複したサブスクリプション誤差を避けるために)行われる。
In some embodiments, the
いくつかの実施形態において、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フィールドは使用されず、他の実施形態で使用される。
ニア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
図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
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
ニア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メッセージペイロードとして送信する。
ニア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に示す。
ニア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
SDLデータパスエージェント3414は、SDLポッドがデータパスポッド3450の制御スレッド及びデータパススレッドに公開するデータパスインタフェースである。SDLデータパスエージェント3414は、SDLのためにこれらのエンティティからの通信を処理し、これらのデータパスエンティティのためにSDLデータストア3420への読み出し及び書き込みを実行する。いくつかの実施形態では、SDLデータパスエージェントは、SCTP又は共有メモリライブラリのいずれかを使用してデータパスポッド3450と通信するように構成することができる。
いくつかの実施形態において、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
SDLエージェント3414及び3417は、RIC SDK及びデータパスポッドからのイベントサブスクリプションと通知を処理する。これはE2APサブスクリプション管理とは別のものであるが、概念的には似ている。たとえば、SDLのこのサブスクリプションサービスを介して、xAppは、キー又はレポートの周波数を介して一部のデータに対する関心を指定する。その後、RIC SDKエージェント3417は、サブスクリプションに基づいてこのxAppに定期的な更新を提供する。また、データを暗号化及び復号化することによって、いくつかの実施形態においてセキュリティサービスを提供する。
データプリプロセッサ及びポストプロセッサ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
いくつかの実施形態では、データポストプロセッサ3418は、データがSDLデータストア3420から読み出されるときにインラインで実行される。あるいは、あるいは一部の実施形態におけるポストプロセッサ3418は、SDLデータストレージ3420に記憶されたデータ上でバックグラウンドで動作するように構成することができる(例えば、このデータストレージからデータを検索し、このデータに対して何らかの動作を行い、結果をデータストレージに格納する)。いくつかの実施形態のデータプロセッサは、E2APメッセージのE2SMペイロードをエンコード及び/又はデコードする。これは、データパスポッド がデコード及び格納するためにASN1文字列をSDLに渡すことができるので利点がある。上述したように、いくつかの実施形態におけるRIC SDKは、E2SMエンコード/デコードサービスを提供するように構成することもできる。
In some embodiments,
いくつかの実施形態においてデータプロセッサ3418が実行するポストプロセッサ動作の別の例は、機械訓練された動作である。いくつかの実施形態では、ポストプロセッサ3418は、様々なxApp及び/又は様々なポッド(例えば、データパスポッド)によって記憶された様々なデータタプルを収集し、これらのデータタプルを機械学習ネットワーク(例えば、機械学習によって訓練されたニューラルネットワーク)を介して渡す。いくつかの実施形態では、ポストプロセッサ3418は、その機械訓練ネットワークを実行するために、SDLのホストコンピュータの1つ以上のハードウェアアクセラレータ(例えば、1つ以上のGPU)を使用して、その動作を実行する。ポストプロセッサ3418は、図14-20を参照して上述したバイパスアプローチを通じてハードウェアアクセラレータにアクセスする。
Another example of a post-processor operation that
ポストプロセッサ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データストア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
一部の実施形態はまた、ポストプロセッサ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
SDLデータストア3420は、インメモリデータベースである。いくつかの実施形態において、メモリデータベース内のメモリは、コンピュータシステムメモリ(例えば、そのRAMを含むホストコンピュータ不揮発性メモリ)にロードされ、そこから不足するデータベースである。このようなデータベースの例の1つがRedisである。いくつかの実施形態では、データストレージのサイズは、探索及び記憶待ち時間を最小にするために選択される。既存のデータストレージがその所望の最大サイズに達すると、いくつかの実施形態は、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
図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
いくつかの実施形態において、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
いくつかの実施形態における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.
バス3505は、集合的に、電子システム3500の多数の内部デバイスを通信的に接続する全てのシステムバス、周辺装置バス、及びチップセットバスを表す。例えば、バス3505は、処理ユニット3510を、読み出し専用メモリ3530、システムメモリ3525及び永続的ストレージデバイス3535と通信可能に接続する。
これらの種々のメモリユニットから、処理ユニット3510は、本発明の処理を実行するために、実行する命令及び処理するデータを検索する。処理ユニット3510は、様々な実施形態では、単一プロセッサ又はマルチコアプロセッサであってもよい。
From these various memory units,
読み出し専用メモリ3530は、処理ユニット3510及び電子システム3500の他のモジュールによって必要とされる静的データ及び命令を格納する。一方、永続的記憶デバイス3535は、読み書き可能なメモリデバイスである。このデバイス3535は、電子システム3500がオフのときでも命令やデータを格納する不揮発性メモリユニットである。本発明の一部の実施形態は、永続的ストレージデバイス3535として大容量ストレージデバイス(磁気又は光ディスク及びその対応するディスクドライブなど)を使用する。
The read-
他の実施形態では、着脱式ストレージデバイス(フロッピーディスク、フラッシュドライブ等)を永続的ストレージデバイス3535として使用する。永続的ストレージデバイス3535と同様に、システムメモリ3525は読み書き可能なメモリデバイスである。しかし、ストレージデバイス3535とは異なり、システムメモリ3525は、ランダムアクセスメモリなどの揮発性の読み書き可能メモリである。システムメモリ3525は、プロセッサが実行時に必要とする命令及びデータの一部を格納する。いくつかの実施形態では、本発明の処理は、システムメモリ3525、永続的ストレージデバイス3535、及び/又は読み出し専用メモリ3530に格納される。これらの種々のメモリユニットから、処理ユニット3510は、いくつかの実施形態の処理を実行するために、実行する命令及び処理するデータを検索する。
Other embodiments use a removable storage device (floppy disk, flash drive, etc.) as the
バス3505はまた、入出力デバイス3540及び3545に接続する。入力デバイス3540は、ユーザが情報を通信し、コマンドを電子システム3500に選択することを可能にする。入力デバイス3540は、英数字キーボード及びポインティングデバイス(「カーソル制御デバイス」とも呼ばれる)を含む。出力デバイス3545は、電子システム3500によって生成された画像を表示する。出力デバイス3545は、カソード線管(CRT)又は液晶ディスプレイ(LCD)のようなプリンタ及びディスプレイデバイスを含む。一部の実施形態は、入出力デバイスの両方として機能するタッチスクリーンのようなデバイスを含む。
最後に、図35に示すように、バス3505はまた、ネットワークアダプタ(図示せず)を介して、電子システム3500をネットワーク3565に結合する。このようにして、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、イントラネット、又はインターネットのようなネットワークのネットワークの一部であってもよい。電子システム3500の任意の又は全てのコンポーネントは、本発明と共に使用することができる。
Finally, as shown in FIG. 35,
いくつかの実施形態は、電子コンポーネント、例えば、マイクロプロセッサ、コンピュータ可読又はコンピュータ可読媒体(代替的にコンピュータ可読記憶媒体、機械可読媒体、又は機械可読記憶媒体と称される)におけるコンピュータプログラム命令を記憶する記憶及びメモリを含む。このようなコンピュータ可読媒体のいくつかの例は、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の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.
複数のホストコンピュータ上で動作する複数の制御プレーンアプリケーションをデプロイすることと、
前記複数のホストコンピュータ上で動作する複数の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.
ホストコンピュータ上で動作する前記制御プレーンアプリケーションをデプロイすることと、
前記ホストコンピュータ上に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.
前記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.
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)
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)
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 |
-
2022
- 2022-01-21 WO PCT/US2022/013427 patent/WO2022186912A1/en active Application Filing
- 2022-01-21 EP EP22704113.4A patent/EP4268437A1/en active Pending
- 2022-01-21 AU AU2022229086A patent/AU2022229086A1/en active Pending
- 2022-01-21 CA CA3206693A patent/CA3206693A1/en active Pending
- 2022-01-21 JP JP2023540965A patent/JP2024513628A/en active Pending
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 |