Skip to content
pchat-imm edited this page Apr 23, 2024 · 24 revisions

Welcome to the O-RAN-E2 wiki!

Description: this page consists of installation, basic running the project on ZMQ, and test the use case nearRT-RIC w/ kpm xapp
Tutorial: nearRT-RIC and xApp_kpm: https://docs.srsran.com/projects/project/en/latest/tutorials/source/flexric/source/index.html

Table of Contents

Installation

1. Install FlexRIC and dependencies

Install Swig

follow this link: https://swig.org/svn.html

git clone https://github.com/swig/swig.git
cd swig
./autogen.sh
./configure --prefix=/usr/
make
make install (if not work use sudo make install)

for the first time running ./autogen.sh, with no alocal

sudo apt-get install autotools-dev
sudo apt-get install automake

for the first time running ./configure --prefix=/usr/ and error

## ./configure --prefix
# configure: error: no acceptable C compiler found in $PATH
>> sudo apt install build-essential

# Cannot find pcre2-config script from PCRE2 (Perl Compatible Regular Expressions)
>> sudo apt install libpcre2-dev

# WARNING: 'bison' is missing on your system.
>> sudo apt install bison

if you cannot make

  • maybe your folder contain 'spacebar' in the name
  • or need to install autoconf, automake, aclocal

Installl dependencies

$ sudo apt install libsctp-dev python3.8 cmake-curses-gui libpcre2-dev python3-dev

Install FlexRIC

clone the branch 'e2ap-v2', and download the patch from the main link updated 120424, clone from branch br-flexric

git clone https://gitlab.eurecom.fr/mosaic5g/flexric.git
cd flexric
git checkout br-flexric
mkdir build
cd build
cmake ../

# change gcc and g++ version before proceed below
make
sudo make install

before make you need to change gcc and g++ version to 10

change gcc and g++ version to 10

follow this link: https://linuxconfig.org/how-to-switch-between-multiple-gcc-and-g-compiler-versions-on-ubuntu-22-04-lts-jammy-jellyfish

Install GCC and G++ compiler

sudo apt update
sudo apt install build-essential
sudo apt -y install gcc-10 g++-10

Update alternative, then compile the version 10, and check if the version selected correctly

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 10
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

and check gcc and g++ version

gcc --version
gcc (Ubuntu 10.5.0-1ubuntu1~22.04) 10.5.0

g++ --version
g++ (Ubuntu 10.5.0-1ubuntu1~22.04) 10.5.0

after that, run make command

make
sudo make install

Install ccache (for fast re-compilation)

before make any code with gcc, g++
installation following this link: https://askubuntu.com/questions/470545/how-do-i-set-up-ccache

# Install package
sudo apt install -y ccache

# Update symlinks
sudo /usr/sbin/update-ccache-symlinks

# Prepend ccache into the PATH
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc

# Source bashrc to test the new PATH
source ~/.bashrc && echo $PATH

path will looks like this

/usr/lib/ccache/:/usr/lib/ccache/:/home/chatchamon/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

and test successful of ccache

>> which g++ gcc
/usr/lib/ccache/gcc
/usr/lib/ccache/g++

2. ZeroMQ

not install from source (https://github.com/zeromq/libzmq/issues/4390)
but install from package: $ sudo apt-get install libzmq3-dev

git clone https://github.com/zeromq/czmq.git
cd czmq
./autogen.sh
./configure
make
sudo make install
sudo ldconfig

3. srsRAN_Project

from this link: https://github.com/srsran/srsRAN_Project/issues/158

install dependencies as we cannot install zeromq from source, then install srsRAN_Project, and finish make result look like (finish)

$ sudo apt install cmake make pkg-config libfftw3-dev libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev


$ git clone https://github.com/srsran/srsRAN_Project.git
$ cd srsRAN_Project
$ mkdir build
$ cd build
$ cmake ../ -DENABLE_EXPORT=ON -DENABLE_ZEROMQ=ON -DAUTO_DETECT_ISA=OFF
$ make -j`nproc`

also during cmake it show zeromq disable by default

-- Checking for module 'ZeroMQ'
--   No package 'ZeroMQ' found
-- Found libZEROMQ: /usr/include, /usr/lib/x86_64-linux-gnu/libzmq.so

4. srsRAN_4G

install dependencies from this link: https://docs.srsran.com/projects/4g/en/latest/general/source/1_installation.html

sudo apt-get install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev

make the czmq again

git clone https://github.com/zeromq/czmq.git
cd czmq
./autogen.sh
./configure
make
sudo make install
sudo ldconfig

then install srsRAN_4G through zeroMQ, from this link: https://docs.srsran.com/projects/4g/en/latest/app_notes/source/zeromq/source/index.html

git clone https://github.com/srsRAN/srsRAN_4G.git
cd srsRAN_4G
mkdir build
cd build
cmake ../
make

during cmake, it should show that zeromq should disable by default

-- Checking for module 'ZeroMQ'
--   No package 'ZeroMQ' found
-- Found libZEROMQ: /usr/include, /usr/lib/x86_64-linux-gnu/libzmq.so

in case zeromq link like below, you need to make the czmq again, before delete and install srsRAN_4G again to link zeromq with them

FINDING ZEROMQ.
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.35") found components: program_options

5. Config gNB and UE

5.1 for nearRT-RIC and xApp

download gnb and ue config files from https://docs.srsran.com/projects/project/en/latest/tutorials/source/flexric/source/index.html
the gNB change is Enable E2 agents in all DUs and enable E2SM_KPM service module:

e2:
  enable_du_e2: true                # Enable DU E2 agent (one for each DU instance)
  e2sm_kpm_enabled: true            # Enable KPM service module

and Enable E2AP packet captures and set the name of the output pcap file:

pcap:
  e2ap_enable: true                 # Set to true to enable E2AP PCAPs.
  e2ap_filename: /tmp/gnb_e2ap.pcap # Path where the E2AP PCAP is stored.

5.2 for USRP 210

amf:
  addr: 10.53.1.2                                                 # The address or hostname of the AMF.
  bind_addr: 10.53.1.1                                            # A local IP that the gNB binds to for>

ru_sdr:
  device_driver: uhd                                              # The RF driver name.
  device_args: type=b200                                          # Optionally pass arguments to the selected RF driver.
  sync: internal                                                  # (@!mm - changed from `external` to `internal`) external as GPSD0
  srate: 23.04                                                    # RF sample rate might need to be adjusted according to selected bandwidth.
  tx_gain: 75                                                     # Transmit gain of the RF might need to adjusted to the given situation.
  rx_gain: 75                                                     # Receive gain of the RF might need to adjusted to the given situation.

cell_cfg:
  dl_arfcn: 368500                                                # ARFCN of the downlink carrier (center frequency).
  band: 3                                                         # The NR band.
  channel_bandwidth_MHz: 20                                       # Bandwith in MHz. Number of PRBs will be automatically derived.
  common_scs: 15                                                  # Subcarrier spacing in kHz used for data.
  plmn: "00101"                                                   # PLMN broadcasted by the gNB.
  tac: 7                                                          # Tracking area code (needs to match the core configuration). 
  pdcch:
    dedicated:
      ss2_type: common                                            # Set search space to common to match capabilities
      dci_format_0_1_and_1_1: false                               # Use fallback DCI to match srsUE capabilities
    common:
      ss0_index: 0                                                # Set search space zero index to match srsUE capabilities
      coreset0_index: 12                                          # Set search CORESET Zero index to match srsUE capabilities
  prach:
    prach_config_index: 1        

Running the network

in the following order

  1. open5GS
  2. NearRT-RIC
  3. gNB
  4. UE
  5. start IP traffic (e.g. ping)
  6. xApp from the list, we will open 6 terminal window for each of them

1. open5GS core (docker version)

from srsRAN_Project/docker

cd ./srsRAN_Project/docker
sudo docker-compose up --build 5gc

in case it cannot run try

sudo docker compose up --build 5gc

from this issue: https://github.com/srsran/srsRAN_Project/issues/198, we need to comment line 79 COPY subscriver_db.cs[v] . in the srsRAN_Project/docker/open5gs/Dockerfile. and the issue will be solved

in case of issue, following this simple troubleshooting https://open5gs.org/open5gs/docs/troubleshoot/01-simple-issues/.

  • replace <command> with stop, then do it again with restart
>> sudo -i
$ systemctl <command> open5gs-mmed.service
$ systemctl <command> open5gs-sgwcd.service
$ systemctl <command> open5gs-smfd.service
$ systemctl <command> open5gs-amfd.service
$ systemctl <command> open5gs-sgwud.service
$ systemctl <command> open5gs-upfd.service
$ systemctl <command> open5gs-hssd.service
$ systemctl <command> open5gs-pcrfd.service
$ systemctl <command> open5gs-nrfd.service
$ systemctl <command> open5gs-scpd.service
$ systemctl <command> open5gs-ausfd.service
$ systemctl <command> open5gs-udmd.service
$ systemctl <command> open5gs-pcfd.service
$ systemctl <command> open5gs-nssfd.service
$ systemctl <command> open5gs-bsfd.service
$ systemctl <command> open5gs-udrd.service
>> exit

However, if the issue state the replicate of docker, just delete the docker, and sudo docker compose again

[+] Running 0/0
 ⠋ Container 148131f3b311_open5gs_5gc  Recreate                                           0.0s 
Error response from daemon: Conflict. The container name "/148131f3b311_open5gs_5gc" is already in use by container "148131f3b31128cd348f0b0ad5cc07052820374a638021a23fb9baf02a6a5dac". You have to remove (or rename) that container to be able to reuse that name.

>> sudo docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED       STATUS                      PORTS     NAMES
148131f3b311   107986675870   "./open5gs_entrypoin…"   3 weeks ago   Exited (139) 24 hours ago             148131f3b311_open5gs_5gc

>> sudo docker rm 148131f3b311_open5gs_5gc
148131f3b311_open5gs_5gc
chatchamon@worker01:~/o-ran-e2-kpm/czmq/srsRAN_Project/docker$ sudo docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

2. NearRT-RIC

Start example NearRT-RIC provided in FlexRIC framework:

./flexric/build/examples/ric/nearRT-RIC
oem@oem-ThinkPad-L14-Gen-2:~/work/flexric/build/examples/ric$ ./nearRT-RIC
Setting the config -c file to /usr/local/etc/flexric/flexric.conf
Setting path -p for the shared libraries to /usr/local/lib/flexric/
[NEAR-RIC]: nearRT-RIC IP Address = 127.0.0.1, PORT = 36421
[NEAR-RIC]: Initializing 
[NEAR-RIC]: Loading SM ID = 144 with def = PDCP_STATS_V0 
[NEAR-RIC]: Loading SM ID = 142 with def = MAC_STATS_V0 
[NEAR-RIC]: Loading SM ID = 147 with def = ORAN-E2SM-KPM 
[NEAR-RIC]: Loading SM ID = 146 with def = TC_STATS_V0 
[NEAR-RIC]: Loading SM ID = 148 with def = GTP_STATS_V0 
[NEAR-RIC]: Loading SM ID = 145 with def = SLICE_STATS_V0 
[NEAR-RIC]: Loading SM ID = 143 with def = RLC_STATS_V0 
[iApp]: Initializing ... 
[iApp]: nearRT-RIC IP Address = 127.0.0.1, PORT = 36422
fd created with 6 

3. gNB

start with CPU performance mode

  • The CPU governor of the PC should be set to performance mode to allow for maximum compute power and throughput. Config for Ubuntu
echo "performance" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
  • then config in the srsran script
>> cd o-ran-e2-kpm/czmq/srsRAN_Project
>> sudo ./scripts/srsran_performance 

Would you like to set the CPU governor to performance: [Y/n]: y
Scaling governor set to performance
Would you like to disable KMS polling: [Y/n]: y
Disabled DRM KMS polling
Would you like to tweak the network buffer sizes: [Y/n]: y
net.core.wmem_max = 33554432
net.core.rmem_max = 33554432
net.core.wmem_default = 33554432
net.core.rmem_default = 33554432
Tweaked network buffer sizes

Then continue with config files and run the gNB

oem@oem-ThinkPad-L14-Gen-2:~/work/srsRAN_Project/build/apps/gnb$ sudo ./gnb -c gnb_zmq.yaml
Lower PHY in executor blocking mode.

--== srsRAN gNB (commit 1afd7240f) ==--

Connecting to AMF on 10.53.1.2:38412
srsLog error - Unable to create log file "/tmp/gnb.log": Permission denied
Available radio types: zmq.
Connecting to NearRT-RIC on 127.0.0.1:36421
Cell pci=1, bw=10 MHz, dl_arfcn=368500 (n3), dl_freq=1842.5 MHz, dl_ssb_arfcn=368410, ul_freq=1747.5 MHz

==== gNodeB started ===

The Connecting to AMF on 10.53.1.2:38412 message indicates that gNB initiated a connection to the core. While, the Connecting to NearRT-RIC on 127.0.0.1:36421 message indicates that gNB initiated a connection to the NearRT-RIC.

If the connection attempt is successful, the following (or similar) will be displayed on the NearRT-RIC console:

Received message with id = 411, port = 24260 
[E2AP] Received SETUP-REQUEST from PLMN   1. 1 Node ID 411 RAN type ngran_gNB
[NEAR-RIC]: Accepting RAN function ID 147 with def = `0ORAN-E2SM-KPM 
[NEAR-RIC]: Accepting interfaceType 0

and on open5gs screen show

open5gs_5gc | 09/15 06:24:40.598: [amf] INFO: gNB-N2 accepted[10.53.1.1]:52906 in ng-path module (../src/amf/ngap-sctp.c:113)
open5gs_5gc | 09/15 06:24:40.598: [amf] INFO: gNB-N2 accepted[10.53.1.1] in master_sm module (../src/amf/amf-sm.c:706)
open5gs_5gc | 09/15 06:24:40.598: [amf] INFO: [Added] Number of gNBs is now 1 (../src/amf/context.c:1034)
open5gs_5gc | 09/15 06:24:40.598: [amf] INFO: gNB-N2[10.53.1.1] max_num_of_ostreams : 30 (../src/amf/amf-sm.c:745)
  • in case socket is in used like below, kill it with
sudo netstat -plten
sudo kill -9 <port number>

4. srsUE

before run the command

  • add ue1 sudo ip netns add ue1
  • check ue sudo ip netns list or else it will show Failed to setup/configure GW interface

then

  • run command sudo ./srsue ./ue_zmq.conf
oem@oem-ThinkPad-L14-Gen-2:~/work/srsRAN_4G/build/srsue/src$ sudo ./srsue ./ue_zmq.conf 
[sudo] password for oem: 
Active RF plugins: libsrsran_rf_zmq.so
Inactive RF plugins: 
Reading configuration file ./ue_zmq.conf...

Built in Release mode using commit fa56836b1 on branch master.

Opening 1 channels in RF device=zmq with args=tx_port=tcp://127.0.0.1:2001,rx_port=tcp://127.0.0.1:2000,base_srate=11.52e6
Supported RF device list: zmq file
CHx base_srate=11.52e6
Current sample rate is 1.92 MHz with a base rate of 11.52 MHz (x6 decimation)
CH0 rx_port=tcp://127.0.0.1:2000
CH0 tx_port=tcp://127.0.0.1:2001
Current sample rate is 11.52 MHz with a base rate of 11.52 MHz (x1 decimation)
Current sample rate is 11.52 MHz with a base rate of 11.52 MHz (x1 decimation)
Waiting PHY to initialize ... done!
Attaching UE...
Random Access Transmission: prach_occasion=0, preamble_index=0, ra-rnti=0x39, tti=1614
Random Access Complete.     c-rnti=0x4601, ta=0
RRC Connected
PDU Session Establishment successful. IP: 10.45.1.2
RRC NR reconfiguration successful.

It is clear that the connection has been made successfully once the UE has been assigned an IP, this is seen in PDU Session Establishment successful. IP: 10.45.1.2. The NR connection is then confirmed with the RRC NR reconfiguration successful. message.

if PDU session not create like Failed to setup/configure GW interface could be from incomplete make/make install. So need to repeat the installation

Test IP Traffic with Ping. The ping test will run alongside with the next test (xApp). Wihtout ping running, RSRP metrics receive from xapp_kpm_moni will result as RSRP = 0.

we add ue1 from link: https://docs.srsran.com/projects/project/en/latest/tutorials/source/srsUE/source/index.html#srsue-appnote at section

  • add ue1 sudo ip netns add ue1
  • check ue sudo ip netns list

then we test ping.

  • open another terminal to ./srsRAN_4G/build/srsue/src
  • test ping sudo ip netns exec ue1 ping -i 0.1 10.45.1.1
oem@oem-ThinkPad-L14-Gen-2:~/work/srsRAN_4G/build/srsue/src$ sudo ip netns exec ue1 ping -i 0.1 10.45.1.1
[sudo] password for oem: 
PING 10.45.1.1 (10.45.1.1) 56(84) bytes of data.
64 bytes from 10.45.1.1: icmp_seq=1 ttl=64 time=30.8 ms
64 bytes from 10.45.1.1: icmp_seq=2 ttl=64 time=55.6 ms
64 bytes from 10.45.1.1: icmp_seq=3 ttl=64 time=38.6 ms
64 bytes from 10.45.1.1: icmp_seq=4 ttl=64 time=21.7 ms
64 bytes from 10.45.1.1: icmp_seq=5 ttl=64 time=45.3 ms

and on UE screen show

sudo ip netns exec ue1 ping -i 0.1 10.45.1.1

xApp

  • go to ./flexric/build/example/xApp/c/monitor
  • command ./xapp_kpm_moni
oem@oem-ThinkPad-L14-Gen-2:~/work/flexric/build/examples/xApp/c/monitor$ ./xapp_kpm_moni
Setting the config -c file to /usr/local/etc/flexric/flexric.conf
Setting path -p for the shared libraries to /usr/local/lib/flexric/
[xAapp]: Initializing ... 
[xApp]: nearRT-RIC IP Address = 127.0.0.1, PORT = 36422
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libpdcp_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libmac_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libkpm_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libtc_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libgtp_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libslice_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/librlc_sm.so 
[NEAR-RIC]: Loading SM ID = 144 with def = PDCP_STATS_V0 
[NEAR-RIC]: Loading SM ID = 142 with def = MAC_STATS_V0 
[NEAR-RIC]: Loading SM ID = 147 with def = ORAN-E2SM-KPM 
[NEAR-RIC]: Loading SM ID = 146 with def = TC_STATS_V0 
[NEAR-RIC]: Loading SM ID = 148 with def = GTP_STATS_V0 
[NEAR-RIC]: Loading SM ID = 145 with def = SLICE_STATS_V0 
[NEAR-RIC]: Loading SM ID = 143 with def = RLC_STATS_V0 
Filename = /tmp/xapp_db_1694764595397918 
 [xApp]: E42 SETUP-REQUEST sent
adding event fd = 8 ev-> 4 
[xApp]: E42 SETUP-RESPONSE received
[xApp]: xApp ID = 7 
Registered E2 Nodes = 1 
Pending event size before remove = 1 
Connected E2 nodes = 1
Registered node 0 ran func id = 147 
 Generated of req_id = 1 
[xApp]: RIC SUBSCRIPTION REQUEST sent
adding event fd = 8 ev-> 5 
[xApp]: SUBSCRIPTION RESPONSE received
Pending event size before remove = 1 
[xApp]: Successfully SUBSCRIBED to ran function = 147 
Received RIC Indication:
---Metric: RSRP: Value: 0
Received RIC Indication:
---Metric: RSRP: Value: 0
Received RIC Indication:
---Metric: RSRP: Value: 0
Received RIC Indication:
---Metric: RSRP: Value: 0
Received RIC Indication:
---Metric: RSRP: Value: 0
Received RIC Indication:
---Metric: RSRP: Value: 0
Received RIC Indication:
---Metric: RSRP: Value: 0
Received RIC Indication:
---Metric: RSRP: Value: 0
Received RIC Indication:
---Metric: RSRP: Value: 0
Remove handle number = 1 
E42 RIC_SUBSCRIPTION_DELETE_REQUEST  sdr->ric_id.ran_func_id 147  sdr->ric_id.ric_req_id 1 
[xApp]: E42 SUBSCRIPTION-DELETE sent 
adding event fd = 8 ev-> 7 
Received RIC Indication:
---Metric: RSRP: Value: 0
[xApp]: E42 SUBSCRIPTION DELETE RESPONSE received
Pending event size before remove = 1 
[xApp]: Successfully received SUBSCRIPTION-DELETE-RESPONSE 
Closing the agent socket: Socket operation on non-socket 
[xApp]: Sucessfully stopped 
Test xApp run SUCCESSFULLY

The result above has no ping running. With ping running RSRP = 65. Note that the result won't be change because we run in ZeroMQ.

from: https://docs.srsran.com/projects/project/en/latest/tutorials/source/flexric/source/index.html

[xApp]: RIC SUBSCRIPTION REQUEST sent
adding event fd = 8 ev-> 5
[xApp]: SUBSCRIPTION RESPONSE received
Pending event size before remove = 1
[xApp]: Successfully SUBSCRIBED to ran function = 147
Received RIC Indication:
---Metric: RSRP: Value: 65
Received RIC Indication:
---Metric: RSRP: Value: 65
Received RIC Indication:
---Metric: RSRP: Value: 65
Received RIC Indication:
---Metric: RSRP: Value: 65
Received RIC Indication:
---Metric: RSRP: Value: 65
Received RIC Indication:
---Metric: RSRP: Value: 65
Received RIC Indication:
---Metric: RSRP: Value: 65
Received RIC Indication:
---Metric: RSRP: Value: 65
Received RIC Indication:
---Metric: RSRP: Value: 65
Remove handle number = 1
E42 RIC_SUBSCRIPTION_DELETE_REQUEST  sdr->ric_id.ran_func_id 147  sdr->ric_id.ric_req_id 1
[xApp]: E42 SUBSCRIPTION-DELETE sent
adding event fd = 8 ev-> 7
Received RIC Indication:
---Metric: RSRP: Value: 65
[xApp]: E42 SUBSCRIPTION DELETE RESPONSE received
Pending event size before remove = 1
[xApp]: Successfully received SUBSCRIPTION-DELETE-RESPONSE
Closing the agent socket: Socket operation on non-socket
[xApp]: Sucessfully stopped

for recent update (as tested on 29/11/2023) they change from RSRP metrics to DRB.RlcSduTransmittedVolumeDL - Data Radio Bearer RLC SDU (package type in RLC layer)

chatchamon@chatchamon-ThinkPad-L14-Gen-2:~/o-ran-e2-kpm/flexric/build/examples/xApp/c/monitor$ ./xapp_kpm_moni 
Setting the config -c file to /usr/local/etc/flexric/flexric.conf
Setting path -p for the shared libraries to /usr/local/lib/flexric/
[xAapp]: Initializing ... 
[xApp]: nearRT-RIC IP Address = 127.0.0.1, PORT = 36422
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libpdcp_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libmac_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libkpm_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libtc_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libgtp_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/libslice_sm.so 
[E2 AGENT]: Opening plugin from path = /usr/local/lib/flexric/librlc_sm.so 
[NEAR-RIC]: Loading SM ID = 144 with def = PDCP_STATS_V0 
[NEAR-RIC]: Loading SM ID = 142 with def = MAC_STATS_V0 
[NEAR-RIC]: Loading SM ID = 147 with def = ORAN-E2SM-KPM 
[NEAR-RIC]: Loading SM ID = 146 with def = TC_STATS_V0 
[NEAR-RIC]: Loading SM ID = 148 with def = GTP_STATS_V0 
[NEAR-RIC]: Loading SM ID = 145 with def = SLICE_STATS_V0 
[NEAR-RIC]: Loading SM ID = 143 with def = RLC_STATS_V0 
Filename = /tmp/xapp_db_1701248761004926 
 [xApp]: E42 SETUP-REQUEST sent
adding event fd = 8 ev-> 4 
[xApp]: E42 SETUP-RESPONSE received
[xApp]: xApp ID = 7 
Registered E2 Nodes = 1 
Pending event size before remove = 1 
Connected E2 nodes = 1
Registered node 0 ran func id = 147 
 Generated of req_id = 1 
[xApp]: RIC SUBSCRIPTION REQUEST sent
adding event fd = 8 ev-> 5 
[xApp]: SUBSCRIPTION RESPONSE received
Pending event size before remove = 1 
[xApp]: Successfully SUBSCRIBED to ran function = 147 
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 6
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 6
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 7
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 6
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 6
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 6
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 7
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 6
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 6
Remove handle number = 1 
E42 RIC_SUBSCRIPTION_DELETE_REQUEST  sdr->ric_id.ran_func_id 147  sdr->ric_id.ric_req_id 1 
[xApp]: E42 SUBSCRIPTION-DELETE sent 
adding event fd = 8 ev-> 7 
Received RIC Indication: 
---Metric: DRB.RlcSduTransmittedVolumeDL: Value: 6
[xApp]: E42 SUBSCRIPTION DELETE RESPONSE received
Pending event size before remove = 1 
[xApp]: Successfully received SUBSCRIPTION-DELETE-RESPONSE 
Closing the agent socket: Socket operation on non-socket 
[xApp]: Sucessfully stopped 
Test xApp run SUCCESSFULLY

info sim card

info on sim card
IMSI ICCID ACC PIN1 PUK1 PIN2 PUK2 Ki OPC ADM1 KIC1 KID1 KIK1 KIC2 KID2 KIK2 KIC3 KID3 KIK3
999700000062710 8988211000000627102 0001 1863 60656842 7188 69439472 0B0B97D8586F3E1DE59D0578247C448D 958254FECC8B3062FE01BF8C054677CF 57910110 ACA89091EFBA1D9DDD579FF23BCF46D2 5DB06EFC3FFC8019B919455638EFA7AB F9800E73708AFD6923741989581BD755 025558C332319F627C047EB8873C2514 FB6C8AF247047D0676CC07C41932BE2E A96886F051D1F9A89041D12A8337250E 87F8B66D6CA879AAA6D90AF0729BB343 0EAE945547BAAB8D2671341D5045BE9B 875546A3F15622E87A2C1419A7E18D18
999700000062711 8988211000000627110 0002 9273 80898657 2581 45431615 D2F199A52AE9D3E415AAFD6655AD3F88 410E9BB1834729971619E4D714D29B0A 34061030 F16439C77BFD0DC82E3453B472E6F473 872598184337F6184C76D9E0EF8CCAEB B942CCAB1326D81B584160421E87CC70 D136DCD03C2CBB50D59DB7C8B13D83E5 27E13714856403458C1FBA15126D8C8D 0951027029E9B7DF31E52C32406D7EDB CBA5A3E57674CA7E11F39BFD7E34C854 CF9FDBA6DA97E8A6B5E76EC35D52A895 49E8183DA60F2EE9E7507F75F2A68E95
999700000062712 8988211000000627128 0004 8330 26544562 3188 95209499 13C3845F6212C9AD945665C835508CC0 B884FD8F3497D1CBA3997208A81A4AA7 36645353 F9B3E413EF34180FD29C4FBB7DB04188 BAC70E5C5BEF8D6E20F8FA1EA68EE0EF 925C4077C9F155C7AEFF417374D10E57 D386248F970F9DB0CB816A16587F75C4 B792130A4A18C875097C0909997BFAF0 9B2D255ADBEDDA2F4871BC9EFEAC9BBF 288619DB6D727097C3A3B09EEEE4EB8D D54819B9964C7E10B71CF7C19124652B 73346CAD76D6882941C730553A3BFD50
999700000062713 8988211000000627136 0008 2481 43215893 5679 21192366 96E5235D7BD18E48BEF1B85521383C4E B1C0A05123C419D615B71EC0F8CE13AB 73947583 BAEFEE018E08B0DE276DCF03900BE2AF B2037C9475B7C9A2D8637F8B9651B835 AED8AB5736726DB4BF6CF1FE44E61BF6 EF00A3344612955BC3144E4DF8C719D4 A42E9EBDFB3768C98AFEED6154E375F7 240A034AE19677D51B1CB19DD5F63503 6AC9B3640FD1FD90D50B43004C72C0A4 EEA71035E53F67E7266E2C954212E6BC 55CADF364D70E23D7ADFA510902ABFC2
999700000062714 8988211000000627144 0010 9353 57390501 9336 63122917 DF8CBC862DB172C13CF09C37D7077009 0357A1719313FE31EA8112131810C98F 76782966 676FF8C1E63C9B5E42440BD2CAB904A9 012F2D53A84DD2A49B5EB3DF909150D8 AE2A7F7BBC1D90798642D14C1836A4F6 F4D6F15DFAE71D630929FF47A6A4DEF8 EF7184E65444042B2FC483F60F7E9A1F 16D5AA4B7ADD2BB651E7B4AA17AFF8CA A40F63E77B2030BBC395F2B273706E3E A3AB60E7035882F0749C580E72CFF258 C00189E62A613AEBAA3D62F503E79CF0
999700000062715 8988211000000627151 0020 9485 21058360 4872 96519362 E27DB5641388DC88023383DF5B401EDB 8D69C7534358D38261B6C259B80D3E98 68964860 286CB70291B4E834D9BA920732CDF591 FDBC115504FCC08F0D63185695FE37E9 132475092A918257375F1D887AFDAE4F 757C941FBD2A28F26CF0FE5E2AC5CC0E 15FE9B2C1A2A31CEE3CE58CEF5B0DF96 397F4A5A0C526957E1F3318B367126D0 AB7EEC36E89AEA1867FF156021927ADB 2DE9C29710AB2B525557DEA1DA8C55FC 839A9F164252E43764EBB26DC6614CD7
999700000062716 8988211000000627169 0040 1464 31198887 2057 36373760 F359B8166EF46A372C88206B4462A324 6DCF65673267D500311D018623921072 41623193 3862501C98CBBD5152A6CDBAF9BD2434 E80CD41BBBC89490042942CF27CB297B 3D6141749CEB1F752B31A734E1E45CBC F23E009CB9E7E5079C7ADB05580E979F E47CCF8AD44E69557FAF0EB80BF6A6B7 D98A7BEE33BB4CDF610C124AB98D6F07 36BC12C5136B7FD96CA3779C6BE02956 49471E50B41842C95614D4328F192068 B52AB6D87E61E924E155D42FE8E3C2EA
999700000062717 8988211000000627177 0080 3284 96140939 9643 93743379 028220E005F873F1A3284F42372B2988 43189F0995996E7E3679A066D24CEDED 28160161 1183A8DB6724D3E2A74A75A3A62B92ED 4B7DD9C10DC3DFE773DB599BD727DB9E FAC3A5060796B04CE55AA51F4256E967 17306A88BCDDBB2616462DF486696980 AC816E351D5D182DDB26F90D86306017 B5E8CE7827E40E5919A85F7C5914B1DE EA0EA0C3F684B22D138D6824E286DCE6 D30D39E10FBFCF16A304AB5A15D85CB4 170CC01E43B52D37DA4D09F2CFB5AE70
999700000062718 8988211000000627185 0100 6127 10427798 6198 23000926 F977E20E697D40B490705AEADE114FE0 F69529E7DED8F8E43778D009E5D489B7 90356141 5BC9015E4E096DAD5CB0373F96AF62A4 8601A153D1158185113FD671BD43C58B 66BC2351B1AA119F49C11173CBC0C6AC CEB29AE0E2517E66A39E6BAE3E8A7F8E FE59FBA49A16817FB3C66908220A7319 762B4058A6899BD1DDF7B2D435BA39BA 6DFAC54B3C4DADCA8F3E15692200D117 A70216CAF2EA3EFAAF4C44A58F7C002B 948D229E5A5F827A79D591F2F6BAE13C
999700000062719 8988211000000627193 0200 5640 25025736 1752 46086423 BEC6CEAECF3A07451282A63FE32C3D8A DC30FF0D150098F8F0D3F9FB5537AD72 96170539 613BCEAE8CB3F8EE5BEBD7AF47E19B73 EA046F17FCB1A4FFA54E70DB9305C849 4602678689B82831CD7D49B6431AE55E AEBF0E8647F3799DA00F00CB1941FCEF 246C031FE66C05DDE1B753FBF7199515 65E67D61D2F122DFF88F76AE6DE08495 C91FA25B7FFFF24CD85E69850554D6B8 B0BACD46371DC420FA0ADAB4DEAFF583 9C917F1A5E5CFF85FDBA12E6E59B936F

|