Architecture
New priority attribute added in the SmfInfo data type to enable the discovery and selection of SMF, this is based on the relative priorities registered by candidate SMFs in different smfInfo entries with different TAI lists.
-
SmfInfo in NFProfile is sent if there’s no change in configuration(All tai-groups data being sent without priority).
-
SmfInfoList map is new element in NFprofile.
-
Each SmfInfoList entry doesn't contain all tai-group-list data. Each element contains entries of the same priority tai-groups per NSSAI.
NoteAll tai-groups under a slice is expected to be of the same priority.
-
If tai-group-list has tai-groups of different priority configured under a slice, tai-groups are logically grouped based on priority. SmfInfo has data of tai-group of one priority and subsequent priority tai-group(s) data in each of SmfInfoList entry.
-
if no tai-group is associated with any slice, then old behaviour prevails. If there’s tai-group association for few slices and few without, then the smfinfolist entries of slices without tai-group have no TAI details
-
For any tai-group if priority isn’t defined, it’s grouped separately and sent as a SmfInfo entry or different SmfInfoList entry.
-
Key for each SmfInfoList map element is Incremental counter string.
Attribute Name |
Data Type |
P |
Cardinality |
Description |
||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nfInstanceId |
NfInstanceId |
M |
1 |
Unique identity of the NF Instance. |
||||||||||||||||||||||||||
nfType |
NFType |
M |
1 |
Type of Network Function |
||||||||||||||||||||||||||
nfStatus |
NFStatus |
M |
1 |
Status of the NF Instance. |
||||||||||||||||||||||||||
nfInstanceName |
String |
O |
0.1 |
Human readable name of the NF Instance |
||||||||||||||||||||||||||
heartBeatTimer |
Integer |
C |
0.1 |
Time in seconds expected between 2 consecutive heart-beat messages from an NF Instance to the NRF. It may be included in the registration request. When present in the request it shall contain the heartbeat time proposed by the NF service consumer. It shall be included in responses from NRF to registration requests (PUT) or in NF profile updates (PUT or PATCH). If the proposed heartbeat time is acceptable by the NRF based on the local configuration, it shall use the same value as in the registration request; otherwise the NRF shall override the value using a preconfigured value. |
||||||||||||||||||||||||||
plmnList |
array(PlmnId) |
C |
1..N |
PLMN(s) of the Network Function (NOTE 7). This IE shall be present if this information is available for the NF. If not provided, PLMN ID(s) of the PLMN of the NRF are assumed for the NF. |
||||||||||||||||||||||||||
snpnList |
array(PlmnIdNid) |
C |
1..N |
SNPN(s) of the Network Function. This IE shall be present if the NF pertains to one or more SNPNs. |
||||||||||||||||||||||||||
sNssais |
array(Snssai) |
O |
1..N |
S-NSSAIs of the Network Function. If not provided, the NF can serve any S-NSSAI. When present this IE represents the list of S-NSSAIs supported in all the PLMNs listed in the plmnList IE. If the sNSSAIs attribute is provided in at least one NF Service, the S-NSSAIs supported by the NF Profile shall be the set or a superset of the S-NSSAIs of the NFService(s). |
||||||||||||||||||||||||||
perPlmnSnssaiList |
array(PlmnSnssai) |
O |
1..N |
This IE may be included when the list of S-NSSAIs supported by the NF for each PLMN it’s supporting is different. When present, this IE shall include the S-NSSAIs supported by the Network Function for each PLMN supported by the Network Function. When present, this IE shall override sNssais IE. (NOTE 9) If the perPlmnSnssaiList attribute is provided in at least one NF Service, the S-NSSAIs supported per PLMN in the NF Profile shall be the set or a superset of the perPlmnSnssaiList of the NFService(s). |
||||||||||||||||||||||||||
nsiList |
array(string) |
O |
1..N |
NSI identities of the Network Function. If not provided, the NF can serve any NSI. |
||||||||||||||||||||||||||
fqdn |
Fqdn |
C |
0..1 |
FQDN of the Network Function (NOTE 1) (NOTE 2). For AMF, the FQDN registered with the NRF shall be that of the AMF Name (see 3GPP 23.003 [12] clause 28.3.2.5). |
||||||||||||||||||||||||||
interPlmnFqdn |
Fqdn |
C |
0..1 |
If the NF needs to be discoverable by other NFs in a different PLMN, then an FQDN that is used for inter-PLMN routing as specified in 3GPP 23.003 [12] shall be registered with the NRF (NOTE 8). A change of this attribute shall result in triggering a "NF_PROFILE_CHANGED" notification from NRF towards subscribing NFs located in a different PLMN, but the new value shall be notified as a change of the "fqdn" attribute. |
||||||||||||||||||||||||||
ipv4Addresses |
array(Ipv4Addr) |
C |
1..N |
IPv4 address(es) of the Network Function (NOTE 1) (NOTE 2) |
||||||||||||||||||||||||||
ipv6Addresses |
array(Ipv6Addr) |
C |
1..N |
IPv6 address(es) of the Network Function. |
||||||||||||||||||||||||||
allowedPlmns |
array(PlmnId) |
O |
1..N |
PLMNs allowed to access the NF instance. If not provided, any PLMN is allowed to access the NF. A change of this attribute shall not trigger a "NF_PROFILE_CHANGED" notification from NRF, and this attribute shall not be included in profile change notifications to subscribed NFs. |
||||||||||||||||||||||||||
allowedSnpns |
array(PlmnIdNid) |
O |
1..N |
SNPNs allowed to access the NF instance. If this attribute is present in the NFService and in the NF profile, the attribute from the NFService shall prevail. The absence of this attribute in both the NFService and in the NF profile indicates that no SNPN, other than the SNPN(s) registered in the snpnList attribute of the NF Profile, is allowed to access the service instance. A change of this attribute won’t trigger a "NF_PROFILE_CHANGED" notification from NRF, and this attribute won’t be included in profile change notifications to subscribed NFs. |
||||||||||||||||||||||||||
allowedNfTypes |
array(NFType) |
O |
1..N |
Type of the NFs allowed to access the NF instance. If not provided, any NF type is allowed to access the NF. A change of this attribute won’t trigger a "NF_PROFILE_CHANGED" notification from NRF, and this attribute won’t be included in profile change notifications to subscribed NFs. |
||||||||||||||||||||||||||
allowedNfDomains |
array(string) |
O |
1..N |
Pattern (regular expression according to the ECMA-262 dialect [8]) representing the NF domain names allowed to access the NF instance. If not provided, any NF domain is allowed to access the NF. A change of this attribute won’t trigger a "NF_PROFILE_CHANGED" notification from NRF, and this attribute won’t be included in profile change notifications to subscribed NFs. |
||||||||||||||||||||||||||
allowedNssais |
array(Snssai) |
O |
1..N |
S-NSSAI of the allowed slices to access the NF instance. If not provided, any slice is allowed to access the NF. A change of this attribute won’t trigger a "NF_PROFILE_CHANGED" notification from NRF, and this attribute won’t be included in profile change notifications to subscribed NFs. |
||||||||||||||||||||||||||
priority |
Integer |
O |
0..1 |
Priority (relative to other NFs of the same type) within the range 0 to 65535, to be used for NF selection; lower values indicate a higher priority. Priority may or may not be present in the nfServiceList parameters, xxxInfo parameters and in this attribute. Priority in the nfServiceList has precedence over the priority in this attribute, which has precedence over the priority in xxxInfo parameter. (NOTE 4). The NRF may overwrite the received priority value when exposing an NFProfile with the Nnrf_NFDiscovery service. |
||||||||||||||||||||||||||
capacity |
Integer |
O |
0..1 |
Static capacity information within the range 0 to 65535, expressed as a weight relative to other NF instances of the same type; if capacity is also present in the nfServiceList parameters, those will have precedence over this value. (NOTE 4). |
||||||||||||||||||||||||||
load |
Integer |
O |
0..1 |
Dynamic load information, within the range 0 to 100, indicates the current load percentage of the NF. |
||||||||||||||||||||||||||
oadTimeStamp |
DateTime |
O |
0..1 |
It indicates the point in time in which the latest load information (sent by the NF in the "load" attribute of the NF Profile) was generated at the NF Instance. If the NF did not provide a timestamp, the NRF should set it to the instant when the NRF received the message where the NF provided the latest load information. |
||||||||||||||||||||||||||
locality |
string |
O |
0..1 |
Operator defined information about the location of the NF instance (e.g. geographic location, data center) (NOTE 3) |
||||||||||||||||||||||||||
udrInfo |
UdrInfo |
O |
0..1 |
Specific data for the UDR (ranges of SUPI, group ID …) |
||||||||||||||||||||||||||
udrInfo |
map(UdrInfo) |
O |
1..N |
Multiple entries of UdrInfo. This attribute provides additional information to the udrInfo. udrInfoList may be present even if the udrInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
udmInfo |
UdmInfo |
O |
0..1 |
Specific data for the UDM (ranges of SUPI, group ID…) |
||||||||||||||||||||||||||
udmInfoList |
map(UdmInfo) |
O |
1..N |
Multiple entries of UdmInfo. This attribute provides additional information to the udmInfo. udmInfoList may be present even if the udmInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters |
||||||||||||||||||||||||||
ausfInfo |
AusfInfo |
O |
0..1 |
Specific data for the AUSF (ranges of SUPI, group ID…) |
||||||||||||||||||||||||||
ausfInfoList |
map(AusfInfo) |
O |
1..N |
Multiple entries of AusfInfo. This attribute provides additional information to the ausfInfo. ausfInfoList may be present even if the ausfInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
amfInfo |
AmfInfo |
O |
0..1 |
Specific data for the AMF (AMF Set ID, …) |
||||||||||||||||||||||||||
amfInfoList |
map(AmfInfo) |
O |
1..N |
Multiple entries of AmfInfo. This attribute provides additional information to the amfInfo. amfInfoList may be present even if the amfInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
smfInfo |
SmfInfo |
O |
0..1 |
Specific data for the SMF (DNN's, …). |
||||||||||||||||||||||||||
smfInfoList |
map(SmfInfo) |
O |
1..N |
Multiple entries of SmfInfo. This attribute provides additional information to the smfInfo. smfInfoList may be present even if the smfInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
upfInfo |
UpfInfo |
O |
0..1 |
Specific data for the UPF (S-NSSAI, DNN, SMF serving area, interface…) |
||||||||||||||||||||||||||
upfInfoList |
map(UpfInfo) |
O |
1..N |
Multiple entries of UpfInfo. This attribute provides additional information to the upfInfo. upfInfoList may be present even if the upfInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
pcfInfo |
PcfInfo |
O |
0..1 |
Specific data for the PCF |
||||||||||||||||||||||||||
pcfInfoList |
map(PcfInfo) |
O |
1..N |
Multiple entries of PcfInfo. This attribute provides additional information to the pcfInfo. pcfInfoList may be present even if the pcfInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
bsfInfo |
BsfInfo |
O |
0..1 |
Specific data for the BSF. |
||||||||||||||||||||||||||
bsfInfoList |
map(BsfInfo) |
O |
1..N |
Multiple entries of BsfInfo. This attribute provides additional information to the bsfInfo. bsfInfoList may be present even if the bsfInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
chfInfo |
ChfInfo |
O |
0..1 |
Specific data for the CHF. |
||||||||||||||||||||||||||
chfInfoList |
map(ChfInfo) |
O |
1..N |
Multiple entries of ChfInfo. This attribute provides additional information to the chfInfo. chfInfoList may be present even if the chfInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
nefInfo |
NefInfo |
O |
0..1 |
Specific data for the NEF. |
||||||||||||||||||||||||||
nrfInfo |
NrfInfo |
O |
0..1 |
Specific data for the NRF. |
||||||||||||||||||||||||||
udsfInfo |
UdsfInfo |
O |
0..1 |
Specific data for the UDSF. |
||||||||||||||||||||||||||
udsfInfoList |
map(UdsfInfo) |
O |
1..N |
Multiple entries of udsfInfo. This attribute provides additional information to the udsfInfo. udsfInfoList may be present even if the udsfInfo is absent. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters |
||||||||||||||||||||||||||
nwdafInfo |
NwdafInfo |
O |
0..1 |
Specific data for the NWDAF. |
||||||||||||||||||||||||||
pcscfInfoList |
map(PcscfInfo) |
O |
1..N |
Specific data for the P-CSCF. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. (NOTE 11) |
||||||||||||||||||||||||||
hssInfoList |
map(HssInfo) |
O |
1..N |
Specific data for the HSS. The key of the map will be a (unique) valid JSON string per clause 7 of IETF RFC 8259 [22], with a maximum of 32 characters. |
||||||||||||||||||||||||||
customInfo |
object |
O |
0..1 |
Specific data for custom Network Functions. |
||||||||||||||||||||||||||
recoveryTime |
DateTime |
0..1 |
Timestamp when the NF was (re)started. |
|||||||||||||||||||||||||||
nfServicePersistence |
boolean |
O |
0..1 |
True: If present, and set to true, it indicates that the different service instances of a same NF Service in this NF instance, supporting a same API version, are capable to persist their resource state in shared storage and therefore these resources are available after a new NF service instance supporting the same API version is selected by a NF Service Consumer (see 3GPP 23.527 [27]). False (default): Otherwise, it indicates that the NF Service Instances of a same NF Service are not capable to share resource state inside the NF Instance. |
||||||||||||||||||||||||||
nfServices |
array(NFService) |
O |
1..N |
List of NF Service Instances. It will include the services produced by the NF that can be discovered by other NFs, if any. |
||||||||||||||||||||||||||
nfProfileChangesSupportInd |
boolean |
O |
0..1 |
NF Profile Changes Support Indicator. See Annex B. This IE may be present in the NFRegister or NFUpdate (NF Profile Complete Replacement) request and must be absent in the response. True: the NF Service Consumer supports receiving NF Profile Changes in the response. False (default): the NF Service Consumer does not support receiving NF Profile Changes in the response. Write-Only: true |
||||||||||||||||||||||||||
nfProfileChangesInd |
boolean |
O |
0..1 |
NF Profile Changes Indicator. See Annex B. This IE must be absent in the request to the NRF and may be included by the NRF in NFRegister or NFUpdate (NF Profile Complete Replacement) response. True: the NF Profile contains NF Profile changes. False (default): complete NF Profile. Read-Only: true |
||||||||||||||||||||||||||
defaultNotification Subscriptions |
array(DefaultNotificatio nSubscription) |
O |
1..N |
Notification endpoints for different notification types. (NOTE 10) |
||||||||||||||||||||||||||
gmlcInfo |
GmlcInfo |
O |
0..1 |
Specific data for the GMLC |
||||||||||||||||||||||||||
nfSetIdList |
array(NfSetId) |
O |
1..N |
NF Set ID defined in clause 28.12 of 3GPP TS 23.003 [12]. At most one NF Set ID must be indicated per PLMN of the NF. |
||||||||||||||||||||||||||
servingScope |
array(string) |
O |
1..N |
The served area(s) of the NF instance. The absence of this attribute does not imply that the NF instance can serve every area in the PLMN. |
||||||||||||||||||||||||||
lcHSupportInd |
boolean |
O |
0..1 |
This IE indicates whether the NF supports Load Control based on LCI Header (see clause 6.3 of 3GPP TS 29.500 [4]). True: the NF supports the feature. False (default): the NF does not support thefeature. |
||||||||||||||||||||||||||
olcHSupportInd |
boolean |
O |
0..1 |
This IE indicates whether the NF supports Overload Control based on OCI Header (see clause 6.4 of 3GPP TS 29.500 [4]). True: the NF supports the feature. False (default): the NF does not support thefeature. |
||||||||||||||||||||||||||
|
Attribute name |
Data Type |
P |
Cardinality |
Description |
||
---|---|---|---|---|---|---|
sNssaiSmfInfoList |
array(sNssaiSmfInfoItem) |
M |
1..N |
List of parameters supported by the SMF per S-NSSAI. |
||
taiList |
array(Tai) |
O |
1..N |
The list of TAIs the SMF can serve. It may contain the non-3GPP access TAI. The absence of this attribute and the taiRangeList attribute indicate that the SMF can be selected for any TAI in the serving network. |
||
taiRangeList |
||||||
taiRangeList |
array(TaiRange) |
O |
1..N |
The range of TAIs the SMF can serve. It may contain the non-3GPP access' TAI. The absence of this attribute and the taiList attribute indicate that the SMF can be selected for any TAI in the serving network. |
||
pgwFqdn |
Fqdn |
O |
0..1 |
The FQDN of the PGW if the SMF is a combined SMF/PGW-C. |
||
accessType |
array(AccessType) |
C |
1..2 |
If included, this IE must contain the access type (3GPP_ACCESS and/or NON_3GPP_ACCESS) supported by the SMF. If not included, it must be assumed the both access types are supported. |
||
priority |
integer |
O |
0..1 |
Priority (relative to other NFs of the same type) in the range of 0-65535, to be used for NF selection for a service request matching the attributes of the SmfInfo; lower values indicate a higher priority. See the precedence rules in the description of the priority attribute in NFProfile, if Priority is also present in the nfServiceList parameters or in NFProfile. The NRF may overwrite the received priority value when exposing an NFProfile with the Nnrf_NFDiscovery service. |
||
|