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:

Table 1. Capacity and Load Attributes
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.