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

5GC实践篇之BSF篇第10篇:在已有用户上下文中创建新会话与删除特定会话绑定

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

5GC实践篇之BSF篇第10篇:在已有用户上下文中创建新会话与删除特定会话绑定

作者:爱卫生


1 测试背景与用例简介

在前面的文章中,我们分别讨论了会话绑定信息的创建(第7篇)和删除(第9篇)。但实际网络运营中,有一个更复杂但极为常见的场景:同一个用户已经建立了PDU会话,现在需要在其已有的用户上下文中创建新的会话绑定,或者只删除某一个特定DNN的会话绑定

考虑这样一个实际场景:用户A已经建立了DNN=Internet的上网会话,现在又发起了一个DNN=IMS的VoNR语音会话。此时SMF内置BSF中已经存在用户A的上下文,新的IMS会话绑定信息需要在已有上下文中创建。反过来,当用户A释放IMS语音会话后,BSF需要删除DNN=IMS对应的绑定信息,但保留DNN=Internet的绑定信息不受影响。

本篇聚焦于这一"在已有用户上下文中增删特定会话绑定"的场景,验证以下两个关键能力:

  1. 在已有用户上下文中创建新会话绑定:UE A已有DNN1会话,再建立DNN2会话时,BSF在同一用户上下文中新增一条绑定记录;

  2. 删除特定会话的绑定信息:UE A释放DNN1会话时,BSF只删除DNN1对应的绑定记录,DNN2的绑定信息保持不变。

同一用户多DNN会话绑定的典型场景

场景 已有绑定 新增/删除操作 结果
建立VoNR语音会话 DNN=Internet绑定PCF1 新增DNN=IMS绑定PCF2 两条绑定共存
释放数据业务会话 DNN=Internet + DNN=IMS 删除DNN=Internet绑定 仅保留IMS绑定
建立第二个数据会话 DNN=Internet绑定PCF1 新增DNN=Internet2绑定PCF2 两条绑定共存
释放特定DNN会话 两条绑定 删除其中一条 保留另一条

详细消息流程图


sequenceDiagram

    participant UE_A as UE A

    participant SMF as SMF/BSF

    participant PCF1 as PCF1

    participant PCF2 as PCF2

    Note over UE_A, PCF2: 前置: UE A已有DNN1会话, BSF中存在绑定信息

    Note over UE_A, PCF2: 绑定信息1: SUPI A + IPv6 A1 + DNN1 <-> PCF1

    Note over UE_A, PCF2: 阶段1: 在已有上下文中创建新会话绑定

    UE_A->>SMF: PDU Session Establishment Request (DNN2)

    Note right of UE_A: NAS消息<br/>携带DNN2, S-NSSAI

    SMF->>PCF2: POST /npcf-smpolicycontrol/v1/policies

    Note right of SMF: Npcf_SMPolicyControl_Create<br/>DNN2会话, 选择PCF2

    PCF2-->>SMF: 201 Created

    Note over SMF: BSF新增绑定: SUPI A + IPv6 A2 + DNN2 <-> PCF2

    Note over UE_A, PCF2: 阶段2: 删除特定会话的绑定信息

    UE_A->>SMF: PDU Session Release Request (DNN1)

    Note right of UE_A: 仅释放DNN1会话

    SMF->>PCF1: DELETE /npcf-smpolicycontrol/v1/policies/{smPolicyId}

    Note right of SMF: Npcf_SMPolicyControl_Delete<br/>仅终止DNN1的策略关联

    PCF1-->>SMF: 204 No Content

    Note over SMF: BSF删除DNN1绑定<br/>保留DNN2绑定不受影响


flowchart LR

    subgraph 阶段1_创建新会话绑定

        A1["UE A发起DNN2的PDU会话建立"] --> B1["SMF选择PCF2"]

        B1 --> C1["SMF向PCF2发起SMPolicyControl_Create"]

        C1 --> D1["PCF2返回201 Created"]

        D1 --> E1["BSF在已有上下文中新增绑定记录"]

    end

    subgraph 阶段2_删除特定会话绑定

        A2["UE A发起DNN1的PDU会话释放"] --> B2["SMF向PCF1发起SMPolicyControl_Delete"]

        B2 --> C2["PCF1返回204 No Content"]

        C2 --> D2["BSF仅删除DNN1的绑定"]

        D2 --> E2["DNN2绑定信息保持不变"]

    end

    style E1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px

    style E2 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px


2 协议规范与关键技术

2.1 相关协议参考

本篇测试涉及以下3GPP协议规范:

  • TS 29.551(Nbsf_Management服务):定义了BSF的服务化接口,包括会话绑定信息的创建、查询、更新和删除操作。特别是第5.2.2节定义了Nbsf_Management服务的各个操作。

  • TS 29.513(PCF策略控制接口):定义了PCF与SMF之间的N7接口(Npcf_SMPolicyControl),包括策略关联的建立和终止。

  • TS 23.501(5G系统架构):第5.8.2.6节描述了BSF在策略控制架构中的角色——维护PDU会话与PCF之间的绑定关系。

2.2 同一用户上下文中的多会话绑定管理

在5G核心网中,一个用户可以同时建立多个PDU会话(如一个用于Internet上网、一个用于IMS语音)。每个PDU会话可能被分配到不同的PCF。BSF需要支持在同一用户上下文中管理多条独立的绑定记录。

关键设计要点:

  1. 绑定信息的唯一性:每条绑定记录由(SUPI + DNN + S-NSSAI + IP地址)组合唯一标识;

  2. 独立删除:删除某条绑定记录不应影响同一用户的其他绑定记录;

  3. 增量创建:在已有用户上下文中新增绑定记录,不需要重建整个用户上下文。

2.3 SMF内置BSF的绑定管理机制

当BSF内置于SMF时,绑定信息的创建和删除与PDU会话的生命周期紧密耦合:

  • 创建时机:SMF为UE建立PDU会话时,在获取PCF ID/地址后,自动在BSF中创建绑定记录;

  • 删除时机:SMF处理PDU会话释放时,自动删除对应的绑定记录;

  • 查询机制:通过SMF的CLI维护命令epg smf sbi bsf-services show-pcf-binding-info查询绑定信息。


3 消息流程与详细解读

3.1 测试前置条件

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

  2. UE A已完成附着,已建立DNN1(Internet9)的PDU会话;

  3. 网元SMF(内置BSF)中有UE A的会话绑定信息:

  4. 绑定信息1:UE IPv6 A1, DNN1, S-NSSAI, SUPI A, GPSI A和PCF1 ID或地址;

  5. 网元SMF(内置BSF)中有UE B的会话绑定信息:

  6. 绑定信息2:UE IPv6 B1, DNN1, S-NSSAI, SUPI B, GPSI B和PCF2 ID或地址。

3.2 测试步骤解读

阶段1:创建新会话绑定

触发UE A创建DNN2(apn9)的PDU会话。SMF为DNN2会话选择PCF2,在BSF中创建新的绑定记录。

阶段2:删除特定会话绑定

触发UE A释放DNN1(Internet9)相关的PDU会话。SMF向PCF1发送策略关联终止请求,BSF删除DNN1对应的绑定记录,但DNN2的绑定信息保持不变。

3.3 消息流程详图


flowchart TD

    A["开始测试"] --> B["查询UE A已有绑定信息"]

    B --> C["确认DNN1绑定存在"]

    C --> D["触发UE A建立DNN2会话"]

    D --> E["SMF选择PCF2并建立策略关联"]

    E --> F["BSF新增DNN2绑定记录"]

    F --> G["验证: 查询DNN2绑定信息"]

    G --> H["触发UE A释放DNN1会话"]

    H --> I["SMF向PCF1发送SMPolicyControl_Delete"]

    I --> J["PCF1返回204 No Content"]

    J --> K["BSF删除DNN1绑定记录"]

    K --> L["验证: DNN1绑定已删除"]

    L --> M["验证: DNN2绑定仍存在"]

    M --> N["测试完成"]

    style F fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px

    style K fill:#ffcdd2,stroke:#c62828,stroke-width:2px

    style M fill:#e3f2fd,stroke:#1565c0,stroke-width:2px


4 关键信令参数分析

4.1 创建新会话前:UE A的初始用户上下文

在创建新会话之前,UE A(IMSI: 4608800000XXXXXX)已有一个DNN1=Internet9的PDU会话。

UE A的SMF用户信息:


[local]SMF09#epg smf user-info identifier-type imsi value 4608800000XXXXXX

mobile-user-information:

    subscriber-information:

        imsi: 4608800000XXXXXX

        msisdn: 86138000XXXXXX

        active-pdu-sessions:

            active-pdu-session:

                pdu-session-id: 5

                dnn-in-use: Internet9

                an-type: 3GPP

                ssc-mode: SSC_MODE_1

                ue-address-1:

                    ipv6: 2a01:172:2401:3:3e7d:da46:1f24:b0b/64

                ue-address-2:

                    ipv4: 172.24.1.5

                single-nssai:

                    slice-service-type: 9

                    slice-differentiator: 000001

4.2 创建新会话后:UE A拥有两个PDU会话

UE A成功建立DNN2=apn9的PDU会话后,SMF用户信息中显示两个活跃的PDU会话。

新增的DNN2会话信息:


            active-pdu-session:

                pdu-session-id: 6

                dnn-in-use: apn9

                an-type: 3GPP

                ssc-mode: SSC_MODE_1

                ue-address-1:

                    ipv6: 2a01:172:2401:2:4575:4ba7:27e0:9608/64

                ue-address-2:

                    ipv4: 172.24.1.4

                single-nssai:

                    slice-service-type: 9

                    slice-differentiator: 000001

4.3 BSF绑定信息对比分析

创建新会话后,BSF中存在两条绑定记录。通过CLI分别查询:

DNN1(Internet9)的绑定信息——绑定PCF1:


[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 172.24.1.5

pcf-binding-information:

    snssai-sst: 9

    snssai-sd: 000001

    ueIp: 2a01:172:2401:3:3e7d:da46:1f24:b0b

    dnn: Internet9

    supi: 4608800000XXXXXX

    gpsi: 86138000XXXXXX

    pcfId: 2244c290-3621-4d72-b718-e0194603ab11

    pcfDiameterHost: rxDiam-Host.com

    pcfDiameterRealm: rxDiam-Realm.com

    pcfIpEndPoints: 10.10.32.32:9091

DNN2(apn9)的绑定信息——绑定PCF2:


[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 172.24.1.4

pcf-binding-information:

    snssai-sst: 9

    snssai-sd: 000001

    ueIp: 2a01:172:2401:2:4575:4ba7:27e0:9608

    dnn: apn9

    supi: 4608800000XXXXXX

    gpsi: 86138000XXXXXX

    pcfId: 4444c290-3621-4d72-b718-e0194603ab11

    pcfDiameterHost: rxDiam-Host.com

    pcfDiameterRealm: rxDiam-Realm.com

    pcfIpEndPoints: 10.10.32.34:9091

两条绑定信息的对比:

参数 DNN1绑定 (Internet9) DNN2绑定 (apn9)
IPv4地址 172.24.1.5 172.24.1.4
IPv6地址 2a01:...:1f24:b0b 2a01:...:27e0:9608
DNN Internet9 apn9
SUPI 4608800000XXXXXX 4608800000XXXXXX
PCF ID 2244c290-...-e0194603ab11 4444c290-...-e0194603ab11
PCF IP 10.10.32.32:9091 10.10.32.34:9091
PDU Session ID 5 6

4.4 删除特定会话的PDU释放信令

UE A发起DNN1(Internet9)的PDU会话释放,SMF通过NGAP流程处理:


# UE A发起DNN1的PDU会话释放

lts_run_mobiles &#x27;90002, 1, [{504,6}]&#x27;

# NGAP信令交互

INFO  MS-group 1: Sending NGAP Uplink N1 transport 

      with PDU Session Release Request

      GnodebId: 5:180005

      AmfId: 4:9932677912

INFO  protocol_proxy: 

      ngap_pduSessionResourceReleaseCommand

      pduSessionToBeReleaseItem: 6

INFO  MS-group 1:

      Recv NGAP PDU Session Resource Release Command

      Send NGAP PDU Session Resource Release Response

      Recv NAS PDU Session Release Command: 6

DEBUG MS-group 1: stop_payload, MsId:90002, PdpId 2

关键信令参数:

参数 说明
pduSessionId 6 标识要释放的PDU会话编号
GnodebId 5:180005 服务基站标识
AmfId 4:9932677912 AMF分配的UE NGAP ID
Release Command PDU Session Release Command 网络通知UE会话释放
stop_payload MsId:90002, PdpId 2 停止该PDU会话的负载

5 测试验证与数据解读

5.1 验证一:DNN1绑定信息已成功删除

PDU会话释放后,查询DNN1对应的IP地址(172.24.1.4),BSF返回绑定信息不存在:


[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 172.24.1.4

pcf-binding-information:

    Error: BINDING_INFORMATION_NOT_FOUND

解读: BINDING_INFORMATION_NOT_FOUND表明BSF已成功删除DNN1(apn9)对应的绑定记录。PCF2的策略关联已被终止,绑定信息已从BSF中完全清除。

5.2 验证二:DNN2绑定信息不受影响

同时查询DNN2对应的IP地址(172.24.1.5),BSF仍然返回完整的绑定信息:


[local]SMF09#epg smf sbi bsf-services show-pcf-binding-info address 172.24.1.5

pcf-binding-information:

    snssai-sst: 9

    snssai-sd: 000001

    ueIp: 2a01:172:2401:3:3e7d:da46:1f24:b0b

    dnn: Internet9

    supi: 4608800000XXXXXX

    gpsi: 86138000XXXXXX

    pcfId: 2244c290-3621-4d72-b718-e0194603ab11

    pcfDiameterHost: rxDiam-Host.com

    pcfDiameterRealm: rxDiam-Realm.com

    pcfIpEndPoints: 10.10.32.32:9091

解读: DNN2(Internet9)的绑定信息完全不受影响,PCF1的策略关联依然有效。这证明了BSF支持选择性删除——仅删除指定DNN的绑定记录,不影响同一用户的其他绑定。

5.3 测试结果汇总

验证项 预期结果 实际结果 结论
创建DNN2新会话绑定 BSF新增绑定记录 查询到PCF2绑定信息 通过
删除DNN1特定绑定 仅删除DNN1绑定 返回BINDING_INFORMATION_NOT_FOUND 通过
DNN2绑定不受影响 DNN2绑定保留 查询到完整PCF1绑定信息 通过
同一用户多绑定独立管理 互不影响 各绑定独立创建和删除 通过

6 小结与思考

本篇验证了BSF在同一用户上下文中管理多条会话绑定信息的能力。测试结果表明:

  1. 增量创建:BSF支持在已有用户上下文中创建新的会话绑定,无需重建整个用户上下文。当用户建立新的PDU会话时,BSF自动新增绑定记录。

  2. 选择性删除:BSF支持仅删除特定DNN的绑定信息,不影响同一用户的其他绑定记录。这是通过绑定记录的唯一标识(SUPI + DNN + IP地址)实现的。

  3. 多PCF管理:同一用户的不同PDU会话可以绑定到不同的PCF实例,BSF能正确维护多条独立的映射关系。

延伸思考:

  • 并发场景:当用户同时释放多个DNN会话时,BSF是否能保证每条绑定记录的独立删除不会产生竞争条件?在实际网络中,这种情况虽然不常见,但在异常恢复场景下可能出现。

  • 绑定数量限制:一个用户上下文中最多能存储多少条绑定记录?这取决于SMF的实现限制和网络规划。在实际运营中,一个用户通常同时只有2-3个PDU会话(Internet + IMS + 特定DNN),因此不太可能触达上限。

  • 跨SMF场景:当同一用户的不同PDU会话由不同SMF服务时(如ULCL场景),绑定信息存储在不同的BSF实例中。AF查询时需要通过NRF发现正确的BSF,这增加了查询的复杂度。

协议参考:根据3GPP TS 29.551第5.2.2.3节,BSF应支持在同一个SUPI下管理多条独立的PcfBinding记录。每条记录由IPv4地址/IPv6前缀、DNN和S-NSSAI的组合唯一标识。当SMF删除某条PDU会话时,BSF仅删除对应的绑定记录,不影响同一SUPI下的其他绑定。


51学通信(微信:gprshome201101)——专注5G核心网与IMS技术教学,已帮助10000+通信工程师提升技能。知识星球搜"51学通信",200+小时视频+3000+文章等你来。

← 返回 BSF 实践篇