NRF Client Load and Capacity Reporting
The NRF Client can report load and capacity values to the NRF.
Capacity and load statistics are defined in the 3GPP TS 29.510 specification as follows:
Attribute | Data Type | P | Cardinality | Description |
---|---|---|---|---|
capacity | integer | O | 0..1 | Static capacity information in the range of 0–65535, expressed as a weight relative to other NF instances of the same type. If the capacity is also present in the nfServiceList parameters, those parameters have precedence over this value. |
load | integer | O | 0..1 | Dynamic load information, ranged from 0 to 100, indicates the current load percentage of the NF. |
Load and capacity can be sent on registration. The load value is dynamic and can be
updated using the heartbeat message. The following is an example of an
nfProfile
sent on registration:
nfInstanceId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
nfType: CHF
nfStatus: REGISTERED
heartBeatTimer: 60
capacity: 20
load: 5
The following is an example of a heartbeat with an updated load value:
PATCH
.../nf-instances/4947a69a-f61b-4bc1-b9da-47c9c5d14b64
Content-Type:
application/json-patch+json
[
{ "op": "replace", "path": "/nfServices/0/nfServiceStatus", "value": "REGISTERED" },
{ "op": "replace", "path": "/nfServices/1/nfServiceStatus", "value": "REGISTERED" },
{ "op": "replace", "path": "/load", "value": 50 }
]
Capacity is a static value, specified in the nfProfile
sent on
registration. The nfProfile
configuration item specifies a path to a
file containing the nfProfile
to send, where the capacity can be
specified. The capacity value is deployment-specific, depending on the number of CHF
instances and their relative capacity.
The load metric specifies the percentage load of the whole network function (NF). The network function is composed of several systems, and the SBA Gateway provides a mechanism to periodically request this metric from an external REST API and populate the load value in the registration/heartbeat messages.
Similarly, the SBA Gateway can report platform status as determined by the number of error
responses received from the Prometheus REST API, relative to a configurable threshold.
If the limit is exceeded, an nfStatus
of SUSPENDED
can
be sent in the registration/heartbeat messages, instead of
REGISTERED
.