Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Table of Contents
stylenone

1. Introduction

(info) Detail the approach of steps for OAM deployment.

1.1 Description

With respect to Operation and Maintenance (OAM) the SMO implements the O1-interface consumers.
According to the O-RAN OAM Architecture and the O-RAN OAM Interface Specification, the SMO implements a NETCONF Client for configuration and a HTTP/REST/VES server for receiving all kind of events in VES format.

The O-RAN-SC OAM deployment contains an OpenDaylight based NETCONF client and an ONAP VES Collector. Kafka is used as massage router for communication between the components. The Keycloak implementation offers and Identity service, while treafik acts as reverse proxy to terminate all incoming https traffic.

1.2 System topology

image-20241022-100018.pngImage Removedimage-20241023-111326.pngImage Added

2. Minimum Requirements

(info) Detail the hardware and software requirements necessary for the installation.

  • 4x Cores

  • 16 GB RAM

  • 100 GB Storage

  • Ubuntu 24.04.1 LTS Operating System

  • Docker version 27.2.0, build 3ab4256

  • Docker Compose version v2.29.2

  • git version 2.43.0

  • Python 3.12.3

  • pip3 install jproperties

3. Installation

(info) step-by-step instructions for deployment

3.1 Step 1:

The reverse proxy implementation requires fully qualified domain names to route the traffic to the different SMO/OAM components.

Avoiding the setup of a DNS which may interfere with other DNS the following lines should be added in your /etc/hosts file.

  • <your-system>: is the hostname of the system, where the browser is started

  • <deployment-system-ipv4>: is the IP address of the system where the solution will be deployed

In addition, please change in the different .env files the environment variable 'HOST_IP' to the IP address of the system where you deploy the solution - search for 'aaa.bbb.ccc.dd' and replace it.

For development purposes <your-system> and <deployment-system> may reference the same system.

Code Block
# replace xxx.yyy.zzz.www by your routable IP address
grep -arl --include=*\.env 'aaa.bbb.ccc.dd' * | while read -r file; do
    sed -i 's/aaa.bbb.ccc.dd/xxx.yyy.zzz.www/g' "$file"
done

Expected Result:

Code Block
$ cat /etc/hosts
[...]

# SMO OAM development system
<deployment-system-ipv4>                   smo.o-ran-sc.org
<deployment-system-ipv4>           gateway.smo.o-ran-sc.org
<deployment-system-ipv4>          identity.smo.o-ran-sc.org
<deployment-system-ipv4>          messages.smo.o-ran-sc.org
<deployment-system-ipv4>      kafka-bridge.smo.o-ran-sc.org
<deployment-system-ipv4>         odlux.oam.smo.o-ran-sc.org
<deployment-system-ipv4>         flows.oam.smo.o-ran-sc.org
<deployment-system-ipv4>         tests.oam.smo.o-ran-sc.org
<deployment-system-ipv4>    controller.dcn.smo.o-ran-sc.org
<deployment-system-ipv4> ves-collector.dcn.smo.o-ran-sc.org 

3.2 Step 2:

Create an python environment.

Code Block
python3 -m venv .oam
source .oam/bin/activate
pip3 install jproperties
pip3 install jinja2
pip3 install requests

# your system IP is required in .env files, please see explanations below
python3 ./adopt_to_environment.py -i <deployment-system-ipv4> 

Please remember and ensure that you always run python scripts in this environment using the command

Code Block
source .oam/bin/activate

3.3 Step 3:

Docker compose commands are used to bring up the solution. For configurations python scripts are available.

Code Block
source .oam/bin/activate
docker compose -f smo/common/docker-compose.yaml up -d  --wait
python smo/common/identity/config.py   # user configuration

docker compose -f smo/oam/docker-compose.yaml up -d
docker compose -f smo/apps/docker-compose.yaml up -d

# you can test the OAM functions using the simulaters of from O-RAN-SC Sim project
docker compose -f network/docker-compose.yaml up -d
docker compose -f network/docker-compose.yaml restart ntsim-ng-o-du-1122
python network/config.py
```

Expected Result: You  

Code Block
$ python3 network/config.py
Set O-DU-1122 True
Set O-RU-11222 True
Set O-RU-11224 True
Set O-RU-11223 True
Set O-RU-11221 True

You can check our deployment using the docker ps command:

Code Block
$ docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"

3.3) Step 3:

Expected Result:



NAMES                 IMAGE                                                                                        STATUS
ntsim-ng-o-du-1122    nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-du:1.8.1                                     Up 55 seconds
ntsim-ng-o-ru-11222   nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.8.1                                  Up About a minute
ntsim-ng-o-ru-11223   nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.8.1                                  Up About a minute
ntsim-ng-o-ru-11224   nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.8.1                                  Up About a minute
ntsim-ng-o-ru-11221   nexus3.o-ran-sc.org:10004/o-ran-sc/nts-ng-o-ran-ru-fh:1.8.1                                  Up About a minute
flows                 nodered/node-red:latest-configured                                                           Up 2 minutes (healthy)
wireshark             lscr.io/linuxserver/wireshark                                                                Up 2 minutes
tests                 jenkins/jenkins:lts                                                                          Up 2 minutes
ves-collector         nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.10.1-configured   Up 2 minutes (healthy)
controller            nexus3.onap.org:10001/onap/sdnc-image:2.6.1                                                  Up 2 minutes (healthy)
odlux                 nexus3.onap.org:10001/onap/sdnc-web-image:2.6.1                                              Up 2 minutes
kafka-bridge          http://quay.io/strimzi/kafka-bridge:0.25.0                                                           Up 24 minutes (healthy)
messages              nexus3.onap.org:10001/onap/dmaap/dmaap-mr:1.1.18                                             Up 24 minutes
identity              bitnami/keycloak:18.0.2                                                                      Up 24 minutes
kafka                 nexus3.onap.org:10001/onap/dmaap/kafka111:1.0.4                                              Up 24 minutes
topology              nexus3.o-ran-sc.org:10002/o-ran-sc/smo-nts-ng-topology-server:1.5.2                          Up 24 minutes (healthy)
identitydb            bitnami/postgresql:13                                                                        Up 24 minutes
persistence           mariadb:11.1.2                                                                               Up 24 minutes (healthy)
zookeeper             nexus3.onap.org:10001/onap/dmaap/zookeeper:6.0.3                                             Up 24 minutes
gateway               traefik:v2.9.6                                                                               Up 24 minutes (healthy)4. Post-Installation Verification

4. Post-Installation Verification

(info) Outline how to verify that the installation was successful.

4.1

)

Step 1: Login

Please see the available users and there default password in file

smo/common/identity/authentication.json

Open the ODLUX UI for login:

https://odlux.oam.smo.o-ran-sc.org

image-20241023-112910.pngImage Added

Please click on “ONAP-IDENTITY”.

image-20241023-113123.pngImage Added

When the user logs in the first time the default password must be changed.

image-20241023-113331.pngImage Added

Expected Result:

  • successful login

image-20241023-113509.pngImage Added

4.2

)

Step 2:

Please move to “Connect” to see the connection status to the simulated O-RAN.

Expected Result:

 

image-20241022-184725.pngImage Added

5. Troubleshooting

(info) Provide common issues and their solutions.

  • Issue 1: (Describe the issue.)
    Solution: (Provide the solution.)

 

In case of trouble please look into log files:

Code Block
### Log files and karaf console
#### ODL karaf.logs
docker exec -it controller tail -f /opt/opendaylight/data/log/karaf.log

#### ves-collector logs
docker logs -f ves-collector

6. Additional Resources

(info) List of additional documentation, links, or resources that may be helpful.

  • Documentation: (Link to official documentation or user manuals.)

  • Support: (Contact information for support or a link to a support forum.)