xApp Implementation: O-RAN Traffic Steering Use Case


After discussing, how CI/CD fits O-RAN design in the previous article, in this post, we focus on the implementation of the very simple xAPP tailored for the traffic steering use case. The goal of this xApp is to support the network providers to reassign the traffic from one base station to the other in order to meet some predefined criteria (like link quality maximization, throughput maximization). We will see some initial results of the great opportunity offered by O-RAN that the operator can easily install, modify or remove the xApp when needed. Simply, depending on the needs.

RAN Intelligent Controller (RIC) for xApps

Let us remind the generic RIC concept, as shown in Fig. 1. The RIC is split into near-Real Time RIC (near-RT RIC) and Non-Real Time RIC (Non-RT RIC). The former one sitting in the RAN domain is responsible for handling the near-RT RRM/SON functions (on a timescale between >10 ms and <1 s), whereas the latter one is sitting in the management plane and handling the high-level/orchestration functions (on a timescale >>1 s), and provides policies to near-RT RIC over the A1 interface (if you are interested in more details about near-RT RIC, check out our dedicated post on RIC).

Fig. 1. RAN Intelligent Controller: Non-RT RIC & near-RT RIC (Copyright (c) Rimedo Labs 2021)

Traffic Steering use case analysis

O-RAN Alliance specifies the use cases (UC) to be addressed by xApps and RIC [1] and defines the policies by which the algorithms to support the use cases can be controlled. The use cases are prioritized as per the MNO’s requirements. One such typical example is Traffic Steering (TS), which objective is to steer the user traffic through a specific cell, taking into account available schemes and resources (like handover, dual connectivity, multi-RAT, HetNet, carrier aggregation, licensed assisted access, etc). The challenge to be addressed by the UC is that the typical TS schemes use radio conditions of a cell by treating all users in the same way with average values and are limited to adjusting cell priorities and cell reselection/handover thresholds.

While the O-RAN Alliance aims at addressing the TS use case by customization of the UE-centric strategies and proactive optimization by predicting network conditions and allow operators to specify different objectives for traffic management depending on the scenario and flexibly configure optimization policies. In this, the near-RT RIC is to control the adaptation of diverse scenarios and objectives, and Non-RT RIC shall control TS strategies through AI/ML learning from user/network data (for more details about the Use Cases defined by O-RAN Alliance and the Traffic Steering details, see our dedicated post: O-RAN Use Cases: Traffic Steering).

Let us investigate a simple wireless network having some open interfaces through which it is possible to implement network functionality externally. The ultimate goal of the conducted simulations and analyses is to show the possibility of applying the concept of an open radio network, where individual elements of the radio network are replaced to optimize the operation of the entire network.

Considered network setup

We consider a heterogeneous network deployed over the squared area of 20 km sizes, consisting of one macro base station (with 20 dBm of transmit power) and four small cells (with 10 dBm of transmit power). In order to promote access to small cells, the operator has the possibility to apply the dedicated power offset (achieving cell range extension) of 3dB.

All cells may operate in two separated bands, i.e. at a central frequency set to 800 MHz with 5 MHz channels, and 2 GHz with 10 MHz bandwidth and only downlink (DL) transmission is considered. From the perspective of the MNO, there is a cost c associated with the selection of lower and higher frequency bands, which reflect various kinds of loads for MNO, such as energy consumption cost, prices for a license, etc.

Over the considered area, two types of users are randomly deployed with uniform distribution, mainly 80% of all users are voice users (whose traffic is characterized by the constant and relatively low bit rate of at least 250 kbps) when the rest are MBB users (constant and high bit rate of at least 3 Mbps). The bit rate of each user is calculated using the Shannon formula, and the user is assumed to be in an outage when its required bit rate is below the achieved one. The allocation of the band in the assumed system is done as a part of bandwidth (real number in the range of 0 – 1).

Let us also mention that our implementation is generic, i.e., we intentionally did not apply any of the existing platforms for RIC simulation. Our goal is to illustrate the benefits of xApp modularity supported by defined interfaces.

xApp Implementation: O-RAN Traffic Steering Use Case

The ultimate goal of our experiment was to make the TS functionality modular, changeable, standardized, controlled by some AI engine, and accessible by both other external applications and by human administrators. We focused on the TS case, where the O-RAN operator has the ability to apply various functioning policies, which are defined by independent xApp. By assumption, it may specify the rules, how the available two frequency bands should be utilized – this functionality is delivered to the O-RAN operator in form of the TS-xApp for frequency band selection to better steer the traffic.

As we said, one of the prospective TS schemes is to offload the traffic from the congested frequency band to the less occupied one. When moving the operating central frequency from higher bands to lower values, one may say about the cell-zooming approach [2]. However, in a broader sense, various rules may be specified depending on the currently identified circumstances and needs of the operator. As we want to allow for real-time modification of the policies, we define them in form of specified tuples, which may be stored in form of simple files such as JSON or YAML, creating some sort of application programming interface (API).

Let us note that the policy can specify that for example the small cells should “prefer” larger bandwidth over costs or expected range, and the macrocell should minimalize its range. The word “prefer” should be treated loosely, allowing for various implementations by different applications. In the experiment, two policies options have been defined:

  • CHEAP – where each cell should use the band with the lowest cost c;
  • PERFORMANCE – where macrocells should prefer a band with a higher range, and small cells should prefer a band with greater bandwidth.

To be able to measure the performance of the system, the default setup of the network has been defined, where the cheapest frequency band is selected, the users will be assigned to the cell-based on received signal power, and the radio resources are allocated equally among the users.

System Training

Once the applications have been defined and implemented, it was important to verify their functioning in all available configurations. Thus, the performance of the TS-xApp has been tested in terms of observed rate and outage probability, averaged over numerous user deployments. Achieved results have been presented and stored in form of the complementary cumulative distribution functions (CCDF). Selected results are shown for illustrative purposes also in Fig. 2.

By analyzing each particular plot, one can observe that as in some situations it is worth applying certain policy, it is not that beneficial in other cases. Thus, in order to select the most promising solution, either the system administrator should analyze the curves and decide on the best strategy, or let AI tools do it based on predefined criteria. In our tests, we have applied a simple ML tool – logistic regression, which allows for the selection of the policy that reduced outage in the system.

Fig. 2 presents the trained models, or more precisely – achieved CCDFs, which are available within NonRT RIC and NearRT RICs. Having such a system, we have performed some experiments proving the benefits of TS-xApp modularity, as discussed in the next section.

Fig. 2. Mapping of TS-xApp installations to the RIC (Copyright (c) Rimedo Labs 2021)

Simulation results

In our experiment, we focus on the modularity and flexibility of the whole ORAN application. Thus, we have specified a dedicated experimentation scenario, for which we show the selected performance metric (some percentiles of observed bitrate) as a function of time for a selected randomly but fixed deployment of users.

In particular, we start with the default setup; in time stamp 50 s, TS-xApp has been installed, with the default CHEAP policy; at 100 s, the policy has been changed to PERFORMANCE leading to some mean and 95% bitrate increase; at 150 s the system comes back to prior setup. This Scenario shows the benefits of installing and using one selected application. The results are shown in Fig. 3.

Fig. 3. Achieved results for three considered experimentation schemes (Copyright (c) Rimedo Labs 2021)


Summarizing the above results one can observe that the opportunity to install/uninstall the xApp/rApp jointly with the tailored way for selecting the best policy, creates to the O-RAN operator promising ways to improve the network performance depending on its (current) needs. The software modularity allows for fast adjustment of the network functioning thus leading to efficiency increase.

If you’d like to get more details on the implementation, and simulation scenarios and results, check out our research paper on this: Toward Modular and Flexible Open RAN Implementations in 6G Networks: Traffic Steering Use Case and O-RAN xApps


[1] O-RAN Alliance, Accessed: 14th of May, 2021. https://www.o-ran.org/specifications
[2] X. Xu, C. Yuan, W. Chen, X. Tao, and Y. Sun, „Adaptive Cell Zooming and Sleeping for Green Heterogeneous Ultradense Networks,” IEEE Transactions on Vehicular Technology, vol. 67, no. 2, pp. 1612-1621, Feb. 2018.
[3] Toward Modular and Flexible Open RAN Implementations in 6G Networks: Traffic Steering Use Case and O-RAN xApps (mdpi.com)


The author would like to thank Marcin Dryjański and Łukasz Kułasz for their support in providing this blog post.

RIMEDO Labs Resources

Author Bio

Adrian Kliks received his postdoctoral degree in telecommunications in February 2019. He took part in numerous international research projects: URANUS, NEWCOM ++, ACROPOLIS, COGEU, NEWCOM #, COHERENT, in COST IC0902 and COST-Terra (IC 0905), and managed numerous industrial and commissioned projects. An IEEE Senior Member since 2013, a member of the IEEE Broadcasting Society, IEEE Communication Society, and IEEE Standard Association. Adrian, participated in the years 2012-2017 in the work of the IEEE P1900.x standardization group, as a member with voting rights.​ Member of the groups: Radio Communications Committee and Research Group on Software Defined and Virtualized Wireless Access. In the years 2014-2016, he was the Membership Development / Web Visibility Chair in the IEEE for the EMEA area​. From 2019 – editor-in-chief of the Journal of Telecommunications and Information Technology of the Institute of Communications, editor-in-chief of EAI Endorsed Transactions on Wireless Spectrum​. Currently, he serves as a Board Member at Rimedo Labs.

Add a comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.