Skip to content

khu-mcl/onos-mho

 
 

Repository files navigation

onos-mho

Mobile Hand Over (MHO) xApplication for µONOS RIC

Overview

µONOS RIC supports collection of per-UE mobility data from E2 nodes for the purpose of enabling development of sophisticated mobility management xApplications. The collected UE data is available to xApplications via the SDKs. onos-mho is a sample xApplication that implements a simple A3 event based handover function to demonstrate the mobility management capabilities of µONOS RIC platform.

The E2 Service Model for Mobile HandOver (E2SM-MHO) specifies procedures over the E2 interface to subscribe to and receive indications of UE mobility information and trigger handovers through control messages. The service model defines two types of indications - 1) UE measurement reports and 2) UE RRC state changes. The UE measurement reports can be triggered by A3 events or periodic. The complete E2SM-MHO ASN.1 specification is available in the onos-e2-sm repo.

The onos-mho xApp interfaces with µONOS RIC, using the Golang SDK, to subscribe for A3 measurement reports from E2 nodes that support the E2SM-MHO service model. In addition to the A3 Events, onos-mho can be configured to subscribe to RRC state changes and periodic UE measurement reports as well. onos-mho processes the measurement event based on its configured A3 Event parameters. If a handover decision is made, onos-mho sends a handover control message to the E2 node to trigger a handover. In addition, onos-mho also updates UE-NIB with UE related information such as RRC state, signal strengths for serving and neighbor cells.

onos-mho is shipped as a Docker image and deployed with Helm. To build the Docker image, run make images.

Getting Started

The E2SM-MHO service model is currently only supported by RANSim and not by real CU/DU/gNB. onos-mho can be deployed, alongwith the other µONOS micro-services and RANSim, using the [sdran-helm-charts]. Alternatively, it can also be deployed using SDRAN-in-a-box (RIAB).

Deploy using Helm charts

Refer to the µONOS and SD-RAN documentation on how to deploy µONOS SD-RAN micro-services with the sd-ran umbrella helm chart. onos-mho is not enabled by default in the sd-ran umbrella chart. To deploy onos-mho with the other µONOS SD-RAN micro-services, either enable it in the sd-ran helm chart or on the command line as follows:

helm install --set import.ran-simulator.enabled=true --set import.onos-mho.enabled=true sd-ran sd-ran

By default, RANSim uses the model.yaml model file. To use a different model, e.g. the two-cell-two-node-model, specify the model as follows:

helm install --set import.ran-simulator.enabled=true --set import.onos-mho.enabled=true --set ran-simulator.pci.modelName=two-cell-two-node-model sd-ran sd-ran

Deploy using RiaB

Refer to the SDRAN-in-a-box (RIAB) documentation on how to deploy onos-mho within RIAB. For example, the following command deploys latest version of onos-mho and µONOS SD-RAN micro-services:

make riab OPT=mho VER=latest

Command Line Interface

The following commands are available in onos-cli for viewing onos-mho related information:

$ onos mho get cells
$ onos mho get ues
$ onos uenib get ues [-v]
$ onos uenib get ue <ueID> [-v]

The information from the above commands on UE handovers and RRC states can be compared to information provided by RANSim using the following CLI commands:

$ onos ransim get cells
$ onos ransim get ues
$ onos ransim get ue <ueID>

RANSim models

The generic model.yaml model, which simulates UEs moving on randomly generated routes, can be used with onos-mho to test handovers. Alternatively, the two-cell-two-node-model.yaml model can be used to test onos-mho handover functionality in a more controlled and deterministic manner. Refer to documentation on RANSim models for further information.

About

No description, website, or topics provided.

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 93.5%
  • Makefile 3.8%
  • Shell 1.7%
  • Dockerfile 1.0%