Skip to main content
Version: v5.0.1 [Emerald]

Blueprint NTN with monitoring xApp

Experimental

This is an experimental blueprint intended for Non-Terrestrial Network (NTN) evaluation in an emulated environment.

This blueprint includes a 5G Standalone (SA) network using OCUDU's NTN gNB over ZeroMQ (ZMQ) and an Amarisoft 5GC. FlexRIC is deployed as the Near-RT RIC and connected to the gNB over E2, together with a monitoring xApp for KPM-based O-RAN observability.

Prerequisites

Install the Amarisoft UE model required by this blueprint.

amr-ue-terminal.yaml
apiVersion: v1
kind: Service
metadata:
name: amr-ue-terminal
namespace: trirematics
spec:
publishNotReadyAddresses: true
selector:
athena.t9s.io/vendor: amr-ue-terminal
ports:
- name: trx-rx
protocol: UDP
port: 12000
targetPort: 12000
- name: trx-tx
protocol: UDP
port: 12001
targetPort: 12001
- name: zmq-gnb-rx
protocol: TCP
port: 2101
targetPort: 2101
- name: zmq-gnb-rx
protocol: TCP
port: 2100
targetPort: 2100
  • Apply the service
kubectl apply -f amr-ue-terminal.yaml
  • Check the service
kubectl get svc -n trirematics | grep amr-ue-terminal
  • (Optional) Delete the service
kubectl delete service amr-ue-terminal -n trirematics

Apply the network

info
  • add spec.edge.profiles.ocudu in order for xApp to get valid kpm measurement value

  • set terminal.metadata.annotations.extras.ssb-nr-arfcn in order for amarisoft ue connect to the gNB

10-mon-ntn-xapp.yaml
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: ocudu
namespace: trirematics
spec:
slices:
- plmn: "00101"
dnn: internet
network-mode: IPV4
service-type: 1
differentiator: 0xFFFFFF
ipv4-range: 12.2.1.0/24
ipv6-range: 2001:db8:1::/64
access:
- name: ocudu-ran
stack: 5g-sa
model: ocudu/monolithic-gnb-ntn
identity:
an-id: 30
tracking-area: 1
radio:
device: zmq
annotations:
extras.t9s.io/chan_delay_us: '119720'
cells:
- band: n256
arfcn: 437000
bandwidth: 5MHz
subcarrier-spacing: 15kHz
controller: flexric.ocudu
core-networks:
- amr-cn.ocudu
core:
- name: amr-cn
stack: 5g-sa
model: amarisoft/basic-cn
profiles:
- debug
identity:
region: 128
cn-group: 4
cn-id: 5
edge:
- name: flexric
stack: 5g-sa
model: mosaic5g/flexric
- name: monitoring
stack: 5g-sa
model: mosaic5g/monitoring-c
profiles:
- kpm-sm
- database
- ocudu

dns:
ipv4:
default: 8.8.8.8
secondary: 8.8.4.4
---
apiVersion: athena.trirematics.io/v1
kind: Terminal
metadata:
name: amr-ue
namespace: trirematics
annotations:
extras.t9s.io/ue-position-latitude: '-2.2970186'
extras.t9s.io/ue-position-longitude: '131.7327201'
extras.t9s.io/ue-altitude: '1'
spec:
vendor: amr
stack: 5g-sa
model: amarisoft/amr-ue-ntn
preferred-access: ocudu-ran.ocudu
target-cores:
- amr-cn.ocudu
identity:
imsi: "001010000000001"
pin: "1234"
opc: "0xc42449363bbad02b66d16bc975d77cc1"
key: "0xfec86ba6eb707ed08905757b1bb44b8f"
sqn: "0xff9bb4000001"
amr-ue-count: 1
slice:
dnn: "internet"
network-mode: "IPv4"
service-type: 1
differentiator: 0xFFFFFF
radio:
device: zmq
formation: "1x1"
tx-gain: "20"
rx-gain: "20"
bands:
- n256

Use the command brc install network <blueprint-name>.yaml to deploy the network. It should finish without errors and print out the Kubernetes resource names that were created. Check for the status of the blueprint using the command brc observe. Wait until all the Elements other than the UE are in the STATUS set to 1/1 Y state.