Blueprints with OAI over ZMQ
These blueprints link an OpenAirInterface (OAI) gNB and an OAI soft UE over ZeroMQ (ZMQ) sockets, so no radio hardware is needed.
The gNB connects to the UE by the DNS name of its Element. The access section carries the annotation terminals.roles.athena.t9s.io/oai-ue, so renaming the Terminal means updating that annotation too.
These blueprints include their Terminal, so brc install network also deploys the soft UE.
The Terminal is ready once each UE pings the UPF gateway of its slice from its own tunnel.
Then test the UE, for example with brc test rtt ue1 gateway -- -c 5 or brc test throughput ue1 dl gateway -- --time 10.
Deploy a blueprint from the control-plane node with brc install network <file>.yaml.
It should finish without errors and print the Kubernetes resources it created.
Follow the deployment with brc observe and wait until every Element other than the UE is in the 1/1 Y state.
SISO 40 MHz
A monolithic OAI gNB and one soft UE, one antenna each, 40 MHz in band n78.
Source: networks/oai/zmq/01-monolithic.yaml
01-monolithic.yaml
# OAI gNB and an OAI soft UE linked over ZMQ, SISO 40 MHz.
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: oai-zmq
namespace: trirematics
spec:
slices:
- plmn: "00101"
dnn: internet
network-mode: IPv4
service-type: 1
differentiator: 0x000000
ipv4-range: 12.1.1.0/24
ipv6-range: 2001:db8:1::/64
access:
- name: gnb
stack: 5g-sa
model: oai-ran/monolithic-gnb
identity:
an-id: 30
tracking-area: 1
radio:
device: zmq
annotations:
# the gNB connects to the ZMQ UE by the DNS name of its Element: <model>.<terminal>.<terminal>.t9s.local
terminals.roles.athena.t9s.io/oai-ue: "oai-ue.ue1.ue1.t9s.local"
cells:
- band: n78
arfcn: 621312
bandwidth: 40MHz
subcarrier-spacing: 30kHz
tdd-config:
period: 2500
dl-slots: 2
dl-symbols: 6
ul-slots: 2
ul-symbols: 4
core-networks:
- core.oai-zmq
core:
- name: core
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/oai-ue
preferred-access: gnb.oai-zmq
target-cores:
- core.oai-zmq
identity:
imsi: "001010000000001"
pin: "1234"
opc: "0xc42449363bbad02b66d16bc975d77cc1"
key: "0xfec86ba6eb707ed08905757b1bb44b8f"
sqn: "0xff9bb4000001"
slice:
dnn: internet
network-mode: IPv4
service-type: 1
differentiator: 0x000000
radio:
device: zmq
formation: "1x1"
bands:
- n78
# the Terminal is ready once every UE pings the target from its own tunnel (oaitun_ue<N>)
readiness-check:
method: ping
target: gateway # UPF of the slice of each UE
#--- Add a UE the cluster does not run with terminals/external.yaml: preferred-access gnb.oai-zmq, target-cores core.oai-zmq ---#
MIMO 2x2 100 MHz
The same network with two antennas on each side and a 100 MHz cell.
Source: networks/oai/zmq/02-monolithic-2x2.yaml
02-monolithic-2x2.yaml
# OAI gNB and an OAI soft UE linked over ZMQ, MIMO 2x2 100 MHz.
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: oai-zmq
namespace: trirematics
spec:
slices:
- plmn: "00101"
dnn: internet
network-mode: IPv4
service-type: 1
differentiator: 0x000000
ipv4-range: 12.1.1.0/24
ipv6-range: 2001:db8:1::/64
access:
- name: gnb
stack: 5g-sa
model: oai-ran/monolithic-gnb
identity:
an-id: 30
tracking-area: 1
radio:
device: zmq
antenna:
formation: "2x2"
annotations:
# the gNB connects to the ZMQ UE by the DNS name of its Element: <model>.<terminal>.<terminal>.t9s.local
terminals.roles.athena.t9s.io/oai-ue: "oai-ue.ue1.ue1.t9s.local"
cells:
- band: n78
arfcn: 630048
bandwidth: 100MHz
subcarrier-spacing: 30kHz
tdd-config:
period: 2500
dl-slots: 3
dl-symbols: 6
ul-slots: 1
ul-symbols: 4
core-networks:
- core.oai-zmq
core:
- name: core
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
annotations:
extras.t9s.io/ssb: "1518"
spec:
vendor: oai
stack: 5g-sa
model: terminal/oai-ue
preferred-access: gnb.oai-zmq
target-cores:
- core.oai-zmq
identity:
imsi: "001010000000001"
pin: "1234"
opc: "0xc42449363bbad02b66d16bc975d77cc1"
key: "0xfec86ba6eb707ed08905757b1bb44b8f"
sqn: "0xff9bb4000001"
slice:
dnn: internet
network-mode: IPv4
service-type: 1
differentiator: 0x000000
radio:
device: zmq
formation: "2x2"
bands:
- n78
# the Terminal is ready once every UE pings the target from its own tunnel (oaitun_ue<N>)
readiness-check:
method: ping
target: gateway # UPF of the slice of each UE
#--- Add a UE the cluster does not run with terminals/external.yaml: preferred-access gnb.oai-zmq, target-cores core.oai-zmq ---#