跳到主要内容

← 概述

OmniBSF 操作指南

概述

OmniBSF 实现了 5G 核心的绑定支持功能 (BSF)。BSF 维护一个 PCF 绑定的注册表:对于每个 PDU 会话,它存储 UE 身份 (IPv4 地址、IPv6 前缀、MAC 地址或 SUPI) 以及 DNN 和 S-NSSAI 与服务该会话策略的 PCF 实例之间的映射。其他网络功能 - AF/NEF、SMF 或另一个 PCF - 查询 BSF 以发现哪个 PCF 负责给定会话,以便该会话的所有策略信令都指向同一 PCF 实例。

OmniBSF 在 SBI 基础路径 /nbsf-management/v1 下公开 Nbsf_Management 服务 (3GPP TS 29.521)。绑定完全保存在 ETS 表中并在内存中进行索引,以实现并发和低延迟查找。绑定具有可配置的生存时间 (TTL);后台清理程序定期删除过期条目。OmniBSF 在启动时向 NRF 注册其 NF 配置文件,并定期发送心跳。

内部数据存储

绑定在运行时保存在六个 ETS 表中:主绑定表和五个专用查找索引。所有数据都在内存中,并且在进程重启后不会保留。

ETS 表类型
bsf_bindings:setbinding_id (UUID 字符串)完整绑定映射
bsf_ipv4_index:setUE IPv4 地址 (字符串)binding_id
bsf_ipv6_index:setUE IPv6 前缀 (字符串)binding_id
bsf_supi_index:bagSUPI (字符串)binding_id
bsf_mac_index:setUE MAC 地址 (小写字符串)binding_id
bsf_dnn_snssai_index:bag{dnn, sst}binding_id

每个查找键由其自己的索引提供服务,因此发现不会扫描主绑定表。macAddr48 查找通过 bsf_mac_index 解析(键被小写以便匹配不区分大小写),而 DNN+S-NSSAI 查找通过 bsf_dnn_snssai_index 解析,键为 {dnn, sst}(小匹配桶随后根据可选的 S-NSSAI sd 进行过滤)。

bsf_supi_index 是一个 :bag:单个 SUPI 可以持有 多个并发绑定(例如,多个不同 DNN 的 PDU 会话),因此一个 SUPI 可以映射到多个绑定 ID。通过 supi 的发现每次返回一个 PcfBinding,根据 TS 29.521,因此返回第一个匹配的绑定。


3GPP 角色和规范参考

规范相关性
TS 23.501系统架构 - BSF 网络功能角色
TS 23.503策略和计费控制框架 - 策略关联的会话绑定上下文
TS 29.521Nbsf_Management 服务 API (PCF 绑定注册/发现/更新/注销)、PcfBinding 数据模型、支持的特性协商
TS 29.5005G SBI 通用框架 (ProblemDetails, HTTP 语义)
TS 29.510NF 注册和与 NRF 的心跳

当 PCF 部署为多个实例(或作为 PCF 集合)时,BSF 变得相关。它的角色是会话绑定:记录哪个 PCF 服务每个 PDU 会话,以便后续的策略交互(来自 AF 通过 NEF,或来自 SMF)到达正确的 PCF。


SBI 端点

所有端点都在基础 URL {sbi_scheme}://{sbi_addr}:{sbi_port} 下提供,基础路径为 /nbsf-management/v1

方法路径描述成功错误
POST/pcfBindings为 PDU 会话注册 PCF 绑定。返回指向创建的绑定的 Location 头。201 Created400 (缺少 dnn/snssai/PCF 地址);403 (UE IP 已存在绑定)
GET/pcfBindings发现与提供的查询参数匹配的 PCF 绑定。200 OK,带 PcfBinding,如果没有匹配则返回 204 No Content-
PATCH/pcfBindings/{bindingId}更新现有绑定 (UpdateIndPCFBinding)。主体必须是 application/merge-patch+json200 OK,带��新的 PcfBinding404 (未知 ID);415 (错误的内容类型)
DELETE/pcfBindings/{bindingId}通过其 ID 注销 PCF 绑定。204 No Content404 Not Found

任何其他路径返回 404,并带有 ProblemDetails 主体。

GET 查询参数

发现端点使用第一个匹配参数解析绑定,优先顺序如下:

优先级参数类型查找描述
1ipv4Addr字符串索引UE IPv4 地址(精确匹配)
2ipv6Prefix字符串索引UE IPv6 前缀(精确匹配)
3macAddr48字符串索引UE MAC 地址(通过 bsf_mac_index 不区分大小写匹配)
4supi字符串索引订阅者永久标识符(如果多个并发绑定共享 SUPI,则返回第一个匹配)
5dnn + snssai字符串 / JSON索引DNN 和 S-NSSAI 一起,通过 bsf_dnn_snssai_index 解析,键为 {dnn, sst}sst 必须匹配;提供时匹配 sd

当提供时,pcfSetIdpcfRegionIdbindLevel 查询参数进一步缩小结果范围,根据 TS 29.521:存储值不匹配提供的过滤器的候选项不会返回。查询中缺少的过滤器将被忽略。

POST 请求主体 - 字段

字段类型必需描述
dnn字符串数据网络名称
snssai对象S-NSSAI (sst 整数,选填 sd 字符串)
pcfFqdn字符串有条件PCF FQDN - 如果缺少 pcfIpEndPoints 则必填
pcfIpEndPoints数组有条件PCF IP 端点列表 - 如果缺少 pcfFqdn 则必填
ipv4Addr字符串UE IPv4 地址(已索引;也用于驱动重复检测)
ipv6Prefix字符串UE IPv6 前缀(已索引;也用于驱动重复检测)
macAddr48字符串UE MAC 地址
supi字符串订阅者永久标识符(已索引)
gpsi字符串通用公共订阅标识符
ipv4FrameRouteList数组IPv4 帧路由
ipv6FrameRouteList数组IPv6 帧路由
pcfSetId字符串PCF 集标识符。存储在绑定中,并在作为查询过滤器提供时用于缩小发现范围。
pcfRegionId字符串PCF 区域标识符。存储在绑定中,并在作为查询过滤器提供时用于缩小发现范围。
bindLevel字符串绑定级别。存储在绑定中,并在作为查询过滤器提供时用于缩小发现范围。
suppFeat字符串 (十六进制)支持的特性位图;通过与特性 0x01 (BindingUpdate) 的���位与协商

对重复注册的 403 响应携带 ExtProblemDetails 主体 (cause = EXISTING_BINDING_INFO_FOUND),并在顶层内联现有 PCF 的 pcfSmFqdn / pcfSmIpEndPoints,根据 TS 29.521。

运营商管理 API

除了 SBI 监听器,OmniBSF 还公开了一个运营商管理 (OAM) REST 接口,用于查看统计信息、检查/清除绑定、在运行时调整 NRF 配置文件容量/优先级和日志级别,以及强制 NRF 重新注册。有关完整的端点参考,请参见 管理 API


关键程序

PCF 绑定注册 (POST)

PCF 绑定发现 (GET)

PCF 绑定更新 (PATCH)

Merge-patch 仅适用于字段 ipv4Addripv6PrefixmacAddr48pcfFqdnpcfIpEndPoints;因为 IPv4/IPv6/SUPI/MAC 和 DNN+S-NSSAI 索引基于绑定内容,旧记录及其索引条目将被删除,更新的绑定将被重新插入,以保持索引一致性。PATCH 还会从 binding_ttl_seconds 刷新绑定的 expires_at,因此它充当保持活动的机制,延长绑定的生命周期。请参见 绑定生命周期调整

PCF 绑定注销 (DELETE)

NRF 注册和心跳

在启动时,OmniBSF 向 NRF 注册一个 BSF NF 配置文件(来自 nrf_uri),广告其 SBI 地址/端口/方案、配置的 PLMN (mcc/mnc) 和 nbsf-management v1 服务。然后,它每 heartbeat_interval 毫秒发送定期的 NFUpdate 心跳。可以通过管理 API 随时强制注册。