Saltar al contenido principal

OmniNSSF

OmniNSSF implementa la Función de Selección de Slice de Red (NSSF) del núcleo 5G. El NSSF es la autoridad para las decisiones de slicing de red: indica al AMF qué slices puede usar una UE, dónde debe dirigirse el descubrimiento NF específico del slice (el NRF objetivo para una Instancia de Slice de Red), y qué conjunto de AMF puede servir un slice dado. También recopila y autoriza la disponibilidad de slice por Área de Seguimiento reportada por los AMFs.

OmniNSSF expone dos servicios de Interfaz Basada en Servicio 5G (SBI) - Nnssf_NSSelection (nnssf-nsselection/v2), consultado por el AMF en el registro de la UE y el establecimiento de sesión PDU para resolver un S-NSSAI solicitado / suscrito en un NSSAI permitido, información de NSI (NRF objetivo), un conjunto de AMF objetivo, y (para UEs en roaming) un mapeo de NSSAI configurado; y Nnssf_NSSAIAvailability (nnssf-nssaiavailability/v1), que recibe actualizaciones de disponibilidad de S-NSSAI por Identidad de Área de Seguimiento (TAI) empujadas por los AMFs y gestiona la suscripción/notificación de cambios de disponibilidad. La topología de slice y la disponibilidad por AMF se mantienen en almacenes en memoria que se reconstruyen a partir de la configuración y de los informes en vivo de AMF después de un reinicio.

Documentación

  • Guía de Operaciones - rol de 3GPP, puntos finales de SBI, y los procedimientos clave de selección de slice y disponibilidad de NSSAI con diagramas de secuencia.
  • Referencia de Configuración - Referencia completa de configuración en tiempo de ejecución, tablas de parámetros de topología de slice, API de gestión/OAM, y registro.
  • Métricas - Métricas de Prometheus para selección de slice, actualizaciones de disponibilidad, registro de NRF, y salud de BEAM VM, con ejemplo de PromQL.
  • Solución de Problemas - Problemas comunes y sus resoluciones.

Visión General de la Arquitectura

Visión General de Características

  • Selección de slice para registro y sesión PDU - resuelve S-NSSAI solicitado / suscrito en información de NSI, NSSAI permitido, conjunto de AMF objetivo, y NSSAI configurado.
  • Mapeo de NSI a NRF - dirige el descubrimiento NF específico del slice al NRF correcto por slice.
  • NSSAI permitido por PLMN con retroceso a PLMN local.
  • Filtrado de disponibilidad consciente de TAI - NSSAI permitido y selección de slice respetan la disponibilidad por TAI reportada por los AMFs; permisivo cuando no existen datos de disponibilidad.
  • Gestión de disponibilidad de NSSAI - PUT/PATCH/DELETE disponibilidad por AMF, con soporte para JSON Patch (RFC 6902).
  • Suscripciones y notificaciones de disponibilidad - POST/PATCH/DELETE suscripciones con notificaciones de cambios entregadas fuera de la ruta de solicitud con reintentos limitados.
  • Descubrimiento dinámico de NRF opcional - cuando está habilitado, el NSSF resuelve el NRF que sirve el slice en tiempo de ejecución desde el NRF raíz a través de Nnrf_NFDiscovery, retrocediendo a la nsi_list configurada estáticamente cuando el descubrimiento no produce resultados. Desactivado por defecto (solo nsi_list estática).
  • Negociación de características soportadas - anuncia el bit de característica NssaiAvailability y devuelve la intersección negociada.
  • Registro y latido de NRF - registro automático al inicio con latidos periódicos; anuncia tanto nnssf-nsselection (v2) como nnssf-nssaiavailability (v1).
  • OAM en tiempo de ejecución - inspeccionar y ajustar la topología de slice, URI de NRF, capacidad/prioridad, y nivel de registro sin reinicio.
  • Registro JSON estructurado y métricas de Prometheus.

Inicio Rápido

OmniNSSF se configura a través de variables de entorno del sistema leídas al inicio. La configuración principal en tiempo de ejecución es:

config :omnissf,
sbi_scheme: System.get_env("SBI_SCHEME", "http"),
sbi_addr: System.get_env("SBI_ADDR", "127.0.0.14"),
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", "9568")),
heartbeat_interval: String.to_integer(System.get_env("HEARTBEAT_INTERVAL", "10000"))

La topología de slice (lista de NSI, NSSAI permitido, mapeo de conjunto de AMF, NSSAI configurado) se proporciona a través de la configuración estructural de la aplicación. La referencia completa de parámetros, incluyendo las tablas de topología de slice y la API de gestión/OAM, se encuentra en la Referencia de Configuración.