5GC实践篇之切片篇第14篇:PCF签约信息变更触发切片重选(URSP策略更新通知)
作者:爱卫生
1 测试背景与用例简介
在前面的第4篇文章中,我们讨论了UE与PCF交互获取URSP策略信息的基本流程。那是一个"初始获取"的场景——UE在注册过程中从PCF获取URSP/NSSP策略,保存到本地,后续根据策略选择切片发起PDU会话。
但URSP策略并不是一成不变的。在实际运营中,运营商经常需要动态调整用户的切片策略,例如:
- 用户订购了新的增值业务(如URLLC切片服务);
《5G核心网原理与实践》实践篇 · 网络切片 网元功能
作者:爱卫生
在前面的第4篇文章中,我们讨论了UE与PCF交互获取URSP策略信息的基本流程。那是一个"初始获取"的场景——UE在注册过程中从PCF获取URSP/NSSP策略,保存到本地,后续根据策略选择切片发起PDU会话。
但URSP策略并不是一成不变的。在实际运营中,运营商经常需要动态调整用户的切片策略,例如:
运营商调整了套餐策略(如将某个App从eMBB切片迁移到专用切片);
企业用户的IT策略变更(如将视频会议流量从公网切片迁移到企业专网切片)。
本篇聚焦的场景是:用户在PCF上签约了新的业务,切片信息发生变更。PCF通过Namf_N1N2MessageTransfer接口向AMF下发更新后的URSP策略。如果UE当前处于CM-IDLE状态,AMF需要先触发寻呼使UE进入CM-CONNECTED状态,然后将URSP策略通过DL NAS Transport消息下发给UE。UE收到新的URSP策略后更新本地配置,后续应用流量将根据新策略选择切片。
同时,本场景还涉及PCF向AMF订阅策略变更通知的流程(N1N2MessageSubscribe),这是PCF能够主动推送策略变更的前提条件。
运营商/用户修改签约 -> PCF检测到策略变更 -> PCF检查是否已订阅AMF通知 ->
PCF通过Namf_N1N2MessageTransfer发送新URSP -> AMF检查UE状态 ->
CM-IDLE: 触发寻呼 -> UE Service Request -> 下发URSP ->
CM-CONNECTED: 直接下发URSP ->
UE更新本地策略 -> 后续PDU会话使用新策略
本篇涉及PCF策略推送和URSP更新下发,相关协议如下:
TS 23.501 第5.15节:定义了URSP策略的结构和NSSP组件。
TS 23.501 第6.1.2.4节:PCF相关描述,PCF如何管理UE的策略。
TS 23.502 第4.2.4节:UE Configuration Update流程,AMF向UE下发策略更新的过程。
TS 23.502 第4.2.3节:Service Request流程,CM-IDLE状态下触发UE进入CM-CONNECTED。
TS 29.507:Namf_Communication和Npcf_AMPolicy服务接口。
Npcf_AMPolicyAssociation:PCF与AMF之间的策略关联。
Namf_N1N2MessageTransfer:PCF向AMF发送N1消息(URSP策略)。
N1N2MessageSubscribe:PCF订阅AMF的N1消息通知。
TS 24.526:URSP规范,定义了URSP策略的编码和传输。
TS 24.501 第5.4.4节和第9.11节:NAS消息中URSP的传输,特别是DL NAS Transport消息的Payload container type=5表示策略更新。
PCF向UE推送URSP策略更新的架构如下:
PCF ---> AMF ---> RAN ---> UE
| |
| +-- UDM(签约变更通知)
|
+-- UDR(策略数据存储)
| 网元 | 角色 |
|---|---|
| PCF | 策略决策点,检测签约变更并生成新URSP |
| UDR | 存储策略数据和签约数据 |
| UDM | 管理用户签约,通知PCF签约变更 |
| AMF | 策略传输中继,将PCF的URSP通过NAS下发给UE |
| UE | 策略执行点,根据URSP选择切片 |
PCF通过Namf_N1N2MessageTransfer接口向AMF发送URSP策略更新。该接口的关键参数:
| 请求参数 | 说明 |
|---|---|
| n1MessageContainer | N1消息容器(包含URSP策略) |
| n1MessageClass | 消息类型(SM或5GMM) |
| n2InfoContainer | N2信息容器(本场景不涉及) |
| policyAssociationId | PCF与AMF的策略关联ID |
AMF的响应取决于UE当前的连接状态:
| UE状态 | AMF响应 | 后续行为 |
|---|---|---|
| CM-CONNECTED | 200 OK | 直接下发URSP |
| CM-IDLE | 202 Accepted | 触发寻呼,UE进入CONNECTED后下发 |
URSP策略通过DL NAS Transport消息下发给UE。Payload Container Type字段标识了消息内容的类型:
| Type值 | 含义 | 本场景是否涉及 |
|---|---|---|
| 1 | N1 SM Information | 否 |
| 2 | SMS | 否 |
| 3 | LPP Message | 否 |
| 4 | SOR Container | 否 |
| 6 | UE Parameter Update | 否 |
|---|---|---|
| 7 | Multiple Payload | 否 |
本场景中,Payload Container Type=5,表示Payload Container中携带的是UE Policy信息(即URSP策略)。
PCF在向AMF下发策略之前,需要先订阅AMF的N1消息通知。订阅流程:
PCF在创建AM Policy Association时,通过Npcf_AMPolicyAssociation_Create向AMF注册;
PCF可以通过Namf_Communication_N1N2MessageSubscribe订阅UE的N1消息;
当UE有上行N1消息(如URSP更新确认)时,AMF通过Namf_Communication_N1MessageNotify通知PCF。
sequenceDiagram
participant PCF as PCF
participant AMF
participant RAN as NG-RAN
participant UE as UE终端
Note over PCF,UE: 前提:UE已注册<br/>PCF已创建AM Policy Association
Note over PCF: 用户签约新的业务<br/>PCF检测到策略变更<br/>生成新的URSP策略
PCF->>AMF: Namf_N1N2MessageTransfer<br/>携带新URSP策略
Note over PCF,AMF: N1 Message Container: UE Policy<br/>Payload: Updated URSP Rules
alt UE为CM-IDLE状态
Note over AMF: AMF检测到UE为CM-IDLE<br/>返回202 Accepted
AMF->>RAN: NGAP Paging<br/>寻呼UE
RAN->>UE: RRC Paging
UE->>RAN: RRC Connection Request
RAN->>AMF: NGAP Initial UE Message<br/>NAS Service Request
Note over UE,AMF: UE进入CM-CONNECTED
end
AMF->>RAN: NGAP Downlink NAS Transport<br/>DL NAS Transport(Payload type=5)
Note over AMF,RAN: Payload Container Type=5<br/>携带新URSP策略
RAN->>UE: NAS DL NAS Transport<br/>Updated URSP
Note over UE: UE处理新URSP策略<br/>更新本地URSP配置
UE->>RAN: NAS UL NAS Transport<br/>UE Policy Update Ack
RAN->>AMF: NGAP Uplink NAS Transport<br/>UL NAS Transport
AMF->>PCF: Namf_Communication_N1MessageNotify<br/>UE Policy Update Ack
Note over AMF,PCF: 通知PCF:UE已确认策略更新
PCF-->>AMF: 200 OK
前提条件:PCF已创建Policy Association
在UE初始注册阶段,AMF向PCF发起了AM Policy Association创建请求。PCF保存了该UE的策略上下文,并可能通过N1N2MessageSubscribe订阅了该UE的N1消息通知。
步骤1:PCF检测到策略变更
用户通过运营商自助服务平台(或运营商后台)订购了新的业务(例如URLLC切片)。这个变更触发以下链路:
运营支撑系统(OSS/BSS)更新UDR中的策略数据;
UDR通知PCF策略数据变更;
PCF生成新的URSP策略(包含新的切片路由规则)。
新的URSP策略示例:
旧URSP策略:
Rule 1: App=videoconf -> S-NSSAI=SST=1/SD=010203 (eMBB), DNN=internet
Rule 2: App=iotgw -> S-NSSAI=SST=3 (MIoT), DNN=iot
Rule 3: Match-All -> S-NSSAI=SST=1 (eMBB default), DNN=internet
新URSP策略(变更后):
Rule 1: App=videoconf -> S-NSSAI=SST=2 (URLLC), DNN=internet [变更!]
Rule 2: App=iotgw -> S-NSSAI=SST=3 (MIoT), DNN=iot
Rule 3: App=gamecloud -> S-NSSAI=SST=1/SD=010203, DNN=game [新增!]
Rule 4: Match-All -> S-NSSAI=SST=1 (eMBB default), DNN=internet
步骤2:PCF通过Namf_N1N2MessageTransfer下发新URSP
PCF将新的URSP策略封装为N1消息(UE Policy Container),通过Namf_N1N2MessageTransfer发送给AMF:
Namf_N1N2MessageTransfer Request:
n1MessageContainer:
n1MessageClass: "5GMM"
n1MessageContent:
contentType: "application/nas"
content: <UE Policy Container with Updated URSP>
policyAssociationId: "pa-4608800000XXXXXX-001"
步骤3:AMF检查UE状态
AMF收到N1N2MessageTransfer请求后,检查UE当前的连接管理状态:
CM-CONNECTED:AMF可以直接通过N2接口将NAS消息下发给UE;
CM-IDLE:AMF需要先触发寻呼,使UE进入CM-CONNECTED状态。
本场景假设UE处于CM-IDLE状态,AMF返回202 Accepted(而非200 OK),表示消息已接受但需要等待UE可达后再下发。
步骤4:AMF触发寻呼(CM-IDLE场景)
AMF向RAN发送NGAP Paging消息,RAN在UE注册区域内广播寻呼消息。UE收到寻呼后:
发起RRC连接建立;
发送NAS Service Request消息;
AMF将UE状态更新为CM-CONNECTED。
步骤5:AMF下发URSP策略
UE进入CM-CONNECTED状态后,AMF通过NGAP Downlink NAS Transport消息将URSP策略下发给UE:
DL NAS Transport:
Payload Container Type: 5 (UE Policy Container)
Payload Container:
UE Policy DL:
URSP Rule List:
[Updated URSP Rules]
步骤6:UE处理并确认URSP更新
UE收到DL NAS Transport消息后:
解析Payload Container Type=5,识别为UE Policy信息;
解析URSP规则列表,更新本地保存的URSP策略;
评估新策略与当前PDU会话的关系:
如果新策略不影响已建立的PDU会话,不做额外处理;
如果新策略导致某个App的切片选择变化,UE在下次发起该App流量时使用新策略;
通过UL NAS Transport发送UE Policy Update Ack确认。
步骤7:AMF通知PCF
AMF收到UE的UL NAS Transport(UE Policy Update Ack)后,通过Namf_Communication_N1MessageNotify通知PCF:
Namf_Communication_N1MessageNotify:
n1MessageContainer:
n1MessageClass: "5GMM"
n1MessageContent:
contentType: "application/nas"
content: <UE Policy Update Ack>
PCF收到确认后,标记该UE的策略更新已完成。
flowchart TD
A[用户修改签约/运营商调整策略] --> B[PCF检测到策略变更]
B --> C[PCF生成新URSP策略]
C --> D[PCF通过N1N2MessageTransfer发送给AMF]
D --> E{AMF检查UE状态}
E --> F[CM-CONNECTED:返回200 OK]
E --> G[CM-IDLE:返回202 Accepted]
G --> H[AMF触发Paging]
H --> I[UE发起Service Request]
I --> J[UE进入CM-CONNECTED]
F --> K[AMF下发DL NAS Transport]
J --> K
K --> L[UE更新本地URSP策略]
L --> M[UE发送UL NAS Transport确认]
M --> N[AMF通知PCF策略更新完成]
PCF通过N1N2MessageTransfer发送的URSP策略(示例):
{
"uePolicy": {
"urspRules": [
{
"urspRulePrecedence": 1,
"trafficDescriptor": {
"appId": "com.operator.videoconference"
},
"routeSelectionDescriptor": [
{
"routeSelectionPrecedence": 1,
"routeDescriptorType": 2,
"snssai": {"sst": 2},
"dnn": "internet"
}
]
},
{
"urspRulePrecedence": 2,
"trafficDescriptor": {
"appId": "com.operator.iotgateway"
},
"routeSelectionDescriptor": [
{
"routeSelectionPrecedence": 1,
"routeDescriptorType": 2,
"snssai": {"sst": 3},
"dnn": "iot"
}
]
},
{
"urspRulePrecedence": 3,
"trafficDescriptor": {
"appId": "com.operator.gamecloud"
},
"routeSelectionDescriptor": [
{
"routeSelectionPrecedence": 1,
"routeDescriptorType": 2,
"snssai": {"sst": 1, "sd": "010203"},
"dnn": "game"
}
]
},
{
"urspRulePrecedence": 255,
"trafficDescriptor": {
"matchAll": true
},
"routeSelectionDescriptor": [
{
"routeSelectionPrecedence": 1,
"routeDescriptorType": 2,
"snssai": {"sst": 1},
"dnn": "internet"
}
]
}
]
}
}
| 参数名称 | 值 | 说明 |
|---|---|---|
| Payload Container Type | 5 | UE Policy Container |
| Payload Container | Updated URSP Rules | 新的URSP策略 |
| Additional Information | N/A | 无额外信息 |
| 参数名称 | 值 | 说明 |
|---|---|---|
| Payload Container Type | 5 | UE Policy Container |
| Payload Container | UE Policy Update Ack | 策略更新确认 |
AMF策略下发处理日志(脱敏):
# AMF UE Policy Distribution Log
Time: 2026-04-17 17:10:05.100
SUPI: imsi-4608800000XXXXXX
GPSI: 86138000XXXXXX
Received N1N2MessageTransfer from PCF:
Policy Association ID: pa-4608800000XXXXXX-001
N1 Message Type: UE Policy Container
URSP Rules: 4 rules (1 updated, 1 new)
UE Connection State Check:
CM State: CM-IDLE
Action: Return 202 Accepted, trigger Paging
Paging Triggered:
TAI List: [46088-A001, 46088-A002]
Paging DRX: 32
Paging Priority: Normal
UE Service Request Received:
Time: 2026-04-17 17:10:07.500
UE State updated: CM-IDLE -> CM-CONNECTED
DL NAS Transport Sent:
Payload Container Type: 5 (UE Policy)
URSP Rules: 4 rules delivered
RAN UE NGAP ID: 0x0003
UL NAS Transport Received:
Time: 2026-04-17 17:10:08.200
Payload Container Type: 5
UE Policy Update Ack received
N1MessageNotify sent to PCF:
N1 Message: UE Policy Update Ack
Response from PCF: 200 OK
URSP Policy Distribution: COMPLETED
PCF策略推送日志(脱敏):
# PCF Policy Update Log
Time: 2026-04-17 17:10:04.800
SUPI: imsi-4608800000XXXXXX
Policy Association: pa-4608800000XXXXXX-001
Trigger: Subscription Data Change
Source: UDR Policy Data Update
Change Type: URSP Rule Modified + URSP Rule Added
Affected Rules:
Rule 1: App=videoconf, S-NSSAI changed SST=1/SD=010203 -> SST=2
Rule 3: App=gamecloud, NEW, S-NSSAI=SST=1/SD=010203, DNN=game
N1N2MessageTransfer Sent:
Target AMF: amf-01-set01-instance01
AMF Response: 202 Accepted (UE is CM-IDLE)
Waiting for UE Policy Update Ack...
N1MessageNotify Received:
Time: 2026-04-17 17:10:08.300
UE Policy Update Ack: RECEIVED
URSP Update Status: COMPLETED
PCF在初始创建Policy Association时或后续,可以订阅AMF的N1消息通知:
Namf_Communication_N1N2MessageSubscribe Request:
uePolicyAssociationId: "pa-4608800000XXXXXX-001"
n1MessageClass: "5GMM"
n2InformationClass: N/A
subscriptionData:
callbackUri: "https://pcf.operator.com/n1n2notify/4608800000XXXXXX"
n1MessageCallback: true
AMF返回:
Response: 201 Created
subscriptionId: "sub-amf-001-4608800000XXXXXX"
此后,当UE向AMF发送任何N1消息时,AMF都会通过回调URI通知PCF。
本场景的测试预置条件包括:
UE已成功注册到网络;
PCF已创建AM Policy Association;
PCF已通过N1N2MessageSubscribe订阅了UE的N1消息通知;
AMF中保存了UE当前的URSP策略版本;
运营商后台已准备好触发策略变更操作。
验证点1:PCF正确检测策略变更
在PCF日志中确认:
PCF检测到UDR中的策略数据变更;
PCF正确生成了新的URSP策略;
新策略包含正确的切片路由规则。
验证点2:N1N2MessageTransfer正确发送
在PCF-AMF接口跟踪中确认:
PCF发送了N1N2MessageTransfer请求;
请求中包含正确的N1消息(UE Policy Container);
AMF正确响应(200 OK或202 Accepted)。
验证点3:AMF正确处理CM-IDLE场景
在AMF日志中确认:
AMF检测到UE为CM-IDLE状态;
AMF返回202 Accepted(而非200 OK);
AMF触发了Paging流程;
UE通过Service Request进入CM-CONNECTED后,AMF下发了URSP策略。
验证点4:UE正确接收并应用新URSP
在NAS消息跟踪中确认:
DL NAS Transport消息中Payload Container Type=5;
UE收到了更新的URSP策略;
UE发送了UL NAS Transport确认(UE Policy Update Ack)。
验证点5:PCF收到UE确认
在PCF日志中确认:
PCF收到了AMF的N1MessageNotify;
UE Policy Update Ack被正确处理;
策略更新流程完成。
通过分析测试数据,可以得出以下关键结论:
202与200的区别是关键诊断信息:AMF返回202 Accepted说明UE当前CM-IDLE,策略需要等待UE可达后下发;返回200 OK说明UE当前CM-CONNECTED,策略直接下发成功。在排障时,如果看到202但UE长时间未收到策略更新,可能是寻呼失败或UE不可达。
Payload Container Type=5是策略更新的标志:在NAS消息跟踪中,看到DL NAS Transport消息的Payload Container Type=5,就意味着这是一条策略下发消息,而非普通的SM信令。
PCF订阅是推送式更新的前提:PCF必须先通过N1N2MessageSubscribe订阅AMF的通知,才能在UE发送UL NAS Transport时收到确认。如果没有订阅,PCF无法知道UE是否成功接收了策略更新。
URSP更新不影响已建立的PDU会话:新URSP策略只影响UE后续发起新应用流量时的切片选择。已建立的PDU会话不会因为URSP变更而自动释放或切换切片。
本篇详细分析了PCF签约信息变更触发切片重选的URSP策略更新通知流程。关键要点如下:
触发链路:用户/运营商修改签约 -> PCF检测变更 -> 生成新URSP -> 通过N1N2MessageTransfer发送给AMF。
CM-IDLE处理:AMF返回202 Accepted,触发Paging使UE进入CM-CONNECTED后再下发策略。
NAS传输机制:URSP策略通过DL NAS Transport(Payload Container Type=5)下发,UE通过UL NAS Transport确认。
PCF订阅机制:PCF通过N1N2MessageSubscribe订阅AMF的N1消息通知,确保能收到UE的策略更新确认。
思考1:URSP更新失败的回退机制
如果UE未能成功接收URSP更新(例如UE关机、信号中断等),AMF无法下发策略。PCF可以设置重试定时器,在定时器超时后重新尝试推送。但如果UE长时间不可达,策略更新将被延迟。当UE重新可达时,AMF或PCF可以再次触发策略下发。
思考2:URSP更新与PDU会话重建的关系
本篇讨论的场景中,URSP更新不影响已建立的PDU会话。但如果运营商需要立即将某个App的流量从旧切片迁移到新切片,可能需要触发PDU会话释放和重建。TS 23.502定义了PDU Session Release流程,AMF/SMF可以主动释放PDU会话,强制UE使用新策略重建。
思考3:第15篇预告
第15篇将继续讨论PCF签约信息变更触发切片重选的场景,但将重点对比CM-IDLE和CM-CONNECTED两种状态下的处理差异。本篇以CM-IDLE为主线(因为CM-IDLE场景更复杂),第15篇将深入对比两种状态下的信令差异、时序差异和运维要点。