Radios
Radios are automatically added to Ella Core after a successfull connection.
The Radio API provides endpoints to view information about radios and to forget offline ones.
List Radios
This path returns the list of radios in the inventory.
| Method |
Path |
| GET |
/api/v1/ran/radios |
Query Parameters
| Name |
In |
Type |
Default |
Allowed |
Description |
page |
query |
int |
1 |
>= 1 |
1-based page index. |
per_page |
query |
int |
25 |
1…100 |
Number of items per page. |
status |
query |
str |
|
online, offline |
Filter by presence status. |
Response Fields
| Field |
Type |
Description |
name |
string |
Radio name. |
ref |
string |
Radio identity, and the path segment that addresses it. Empty on a radio that has not completed setup. |
id |
string |
Radio identifier. |
plmn |
object |
The PLMN the radio belongs to. |
bit_length |
int |
Bit length of the gNB ID (22–32). Present on gNBs only. |
address |
string |
Radio address. On an offline radio, the last known address. |
type |
string |
Radio type: gNB, ng-eNB, eNB, N3IWF, or Unknown. |
status |
string |
online if the radio is currently associated with this node, offline otherwise. |
connected_at |
string |
When the radio associated (RFC 3339). On an offline radio, when it last associated. |
last_seen_at |
string |
Timestamp of the last message received from the radio (RFC 3339). |
disconnected_at |
string |
When the radio's association dropped (RFC 3339). Empty while the radio is online. |
Sample Response
{
"result": {
"items": [
{
"name": "gnb1",
"ref": "gNB:001-01:000102@24",
"id": "000102",
"plmn": { "mcc": "001", "mnc": "01" },
"bit_length": 24,
"address": "10.1.107.203/192.168.251.5:9487",
"type": "gNB",
"status": "online",
"connected_at": "2025-08-12T16:58:00Z",
"last_seen_at": "2025-08-12T17:02:30Z",
"disconnected_at": ""
},
{
"name": "gnb2",
"ref": "gNB:001-01:000103@24",
"id": "000103",
"plmn": { "mcc": "001", "mnc": "01" },
"bit_length": 24,
"address": "10.1.107.204/192.168.251.6:9487",
"type": "gNB",
"status": "offline",
"connected_at": "2025-08-12T09:12:00Z",
"last_seen_at": "2025-08-12T16:40:11Z",
"disconnected_at": "2025-08-12T16:41:02Z"
}
],
"page": 1,
"per_page": 10,
"total_count": 2
}
}
Get a Radio
This path returns the details of a specific radio, connected or offline, including connection timestamps, RAN node type, and supported tracking areas. To list subscribers connected to this radio, use GET /api/v1/subscribers?radio={name}.
| Method |
Path |
| GET |
/api/v1/ran/radios/{ref} |
Path Parameters
| Name |
Type |
Description |
ref |
string |
Radio identity, as returned in a radio's ref field: {type}:{mcc}-{mnc}:{id}, the id carrying @{bitLength} for a gNB. For example gNB:001-01:00002a@24 or eNB:001-01:MacroeNB-00008. |
Sample Response
{
"result": {
"name": "gnb1",
"ref": "gNB:001-01:000102@24",
"id": "000102",
"plmn": { "mcc": "001", "mnc": "01" },
"bit_length": 24,
"address": "10.1.107.203/192.168.251.5:9487",
"status": "online",
"connected_at": "2025-08-12T16:58:00Z",
"last_seen_at": "2025-08-12T17:02:30Z",
"disconnected_at": "",
"type": "gNB",
"supported_tais": [
{
"tai": {
"plmnID": {
"mcc": "001",
"mnc": "01"
},
"tac": "000001"
},
"snssais": [
{
"sst": 1,
"sd": "102030"
}
]
},
{
"tai": {
"plmnID": {
"mcc": "123",
"mnc": "12"
},
"tac": "000002"
},
"snssais": [
{
"sst": 1,
"sd": "102031"
}
]
}
]
}
}
Forget a Radio
This path drops an offline radio from the inventory.
Requires the admin role.
| Method |
Path |
| DELETE |
/api/v1/ran/radios/{ref} |
Path Parameters
| Name |
Type |
Description |
ref |
string |
Radio identity, as returned in a radio's ref field: {type}:{mcc}-{mnc}:{id}, the id carrying @{bitLength} for a gNB. For example gNB:001-01:00002a@24 or eNB:001-01:MacroeNB-00008. |
Response Codes
| Code |
Description |
200 |
The radio was forgotten. |
404 |
No offline radio carries that identifier. |
409 |
The radio is online. |
Sample Response
{
"result": {
"message": "Radio forgotten successfully"
}
}
List Radio Events
This path returns the list of radio events.
| Method |
Path |
| GET |
/api/v1/ran/events |
Query Parameters
| Name |
In |
Type |
Default |
Allowed |
Description |
page |
query |
int |
1 |
>= 1 |
1-based page index. |
per_page |
query |
int |
25 |
1…100 |
Number of items per page. |
protocol |
query |
str |
|
NGAP, S1AP |
Filter by protocol (NGAP for 5G radios, S1AP for 4G radios). |
direction |
query |
str |
|
inbound, outbound |
Filter by log direction. |
message_type |
query |
str |
|
|
Filter by message type. |
start |
query |
str |
|
|
Inclusive lower bound, RFC3339 (e.g., 2006-01-02T15:04:05Z07:00). Unbounded when omitted. |
end |
query |
str |
|
|
Exclusive upper bound, RFC3339. Unbounded when omitted. |
Sample Response
{
"result": {
"items": [
{
"id": 1,
"timestamp": "2025-08-12T16:58:00.810-0400",
"radio": "gnb1",
"address": "10.1.107.203:9487",
"protocol": "NGAP",
"message_type": "PDU Session Establishment Accept",
"direction": "inbound",
"raw": "ABUAOQAABAAbAAkAAPEQMAASNFAAUkAMBIBnbmIwMDEyMzQ1AGYAEAAAAAABAADxEAAAEAgQIDAAFUABQA",
"details": "{\"pduSessionID\":1}"
}
],
"page": 1,
"per_page": 10,
"total_count": 1
}
}
Get Radio Event
This path returns a specific radio event by its ID.
| Method |
Path |
| GET |
/api/v1/ran/events/{id} |
Sample Response
{
"result": {
"raw": "IBUALAAABAABAAUBAGFtZgBgAAgAAADxEMr+AABWQAH/AFAACwAA8RAAABAIECAw",
"decoded": {
"successful_outcome": {
"procedure_code": "NGSetup",
"criticality": "Reject (0)",
"value": {
"ng_setup_response": {
"ies": [
{
"id": "AMFName (1)",
"criticality": "Reject (0)",
"amf_name": "amf"
},
{
"id": "ServedGUAMIList (96)",
"criticality": "Reject (0)",
"served_guami_list": [
{
"plmn_id": {
"mcc": "001",
"mnc": "01"
},
"amf_id": "cafe00"
}
]
},
{
"id": "RelativeAMFCapacity (86)",
"criticality": "Ignore (1)",
"relative_amf_capacity": 255
},
{
"id": "PLMNSupportList (80)",
"criticality": "Reject (0)",
"plmn_support_list": [
{
"plmn_id": {
"mcc": "001",
"mnc": "01"
},
"slice_support_list": [
{
"sst": 1,
"sd": "102030"
}
]
}
]
}
]
}
}
}
}
}
}
Update Radio Event Retention Policy
This path updates the radio event retention policy.
| Method |
Path |
| PUT |
/api/v1/ran/events/retention |
Parameters
days (integer): The number of days to retain radio events. Must be a positive integer.
Sample Response
{
"result": {
"message": "Radio event retention policy updated successfully"
}
}
Clear Radio Events
This path deletes all radio events.
| Method |
Path |
| DELETE |
/api/v1/ran/events |
Parameters
None
Sample Response
{
"result": {
"message": "All radio events cleared successfully"
}
}
Get Radio Event Retention Policy
This path returns the current radio event retention policy.
| Method |
Path |
| GET |
/api/v1/ran/events/retention |
Parameters
None
Sample Response
{
"result": {
"days": 30
}
}