Lab 3: 5G Data Plane
This experiment is to deploy a simple 5G Standalone (SA) network using OpenAirInterface (OAI) RF Simulator gNB and OAI minimal 5GC, but this time we modify some of the configurations and see the effect on the throughput.
In this lab, you will need two files:
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: eurecom
namespace: trirematics
spec:
slices:
- plmn: "00101"
dnn: "internet"
network-mode: "IPv4"
service-type: eMBB
differentiator: 0x000000
ipv4-range: "12.1.1.0/24"
ipv6-range: "2001:db8:1::/64"
access:
- name: oai-gnb
stack: 5g-sa
model: oai-ran/monolithic-gnb
profiles:
- t-tracer
identity:
an-id: 50
radio:
device: rf-sim
cells:
- band: n78
arfcn: 641280
bandwidth: 40MHz
subcarrier-spacing: 30kHz
tdd-config:
period: 5ms
dl-slots: 7
dl-symbols: 6
ul-slots: 2
ul-symbols: 4
core-networks:
- minimal.eurecom
core:
- name: minimal
stack: 5g-sa
model: oai-cn/minimal
identity:
region: 0
cn-group: 4
cn-id: 5
dns:
ipv4:
default: 8.8.8.8
secondary: 8.8.4.4
---
apiVersion: athena.trirematics.io/v1
kind: Terminal
metadata:
name: ue1
namespace: trirematics
spec:
vendor: oai
stack: 5g-sa
model: terminal/nr-rfsim
preferred-access: oai-gnb.eurecom
target-cores:
- minimal.eurecom
identity:
imsi: "001010000000001"
pin: "1234"
opc: "0xc42449363bbad02b66d16bc975d77cc1"
key: "0xfec86ba6eb707ed08905757b1bb44b8f"
sqn: "0xff9bb4000001"
slice:
dnn: "internet"
network-mode: "IPv4"
service-type: eMBB
differentiator: 0x000000
radio:
bands:
- n78
readiness-check:
method: ping
target: google-ip
interface-name: oaitun_ue0
---
apiVersion: athena.trirematics.io/v1
kind: Terminal
metadata:
name: ue2
namespace: trirematics
spec:
vendor: oai
stack: 5g-sa
model: terminal/nr-rfsim
preferred-access: oai-gnb.eurecom
target-cores:
- minimal.eurecom
identity:
imsi: "001010000000002"
pin: "1234"
opc: "0xc42449363bbad02b66d16bc975d77cc1"
key: "0xfec86ba6eb707ed08905757b1bb44b8f"
sqn: "0xff9bb4000001"
slice:
dnn: "internet"
network-mode: "IPv4"
service-type: eMBB
differentiator: 0x000000
radio:
bands:
- n78
readiness-check:
method: ping
target: google-ip
interface-name: oaitun_ue0
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: eurecom
namespace: trirematics
spec:
slices:
- plmn: "00101"
dnn: "internet"
network-mode: "IPv4"
service-type: eMBB
differentiator: 0x000000
ipv4-range: "12.1.1.0/24"
ipv6-range: "2001:db8:1::/64"
access:
- name: oai-gnb
stack: 5g-sa
model: oai-ran/monolithic-gnb
identity:
an-id: 50
radio:
device: rf-sim
annotations:
extras.trirematics.io/min-rxtx: "6"
cells:
- band: n78
arfcn: 641280
bandwidth: 40MHz
subcarrier-spacing: 30kHz
tdd-config:
period: 5ms
dl-slots: 7
dl-symbols: 6
ul-slots: 2
ul-symbols: 4
core-networks:
- minimal.eurecom
core:
- name: minimal
stack: 5g-sa
model: oai-cn/minimal
identity:
region: 0
cn-group: 4
cn-id: 5
dns:
ipv4:
default: 8.8.8.8
secondary: 8.8.4.4
---
apiVersion: athena.trirematics.io/v1
kind: Terminal
metadata:
name: ue1
namespace: trirematics
spec:
vendor: oai
stack: 5g-sa
model: terminal/nr-rfsim
preferred-access: oai-gnb.eurecom
target-cores:
- minimal.eurecom
identity:
imsi: "001010000000001"
pin: "1234"
opc: "0xc42449363bbad02b66d16bc975d77cc1"
key: "0xfec86ba6eb707ed08905757b1bb44b8f"
sqn: "0xff9bb4000001"
slice:
dnn: "internet"
network-mode: "IPv4"
service-type: eMBB
differentiator: 0x000000
radio:
bands:
- n78
readiness-check:
method: ping
target: google-ip
interface-name: oaitun_ue0
TDD Pattern
Modify the YAML file to run the following two TDD pattern setups given in the table below. For each of them, calculate the average DL TCP throughput for the duration of 60 seconds.
# | Period | DL Slots | UL Slots | DL Symbols | UL Symbols | Min Rx-Tx Slots |
---|---|---|---|---|---|---|
1 | 5ms | 7 | 2 | 6 | 4 | 6 |
2 | 2.5ms | 2 | 2 | 6 | 4 | 4 |
💬 Questions
- Draw a figure to show each of the patterns for the duration of one frame.
- On your figure, specify how the value of the min Rx-Tx slots is calculated.
- Calculate the total number of symbols in DL and UL per second for each of the patterns.
- Calculate the ratio of the DL symbols to the UL symbols for each of the patterns.
- Calculate the DL throughput as megabits per symbol for each of the patterns and justify why the values should be close to each other.
ARFCN Configuration
Consider the following two cells with the following configuration given in the table below. The first cell is an imaginary neighboring cell to the second cell that we are designing.
# | Band | ARFCN | Bandwidth |
---|---|---|---|
1 | n78 | 640000 | 40MHz |
2 | n48 | 642000 | 40MHz |
Deploy a modified version of the simple-sa.yaml
file that contains the configuration as cell 2 ONLY (no need
to create the first cell).
Then measure the DL TCP throughput for the duration of 60 seconds for one of the UEs.
💬 Questions Set 1
- Draw these two cells on a frequency axis. Mark the frequencies in MHz on the axis and show each cell with an interval.
- Calculate the center frequency of each cell in MHz.
- How much of the bandwidth in percentage is overlapping between these two cells, causing interference?
To solve the interference problem, we could take two approaches:
- Decrease the bandwidth of the second cell to avoid the overlapping.
- Change the center frequency of the second cell to avoid the overlapping.
First go with the first approach and use a 20MHz bandwidth for the second cell. Then measure the DL TCP throughput again for the duration of 60 seconds for one of the UEs.
💬 Questions Set 2
- Draw these two cells on a frequency axis like before.
- Compare the throughput with the previous one and explain the difference.
- Considering both cells, would you consider the total throughput has been increased or decreased?
For the second option, consider the following three ARFCN numbers:
- 646000
- 642667
- 643000
From these three numbers, only one of them is a valid configuration. Try all the three numbers and extract the gNB logs to see if the gNB is able to start or not. If you managed to connect the UE, measure the DL TCP throughput for the duration of 60 seconds for one of the UEs.
💬 Questions Set 3
- Calculate the center frequency of each option in MHz.
- Draw these two cells on a frequency axis like before for each of the options.
- Compare the throughput with the previous ones and explain the differences.
Multiple UEs
In this exercise, you would modify a network configuration.
For this, we suggest you to keep two separate files, stage-1.yaml
and stage-2.yaml
.
Create the stage-1.yaml
file from the simple-sa.yaml
file by removing the second UE and disabling the
t-tracer.
Move the second UE configuration to the stage-2.yaml
file for later use.
Deploy the simple 5G-SA network from the stage-1.yaml
file.
Wait for the UE to be ready and then start a TCP DL throughput test for the duration of 180 seconds by running the
following command in a separate terminal window.
cli test throughput ue1 dl --plot -- gateway --time 180
Open a separate terminal window and roughly after 30 seconds, install the stage-2.yaml
file WITHOUT
uninstalling the network or stopping the first test.
After another 30 seconds, in the second terminal, run a TCP DL throughput test for the second UE for the duration of
30 seconds.
Finally, after another 30 seconds, uninstall the stage-2.yaml
file first WITHOUT stopping the first test.
Let the first test to finish as well and then take a screenshot of the two plots.
Uninstall the stage-1.yaml
file too.
💬 Questions
- Explain the pattern seen in the plot for the first UE.
- Why adding the second UE has caused the throughput of the first UE to drop, even without any traffic for the second UE?