TAI Selection from AMF

Feature Summary and Revision History

Summary Data

Applicable Product(s) or Functional Area

SMF

Applicable Platform(s)

SMI

Feature Default Setting

Enabled – Always-on

Related Changes in this Release

Not Applicable

Related Documentation

Not Applicable

Revision History

Table 1. Revision History

Revision Details

Release

First introduced.

2021.01.0

Feature Description

SMF supports TAI selection from AMF with this release.

SMF is added with a new priority attribute in the SmfInfo data type. Which enables the discovery and the selection of SMF based on the relative priorities registered by candidate SMFs in different smfInfo entries with different TAI lists. New SmfInfoList map is supported.

How it Works

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.


    Note

    All 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.

Table 2. NFProfile

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.

Note 

At least one of the addressing parameters (FQDN, IPv4address or IPv6adress) is included in the NF Profile. If the NF supports the NF services with "https" URI scheme (i.e use of TLS is mandatory), then the FQDN provided in the NF Profile or the NF Service profile (see clause 6.1.6.2.3). See NOTE 1 of Table 6.1.6.2.3-1 for the use of these parameters. If multiple ipv4 addresses and/or ipv6 addresses are included in the NF Profile, the NF Service Consumer of the discovery service must select one of these addresses randomly, unless operator defined local policy of IP address selection, in order to avoid overload for a specific ipv4 address and/or ipv6 address.

Note 

If the type of Network Function is UPF, the addressing information is for the UPF N4 interface.

Note 

A requester NF may use this information to select a NF instance (e.g. a NF instance preferably located in the same data center).

Note 

The capacity and priority parameters, if present, are used for NF selection and load balancing. The priority and capacity attributes must be used for NF selection in the same way that priority and weight are used for server selection as defined in IETF RFC 2782 [23].

Note 

The NRF must notify NFs subscribed to receiving notifications of changes of the NF profile, if the NF recoveryTime or the nfStatus is changed. See clause 6.2 of 3GPP 23.527 [27].

Note 

A requester NF may consider that all the resources created in the NF before the NF recovery time have been lost. This may be used to detect a restart of a NF and to trigger appropriate actions, e.g. release local resources. See clause 6.2 of 3GPP 23.527 [27].

Note 

A NF may register multiple PLMN IDs in its profile within a PLMN comprising multiple PLMN IDs. If so, all the attributes of the NF Profile must apply to each PLMN ID registered in the plmnList. As an exception, attributes including a PLMN ID, e.g. IMSI-based SUPI ranges, TAIs and GUAMIs, are specific to one PLMN ID and the NF may register in its profile multiple occurrences of such attributes for different PLMN IDs (e.g. the UDM may register in its profile SUPI ranges for different PLMN IDs).

Note 

Other NFs are in a different PLMN if they belong to none of the PLMN ID(s) configured for the PLMN of the NRF.

Note 

This is for the use case where an NF (e.g. AMF) supports multiple PLMNs and the slices supported in each PLMN are different. See clause 9.2.6.2 of 3GPP TS 38.413 [29].

Note 

If notification endpoints are present both in the profile of the NF instance (NFProfile) and in some of its NF Services (NFService) for a same notification type, the notification endpoint(s) of the NF Services must be used for this notification type.

Note 

The absence of the pcscfInfoList attribute in a P-CSCF profile indicates that the P-CSCF can be selected for any DNN and Access Type.

Note 

The absence of both the smfInfo and smfInfoList attributes in an SMF profile indicates that the SMF can be selected for any S-NSSAI, DNN, TAI and access type.

Note 

The servingScope attribute may indicate geographical areas, It may be used e.g. to discover and select NFs in centralized Data Centers that are expected to serve users located in specific region(s) or province(s). It may also be used to reduce the large configuration of TAIs in the NF instances.

Table 3. SMFInfo

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.

Note 

An SMF profile may contain multiple SmfInfo entries, with each entry containing a different list of TAIs and a different priority, to differentiate the priority to select the SMF based on the user location. The priority in SmfInfo has the least precedence, i.e. it applies between SMFs or SMF Services with the same priority.

Configuring TAI Selection from AMF

Configuring TAI Group List

Use the following configuration to configure TAI Group List.

configure 
nssai name nssai_name 
    sst sst ssd ssd 
    dnn dnn  
    tai-group-list tai_group_list  
    end 

NOTES:

  • tai-group-list tai_group_list : Configures TAI group list.

Verifying TAI Group List

Use the following show command to verify TAI Group List:

show running-config nssai 
nssai name slice1
sst 02
sdt Abf123
dnn [ dnn1 intershat intershat1 intershat2 ]
tai-group-list [ tai-group-1 tai-group-2 tai-group-3 ]
exit
nssai name slice2
sst 02
sdt abc456
dnn [ dnn1 intershat ]
tai-group-list [ tai-group-4 tai-group-5 tai-group-6 ]
exit

Configuring Priority in SMF Info

Use the following configuration to configure Priority SMF Info.

configure 
profile tai-group tai_group_name 
    mcc mcc mnc mnc 
    tac list list_name  
    tac range tac_range  
    Priority priority  
    end 

NOTES:

  • priority priority : Configures priority SMF information.

Verifying Priority in SMF Info

Use the following show command to verify Priority in SMF info:

show running-config profile tai-group 
profile tai-group t1
mcc 123 mnc 456
priority 1
tac list [ 1234 789123 ]
tac range start 1234 end 1980
exit
exit
exit
profile tai-group t2
priority 1
mcc 456 mnc 123
tac list [ 0000 123456 ]
tac range start 3456 end 9000
exit
exit
exit