NRCell (racora.io/v1alpha1)
Generated at build time from
charts/racora-crds/files/nrcell-crd.yaml, the single source of the NRCell schema; edit the source, not this page.
An NRCell is the operator surface of a Racora cell: you declare the radio-facing
fields under spec, the controller assigns the cell's identity and reports what it
did under status. Every field's description below is the schema's own
(kubectl explain nrcell.spec shows the same text on a cluster). The one
example cell is what a first declaration looks like; real-radio
declarations, written out in YAML, are in Deploy Cells and
Connect a Radio.
racora.io/v1alpha1
Resource Types:
NRCell
| Name | Type | Description | Required |
|---|---|---|---|
| apiVersion | string | racora.io/v1alpha1 | true |
| kind | string | NRCell | true |
| metadata | object | Refer to the Kubernetes API documentation for the fields of the `metadata` field. | true |
| spec | object |
|
false |
| status | object |
|
false |
NRCell.spec
| Name | Type | Description | Required |
|---|---|---|---|
| band | integer |
NR operating band number (OCUDU cell_cfg.band), e.g. 3 (FDD) or 78 (TDD) |
true |
| channelBandwidthMHz | integer |
Channel bandwidth in MHz (OCUDU cell_cfg.channel_bandwidth_MHz) Enum: 5, 10, 15, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100 |
true |
| commonScs | integer |
Subcarrier spacing in kHz Enum: 15, 30, 60, 120 |
true |
| dlArfcn | integer |
Downlink ARFCN of the carrier centre (OCUDU cell_cfg.dl_arfcn); the uplink follows the band's duplex spacing |
true |
| plmn | string |
PLMN identity (MCC+MNC) |
true |
| tac | integer |
Tracking Area Code the cell broadcasts (OCUDU cell_cfg.tac); the core must serve it |
true |
| adminState | enum |
Administrative intent for the cell at the CU-CP. Locked = the cell is gracefully stopped (bar, UE release, deactivate) and kept dormant across DU restarts until set back to Unlocked. Applied live over the CU-CP runtime commands and recorded in the boot overlay's logical_cells whitelist. While Locked, the controller also withholds its post-decision reactivation unlock. Enum: Unlocked, Locked Default: Unlocked |
false |
| azimuthDeg | number |
Boresight azimuth in degrees (0 = north, 90 = east, clockwise); read by CU-IP with position |
false |
| cellBarred | boolean |
Intended MIB cellBarred state: the cell stays on air but UEs may not camp on it. Tracked independently of adminState by the CU-CP. Default: false |
false |
| du | object |
The cell's DU workload itself, as opposed to the cell on air (adminState locks a running cell at the CU-CP). |
false |
| duAssignment | object |
Placement of this cell's DU pod. A uhd backend always requires a racora.io/rf-ready node and an ofh backend a racora.io/fronthaul-ready node; this narrows it further. |
false |
| mechanicalTiltDeg | number |
Mechanical antenna downtilt in degrees. Reserved for CU-IP; no component reads it today Default: 8 |
false |
| mobility | object |
This cell's contribution to the CU-wide mobility configuration. reportConfigs are unioned by reportCfgId across all cells (define each id once, on one cell, or identically on all — differing definitions of the same id resolve to the lexicographically-first cell name and raise a ReportConfigConflict condition on the others). Controller defaults for ids 1 (periodical) and 2 (A3) remain unless overridden here and are never removable. Field names mirror the OCUDU cu_cp.mobility report_configs keys (camelCase); the controller applies changes to the running CU-CP over the runtime command surface and bakes them into the boot overlay. |
false |
| neighbors | []object |
Directional neighbor relations from this cell (declare the reverse relation on the other cell). Pushed live to the running CU-CP and baked into its boot overlay; the applied state, with provenance, is mirrored under status.neighbors. |
false |
| pci | integer |
Physical Cell ID visible to UEs. Optional — when absent, the
controller assigns the next available PCI from the temp pool
(1002-1007) and the auto-retune workflow replaces it with a
non-temp PCI as soon as the cell appears in the substrate
graph and CU-IP emits a RANN-D decision. See
status.pciSource for assignment provenance.
Minimum: 0 Maximum: 1007 |
false |
| pdcch | object |
Passed through verbatim as OCUDU cell_cfg.pdcch — any key the pinned gNB image accepts; not validated by the API server |
false |
| pdsch | object |
Passed through verbatim as OCUDU cell_cfg.pdsch (see pdcch) |
false |
| periodicReportCfgId | integer |
Report config id for this cell's serving-cell periodical measurement report (OCUDU periodic_report_cfg_id). Must reference a periodical config; the controller default id 1 reports every 1024 ms. Default: 1 |
false |
| position | object |
Antenna position in a local Cartesian frame (metres). Read by CU-IP's NRCell watcher for the substrate graph geometry, never by the gNB. |
false |
| prach | object |
Passed through verbatim as OCUDU cell_cfg.prach (see pdcch) |
false |
| pusch | object |
Passed through verbatim as OCUDU cell_cfg.pusch (see pdcch) |
false |
| radioBackend | object |
The radio the DU drives and its parameters. ruType selects the backend; only the matching sub-object is read. |
false |
| ssb | object |
Passed through verbatim as OCUDU cell_cfg.ssb (see pdcch), e.g. ssb_block_power_dbm |
false |
| tddUlDlCfg | object |
The cell's TDD pattern (OCUDU cell_cfg.tdd_ul_dl_cfg), for an unpaired band. Absent: OCUDU's default pattern, except for an ofh cell, which runs 7 DL slots, a special slot of 6 DL + 4 UL symbols and 2 UL slots over 10 slots unless set here; an ofh cell's O-RU is provisioned with the same pattern. |
false |
NRCell.spec.du
The cell's DU workload itself, as opposed to the cell on air (adminState locks a running cell at the CU-CP).
| Name | Type | Description | Required |
|---|---|---|---|
| suspend | boolean |
true keeps the cell's DU Deployment at 0 replicas: no DU pod, the radio and the node are free, the cell shows phase Suspended and DUServed=False/Suspended, and the controller neither replaces the pod nor pushes the cell's intent. It survives controller restarts and upgrades, unlike a Deployment scaled down by hand, which the controller re-asserts on its next reconcile. false (the default) runs the DU. To take a cell off air while its DU keeps running, lock it with adminState instead. Default: false |
false |
NRCell.spec.duAssignment
Placement of this cell's DU pod. A uhd backend always requires a racora.io/rf-ready node and an ofh backend a racora.io/fronthaul-ready node; this narrows it further.
| Name | Type | Description | Required |
|---|---|---|---|
| nodeName | string |
Pin this cell's DU to a specific Kubernetes node (by hostname), for a multi-node cluster where the cell's radio is on a particular box. Merged with the rf-ready (uhd) or fronthaul-ready (ofh) nodeSelector via the scheduler (not a raw pod nodeName bind), so the node must still carry that capability. For an ofh cell this is the node whose fronthaul port is cabled to the radio. Omit to let the scheduler place it on any eligible node. |
false |
NRCell.spec.mobility
This cell's contribution to the CU-wide mobility configuration. reportConfigs are unioned by reportCfgId across all cells (define each id once, on one cell, or identically on all — differing definitions of the same id resolve to the lexicographically-first cell name and raise a ReportConfigConflict condition on the others). Controller defaults for ids 1 (periodical) and 2 (A3) remain unless overridden here and are never removable. Field names mirror the OCUDU cu_cp.mobility report_configs keys (camelCase); the controller applies changes to the running CU-CP over the runtime command surface and bakes them into the boot overlay.
| Name | Type | Description | Required |
|---|---|---|---|
| reportConfigs | []object |
Measurement report configurations this cell contributes to the CU-wide set (see mobility) |
false |
NRCell.spec.mobility.reportConfigs[index]
| Name | Type | Description | Required |
|---|---|---|---|
| reportCfgId | integer |
Identifier of this report configuration, referenced from neighbors[].reportConfigs and periodicReportCfgId Minimum: 1 Maximum: 63 |
true |
| reportType | enum |
periodical: serving-cell reports every reportIntervalMs. event_triggered: a 3GPP A-event evaluated on a neighbor relation. cond_trigger: a conditional-handover trigger (eventTriggeredReportType d1, d2 or t1; no report interval). Enum: periodical, event_triggered, cond_trigger |
true |
| eventTriggeredReportType | enum |
The RRC event (3GPP TS 38.331) for event_triggered and cond_trigger configs. a1-a6 are the measurement events; a3 (neighbor better than serving by measTriggerQuantityOffsetDb) is the handover default. d1/d2 (distance-based) and t1 (time-based) are accepted only with reportType cond_trigger. Enum: a1, a2, a3, a4, a5, a6, d1, d2, t1 |
false |
| hysteresisDb | integer |
Hysteresis in dB applied to the event condition (OCUDU hysteresis_db) Minimum: 0 Maximum: 15 |
false |
| measTriggerQuantity | enum |
Quantity the event evaluates (OCUDU meas_trigger_quantity) Enum: rsrp, rsrq, sinr |
false |
| measTriggerQuantityOffsetDb | integer |
Offset in dB for events A3/A6 — how much better the neighbor must measure (OCUDU meas_trigger_quantity_offset_db) Minimum: -15 Maximum: 15 |
false |
| measTriggerQuantityThreshold2Db | integer |
Second threshold in dB for event A5 (OCUDU meas_trigger_quantity_threshold_2_db) |
false |
| measTriggerQuantityThresholdDb | integer |
Threshold in dB for events A1/A2/A4/A5 (OCUDU meas_trigger_quantity_threshold_db) |
false |
| periodicHoRsrpOffsetDb | integer |
RSRP offset for triggering a handover from periodical reports, in field units of 0.5 dB; -1 disables handover from periodical measurements (OCUDU periodic_ho_rsrp_offset_db). Minimum: -1 Maximum: 30 |
false |
| reportIntervalMs | integer |
Interval between reports once triggered (OCUDU report_interval_ms); mandatory for periodical and event_triggered configs Enum: 120, 240, 480, 640, 1024, 2048, 5120, 10240, 20480, 40960, 60000, 360000, 720000, 1800000 |
false |
| t312 | integer |
T312 in ms: started by the UE on an event-triggered report while T310 (out-of-sync) is running; on expiry the UE declares radio-link failure to re-establish on another cell sooner (OCUDU t312). Enum: 0, 50, 100, 200, 300, 400, 500, 1000 |
false |
| timeToTriggerMs | integer |
How long the condition must hold before the UE reports (OCUDU time_to_trigger_ms) Enum: 0, 40, 64, 80, 100, 128, 160, 256, 320, 480, 512, 640, 1024, 1280, 2560, 5120 |
false |
NRCell.spec.neighbors[index]
| Name | Type | Description | Required |
|---|---|---|---|
| nrCellRef | string |
Name of the neighbor NRCell (same namespace) |
true |
| reportConfigs | []integer |
Report config ids attached to this relation. Must reference event-triggered configs — the CU-CP rejects periodical configs on neighbor relations. Default: [2] |
false |
NRCell.spec.position
Antenna position in a local Cartesian frame (metres). Read by CU-IP's NRCell watcher for the substrate graph geometry, never by the gNB.
| Name | Type | Description | Required |
|---|---|---|---|
| heightM | number |
Antenna height above ground in meters |
false |
| xCoord | number |
East coordinate in meters (local Cartesian) |
false |
| yCoord | number |
North coordinate in meters (local Cartesian) |
false |
NRCell.spec.radioBackend
The radio the DU drives and its parameters. ruType selects the backend; only the matching sub-object is read.
| Name | Type | Description | Required |
|---|---|---|---|
| dummyProcessingDelay | integer |
For ruType dummy — the dummy RU's downlink processing delay in slots (OCUDU ru_dummy.dl_processing_delay) Default: 1 |
false |
| ofh | object |
Parameters for ruType ofh — an O-RAN split 7.2 O-RU over open fronthaul (OCUDU ru_ofh). The keys are OCUDU's ru_ofh keys in camelCase; the controller renders the DU's ru_ofh and the O-RU's M-plane provisioning file (ru.yml in the cell's ConfigMap) from them, so the carrier, PRB count, TDD pattern, eAxC ids, VLAN, O-RU MAC and IQ bit width always agree on both ends. The DU runs on the host network of a racora.io/fronthaul-ready node; the fronthaul interface, its MAC address and the F1-U address are resolved there when the DU starts. Unset keys come from the radio profile (profileRef), then from OCUDU's defaults. Unpaired (TDD) bands only. |
false |
| ruType | enum |
Radio backend: zmq | dummy (virtual) | uhd (USRP) | ofh (O-RAN 7.2 O-RU over open fronthaul) Enum: zmq, dummy, uhd, ofh Default: dummy |
false |
| uhd | object |
Parameters for ruType uhd — a USRP over UHD (OCUDU ru_sdr with device_driver uhd) |
false |
| zmq | object |
Parameters for ruType zmq — a virtual radio exchanging IQ samples over ZeroMQ with a UE simulator (OCUDU ru_sdr with device_driver zmq). The controller exposes the DU's port 2000 as a Service. |
false |
NRCell.spec.radioBackend.ofh
Parameters for ruType ofh — an O-RAN split 7.2 O-RU over open fronthaul (OCUDU ru_ofh). The keys are OCUDU's ru_ofh keys in camelCase; the controller renders the DU's ru_ofh and the O-RU's M-plane provisioning file (ru.yml in the cell's ConfigMap) from them, so the carrier, PRB count, TDD pattern, eAxC ids, VLAN, O-RU MAC and IQ bit width always agree on both ends. The DU runs on the host network of a racora.io/fronthaul-ready node; the fronthaul interface, its MAC address and the F1-U address are resolved there when the DU starts. Unset keys come from the radio profile (profileRef), then from OCUDU's defaults. Unpaired (TDD) bands only.
| Name | Type | Description | Required |
|---|---|---|---|
| comprBitwidthDl | integer |
DL IQ bit width (compr_bitwidth_dl). Default 9; DL, UL and PRACH must be equal (one O-RU endpoint bit width) Minimum: 1 Maximum: 16 |
false |
| comprBitwidthPrach | integer |
PRACH IQ bit width (compr_bitwidth_prach). Default 9 Minimum: 1 Maximum: 16 |
false |
| comprBitwidthUl | integer |
UL IQ bit width (compr_bitwidth_ul). Default 9 Minimum: 1 Maximum: 16 |
false |
| comprMethodDl | enum |
DL IQ compression (compr_method_dl). Default bfp, the only method the O-RU endpoints are provisioned with Enum: bfp |
false |
| comprMethodPrach | enum |
PRACH IQ compression (compr_method_prach). Default bfp Enum: bfp |
false |
| comprMethodUl | enum |
UL IQ compression (compr_method_ul). Default bfp Enum: bfp |
false |
| dlPortId | []integer |
Downlink eAxC ids, one per DL antenna (dl_port_id; sets cell_cfg.nof_antennas_dl); required |
false |
| duMacAddr | string |
The DU's fronthaul MAC address (du_mac_addr). Default: the fronthaul interface's own address, read on the node at start |
false |
| enableDlStaticComprHdr | boolean |
DL U-plane without a per-section compression header (enable_dl_static_compr_hdr, OCUDU default true). Set it from what the radio expects on the wire; it is independent of mplane.compressionType. |
false |
| enableUlStaticComprHdr | boolean |
UL U-plane without a per-section compression header (enable_ul_static_compr_hdr, OCUDU default true) |
false |
| iqScaling | number |
Digital IQ scaling of the DL signal (iq_scaling) — a calibration of the radio model |
false |
| isPrachCpEnabled | boolean |
Send PRACH C-plane messages (is_prach_cp_enabled) |
false |
| mplane | object |
The O-RU's M-plane: how its datastore is written (the provisioning-file keys, which a radio profile may set) and, with netconfHost or callHome, the session the DU pod's mplane sidecar holds to it (cell keys only). With a session the sidecar provisions the O-RU from ru.yml and the DU starts only once the O-RU is supervised and its carriers are active; without one the O-RU must be provisioned before the cell is applied. |
false |
| networkInterface | string |
The node's fronthaul interface (network_interface). Default: the port node provisioning selected (fronthaul_nic in /etc/racora/fronthaul-inventory) |
false |
| prachPortId | []integer |
PRACH eAxC ids (prach_port_id); required |
false |
| profileRef | string |
Name of a ConfigMap in the cell's namespace whose profile.yaml key holds defaults for these keys (except networkInterface and duMacAddr) — the constants of one radio model, shared by every cell on it. The cell's own keys win; mplane merges key by key. Read when the cell is reconciled. |
false |
| ruMacAddr | string |
The O-RU's fronthaul MAC address (ru_mac_addr); required, here or in the profile |
false |
| t1aMaxCpDl | integer |
DU transmission window, DL C-plane, latest (t1a_max_cp_dl, microseconds before the air time) |
false |
| t1aMaxCpUl | integer |
DU transmission window, UL C-plane, latest (t1a_max_cp_ul, microseconds) |
false |
| t1aMaxUp | integer |
DU transmission window, DL U-plane, latest (t1a_max_up, microseconds) |
false |
| t1aMinCpDl | integer |
DU transmission window, DL C-plane, earliest (t1a_min_cp_dl, microseconds) |
false |
| t1aMinCpUl | integer |
DU transmission window, UL C-plane, earliest (t1a_min_cp_ul, microseconds) |
false |
| t1aMinUp | integer |
DU transmission window, DL U-plane, earliest (t1a_min_up, microseconds) |
false |
| ta4Max | integer |
DU reception window, UL U-plane, latest (ta4_max, microseconds after the air time) |
false |
| ta4Min | integer |
DU reception window, UL U-plane, earliest (ta4_min, microseconds) |
false |
| txGain | number |
The O-RU's carrier TX gain in dB (M-plane tx-gain); required, here or in the profile |
false |
| ulPortId | []integer |
Uplink eAxC ids, one per UL antenna (ul_port_id; sets cell_cfg.nof_antennas_ul); required |
false |
| vlanTagCp | integer |
C-plane VLAN id (vlan_tag_cp); required, and equal to vlanTagUp (the O-RU is provisioned with one VLAN) Minimum: 1 Maximum: 4094 |
false |
| vlanTagUp | integer |
U-plane VLAN id (vlan_tag_up); required Minimum: 1 Maximum: 4094 |
false |
NRCell.spec.radioBackend.ofh.mplane
The O-RU's M-plane: how its datastore is written (the provisioning-file keys, which a radio profile may set) and, with netconfHost or callHome, the session the DU pod's mplane sidecar holds to it (cell keys only). With a session the sidecar provisions the O-RU from ru.yml and the DU starts only once the O-RU is supervised and its carriers are active; without one the O-RU must be provisioned before the cell is applied.
| Name | Type | Description | Required |
|---|---|---|---|
| baseInterface | string |
The O-RU's own Ethernet interface its VLAN interface is created on |
false |
| callHome | boolean |
Accept the O-RU's NETCONF call-home (RFC 8071, TCP 4334 on the node) instead of dialing netconfHost; adds the sidecar |
false |
| compressionType | enum |
The O-RU endpoints' compression-type (default STATIC) Enum: STATIC, DYNAMIC |
false |
| credentialsSecret | string |
Name of a Secret in the DU's namespace with the O-RU NETCONF account, keys username and password. Mounted read-only into the sidecar; the password never reaches a command line. Required with a session. |
false |
| endpointIndexBase | integer |
First index appended to the endpoint prefixes Minimum: 0 |
false |
| netconfHost | string |
The O-RU's NETCONF address the mplane sidecar dials (port netconfPort). Setting it (or callHome) adds the sidecar |
false |
| netconfPort | integer |
The O-RU's NETCONF port Default: 830 Minimum: 1 Maximum: 65535 |
false |
| prachEndpointPrefix | string |
Name prefix of the O-RU's static PRACH endpoints |
false |
| rxEndpointPrefix | string |
Name prefix of the O-RU's static RX endpoints |
false |
| tddCarrierBinding | boolean |
Bind the TDD pattern to the carriers (default true; false for an O-RU that never answers the binding edit) |
false |
| tddPatternUpload | boolean |
Write the cell's TDD pattern to the O-RU (default true) |
false |
| tolerateReplyTimeout | boolean |
Accept an unanswered carrier activation and judge it by the carrier-state readback (default true) |
false |
| txEndpointPrefix | string |
Name prefix of the O-RU's static TX endpoints, for an O-RU with fixed endpoint names |
false |
NRCell.spec.radioBackend.uhd
Parameters for ruType uhd — a USRP over UHD (OCUDU ru_sdr with device_driver uhd)
| Name | Type | Description | Required |
|---|---|---|---|
| clockSource | enum |
Clock source (internal for single cell, gpsdo for sync) Enum: internal, external, gpsdo Default: internal |
false |
| deviceArgs | string |
UHD device args (e.g., type=b200,serial=3591266) Default: type=b200 |
false |
| otwFormat | string |
UHD over-the-wire sample format (sc12 halves USB bandwidth on a B210; sc16 is UHD's default) Default: sc12 |
false |
| rxGain | integer |
RX gain in dB (0-76) Default: 75 |
false |
| srate | number |
Sample rate in MHz Default: 23.04 |
false |
| syncSource | enum |
TIME synchronization source (OCUDU ru_sdr `sync`). Defaults to clockSource when that is gpsdo/external. Frame-time alignment across cells (required for connected-mode neighbor measurement and A3 handover) needs a time-capable source with lock on every cell — a disciplined clock alone does not align frames. Enum: internal, external, gpsdo |
false |
| txGain | integer |
TX gain in dB (0-89) Default: 75 |
false |
NRCell.spec.radioBackend.zmq
Parameters for ruType zmq — a virtual radio exchanging IQ samples over ZeroMQ with a UE simulator (OCUDU ru_sdr with device_driver zmq). The controller exposes the DU's port 2000 as a Service.
| Name | Type | Description | Required |
|---|---|---|---|
| baseSrate | string |
Base sample rate in Hz, as a string (device_args base_srate); must match the UE simulator's Default: 23.04e6 |
false |
| rxGain | integer |
RX gain in dB (ru_sdr.rx_gain) Default: 75 |
false |
| rxPort | string |
ZMQ endpoint the DU receives samples from (device_args rx_port); default tcp://srsue. |
false |
| srate | number |
Sample rate in MHz (OCUDU ru_sdr.srate) Default: 23.04 |
false |
| txGain | integer |
TX gain in dB (ru_sdr.tx_gain); no physical effect on a virtual radio Default: 75 |
false |
| txPort | string |
ZMQ endpoint the DU transmits samples on (device_args tx_port); default tcp://0.0.0.0:2000 |
false |
NRCell.spec.tddUlDlCfg
The cell's TDD pattern (OCUDU cell_cfg.tdd_ul_dl_cfg), for an unpaired band. Absent: OCUDU's default pattern, except for an ofh cell, which runs 7 DL slots, a special slot of 6 DL + 4 UL symbols and 2 UL slots over 10 slots unless set here; an ofh cell's O-RU is provisioned with the same pattern.
| Name | Type | Description | Required |
|---|---|---|---|
| dlUlTxPeriod | integer |
Pattern period in slots (dl_ul_tx_period) Minimum: 1 |
true |
| nofDlSlots | integer |
Full downlink slots at the start of the period (nof_dl_slots) Minimum: 0 |
true |
| nofDlSymbols | integer |
Downlink symbols of the special slot (nof_dl_symbols) Minimum: 0 Maximum: 13 |
true |
| nofUlSlots | integer |
Full uplink slots at the end of the period (nof_ul_slots) Minimum: 0 |
true |
| nofUlSymbols | integer |
Uplink symbols of the special slot (nof_ul_symbols) Minimum: 0 Maximum: 13 |
true |
NRCell.status
| Name | Type | Description | Required |
|---|---|---|---|
| conditions | []object |
Kubernetes-style conditions the controller sets: IdentityAllocated, PCIAllocated, ConfigGenerated and ReportConfigConflict from the reconcile; RadioReady and DUReady for an ofh cell with an M-plane session; DUServed from what the CU-CP serves over F1; O1Ready and O1Config from the DU's O1 datastore. Every reason is listed in the NRCell status reference. |
false |
| gnbDuId | integer |
Controller-assigned gNB-DU ID (unique per DU; F1AP identity) |
false |
| gnbId | integer |
CU-wide gNodeB ID assigned by the controller |
false |
| identitySource | enum |
Provenance of the identity fields (always controller-assigned) Enum: controller |
false |
| lastApplied | map[string]object |
Per-function record of the most recent CU-IP decision applied to this cell, keyed by decision function name (pci, anr): the apply time and the decision id. The controller's verify-current gate reads it before applying the next decision of that function. |
false |
| lastRetune | object |
Audit record of the most recent PCI retune applied by the controller |
false |
| nci | string |
Computed NCI (hex) |
false |
| nciDecimal | integer |
The NCI as a decimal integer (what the CU-CP's runtime commands take) |
false |
| neighbors | []object |
Applied neighbor relations with provenance (manual = declared in spec; anr = written by a CU-IP ANR decision). |
false |
| pciAssignedAt | string |
When the current spec.pci value was last assigned/changed Format: date-time |
false |
| pciSource | enum |
Provenance of the current spec.pci value:
spec - explicit value provided in NRCell spec
controller-temp - controller-assigned temp PCI from the
1002-1007 pool (transient — auto-retune
workflow will replace it)
controller-retuned - controller-applied recommendation from
a CU-IP RANN-D decision (terminal until
the next retune)
Enum: spec, controller-temp, controller-retuned |
false |
| phase | enum |
Pending (temp PCI allocated, reconcile pending), ConfigGenerated (identity resolved, DU generated), Suspended (identity resolved, DU rendered at 0 replicas by spec.du.suspend), Error (see conditions) Enum: Pending, ConfigGenerated, Suspended, Error |
false |
| sectorId | integer |
Controller-assigned sector ID (unique per cell) |
false |
NRCell.status.conditions[index]
| Name | Type | Description | Required |
|---|---|---|---|
| lastTransitionTime | string |
When the condition last changed Format: date-time |
false |
| message | string |
Human-readable detail |
false |
| reason | string |
Machine-readable cause, one of the reasons the NRCell status reference lists for the condition |
false |
| status | enum |
Whether the condition holds Enum: True, False, Unknown |
false |
| type | string |
IdentityAllocated, PCIAllocated, ConfigGenerated, ReportConfigConflict, RadioReady, DUReady, DUServed, O1Ready or O1Config |
false |
NRCell.status.lastApplied[key]
One entry per intelligence function
| Name | Type | Description | Required |
|---|---|---|---|
| decisionId | string |
The applied decision's decision_id |
false |
| ts | string |
When the decision was applied Format: date-time |
false |
NRCell.status.lastRetune
Audit record of the most recent PCI retune applied by the controller
| Name | Type | Description | Required |
|---|---|---|---|
| decisionId | string |
RANN-D decision_id that triggered this retune (format: 'pci:{cell}:spec.pci') |
false |
| from | integer |
Previous PCI value |
false |
| reason | string |
RANN-D decision reason tags (e.g. 'temp', 'confused', 'temp,confused') |
false |
| to | integer |
New PCI value applied |
false |
| ts | string |
When the retune was applied Format: date-time |
false |
NRCell.status.neighbors[index]
| Name | Type | Description | Required |
|---|---|---|---|
| appliedAt | string |
When the relation was first applied; kept across later ANR applies Format: date-time |
false |
| nci | string |
Neighbor NCI (hex) |
false |
| nrCellRef | string |
Name of the neighbor NRCell |
false |
| reportConfigs | []integer |
Report config ids attached to the relation |
false |
| source | enum |
manual = declared in spec.neighbors; anr = written by a CU-IP ANR decision (ANR only ever removes relations it created) Enum: manual, anr |
false |