-
TS 29.531:NSSF服务接口(Nnssf_NSSelection)
-
TS 23.501:5G系统架构,定义了网络切片选择流程
-
TS 23.502:5G系统流程,定义了注册流程中的切片选择机制
-
TS 29.510:NRF服务接口(Nnrf_NFDiscovery)
-
TS 29.518:AMF服务接口(Namf_Communication)
关键SBI接口:
-
Nnssf_NSSelection_Get:网络切片选择查询
-
Nnrf_NFDiscovery:NF发现(查询目标AMF地址)
-
Namf_Communication_N1MessageNotify:AMF间NAS消息转发
二、流程图
flowchart TD
A[UE发送Registration Request携带GUTI和Requested NSSAI] --> B[RAN因链路故障将消息路由到Initial AMF]
B --> C[Initial AMF向UDM获取UE签约数据]
C --> D[Initial AMF比对Requested NSSAI与签约NSSAI]
D --> E{AMF能否支持切片交集}
E -- 是 --> F[AMF直接处理注册流程]
E -- 否 --> G[Initial AMF向NSSF查询切片选择]
G --> H[NSSF返回目标AMF Set和Allowed NSSAI]
H --> I[Initial AMF通过RAN发送Route NAS Request]
I --> J[RAN将Initial UE Message转发到Target AMF]
J --> K[Target AMF处理后续注册流程]
三、测试目的
验证当UE携带的Requested NSSAI与签约NSSAI存在交集,但Initial AMF不支持该交集切片时,通过NSSF获取目标AMF信息以及Allowed NSSAI的完整流程。具体验证点包括:
-
UE发送Registration Request消息中携带GUTI和Requested NSSAI;
-
RAN将注册请求路由到不支持请求切片的Initial AMF;
-
Initial AMF向UDM获取UE签约数据,确定签约NSSAI;
-
Initial AMF判断无法支持UE请求的切片,向NSSF查询切片选择;
-
NSSF返回目标AMF Set信息和Allowed NSSAI;
-
Initial AMF通过RAN重定向将UE引导到Target AMF;
-
Target AMF完成后续注册流程,NAS消息中携带Allowed NSSAI和Configured NSSAI。
四、前置条件
| 序号 |
前置条件 |
| 1 |
UE已开户,在UDM中签约了切片数据 |
| 2 |
UE签约切片包含Requested NSSAI对应的切片 |
| 3 |
存在至少两套AMF,支持的切片信息不同 |
| 4 |
Initial AMF不支持UE请求的切片,Target AMF支持 |
| 5 |
NSSF已配置切片与AMF Set的映射关系 |
| 6 |
RAN支持在NG Setup流程与AMF交互切片及GUAMI关系 |
| 7 |
所有相关网元已建立接口跟踪和用户跟踪 |
测试环境配置:
-
UE签约切片:S-NSSAI 1(SST=1, SD=010203)、S-NSSAI 2(SST=2, SD=040506)
-
UE默认切片:S-NSSAI 1(SST=1, SD=010203)
-
Initial AMF(AMF2):仅支持切片3,不支持切片1和2
-
Target AMF(AMF1):支持切片1和2
-
NSSF配置:
-
TA1 -> AMF Set 1 -> 切片 1, 2
-
TA1 -> AMF Set 2 -> 切片 3
-
GUAMI对应关系:AMF1 -> AMF Set 1 -> TA1
五、测试步骤
步骤1:UE开机发起GUTI Registration
通过构造NG链路故障方式,确保RAN将UE发送到不支持UE请求切片信息的AMF(Initial AMF/AMF2)上。
UE发送的Registration Request消息:
NAS Message: Registration Request
5GS Registration Type: Initial Registration
Mobile Identity: GUTI
5G-GUTI: 460-XX-XXXX-X-XXXXXXXXXXX
Requested NSSAI:
S-NSSAI 1: SST=1, SD=010203
S-NSSAI 2: SST=2, SD=040506
RRC层消息:
RRC Setup Complete
dedicatedNAS-Message:
Registration Request (包含GUTI和Requested NSSAI)
说明:UE在RRC消息中也携带了Requested NSSAI,以便RAN能够根据切片信息进行初步路由。但由于链路故障等原因,RAN将消息路由到了AMF2。
步骤2:检查消息跟踪
在信令跟踪工具中检查以下消息流:
-
UE -> RAN:RRC Connection Setup Complete(携带Registration Request)
-
RAN -> Initial AMF(AMF2):Initial UE Message(携带NGAP + NAS)
-
Initial AMF -> UDM:Nudm_SDM_Get(获取签约数据)
-
Initial AMF -> NSSF:Nnssf_NSSelection_Get
-
NSSF -> Initial AMF:Nnssf_NSSelection_Get Response
-
Initial AMF -> RAN:Route NAS Request(RAN重定向)
-
RAN -> Target AMF(AMF1):Initial UE Message
步骤3:AMF上查看UE相关信息
在Target AMF(AMF1)上查看UE的注册信息,确认:
-
UE已成功注册到Target AMF
-
Allowed NSSAI已正确设置
-
Configured NSSAI已正确设置
六、预期结果
结果1:Registration Request携带GUTI和Requested NSSAI
UE发起Registration Request消息中需要携带GUTI和Requested NSSAI,并且RRC消息中也需要携带GUTI信息。
NAS Registration Request消息关键字段:
Protocol Discriminator: 5GS Mobility Management
Security Header Type: 0 (No Security)
Message Type: Registration Request (0x41)
5GS Registration Type: Initial Registration (0x01)
Mobile Identity:
Type: 5G-GUTI
MCC: 460, MNC: XX
AMF Region ID: XX
AMF Set ID: XX
AMF Pointer: X
5G-TMSI: XXXXXXXX
Requested NSSAI:
Length: XX
S-NSSAI 1: SST=1, SD=010203
S-NSSAI 2: SST=2, SD=040506
UE Network Capability: [UE支持的能力]
Frame 1:UE -> RAN -> Initial AMF,Registration Request,携带GUTI和Requested NSSAI
结果2:RAN将注册请求路由到Initial AMF
NG-RAN因链路故障,将Registration Request消息路由到不支持请求切片的AMF(Initial AMF/AMF2)上。
NGAP Initial UE Message:
NGAP PDU: Initiating Message
Procedure Code: id-InitialUEMessage (15)
Criticality: ignore
Value:
RAN UE NGAP ID: XXXX
NAS-PDU:
[Registration Request NAS Message]
UserLocationInformation:
TAI:
PLMN Identity: 460XX
TAC: 0001
ECGI:
PLMN Identity: 460XX
ECI: XXXXXXXXXXXX
RRC Establishment Cause: mo-Signalling
UE Context Request: true
Allowed NSSAI:
S-NSSAI: SST=3, SD=XXXXXX
Frame 2:RAN -> Initial AMF(AMF2),NGAP Initial UE Message
结果3:Initial AMF向UDM获取签约数据
Initial AMF需要向UDM获取UE的切片信息。Initial AMF向UDM获取签约数据,这个步骤也可以获取完整的签约数据。
Nudm_SDM_Get请求:
GET /nudm-sdm/v2/imsi-460XX00000XXXX/sm-data?plmn-id=%7B%22mcc%22:%22460%22,%22mnc%22:%22XX%22%7D HTTP/1.1
Host: 10.XX.XX.XX
Accept: application/json
Nudm_SDM_Get响应(签约切片数据):
{
"nssai": {
"subscribedSnssai": [
{"snssai": {"sst": 1, "sd": "010203"}, "defaultIndication": true},
{"snssai": {"sst": 2, "sd": "040506"}, "defaultIndication": true},
{"snssai": {"sst": 3, "sd": "070809"}, "defaultIndication": false}
]
}
}
Frame 3:Initial AMF -> UDM,Nudm_SDM_Get,获取UE签约切片数据
Frame 4:UDM -> Initial AMF,Nudm_SDM_Get Response,返回签约NSSAI
结果4:Initial AMF判断不能为UE提供切片服务
Initial AMF根据UE的签约数据以及UE的Requested NSSAI,以及本AMF支持的切片信息,判断AMF不能为UE提供切片服务。
判断逻辑:
Requested NSSAI: {SST=1/SD=010203, SST=2/SD=040506}
Subscribed NSSAI: {SST=1/SD=010203, SST=2/SD=040506, SST=3/SD=070809}
交集: {SST=1/SD=010203, SST=2/SD=040506}
Initial AMF支持的切片: {SST=3/SD=070809}
交集与AMF支持切片的交集: 空
结论: Initial AMF无法服务该UE
结果5:Initial AMF向NSSF查询切片选择
Initial AMF向NSSF请求切片信息,并发送Nnssf_NSSelection_Get请求。
Nnssf_NSSelection_Get请求:
GET /nnssf-nsselection/v1/network-slice-information
?requested-nssai=%5B%7B%22sst%22:1,%22sd%22:%22010203%22%7D,%7B%22sst%22:2,%22sd%22:%22040506%22%7D%5D
&subscribed-nssai=%5B%7B%22sst%22:1,%22sd%22:%22010203%22%7D,%7B%22sst%22:2,%22sd%22:%22040506%22%7D,%7B%22sst%22:3,%22sd%22:%22070809%22%7D%5D
&target-plmn=%7B%22mcc%22:%22460%22,%22mnc%22:%22XX%22%7D
&tai=%7B%22plmnId%22:%7B%22mcc%22:%22460%22,%22mnc%22:%22XX%22%7D,%22tac%22:%220001%22%7D
&nf-type=AMF HTTP/1.1
Host: 10.XX.XX.XX:8443
Accept: application/json
请求参数说明:
| 参数 |
说明 |
值 |
| requested-nssai |
UE请求的NSSAI |
[{sst:1,sd:010203},{sst:2,sd:040506}] |
| subscribed-nssai |
UE签约的NSSAI |
[{sst:1,sd:010203},{sst:2,sd:040506},{sst:3,sd:070809}] |
| target-plmn |
目标PLMN |
{mcc:460,mnc:XX} |
| tai |
UE所在的TAI |
{plmnId:{mcc:460,mnc:XX},tac:0001} |
| nf-type |
请求方NF类型 |
AMF |
Frame 5:Initial AMF -> NSSF,Nnssf_NSSelection_Get,请求切片选择
结果6:NSSF返回目标AMF Set和Allowed NSSAI
NSSF根据配置的策略信息和请求参数,确定目标AMF Set和Allowed NSSAI。
Nnssf_NSSelection_Get响应:
{
"targetAmfSet": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"targetAmfServiceSet": "AMF_SET_1",
"allowedNssai": {
"allowedSnssai": [
{"snssai": {"sst": 1, "sd": "010203"}},
{"snssai": {"sst": 2, "sd": "040506"}}
]
},
"configuredNssai": {
"configuredSnssai": [
{"snssai": {"sst": 1, "sd": "010203"}},
{"snssai": {"sst": 2, "sd": "040506"}},
{"snssai": {"sst": 3, "sd": "070809"}}
]
},
"rejectedNssaiInPlmn": [],
"rejectedNssaiInTa": []
}
NSSF处理逻辑:
1. 比对Requested NSSAI与Subscribed NSSAI的交集:
交集 = {SST=1/SD=010203, SST=2/SD=040506}
2. 根据NSSF配置的TAI -> AMF Set映射:
TAI=0001 -> AMF Set 1 支持切片 {1, 2}
TAI=0001 -> AMF Set 2 支持切片 {3}
3. 确定目标AMF Set: AMF Set 1(支持交集切片 {1, 2})
4. 生成Allowed NSSAI: {SST=1/SD=010203, SST=2/SD=040506}
= Requested NSSAI与Subscribed NSSAI的交集
5. 生成Configured NSSAI: {SST=1, SST=2, SST=3}
= Subscribed NSSAI与NSSF配置的NSSAI的交集
Frame 6:NSSF -> Initial AMF,Nnssf_NSSelection_Get Response,返回目标AMF Set和Allowed NSSAI
结果7:Initial AMF通过RAN重定向到Target AMF
Initial AMF向NG-RAN发送Route NAS Request消息,消息中携带NGAP Message(包含完整Initial UE message)、AMF Set ID等信息。NG-RAN根据Route NAS Request消息中携带的目标AMF信息找到Target AMF,并发送Initial UE Message。
NGAP Route NAS Request消息:
NGAP PDU: Initiating Message
Procedure Code: id-RouteNASRequest ( plotting)
Criticality: reject
Value:
AMF Set ID: 1
AMF Pointer: X
RAN UE NGAP ID: XXXX
NAS-PDU:
[Registration Request NAS Message - 原始消息]
Allowed NSSAI:
S-NSSAI 1: SST=1, SD=010203
S-NSSAI 2: SST=2, SD=040506
Frame 7:Initial AMF -> RAN,NGAP Route NAS Request,请求RAN重定向
RAN转发到Target AMF:
NGAP PDU: Initiating Message
Procedure Code: id-InitialUEMessage (15)
Value:
RAN UE NGAP ID: YYYY
NAS-PDU:
[Registration Request NAS Message]
UserLocationInformation:
TAI: {PLMN: 460XX, TAC: 0001}
Allowed NSSAI:
S-NSSAI 1: SST=1, SD=010203
S-NSSAI 2: SST=2, SD=040506
Frame 8:RAN -> Target AMF(AMF1),NGAP Initial UE Message,转发UE注册请求
结果8:后续Target AMF的切片处理同初始注册场景
Target AMF(AMF1)收到转发的Registration Request后,执行正常的初始注册流程。
Target AMF发送的Registration Accept消息:
NAS Message: Registration Accept
5GS Registration Result: Registered
Allowed NSSAI:
S-NSSAI 1: SST=1, SD=010203
S-NSSAI 2: SST=2, SD=040506
Configured NSSAI:
S-NSSAI 1: SST=1, SD=010203
S-NSSAI 2: SST=2, SD=040506
S-NSSAI 3: SST=3, SD=070809
5G-GUTI:
MCC: 460, MNC: XX
AMF Region ID: XX
AMF Set ID: XX
AMF Pointer: X
5G-TMSI: XXXXXXXX
七、信令深度解析
7.1 Nnssf_NSSelection_Get接口概述
根据3GPP TS 29.531规范,Nnssf_NSSelection_Get服务操作用于AMF向NSSF查询网络切片选择信息。该操作使用HTTP GET方法:
GET /nnssf-nsselection/v1/network-slice-information
关键输入参数:
| 参数 |
必选 |
说明 |
| requested-nssai |
否 |
UE请求的NSSAI |
| subscribed-nssai |
否 |
UE签约的NSSAI(AMF从UDM获取) |
| target-plmn |
是 |
目标PLMN标识 |
| tai |
是 |
UE所在的跟踪区标识 |
| nf-type |
否 |
请求方NF类型 |
| slice-info-request-for-registration |
否 |
注册场景标识 |
关键输出参数:
| 参数 |
说明 |
| targetAmfSet |
目标AMF Set标识 |
| allowedNssai |
允许的NSSAI |
| configuredNssai |
配置的NSSAI(可选) |
| rejectedNssaiInPlmn |
PLMN内拒绝的NSSAI |
| rejectedNssaiInTa |
TA内拒绝的NSSAI |
| candidateAmfList |
候选AMF列表(可选) |
7.2 切片选择的决策流程
NSSF在进行切片选择时,执行以下决策流程:
步骤1:验证Requested NSSAI
Requested NSSAI: {SST=1/SD=010203, SST=2/SD=040506}
Subscribed NSSAI: {SST=1/SD=010203, SST=2/SD=040506, SST=3/SD=070809}
验证结果: Requested NSSAI全部在签约范围内
步骤2:确定Allowed NSSAI
Allowed NSSAI = Requested NSSAI ∩ Subscribed NSSAI
= {SST=1/SD=010203, SST=2/SD=040506}
步骤3:确定目标AMF Set
NSSF配置:
TAI=0001, 切片=1 -> AMF Set 1
TAI=0001, 切片=2 -> AMF Set 1
TAI=0001, 切片=3 -> AMF Set 2
Allowed NSSAI需要的切片: {1, 2}
匹配的AMF Set: AMF Set 1(支持切片1和2)
步骤4:生成Configured NSSAI
Configured NSSAI = Subscribed NSSAI ∩ Configured NSSAI(NSSF配置)
= {SST=1, SST=2, SST=3}
7.3 AMF间重定向机制
在本场景中,Initial AMF通过RAN重定向方式将UE引导到Target AMF:
方案一:通过RAN重定向(本场景使用)
-
Initial AMF -> RAN:NGAP Route NAS Request(携带目标AMF信息)
-
RAN -> Target AMF:NGAP Initial UE Message(转发NAS消息)
-
优点:RAN能够正确建立与Target AMF的NG连接
-
缺点:需要RAN支持Route NAS Request流程
方案二:AMF间直接转发
-
Initial AMF -> Target AMF:Namf_Communication_N1MessageNotify
-
优点:不依赖RAN的重定向能力
-
缺点:需要Initial AMF与Target AMF之间建立SBI连接
7.4 完整信令流程时序
时间轴 方向 消息
---------------------------------------------------------------
T0 UE -> RAN RRC Setup Complete + Registration Request
T1 RAN -> Initial AMF NGAP Initial UE Message
T2 Initial AMF -> UDM Nudm_SDM_Get (签约数据)
T3 UDM -> Initial AMF Nudm_SDM_Get Response (签约NSSAI)
T4 Initial AMF 判断无法支持UE请求切片
T5 Initial AMF -> NSSF Nnssf_NSSelection_Get
T6 NSSF -> Initial AMF Nnssf_NSSelection_Get Response (目标AMF Set)
T7 Initial AMF -> RAN NGAP Route NAS Request (RAN重定向)
T8 RAN -> Target AMF NGAP Initial UE Message (转发)
T9 Target AMF 处理注册流程
T10 Target AMF -> UE Registration Accept (Allowed NSSAI)
7.5 NRF查询目标AMF地址
Initial AMF在收到NSSF返回的Target AMF Set信息后,可能需要通过NRF查询具体的目标AMF地址:
Nnrf_NFDiscovery请求:
GET /nnrf-disc/v1/nf-instances
?target-nf-type=AMF
&requester-nf-type=AMF
&amf-set-id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
&target-plmn-list=%5B%7B%22mcc%22:%22460%22,%22mnc%22:%22XX%22%7D%5D
Host: 10.XX.XX.XX:8443
Accept: application/json
Nnrf_NFDiscovery响应:
{
"nfInstances": [
{
"nfInstanceId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"nfType": "AMF",
"nfStatus": "REGISTERED",
"sbi": {
"addresses": [
{"ipv4Address": "10.XX.XX.XX", "port": 8443}
]
}
}
]
}
八、常见问题与排查
8.1 NSSF返回空的目标AMF Set
现象:AMF向NSSF查询切片选择后,NSSF返回的targetAmfSet为空。
可能原因:
排查步骤:
-
检查NSSF的切片配置是否包含UE请求的S-NSSAI
-
确认TAI值在NSSF配置中有对应的AMF Set映射
-
检查S-NSSAI的SST和SD值格式
8.2 RAN重定向失败
现象:Initial AMF发送Route NAS Request后,RAN未能将消息转发到Target AMF。
可能原因:
排查步骤:
-
检查RAN与Target AMF之间的NG连接状态
-
验证NRF返回的Target AMF地址是否正确
-
检查RAN是否支持NGAP Route NAS Request
九、测试结论
本测试用例验证了AMF收到请求NSSAI与签约NSSAI存在交集但当前AMF不支持时,通过NSSF进行切片选择的完整流程。测试结果表明:
-
UE发送Registration Request消息中携带了GUTI和Requested NSSAI,RRC消息中也携带了GUTI信息;
-
由于NG链路故障,RAN将注册请求路由到不支持UE请求切片的Initial AMF;
-
Initial AMF向UDM获取UE的签约数据,确定签约NSSAI;
-
Initial AMF判断无法为UE提供切片服务后,向NSSF发送Nnssf_NSSelection_Get请求;
-
NSSF返回目标AMF Set信息和Allowed NSSAI(Requested NSSAI与Subscribed NSSAI的交集);
-
Initial AMF通过NGAP Route NAS Request消息经RAN重定向到Target AMF;
-
Target AMF完成注册流程,在Registration Accept中携带了Allowed NSSAI和Configured NSSAI。
该测试用例验证了3GPP TS 29.531和TS 23.502中定义的切片选择与AMF重定向机制的正确实现。
数据脱敏声明:本文中所有SUPI、IP地址、NF Instance ID等敏感信息均已做脱敏处理(如SUPI显示为"imsi-460XX00000XXXX",IP显示为"10.XX.XX.XX",Instance ID显示为"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"),不影响技术原理的理解与分析。
关于作者:爱卫生,从事通信教学18年,出版过《5G核心网原理与实践》等4本专业书籍。学5G核心网、IMS,来51学通信就对了!知识星球:200+小时视频、3000+精华文章、1年答疑群。公众号/知识星球:51学通信,微信:gprshome201101