NF service — A named capability one function offers another, and how it is found
The core network
Where it sits
What it is
What it is. A named capability that one network function
offers to others, made up of service operations. TS 23.501 §7.1.2 describes the
consumer/producer interaction. Services are named N<function>_<service> — Namf_Communication,
Nsmf_PDUSession, Nudm_SDM, Nnrf_NFDiscovery — and it is the service, not the function,
that a consumer asks for.
Two interaction models, and the second is the one that makes the core event-driven:
Request–response. The consumer asks, the producer answers, once. An AMF asking the UDM for subscription data.
Subscribe–notify. The consumer registers interest and the producer calls it back whenever the thing happens — possibly many times, possibly for a long time. This is how an SMF learns that a device has moved, and how anything learns that a PDU session changed. The notification is an HTTP request from the producer to the consumer, so both ends are HTTP servers.
Discovery is the point. A consumer does not hold the address of a producer. It queries the
NRF — "who offers Nsmf_PDUSession for this
S-NSSAI and this DNN?" — and the NRF returns matching
NF profiles, each with its instance identity, its services and its endpoint addresses. The
consumer then calls one of them directly.
Why this matters more than it looks. Discovery turns selection into a query with parameters, and the parameters are exactly the things that make one instance different from another — the slice it serves, the data network it can reach, the region it is in. So slice-aware and region-aware selection are not extra machinery; they fall out of the discovery filter. The NSSF's job shrinks to deciding which slice, and the NRF answers which instance.
The bootstrap problem, and its answer. If nothing is configured with anyone's address, how is the NRF found? It is the exception: the NRF's own address is configured, and TS 23.501 §6.2.6 gives it a "NRF bootstrapping service" so that even NRF service endpoints can be discovered. One configured address for the whole core.
Read on
This concept is read as part of one argument in ref-core, alongside the rest of its group.
Before this concept, the hierarchy says to learn the following — the full chain, in order: