Blueprint NTN with monitoring xApp
This blueprint includes a 5G Standalone (SA) network using an Amarisoft gNB and Amarisoft 5GC connected over the TRX IP interface, with channel simulation enabled on the UE side. 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.
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
-
add spec.edge.profiles.amarisoft 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
apiVersion: athena.trirematics.io/v1
kind: Network
metadata:
name: amarisoft
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: amr-ran
stack: 5g-sa
model: amarisoft/ran-ntn-e2
identity:
an-id: 30
tracking-area: 1
radio:
device: trx-ip
antenna:
tx-gain: "70"
rx-gain: "10"
formation: "1x1"
cells:
- band: n256
arfcn: 437000
bandwidth: 20MHz
subcarrier-spacing: 15kHz
annotations:
extras.t9s.io/ntn-mode: "0" # GEO
extras.t9s.io/ran-position-latitude: '43.295'
extras.t9s.io/ran-position-longitude: '5.373'
extras.t9s.io/ran-altitude: '20'
extras.t9s.io/ue-position-latitude: '43.295'
extras.t9s.io/ue-position-longitude: '5.373'
extras.t9s.io/ue-altitude: '20'
controller: flexric.amarisoft
profiles:
- channel-simulation
core-networks:
- amr-cn.amarisoft
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
- amarisoft
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: '43.295'
extras.t9s.io/ue-position-longitude: '5.373'
extras.t9s.io/ue-altitude: '20'
spec:
vendor: amr
stack: 5g-sa
model: amarisoft/amr-ue-ntn
preferred-access: amr-ran.amarisoft
target-cores:
- amr-cn.amarisoft
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: trx-ip
formation: "1x1"
tx-gain: "70"
rx-gain: "10"
bands:
- n78
profiles:
- channel-simulation
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.