Before anything else on this page makes sense, it is worth being clear about what a network slice actually is, because the word suggests something more physical than it is. A slice is not a separate network and not dedicated hardware. It is a
Each slice is named by an
Which brings us to why a selection function has to exist at all. A UE that registers will ask for the slices it wants, but wanting is not the same as getting. The slices it asks for may not be ones it is subscribed to. They may be subscribed but not deployed in the particular tracking area the user happens to be standing in. They may be deployed there but currently too loaded to accept anybody else. Somebody has to reconcile the request against the subscription against what is actually available on the ground, and produce a straight answer the AMF can act on. That is the entire job of the NSSF, and it explains why such a small function is worth having at all.
NSSF plays(Network Slice Selection Function) has relatively simple function and interact with only a few NF(Network Functions). Within a PLMN, it interact only with NRF and AMF and exchange information about Network Slice Selection.

That picture makes your opening point better than any description could. It is the whole 5G core, and the NSSF has
The question it answers is this. A UE that registers may ask for particular network slices, and the network has to decide which of them it is actually going to get. That decision is not obvious : the UE may ask for slices it is not subscribed to, or slices that exist in the network but are not deployed in the tracking area it happens to be standing in, or slices that are deployed but currently overloaded. Somebody has to reconcile what was asked for against what is permitted and what is available, and that somebody is the NSSF.
The AMF could in principle do this itself, and in a small network it effectively does - if there is no NSSF the AMF falls back on locally configured slice information. Separating it out matters when slices become numerous and their availability varies by area, because then the mapping is real operational data that changes, and it is better held in one place than replicated into every AMF.
Followings are the name of each network component.
AUSF Authentication Server Function DN Data Network NEF Network Exposure Function NRF Network Repository Function <hl1>NSSF</hl1> Network Slice Selection Function PCF Policy Control Function ==> Equivalent to PCRF in 5G (R)AN (Radio) Access Network SMF Session Management Function UDM Unified Data Management ==> Equivalent to HSS in 4G UPF User Plane Function ==> Equivalent to PGW in 4G SMSF SMS Function SEAF SEcurity Anchor Function ==> part of AMF function ARPF Authentication credential Repository and Processing Function SIDF Subscription Identifier De-concealing Function
GET operation of NSSF
It is worth pausing on why this is a
That works because the NSSF keeps
The practical consequences are worth noting because they explain the shape of the interface you are about to see. An NSSF can be replicated freely, since no instance knows anything the others do not. It can be restarted without losing anything. And the AMF must ask again whenever the situation changes rather than expecting to be told - which is precisely why the same operation appears in three different procedures rather than once at registration.
Since the main roles of NSSF is to provide Network Slice Information to AMF, the major operation should be GET operation. NSSF GET operation described in 29.531 is as follows.

One request, one response, and no state left behind on either side - which is what you would expect from a function whose entire job is to answer a question. Two details in that figure are worth drawing out.
GET .../v1/network-slice-information?<query parameters> no request body | v200 OK AuthorizedNetworkSliceInfo 403 Forbidden ProblemDetails 4xx / 5xx ProblemDetails or 3xx redirect
The same operation (with different parameters) happens in a few different situationas listed below :
- during the mobility procedure (29.531-5.2.2.2.2)
- during the PDU session establishment procedure (29.531-5.2.2.2.3)
- during UE configuration update procedure (29.531-5.2.2.2.4)
Those three are not three variations on a theme - they are three genuinely different questions, and the specification gives each one its own request data type, which is why the list of structures further down this page contains three names that look almost identical :
| Procedure | Request type used | What is really being asked |
|---|---|---|
Registration / mobility |
The UE has arrived. Which of the slices it wants may it actually use in this area, and what should it store for next time? |
|
PDU session establishment |
The UE already has an allowed set. For |
|
UE configuration update |
Something changed on the network side. What should the UE's stored configuration now be, so the network can push it down? |
The middle one is the one people tend to overlook. Getting an allowed slice at registration does not tell the network
Network Selection Related Information
Everything the NSSF deals with is a list of slice identifiers, so the structures in this section are almost entirely wrappers around one thing : the
What makes them different from each other is not their contents but their
So the right way to read the list below is not top to bottom but as a small pipeline with inputs on one side and outputs on the other.
That list of eleven structures looks like a lot until you notice that most of the names are the same word with a different qualifier in front of it. Those qualifiers are the model, and reading them in the right order tells you how a slice decision is actually made :
Requested NSSAI what theUE asked for sent by the AMF in the query |Subscribed S-NSSAI what thesubscription permits comes from the UDM | | the NSSF reconciles the two against what is deployed here, | and may drop slices the NWDAF reports as overloaded vAllowed NSSAI what the UE mayuse now returned in AuthorizedNetworkSliceInfoConfigured S-NSSAI what the UE shouldremember also returned, for future use and two supporting types :MappingOfSnssai translates a serving-PLMN S-NSSAI to its home-PLMN equivalent, for roamingNsiInformation names the actual sliceinstance and the NRF to use for it
Read that way, the eleven tables stop being a list and become a pipeline.
The distinction between
< 29.531 - Table 6.1.6.1-1: Nnssf_NSSelection specific Data Types >

< 29.531 - Table 6.1.6.2.2-1: Definition of type AuthorizedNetworkSliceInfo >





< 29.531 - Table 6.1.6.2.3-1: Definition of type SubscribedSnssai >

< 29.531 - Table 6.1.6.2.5-1: Definition of type AllowedSnssai >

< 29.531 - Table 6.1.6.2.6-1: Definition of type AllowedNssai >

< 29.531 - Table 6.1.6.2.7-1: Definition of type NsiInformation >

< 29.531 - Table 6.1.6.2.8-1: Definition of type MappingOfSnssai >

< 29.531 - Table 6.1.6.2.10-1: Definition of type SliceInfoForRegistration >



< 29.531 - Table 6.1.6.2.11-1: Definition of type SliceInfoForPDUSession >

< 29.531 - Table 6.1.6.2.12-1: Definition of type ConfiguredSNssai >

< 29.531 - Table 6.1.6.2.13-1: Definition of type SliceInfoForUEConfigurationUpdate >

