5G核心网学习平台
BSF 实践篇 #15

5GC实践篇之BSF篇第9篇:会话信息删除

《5G核心网原理与实践》实践篇 · BSF 网元功能

5GC实践篇之BSF篇第9篇:会话信息删除

作者:爱卫生


1 测试背景与用例简介

在第7篇中,我们详细剖析了BSF会话绑定信息的创建过程——当UE建立PDU会话时,SMF选择PCF并在BSF中创建"PDU会话信息与PCF实例"的映射记录。第8篇讨论了BSF如何通过服务授权机制保护这些绑定信息的安全访问。

本篇则聚焦于会话绑定的"终点"——会话绑定信息的删除(Session Binding Deletion)

在5G核心网中,PDU会话是有生命周期的。当用户主动释放会话(如关机、切换飞行模式)、网络侧发起释放(如策略变更、资源回收)或会话因异常而中断时,对应的会话绑定信息也应该被及时清理。否则,BSF中将积累大量过期的绑定记录,不仅浪费存储资源,还可能导致AF查询到已经无效的PCF地址,引发策略控制失败。

本测试用例验证的核心场景是:当UE的PDU会话释放后,SMF和内置BSF能否正确清除该会话的绑定信息

会话绑定删除的触发条件

会话绑定信息的删除通常由以下事件触发:

  1. UE发起的PDU会话释放:UE主动请求释放会话(Deregistration或PDU Session Release);

  2. 网络侧发起的PDU会话释放:AMF或SMF因策略/资源原因发起会话释放;

  3. PCF发起的策略关联终止:PCF检测到策略关联需要终止,触发绑定信息删除;

  4. 签约数据变更: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进行访问,当上述信息不存在时认为会话绑定信息删除。

测试前置条件

  1. 网络中SMF(内置BSF)、PCF网元系统及操作维护台运行正常。

  2. UE A和UE B已经完成附着(注册),已建立PDU会话。

  3. 网元SMF(内置BSF)中有UE A和UE B的用户上下文。

  4. 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或地址。

  5. UE B的用户上下文包含有UE PDU会话相关信息(UE IPv6 B1、DNN1、S-NSSAI、SUPI B)和对应SMF所选的PCF2 ID或地址。

  6. 服务化接口的信令监控与分析工具准备就绪。

测试步骤

  1. UE A发起PDU会话释放请求。SMF向PCF发送Npcf_SMPolicyControl_Delete消息请求释放PDU会话,消息中包含SUPI、smPolicyId、PDU Session ID等信息。

  2. PCF处理会话释放请求后返回响应。

  3. 在SMF和内置BSF上通过维护管理接口进行查询,验证UE A的PDU会话上下文和会话绑定信息是否已被清除。

  4. UE B发起PDU会话释放请求。SMF向PCF发送Npcf_SMPolicyControl_Delete消息请求释放PDU会话。

  5. PCF处理会话释放请求后返回响应。

  6. 在SMF和内置BSF上通过维护管理接口进行查询,验证UE B的PDU会话上下文和会话绑定信息是否已被清除。

测试结果验证(预期)

  1. PCF返回UE A的会话释放响应后,在SMF和内置BSF上通过维护管理接口进行查询,查询不到UE A的PDU会话上下文和会话绑定信息。

  2. PCF返回UE B的会话释放响应后,在SMF内置BSF上通过维护管理接口进行查询,查询不到UE B的PDU会话上下文和会话绑定信息。

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

工程建议:

  1. 原子操作:SMF在处理会话释放时,应尽量将PCF策略删除和BSF绑定删除作为原子操作执行,减少中间状态的时间窗口;

  2. 优雅降级:AF在收到PCF的错误响应(如"策略关联不存在")时,应能够优雅地处理这种情况,例如重新查询BSF获取更新后的绑定信息;

  3. 异步通知:在独立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

← 返回 BSF 实践篇