本测试用例验证的核心场景是:当UE的PDU会话释放后,SMF和内置BSF能否正确清除该会话的绑定信息。
会话绑定删除的触发条件
会话绑定信息的删除通常由以下事件触发:
-
UE发起的PDU会话释放:UE主动请求释放会话(Deregistration或PDU Session Release);
-
网络侧发起的PDU会话释放:AMF或SMF因策略/资源原因发起会话释放;
-
PCF发起的策略关联终止:PCF检测到策略关联需要终止,触发绑定信息删除;
-
签约数据变更:UDM通知PCF用户签约数据发生变化,PCF可能需要删除旧绑定并创建新绑定(下一篇详细讨论)。
详细消息流程图
sequenceDiagram
participant UE_A as UE A
participant SMF as SMF/BSF
participant PCF as PCF
Note over UE_A, PCF: 前置: UE A已建立PDU会话, BSF中存在绑定信息
Note over UE_A, PCF: 绑定信息: SUPI A + IPv6 A1 + DNN1 <-> PCF1
Note over UE_A, PCF: UE A发起PDU会话释放
UE_A->>SMF: PDU Session Release Request
Note right of UE_A: NAS消息<br/>携带pduSessionId
SMF->>PCF: DELETE /npcf-smpolicycontrol/v1/policies/{smPolicyId}
Note right of SMF: Npcf_SMPolicyControl_Delete<br/>携带: SUPI, smPolicyId, pduSessionId
PCF-->>SMF: 204 No Content
Note left of PCF: PCF删除策略关联<br/>释放策略资源
Note over SMF: SMF删除UE上下文中的PDU会话信息<br/>BSF删除对应的绑定信息
SMF-->>UE_A: PDU Session Release Accept
Note right of UE_A: 会话释放完成
Note over SMF: BSF查询结果: BINDING_INFORMATION_NOT_FOUND
flowchart LR
subgraph 会话绑定删除流程
A["UE发起PDU会话释放"] --> B["SMF向PCF发送SMPolicyControl_Delete"]
B --> C["PCF返回204 No Content"]
C --> D["SMF删除PDU会话上下文"]
D --> E["BSF删除绑定信息"]
E --> F["BSF查询返回BINDING_INFORMATION_NOT_FOUND"]
end
style A fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style F fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
测试目的
当UE的PDU会话释放流程成功后,验证SMF支持在UE的PDU会话上下文中删除该UE PDU会话相关信息和对应SMF所选的PCF ID或地址。验证内置BSF支持对SMF中UE的PDU会话上下文保存的该UE PDU会话相关信息、对应SMF所选的PCF ID或地址、pcfInfo进行访问,当上述信息不存在时认为会话绑定信息删除。
测试前置条件
-
网络中SMF(内置BSF)、PCF网元系统及操作维护台运行正常。
-
UE A和UE B已经完成附着(注册),已建立PDU会话。
-
网元SMF(内置BSF)中有UE A和UE B的用户上下文。
-
UE A的用户上下文包含有UE PDU会话相关信息(UE IPv6 A1、DNN1、S-NSSAI、SUPI A)和对应SMF所选的PCF1 ID或地址,以及(UE IPv6 A2、DNN2、S-NSSAI、SUPI A)和对应SMF所选的PCF2 ID或地址。
-
UE B的用户上下文包含有UE PDU会话相关信息(UE IPv6 B1、DNN1、S-NSSAI、SUPI B)和对应SMF所选的PCF2 ID或地址。
-
服务化接口的信令监控与分析工具准备就绪。
测试步骤
-
UE A发起PDU会话释放请求。SMF向PCF发送Npcf_SMPolicyControl_Delete消息请求释放PDU会话,消息中包含SUPI、smPolicyId、PDU Session ID等信息。
-
PCF处理会话释放请求后返回响应。
-
在SMF和内置BSF上通过维护管理接口进行查询,验证UE A的PDU会话上下文和会话绑定信息是否已被清除。
-
UE B发起PDU会话释放请求。SMF向PCF发送Npcf_SMPolicyControl_Delete消息请求释放PDU会话。
-
PCF处理会话释放请求后返回响应。
-
在SMF和内置BSF上通过维护管理接口进行查询,验证UE B的PDU会话上下文和会话绑定信息是否已被清除。
测试结果验证(预期)
-
PCF返回UE A的会话释放响应后,在SMF和内置BSF上通过维护管理接口进行查询,查询不到UE A的PDU会话上下文和会话绑定信息。
-
PCF返回UE B的会话释放响应后,在SMF内置BSF上通过维护管理接口进行查询,查询不到UE B的PDU会话上下文和会话绑定信息。
-
BSF查询结果返回BINDING_INFORMATION_NOT_FOUND错误,确认绑定信息已成功删除。
2 信令深度解析
本测试的核心信令交互发生在SMF与PCF之间,通过Npcf_SMPolicyControl_Delete服务完成策略关联的终止,同时SMF内置BSF自动清除对应的会话绑定信息。
(注:为保护网络安全,以下log中的SUPI/IMSI标识、网元IP及实例ID等敏感信息已做严格脱敏处理)
2.1 UE A发起PDU会话释放
UE A通过NAS信令发起PDU Session Release Request,SMF收到请求后,首先向PCF发送策略关联删除请求,告知PCF该PDU会话即将释放。
PDU会话释放的NGAP信令流程:
# UE A发起PDU会话释放
# NGAP Uplink NAS Transport: 携带PDU Session Release Request
MS-group 1 SubSystem_1-ApInstance_1:
Sending NGAP Uplink N1 transport with PDU Session Release Request
GnodebId: 6:180003
AmfId: 4:10014059247
# AMF将PDU Session Release Command发送给RAN
NgapMsg: ngap_pduSessionResourceReleaseCommand
AmfId: 10014059247
GnbId: 180003
pduSessionToBeReleaseItem: 5
# pduSessionId=5, 标识要释放的PDU会话
# RAN响应PDU Session Resource Release Response
MS-group 1 SubSystem_1-ApInstance_1:
Recv NGAP PDU Session Resource Release Command
Send NGAP PDU Session Resource Release Response
Recv NAS PDU Session Release Command: 5
关键信令解析:
NGAP PDU Session Resource Release Command:
AMF UE NGAP ID: 10014059247
RAN UE NGAP ID: 180003
PDU Session Resource to Release List:
PDU Session ID: 5
# 标识要释放的PDU会话编号
NAS-PDU:
PDU Session Release Command
# NAS层会话释放命令,携带释放原因值
pduSessionId |
PDU会话ID |
取值5,标识要释放的会话 |
ngap_pduSessionResourceReleaseCommand |
NGAP释放命令 |
AMF指示RAN释放PDU会话资源 |
PDU Session Release Command |
NAS释放命令 |
网络通知UE会话即将释放 |
2.2 BSF绑定信息删除验证(UE A)
PDU会话释放完成后,我们在BSF上通过维护管理接口查询UE A的绑定信息,验证绑定信息已被成功清除。
释放前:BSF中存在UE A的绑定信息
[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 10.XX.XX.XX
pcf-binding-information:
snssai-sst: 9
snssai-sd: 000001
ueIp: 2a01:172:2401:0:e07:8460:a62b:18c
dnn: Internet9
supi: 460XX00000XXXX
gpsi: 86138000XXXXX
pcfId: 2244c290-3621-4d72-b718-e0194603ab11
pcfDiameterHost: rxDiam-Host.com
pcfDiameterRealm: rxDiam-Realm.com
pcfIpEndPoints: 10.XX.XX.XX:9091
释放后:BSF中查询不到绑定信息
[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 10.XX.XX.XX
pcf-binding-information:
Error: BINDING_INFORMATION_NOT_FOUND
关键发现:
-
PDU会话释放前,BSF能够通过UE的IP地址查询到完整的绑定信息;
-
PDU会话释放后,BSF查询返回BINDING_INFORMATION_NOT_FOUND错误,确认绑定信息已被成功删除;
-
这一错误码与3GPP TS 29.551中定义的PCBBINDING_NOT_FOUND错误响应一致。
2.3 UE B发起PDU会话释放
同样地,UE B也发起PDU会话释放请求,验证BSF对另一用户的绑定信息也能正确删除。
UE B的PDU会话释放信令:
# UE B发起PDU会话释放
MS-group 1 SubSystem_1-ApInstance_1:
Sending NGAP Uplink N1 transport with PDU Session Release Request
GnodebId: 6:180003
AmfId: 4:10014059247
protocol_proxy:
UE5G MsId[90002] is found to handle ngap message
NgapMsg: ngap_pduSessionResourceReleaseCommand
AmfId: 10014059247
GnbId: 180003
pduSessionToBeReleaseItem: 5
MS-group 1 SubSystem_1-ApInstance_1:
Recv NGAP PDU Session Resource Release Command
Send NGAP PDU Session Resource Release Response
Recv NAS PDU Session Release Command: 5
stop_payload, MsId:90002, SvcType:normal, PdpId 2
UE B的BSF绑定信息删除验证:
[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 10.XX.XX.XY
pcf-binding-information:
Error: BINDING_INFORMATION_NOT_FOUND
两个UE的删除结果对比:
| 验证项 |
UE A |
UE B |
| PDU会话释放请求 |
pduSessionId=5 |
pduSessionId=5 |
| SMPolicyControl_Delete |
已发送 |
已发送 |
| PCF响应 |
204 No Content |
204 No Content |
| BSF绑定信息查询 |
BINDING_INFORMATION_NOT_FOUND |
BINDING_INFORMATION_NOT_FOUND |
| SMF用户上下文 |
已清除PDU会话信息 |
已清除PDU会话信息 |
2.4 【硬核附加】Nbsf_Management DELETE操作深度解析
在独立BSF部署场景下,PCF通过Nbsf_Management服务的DELETE操作显式删除绑定信息。以下是与GET/POST操作的完整对比。
sequenceDiagram
participant SMF
participant PCF
participant BSF as 独立BSF
Note over SMF, BSF: PDU会话释放流程
SMF->>PCF: DELETE /npcf-smpolicycontrol/v1/policies/{smPolicyId}
Note right of SMF: Npcf_SMPolicyControl_Delete<br/>触发策略关联终止
PCF->>BSF: DELETE /nbsf-management/v1/pcbbindings/{bindingId}
Note right of PCF: Nbsf_Management Delete<br/>删除绑定信息
BSF-->>PCF: 204 No Content
Note left of BSF: BSF删除绑定记录<br/>释放存储资源
PCF-->>SMF: 204 No Content
Note left of PCF: 策略关联终止完成
DELETE请求示例:
DELETE /nbsf-management/v1/pcbbindings/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Host: 10.XX.XX.XX:8080
Authorization: Bearer XXXX
# BSF响应
HTTP/1.1 204 No Content
# 204表示删除成功,无响应体
Nbsf_Management服务操作全生命周期对比:
| 操作 |
HTTP方法 |
URI |
请求体 |
响应码 |
说明 |
| 创建绑定 |
POST |
/pcbbindings |
PcfBinding |
201 Created |
创建新绑定记录 |
| 查询绑定 |
GET |
/pcbbindings |
无 |
200 OK |
按条件查询绑定 |
| 更新绑定 |
PUT/PATCH |
/pcbbindings/{id} |
PcfBinding |
200 OK |
更新绑定内容 |
| 删除绑定 |
DELETE |
/pcbbindings/{id} |
无 |
204 No Content |
删除绑定记录 |
删除操作的异常场景处理:
| 异常场景 |
BSF行为 |
响应码 |
| bindingId不存在 |
返回错误 |
404 Not Found |
| bindingId已被删除 |
返回错误 |
404 Not Found |
| 请求方无权删除 |
返回错误 |
403 Forbidden |
| BSF内部错误 |
返回错误 |
500 Internal Server Error |
协议参考:根据3GPP TS 29.551第5.2.2.4节,Nbsf_Management的DELETE操作要求PCF提供正确的bindingId。BSF收到DELETE请求后,会从内部存储中查找并删除对应的绑定记录。如果绑定记录不存在,BSF应返回404 Not Found错误。在本测试中,由于BSF内置于SMF,绑定信息的删除是SMF在处理PDU会话释放流程时自动完成的,无需PCF显式调用DELETE接口。
2.5 绑定信息删除的时序考量
在实际部署中,绑定信息的删除时序是一个值得关注的工程细节。如果PCF在Npcf_SMPolicyControl_Delete响应之后、BSF绑定信息删除之前,AF恰好发起了一次绑定查询,会发生什么?
flowchart TD
A["SMF收到PDU Session Release Request"] --> B["SMF向PCF发送SMPolicyControl_Delete"]
B --> C["PCF返回204 No Content"]
C --> D["关键时间窗口"]
D --> E["SMF删除PDU会话上下文"]
E --> F["BSF删除绑定信息"]
D --> G["AF可能在此窗口查询绑定"]
G --> H["场景1: 绑定信息尚未删除"]
G --> I["场景2: 绑定信息已被删除"]
H --> J["返回旧PCF地址 - AF可能向已释放会话的PCF发请求"]
I --> K["返回BINDING_NOT_FOUND - AF需重试或放弃"]
style D fill:#fff9c4,stroke:#f57f17,stroke-width:2px
style J fill:#ffcdd2,stroke:#c62828
style K fill:#e8f5e9,stroke:#2e7d32
工程建议:
-
原子操作:SMF在处理会话释放时,应尽量将PCF策略删除和BSF绑定删除作为原子操作执行,减少中间状态的时间窗口;
-
优雅降级:AF在收到PCF的错误响应(如"策略关联不存在")时,应能够优雅地处理这种情况,例如重新查询BSF获取更新后的绑定信息;
-
异步通知:在独立BSF场景下,BSF可以通过事件通知机制(如订阅-通知模式)告知AF绑定信息已被删除,避免AF查询到过期数据。
协议参考:根据3GPP TS 29.513第4.2.4节,当PCF收到Npcf_SMPolicyControl_Delete请求后,PCF应终止与SMF的策略关联,并向BSF发送绑定删除请求。整个操作应在一次事务中完成,确保策略状态和绑定状态的一致性。
3 测试结论
| 验证项 |
结果 |
说明 |
| UE A PDU会话释放 |
OK |
SMF成功发起SMPolicyControl_Delete |
| UE A绑定信息删除 |
OK |
BSF返回BINDING_INFORMATION_NOT_FOUND |
| UE B PDU会话释放 |
OK |
SMF成功发起SMPolicyControl_Delete |
| UE B绑定信息删除 |
OK |
BSF返回BINDING_INFORMATION_NOT_FOUND |
| 多用户独立删除 |
OK |
UE A和UE B的绑定信息独立清除互不影响 |
| 信令流程正确 |
OK |
释放流程与3GPP规范一致 |
本测试用例全面验证了BSF在PDU会话释放场景下的绑定信息删除能力。测试结果表明,当UE发起PDU会话释放后,SMF能够正确地向PCF发送策略关联删除请求,SMF内置BSF能够自动清除对应的会话绑定信息。删除后BSF查询返回BINDING_INFORMATION_NOT_FOUND,确认绑定记录已被完全清除。所有信令交互与3GPP TS 29.551和TS 29.513规范一致。
绑定信息的及时删除是BSF资源管理的重要环节,确保BSF中不会积累无效的绑定记录,维持了策略控制体系的数据一致性。
关于作者:爱卫生,从事通信教学18年,出版过《5G核心网原理与实践》等4本专业书籍。学5G核心网、IMS,来51学通信就对了!知识星球:200+小时视频、3000+精华文章、1年答疑群。公众号/知识星球:51学通信,微信:gprshome201101