Overview
This reference implementation for the Network Slicing xApp uses an AI-based algorithm to determine the amount of radio resources reserved for a network slice for each base station managed by a near-real-time RAN Intelligent Controller (near-RT RIC).The reference implementation is tested in an Edge Native node leveraging Intel® Smart Edge Open Developer Experience Kit (DEK) and providing optimized deployment for the xApp compute-intensive workload.
To run the reference implementation, you will need to first download and install the Intel® Smart Edge Open Developer Experience Kit.
Once you have installed the Intel® Smart Edge Open Developer Experience Kit, select Configure & Download to download the reference implementation and the software listed below.
- Time to Complete : 15 - 20 mins
- Programming Language : Python
- Software : Intel® Smart Edge Open Developer Experience Kit
Open Networking Foundation Software Defined RAN (SDRAN) Version 1.4
Network Slicing Radio Resource Management
Target System Requirements
Intel® Smart Edge Open Cluster Nodes
- One of the following processors:
- Intel® Xeon® Scalable processor.
- At least 64 GB RAM.
- At least 256 GB hard drive.
- An Internet connection.
- Ubuntu* 20.04.2 LTS Server.
How It Works
Network Slicing Radio Resource Management xApp
A network slice is a logical network (virtualized) comprising network resources provided by multiple network elements set up on common physical infrastructure to serve specific business purposes and fulfill predefined application performance characteristics.
By doing this, the service provider has more flexibility in providing specific services or service environments to different applications and use cases (e.g., mission-critical applications, real-time applications, AR/VR, and immersive media). Mobile operators and service providers can also share the same physical infrastructure with multiple service providers and guarantee the predefined service-level agreement.
Network Slicing Radio Resource Management (NSRRM) is an xApp working with the near-Real-time Radio Access Network (RAN) Intelligent Controller (near-RT RIC). It uses AI-based Time series prediction to determine the amount of radio resource to reserve for a network slice for each base station managed by the near-RT RIC. This version of the NS xApp works with the open-source implementation of near-RT RIC developed by the ONF (SDRAN project).
Figure 1: Integration of NS xApp with nRT RIC
The Open Radio Access Network (O-RAN) specification enables intelligent network functions leveraging AI for automation and efficiency. It also defines a set of use cases that can benefit from RAN Intelligence.
The main contributions of the O-RAN architecture are:
- Functionality split of central unit (CU), distributed unit (DU) and radio unit (RU)
- Standardized interfaces between the various units
- Introduction of RAN intelligent controller (RIC)
The introduction of the RIC allows the xApp developers to leverage AI techniques to work on the network data RIC collects.
The following figure shows the ORAN architecture with distributed controllers.
Figure 2: ORAN Architecture
ONF SD-RAN
Open Networking Foundation SD-RAN Version 1.4 is a platform for 3GPP compliant software-defined RAN and is consistent with the O-RAN architecture. The SD-RAN provides a near-real-time RIC (nRT-RIC) and RAN simulator for simulating the RAN and UE.
The Intel® Smart Edge Open Developer Experience Kit (DEK) is used to deploy the SD-RAN 1.4 release version of the RIC pod, RAN Simulator pod, and Network Slicing Radio Resource Management xApp pod, as shown in the figure below. The NS xApp interacts with the RIC to fetch the network data from the RAN simulator and performs network slicing.
Figure 3: High level Deployment
Intel® Smart Edge Open DEK Enabling Near RT-RIC and xApp
Intel® Smart Edge Open Developer Experience kit (DEK) is built on top of Kubernetes*, a production-grade platform for managing containerized workloads and services. DEK enables diverse optimization for a wide range of services.
Figure 4: SmartEdge Open Edge Node
Supported Features
Subscription for the KPM indications with SDRAN RIC v1.4.129
- SD-RAN v1.4.129 is deployed on Intel® Smart Edge Open Developer Experience Kit (DEK). It supports the E2SM KPM service model v2.
- Network Slicing (NS) xApp interacts with the SD-RAN RIC using the Python SDK.
Network Slicing Radio Resource Management
- The RAN simulator is simulating 1 E2 node in the setup.
- The RAN simulator v1.4.15 simulates 1 UE across 1 cell. The Model file is part of the ran simulator release.
BigDL Inferencing
- The NS xApp takes the data volume and timestamp to predict the target rate using Big DL inferencing. Using this target rate, pdcp rate and radio resource utilization it calculates the number of Physical Resource Blocks (PRBs) that must be allocated to the slice to meet the SLA.
Control request
- The SD-RAN v1.4.129 also supports E2SM RC service model v1.
- The NS xApp sends these PRB values (slice-level PRB Quota) to the RIC in the form of Control Requests (CR) using the E2SM RC service model to allocate them to the respective slices.
Get Started
Prerequisites
To run the reference implementation, you will need to first download and install the Intel® Smart Edge Open Developer Experience Kit.
Ensure that the following conditions are met properly to ensure a smooth installation process for a reference implementation done through Edge Software Provisioner (ESP) Intel® Smart Edge Open Developer Experience Kit package.
-
Hardware Requirements
Make sure you have a fresh ESP Intel® Smart Edge Open Developer Experience Kit installation with the Hardware specified in the Target System Requirements section.
-
Confirm the steps below were followed for ESP Intel® Smart Edge Open Developer Experience Kit installation:
- Proxy Settings
If you are behind a proxy network, ensure that proxy addresses are configured in the system.
export http_proxy=<proxy-address>:<proxy-port>
export https_proxy=<proxy-address>:<proxy-port>
- Ensure the
/etc/wgetrc
file is configured with required proxy settings as follows:
Note: Use your preferred text editor to edit the file, for example, use the command: sudo vi /etc/wgetrc
https_proxy=<proxy-address>:<proxy-port>
http_proxy=<proxy-address>:<proxy-port>
ftp_proxy =<proxy-address>:<proxy-port>
use_proxy = on
- Date and Time
Make sure that the date and time are in sync with current local time.
- Verify that the ssh public key is installed on the system.
- Verify that a non-root user
smartedge-open
has been created with passwordsmartedge-open
.
Install the Reference Implementation
Select Configure & Download to download the reference implementation and then follow the steps below to install it.
-
Make sure that the Target System Requirements are met properly before proceeding further.
- For single-device mode, only one machine is needed. (Both controller and edge node will be on the same device.)
- For multi-device mode, make sure you have at least two machines (one for the controller and the other for Edge Node).
- NOTE: Multi-device mode is not supported in the current release.
-
Confirm target host is configured with ESP Intel® Smart Edge Open Developer Experience Kit as referred to in the Prerequisites section.
-
Move the downloaded zip package to
/home/<non-root-user>
folder:mv <path-of-downloaded-directory>/network-slicing-radio-resource-management.zip /home/<non-root-user>
-
Go to
/home/<non-root-user>
directory using the following command and unzip the RI:cd /home/<non-root-user> unzip network-slicing-radio-resource-management.zip
-
Go to
network-slicing-radio-resource-management
directory:cd network-slicing-radio-resource-management
-
Change permission of the executable edge software file:
chmod 755 edgesoftware
-
Run the command below to install the Reference Implementation:
./edgesoftware install
-
When the installation is complete, you see the message
Installation of package complete
and the installation status for each module.
Figure 5: Installation Successful
NOTE: Installation logs will be available at: //var/log/esb-cli/Network_Slicing_Radio_Resource_Management_1.0.0/NetworkSlicingRadioResourceManagement/install.log
- If Intel® Smart Edge Open is installed, running the following command should show output similar to the image below. All the pods should be either in the running or completed stage.
kubectl get pods -A
Figure 6: Pods Status
-
List the reference implementation deployed module using the following command:
. /edgesoftware list
Figure 7: List of Apps
Application Output
The SD-RAN ran simulator will simulate 1 UEs across 1 cells.
-
Login to the onos-cli pod and run the following commands to view the UEs and cells:
kubectl exec -it <onos-cli-pod> -n smartedge-apps -- /bin/bash onos ransim get ueCount - This shows 1 onos ransim get ues - This show 1 UE with its RRC states onos ransim get cells - This shows 1 cell with the TxDB, Neighbours exit
Figure 8: UE Information
Figure 9: Cell Information
-
To check the subscriptions, run the following command inside onos-cli:
kubectl exec -it <onos-cli-pod> -n smartedge-apps -- /bin/bash onos e2t list subscriptions exit
Figure 10: Subscription Information
-
Run the following command on the app logs to confirm that the App is sending the control requests:
kubectl logs <ns-xapp-pod> -n smartedge-apps -c ns-xapp | grep "sending control request"
Figure 11: Control Request Logs
The same can be confirmed from the RAN Sim logs that the control requests issued from xApp are reaching the Ran Simulator.
kubectl logs <ran-simulator-pod> -n smartedge-apps | grep "Control Request is received"
Figure 12: Ran Simulator Logs
Uninstallation of the RI
Uninstall the reference implementation module using the following command. Get nsxapp-module-id
from the output of ./edgesoftware list
command.
Uninstall the reference implementation module using the following command:
. /edgesoftware uninstall <nsxapp-module-id>
Figure 13: Uninstallation Logs
Summary and Next Steps
The Network Slicing Radio Resource Management App, when deployed on the Intel® Smart Edge Open Developer Experience Kit, creates an impactful Network AI use case that utilizes the capability of Intel® Smart Edge Open Developer Experience Kit and the SD-RAN to determine the amount of radio resource to be reserved for a network slice for each base station managed by the RIC.
Learn More
To continue learning, see the following guides and software resources:
Troubleshooting
Pods Status Check
Verify that the pods are Ready as well as in Running state using the following command:
kubectl get pods -A
If any pods are in ImagePullBackOff state, manually pull the images using:
docker login
docker pull <image-name>
If any pods are not in Running state, use the following command to check the pod failure case:
kubectl describe -n <namespace> pod <pod_name>
Installation Failure
If the Intel® Smart Edge Open Developer Experience Kit installation has failed on pulling the namespace pods like Telemetry, reboot the system. After rebooting, execute the following command:
reboot
su
swapoff -a
systemctl restart kubelet (Wait till all pods are in “Running” state.)
./edgesoftware install
Pod Status shows "ContainerCreating" for a long time
If pod status shows ContainerCreating or Error or CrashLoopBackOff for 5 minutes or more, run the following commands:
reboot
su
swapoff -a
systemctl restart kubelet (Wait till all pods are in “Running” state.)
./edgesoftware install
Installation and Debug Log Info File Path
Installation logs are available at path:
/var/log/esb-cli/Network_Slicing_Radio_Resource_Management_1.0.0/NetworkSlicingRadioResourceManagement/install.log
Support Forum
If you're unable to resolve your issues, contact the Support Forum.
Execute the command below to consolidate a list of the log files in tar.gz compressed format, e.g., Network_Slicing_Radio_Resource_Management_1.0.0.tar.gz.
tar -czvf Network_Slicing_Radio_Resource_Management_1.0.0.tar.gz /var/log/esb-cli/Network_Slicing_Radio_Resource_Management_1.0.0/Network