Over-the-Air Environment Deployments
Deployment
Use the command brc install network <deployment-name>.yaml
to deploy the network.
It should finish without errors and printout the Kubernetes resource names that were created.
Check for the status of the deployment using the command brc observe
.
Wait until all the Elements other than the UE are in the STATUS
set to
1/1 Y
state.
Basic Deployment with USRP
This deployment includes a simple 5G Standalone (SA) network with OpenAirInterface (OAI) gNB using a NI/Ettus USRP B210, and OAI minimal 5GC to analyze the control plane and data plane.
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: bubbleran
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: uhd-b200
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.bubbleran
core:
- name: minimal
stack: 5g-sa
model: oai-cn/minimal
identity:
region: 0
cn-group: 4
cn-id: 5
dns:
ipv4:
default: 172.21.3.100
secondary: 8.8.4.4
This deployment does not include a terminal (UE) so it should be installed seperately. For Over-the-Air deployments you may either use:
- Quectel module (normally included with your MX-PDK) connected to one of the cluster nodes. With this option, the terminal will be deployed as a Kubernetes pod and
brc test
CLI commands for generating traffic will be available. Model to be used in deployment file spec:terminal/quectel
- Quectel module connected to a laptop. With this option, the terminal can be controlled with our Snap application, but traffic generation will need to be done manually (i.e., not using
brc test
CLI commands). Model to be used in deployment file spec:terminal/external
- A smartphone. With this option, the terminal will be controlled by the user. Model to be used in deployment file spec:
terminal/external
Quectel Deployment
apiVersion: athena.trirematics.io/v1
kind: Terminal
metadata:
name: ue01
namespace: trirematics
spec:
vendor: oai
stack: 5g-sa
model: terminal/quectel
target-cores:
- minimal.bubbleran
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
External Deployment
apiVersion: athena.trirematics.io/v1
kind: Terminal
metadata:
name: ue01
namespace: trirematics
spec:
vendor: oai
stack: 5g-sa
model: terminal/external
target-cores:
- minimal.bubbleran
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
External terminal spec should not include a readiness check.
Deployment with monitoring xApp
This deployment includes a 5G Standalone (SA) network with OpenAirInterface (OAI) gNB using a NI/Ettus USRP B210, and OAI minimal 5GC, but this time using the F1 Split architecture. We also deploy FlexRIC as the Near-RT RIC with a monitoring xApp.
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: bubbleran
namespace: trirematics
spec:
slices:
- plmn: "00102"
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: uhd-b200
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
controller: flexric.bubbleran
core-networks:
- minimal.bubbleran
core:
- name: minimal
stack: 5g-sa
model: oai-cn/minimal
identity:
region: 0
cn-group: 4
cn-id: 5
dns:
ipv4:
default: 172.21.3.100
secondary: 8.8.4.4
edge:
- name: flexric
stack: 5g-sa
model: mosaic5g/flexric
- name: monitoring
stack: 5g-sa
model: mosaic5g/monitoring-python
profiles:
- rlc-sm
- pdcp-sm
- mac-sm
- gtp-sm
- slice-sm
- kpm-sm
- database
- name: sdl
stack: 5g-sa
model: mosaic5g/xapps-sdl
---
apiVersion: athena.trirematics.io/v1
kind: Terminal
metadata:
name: ue01
namespace: trirematics
spec:
vendor: ogs
stack: 5g-sa
model: terminal/quectel
target-cores:
- minimal.bubbleran
identity:
imsi: "001020000000002"
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
Deployment with 7.2 Split and LITEON RU
This deployment includes a 5G Standalone (SA) network with OpenAirInterface (OAI) gNB using a LITEON RU, and Open5GS core to analyze the control plane and data plane.
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: liteon-demo
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-ru #cu-du-ru
identity:
an-id: 30
tracking-area: 1
radio:
device: oran-7.2
antenna:
formation: 4x4
scheduling:
nodeName: bubble3
annotations:
extras.t9s.io/pci-ids: '["0000:01:11.0", "0000:01:11.1"]'
extras.t9s.io/du-macs: '["02:11:22:33:44:68", "02:11:22:33:44:69"]'
extras.t9s.io/ru-macs: '["e8:c7:4f:25:81:d1", "e8:c7:4f:25:81:d1"]'
extras.t9s.io/mtu: '9000'
extras.t9s.io/o1-remote-ipv4: 192.168.50.13
extras.t9s.io/liteon-ru-reboot: 'true' #'true'
cells:
- band: n78
arfcn: 623328
bandwidth: 100MHz
subcarrier-spacing: 30kHz
tdd-config:
period: 2.5ms
dl-slots: 3
dl-symbols: 6
ul-slots: 1
ul-symbols: 4
core-networks:
- open5gs.liteon-demo
core:
- name: open5gs
stack: 5g-sa
model: open5gs/5gc
profiles:
- debug
identity:
region: 128
cn-group: 4
cn-id: 5
dns:
ipv4:
default: 172.21.3.100
secondary: 8.8.8.8
Deployment with 7.2 Split and Benetel RU
This deployment includes a 5G Standalone (SA) network with OpenAirInterface (OAI) gNB using a Benetel RU, and Open5GS core to analyze the control plane and data plane.
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: benetel-demo
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-ru-benetel #cu-du-ru
identity:
an-id: 30
tracking-area: 1
radio:
device: oran-7.2
antenna:
formation: 4x4
scheduling:
nodeName: bubble2
annotations:
extras.t9s.io/pci-ids: '["0000:01:11.1", "0000:01:11.0"]'
extras.t9s.io/du-macs: '["02:11:22:33:44:67", "02:11:22:33:44:66"]'
extras.t9s.io/ru-macs: '["8c:1f:64:d1:12:f2", "8c:1f:64:d1:12:f2"]'
extras.t9s.io/mtu: '9600'
extras.t9s.io/o1-remote-ipv4: 172.20.179.186
extras.t9s.io/benetel-ru-reboot: 'false' #'true'
cells:
- band: n77
arfcn: 650016 #676320
bandwidth: 100MHz
subcarrier-spacing: 30kHz
tdd-config:
period: 5ms
dl-slots: 7
dl-symbols: 6
ul-slots: 2
ul-symbols: 4
core-networks:
- open5gs.benetel-demo
core:
- name: open5gs
stack: 5g-sa
model: open5gs/5gc
profiles:
- debug
identity:
region: 128
cn-group: 4
cn-id: 5
dns:
ipv4:
default: 172.21.3.100
secondary: 8.8.8.8
Deployment with 7.2 Split and LITEON All-In-One (AIO) Small Cell
This deployment includes a 5G Standalone (SA) network with using a LITEON All-In-One (AIO) small cell, and Open5GS core to analyze the control plane and data plane.
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: pro
namespace: trirematics
spec:
# LiteON AIO only supports one slice configuration
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:
# To access the AIO via the serial port, plug the USB to the control plane node and run the following command:
# sudo picocom --baud 115200 {proper-device-under-/dev/ttyUSB*}
# To exit picocom, press Ctrl+A followed by Ctrl+X.
# To access the AIO via SSH, run the following command:
# ssh user@{IP-address}
# The default password is: Usr5566#
- name: liteon
stack: 5g-sa
model: bubbleran/liteon-aio
annotations:
# In the current version only the RJ-45 interface of the LiteON AIO is supported and this is the IP
# address of the RJ-45 interface.
extras.t9s.io/o1-remote-ipv4: 192.168.50.50
identity:
an-id: 30
tracking-area: 1
radio:
device: oran-7.2
antenna:
# LiteON AIO accepts values from 0 to 24 dBm for the Tx gain and does not accept Rx gain values.
tx-gain: "24"
# Default formation for LiteON AIO is 4 DL layers and 2 UL layers and cannot be changed in this
# version.
formation: 4x2
# LiteON AIO only supports a single cell
cells:
# LiteON AIO only supports band n78, using other bands would have no effect.
- band: n78
# LiteON AIO only supports the following combination of ARFCN and bandwidth:
# - ARFCN: 625382, Bandwidth: 80MHz
# - ARFCN: 628334, Bandwidth: 50MHz
# - ARFCN: 628334, Bandwidth: 100MHz
# - ARCFN: 647484, Bandwidth: 100MHz (default)
# - ARFCN: 650000, Bandwidth: 100MHz
arfcn: 647484
bandwidth: 100MHz
subcarrier-spacing: 30kHz # LiteON AIO only supports 30kHz subcarrier spacing
# In the current version we only support the following slot configuration for LiteON AIO:
tdd-config:
period: 5ms
dl-slots: 7
dl-symbols: 0
ul-slots: 2
ul-symbols: 6
core:
- name: open5gs
stack: 5g-sa
model: open5gs/5gc
profiles:
- debug
identity:
region: 128
cn-group: 4
cn-id: 5
dns:
ipv4:
default: 172.21.3.100
secondary: 8.8.8.8