Radio access network (RAN) intelligent controller (RIC) assisted incremental ran software upgrade and downgrade
The RAN intelligent controller (RIC) addresses the inefficiencies of manual RAN software updates by enabling incremental and automated upgrades and downgrades, ensuring network stability and reducing disruptions.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- RAKUTEN SYMPHONY INC
- Filing Date
- 2024-12-27
- Publication Date
- 2026-07-02
AI Technical Summary
Manual management of RAN software upgrades and downgrades in telecommunications networks is labor-intensive, prone to human errors, inconsistent, time-consuming, and difficult to scale, often leading to network disruptions and performance issues.
Implementing a RAN intelligent controller (RIC) to automatically and incrementally manage software upgrades and downgrades based on network performance, allowing for staged upgrades and downgrades to minimize disruptions and errors.
The RIC facilitates efficient, scalable, and error-free software updates by ensuring only portions of the network are affected at a time, enabling easier issue detection and resolution, thus maintaining network stability and user experience.
Smart Images

Figure US2024062071_02072026_PF_FP_ABST
Abstract
Description
RADIO ACCESS NETWORK (RAN) INTELLIGENT CONTROLLER (RIC) ASSISTED INCREMENTAL RAN SOFTWARE UPGRADE AND DOWNGRADETECHNICAL FIELD
[0001] The present disclosure relates to radio access network (RAN) intelligent controller (RIC) assisted incremental RAN software update and downgrade.BACKGROUND
[0002] The information disclosed in this background section is only for the enhancement of understanding of the general background of the disclosure and should not be taken as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art.
[0003] In a telecommunications network, a Radio Access Network (RAN) in a base station (e.g., 5G gNodeB, LTE eNodeB, etc.) is a critical component for connecting the user equipment to the core network, thereby enabling the communication, data transfer, and various network services. Software may be implemented in the RAN components to manage or perform the operations thereof. In this regard, the upgrades and downgrades of RAN software are important to maintain, optimize, and adapt the network performance. For instance, the upgrades of RAN software may introduce new features, fix potential bugs, apply security patches, and optimize network performance. On the other hand, the downgrades of RAN software may restore network performance and minimize service disruptions whenever a software update introduces unforeseen issues or errors that impact the network performance.SUMMARY
[0004] Example embodiments of the present disclosure provide a system, a device, a method, and the like, that efficiently and effectively facilitate RIC assisted incremental RAN software upgrade and downgrade.
[0005] According to example embodiments, a device may be configured to implement a radio access network (RAN) intelligent controller (RIC). Specifically , the device may implement the RIC to receive information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version. Further, the device may implement the RIC to send, to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component. Furthermore, the device may implement the RIC to receive, from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites. Subsequently, the device may implement the RIC to receive, from the RAN component and for at least a first predetermined period of time, a first key performance indicator (KPI) associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites. Upon elapsing of the first predetermined period of time, the device may implement the RIC to determine whether the first KPI is greater than a first reference parameter. Based on determining that the first KPI is greater than the first reference parameter, the device may implement the RIC to send, to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites. On the other hand, based on determining that the first KPI is not greater than the first reference parameter, the device mayimplement the RIC to send, to the RAN component, a third command to perform a software downgrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version.
[0006] According to example embodiments, a method may include receiving, by a RIC, information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version. Further, the method may include sending, by the RIC and to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component. Furthermore, the method may include receiving, by the RIC and from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites. In addition, the method may include receiving, by the RIC and from the RAN component for at least a first predetermined period of time, a first KPI associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites. Upon elapsing of the first predetermined period of time, the method may further include determining, by the RIC, whether the first KPI is greater than a first reference parameter. In this regard, the method may include: based on determining that the first KPI is greater than the first reference parameter, sending, by the RIC and to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites; and based on determining that the first KPI is not greater than the first reference parameter, sending, by the RIC and to the RAN component, a third command to perform a software downgrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version.
[0007] According to example embodiments, a non-transitory computer-readable recording medium may have recorded thereon instructions executable by a device to cause the device to perform a method. The method may include receiving, by a RIC, information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version. Further, the method may include sending, by the RIC and to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component. Furthermore, the method may include receiving, by the RIC and from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites. In addition, the method may include receiving, by the RIC and from the RAN component for at least a first predetermined period of time, a first KPI associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites. Upon elapsing of the first predetermined period of time, the method may further include determining, by the RIC, whether the first KPI is greater than a first reference parameter. In this regard, the method may include: based on determining that the first KPI is greater than the first reference parameter, sending, by the RIC and to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites; and based on determining that the first KPI is not greater than the first reference parameter, sending, by the RIC and to the RAN component, a third command to perform a software downgrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version.
[0008] Additional aspects will be set forth in part in the description that follows and, in part, will be apparent from the description, or may be realized by practice of the presented embodiments of the disclosure.BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Features, aspects, and advantages of embodiments of the disclosure will be described below with reference to the accompanying drawings, in which like reference numerals denote like elements, and wherein:
[0010] FIG. 1A illustrates a block diagram of an example system architecture for implementing RIC assisted incremental RAN software upgrade and downgrade, according to one or more example embodiments;
[0011] FIG. IB illustrates a flow diagram of an example method for implementing RIC assisted incremental RAN software upgrade and downgrade, according to one or more example embodiments;
[0012] FIG. 2 illustrates a flow diagram of a first example use case, according to one or more example embodiments;
[0013] FIGs. 3A-3D illustrate flow diagrams of a second example use case, according to one or more example embodiments;
[0014] FIG. 4 illustrates a block diagram of an example 0-RAN architecture, according to one or more example embodiments;
[0015] FIG. 5 illustrates a block diagram of an example device, according to one or more embodiments; and
[0016] FIG. 6 illustrates a block diagram of an example of implementation environment, in which systems and / or method, described herein, may be implemented.DETAILED DESCRIPTION
[0017] The following detailed description of example embodiments refers to the accompanying drawings. The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations. Further, one or more features or components of one embodiment may be incorporated into or combined with another embodiment (or one or more features of another embodiment). Additionally, the flowchart and description of operations provided below relate to one of the various embodiments. It should be noted that it is possible to make other embodiments that do not exactly match the flowchart and its description. It is understood that in other embodiments one or more operations may be omitted, one or more operations may be added, one or more operations may be performed simultaneously (at least in part).
[0018] It will be apparent that systems and / or methods, described herein, may be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not limited to the described implementations. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code. It is understood that software and hardware may be designed to implement the systems and / or methods based on the description herein.
[0019] Even though particular combinations of features are disclosed in the claims and / or in the specification, these combinations are not intended to limit the disclosure of implementations. In fact, many of these features may be combined in ways not specifically recited in the claimsand / or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of implementations includes each dependent claim in combination with every other claim in the claim set.
[0020] No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and may be used interchangeably with “one or more.” Also, as used herein, the terms “has,” “have,” “having,” “include,” “including,” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. Furthermore, expressions such as “at least one of [A] and [B]”, “[A] and / or [B]”, or “at least one of [A] or [B]”, are to be understood as including only A, only B, or both A and B.
[0021] It shall be noted that, descriptions of example embodiments of the present disclosure may include terms and names defined in one or more standard organizations, such as the Open Radio Access Network (0-RAN) Alliance, the 3rd Generation Partnership Project (3GPP) standard organization, the European Telecommunications Standards Institute (ETSI) standard organization, and the like. For instance, the terms “RIC”, “DU”, “CU”, “CUCP”, “CUUP”, “O-Cloud”, and the like, as well as the associated features and operations, are to be interpreted as consistent with those specified in one or more technical specifications, unless being described otherwise.
[0022] Further, the terms “RAN software” described herein may refer to any suitable type of software that is associated with a RAN component. Furthermore, the terms “software upgrade”, “software rollout”, and “software update” described herein may refer to the operation of changing a software to improve the performance, fixing bugs, patching security vulnerabilities, introducingnew features, and / or the like. Any suitable degree of changes (e.g., minor, major, etc.) and frequency of changes (e.g., more frequently, less frequently, etc.) may be applicable. Thus, “software upgrade”, “software rollout”, and “software update” may be used interchangeably or concurrently, unless explicitly described otherwise. Similar descriptions are applicable to the terms “software downgrade” and “software rollback”.
[0023] In the rapidly evolving landscape of telecommunications networks, ensuring timely RAN software upgrades and downgrades is crucial to maintaining network resiliency, ensuring network adaptability to technological advancements, and providing flexibility to meet the varying network demands, while maintaining network stability and performance.
[0024] In the related art, RAN software upgrades and downgrades are being managed manually, involving significant manual intervention and analysis fortracking software status (e.g., currently implemented software, available new software, etc.). These manual, human interventions possess several disadvantages, as further described in the following.
[0025] Firstly, manually managing the software upgrades and downgrades may be labor-intensive, since extensive human resources may be required for planning, deployment, monitoring, analysis, and the like, of the RAN software as well as the software build associated with the upgrade and / or downgrade process. This issue is exacerbated in large-scale networks, where a significant number of engineers are required to manually deploy, monitor, etc., updates / downgrades across multiple nodes, and may ultimately cause a large amount of operational costs for upgrading and downgrading the software.
[0026] Secondly, manually managing the software upgrades and downgrades may be susceptible to human errors, such as incorrect configurations, missed steps, and / or incomplete deployments. These human errors may lead to improper analysis and inaccurate software upgradesand downgrades, thereby impacting the network performance (e.g., causing network outages, degrading network performance, introducing security vulnerabilities, etc.).
[0027] Further, manually managing the software upgrades and downgrades may involve manual data analysis, which may be inconsistent and subjective. For instance, the software upgrades and downgrades may require pre-requisite and / or post-analysis that rely on manual data collection and interpretation, which can lead to improper / inconsistent analysis and potentially impact network performance. For instance, inconsistent analysis may result in undetected issues or false positives, thereby impacting network reliability and user experience.
[0028] Furthermore, manually managing the software upgrades and downgrades may face difficulties and challenges in terms of scalability. Specifically, as the network expands, the number of network elements increases and the network topology becomes more complex, the manual upgrades and downgrades become increasingly difficult to scale.
[0029] In addition, manually managing the software upgrades and downgrades may be time-consuming and prone to delays. For instance, manual analysis or monitoring of the software after the upgrades and downgrades may not detect issues in real-time, leading to delayed responses and prolonged network disruptions.
[0030] Furthermore, in the related art, the software upgrades and downgrades are being implemented to all associated network components when available, instead of being implemented only to the network components that may benefit from the software upgrades and downgrades (e.g., improved performance, resolved software issues, etc.). Accordingly, any potential issues during the software upgrade and downgrade may affect the majority, if not all, of the network components on a large scale. This results in difficulty in the detection and resolution of the issues, and may ultimately cause large-scale network disruption and impact user experience.
[0031] Example embodiments of the present disclosure, as described in the following, provide devices, systems, methods, and the like, that implement a RIC that may automatically initiate and assist the RAN software upgrade and downgrade, and ultimately address the shortcomings of the related art systems and methods.
[0032] Specifically, example embodiments implement a RIC that automatically and incrementally triggers the RAN software upgrade and downgrade based on the performance of the network before and after the software upgrade, thereby minimizing manual / human intervention during the software upgrade and downgrade and reducing the associated operational costs. For instance, whenever a software upgrade is available, the RIC may initiate an initial stage of software upgrade to implement the software upgrade to a portion of network components (e g., a portion of cell sites), monitor the performance of the network after the implementation of the software upgrade, and then decide whether to initiate a subsequent stage of software upgrade to implement the software upgrade to another portion of network components (e g., another portion of cell sites) or to initiate a software downgrade to rollback the implemented software upgrade. Accordingly, example embodiments of the present disclosure may automatically initiate the incremental software upgrade and downgrade, which ensures that any potential issues during the software upgrade and downgrade only affect a portion of network components. This may also enable easier detection and resolution of issues. For instance, whenever an issue is identified, the software may be automatically rolled back to the previous, stable version, thereby minimizing network disruption and maintaining a seamless user experience.
[0033] It is contemplated that features, advantages, and significances of example embodiments described hereinabove are merely a portion of the present disclosure and are not intended to be exhaustive or to limit the scope of the present disclosure. Further descriptions ofthe features, components, configuration, operations, implementations, and uses cases, of example embodiments are provided in the following.Example System Architecture and Example Operations
[0034] FIG. 1A illustrates a block diagram of an example system architecture 100 for implementing RIC assisted incremental RAN software upgrade and downgrade, according to one or more example embodiments.
[0035] The system configuration 100 may be implemented in a telecommunications network for facilitating and managing RAN software upgrade and downgrade of one or more RAN components of the telecommunications network. The system configuration 100 may be implemented in any suitable telecommunications network, such as a 5G network, a 6G network, and the like. In addition, the system configuration 100 may also be implemented in a telecommunications network based on any suitable network architecture, such as open RAN (O-RAN)-based architecture, Kubernetes (k8s)-based network architecture, and the like. An example network architecture (in which one or more components of the system configuration 100 may be implemented) is described below with reference to FIG. 4, an example device (in which one or more components of the system configuration 100 may be implemented) is described below with reference to FIG. 5, and an example implementation environment is described below with reference to FIG. 6.
[0036] As illustrated in FIG. 1, the system configuration 100 may include at least one RAN intelligent controller (RIC) 110, at least one RAN component 120, and at least one repository 130. The RIC 110 may include a non-real-time (Non-RT) RIC that controls the RAN component 120. The RAN component 120 may include one or more RAN components, such as a distributed unit (DU), a central unit (CU), and the like. The RAN component 120 may manage a plurality of cellsites, such as large-scale cell sites (e.g., network components that may be implemented in macro cells, etc.), small-scale cell sites (e.g., network components that may be implemented in micro cells, pico cells, femto cells, etc.), and the like. The repository 130 may include a storage medium that stores one or more software builds (e.g., various versions of software, etc.) or any other suitable data or information associated with one or more software that may be implemented in the RAN component 120. In some example embodiments, the repository 130 may be implemented in one or more cloud nodes that may be located near the RIC 110 and / or the RAN component 120, and may thus be referred to as a “software local repository” herein.
[0037] The RIC 110, the RAN component 120, and the repository 130 may interoperate to implement incremental RAN software upgrade and downgrade to one or more software associated with the RAN component 120. The RAN software may include software that constitutes the RAN component 120 (e.g., microservices, etc.), software that is associated with the network infrastructure, and any other suitable type of software. The RAN software upgrade may be performed to upgrade a RAN software from a first version (e.g., an old version of the RAN software, an unpatched version of the RAN software, etc.) to a second version (e.g., a new version of the RAN software that includes a new feature and / or an enhancement of an existing feature, a patched version of the RAN software that addresses issues like vulnerabilities, bugs, and security risk of the unpatched version of the RAN software, etc.).
[0038] FIG. IB illustrates a flow diagram of an example method 101 for implementing RIC assisted incremental RAN software upgrade and downgrade, according to one or more example embodiments.
[0039] One or more operations of the method 101 may be performed by the RIC 110 (or a device that implements the RIC 110). Specifically, the RIC 110 may be implemented in a device(e g., a server, a network device, etc.) that may include at least one processor and a storage medium that stores computer-executable / computer-readable instructions which, when being executed by the processor, causes the processor to implement the RIC 110 to thereby perform one or more operations described herein. As a non-limiting example, one or more operations of the RIC 110 may be implemented by at least one application (e.g., an rApp) that presents in the form of software codes / computer-executable instructions / computer-readable instructions, and thus the processor of the device may access the storage medium to obtain and execute the application to thereby performing the one or more operations. Namely, the device may be configured to implement the RIC 110 to perform one or more operations described herein. An example device (in which the RIC 110 may be implemented to perform one or more operations of the method 101) is described below with reference to FIG. 5.
[0040] Referring to FIG. IB, at operation SI 10, the device may be configured to implement the RIC 110 to receive information associated with an availability of a software upgrade. For instance, the RIC 110 may receive, from the repository 130, information (e.g., a notification, an event, etc.) that indicates that a software upgrade (e.g., a new software build, a security patch, etc.) is available for upgrading a RAN software from a first version to a second version (e.g., form an old version to a new version, from an unpatched version to a patched version, etc.). The software upgrade may be applicable to a RAN software associated with and / or implemented by the cell sites associated with and / or managed by at least one RAN component.
[0041] At operation SI 20, the device may be configured to implement the RIC 110 to send, to the at least one associated RAN component (e.g., RAN component 120), a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites associated with the RAN component. The software upgrade initiated by thefirst command may be referred to herein as “stage one software upgrade”, “stage one software rollout”, “first stage software upgrade”, “first stage software rollout”, and the like.
[0042] For instance, the first command may instruct the RAN component to perform the software upgrade to upgrade the RAN software associated with specific cell sites (e.g., 10% of least important cell sites, 10% of low traffic sites, etc.). In some example embodiments, the device may be configured to implement the RIC 110 to send the first command to multiple RAN components (e.g., DU, CU, etc.), such that the multiple RAN components may perform the software upgrade to upgrade the RAN software of the associated cell sites based thereon.
[0043] According to example embodiments, the RIC 110 may generate and send the first command to the RAN component. Alternatively or additionally, the RIC 110 may communicate with another component(s) and instruct / request the component(s) to send the first command to the RAN component. For instance, the RIC 110 may send, to a software update center, a request for initiating the software upgrade (e.g., a request for initiating a stage one software rollout, etc.). The software update center may be implemented in another RIC, another device, another network component, and the like. Upon receiving a response (e.g., an approval to the request, etc.) from the software update center, the RIC 110 may send, to the software update center, an instruction to send the first command to the RAN component. The instruction may include a predefined list (that may be predefined by a user such as a network operator, etc.) that indicates the first portion of the plurality of cell sites (e.g., a list of cell sites predefined by the user as least important cell sites, etc.). Subsequently, the software update center may generate and send the first command to the associated RAN component. According to example embodiments where multiple RAN components are involved or associated with the software upgrade, the software update center may concurrently or sequentially generate and send the first command to the multiple RAN components.In this regard, the first command may be specific to each of the RAN components (e g., the first command may include information of the cell sites associated with each of the RAN components, the first command may be presented in the form readable / executable by each of the RAN components, etc.), or may include information of all cell sites involved in the stage one software upgrade.
[0044] At operation S130, the device may be configured to implement the RIC 110 to receive, from the RAN component, a notification of a successful software upgrade on the RAN software associated with the first portion of the plurality of cell sites. According to example embodiments where the RIC 110 sends the first command via the software update center, at this operation, the RIC 110 may receive the notification from the software update center.
[0045] Further, according to example embodiments where the RIC 110 sends the first command to multiple RAN components, the RIC 110 may receive (concurrently or sequentially) the notification from each of the RAN components. Upon receiving the notification from each of the RAN components, the RIC 110 may determine whether the current stage of software rollout / software upgrade is completed, and then decide which operation should be performed subsequently. For instance, based on determining that current stage of the software rollout / software upgrade is completed, the RIC 110 may determine that further operations may be performed to evaluate the performance of the RAN component after the implementation of the software upgrade. On the other hand, if the RIC 110 does not receive the notification of successful software upgrade or receives a notification of failed software upgrade, the RIC 110 may perform one or more operations to remedy the associated issues (e.g., re-attempt the software upgrade, request the associated user to review the issues and provide an updated software build, rollback the software of the affected cell sites to the previous version and exclude the affected cell sitesfrom the list of cell sites for applying the software upgrade, etc.), before processing to the further operations.
[0046] Furthermore, according to example embodiments where the RIC 110 sends the first command to multiple RAN components via the software update center, at operation S130, the RIC 110 may receive the notification from the software update center, wherein the notification may indicate that the software upgrade has been successfully performed or implemented on all associated cell sites and the current stage of the software rollout / software upgrade is completed. In the case where an error or failure occurs in any of the cell sites, the software update center may provide, to the RIC 110, a notification of a failed software upgrade or a notification of a partially successful software upgrade, each of which may include information of cell sites that have successfully implemented the software upgrade and / or information of cell sites that encounter issues during the implementation of the software upgrade, such as cell ID of the associated cell sites (e.g., new radio cell ID (NCI), physical cell ID (PCI), etc.), location information of the cell sites (e.g., geographical coordinates, sector ID, etc.), node information (e.g., node ID, component ID of the associated RAN component, etc.), operational and network information (e.g., power mode, load information, traffic information, etc.), and the like. According to example embodiments, the notification may further information associated with the error / failure (e.g., reason of failure, etc.). Upon receiving the notification from the software update center, the 100 may perform one or more operations to remedy the associated issues (e.g., re-attempt the software upgrade, request the associated user to review the issues and provide an updated software build, rollback the software of the affected cell sites to the previous version and exclude the affected cell sites from the list of cell sites for applying the software upgrade, etc.), before processing to further operations.
[0047] Referring still to FIG. IB, upon performing operation S130 (e g., upon receiving notification of successful software upgrade or remedying upgrade issues / failures, if any), the method 101 may proceed to operation S140. At this operation, the device may be configured to implement the RIC 110 to receive, from the RAN component and for at least a predetermined period of time, a key performance indicator (KPI) associated with the RAN component after the successful software upgrade on the RAN component associated with the first portion of the plurality of cell sites. For descriptive purposes, this KPI may be referred to herein as the “first KPI”.
[0048] According to example embodiments, upon determining that the current stage of the software upgrade rollout is completed, the RIC 110 may send a request, to the RAN component, to obtain one or more first KPIs associated with the RAN component after the successful software upgrade, for at least a predetermined period of time. The request may include information associated with, for example, the first KPI(s) to be monitored, the period of time during which the RAN component should report the first KPI(s) to the RIC 110, and the granularity of the reporting of the first KPI(s) (e.g., every hour, every day, etc.). Alternatively or additionally, upon completing the implementation of the software upgrade, the RAN component may automatically communicate with the RIC 110 and provide the first KPI(s) thereto. In this regard, if there are any issues / errors / failures occur during the software upgrade, the RIC 110 may disregard the provided KPI(s), until the issues / errors / failures are remedied. According to example embodiments, the RIC 110 may determine whether any KPI has been previously received from the RAN component prior to the implementation of the software upgrade and then determine which KPI(s) should be requested and / or received from the RAN component after the implementation of the software upgrade.
[0049] According to example embodiments, the RIC 110 may accumulatively receive and collect the first KPI from the RAN component for at least a predetermined period of time after receiving the notification of the successful software upgrade. For instance, the RIC 110 may receive and collect the KPI on a granular basis (e.g., an hourly basis, a daily basis, a weekly basis, a monthly basis, etc.), for at least a predetermined number of hours (e.g., 12 hours), a predetermined number of days (e.g., 14 days), a predetermined number of weeks (e.g., 2 weeks), a predetermined number of months (e.g., 2 months), and the like. As a non-limiting example, the RIC 110 may receive and collect the first KPI on the hourly basis (e.g., every one hour, every two hours, etc.) for 15 days. The granularity of the KPI reception / col lection and the period of time for receiving / collecting the KPI may be defined by the user (e.g., the network operator), and may be defined differently across different RAN components, different cell sites, and the like.
[0050] Upon elapsing of the predetermined period of time, the method 101 may proceed to operation SI 50, at which the device may be configured to implement the RIC 110 to determine whether the first KPI is greater than a reference parameter. For instance, assuming that the RIC 110 is configured to receive and collect the first KPI on the hourly basis for 15 days, the operation SI 50 may be initiated after 15 days. The reference parameter may include, for example, one or more KPIs associated with the RAN component prior to the software upgrade that upgrades the RAN software associated with the first portion of the plurality of cell sites, one or more parameters associated with said one or more KPIs, and the like. For descriptive purposes, the KPI(s) associated with the reference parameter may be referred to herein as the “third KPI”, while the reference parameter associated with the third KPI and utilized for comparison to the first KPI may be referred to herein as the “first reference parameter”.
[0051] According to example embodiments, the RIC 110 may receive, from the RAN component, the third KPI prior to the software upgrade, and then compute the reference parameter based thereon. For instance, the RIC 110 may compute the reference parameter by implementing a predefined margin to the third KPI associated with the RAN component prior to the software upgrade to upgrade the first portion of the plurality of cell sites. The margin may be provided or predefined by the user (e.g., the network operator) to account for a settling period of the software upgrade. For instance, assuming that the third KPI indicates a handover success rate of 100% (i.e., the handover operation has 100% success rate before the implementation of the software upgrade to the first portion of the plurality of cell sites), the RIC 110 may compute the reference parameter by subtracting a percentage of the handover success rate (e g., 1% success rate) from the third KPI, thereby obtaining the reference parameter (e.g., 99% success rate).
[0052] Referring still to FIG. IB, based on determining that the first KPI (received at operation S140) is greater than the reference parameter, the method 101 may proceed to operation SI 60, at which the device may be configured to implement the RIC 110 to send, to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites. The software upgrade initiated by the second command may be referred to herein as “stage two software upgrade”, “stage two software rollout”, “second stage software upgrade”, “second stage software rollout”, and the like.
[0053] For instance, the second command may instruct the RAN component to perform the software upgrade to upgrade the RAN software associated with specific cell sites (e.g., 10% of more important cell sites, 10% of high traffic sites, etc.). In some example embodiments, the device may be configured to implement the RIC 110 to send the second command to multiple RANcomponents (e.g., DU, CU, etc.), such that the multiple RAN components may perform the software upgrade to upgrade the RAN software of the associated cell sites based thereon.
[0054] Similar to the first command, the RIC 110 may generate and send the second command to the RAN component, and / or may communicate with another component(s) and instruct / request the component(s) to send the second command to the RAN component. For instance, the RIC 110 may send a request for initiating the software upgrade (e.g., a request for initiating a stage two software rollout, etc.) to the software update center. Accordingly, upon receiving a response (e.g., an approval to the request, etc.) from the software update center, the RIC 110 may send to the software update center an instruction to send the second command to the RAN component. The instruction may include another predefined list that indicates the second portion of the plurality of cell sites (e.g., a list of cell sites predefined by the user as more important cell sites, etc.). Subsequently, the software update center may generate and send the second command to the associated RAN component. According to example embodiments where multiple RAN components are involved or associated with the software upgrade, the software update center may concurrently or sequentially generate and send the second command to the multiple RAN components. In this regard, the second command may be specific to each of the RAN components (e.g., the second command may include information of the cell sites associated with each of the RAN components, the second command may be presented in the form readable / executable by each of the RAN components, etc.), or may include information of all cell sites involved in the stage 2 software upgrade.
[0055] On the other hand, based on determining that the first KPI (received at operation S140) is not greater than the reference parameter, the method 101 may proceed to operation S170, at which the device may be configured to implement the RIC 110 to send, to the RAN component,a third command to perform a software downgrade for downgrading the upgraded software of the first portion of the plurality of cell sites from the second version to the first version (e.g., rollback from the newer version to the older version, rollback from the patched version to the unpatched version, etc.). In some example embodiments, the device may be configured to implement the RIC 110 to send the third command to multiple RAN components (e.g., DU, CU, etc.), such that the multiple RAN components may perform the software downgrade on the associated cell sites based thereon when required.
[0056] Similar to the first command and the second command, the RIC 110 may generate and send the third command to the RAN component, and / or may communicate with another component(s) and instruct / request the component(s) to send the third command to the RAN component. For instance, the RIC 110 may send, to the software update center a request for initiating the software downgrade. Accordingly, upon receiving a response (e.g., an approval to the request, etc.) from the software update center, the RIC 110 may send to the software update center an instruction to send the third command to the RAN component. The instruction may include a list of cell sites that require the software downgrade or software rollback (e.g., cell sites that experience issues / failures during the first stage software upgrade and of which the RIC 110 failed to remedy the issues / failures). Subsequently, the software update center may generate and send the third command to the associated RAN component. According to example embodiments where multiple RAN components are involved or associated with the software downgrade, the software update center may concurrently or sequentially generate and send the third command to the multiple RAN components. In this regard, the third command may be specific to each of the RAN components (e.g., the third command may include information of the cell sites associated with each of the RAN components, the third command may be presented in a specific formreadable / executable by each of the RAN components, etc.), or may include information of all cell sites involved in the software downgrade / rollback.
[0057] Upon performing operations S160 / S170 in response to the result of operation SI 50, the method 101 may be terminated. Alternatively, the method 101 may return to operation SI 30, such that the device may be configured to implement RIC 110 to repeat operations S130-150, thereby determining whether further stage(s) of software up grade / software downgrade is required.
[0058] For instance, upon performing operation S160 to trigger the second stage software upgrade / rollout, the RIC 110 may repeat operations S130-S150 to determine whether a third stage of software upgrade / rollout can be initiated or whether a software downgrade / rollback is required. Specifically, the device may be configured to implement the RIC 110 to receive, from the RAN component, a notification of a successful software upgrade on the RAN software associated with the second portion of the plurality of cell sites (assuming that the software upgrade is successfully implemented in all the second portion of the plurality of cell sites). Accordingly, the device may be configured to implement the RIC 110 to receive, from the RAN component and for at least a second predetermined period of time, a second KPI associated with the RAN component after the successful software upgrade on the RAN software associated with the second portion of the plurality of cell sites. The second KPI may be different or the same as the first KPI and / or the third KPI (associated with the first stage of software upgrade / rollout). According to example embodiments, the KPIs described herein (e.g., the first KPI, the second KPI, the third KPI, etc.) described herein may include at least one of: a handover success rate, a cell availability rate, an uplink (UL) and / or downlink (DL) throughput, a latency, a packet loss rate, a resource utilization status, a power efficiency, a software crash rate, and any other suitable parameters associated with the performance of the RAN component. Further, the second predetermined period of time maybe different or the same as the first predetermined period of time (associated with the first stage of software upgrade / rollout). Upon elapsing of the second predetermined period of time, the device may be configured to implement the RIC 110 to determine whether the second KPI is greater than a second reference parameter. The second reference parameter may be the same as / different from the first reference parameter (associated with the first stage of software upgrade / rollout), or may be generated by the RIC 110 in a similar manner. Accordingly, based on determining that the second KPI is greater than the second reference parameter, the device may be configured to implement the RIC 110 to send, to the RAN component, a fourth command to perform the software upgrade (i.e., to initiate a stage three software upgrade / rollout) to upgrade the RAN software associated with a third portion of the plurality of cell sites. On the other hand, based on determining that the second KPI is not greater than the second reference parameter, the device may be configured to implement the RIC 110 to send, to the RAN component, a fifth command to perform a software downgrade to downgrade the RAN software associated with the first portion and / or the second portion of the plurality of cell sites from the second version to the first version. The detailed operations of generation and sending of the fourth command and the fifth command may be similar to those described above with reference to the second command and third command.
[0059] As another alternative implementation, upon performing operations S160 / S170 in response to the result of operation SI 50, the method 101 may return to operation SI 10, such that the device may be configured to implement RIC 110 to repeat operations SI 10-150, thereby initiating further software upgrade / downgrade whenever a new software upgrade is available.
[0060] In view of the above, example embodiments of the present disclosure provide a system, a device, and a method that implements a RIC to assist (e.g., facilitate, manage, etc.) incremental of RAN software upgrade and / or software downgrade in a telecommunication network.
[0061] Specifically, instead of performing the software upgrade to all available or associated components (e.g., cell sites, etc.), example embodiments of the present disclosure implement the RIC to automatically and incrementally initiate or perform the software upgrade to the components by portion or stage. For instance, the RIC may initiate a stage one software upgrade on a first portion of cell sites (which may be predefined by the network operator as least important, etc.), and then initiate or perform a stage two software upgrade on a second portion of cell sites (which may be predefined by the network operator as more important than the cell sites involved in the stage one software upgrade, etc.).
[0062] Similarly, upon determining a degradation of performance in the components after the software upgrade (e g., due to unforeseen issues like software incompatibility, software conflict, and the like), instead of performing the software downgrade to all affected or associated components (e.g., cell sites, etc.), example embodiments of the present disclosure implement the RIC to incrementally initiate or perform the software downgrade to the components by portion or stage. For instance, after each stage of software upgrade, the RIC may determine whether or not the performance of the components has degraded. Upon determining the degradation of performance in the current stage of software upgrade, the RIC may initiate or perform the software downgrade to the components affected in the associated stage of software upgrade (e.g., a portion of cell sites that have implemented the software upgrade at the current stage). Alternatively, upon determining a degradation of performance in the components after the software upgrade, example embodiments of the present disclosure may implement the RIC to initiate or perform the software downgrade to the components that have installed or implemented the software upgrade (e.g., multiple portions of cell sites that have implemented the software upgrade at the current stage and the previous stage), thereby avoiding similar issues from arising in the components in the future.
[0063] It is contemplated that the system configurations and operations described hereinabove are merely examples and the scope of the present disclosure should not be limited thereto. For instance, as described in the following example use cases, the system configuration may involve additional components (e.g., a software update center, multiple RAN components, etc.), the operations may involve additional processes or steps, and the like, without departing from the scope of the present disclosure.Example Use Cases
[0064] Several example use cases, according to one or more example embodiments, are described in the following. These use cases may be implemented by one or more components of the system 100 (in FIG. 1 A) and may involve one or more operations of the method 101 (in FIG. IB). It is contemplated that one or more operations of these example use cases may be performed by a device configured to implement the one or more components (e.g., a device configured to implement the RIC 110, a device configured to implement the RAN component 120, a device configured to implement the software update center, etc.), without departing from the scope of the present disclosure.
[0065] FIG. 2 illustrates a flow diagram of an example use case 200, according to one or more example embodiments. The RIC 110, RAN component 120, and repository 130 of the system 100 are involved in this example use case.
[0066] Referring to FIG. 2, at operation 1, the RIC 110 may receive, from the repository 130, information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version. For instance, when a new software upgrade is available, the repository 130 may send a notification to notify the RIC 110. Alternatively, the RIC 110 may periodically (or continuously) query the repository 130 for the information of softwareupgrade availabilities and then request the repository 130 to provide the information of the software upgrade when available. This operation may be similar to or may involve operation S 110 of the method 101.
[0067] Upon determining that a new software upgrade is available, at operation 2, the RIC 110 may send a first command to the RAN component 120 to perform or initiate a stage one software upgrade / rollout. According to example embodiments, the RIC 110 may send the first command to the RAN component 120 to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites (e g., 10% of least important sites, 10% of low-traffic sites, etc.). The plurality of cell sites may be associated with (e.g., managed by, etc.) the RAN component 120.
[0068] Upon receiving the first command, at operation 3, the RAN component 120 may communicate with the repository 130 to obtain the required software or data. For instance, the RAN component 120 may send a request that specifies the required software or data (e.g., software build, software version, etc.) to the repository 130. In this regard, the RAN component 120 may directly communicate with the repository 130 (via an application programming interface (API) or any other suitable interface), or may communicate with the repository 130 via the RIC 110 (e.g., the RAN component 120 may send the request to the RIC 110 and the RIC 110 may forward the request to the repository 130, etc.).
[0069] Upon receiving the request for the software upgrade, at operation 4, the repository 130 may provide the required software or data (e.g., software build, software image, etc.) to the repository 120. In this regard, the repository 130 may directly communicate with the RAN component 120 (via an API or any other suitable interface), or may communicate with the RANcomponent 120 via the RIC 110 (e.g., the repository 130 may send the required software or data to the RIC 110 and the RIC 110 may forward the same to the RAN component, etc.).
[0070] Upon receiving the required software or data from the repository 130, the RAN component 120 may perform the software upgrade, as specified in the first command provided by the RIC 110 (e.g., upgrade the RAN software of 10% of the least important sites, etc.). Assuming that the software upgrade is successful, at operation 5, the RIC 110 may receive, from the RAN component 120, a notification. For instance, the RIC 110 may receive, from the RAN component 120, a notification of a successful software upgrade of the RAN software of all / partial of the first portion of the plurality of cell sites.
[0071] Assuming that the first portion of the plurality of cell sites have successfully implemented the software upgrade, at operation 6, the RIC 110 may receive, from the RAN component 120, a first KPI associated with the RAN component 120. In this regard, the KPI may represent or define the performance of the RAN component 120 (or the upgraded cell sites, etc.) after the successful implementation or rollout of the first stage software upgrade. According to example embodiments, the RIC 110 may continuously or accumulatively receive the first KPI for at least a first predetermined period of time (e.g., continuously receive or collect the KPI for the next 15 days on the hourly basis after the successful first stage software upgrade, etc.).
[0072] Upon elapsing of the first predetermined period of time, the RIC 110 may compare the first KPI to a first reference parameter to determine whether or not the first KPI is greater than the first reference parameter. The first reference parameter may include at least one third KPI previously collected by the RIC 110, which represents or defines the performance of the RAN component 120 (or the upgraded cell sites, etc.) before the successful implementation or rollout of the software upgrade (e.g., before the 10% least important sites install the software upgrade, etc.).In some example embodiments, the first reference parameter may be generated by the RIC 110 based on the third KPI. For instance, the RIC 110 may implement a margin to the third KPI, to thereby obtain the first reference parameter. In this regard, the first reference parameter may account for the settling period of the stage one software upgrade. This allows for a buffer period where minor issues (due to the stage one software upgrade, etc.) can be resolved without immediate drastic actions (e.g., software rollback, etc.).
[0073] Referring still to FIG. 2, based on determining that the first KPI is greater than the first reference parameter, the use case 200 may proceed to operation 7. In this regard, the RIC 110 may send, to the RAN component 120, a second command to perform or initiate a second stage software upgrade / rollout. According to example embodiments, the RIC 110 may send the second command to the RAN component 120 to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites (e.g., 10% of more important sites, 10% of high -traffic sites, etc.).
[0074] Alternatively, based on determining the first KPI is not greater than the first reference parameter, the use case 200 may proceed to operation 8. In this regard, the RIC 110 may send, to the RAN component 120, a third command to perform a software downgrade. For instance, the RIC 110 may send the third command to the RAN component 120 to perform the software downgrade to downgrade the RAN software of the first portion of the plurality of cell sites that have installed / implemented the software upgrade (e.g., 10% of the least important sites that implemented the first stage software upgrade, etc.), to thereby downgrade / rollback the software from the second version to the first version (i.e., the version before installing / implementing the software upgrade).
[0075] It is contemplated that the system configuration and operations described above are merely examples of possible embodiments, and the scope of the present disclosure should not be limited thereto. For instance, although the example in FIG. 2 illustrates two stages of software upgrade / rollout and one stage of software downgrade / rollback, multiple stages software upgrade / rollout (e.g., a third stage software upgrade / rollout, a fourth stage software upgrade rollout, etc.) and multiple stages software downgrade / rollback (e.g., a downgrade / rollback of the first stage and / or the second stage software upgrade, etc.) may be implemented in a similar manner without departing from the scope of the present disclosure. In addition, the RIC may concurrently communicate with multiple RAN components and instruct the multiple RAN components to implement the incremental software upgrades and / or downgrades. Furthermore, one or more operations of the RIC may be implemented by one or more applications (e.g., rApps, xApp, etc.), each of which may be hosted on one or more devices.
[0076] FIGs. 3A-3D illustrate flow diagrams of another example use case 300, according to one or more example embodiments. This example use case may include one or more operations similar to those described above with reference to example use case 200 in FIG. 2, thus some of the steps or operations may be omitted below for conciseness. In this regard, this example use case involves a RIC 310, a plurality of RAN components associated with a 5G gNodeB (e.g., gNB DU 320-1, gNB CUCP 320-2, gNB CUUP 320-3), and a software local repository 330, which may be similar to the above described RIC 110, the RAN component 120, and the repository 130, respectively. In addition, this example use case also involves a software update center 340. In this regard, the software update center 340 may include a device that implements at least a portion of operations associated with the incremental RAN software upgrades and downgrades.
[0077] As illustrated in FIG. 3A, at operations 1-3, the gNB DU 320-1, the gNB CUCP 320-1, and the gNB CUUP 320-3 may be configured to provide a KPI report to the RIC 310. For instance, each of the gNB DU 320-1, the gNB CUCP 320-1, and the gNB CUUP 320-3 may be enabled with performance monitoring (PM) job to monitor one or more associated KPIs with the duration of, for example, 1-hour and 24-hour. Accordingly, these network elements may send the associated KPI report to the RIC 310 on an hourly basis and / or daily basis. It is contemplated that these network elements may be configured to monitor the KPI(s) and provide the KPI report(s) to the RIC 310 in any other suitable granularity configuration (e.g., 12-hour, 15-day, etc.), without departing from the scope of the present disclosure. The received KPI(s) may be similar to the third KPI (described above with reference to FIG. IB and FIG. 2) that is utilized by the RIC 310 as the associated reference parameter or to compute the associated reference parameter.
[0078] At operation 4, the software local repository 330 may be configured to send a notification to the RIC 310 to notify the RIC 310 regarding an availability of a new software upgrade. For instance, in a k8s-based 5G system, the software build may be uploaded (e g., by the network operator, by the vendor, etc.) to the software local repository 330. In this regard, when a new software build is available in the repository 330, the repository 330 may send a notification or a trigger to the RIC 310 to notify the RIC 310 regarding the availability of the new software build.
[0079] At operation 5, the RIC 310 may be configured to communicate with the software update center 340 to initiate a stage one software upgrade / rollout. According to example embodiments, the RIC 310 may send a software update indication to the software update center 340. In some example implementations, the RIC 310 may verify the build version of the availablenew software upgrade and then send the software update indication after verification. This should enable or be capable of rolling out software upgrades in bulk.
[0080] Upon receiving the software update indication, the software update center 340 may be configured to notify a user (e.g., a network operator, etc.) regarding the requested software upgrade (e.g., stage one software upgrade) and request the user to approve the requested software upgrade. Upon receiving an approval from the user, at operation 6, the software update center 340 may send a message or notification to the RIC 310 to initiate the stage one software rollout.
[0081] Upon receiving the notification from the software update center 340, at operation 7, the RIC 310 may be configured to send a predefined list that indicates the target cell sites to the software update center 340. The predefined list may include a first portion of cell sites (e.g., 10% least important cell sites, 10% low-traffic cell sites, etc.) associated with the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3. Further, the predefined list may be defined by the network operator and pre-configured / stored in the RIC 310 (or a storage medium accessible by the RIC 310). In this regard, the list of cell sites may be configurable based on, for example, inputs from the network operator, network conditions, quality of service (QoS) requirements, and the like.
[0082] Referring to FIG. 3B, upon receiving the predefined list of cell sites from the RIC 310, at operations 8-10, the software update center 340 may be configured to send a first software update command to the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3, respectively. Upon receiving the first software update command, the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3 may communicate with the software local repository 330 to obtain the software or data required for the software upgrade, and then perform software upgrade on the associated cell sites (e.g., 10% least important cell sites, 10% low-traffic cell sites, etc.).
[0083] Assuming that the stage one software upgrade has been successfully implemented to the associated portion of cell sites, at operations 11-13, the gNB DU 320-1, the gNB CUCP 320- 2, and the gNB CUUP 320-3 may send a notification of a successful software upgrade to the software update center 340. Accordingly, the software update center 340 may handle any error faced by any cell site during the software upgrade. For instance, the software update center 340 may exclude the cell site that has the error from the stage one software upgrade / rollout and then report the same to the RIC 310. On the other hand, if the software upgrade is implemented without any error (or after the error has been addressed), at operation 14, the software update center 340 may send a notification to the RIC 310 to notify the RIC 310 regarding the successful stage one software upgrade / rollout.
[0084] Upon receiving the notification, the RIC 310 may receive or collect a first KPI associated with the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3 (or the associated cell sites such as the 10% cell sites that have implemented the software upgrade at stage one), and then compare them with a first reference parameter. The first reference parameter may be computed by the RIC 310 based on, for example, a third KPI previously collected (e.g., KPI collected in the last 15 days, KPI collected at operations 1-3, etc.) when the associated cell sites were operating on the previous version of the software. Further, the RIC 310 may receive the first KPIs and start the comparison after a predetermined period of time (e.g., 24 hours after the successful implementation of the stage one software upgrade, etc.).
[0085] In this regard, if the comparison results or stats are consistently meeting expectations (e.g., if the first KPI is greater than the first reference parameter, etc.), the RIC 310 may determine that the stage two software upgrade / rollout should be triggered. In this case, at operation 15, the RIC 310 may send a stage two software update indication and another predefinedlist of cell sites to the software update center 340. The predefined list of cell sites may include a second portion of cell sites (e.g., 10% more important cell sites, 10% high traffic cell sites, etc.) associated with the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3, and may be defined by the network operator and pre-configured / stored in the RIC 310. Conversely, if the comparison results or stats are consistently below expectation (e.g., if the first KPI is not greater than the reference parameter, etc.), the RIC 310 may determine that software downgrade should be performed to rollback the software upgrade implemented during stage one. In this example use case, it is assumed that the first KPI is greater than the first reference parameter.
[0086] Referring to FIG. 3C, at operations 16-18, the software update center 340 may be configured to send a second software update command to the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3, respectively. Upon receiving the second software update command, the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3 may communicate with the software local repository 330 to obtain the software or data required for the software upgrade, and then perform software upgrade on the second portion of cell sites (e.g., 10% more important cell sites, 10% high traffic cell sites, etc.).
[0087] Assuming that the software upgrade has been successfully implemented to the second portion of cell sites, at operations 19-21, the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3 may send a notification of a successful software upgrade to the software update center 340. Accordingly, at operation 22, the software update center 340 may send a notification to the RIC 310 to notify the RIC 310 regarding the successful rollout or implementation of the stage two software upgrade.
[0088] Similar to post-stage one software rollout, upon receiving the notification, the RIC 310 may receive or collect a second KPI associated with the gNB DU 320-1 , the gNB CUCP 320-2, and the gNB CUUP 320-3 (or the associated cell sites such as the 10% cell sites that have implemented the software upgrade at stage 2), and then compare them with a second reference parameter. In addition to or in alternative to those described above with reference to stage one software upgrade / rollout, the RIC 310 may also implement a margin to the associated KPI to thereby compute the second reference parameter (e.g., subtract the margin from the associated KPI to obtain the reference parameter, etc.), thereby accounting for the settling period after the completion of the stage two software upgrade.
[0089] In this regard, if the comparison results or stats are consistently meeting expectations (e.g., if the second KPI is greater than the second reference parameter, etc.), the RIC 310 may determine that a subsequent stage of software rollout (e.g., stage three software rollout, etc.) should be triggered, and may thus send a stage three software update indication and yet another list of cell sites (that indicates a third portion of cell sites) to the software update center 340. Conversely, if the comparison results or stats are consistently below expectation (e.g., if the second KPI is not greater than the second reference parameter, etc.), the RIC 310 may determine that software downgrade should be performed to downgrade or rollback the RAN software upgraded during the stage one and / or stage two software upgrade / rollout.
[0090] Referring to FIG. 3D, assuming that the second KPI is not greater than the second reference parameter, at operation 23, the RIC 310 may be configured to send a list of cell sites that are required to implement the software downgrade. The list of cell sites may be determined by the RIC 310 (in real-time or near-real-time) based on the second KPI comparison and may include a portion / all of the cell sites that have implemented the software upgrade at stage one and / or stage two.
[0091] Upon receiving the list of cell sites, at operations 24-26, the software update center 340 may be configured to send a software downgrade command to the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3, respectively. Upon receiving the software downgrade command, the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3 may communicate with the software local repository 330 to obtain the software or data required for the software downgrade and then perform software downgrade to downgrade / rollback the RAN software of the associated cell sites.
[0092] Assuming that the software downgrade has been successfully implemented, at operations 27-29, the gNB DU 320-1, the gNB CUCP 320-2, and the gNB CUUP 320-3 may send a notification of a success software downgrade to the software update center 340. Accordingly, at operation 30, the software update center 340 may send a notification to the RIC 310 to notify the RIC 310 regarding the successful rollback of the software upgrade.
[0093] It is contemplated that the example use case illustrated in FIGs. 3A-3D are nonlimiting, and the example embodiments of the present disclosure should not be limited thereto. For instance, the RIC 310 may communicate with more / fewer RAN components than as illustrated, some of the operations (e.g., operations 1-3, 8-13, 16-21, 24-29, etc.) may be performed in a different sequential manner than as illustrated, one or more operations of the software update center 340 may be implemented by the RIC 310, and the like, without departing from the scope of the present disclosure.Example Network Architecture
[0094] As described above, example embodiments of the present disclosure may be implemented in an O-RAN-based telecommunications system. In this regard, O-RAN technology may disaggregate the RAN functions into different entities, such as CU, DU, and RU, that haveopen protocols and interfaces between them. This enables multiple vendors to provide hardware and / or software to the telecommunications system. Since different vendors are involved, the type of hardware and / or software provided may also be different. That is, different types of NEs may be provided by different vendors, and depending on the specific service, the NE could be virtualized and / or containerized in software form (e.g., virtual machine (VM)-based, containerized network function (CNF)-based, etc.), or could be in physical hardware form (e.g., non-VM-based, non-CNF -based, etc.).
[0095] FIG. 4 illustrates a block diagram of an example 0-RAN architecture 400, according to one or more example embodiments. RAN functions in the O-RAN architecture may be controlled and optimized by a RIC. The RIC may be a software-defined component that implements modular applications to facilitate the multivendor operability required in the 0-RAN system, as well as to automate and optimize RAN operations. As shown in FIG. 4, the RIC may be divided into two types: a non-real-time RIC (Non-RT RIC) 420 and a near-real-time RIC (Near-RT RIC) 430.
[0096] The Non-RT RIC 420 may be the control point of a non-real-time control loop and may operate on a timescale greater than 1 second within a Service Management and Orchestration (SMO) framework 410. Its functionalities may be implemented through modular applications called rApps, and may include: providing policy-based guidance and enrichment across the Al interface, which is the interface that enables communication between the Non-RT RIC and the Near-RT RIC; performing data analytics; Artificial Intelligence / Machine Learning (AI / ML) training and inference for RAN optimization; and / or recommending configuration management actions over the 01 interface, which may be the interface that connects the SMO to RAN managedelements (e.g., Near-RT RIC 430, O-RAN Centralized Unit (O-CU) 440, O-RAN Distributed Unit (O-DU) 450, etc.).
[0097] The Near-RT RIC 430 may operate on a timescale between 10 milliseconds and 1 second and may be coupled with the O-DU 450, the O-CU 440 ( which may disaggregated into the O-CU control plane (O-CUCP) 440-1 and the O-CU user plane (O-CUUP) 440-2), and an open evolved NodeB (O-eNB) 470 via the E2 interface. The Near-RT RIC 430 may use the E2 interface to control the underlying RAN elements (E2 nodes / network functions (NFs)) over a near-real-time control loop. The Near-RT RIC 430 may monitor, suspend / stop, override, and control the E2 nodes (O-CU 440, O-DU 450, and O-eNB 160) via policies. For example, the Near-RT RIC 430 may set policy parameters on activated functions of the E2 nodes. Further, the Near-RT RIC 430 may host xApps to implement functions such as quality of service (QoS) optimization, mobility optimization, slicing optimization, interference mitigation, load balancing, security, etc.
[0098] Here, the O-CU-CP 440-1 and the O-CU-UP 440-2 may be coupled to each other via the El interface and may be coupled to the O-DU 450 via the Fl -c interface and Fl -u interface, respectively. Further, the O-RU 460 may be coupled to the O-DU 450 via the Open Fronhaul (OF) Control (C), User (U), Synchronization (S), and Management (M) Planes, and may be coupled to the SMO 110 via the OF M-Plane.
[0099] The two types of RICs work together to optimize the O-RAN. For example, the Non-RT RIC 420 may provide the policies, data, and AI / ML models enforced and used by the Near-RT RIC 430 for RAN optimization, and the Near-RT RIC 430 may return policy feedback (i.e., how the policy set by the Non-RT RIC 420 works).
[0100] As mentioned above, the Non-RT RIC 420 may be located within the SMO framework 410, which manages and orchestrates RAN elements. Specifically, the SMO 410 maymanage and orchestrate what is referred to as the O-Ran Cloud (O-Cloud) 480. The O-Cloud 480 may be a collection of physical RAN nodes that host the RICs, O-CUs, and O-DUs, the supporting software components (e.g., the operating systems and runtime environments), and the SMO 410 itself. In other words, the SMO 410 may manage the O-Cloud 480 from within. The 02 interface may be the interface between the SMO 410 and the O-Cloud 480 it resides in. Through the 02 interface, the SMO 410 may provide infrastructure management services (IMS) and deployment management services (DMS).
[0101] The O-CU 440, the 0-DU 450, and the 0-RU 460 may constitute a base station, such as a gNodeB (gNB) of 5GNR, a node in Next Generation Radio Access Network (NG-RAN), a base station of a 6G network, and the like. On the other hand, the O-eNB 470 may refer to a 4G LTE version of the O-RAN-compliant node (e.g., an eNB that adheres to the O-RAN architecture).
[0102] In some example implementations, the system may include a plurality of O-DUs 450, and the O-CU 440 may be communicatively coupled to the plurality of O-DUs. Similarly, the system may include a plurality of O-RUs 460, and the O-DU(s) 450 may be communicatively coupled to the plurality of O-RUs via one or more of the O-FH C / U / S / M plane interfaces.
[0103] According to example embodiments, the O-CU 440 and the O-DU 450 may be defined in software form and may be deployed in one or more network nodes. For instance, the O-CU 440 and the 0-DU 450 may be deployed in one or more servers in the form of virtualized network function (VNF), containerized and / or cloud-native function (CNF), and the like. According to example embodiments, the O-CU 440 and the O-DU 450 may be deployed in the same network node (e.g., same server) and / or may be located at a similar geographical location (e.g., be deployed in different servers in the same data center). According to example embodiments, the O-CU 440 and the O-DU 450 may be deployed in different network nodes and / or may belocated at different geographical locations. For instance, the O-CU 440 may be deployed in one or more central servers (i.e., servers in one or more central data centers), and the O-DU 450 may be deployed in one or more edge servers (i.e., servers in one or more edge data centers).
[0104] Further, a single O-DU 450 may host or serve multiple network cells formed by multiple O-RUs. According to example embodiments, the O-DU 450 may implement various radio technologies, such as massive multiple-input multiple-output (MIMO), beamforming, and the like, to optimize radio communication among the multiple cells and the O-CU 440. In some example implementations, the O-DU 450 may concurrently host or serve hundreds (e.g., 256, 512, etc.) of cells at a time.
[0105] The O-RU 460 may be a physical node that converts radio signals from antennas to digital signals that can be transmitted over the Front Haul to the O-DU 450. In this regard, a network cell described herein may correspond to one or more radio units responsible for providing wireless coverage and signal transmission within the network cell. The network cell may include a macro cell, a micro cell, a pico cell, a femto cell, and / or any other suitable type of network cell. Each of the cells may have an associated coverage area, in which at least one O-RU 460, at least one antenna system, and any other suitable type of transport network element (TNE), may be deployed therein.
[0106] In view of the above, the RIC (and / or the associated operations) of the example embodiments may be implemented by at least the Non-RT RIC 420, the RAN component (and / or the associated operations) of the example embodiments may be implemented by at least the O-CU 440 (as well as the O-CUCP 440-1 and the O-CUUP 440-2) and the O-DU 450, and the repository (and / or the associated operations) of the example embodiments may be implemented by at least the O-Cloud 480. Further, according to example embodiments that involve a software updatecenter, the software update center (and / or the associated operations) may be implemented (or partially implemented) by at least the Non-RT RIC 420, and / or may be implemented (or partially implemented) by a device / component within or other than the O-RAN components as illustrated.Examples Device
[0107] One or more components of the example embodiments (e.g., RIC, software update center, etc.), as well as the operations associated therewith, may be implemented in one or more devices or hardware components. For instance, one or more components / operations of the system manager may be implemented in one or more devices like a server(s), a network device(s), and the like.
[0108] In the following, descriptions of a device in which the example embodiments may be implemented are provided. It is contemplated that one or more features, operations, and methods described above may be performed by the device. For instance, the one or more operations or methods may be performed by at least one processor of the device upon executing machine-readable instructions or computer-readable instructions stored in a memory or a storage component of the device.
[0109] FIG. 5 illustrates an embodiment of a device 500. As shown in FIG. 5, the device 500 may include a processor 510, a memory 520, a storage component 530, an input component 540, an output component 550, a communication interface 560, and a bus 570.
[0110] The processor 510, as used herein, means any type of computational circuit that may comprise hardware elements and software elements. The processor 510 may be embodied as a multi-core processor, a single core processor, or a combination of one or more multi-core processors and / or one or more single core processors, a distributed processing system, or the like. The processor 510 may be a Central Processing Unit (CPU), a graphics processing unit (GPU), anaccelerated processing unit (APU), an application-specific integrated circuit (ASIC), or another type of processing component.
[0111] Memory 520 includes a non-transitory computer readable medium. Memory 520 includes a random-access memory (RAM), a read only memory (ROM), and / or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, and / or an optical memory) that stores information and / or instructions for use by processor 510. The memory 520 comprises machine-readable instructions which are executable by the processor 510. These machine-readable instructions when executed by the processor 510 cause the processor 510 to perform one or more method steps of an embodiment described above.
[0112] Storage component 530 stores information and / or software related to the operation and use of the device 500. For example, storage component 530 may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, and / or a solid-state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and / or another type of non-transitory computer-readable medium, along with a corresponding drive.
[0113] Input component 540 is configured to receive information, such as user input. For example, the input component 540 may include, but not be limited to, a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and / or a microphone. Additionally, or alternatively, the input component 540 may include a sensor for sensing information (e.g., a global positioning system (GPS), an accelerometer, a gyroscope, and / or an actuator).
[0114] Output component 550 is configured to provide output information from the device 500. For example, the output component 550 may be, but not limited to, a display, a speaker, instructions to an external device, and / or one or more light-emitting diodes (LEDs).
[0115] Communication interface 560 is an interface that provides a communication connection to other devices, such as external devices and internal devices. The connection by the communication interface 560 can be a wired connection, a wireless connection, or a combination of wired and wireless connections, and can be a direct connection or an indirect connection via a communication network that exists between the device 500 and other devices. In other words, the standard of the communication interface 560 is not limited.
[0116] The bus 570 acts as an interconnect between the processor 510, the memory 520, the storage component 530, the input component 540, the output component 550, and the communication interface 560 of the device 500. The bus 570 may include a wired interconnection or a wireless interconnection.
[0117] The number and arrangement of components shown in FIG. 5 are provided as an example. In practice, device 500 may include additional components, fewer components, different components, or differently arranged components than those shown in FIG. 5. Additionally, or alternatively, a set of components (e.g., one or more components) of device 500 may perform one or more functions described as being performed by another set of components of device 500. Further, one or more method steps described in any of the embodiments may be performed utilizing a plurality of devices 500 in communication with one another.Example Implementation Environment
[0118] Example embodiments of the present disclosure may be implemented in any suitable type of environment. In the following, an example environment (in which the example embodiments may be implemented) is described.
[0119] FIG. 6 is a diagram of an example of implementation environment 600 in which systems and / or method, described herein, may be implemented. The implementation environment600 includes a UE (User equipment) 610, a service environment 620, and a network 630. The service environment 620 include one or more sub-environments 621. To illustrate this, FIG. 6 shows, for convenience, examples of a 1st sub -environment 621-1, a 2nd sub-environment 621-2, and an N-th sub-environment 621-N (where N is any natural number).
[0120] The UE 610 is connected to the network 630, and the network 630 is connected to the service environment 620. The connections may be wired, wireless, or a combination of both wired and wireless. The UE 610 and the service environment 620 are connected via the network 630.
[0121] The UE 610 is a device that communicates with the service environment 620. The UE 610 receives information from the service environment 620 and / or sends information to the service environment 620. Also, the UE 610 may generate and / or store information to be transmitted, as necessary. Also, the UE 610 may store and / or process information that is received, as necessary.
[0122] The example figure 6 refers to the “UE”. However, it should be understood by those skilled in the art that general terms such as “user device,” “terminal,” “terminal device,” “communication device,” and “communication terminal” can be used interchangeably with the term “UE.”
[0123] For example, the UE 610 may include a computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a handheld computer, a smart speaker, a server, etc.), a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a wearable device (e.g., a pair of smart glasses or a smart watch), or a similar device.
[0124] The service environment 620 is an environment that communicates with the UE 610 to provide one or more services. The service environment 620 receives information from theUE 610 and / or sends information to the UE 610. Also, the service environment 620 may generate and / or store information to be transmitted, as necessary. Also, the service environment 620 may store and / or process information that is received, as necessary. For example, the service environment 620 may provide computing resources as one of the services. It should be noted that the service is not limited to being provided to the UE; it may also be provided to devices other than the UE. For example, based on communication from the UE, the service may perform processes such as anomaly detection or traffic analysis and notify the results to a predetermined destination.
[0125] The example figure 6 refers to the “service environment”. The term "service environment" is used to refer to the broader context within which services operate. For example, cloud environments, platforms, computing systems, network systems, and cloud systems generally represent the environments in which services are conducted, and these are included within the "service environment." However, the "service environment" is not limited to these examples. Additionally, the specific types of environments within the "service environment" are not restricted. For instance, cloud environments and cloud systems can be categorized as private cloud, public cloud, hybrid cloud, or multi-cloud, all of which are included within the "service environment."
[0126] The one or more services provided by the service environment 620 is not specifically limited and can be adjusted according to the embodiments. For example, the services may include a service that provides information to the UE 610, a service that stores information from the UE 610, or a service that performs processing based on information from the UE 610 and returns the results of the processing.
[0127] In an embodiment, the Service Environments 620 may also provide computing resources as the service. The computing resources can be hardware resources and / or softwareresources. For example, applications, processors, memory, and storage can be included in the provided computing resources. Each computing resource can communicate with other computing resources via wired connections, wireless connections, or a combination of wired and wireless connections.
[0128] The provided computing resources can be actual resources (also referred to as physical resources) and / or virtual resources. Furthermore, means of virtualization for virtual resources can be selected as appropriate. That is, in this disclosure, the use of adjectives such as "Virtual" or "Virtualized" to describe names does not imply that they are virtualized by a specific means of virtualization. For example, “virtual machine” refers to software that operates like an actual computer, realized through means of virtualization, and it is not intended to exclude those realized by specific means of virtualization such as Hypervisors or Containers. Conversely, when means of virtualization such as Hypervisors or containers are mentioned in this disclosure, it is merely cited as a general method of implementation. It should also be interpreted that embodiments implemented with other virtualization means are also disclosed. Also, the services may also be provided using resources virtualized by different means.
[0129] The service environment 620 includes one or more devices, such as servers and network devices, which provide services or perform processes. The placement of these devices within the service environment 620 can be determined as appropriate. Additionally, if the service environment 620 includes one or more sub-environments 621, the placement of devices can be determined based on predetermined policies for each sub-environment 621. For example, devices related to the first service may be placed in the 1st sub-environment 621-1, and devices related to the second service may be placed in the 2nd sub -environment 621-2. In another example, devices expected to have a higher load than a predetermined threshold may be placed in the 1st sub-environment 621-1, while devices expected to have a lower load than the predetermined threshold may be placed in the 2nd sub-environment 621-2. In this way, specific devices can be placed in specific sub -environments 621. Conversely, each sub-environment 621 can be specialized for a particular purpose.
[0130] In an embodiment, all processes executed in a single service may run within a single service environment, or in multiple service environments. Multiple processes executed in a single service could be provided by different service environments.
[0131] The network 630 is a network that exchanges information between the UE 610 and the service environment 620. The network 630 includes one or more wired and / or wireless networks.
[0132] For example, the network 630 may include a cellular network (e.g., a fifth generation (5G) network, a long-term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, or the like, a non-terrestrial network (NTN), and / or a combination of these or other types of networks.
[0133] The network 630 can be a part of a network. For example, in a 5G network that includes a RAN, a transport network, and a core network, the network 630 can be at least one of the RAN, the transport network, or the core network. For example, the service environment 620 could be in the core network, in which case the network 630 could correspond to a network that is a combination of a RAN and a transport network and is part of the 5G network.
[0134] According to example embodiments, the RIC and the repository (as well as the software update center, if applicable) may be implemented in one or more of the sub-environments of the service environment 620. In this regard, the UE 610 may be utilized by the user (e.g., the network operator) to interact with the service environment 620 before, during, and / or after the incremental RAN software upgrade / downgrade. For instance, before the incremental RAN software upgrade / downgrade is initiated, the user may utilize the UE to define a list of cell sites (e g., which portion of cell sites is more / least important, which portion of cell sites usually has higher / lower traffic, etc.) and then provide the list to the RIC. As another example, via the UE 610, the user may upload a new software build or software patch to the repository. In the example embodiments where a software update center is implemented, during the initiation of incremental RAN software upgrade / downgrade, the user may receive, from the RIC and / or the software update center via the UE 610, a request of approval for initiating the incremental, and then provide, to the RIC and / or the software update center via the UE, an approval of the request. Furthermore, upon performing the software upgrade / downgrade, the UE 610 may receive, from the RIC and / or the software update center, a reporting associated therewith (e.g., a reporting of successful software upgrade / rollout, a reporting regarding issues encountered during the software upgrade / rollout, etc.) and then perform appropriate operation(s) based thereon.
[0135] The number and arrangement of devices and networks shown in FIG. 6 are provided as an example. It should be understood that any changes that may be implemented by those skilled in the art, such as the addition or rearrangement of well-known devices or networks at the time of implementation, are included in this disclosure.Various Aspects of Embodiments
[0136] Example embodiments of the present disclosure provide a device, system, method,and the like, that provide RIC assisted incremental RAN software upgrade and downgrade. Specifically, example embodiments implement a RIC that automatically and incrementally triggers the RAN software upgrade and downgrade based on the performance of the network before and after the software upgrade, thereby minimizing manual / human intervention during the software upgrade and downgrade and reducing the associated operational costs. For instance, whenever a software upgrade is available, the RIC may automatically initiate an initial stage of software upgrade to implement the software upgrade to a portion of network components (e.g., a portion of cell sites), monitor the performance of the network after the implementation of the software upgrade, and then decide whether to initiate a subsequent stage of software upgrade to implement the software upgrade to another portion of network components (e.g., another portion of cell sites) or to initiate a software downgrade to rollback the implemented software upgrade. Accordingly, example embodiments of the present disclosure may automatically initiate the incremental software upgrade and downgrade, which ensures that potential issues during the software upgrade and downgrade (if any) only affect a portion of network components. This may also enable easier detection and resolution of issues. For instance, whenever an issue is identified, the software may be automatically rolled back to the previous, stable version, thereby minimizing network disruption and maintaining a seamless user experience.
[0137] It is contemplated that features, advantages, and significances of example embodiments described hereinabove are merely examples of the present disclosure and are not intended to be exhaustive or to limit the scope of the present disclosure.
[0138] Specifically, the foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired frompractice of the implementations.
[0139] Some embodiments may relate to a device, a system, a method, and / or a computer-readable medium at any possible technical detail level of integration. Further, one or more of the above components described above may be implemented as instructions stored on a computer-readable medium and executable by at least one processor (and / or may include at least one processor). The computer-readable medium may include a computer-readable non-transitory storage medium (or media) having computer-readable program instructions thereon for causing a processor to carry out operations.
[0140] The computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), electrically erasable programmable read-only memory (EEPROM), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer-readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through afiber-optic cable), or electrical signals transmitted through a wire.
[0141] Computer-readable program instructions described herein can be downloaded to respective computing / processing devices from a computer-readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.
[0142] Computer-readable program code / instructions for carrying out operations may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object-oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the "C" programming language or similar programming languages.
[0143] The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet ServiceProvider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuitry, in order to perform aspects or operations.
[0144] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.
[0145] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer-implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0146] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). The method, computer system, and computer-readable medium may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in the Figures. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed concurrently or substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
[0147] It will be apparent that systems and / or methods, described herein, may be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not limited to the implementations. Thus, the operation and behavior of the systems and / or methods were described herein without reference to specific software code — it is understood that software and hardware may be designed to implement the systems and / or methods based on the description herein.
[0148] In view of the above, various further respective aspects and features of embodiments of the present disclosure may be defined by the following items:Item [1]: A device configured to implement a radio access network (RAN) intelligent controller (RIC) to: receive information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version; send, to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component; receive, from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites; receive, from the RAN component and for at least a first predetermined period of time, a first key performance indicator (KPI) associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites; upon elapsing of the first predetermined period of time, determine whether the first KPI is greater than a first reference parameter; based on determining that the first KPI is greater than the first reference parameter, send, to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites; and based on determining that the first KPI is not greater than the first reference parameter, send, to the RAN component, a third command to perform a software downgrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version.Item [2]: The device according to item [1], wherein the device may be further configured to implement the RIC to: receive, from the RAN component, anotification of a successful software upgrade of the RAN software associated with the second portion of the plurality of cell sites; receive, from the RAN component and for at least a second predetermined period of time, a second KPI associated with the RAN component after the successful software upgrade of the RAN software associated with the second portion of the plurality of cell sites; upon elapsing of the second predetermined period of time, determine whether the second KPI is greater than a second reference parameter; based on determining that the second KPI is greater than the second reference parameter, send, to the RAN component, a fourth command to perform the software upgrade to upgrade the RAN software associated with a third portion of the plurality of cell sites; and based on determining that the second KPI is not greater than the second reference parameter, send, to the RAN component, a fifth command to perform a software downgrade to downgrade the RAN software associated with the first portion and the second portion of the plurality of cell sites from the second version to the first version. Item [3]: The device according to one or more of items [l]-[2], wherein the device may be further configured to implement the RIC to: receive, from the RAN component, a third KPI associated with the RAN component prior to the software upgrade to upgrade the RAN software associated with the first portion of the plurality of cell sites; and compute, based on the third KPI, the first reference parameter.Item [4]: The device according to item [3], wherein the device may be configured to implement the RIC to compute the reference parameter by: applying a predefined margin to the third KPI.Item [5]: The device according to one or more of items [l]-[4], wherein the device may be configured to implement the RIC to send the first command by: sending, to a software update center, a request for initiating the software upgrade; receiving, from the software update center, a response to the request; and sending, to the software update center, an instruction to send the first command to the RAN component, wherein the instruction may include a predefined list that indicates the first portion of the plurality of cell sites.Item [6]: The device according to one or more of items [l]-[5], wherein the device may be configured to implement the RIC to receive the first KPI by: accumulatively receiving the first KPI for the first predetermined period of time, wherein the first predetermined period of time may include at least one of: a predetermined number of hours, a predetermined number of days, a predetermined number of weeks, and a predetermined number of months.Item [7]: The device according to one or more of items [l]-[6], wherein the RIC may include a non-real-time (Non-RT) RIC, and wherein the RAN component may include at least one of: a distributed unit (DU), a control unit control plane (CUCP), and a control unit user plane (CUUP).Item [8]: The device according to one or more of items [l]-[7], wherein the first portion of the plurality of cell sites may be associated with at least one of: cell sites predefined by a user as least important cell sites and cell sites that have low traffic, and wherein the second portion of the plurality of cell sites may be associated with at least one of: cell sites predefined by the user as more important cell sites and cell sites that have high traffic.Item [9]: The device according to one or more of items [l]-[8], wherein the RAN software may include at least one of: a software that constitutes the RAN component and a software that is associated with infrastructure of the telecommunication, wherein the first version of the RAN software may include at least one of: an older version of the RAN software and an unpatched version of the RAN software, and wherein the second version of the RAN software may include at least one of: a newer version of the RAN software and a patched version of the RAN software.Item
[0010] : The device according to one or more of items
[0001] -[8], wherein the RAN component comprises a plurality of RAN components.Item
[0011] : A method including: receiving, by a radio access network (RAN) intelligent controller (RIC), information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version; sending, by the RIC and to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component; receiving, by the RIC and from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites; receiving, by the RIC and from the RAN component for at least a first predetermined period of time, a first key performance indicator (KPI) associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites; upon elapsingof the first predetermined period of time, determining, by the RIC, whether the first KPI is greater than a first reference parameter; based on determining that the first KPI is greater than the first reference parameter, sending, by the RIC and to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites; and based on determining that the first KPI is not greater than the first reference parameter, sending, by the RIC and to the RAN component, a third command to perform a software downgrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version. Item
[0012] : The method according to item
[0011] , further including: receiving, by the RIC and from the RAN component, a notification of a successful software upgrade of the RAN software associated with the second portion of the plurality of cell sites; receiving, by the RIC and from the RAN component for at least a second predetermined period of time, a second KPI associated with the RAN component after the successful software upgrade of the RAN software associated with the second portion of the plurality of cell sites; upon elapsing of the second predetermined period of time, determining, by the RIC, whether the second KPI is greater than a second reference parameter; based on determining that the second KPI is greater than the second reference parameter, sending, by the RIC and to the RAN component, a fourth command to perform the software upgrade to upgrade the RAN software associated with a third portion of the plurality of cell sites; and based on determining that the second KPI is not greater than the second reference parameter, sending, by the RIC and to the RAN component, a fifth command toperform a software downgrade to downgrade the RAN software associated with the first portion and the second portion of the plurality of cell sites from the second version to the first version.Item
[0013] : The method according to one or more of items
[0011] -
[0012] , further including: receiving, by the RIC and from the RAN component, a third KPI associated with the RAN component prior to the software upgrade to upgrade the RAN software associated with the first portion of the plurality of cell sites; and computing, by the RIC and based on the third KPI, the first reference parameter. Item
[0014] : The method according to item
[0013] , wherein the computing the first reference parameter may include: applying, by the RIC, a predefined margin to the third KPI.Item
[0015] : The method according to one or more of items
[0011] -
[0014] , wherein the sending the first command may include: sending, by the RIC and to a software update center, a request for initiating the software upgrade; receiving, by the RIC and from the software update center, a response to the request; and sending, by the RIC and to the software update center, an instruction to send the first command to the RAN component, wherein the instruction may include a predefined list that indicates the first portion of the plurality of cell sites.Item
[0016] : The method according to one or more of items
[0011] -
[0015] , wherein the receiving the first KPI may include: accumulatively receiving, by the RIC and for the first predetermined period of time, the first KPI, wherein the first predetermined period of time may include at least one of: a predetermined number of hours, apredetermined number of days, a predetermined number of weeks, and a predetermined number of months.Item
[0017] : The method according to one or more of items
[0011] -
[0016] , wherein the RIC may include a non-real-time (Non-RT) RIC, and wherein the RAN component may include at least one of: a distributed unit (DU), a control unit control plane (CUCP), and a control unit user plane (CUUP).Item
[0018] : The method according to one or more of items
[0011] -
[0017] , wherein the first portion of the plurality of cell sites may be associated with at least one of: cell sites predefined by a user as least important cell sites and cell sites that have low traffic, and wherein the second portion of the plurality of cell sites may be associated with at least one of: cell sites predefined by the user as more important cell sites and cell sites that have high traffic.Item
[0019] : The method according to one or more of items
[0011] -
[0018] , wherein the RAN software may include at least one of: a software that constitutes the RAN component and a software that is associated with infrastructure of the telecommunication, wherein the first version of the RAN software may include at least one of: an older version of the RAN software and an unpatched version of the RAN software, and wherein the second version of the RAN software may include at least one of: a newer version of the RAN software and a patched version of the RAN software.Item
[0020] : Anon-transitory computer-readable recording medium having recorded thereon instructions executable by a device to cause the device to perform a method including: receiving, by a radio access network (RAN) intelligent controller (RIC),information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version; sending, by the RIC and to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component; receiving, by the RIC and from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites; receiving, by the RIC and from the RAN component for at least a first predetermined period of time, a first key performance indicator (KPI) associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites; upon elapsing of the first predetermined period of time, determining, by the RIC, whether the first KPI is greater than a first reference parameter; based on determining that the first KPI is greater than the first reference parameter, sending, by the RIC and to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites; and based on determining that the first KPI is not greater than the first reference parameter, sending, by the RIC and to the RAN component, a third command to perform a software downgrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version.
[0149] It can be understood that numerous modifications and variations of the present disclosure are possible in light of the above teachings. It will be apparent that within the scope ofthe appended clauses, the present disclosures may be practiced otherwise than as specifically described herein.
Claims
What is claimed is:
1. A device configured to implement a radio access network (RAN) intelligent controller (RIC) to:receive information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version;send, to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component;receive, from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites;receive, from the RAN component and for at least a first predetermined period of time, a first key performance indicator (KPI) associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites;upon elapsing of the first predetermined period of time, determine whether the first KPI is greater than a first reference parameter;based on determining that the first KPI is greater than the first reference parameter, send, to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites; andbased on determining that the first KPI is not greater than the first reference parameter, send, to the RAN component, a third command to perform a softwaredowngrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version.
2. The device according to claim 1, wherein the device is further configured to implement the RIC to:receive, from the RAN component, a notification of a successful software upgrade of the RAN software associated with the second portion of the plurality of cell sites; receive, from the RAN component and for at least a second predetermined period of time, a second KPI associated with the RAN component after the successful software upgrade of the RAN software associated with the second portion of the plurality of cell sites;upon elapsing of the second predetermined period of time, determine whether the second KPI is greater than a second reference parameter;based on determining that the second KPI is greater than the second reference parameter, send, to the RAN component, a fourth command to perform the software upgrade to upgrade the RAN software associated with a third portion of the plurality of cell sites; andbased on determining that the second KPI is not greater than the second reference parameter, send, to the RAN component, a fifth command to perform a software downgrade to downgrade the RAN software associated with the first portion and the second portion of the plurality of cell sites from the second version to the first version.
3. The device according to claim 1, wherein the device is further configured to implement the RIC to:receive, from the RAN component, a third KPI associated with the RAN component prior to the software upgrade to upgrade the RAN software associated with the first portion of the plurality of cell sites; andcompute, based on the third KPI, the first reference parameter.
4. The device according to claim 3, wherein the device is configured to implement the RIC to compute the first reference parameter by:applying a predefined margin to the third KPI.
5. The device according to claim 1, wherein the device is configured to implement the RIC to send the first command by:sending, to a software update center, a request for initiating the software upgrade; receiving, from the software update center, a response to the request; and sending, to the software update center, an instruction to send the first command to the RAN component, wherein the instruction comprises a predefined list that indicates the first portion of the plurality of cell sites.
6. The device according to claim 1, wherein the device is configured to implement the RIC to receive the first KPI by:accumulatively receiving the first KPI for the first predetermined period of time,wherein the first predetermined period of time comprises at least one of: a predetermined number of hours, a predetermined number of days, a predetermined number of weeks, and a predetermined number of months.
7. The device according to claim 1, wherein the RIC comprises a non-real-time (Non-RT) RIC, and wherein the RAN component comprises at least one of: a distributed unit (DU), a control unit control plane (CUCP), and a control unit user plane (CUUP).
8. The device according to claim 1,wherein the first portion of the plurality of cell sites is associated with at least one of: cell sites predefined by a user as least important cell sites and cell sites that have low traffic, andwherein the second portion of the plurality of cell sites is associated with at least one of: cell sites predefined by the user as more important cell sites and cell sites that have high traffic.
9. The device according to claim 1,wherein the RAN software comprises at least one of: a software that constitutes the RAN component and a software that is associated with infrastructure of the telecommunication,wherein the first version of the RAN software comprises at least one of: an older version of the RAN software and an unpatched version of the RAN software, andwherein the second version of the RAN software comprises at least one of: a newer version of the RAN software and a patched version of the RAN software.
10. The device according to claim 1, wherein the RAN component comprises a plurality of RAN components.
11. A method comprising:receiving, by a radio access network (RAN) intelligent controller (RIC), information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version;sending, by the RIC and to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component;receiving, by the RIC and from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites;receiving, by the RIC and from the RAN component for at least a first predetermined period of time, a first key performance indicator (KPI) associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites;upon elapsing of the first predetermined period of time, determining, by the RIC, whether the first KPI is greater than a first reference parameter;based on determining that the first KPI is greater than the first reference parameter, sending, by the RIC and to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites; andbased on determining that the first KPI is not greater than the first reference parameter, sending, by the RIC and to the RAN component, a third command to perform a software downgrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version.
12. The method according to claim 11, further comprising:receiving, by the RIC and from the RAN component, a notification of a successful software upgrade of the RAN software associated with the second portion of the plurality of cell sites;receiving, by the RIC and from the RAN component for at least a second predetermined period of time, a second KPI associated with the RAN component after the successful software upgrade of the RAN software associated with the second portion of the plurality of cell sites;upon elapsing of the second predetermined period of time, determining, by the RIC, whether the second KPI is greater than a second reference parameter;based on determining that the second KPI is greater than the second reference parameter, sending, by the RIC and to the RAN component, a fourth command to perform the software upgrade to upgrade the RAN software associated with a third portion of the plurality of cell sites; andbased on determining that the second KPI is not greater than the second reference parameter, sending, by the RIC and to the RAN component, a fifth command to perform a software downgrade to downgrade the RAN software associated with the first portion and the second portion of the plurality of cell sites from the second version to the first version.
13. The method according to claim 11, further comprising:receiving, by the RIC and from the RAN component, a third KPI associated with the RAN component prior to the software upgrade to upgrade the RAN software associated with the first portion of the plurality of cell sites; andcomputing, by the RIC and based on the third KPI, the first reference parameter.
14. The method according to claim 13, wherein the computing the first reference parameter comprises:applying, by the RIC, a predefined margin to the third KPI.
15. The method according to claim 11, wherein the sending the first command comprises:sending, by the RIC and to a software update center, a request for initiating the software upgrade;receiving, by the RIC and from the software update center, a response to the request; andsending, by the RIC and to the software update center, an instruction to send the first command to the RAN component, wherein the instruction comprises a predefined list that indicates the first portion of the plurality of cell sites.
16. The method according to claim 11, wherein the receiving the first KPI comprises:accumulatively receiving, by the RIC and for the first predetermined period of time, the first KPI,wherein the first predetermined period of time comprises at least one of: a predetermined number of hours, a predetermined number of days, a predetermined number of weeks, and a predetermined number of months.
17. The method according to claim 11, , wherein the RIC comprises a non-real-time (Non-RT) RIC, and wherein the RAN component comprises at least one of: a distributed unit (DU), a control unit control plane (CUCP), and a control unit user plane (CUUP).
18. The method according to claim 11,wherein the first portion of the plurality of cell sites is associated with at least one of: cell sites predefined by a user as least important cell sites and cell sites that have low traffic, andwherein the second portion of the plurality of cell sites is associated with at least one of: cell sites predefined by the user as more important cell sites and cell sites that have high traffic.
19. The method according to claim 11,wherein the RAN software comprises at least one of: a software that constitutes the RAN component and a software that is associated with infrastructure of the tel ecommuni cati on,wherein the first version of the RAN software comprises at least one of an older version of the RAN software and an unpatched version of the RAN software, and wherein the second version of the RAN software comprises at least one of: a newer version of the RAN software and a patched version of the RAN software.
20. A non-transitory computer-readable recording medium having recorded thereon instructions executable by a device to cause the device to perform a method comprising:receiving, by a radio access network (RAN) intelligent controller (RIC), information associated with an availability of a software upgrade for upgrading a RAN software from a first version to a second version;sending, by the RIC and to a RAN component of a telecommunication network, a first command to perform the software upgrade to upgrade the RAN software associated with a first portion of a plurality of cell sites, wherein the plurality of cell sites is associated with the RAN component;receiving, by the RIC and from the RAN component, a notification of a successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites;receiving, by the RIC and from the RAN component for at least a first predetermined period of time, a first key performance indicator (KPI) associated with the RAN component after the successful software upgrade of the RAN software associated with the first portion of the plurality of cell sites;upon elapsing of the first predetermined period of time, determining, by the RIC, whether the first KPI is greater than a first reference parameter;based on determining that the first KPI is greater than the first reference parameter, sending, by the RIC and to the RAN component, a second command to perform the software upgrade to upgrade the RAN software associated with a second portion of the plurality of cell sites; andbased on determining that the first KPI is not greater than the first reference parameter, sending, by the RIC and to the RAN component, a third command to perform a software downgrade to downgrade the RAN software associated with the first portion of the plurality of cell sites from the second version to the first version.