OmniPCF
OmniPCF implementa la Función de Control de Políticas (PCF) del núcleo 5G de Omnitouch. Es el punto de decisión de políticas de la red: le indica al SMF cómo debe tratarse cada sesión PDU (reglas PCC, session-AMBR, QoS por flujo) y le dice al AMF la política de acceso y movilidad para cada UE registrada. También expone el servicio de autorización de políticas orientado a la función de aplicación que convierte una llamada IMS/VoNR en un flujo de tasa garantizada dedicado.
OmniPCF sirve tres servicios SBI: Npcf_SMPolicyControl (TS 29.512), Npcf_AMPolicyControl (TS 29.507), y Npcf_PolicyAuthorization (TS 29.514). Obtiene datos de políticas por suscriptor del UDR (Nudr_DataRepository, TS 29.519), registra la vinculación de dirección UE a PCF en el BSF (Nbsf_Management, TS 29.521), y se registra/envía latidos al NRF. Las asociaciones de políticas son un estado en tiempo de ejecución mantenido en memoria; el UDR es la fuente autorizada de datos de políticas de suscriptores, y las asociaciones son restablecidas por el SMF y AMF a medida que se configuran sesiones y registros.
Documentación
- Guía de Operaciones: Conceptos básicos, referencias 3GPP, puntos finales SBI y los procedimientos clave de políticas con diagramas de secuencia.
- Referencia de Configuración: Referencia completa de configuración en tiempo de ejecución, valores predeterminados de políticas compiladas, la API de Gestión/OAM y registro.
- Métricas y Monitoreo: Referencia de métricas de Prometheus y ejemplos de consultas PromQL.
- Solución de Problemas: Problemas comunes y resoluciones.
Resumen de Arquitectura
Resumen de Características
- Ciclo de vida completo de
Npcf_SMPolicyControl: creación, lectura, actualización y eliminación de asociación de políticas SM, devolviendo unSmPolicyDecision(reglas de sesión, reglas PCC, decisiones de QoS, control de tráfico, desencadenadores de control de políticas) por TS 29.512. - Ciclo de vida completo de
Npcf_AMPolicyControl: creación, lectura, actualización y eliminación de asociación de políticas AM, devolviendo el UE-AMBR autorizado y desencadenadores de políticas por TS 29.507. Npcf_PolicyAuthorizationpara AF/IMS: Contextos de Sesión de Aplicación, sub-recurso de suscripción a eventos y restauración de P-CSCF; los componentes de medios AF (AUDIO/VIDEO) se traducen en reglas PCC GBR dedicadas y se envían al SMF propietario para VoNR.- Política impulsada por UDR: los datos de políticas SM/AM por suscriptor se obtienen del UDR (Nudr-DR v2); las reglas de carga estática de portadora dedicadas provisionadas en el UDR se convierten en flujos QoS 5G dedicados. Vuelve a una política predeterminada segura cuando el UDR no está disponible.
- Registro de vinculación de BSF: la vinculación de dirección UE a PCF se registra en el BSF para que un AF pueda descubrir este PCF para QoS iniciada por AF.
- Suscripciones a cambios de datos de políticas: el PCF se suscribe a notificaciones de cambios de datos de políticas del UDR y reacciona a cambios para asociaciones afectadas.
- Negociación de características soportadas:
suppFeatse negocia mediante AND bit a bit contra el mapa de bits soportado de cada servicio. - API de gestión del operador y métricas de Prometheus para observabilidad y control en tiempo de ejecución. Un panel de control web LiveView (Recursos, Configuración, Licencia y vistas de Registro) se sirve a través de HTTPS en el puerto
7443junto con la API de gestión REST.
Inicio Rápido
OmniPCF lee su configuración de la clave de entorno de aplicación :omnipcf. El mecanismo de implementación estándar es config/runtime.exs, que mapea cada valor de una variable de entorno del sistema con un valor predeterminado incorporado.
config :omnipcf,
sbi_scheme: System.get_env("SBI_SCHEME", "http"),
sbi_addr: System.get_env("SBI_ADDR", "127.0.0.13"),
sbi_port: String.to_integer(System.get_env("SBI_PORT", "7777")),
nrf_uri: System.get_env("NRF_URI", "http://127.0.0.1:7777"),
udr_uri: System.get_env("UDR_URI", "http://127.0.0.12:7777"),
bsf_uri: System.get_env("BSF_URI", "http://127.0.0.15:7777"),
mcc: System.get_env("MCC", "999"),
mnc: System.get_env("MNC", "70"),
heartbeat_interval: String.to_integer(System.get_env("HEARTBEAT_INTERVAL", "10000")),
prometheus_metrics_port: String.to_integer(System.get_env("PROMETHEUS_PORT", "9568"))
La referencia completa de parámetros, valores predeterminados de políticas compiladas, la API de Gestión/OAM y notas de registro se encuentran en la Referencia de Configuración.