Merge remote-tracking branch 'origin/NR_SA_Tutorials' into integration_2024_w06
This commit is contained in:
@@ -58,11 +58,12 @@ sudo ./program_uicc --adm 12345678 --imsi 001010000000001 --isdn 00000001 --acc
|
||||
|
||||
### Build UHD from source
|
||||
```bash
|
||||
sudo apt install -y libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
|
||||
# https://files.ettus.com/manual/page_build_guide.html
|
||||
sudo apt install -y autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool g++ git inetutils-tools libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev libusb-dev python3-dev python3-mako python3-numpy python3-requests python3-scipy python3-setuptools python3-ruamel.yaml
|
||||
|
||||
git clone https://github.com/EttusResearch/uhd.git ~/uhd
|
||||
cd ~/uhd
|
||||
git checkout v4.5.0.0
|
||||
git checkout v4.6.0.0
|
||||
cd host
|
||||
mkdir build
|
||||
cd build
|
||||
@@ -87,9 +88,7 @@ cd ~/openairinterface5g/cmake_targets
|
||||
./build_oai -I
|
||||
|
||||
# Build OAI gNB
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets
|
||||
cd ~/openairinterface5g/cmake_targets
|
||||
./build_oai -w USRP --ninja --gNB -C
|
||||
```
|
||||
|
||||
@@ -106,24 +105,18 @@ docker compose up -d
|
||||
|
||||
### USRP B210
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --sa -E --continuous-tx
|
||||
```
|
||||
### USRP N300
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.fr1.273PRB.2x2.usrpn300.conf --sa --usrp-tx-thread-config 1
|
||||
```
|
||||
|
||||
### USRP X300
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.fr1.273PRB.2x2.usrpn300.conf --sa --usrp-tx-thread-config 1 -E --continuous-tx
|
||||
```
|
||||
|
||||
|
||||
@@ -58,16 +58,8 @@ rm -r ~/openairinterface5g-develop-doc-tutorial_resources-oai-cn5g ~/oai-cn5g.zi
|
||||
## 2.3 Pull OAI CN5G docker images
|
||||
|
||||
```bash
|
||||
docker pull mysql:8.0
|
||||
docker pull oaisoftwarealliance/oai-amf:develop
|
||||
docker pull oaisoftwarealliance/oai-nrf:develop
|
||||
docker pull oaisoftwarealliance/oai-smf:develop
|
||||
docker pull oaisoftwarealliance/oai-udr:develop
|
||||
docker pull oaisoftwarealliance/oai-udm:develop
|
||||
docker pull oaisoftwarealliance/oai-ausf:develop
|
||||
docker pull oaisoftwarealliance/oai-spgwu-tiny:develop
|
||||
docker pull oaisoftwarealliance/trf-gen-cn5g:jammy
|
||||
docker pull oaisoftwarealliance/ims:latest
|
||||
cd ~/oai-cn5g
|
||||
docker compose pull
|
||||
```
|
||||
|
||||
# 3. Run OAI CN5G
|
||||
|
||||
@@ -46,11 +46,12 @@ Please install and configure OAI CN5G as described here:
|
||||
|
||||
### Build UHD from source
|
||||
```bash
|
||||
sudo apt install -y libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
|
||||
# https://files.ettus.com/manual/page_build_guide.html
|
||||
sudo apt install -y autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool g++ git inetutils-tools libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev libusb-dev python3-dev python3-mako python3-numpy python3-requests python3-scipy python3-setuptools python3-ruamel.yaml
|
||||
|
||||
git clone https://github.com/EttusResearch/uhd.git ~/uhd
|
||||
cd ~/uhd
|
||||
git checkout v4.5.0.0
|
||||
git checkout v4.6.0.0
|
||||
cd host
|
||||
mkdir build
|
||||
cd build
|
||||
@@ -78,9 +79,7 @@ cd ~/openairinterface5g/cmake_targets
|
||||
sudo apt install -y libforms-dev libforms-bin
|
||||
|
||||
# Build OAI gNB
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets
|
||||
cd ~/openairinterface5g/cmake_targets
|
||||
./build_oai -w USRP --ninja --nrUE --gNB --build-lib "nrscope" -C
|
||||
```
|
||||
|
||||
@@ -97,82 +96,71 @@ docker compose up -d
|
||||
|
||||
### USRP B210
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --gNBs.[0].min_rxtxtime 6 --sa -E --continuous-tx
|
||||
```
|
||||
### USRP N300
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.fr1.273PRB.2x2.usrpn300.conf --gNBs.[0].min_rxtxtime 6 --sa --usrp-tx-thread-config 1
|
||||
```
|
||||
|
||||
### USRP X300
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.fr1.273PRB.2x2.usrpn300.conf --gNBs.[0].min_rxtxtime 6 --sa --usrp-tx-thread-config 1 -E --continuous-tx
|
||||
```
|
||||
|
||||
### RFsimulator
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --gNBs.[0].min_rxtxtime 6 --rfsim --sa
|
||||
```
|
||||
|
||||
### RFsimulator in FR2
|
||||
```bash
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band257.32prb.usrpx410.conf --rfsim
|
||||
```
|
||||
|
||||
# 5. OAI UE
|
||||
|
||||
## 5.1 SIM Card
|
||||
Edit openair3/UICC/usim_interface.c
|
||||
```bash
|
||||
#define UICC_PARAMS_DESC {\
|
||||
{"imsi", "USIM IMSI\n", 0, strptr:&(uicc->imsiStr), defstrval:"001010000000001", TYPE_STRING, 0 },\
|
||||
{"nmc_size" "number of digits in NMC", 0, iptr:&(uicc->nmc_size), defintval:2, TYPE_INT, 0 },\
|
||||
{"key", "USIM Ki\n", 0, strptr:&(uicc->keyStr), defstrval:"fec86ba6eb707ed08905757b1bb44b8f", TYPE_STRING, 0 },\
|
||||
{"opc", "USIM OPc\n", 0, strptr:&(uicc->opcStr), defstrval:"c42449363bbad02b66d16bc975d77cc1", TYPE_STRING, 0 },\
|
||||
{"amf", "USIM amf\n", 0, strptr:&(uicc->amfStr), defstrval:"8000", TYPE_STRING, 0 },\
|
||||
{"sqn", "USIM sqn\n", 0, strptr:&(uicc->sqnStr), defstrval:"000000", TYPE_STRING, 0 },\
|
||||
{"dnn", "UE dnn (apn)\n", 0, strptr:&(uicc->dnnStr), defstrval:"oai", TYPE_STRING, 0 },\
|
||||
{"nssai_sst", "UE nssai\n", 0, iptr:&(uicc->nssai_sst), defintval:1, TYPE_INT, 0 }, \
|
||||
{"nssai_sd", "UE nssai\n", 0, iptr:&(uicc->nssai_sd), defintval:0xffffff, TYPE_INT, 0 }, \
|
||||
};
|
||||
```
|
||||
|
||||
## 5.2 Testing OAI nrUE with USRP B210
|
||||
|
||||
## 5.1 Run OAI nrUE
|
||||
### USRP B210
|
||||
Important notes:
|
||||
- This should be run in a second Ubuntu 22.04 host, other than gNB
|
||||
- It only applies when running OAI gNB with USRP B210
|
||||
|
||||
Run OAI nrUE
|
||||
Run OAI nrUE with USRP B210
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --ue-fo-compensation --sa -E --uicc0.imsi 001010000000001
|
||||
```
|
||||
|
||||
## 5.2 Testing OAI nrUE with RFsimulator
|
||||
### RFsimulator
|
||||
Important notes:
|
||||
- This should be run on the same host as the OAI gNB
|
||||
- It only applies when running OAI gNB with RFsimulator
|
||||
|
||||
Run OAI nrUE with RFsimulator
|
||||
```bash
|
||||
cd ~/openairinterface5g
|
||||
source oaienv
|
||||
cd cmake_targets/ran_build/build
|
||||
sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --rfsim --sa --uicc0.imsi 001010000000001 --rfsimulator.serveraddr 127.0.0.1
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --sa --uicc0.imsi 001010000000001 --rfsim
|
||||
```
|
||||
|
||||
### 5.2.1 Ping test
|
||||
- UE host
|
||||
### RFsimulator in FR2
|
||||
Important notes:
|
||||
- This should be run on the same host as the OAI gNB
|
||||
- It only applies when running OAI gNB with RFsimulator in FR2
|
||||
|
||||
Run OAI nrUE with RFsimulator in FR2
|
||||
```bash
|
||||
cd ~/openairinterface5g/cmake_targets/ran_build/build
|
||||
sudo ./nr-uesoftmodem -r 32 --numerology 3 --band 257 -C 27533280000 --sa --uicc0.imsi 001010000000001 --ssb 72 --rfsim
|
||||
```
|
||||
|
||||
## 5.2 End-to-end connectivity test
|
||||
- Ping test from the UE host to the CN5G
|
||||
```bash
|
||||
ping 192.168.70.135 -I oaitun_ue1
|
||||
```
|
||||
|
||||
@@ -59,6 +59,23 @@ nfs:
|
||||
n4:
|
||||
interface_name: eth0
|
||||
port: 8805
|
||||
upf:
|
||||
host: oai-upf
|
||||
sbi:
|
||||
port: 8080
|
||||
api_version: v1
|
||||
interface_name: eth0
|
||||
n3:
|
||||
interface_name: eth0
|
||||
port: 2152
|
||||
n4:
|
||||
interface_name: eth0
|
||||
port: 8805
|
||||
n6:
|
||||
interface_name: eth0
|
||||
n9:
|
||||
interface_name: eth0
|
||||
port: 2152
|
||||
udm:
|
||||
host: oai-udm
|
||||
sbi:
|
||||
@@ -94,6 +111,16 @@ database:
|
||||
generate_random: true
|
||||
connection_timeout: 300 # seconds
|
||||
|
||||
## general single_nssai configuration
|
||||
## Defines YAML anchors, which are reused in the config file
|
||||
snssais:
|
||||
- &embb_slice1
|
||||
sst: 1
|
||||
- &embb_slice2
|
||||
sst: 1
|
||||
- &embb_slice3
|
||||
sst: 1
|
||||
|
||||
############## NF-specific configuration
|
||||
amf:
|
||||
pid_directory: "/var/run"
|
||||
@@ -110,7 +137,7 @@ amf:
|
||||
served_guami_list:
|
||||
- mcc: 001
|
||||
mnc: 01
|
||||
amf_region_id: 80
|
||||
amf_region_id: 01
|
||||
amf_set_id: 001
|
||||
amf_pointer: 01
|
||||
plmn_support_list:
|
||||
@@ -118,7 +145,9 @@ amf:
|
||||
mnc: 01
|
||||
tac: 0x0001
|
||||
nssai:
|
||||
- sst: 1
|
||||
- *embb_slice1
|
||||
- *embb_slice2
|
||||
- *embb_slice3
|
||||
supported_integrity_algorithms:
|
||||
- "NIA1"
|
||||
- "NIA2"
|
||||
@@ -134,7 +163,7 @@ smf:
|
||||
use_local_pcc_rules: yes # Use infos from local_pcc_rules or from PCF
|
||||
# we resolve from NRF, this is just to configure usage_reporting
|
||||
upfs:
|
||||
- host: oai-spgwu
|
||||
- host: oai-upf
|
||||
config:
|
||||
enable_usage_reporting: no
|
||||
ue_dns:
|
||||
@@ -145,40 +174,68 @@ smf:
|
||||
ims:
|
||||
pcscf_ipv4: "192.168.70.139"
|
||||
pcscf_ipv6: "fe80::7915:f408:1787:db8b"
|
||||
# the DNN you configure here should be configured in "dnns"
|
||||
# the DNN you configure here should be configured in "dnns"
|
||||
# follows the SmfInfo datatype from 3GPP TS 29.510
|
||||
smf_info:
|
||||
sNssaiSmfInfoList:
|
||||
- sNssai: *embb_slice1
|
||||
dnnSmfInfoList:
|
||||
- dnn: "oai"
|
||||
- sNssai: *embb_slice2
|
||||
dnnSmfInfoList:
|
||||
- dnn: "openairinterface"
|
||||
- sNssai: *embb_slice3
|
||||
dnnSmfInfoList:
|
||||
- dnn: "ims"
|
||||
local_subscription_infos:
|
||||
- single_nssai:
|
||||
sst: 1
|
||||
- single_nssai: *embb_slice1
|
||||
dnn: "oai"
|
||||
qos_profile:
|
||||
5qi: 9
|
||||
session_ambr_ul: "10Gbps"
|
||||
session_ambr_dl: "10Gbps"
|
||||
- single_nssai:
|
||||
sst: 1
|
||||
- single_nssai: *embb_slice2
|
||||
dnn: "openairinterface"
|
||||
qos_profile:
|
||||
5qi: 9
|
||||
session_ambr_ul: "10Gbps"
|
||||
session_ambr_dl: "10Gbps"
|
||||
- single_nssai:
|
||||
sst: 1
|
||||
- single_nssai: *embb_slice3
|
||||
dnn: "ims"
|
||||
qos_profile:
|
||||
5qi: 9
|
||||
session_ambr_ul: "10Gbps"
|
||||
session_ambr_dl: "10Gbps"
|
||||
|
||||
upf:
|
||||
support_features:
|
||||
enable_bpf_datapath: no # If "on": BPF is used as datapath else simpleswitch is used, DEFAULT= off
|
||||
enable_snat: yes # If "on": Source natting is done for UE, DEFAULT= off
|
||||
remote_n6_gw: localhost # Dummy host since simple-switch does not use N6 GW
|
||||
smfs:
|
||||
- host: oai-smf # To be used for PFCP association in case of no-NRF
|
||||
upf_info:
|
||||
sNssaiUpfInfoList:
|
||||
- sNssai: *embb_slice1
|
||||
dnnUpfInfoList:
|
||||
- dnn: "oai"
|
||||
- sNssai: *embb_slice2
|
||||
dnnUpfInfoList:
|
||||
- dnn: "openairinterface"
|
||||
- sNssai: *embb_slice3
|
||||
dnnUpfInfoList:
|
||||
- dnn: "ims"
|
||||
|
||||
## DNN configuration
|
||||
dnns:
|
||||
- dnn: "oai"
|
||||
pdu_session_type: "IPV4"
|
||||
ipv4_subnet: "12.1.1.2/24"
|
||||
ipv4_subnet: "10.0.0.0/24"
|
||||
- dnn: "openairinterface"
|
||||
pdu_session_type: "IPV4V6"
|
||||
ipv4_subnet: "12.1.2.2/24"
|
||||
ipv4_subnet: "10.0.1.0/24"
|
||||
ipv6_prefix: "2001:1:2::/64"
|
||||
- dnn: "ims"
|
||||
pdu_session_type: "IPV4V6"
|
||||
ipv4_subnet: "12.1.9.2/24"
|
||||
ipv4_subnet: "10.0.9.0/24"
|
||||
ipv6_prefix: "2001:1:2::/64"
|
||||
|
||||
@@ -22,7 +22,7 @@ services:
|
||||
ipv4_address: 192.168.70.131
|
||||
|
||||
ims:
|
||||
container_name: "asterisk-ims"
|
||||
container_name: "ims"
|
||||
image: oaisoftwarealliance/ims:latest
|
||||
volumes:
|
||||
- ./conf/sip.conf:/etc/asterisk/sip.conf
|
||||
@@ -129,40 +129,16 @@ services:
|
||||
networks:
|
||||
public_net:
|
||||
ipv4_address: 192.168.70.133
|
||||
oai-spgwu:
|
||||
container_name: "oai-spgwu"
|
||||
image: oaisoftwarealliance/oai-spgwu-tiny:develop
|
||||
oai-upf:
|
||||
container_name: "oai-upf"
|
||||
image: oaisoftwarealliance/oai-upf:develop
|
||||
expose:
|
||||
- 2152/udp
|
||||
- 8805/udp
|
||||
- 8080/tcp
|
||||
# TODO: oai-spgwu-tiny will not support the new common yaml config file feature
|
||||
# waiting for the new oai-upf NF
|
||||
volumes:
|
||||
- ./conf/config.yaml:/openair-upf/etc/config.yaml
|
||||
environment:
|
||||
- TZ=Europe/Paris
|
||||
- SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
|
||||
- SGW_INTERFACE_NAME_FOR_SX=eth0
|
||||
- PGW_INTERFACE_NAME_FOR_SGI=eth0
|
||||
- NETWORK_UE_NAT_OPTION=yes
|
||||
- NETWORK_UE_IP=12.1.0.0/16
|
||||
- ENABLE_5G_FEATURES=yes
|
||||
- REGISTER_NRF=yes
|
||||
- USE_FQDN_NRF=yes
|
||||
- UPF_FQDN_5G=oai-spgwu
|
||||
- NRF_IPV4_ADDRESS=192.168.70.130
|
||||
- NRF_FQDN=oai-nrf
|
||||
# Mandatory to set the NRF PORT to 8080 (it is set to default to 80 otherwise)
|
||||
- HTTP_VERSION=2
|
||||
- NRF_PORT=8080
|
||||
# Slice 0 (1, 0xFFFFFF)
|
||||
- NSSAI_SST_0=1
|
||||
- DNN_0=oai
|
||||
# Slice 1 (1, 0xFFFFFF)
|
||||
- NSSAI_SST_1=1
|
||||
- DNN_1=openairinterface
|
||||
# Slice 2 (1, 0xFFFFFF)
|
||||
- NSSAI_SST_2=1
|
||||
- DNN_2=ims
|
||||
depends_on:
|
||||
- oai-nrf
|
||||
- oai-smf
|
||||
@@ -181,10 +157,10 @@ services:
|
||||
container_name: oai-ext-dn
|
||||
image: oaisoftwarealliance/trf-gen-cn5g:jammy
|
||||
entrypoint: /bin/bash -c \
|
||||
"ip route add 12.1.0.0/16 via 192.168.70.134 dev eth0; ip route; sleep infinity"
|
||||
"ip route add 10.0.0.0/16 via 192.168.70.134 dev eth0; ip route; sleep infinity"
|
||||
command: ["/bin/bash", "-c", "trap : SIGTERM SIGINT; sleep infinity & wait"]
|
||||
healthcheck:
|
||||
test: /bin/bash -c "ip r | grep 12.1.0"
|
||||
test: /bin/bash -c "ip r | grep 10.0.0"
|
||||
interval: 5s
|
||||
timeout: 2s
|
||||
retries: 10
|
||||
|
||||
Reference in New Issue
Block a user