wiki:Tutorials/4G5G/ORANSplit7_2

Version 5 (modified by prasanthi, 8 days ago) ( diff )

ORAN Split 7.2 E2E

Description

This tutorial contains instructions for setting up 5G ORAN Split 7.2 network using OAI/srsRAN + various O-RUs(Lite On, Jabil, Benetel) in COSMOS SB1.

Prerequisites

In order to access the test bed, create a reservation and have it approved by the reservation service. Access to the resources is granted after the reservation is confirmed. Please follow the process shown on the COSMOS getting started page to get started.

Resources required

1 server in COSMOS SB1 domain and sdr1-in3(with SIMCom SIM8200EA-M2 USB modem)

Tutorial Setup

Follow the steps below to gain access to the sandbox 1 console and set up nodes with appropriate images.

  1. If you don't have one already, sign up for a COSMOS account
  2. Create a resource reservation on sandbox 1
  3. Login into sandbox 1 console (console.sb1.cosmos-lab.org) with two SSH sessions.
  4. Make sure all the resources in the domain are turned off:
    omf tell -a offh -t system:topo:allres  
    
    For this tutorial we will be using the SB1 servers, srv1-lg1, srv2-lg1, USRP N310s in large and medium nodes, sdr1-s1-lg1 and sdr1-md1.
  5. Load 5G-tutorial-cosmos.ndz on srv1-lg1,srv2-lg1.
    omf load -i sb1_oai_liteon_11_8_2024.ndz -t srv1-lg1
    
  6. To access the UE, Waveshare SIM8200 USB modem connected to sdr1-in3, load the image waveshare-sim8200.ndz on sdr1-in3. This image has the SIMCOM network drivers installed to control the modem.
    omf load -i waveshare-sim8200.ndz -t sdr1-in3
    
  7. Turn all the required resources on and check the status
    omf tell -a on -t srv1-lg1,sdr1-in3
    
    omf stat -t system:topo:allres
    
  8. ssh to the servers, use option -Y for using GUI.
    ssh root@srv1-lg1
    

Tutorial Execution

Initialize DPDK

root@srv1-lg1:~# ./init_dpdk.sh
--- Disable CPU sleep state ---
WARNING: cpupower not found for kernel 5.15.0-1071

  You may need to install the following packages for this specific kernel:
    linux-tools-5.15.0-1071-realtime
    linux-cloud-tools-5.15.0-1071-realtime

  You may also want to install one of the following packages to keep up to date:
    linux-tools-realtime
    linux-cloud-tools-realtime
--- Set interface enp134s0f0 ring buffer size to 4096 ---
----- Set RX buffer size -----
----- Set TX buffer size -----
--- Set interface enp134s0f0 MTU to 9000 ---
--- Create VFs (enp134s0f0, MTU: 9000, VLAN: 4) ---
----- Creating VF 1 -----
----- Creating VF 2 -----
--- Unbind/rebind DPDK devices (86:01.0 86:01.1) ---
----- Unbinding VF 0 -----
----- Unbinding VF 1 -----
----- Binding VF 0 -----
----- Binding VF 1 -----
--- Final VF setup ---
3: enp134s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 50:7c:6f:6c:76:9c brd ff:ff:ff:ff:ff:ff
    vf 0     link/ether 00:11:22:33:44:66 brd ff:ff:ff:ff:ff:ff, vlan 4, spoof checking off, link-state auto, trust off
    vf 1     link/ether 00:11:22:33:44:67 brd ff:ff:ff:ff:ff:ff, vlan 4, spoof checking off, link-state auto, trust off

Run the 5G Core

root@srv1-lg1:/opt/amarisoft/ltemme-linux-2024-09-13# ./lte_init.sh
Select enp134s0f0 enp94s0f0np0 default interface
Configure NAT for enp134s0f0
Configure NAT for enp94s0f0np0
net.ipv4.tcp_congestion_control = bbr
net.core.rmem_max = 62500000
net.core.wmem_max = 62500000
root@srv1-lg1:/opt/amarisoft/ltemme-linux-2024-09-13# ./ltemme config/mme.cfg
Core Network version 2024-09-13, Copyright (C) 2012-2024 Amarisoft
This software is licensed to Rutgers University (The State University of New Jersey).
License server: license.orbit-lab.org (0b-b4-46-dc-2f-83-58-cb)
Support and software update available until 2025-08-18.

(mme)

Run OAI CU+DU

root@srv1-lg1:~# ./run_oai_liteon.sh CMDLINE: "./openairinterface5g/cmake_targets/ran_build/build/nr-softmodem" "-O" "/root/liteon/band78.2x2.40M.timing.conf" "—sa" "—thread-pool" "0,2,4,6,8,10,12,14" [LIBCONFIG] Path for include directive set to: /root/liteon [CONFIG] function config_libconfig_init returned 0 [CONFIG] config module libconfig loaded [CONFIG] debug flags: 0x00000000 log init done Reading in command-line options [ENB_APP] nfapi (0) running mode: MONOLITHIC

Check Liteon Status

ssh user@liteon-oru-mgmt.instrument.orbit-lab.org
user@liteon-oru-mgmt.instrument.orbit-lab.org's password:
Welcome to Liteon ORU Wed Nov 13 17:51:48 UTC 2024
Please enter help
> enable
Enter Password:
Auto exit privileged commands in 300 Seconds
# show oru-status
Sync State  : SYNCHRONIZED
RF State    : Ready
DPD         : Ready
DuConnected : Ready
# show pm-data
1,POWER,2024-11-13T17:59:55Z,2024-11-13T18:00:12Z,o-ran-hardware:O-RU-FPGA,10.6144,11.7710,11.1235,iana-hardware:cpu,10.6144,11.7710,11.1235
2,TEMPERATURE,2024-11-13T17:59:55Z,2024-11-13T18:00:12Z,o-ran-hardware:O-RU-FPGA,57.9699,59.9283,58.6268,iana-hardware:cpu,56.8352,58.9491,57.6974
13,VOLTAGE,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,0,0.0000,2024-11-13T17:59:56Z,2.0142,2024-11-13T18:00:19Z,0.0000,2024-11-13T17:59:56Z,0.0000,2024-11-13T18:00:29Z,3499680000
1,POWER,2024-11-13T18:00:12Z,2024-11-13T18:00:29Z,o-ran-hardware:O-RU-FPGA,10.6720,12.2464,11.1989,iana-hardware:cpu,10.6720,12.2464,11.1989
2,TEMPERATURE,2024-11-13T18:00:12Z,2024-11-13T18:00:29Z,o-ran-hardware:O-RU-FPGA,57.9854,59.7729,58.8154,iana-hardware:cpu,56.5866,59.6641,57.9875
1,RX_ON_TIME,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,ru1,1537482
2,RX_EARLY,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,ru1,0
3,RX_LATE,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,ru1,0
6,RX_TOTAL,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,ru1,1604032
7,RX_ON_TIME_C,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,ru1,64192
8,RX_EARLY_C,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,ru1,0
9,RX_LATE_C,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,ru1,0
1,TX_TOTAL,2024-11-13T17:59:55Z,2024-11-13T18:00:29Z,ru1,192841


SIMCOM SIM8200EA-M2 UE

root@sdr1-in3:~# minicom -D /dev/ttyUSB2

Welcome to minicom 2.7.1

OPTIONS: I18n
Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyUSB2, 17:45:12

Press CTRL-A Z for help on special keys

at
OK
at+cops=?
+COPS: (1,"Amarisoft Network","Amarisof","310014",12),(1,"Verizon","Verizon","311480",7),(3,"T-Mobile","T-Mobile","310260",7),(3,"AT&T","AT&T","310410",7),(3,"313 100","313 100","313100",7),(3,"T-Mobile","T-Mobile","310260",12),(1,"311 490","311 490","311490",12),(3,"313 340","313 340)

OK
  • The at+cops=? command takes a few minutes to return. You can see that it finds the Amarisoft network. This AT command prompts the modem to scan and attach to the base station.
  • Run the following application on sdr1-in3
    root@sdr1-in3:~/SIM8200_code/Goonline# ./simcom-cm
    [11-13_18:27:19:600] Build Version: 2020-07-14 10:20:15
    [11-13_18:27:19:600] SIMCOM_CM START...
    [11-13_18:27:19:600] ./simcom-cm profile[1] = (null)/(null)/(null)/0, pincode = (null)
    [11-13_18:27:19:600] Find /sys/bus/usb/devices/2-4.4 idVendor=1e0e idProduct=9001
    [11-13_18:27:19:600] Find /sys/bus/usb/devices/2-4.4:1.5/net/wwp0s20f0u4u4i5
    [11-13_18:27:19:600] Find usbnet_adapter = wwp0s20f0u4u4i5
    [11-13_18:27:19:600] Find /sys/bus/usb/devices/2-4.4:1.5/usbmisc/cdc-wdm0
    [11-13_18:27:19:600] Find qmichannel = /dev/cdc-wdm0
    [11-13_18:27:19:601] netcard driver = qmi_wwan_simcom
    [11-13_18:27:19:604] cdc_wdm_fd = 7
    [11-13_18:27:19:676] Get clientWDS = 15
    [11-13_18:27:19:708] Get clientDMS = 1
    [11-13_18:27:19:740] Get clientNAS = 2
    [11-13_18:27:19:772] Get clientUIM = 1
    [11-13_18:27:19:804] Get clientWDA = 1
    [11-13_18:27:19:836] requestBaseBandVersion MPSS.HI.2.0.c3-00246-SDX55_CPEALL_PACK-1  1  [Oct 26 2020 16:00:00]
    [11-13_18:27:19:900] requestGetSIMStatus SIMStatus: SIM_READY
    [11-13_18:27:19:932] requestGetProfile[1] cosmos-5G///0
    [11-13_18:27:19:964] requestRegistrationState2 MCC: 310, MNC: 14, PS: Attached, DataCap: NR5G
    [11-13_18:27:19:996] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
    [11-13_18:27:20:060] requestRegistrationState2 MCC: 310, MNC: 14, PS: Attached, DataCap: NR5G
    [11-13_18:27:20:124] requestSetupDataCall WdsConnectionIPv4Handle: 0x734209c0
    [11-13_18:27:20:188] requestQueryDataCall IPv4ConnectionStatus: CONNECTED
    [11-13_18:27:20:220] ifconfig wwp0s20f0u4u4i5 up
    [11-13_18:27:20:252] Fail to access /usr/share/udhcpc/default.script, errno: 2 (No such file or directory)
    [11-13_18:27:20:252] busybox udhcpc -f -n -q -t 5 -s /usr/share/udhcpc/default.script -i wwp0s20f0u4u4i5
    udhcpc: started, v1.27.2
    udhcpc: sending discover
    udhcpc: sending select for 192.168.2.2
    udhcpc: lease of 192.168.2.2 obtained, lease time 7200
    
    
  • Set the IP address of the wwan interface to the one allocated by the MME (192.168.2.2 in this case)
    root@sdr1-in3:~# ifconfig wwp0s20f0u4u4i5 192.168.2.2 netmask 255.255.255.0
    
  • You can now communicate with the base station over the air(5G). The data connection can be tested with ping or iperf as below.
    root@sdr1-in3:~# ping 192.168.2.1
    PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
    64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=21.8 ms
    64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=19.2 ms
    64 bytes from 192.168.2.1: icmp_seq=3 ttl=64 time=18.2 ms
    64 bytes from 192.168.2.1: icmp_seq=4 ttl=64 time=16.8 ms
    ^C
    --- 192.168.2.1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3004ms
    rtt min/avg/max/mdev = 16.800/19.043/21.802/1.828 ms
    
    

Iperf test

root@sdr1-in3:~# iperf3 -s -B 192.168.2.2
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

root@srv1-lg1:~# iperf3 -c 192.168.2.2 -i 1 -b 0 -t 10
Connecting to host 192.168.2.2, port 5201
[  5] local 192.168.2.1 port 45344 connected to 192.168.2.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  7.99 MBytes  67.0 Mbits/sec  100   35.4 KBytes
[  5]   1.00-2.00   sec  3.75 MBytes  31.5 Mbits/sec   52    583 KBytes
[  5]   2.00-3.00   sec  6.25 MBytes  52.4 Mbits/sec   91    250 KBytes
[  5]   3.00-4.00   sec  6.25 MBytes  52.4 Mbits/sec   88   1.03 MBytes
[  5]   4.00-5.00   sec  7.50 MBytes  62.9 Mbits/sec   99    631 KBytes
[  5]   5.00-6.00   sec  5.00 MBytes  41.9 Mbits/sec  107    578 KBytes
[  5]   6.00-7.00   sec  6.25 MBytes  52.4 Mbits/sec   24    806 KBytes
[  5]   7.00-8.00   sec  8.75 MBytes  73.4 Mbits/sec   38   1.06 MBytes
[  5]   8.00-9.00   sec  6.25 MBytes  52.4 Mbits/sec  100    653 KBytes
[  5]   9.00-10.00  sec  7.50 MBytes  62.9 Mbits/sec   15    585 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  65.5 MBytes  54.9 Mbits/sec  714             sender
[  5]   0.00-10.00  sec  62.1 MBytes  52.1 Mbits/sec                  receiver

Note: See TracWiki for help on using the wiki.