Skip to main content

Frequently Asked Questions

  1. What interfaces from the O-RAN architecture does it support?

We support E2AP v2/3, A1AP v1.x, and O1 interfaces in the O-RAN Architecture.

For R1 we use A1AP to expose policy to the rApps.

  1. What are the supported parameters in each O-RAN service model implementation?

![https://lh7-us.googleusercontent.com/18XmjDYVhoLAkH_B-fp-G0JQos2lbg5fBa-ZJIs3X0GsFLQy5paDjocCPY5cHf-_BvOYioRRIV0a3I-OKwlaAsxRn2-Wy0md0XM0aond5hjxeLMDM06YvS_buQnWP8toG018gspJelw4CrX4XsfIzbU][image1]

E2SM KPM:

"DRB.PdcpSduVolumeDL"
"DRB.PdcpSduVolumeUL"
"DRB.RlcSduDelayDl", only OAI
"DRB.UEThpDl"
"DRB.UEThpUl"
"RRU.PrbTotDl", only OAI
"RRU.PrbTotUl", only OAI

3GPP Reference for the KPM measurement names:
TS 28.552: https://www.3gpp.org/ftp/Specs/archive/28\_series/28.552/28552-i50.zip
TS32.425: https://www.3gpp.org/ftp/Specs/archive/32\_series/32.425/32425-h10.zip

E2SM RC

Supported O-RAN controls are:
DRB QoS Modification (OAI)
Slice-level PRB Quota (OAI, RAN Slicing)
Handover Control (AMR)
Handover Control (OAI soon)

O-RAN Reference:
ORAN.WG3.E2SM-RC-v01.03

E2SM CCC:

UL/DL "O-BWP" (Amarisoft)
Frequency reconfiguration (AMR)
BWP reconfiguration in DL and UL (OAI soon)
Frequency reconfiguration (OAI soon)

O-RAN Reference:
ORAN.WG3.E2SM-CCC-R003-v03.00

Relevant Links:

  • Monitoring: See the links below
  • RAN slicing: See the link below
  • HO (AMR): Live demo during our next on-boarding session.
  • FlexSLice paper
  1. What are the current supported use-cases per service model?

  2. KPM: Performance Monitoring, Data-set collections

  3. RC: Mobility management (HO), RAN Slicing, Load Balancing, QoS Control, Energy Management, Cell Management

  4. CCC: BWP reconfiguration, Frequency reconfiguration

  5. Mac/RLC/PDCP/GTP: Extended monitoring, data-set collection

  6. Slice Control: Radio Resource Slicing, Resource Allocation Policy, Slicing Policy, MCS Control

  7. Traffic Control: QoS Control, Flow-level Slicing

  8. Which 5G Vendors are supported by BubbleRAN O-RAN stack?

BubbleRAN supports the following Open Source 5G Stack

  1. OpenAirInterface
  2. srsRAN
  3. Open5GS

BubbleRAN also supports industrial-grade 5G stack including

  • Amarisoft 4G/5G stack
  • Lite-On All-in-One gNB, O-RDU, and O-RU
  1. Is the O-RAN 7.2 Fronthaul split supported?

Yes. O-RAN 7.2 fronthaul split is supported for the following vendors with Lite-On FlexFI O-RU.

  • OpenAirInterface
  • srsRAN
  • Amarisoft

We also support Benetel and VVDN 7.2 RU.

Note: Each vendor implements the fronthaul interface differently and therefore the capabilities differ across the vendors.

  1. What are the metrics that are available from the infrastructure, network and application?

Infrastructure. We have CPU, memory, storage, network, and energy, all consolidated in the timescaleDB/Prometheus.

Application. None.

Network. We support custom service models that are the superset of the O-RAN KPM service model to extract network metrics. Below is the list of the supported parameters.

MACRLCPDCP & GTP
typedef struct { uint64_t dl_aggr_tbs; uint64_t ul_aggr_tbs; uint64_t dl_aggr_bytes_sdus; uint64_t ul_aggr_bytes_sdus; uint64_t dl_curr_tbs; uint64_t ul_curr_tbs; uint64_t dl_sched_rb; uint64_t ul_sched_rb; float pusch_snr; //: float = -64; float pucch_snr; //: float = -64; float dl_bler; float ul_bler; uint32_t dl_harq[5]; uint32_t ul_harq[5]; uint32_t dl_num_harq; uint32_t ul_num_harq; uint32_t rnti; uint32_t dl_aggr_prb; uint32_t ul_aggr_prb; uint32_t dl_aggr_sdus; uint32_t ul_aggr_sdus; uint32_t dl_aggr_retx_prb; uint32_t ul_aggr_retx_prb; uint32_t bsr; uint16_t frame; uint16_t slot; uint8_t wb_cqi; uint8_t dl_mcs1; uint8_t ul_mcs1; uint8_t dl_mcs2; uint8_t ul_mcs2; int8_t phr; } mac_ue_stats_impl_t;typedef struct { /* TX */ uint32_t txpdu_pkts; uint32_t txpdu_bytes; uint32_t txpdu_wt_ms; uint32_t txpdu_dd_pkts; uint32_t txpdu_dd_bytes; uint32_t txpdu_retx_pkts; uint32_t txpdu_retx_bytes; uint32_t txpdu_segmented; uint32_t txpdu_status_pkts; uint32_t txpdu_status_bytes; uint32_t txbuf_occ_bytes; uint32_t txbuf_occ_pkts; /* RX */ uint32_t rxpdu_pkts; uint32_t rxpdu_bytes; uint32_t rxpdu_dup_pkts; uint32_t rxpdu_dup_bytes; uint32_t rxpdu_dd_pkts; uint32_t rxpdu_dd_bytes; uint32_t rxpdu_ow_pkts; uint32_t rxpdu_ow_bytes; uint32_t rxpdu_status_pkts; uint32_t rxpdu_status_bytes; uint32_t rxbuf_occ_bytes; uint32_t rxbuf_occ_pkts; /* TX SDU stats */ uint32_t txsdu_pkts; uint64_t txsdu_bytes; double txsdu_avg_time_to_tx; uint32_t txsdu_wt_us; /* RX SDU stats */ uint32_t rxsdu_pkts; uint64_t rxsdu_bytes; uint32_t rxsdu_dd_pkts; uint32_t rxsdu_dd_bytes; uint32_t rnti; uint8_t mode; uint8_t rbid; } rlc_radio_bearer_stats_t;typedef struct{ uint32_t txpdu_pkts; uint32_t txpdu_bytes; uint32_t txpdu_sn; uint32_t rxpdu_pkts; uint32_t rxpdu_bytes; uint32_t rxpdu_sn; uint32_t rxpdu_oo_pkts; uint32_t rxpdu_oo_bytes; uint32_t rxpdu_dd_pkts; uint32_t rxpdu_dd_bytes; uint32_t rxpdu_ro_count; uint32_t txsdu_pkts; uint32_t txsdu_bytes; uint32_t rxsdu_pkts; uint32_t rxsdu_bytes; uint32_t rnti; uint8_t mode; uint8_t rbid; } pdcp_radio_bearer_stats_t; typedef struct { uint32_t rnti; uint32_t teidgnb; uint32_t teidupf; uint8_t qfi; } gtp_ngu_t_stats_t;
  1. What is the OAM command line?
CommandsDescriptions
observeOpen up the observation toolbox
cicCLI in CLI
installInstall a component on Trirematics
Ex: cli install operator/model/network
extractExtract contents from the containers
configGet decoded configurations out of an Element
logsGet logs from a specific Element
graphGet the network graph
pcapGet PCAP from the network interfaces of the Workload
infraGet infrastructure data
portGet particular port number and IP address from a specific Element
testPerform an evaluation
rttMeasure the round-trip time
throughputMeasure the network throughput
removeRemove a component on Trirematics
Ex: cli remove operator/model/network
completionGenerate the auto-completion script for the specified shell
Ex: cli completion bash/powershell/fish/zsh
loginAuthenticate to Harbor for the current namespace
listList all the operators, models, or networks
diagPerform diagnostics against the cluster
helpHelp about any command
runRun an arbitrary command list
  1. Is MX-RIC tied to OAI?

There is no coupling between MX-RIC and OAI. In fact, RIC is tied to E2 Agent, and the E2 agent is tied to the RAN functions.

MX-RIC is by design multi-vendor, and currently supports OAI, srsRAN, Amarisoft, and tier3 vendors such as Lite-On. This means that each vendor implements a subset of parameters in each service model.

  1. Is the A1 interface fully standard-compliant? Are there A1 clients/agents already available / tested against the near-RT RIC A1 interface?

A1 interface is fully standard compliant and it is extended to support additional functionalities, such as direct RAN slicing in an effort to provide more control capabilities in the Non-RT and rApp levels.

Today the policies that are supported through the rApps are the following:

  • Target PRB Utilization: A target RAN PRB utilization is enforced, and the appropriate xApp takes the necessary control actions in the RAN to bring the current utilization closer to the desired state.
  • Slice Enforce: Slicing control policies are sent, such as creating, updating or deleting slices and also associating the UEs to the various slices.
  • Monitoring Job: A flexible monitoring job is enforced in order to monitor a list of target statistics of one or multiple cells under one or multiple networks.

The rApps are implemented as applications running on top of the Non-RT RIC consuming its APIs. The latter is a Kubernetes Operator exposing new Custom Resource Definitions (CRD) to be consumed. Hence, rApps use these CRDs in order to send policies and receive feedback utilizing the Kubernetes’ client. The rApps are written in go, python and JavaScript.

R1 is not currently clearly specified. It is shown to include multiple services, such as A1 services among other SMO services. Hence, for R1, we mirrored and extended the A1 as CRDs between non-RT RIC and rApps.

Relevant Links:

  1. Is the O1 interface fully standard-compliant? Are there O1 clients/servers already available / tested against the near-RT RIC A1 interface?

Yes.

O1-CM (Configuration and Reconfiguration manager) only available with the Liteon AIO and RU (soon).

We do not use the O-RAN O1-compliant interfaces to configure and manage OpenAirInterface, srsRAN, and Amarisoft since they do not implement O1 servers. Recently, there have been some activities for OAI on the O1 interface but they do not provide all the required features for our SMO.

Nevertheless, this does not limit our SMO in its functions with respect to the NFs or RAN software, but rather improves it for day-2 operations. If you use the cli extract pcap command to extract the PCAP in the containers, you would see some HTTP messages transported for the REST API between the Workload and the Manager containers that might resemble the O1 messages that you are looking for.

In terms of the operations, any change in the YAML file used for the network is propagated automatically to all the affected NFs. In terms of monitoring and fault-tolerance, we use cloud-native software such as Prometheus that are natively integrated with our SMO.

If you would need a specific control mechanism, please request.

  1. What are different xApp classes?
xApp Independent Lifecycle
xApp DeveloperxApp MaintainerxApp Vertical UserxApp Business Intelligence
🔸RANs & UEs Monitoring xApp 🔸Resource Allocation xApp 🔸Network Slice Control xApp 🔸Handover Control xApp🔸Interactive Monitor & Control xApp 🔸Auto-configured xApp 🔸Performance Visualization xApp🔸FlexMon*: Intent-based Monitoring xApp* 🔸FlexPolicy*: Policy Enforcement xApp*🔸Cell Management rApp 🔸E2E Slice Operator
  1. How to develop and deploy xApps?

Open documentation includes xApp and SM documentation for users and developers.

In the figure below you can see the xApp /rApp lifecycle from development to production.

![https://lh7-us.googleusercontent.com/zeotCUOJFGacK2KdYdYpwwMDS7fjMq2y9B4TKaemkCf9X1YZdrQgZ9QxQFgXlqMmIBA8qNAxM9rCVOnhwhPLyKHnsBciYXS4Ips66J008Ztp6KI-IPxB2YA67k6UjX2pQVaylb9HG3yNroePkwQNM6o][image2]

A software-development kit (SDK) is provided for the development of an xApp (see documentation link above).

To onboard an xApp or an NF as a container, a Container Development Kit (CDK) is provided in the DevOps package, allowing you to integrate your custom function into MX-ORS and MX-PDK. We are currently working on documentation for this. Your xApps can also run as normal processes outside the cluster and connect to the RIC and gNBs running inside the cluster.

  1. BubbleRAN Related Publication and Research Projects?

https://bubbleran.com/research/

For reference, here is the list of publications:

  1. Could an xApp interwork with physical interfaces? Currently xApps work with simulated devices.

Yes.

The xApps would work regardless of the mode of connectivity in the RAN. If you use SDR, USRP, O-RAN 7.2, eCPRI, etc. all work the same.

  1. How can we monitor O1 OAI and Amarisoft Data? Which O1 control mechanisms are available?

We do not use the O-RAN O1-compliant interfaces to configure and manage neither of our vendors (except LITEON) since they do not implement O1 servers. Recently, there have been some activities for OAI on the O1 interface but they do not provide all the required features for our SMO.

Nevertheless, this does not limit our SMO in its functions with respect to the NFs or RAN software, but rather improves it for day-2 operations. If you use the cli extract pcap command to extract the PCAP in the containers, you would see some HTTP messages transported for the REST API between the Workload and the Manager containers that might resemble the O1 messages that you are looking for.

In terms of the operations, any change in the YAML file used for the network is propagated automatically to all the affected NFs. In terms of monitoring and fault-tolerance, we use cloud-native software such as Prometheus that are natively integrated with our SMO.

If you would need a specific control mechanism, please request.

  1. Are 5QIs supported in OAI / Amarisoft RAN and Core? Is PDU Session modification supported?

The 5QIs are defined in the CN configuration in Amarisoft and SMF configuration in OAI. The difference between the two is that in Amarisoft you are allowed to define multiple E-RABs per DNN, but in OAI it is limited to a single one.

Upon the request from the UE for a particular DNN, to establish the PDU session, for each of the E-RABs a corresponding DRB is created. In Amarisoft this is governed by the DRB mapping configuration and in OAI it is always mapped to a single DRB.

In Amarisoft, the default configuration supports all the 5QI values and their corresponding DRBs, but only the DNN provided by your slice configuration in the YAML file as well as IMS and SOS DNNs are created by default. The DNNs for IMS and SOS use standard values for 5QI (5, 1, and 2) and the other one is always 5QI = 9. If you want to change any of these parameters, we could define some workarounds with annotations in the YAML file.

For the matter of PDU Session modification, if you are looking for APIs to connect to the core network to modify them, they are not provided by neither Amarisoft nor OAI.

  1. What are the capabilities of the Non-RT RIC / SMO?

  2. Current (Non-RT RIC):

  • FlexPolicy: Policy Job defines different control actions and policies to be applied on a selected set of E2 nodes, an evolution of the A1-P service. Use cases include load-balancing.
  • FlexMon: Monitoring Job defines programmable monitoring targeting selected E2 nodes with post-processing and metric selection exported to Timescale Database (TSDB) compatible with Prometheus and Grafana.
  1. Current (OAM):
  • Full Day-0, Day-1, Day-2 Level-5 Autopilot
  • Slice definition, assignment, and scaling
  • Multiple interfaces support for the RAN and CN
  • Full scheduling control on the container placement
  • DNS scoping and Edge services
  • High scalability with minimum deployment time (E2E less than a minute)
  • Reconfiguration and full-stack observability
  • Very low overhead and high-performance containers
  • Full customization and extensibility for both the Manager and Operators
  • Fully cloud-native with non-privileged containers supporting both private (on-premise) and public cloud providers
  • Automatic device discovery and mapping for GPUs, SDRs, RRHs, etc.
  • Network terminal management
  • Application in the loop [definition of the application for the terminals]
  • Idempotent and declarative logic design
  1. Planned (OAM)
  • Energy efficiency
  • Extending the policy job to support use cases such as QoE, Slice SLA, etc.
  • Advanced E2E slicing support (joint RAN and CN)
  • Support of Fault tolerance and management
  • Support of network security
  1. How to develop and deploy rApps – is interworking via O1 and A1 supported?

Since the rApps in BubbleRAN are using cloud-native Kubernetes APIs, any SDK supporting Kubernetes clients would do. This means, you could implement your own logic in any language (Python, Go, JavaScript, or any REST-client implementation) by just consuming the Custom Resource Definitions (CRDs) created by our SMO.

Currently, three rApps are available:

  • Cell manager
  • Spectrum sharing
  • Dynamic resource and NF scaling

We plan to develop an rApp SDK to facilitate the development of rApps.

  1. Could we connect an external workload (e.g. xApp or NF such as Core Network)?

BubbleRAN fully supports external interfaces and each of the NFs could be adjusted to connect externally (as clients) or listen for external connection (as servers).

In addition, we support external DNS entries.

[1] YouTube Videos of MWC: https://youtube.com/playlist?list=PLQlXa77TNMqa5NIHRNJymW4PQlGOk-PF_&feature=shared

  1. What wireless channels are supported by MX-ORS/MX-PDK?

It depends on the RAN vendor. Please have a look at the OAI and srsRAN supported channel models.

  1. How to integrate an application (video streaming app – client server, video call – peer-to-peer, robotic app – distributed docker containers deployed in the UE and in the edge server) in MX-ORS/MX-PDK products, both one the 5G UE terminal and edge cloud?

MX-ORS and MX-PDK support any arbitrary containerized application to be attached to the user-terminal and be deployed at the edge cloud.

The actual integration might need our support, and requires evaluation.

  1. What are the steps to integrate AI models into xApps? Are there any AI/ML xApps available?

This is the same as developing a new xApp from the MX-ORS and MX-PDK. Please refer to Q12. We also have a number of xApp examples that support AI/ML, delivered in a source code format so that the clients could reproduce and extend the use-case.

  1. How many gNBs and UEs are supported in both emulation and over-the-air with the standard BubbleRAN hardware platform?

It depends on different factors including: bandwidth, number of layers (e.g. MIMO), and radio frontend.

Indicatively for 100MHz 2x2 single carrier with an Intel i9, 4GHz/16C, 32RAM, NIC: 10Gbps, you can run:

  • 3 gNBs
  • 1 gNB and 2-4 UEs
  • 2 gNBs and 2 UEs
  1. Is there any backup procedure?

There is no specific procedure related to backup.

However, your deployment (subject to no change in the used composition models) is immutable and is captured in your Network YAML file and its composition model that ensure deployment reproducibility at any time in the future. Anything beyond that is not reproducible (like if you for example executed an interactive xApp and did something). You can use the command cli list model to factory reset the models, and use cli install network to deploy the same network.

To dump the current status of the cluster including Pods, Services, resources, etc. and using it for backup or debug purposes,you can use the cli diag command.

Related link:

  1. Is there any UE related data available in the exported metrics?

Yes, by means of O-RAN E2SM and BubbleRAN custom service models. See the answers in Q1 to Q4.

  1. Is it possible to modify the RAN configuration params like MCS, RB?

MCS is not a configurable parameter, it is decided based on BLER and/or CQI.

RB a the function of the bandwidth, and you can change the bandwidth to change the total available RB. Using RAN slicing, you can dynamically reconfigure the total RB per slice over time.

In general, you can change the configuration file in two ways:

  1. Management system using the SMO: day 0 and day 2 operations

  2. Control system using near-RT RIC: CCC E2SM allows you to perform a runtime reconfiguration

  3. Is it possible to access a container of a NF and modify source code? What is needed?

You can access the container of any NF in a given deployment.

If the containers come with the source code, you can modify the source code on the fly. Some of our xApps provide such features.

You can change the source codes of any open-source based NFs that are supported by BubbleRAN (OAI, srsRAN), and connect to the MX-ORS and MX-PDK product family as external off-cluster resources (see Q19). To on-board such a NF you would need the CDK (see Q12) included in the BubbleRAN DevOps package.

  1. Can more than one 5G network get configured and used by separate persons?

​Yes. Note that the number of concurrent networks deployed on your infrastructure depends on the available compute/memory/network resources. This is indeed an effective infrastructure sharing across different users and networks. In K8s, there is the concept of namespace which allows to logically separate the infrastructures across different users and/or networks.

  1. What types of UEs/Devices are supported by MX-ORS and MX-PDK and how many UEs can be concurrently connected?

UEs in MX-ORS are software-based emulated UEs, while those in MX-PDK are either smartphones (supported devices: Google phone, Samsung Galaxy, iPhone, oneplus) or 5G modules such as Quectel. The testbed can support up to sixteen 4G/5G connected UEs.

  1. How many users may operate the same system configurations simultaneously?

​We don't have any limitations regarding this whether it is in the same namespace or across different namespaces.

  1. Is it possible to integrate and use other RICs (open source or commercial) apart from BubbleRAN’s RIC?

As long as other RICs are compliant with E2AP v3 and the O-RAN service models (KPM v3, RC v1.1, and CCC v3.0), you can integrate them with other RIC platforms. Note that the most important part of a RIC is the xApps and rApps, as the RIC itself does not realize any intelligence; the intelligence resides in the xApps.

Note: BubbleRAN RIC extends FlexRIC with new service models and xApps, providing the most comprehensive features of O-RAN RICs. You can access the BubbleRAN FlexRIC here: BubbleRAN FlexRIC.

  1. Does the base price of MX-ORS and MX-PDK include any hardware components?

No, the base price includes only the software license and 1 year of software updates and support (dedicated chat channel). In that way you can reuse your existing hardware and radio equipment. All the required hardware components are available as add-ons.

  1. What are the key differences between MX-ORS and MX-PDK?

MX-ORS is a subset of MX-PDK and includes all the MX-PDK functionalities. The key difference is that MX-ORS uses emulated UEs and channels, while MX-PDK is an operational over-the-air network. Therefore, the data generated via MX-PDK has a higher level of realism than MX-ORS. Moreover, MX-ORS does not currently support inter-cell handover, whereas MX-PDK does. In the figure below you can see a schematic indicating the relationship between the MX-ORS and MX-PDK products, as well as a mapping to use cases and TRLs.

![][image3]

  1. What are the hardware requirements for MX-ORS and MX-PDK?

MX-ORS can potentially be deployed on a single machine (Minikube), but the number of required machines depends on the scale of the deployment. There is also the option to deploy solely on a public cloud, as there is no need for specific hardware such as SDR or RU (emulated channels and UEs).

For MX-PDK, it is recommended to have at least three machines, Intel-based or AMD-based, with the following specifications: i9/Xeon/Epyc, >3.7GHz/16C, >32GB RAM, >250GB SSD (write-intensive), NIC: 10/25Gbps (Intel E810, E820, X710), Form Factor: Tower or Rack, Cooling: Liquid + Fan. Note that some network functions, such as AMF/SMF, can be deployed in the public cloud. Moreover, since MX-PDK deploys an over-the-air network, it also requires at least a PTP time-aware switch (grandmaster), a Radio Unit, and a 4G/5G UE.

  1. Do MX-ORS and MX-PDK support end-to-end slicing for 5G and O-RAN applications with xApps?

Yes, you can perform CN network slicing and RAN slicing. 3GPP network slicing is supported with Open5GS and OAI CN, while RAN slicing is achieved using the RAN control service model.

  1. Are there any GUI or dashboards available for user interaction, monitoring, and configuration?

There is currently a GUI and dashboard available for monitoring, which can provide real time measurements and stats from the network. Regarding the configuration of the network, it is currently only through the CLI.

  1. Are both 5G SA and NSA supported?

Yes, both configurations are supported; however the NSA is an experimental version.

  1. As a research group working with partner companies, we need to know if the licenses for MX-ORS and MX-PDK allow us to run experiments, publish results in journals, and explore commercial applications with partner companies (development of new xApps/features).

You can publish results and explore commercial applications, but you can't transfer the license. Please have a look at the license agreement.

  1. BubbleRAN technology related question?

Check out our FAQ here: https://bubbleran.com/faq/

  1. References

  2. https://www.linkedin.com/company/bubbleran/

  3. https://www.youtube.com/@bubbleran

  4. https://bubbleran.com/technology/

  5. https://bubbleran.com/products/mx-pdk/

  6. https://bubbleran.com/products/mx-ors/

  7. https://bubbleran.com/media/

  8. https://bubbleran.com/faq/