mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
O-RAN 7.2 two-machine demo config and setup files
Signed-off-by: Merkebu Girmay <merkebu.girmay@openairinterface.org>
This commit is contained in:
130
ci-scripts/conf_files/oran-demo/README.md
Normal file
130
ci-scripts/conf_files/oran-demo/README.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# O-RAN 7.2 Split Demo
|
||||
|
||||
Setup for running RU+UE on Peafowl and DU on Broadbill.
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Environment and Repository
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git oru-demo
|
||||
cd oru-demo
|
||||
git checkout oru-demo-branch
|
||||
```
|
||||
|
||||
Save as `~/oru-demo/testenv`:
|
||||
|
||||
```bash
|
||||
export TEST_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
export DPDK_INST=$TEST_DIR/dpdk-stable-20.11.9
|
||||
export C_INCLUDE_PATH="$DPDK_INST/include"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step 2: Build DPDK
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
wget http://fast.dpdk.org/rel/dpdk-20.11.9.tar.xz
|
||||
tar xf dpdk-20.11.9.tar.xz
|
||||
mv dpdk-stable-20.11.9 ~/oru-demo/dpdk-stable-20.11.9
|
||||
rm dpdk-20.11.9.tar.xz
|
||||
cd ~/oru-demo/dpdk-stable-20.11.9
|
||||
meson setup --prefix=$(pwd) build
|
||||
sudo ninja -C build install
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Build xRAN
|
||||
|
||||
```bash
|
||||
git clone https://gerrit.o-ran-sc.org/r/o-du/phy.git ~/oru-demo/phy-f-1.0
|
||||
cd ~/oru-demo/phy-f-1.0
|
||||
git checkout oran_f_release_v1.0
|
||||
git apply ~/oru-demo/cmake_targets/tools/oran_fhi_integration_patches/F/oru.patch
|
||||
git apply ~/oru-demo/cmake_targets/tools/oran_fhi_integration_patches/F/oaioran_F.patch
|
||||
cd ~/oru-demo/phy-f-1.0/fhi_lib/lib
|
||||
TARGET=x86 WIRELESS_SDK_TOOLCHAIN=gcc \
|
||||
RTE_SDK=~/oru-demo/dpdk-stable-20.11.9 \
|
||||
XRAN_DIR=~/oru-demo/phy-f-1.0/fhi_lib \
|
||||
make XRAN_LIB_SO=1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Build OAI
|
||||
|
||||
```bash
|
||||
source ~/oru-demo/testenv
|
||||
mkdir -p ~/oru-demo/build && cd ~/oru-demo/build
|
||||
|
||||
PKG_CONFIG_PATH=$DPDK_INST/lib/x86_64-linux-gnu/pkgconfig/ \
|
||||
cmake .. -GNinja \
|
||||
-DOAI_FHI72=ON \
|
||||
-Dxran_LOCATION=$TEST_DIR/phy-f-1.0/fhi_lib/lib \
|
||||
-DENABLE_WEBSRV=OFF -DENABLE_NRSCOPE=OFF -DENABLE_ENBSCOPE=OFF \
|
||||
-DENABLE_UESCOPE=OFF -DENABLE_IMSCOPE=OFF \
|
||||
-DENABLE_LDPC_CUDA=OFF -DENABLE_LDPC_AAL=OFF -DENABLE_LDPC_XDMA=OFF
|
||||
|
||||
PKG_CONFIG_PATH=$DPDK_INST/lib/x86_64-linux-gnu/pkgconfig/ \
|
||||
cmake --build . --target oran_fhlib_5g
|
||||
|
||||
PKG_CONFIG_PATH=$DPDK_INST/lib/x86_64-linux-gnu/pkgconfig/ \
|
||||
cmake --build . --target params_libconfig
|
||||
|
||||
PKG_CONFIG_PATH=$DPDK_INST/lib/x86_64-linux-gnu/pkgconfig/ \
|
||||
cmake --build . --target vrtsim oairu oran_fhlib_5g nr-softmodem nr-oru nr-uesoftmodem
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step 5: SR-IOV Setup
|
||||
|
||||
Run after every reboot. Scripts are in this folder.
|
||||
|
||||
Peafowl:
|
||||
```bash
|
||||
bash sriov-peafowl.sh
|
||||
```
|
||||
|
||||
Broadbill:
|
||||
```bash
|
||||
bash sriov-broadbill.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step 6: Run
|
||||
|
||||
Broadbill (DU):
|
||||
```bash
|
||||
source ~/oru-demo/testenv
|
||||
cd ~/oru-demo/build
|
||||
sudo taskset -c 6-24 env LD_LIBRARY_PATH=.:$DPDK_INST/lib/x86_64-linux-gnu/ \
|
||||
./nr-softmodem -O ../../ci-scripts/conf_files/oran-demo/du-demo.conf \
|
||||
--thread-pool 16,17,18,19,20,21,22,23,24 \
|
||||
--gNBs.[0].min_rxtxtime 6
|
||||
```
|
||||
|
||||
Peafowl (RU):
|
||||
```bash
|
||||
source ~/oru-demo/testenv
|
||||
cd ~/oru-demo/build
|
||||
sudo taskset -c 6-24 env LD_LIBRARY_PATH=.:$DPDK_INST/lib/x86_64-linux-gnu/ \
|
||||
./nr-oru -O ../../ci-scripts/conf_files/oran-demo/ru-demo.conf --vrtsim.role server
|
||||
```
|
||||
|
||||
Peafowl (UE):
|
||||
```bash
|
||||
source ~/oru-demo/testenv
|
||||
cd ~/oru-demo/build
|
||||
sudo taskset -c 25-31 env LD_LIBRARY_PATH=.:$DPDK_INST/lib/x86_64-linux-gnu/ \
|
||||
./nr-uesoftmodem -C 4049760000 -r 106 --numerology 1 --band 77 --ssb 516 \
|
||||
--device.name vrtsim --vrtsim.role client --ue-nb-ant-tx 1 --ue-nb-ant-rx 1
|
||||
```
|
||||
|
||||
Config file for RU: `ci-scripts/conf_files/oran-demo/ru-demo.conf`
|
||||
Config file for DU: `ci-scripts/conf_files/oran-demo/du-demo.conf`
|
||||
162
ci-scripts/conf_files/oran-demo/du-demo.conf
Normal file
162
ci-scripts/conf_files/oran-demo/du-demo.conf
Normal file
@@ -0,0 +1,162 @@
|
||||
Active_gNBs = ( "gNB-OAI");
|
||||
Asn1_verbosity = "none";
|
||||
gNBs =
|
||||
(
|
||||
{
|
||||
gNB_ID = 0xe00;
|
||||
gNB_name = "gNB-OAI";
|
||||
tracking_area_code = 1;
|
||||
plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ( { sst = 1; }); });
|
||||
nr_cellid = 1;
|
||||
pdsch_AntennaPorts_XP = 1;
|
||||
pusch_AntennaPorts = 1;
|
||||
do_CSIRS = 1;
|
||||
do_SRS = 0;
|
||||
sib1_tda = 15;
|
||||
servingCellConfigCommon = (
|
||||
{
|
||||
physCellId = 0;
|
||||
absoluteFrequencySSB = 669984;
|
||||
dl_frequencyBand = 77;
|
||||
dl_absoluteFrequencyPointA = 668712;
|
||||
dl_offstToCarrier = 0;
|
||||
dl_subcarrierSpacing = 1;
|
||||
dl_carrierBandwidth = 106;
|
||||
initialDLBWPlocationAndBandwidth = 28875;
|
||||
initialDLBWPsubcarrierSpacing = 1;
|
||||
initialDLBWPcontrolResourceSetZero = 11;
|
||||
initialDLBWPsearchSpaceZero = 0;
|
||||
ul_frequencyBand = 77;
|
||||
ul_offstToCarrier = 0;
|
||||
ul_subcarrierSpacing = 1;
|
||||
ul_carrierBandwidth = 106;
|
||||
pMax = 23;
|
||||
initialULBWPlocationAndBandwidth = 28875;
|
||||
initialULBWPsubcarrierSpacing = 1;
|
||||
prach_ConfigurationIndex = 159;
|
||||
prach_msg1_FDM = 0;
|
||||
prach_msg1_FrequencyStart = 0;
|
||||
zeroCorrelationZoneConfig = 0;
|
||||
preambleReceivedTargetPower = -100;
|
||||
preambleTransMax = 7;
|
||||
powerRampingStep = 2;
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
|
||||
ra_ContentionResolutionTimer = 7;
|
||||
rsrp_ThresholdSSB = 19;
|
||||
prach_RootSequenceIndex_PR = 2;
|
||||
prach_RootSequenceIndex = 1;
|
||||
msg1_SubcarrierSpacing = 1,
|
||||
restrictedSetConfig = 0,
|
||||
msg3_DeltaPreamble = 2;
|
||||
p0_NominalWithGrant = -100;
|
||||
pucchGroupHopping = 0;
|
||||
hoppingId = 0;
|
||||
p0_nominal = -96;
|
||||
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||
ssb_periodicityServingCell = 2;
|
||||
dmrs_TypeA_Position = 0;
|
||||
subcarrierSpacing = 1;
|
||||
referenceSubcarrierSpacing = 1;
|
||||
dl_UL_TransmissionPeriodicity = 5;
|
||||
nrofDownlinkSlots = 3;
|
||||
nrofDownlinkSymbols = 6;
|
||||
nrofUplinkSlots = 1;
|
||||
nrofUplinkSymbols = 4;
|
||||
ssPBCH_BlockPower = 0;
|
||||
}
|
||||
);
|
||||
SCTP :
|
||||
{
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
amf_ip_address = ({ ipv4 = "172.21.6.5"; });
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.200";
|
||||
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.200";
|
||||
GNB_PORT_FOR_S1U = 2152;
|
||||
};
|
||||
}
|
||||
);
|
||||
MACRLCs = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_s_preference = "local_L1";
|
||||
tr_n_preference = "local_RRC";
|
||||
pusch_TargetSNRx10 = 200;
|
||||
pucch_TargetSNRx10 = 200;
|
||||
ul_bler_target_upper = .35;
|
||||
ul_bler_target_lower = .15;
|
||||
pusch_FailureThres = 100;
|
||||
}
|
||||
);
|
||||
L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "local_mac";
|
||||
prach_dtx_threshold = 110;
|
||||
pucch0_dtx_threshold = 80;
|
||||
pusch_dtx_threshold = -100;
|
||||
tx_amp_backoff_dB = 36;
|
||||
L1_rx_thread_core = 8;
|
||||
L1_tx_thread_core = 9;
|
||||
phase_compensation = 0;
|
||||
}
|
||||
);
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "no";
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
bands = [77];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
sf_extension = 0;
|
||||
eNB_instances = [0];
|
||||
ru_thread_core = 10;
|
||||
sl_ahead = 6;
|
||||
tr_preference = "raw_if4p5";
|
||||
do_precoding = 0;
|
||||
}
|
||||
);
|
||||
security = {
|
||||
ciphering_algorithms = ( "nea0" );
|
||||
integrity_algorithms = ( "nia2", "nia0" );
|
||||
drb_ciphering = "yes";
|
||||
drb_integrity = "no";
|
||||
};
|
||||
log_config :
|
||||
{
|
||||
global_log_level = "info";
|
||||
hw_log_level = "info";
|
||||
phy_log_level = "info";
|
||||
mac_log_level = "info";
|
||||
rlc_log_level = "info";
|
||||
pdcp_log_level = "info";
|
||||
rrc_log_level = "info";
|
||||
ngap_log_level = "info";
|
||||
f1ap_log_level = "info";
|
||||
};
|
||||
fhi_72 = {
|
||||
dpdk_devices = ("0000:41:11.0", "0000:41:11.1");
|
||||
system_core = 11;
|
||||
io_core = 12;
|
||||
worker_cores = (13);
|
||||
ru_addr = ("00:11:22:44:64:66", "00:11:22:44:64:67");
|
||||
mtu = 9600;
|
||||
fh_config = ({
|
||||
T1a_cp_dl = (285, 470);
|
||||
T1a_cp_ul = (285, 429);
|
||||
T1a_up = (300, 450);
|
||||
Ta3_up = (50, 350);
|
||||
Ta4 = (25, 350);
|
||||
ru_config = {
|
||||
iq_width = 16;
|
||||
iq_width_prach = 16;
|
||||
};
|
||||
});
|
||||
};
|
||||
69
ci-scripts/conf_files/oran-demo/ru-demo.conf
Normal file
69
ci-scripts/conf_files/oran-demo/ru-demo.conf
Normal file
@@ -0,0 +1,69 @@
|
||||
Asn1_verbosity = "none";
|
||||
ORUs = (
|
||||
{
|
||||
tx_bw = [106];
|
||||
rx_bw = [106];
|
||||
carrier_tx = [4049760];
|
||||
carrier_rx = [4049760];
|
||||
prach_config_index = 159;
|
||||
prach_msg1_start = 0;
|
||||
tdd_period = 5;
|
||||
num_dl_slots = 3;
|
||||
num_dl_symbols = 6;
|
||||
num_ul_slots = 1;
|
||||
num_ul_symbols = 4;
|
||||
numerology = 1;
|
||||
tp_cores = [-1];
|
||||
num_tp_cores = 1;
|
||||
ru_thread_core = 9
|
||||
});
|
||||
RUs = (
|
||||
{
|
||||
local_rf = "no";
|
||||
nb_tx = 1;
|
||||
nb_rx = 1;
|
||||
att_tx = 0;
|
||||
att_rx = 0;
|
||||
bands = [77];
|
||||
max_pdschReferenceSignalPower = -27;
|
||||
max_rxgain = 75;
|
||||
sf_extension = 0;
|
||||
eNB_instances = [0];
|
||||
sl_ahead = 6;
|
||||
tr_preference = "raw_if4p5";
|
||||
do_precoding = 0;
|
||||
});
|
||||
log_config :
|
||||
{
|
||||
global_log_level = "info";
|
||||
hw_log_level = "info";
|
||||
phy_log_level = "info";
|
||||
mac_log_level = "info";
|
||||
rlc_log_level = "info";
|
||||
pdcp_log_level = "info";
|
||||
rrc_log_level = "info";
|
||||
ngap_log_level = "info";
|
||||
f1ap_log_level = "info";
|
||||
};
|
||||
fhi_72 = {
|
||||
dpdk_devices = ("0000:01:01.0", "0000:01:01.1");
|
||||
system_core = 6;
|
||||
io_core = 7;
|
||||
worker_cores = (8);
|
||||
du_addr = ("00:11:22:44:54:00", "00:11:22:44:54:01");
|
||||
mtu = 9600;
|
||||
file_prefix = "ru";
|
||||
app_id = "RU";
|
||||
fh_config = ({
|
||||
Ta3_up = (50, 350);
|
||||
T1a_cp_dl = (285, 470);
|
||||
T1a_cp_ul = (285, 429);
|
||||
T1a_up = (300, 450);
|
||||
Ta4 = (400, 440);
|
||||
T2a_up = (350, 1200);
|
||||
ru_config = {
|
||||
iq_width = 16;
|
||||
iq_width_prach = 16;
|
||||
};
|
||||
});
|
||||
};
|
||||
26
ci-scripts/conf_files/oran-demo/sriov-broadbill.sh
Normal file
26
ci-scripts/conf_files/oran-demo/sriov-broadbill.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
# SR-IOV setup for Broadbill (O-DU machine)
|
||||
# NIC: ens2f1np1 (Intel E810, PCI 0000:41:00.1)
|
||||
# VF0: 0000:41:11.0 MAC=00:11:22:44:54:00
|
||||
# VF1: 0000:41:11.1 MAC=00:11:22:44:54:01
|
||||
# Run after every reboot before starting nr-softmodem
|
||||
|
||||
set -e
|
||||
|
||||
echo 0 | sudo tee /sys/bus/pci/devices/0000:41:00.1/sriov_numvfs
|
||||
echo 2 | sudo tee /sys/bus/pci/devices/0000:41:00.1/sriov_numvfs
|
||||
|
||||
sudo ip link set ens2f1np1 vf 0 mac 00:11:22:44:54:00 vlan 3
|
||||
sudo ip link set ens2f1np1 vf 1 mac 00:11:22:44:54:01 vlan 3
|
||||
|
||||
sudo modprobe vfio-pci
|
||||
|
||||
echo vfio-pci | sudo tee /sys/bus/pci/devices/0000:41:11.0/driver_override
|
||||
echo 0000:41:11.0 | sudo tee /sys/bus/pci/drivers/iavf/unbind 2>/dev/null || true
|
||||
echo 0000:41:11.0 | sudo tee /sys/bus/pci/drivers/vfio-pci/bind 2>/dev/null || true
|
||||
|
||||
echo vfio-pci | sudo tee /sys/bus/pci/devices/0000:41:11.1/driver_override
|
||||
echo 0000:41:11.1 | sudo tee /sys/bus/pci/drivers/iavf/unbind 2>/dev/null || true
|
||||
echo 0000:41:11.1 | sudo tee /sys/bus/pci/drivers/vfio-pci/bind 2>/dev/null || true
|
||||
|
||||
echo "SR-IOV setup complete on Broadbill"
|
||||
26
ci-scripts/conf_files/oran-demo/sriov-peafowl.sh
Normal file
26
ci-scripts/conf_files/oran-demo/sriov-peafowl.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
# SR-IOV setup for Peafowl (O-RU machine)
|
||||
# NIC: enp1s0f0 (Intel E810, PCI 0000:01:00.0)
|
||||
# VF0: 0000:01:01.0 MAC=00:11:22:44:64:66
|
||||
# VF1: 0000:01:01.1 MAC=00:11:22:44:64:67
|
||||
# Run after every reboot before starting nr-oru
|
||||
|
||||
set -e
|
||||
|
||||
echo 0 | sudo tee /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs
|
||||
echo 2 | sudo tee /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs
|
||||
|
||||
sudo ip link set enp1s0f0 vf 0 mac 00:11:22:44:64:66 vlan 3
|
||||
sudo ip link set enp1s0f0 vf 1 mac 00:11:22:44:64:67 vlan 3
|
||||
|
||||
sudo modprobe vfio-pci
|
||||
|
||||
echo vfio-pci | sudo tee /sys/bus/pci/devices/0000:01:01.0/driver_override
|
||||
echo 0000:01:01.0 | sudo tee /sys/bus/pci/drivers/iavf/unbind 2>/dev/null || true
|
||||
echo 0000:01:01.0 | sudo tee /sys/bus/pci/drivers/vfio-pci/bind 2>/dev/null || true
|
||||
|
||||
echo vfio-pci | sudo tee /sys/bus/pci/devices/0000:01:01.1/driver_override
|
||||
echo 0000:01:01.1 | sudo tee /sys/bus/pci/drivers/iavf/unbind 2>/dev/null || true
|
||||
echo 0000:01:01.1 | sudo tee /sys/bus/pci/drivers/vfio-pci/bind 2>/dev/null || true
|
||||
|
||||
echo "SR-IOV setup complete on Peafowl"
|
||||
Reference in New Issue
Block a user