Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lizhongxiao
OpenXG-RAN
Commits
24c707c3
Commit
24c707c3
authored
Feb 14, 2024
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_SA_Tutorials' into integration_2024_w06
parents
6069cd6b
60af0f1a
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
391 additions
and
113 deletions
+391
-113
doc/NR_SA_Tutorial_COTS_UE.md
doc/NR_SA_Tutorial_COTS_UE.md
+7
-14
doc/NR_SA_Tutorial_OAI_CN5G.md
doc/NR_SA_Tutorial_OAI_CN5G.md
+2
-10
doc/NR_SA_Tutorial_OAI_nrUE.md
doc/NR_SA_Tutorial_OAI_nrUE.md
+32
-44
doc/tutorial_resources/oai-cn5g/conf/config.yaml
doc/tutorial_resources/oai-cn5g/conf/config.yaml
+70
-13
doc/tutorial_resources/oai-cn5g/docker-compose.yaml
doc/tutorial_resources/oai-cn5g/docker-compose.yaml
+8
-32
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band257.32prb.usrpx410.conf
...TS/GENERIC-NR-5GC/CONF/gnb.sa.band257.32prb.usrpx410.conf
+272
-0
No files found.
doc/NR_SA_Tutorial_COTS_UE.md
View file @
24c707c3
...
...
@@ -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
```
...
...
doc/NR_SA_Tutorial_OAI_CN5G.md
View file @
24c707c3
...
...
@@ -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
...
...
doc/NR_SA_Tutorial_OAI_nrUE.md
View file @
24c707c3
...
...
@@ -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
```
# 5. OAI UE
## 5.1 SIM Card
Edit openair3/UICC/usim_interface.c
### RFsimulator in FR2
```
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
}
,
\
}
;
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.2 Testing OAI nrUE with USRP B210
#
5. OAI UE
## 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
```
### 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.1 Ping
test
-
UE host
##
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
```
...
...
doc/tutorial_resources/oai-cn5g/conf/config.yaml
View file @
24c707c3
...
...
@@ -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
:
"
1
2.1.1.2
/24"
ipv4_subnet
:
"
1
0.0.0.0
/24"
-
dnn
:
"
openairinterface"
pdu_session_type
:
"
IPV4V6"
ipv4_subnet
:
"
1
2.1.2.2
/24"
ipv4_subnet
:
"
1
0.0.1.0
/24"
ipv6_prefix
:
"
2001:1:2::/64"
-
dnn
:
"
ims"
pdu_session_type
:
"
IPV4V6"
ipv4_subnet
:
"
1
2.1.9.2
/24"
ipv4_subnet
:
"
1
0.0.9.0
/24"
ipv6_prefix
:
"
2001:1:2::/64"
doc/tutorial_resources/oai-cn5g/docker-compose.yaml
View file @
24c707c3
...
...
@@ -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 1
2.1
.0.0/16 via 192.168.70.134 dev eth0; ip route; sleep infinity"
"ip route add 1
0.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 1
2.1
.0"
test
:
/bin/bash -c "ip r | grep 1
0.0
.0"
interval
:
5s
timeout
:
2s
retries
:
10
...
...
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band257.32prb.usrpx410.conf
0 → 100644
View file @
24c707c3
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment