Skip to main content

Bring Up Your First Cell

This tutorial declares one cell on a virtual radio, watches the dormant RAN come up for it, and removes it again.

Before You Begin​

Declare a Cell and Watch the RAN Materialize​

Apply an NRCell (racora.io/v1alpha1) in racora-system. You declare only the radio-facing fields — band, ARFCN, bandwidth, subcarrier spacing, PLMN, TAC (and optionally pci or a node pin). The controller scales the CU plane 0→1, generates the matching DU, and assigns the cell's identity for you: a unique, stable sectorId and gnbDuId, the CU-wide gnbId, and the resulting NCI — recorded read-only in status, never set by hand. Declaring a second cell just gets the next free identity, so cells coexist under one CU without you tracking IDs. This is the example cell, cell-1.yaml — the reference deployment's carrier (n78, 10 MHz, PLMN 90170, TAC 7) on a virtual radio (ruType: dummy, so it runs anywhere; the same cell on a real B210 is in Deploy Cells):

apiVersion: racora.io/v1alpha1
kind: NRCell
metadata:
name: cell-1
namespace: racora-system
spec:
band: 78
dlArfcn: 632628
channelBandwidthMHz: 10
commonScs: 30
plmn: "90170"
tac: 7
radioBackend:
ruType: dummy

Its PLMN and TAC are the network identity a fresh install declares by default (PLMN 90170, tracking area 7 — the core serves it, the CU-CP advertises it); a cell outside the identity is refused with a condition, and Configure the 5G Core is where the identity is changed.

Save it as cell-1.yaml and apply it:

kubectl apply -f cell-1.yaml
kubectl get deploy -n centralized-unit # cu-cp/cu-up/cuip scale to 1
kubectl get deploy -n distributed-unit # the DU for cell-1 appears
kubectl get nrcell -n racora-system # Sector / DU-ID / NCI — assigned by the controller
NAME PCI PCI-SOURCE SECTOR DU-ID NCI BAND PHASE AGE
cell-1 1002 controller-temp 0 0 0x66C000 78 ConfigGenerated 12s

The phase reads Pending for a moment before ConfigGenerated. The PCI is a temporary one (controller-temp, from the pool 1002 to 1007) because the example declares none; once cuip (CU-IP) runs on the control node's GPU the Intelligence Plane replaces it with an assigned PCI.

Remove It​

Deleting the last cell dissolves the CU plane back to 0/0:

kubectl delete nrcell cell-1 -n racora-system

What's Next​