OmniBSF
OmniBSF implementa la Función de Soporte de Vinculación (BSF) del núcleo 5G. El BSF mantiene un registro de vinculaciones de PCF: para cada sesión PDU almacena el mapeo entre una identidad de UE (dirección IPv4, prefijo IPv6, dirección MAC o SUPI) más el DNN y S-NSSAI, y la instancia de PCF que sirve la política de esa sesión. Otras funciones de red - un AF/NEF, un SMF, o otro PCF - consultan al BSF para descubrir qué PCF es responsable de una sesión dada, de modo que toda la señalización de políticas para esa sesión se dirija a la misma instancia de PCF.
OmniBSF expone el servicio Nbsf_Management (3GPP TS 29.521) bajo la ruta base del SBI /nbsf-management/v1. Las vinculaciones se mantienen completamente en memoria en tablas ETS y están indexadas para una búsqueda concurrente y de baja latencia. Las vinculaciones tienen un tiempo de vida configurable (TTL); un limpiador en segundo plano elimina periódicamente las entradas expiradas. OmniBSF registra su perfil NF con el NRF al inicio y envía latidos periódicos.
Documentación
- Guía de Operaciones - Conceptos básicos, referencias 3GPP, puntos finales del SBI y los procedimientos clave del ciclo de vida de vinculaciones con diagramas de secuencia.
- Referencia de Configuración - Referencia completa de configuración en tiempo de ejecución con tablas de parámetros, ajuste de la duración de vinculaciones y registro.
- Métricas y Monitoreo - Referencia de métricas de Prometheus y ejemplos de consultas PromQL.
- Resolución de Problemas - Problemas comunes y soluciones.
- API de Gestión - Interfaz OAM REST orientada al operador para estado, estadísticas, inspección/eliminación de vinculaciones y controles de configuración en tiempo de ejecución.
Descripción General de la Arquitectura
Descripción General de Características
- Ciclo de vida completo de
Nbsf_Management- registrar, descubrir, actualizar (merge-patch) y desregistrar vinculaciones de PCF según TS 29.521. - Descubrimiento de múltiples claves - las vinculaciones son resolubles por IPv4 de UE, prefijo IPv6 de UE, dirección MAC, SUPI, o DNN+S-NSSAI, con una prioridad de resolución definida.
- Protección contra duplicados - un segundo registro para una IP de UE que ya tiene una vinculación es rechazado con un
403 ExtProblemDetailsque devuelve la dirección del PCF incumbente, permitiendo al llamador reutilizarla. - Negociación de características soportadas - el bitmap
suppFeatse negocia mediante AND bit a bit contra el conjunto soportado por el BSF (0x01, BindingUpdate). - TTL de vinculación y limpieza automática - cada vinculación está sellada con una fecha de expiración; un limpiador en segundo plano elimina vinculaciones expiradas en un intervalo fijo.
- Almacenamiento ETS concurrente - las vinculaciones y sus índices se mantienen en tablas ETS de lectura concurrente para una búsqueda de baja latencia bajo carga.
- Integración NRF - registro automático de NF y latido, con capacidad/prioridad ajustable en tiempo de ejecución.
- API de gestión para operadores y métricas de Prometheus para observabilidad y control en tiempo de ejecución.
Inicio Rápido
OmniBSF lee su configuración de la clave de entorno de la aplicación :omnibsf. El mecanismo de implementación estándar es config/runtime.exs, que mapea cada valor de una variable de entorno del sistema operativo con un valor predeterminado incorporado.
config :omnibsf,
sbi_scheme: System.get_env("SBI_SCHEME", "http"),
sbi_addr: System.get_env("SBI_ADDR", "127.0.0.15"),
sbi_port: String.to_integer(System.get_env("SBI_PORT", "7777")),
nrf_uri: System.get_env("NRF_URI", "http://127.0.0.1:7777"),
mcc: System.get_env("MCC", "999"),
mnc: System.get_env("MNC", "70"),
prometheus_metrics_port: String.to_integer(System.get_env("PROMETHEUS_PORT", "9571")),
heartbeat_interval: String.to_integer(System.get_env("HEARTBEAT_INTERVAL", "10000"))
La documentación completa de parámetros, ajuste de la duración de vinculaciones y notas de registro se encuentran en la Referencia de Configuración.