Saltar al contenido principal

Guía de Operaciones de OmniPCF

Descripción General

OmniPCF implementa la Función de Control de Políticas (PCF) del núcleo 5G. Proporciona dos servicios SBI: Npcf_SMPolicyControl (TS 29.512) para asociaciones de políticas de gestión de sesión, y Npcf_AMPolicyControl (TS 29.507) para asociaciones de políticas de acceso y movilidad. El PCF consulta opcionalmente el UDR para datos de políticas por suscriptor (QoS de suscripción, UE-AMBR) y construye decisiones de Control de Políticas y Carga (PCC) que se devuelven al SMF y AMF respectivamente.

El contexto de políticas se mantiene en proceso. Todas las reglas PCC generadas son reglas por defecto que permiten todo; las reglas dinámicas, específicas de suscriptores o de flujo GBR no son compatibles en la versión actual.

Arquitectura


Referencias de Rol y Especificación 3GPP

EspecificaciónRelevancia
TS 23.501Arquitectura del sistema — rol del PCF, marco PCC
TS 23.503Arquitectura de control de políticas y carga
TS 29.507API Npcf_AMPolicyControl
TS 29.512API Npcf_SMPolicyControl
TS 29.519Nudr_DataRepository — recurso de datos de políticas (consultado por el PCF)
TS 23.502Procedimientos — referencias a la creación de asociaciones de políticas durante el establecimiento de sesión PDU y registro

Puntos Finales SBI

Todos los puntos finales se sirven bajo la URL base {sbi_scheme}://{sbi_addr}:{sbi_port}.

MétodoRutaServicioDescripciónEspec
POST/npcf-smpolicycontrol/v1/sm-policiesNpcf_SMPolicyControlCrear Asociación de Política SMTS 29.512 4.2.2.2
POST/npcf-smpolicycontrol/v1/sm-policies/{smPolicyId}/updateNpcf_SMPolicyControlActualizar Asociación de Política SMTS 29.512 4.2.3.2
POST/npcf-smpolicycontrol/v1/sm-policies/{smPolicyId}/deleteNpcf_SMPolicyControlEliminar Asociación de Política SMTS 29.512 4.2.4.2
POST/npcf-am-policy-control/v1/policiesNpcf_AMPolicyControlCrear Asociación de Política AMTS 29.507 4.2.2.2
DELETE/npcf-am-policy-control/v1/policies/{polAssoId}Npcf_AMPolicyControlEliminar Asociación de Política AMTS 29.507 4.2.4.2

Resumen de Solicitud / Respuesta

Crear Asociación de Política SM — campos de solicitud obligatorios: supi, pduSessionId, pduSessionType, dnn, notificationUri, sliceInfo, y al menos uno de ipv4Address o ipv6AddressPrefix. Devuelve 201 Created con SmPolicyDecision y encabezado Location.

Actualizar Asociación de Política SM — el SMF envía SmPolicyUpdateContextData. El PCF actualiza el contexto almacenado con cualquier campo proporcionado de ipv4Address, ipv6AddressPrefix, o ratType y devuelve un SmPolicyDecision actualizado. No se realiza el procesamiento de informes de reglas (ver PCF-M3).

Eliminar Asociación de Política SM — el cuerpo es SmPolicyDeleteData (ignorando más allá del registro). Devuelve 204 No Content.

Crear Asociación de Política AM — campos de solicitud obligatorios: supi, notificationUri. Los campos opcionales incluyen guami, accessType, ratType, allowedSnssais, ueAmbr, suppFeat. Devuelve 201 Created con PolicyAssociation y encabezado Location.

Eliminar Asociación de Política AM — no se requiere cuerpo de solicitud. Devuelve 204 No Content.


Referencia de Configuración

La configuración se lee de la clave de entorno de la aplicación :omnipcf.

config :omnipcf,
sbi_scheme: "http",
sbi_addr: "127.0.0.13",
sbi_port: 7777,
nrf_uri: "http://127.0.0.10:7777",
udr_uri: "http://127.0.0.12:7777",
mcc: "999",
mnc: "70",
heartbeat_interval: 10_000

Tabla de Parámetros

ParámetroTipoPor DefectoDescripción
sbi_schemecadena"http"Esquema HTTP para el socket de escucha SBI (http o https)
sbi_addrcadena"127.0.0.13"Dirección IP a la que se vincula el servidor HTTP SBI
sbi_portentero7777Puerto TCP en el que escucha el servidor HTTP SBI
nrf_uricadena"http://127.0.0.10:7777"URI base del NRF. Usado solo para registro de NF y latido
udr_uricadena"http://127.0.0.12:7777"URI base del UDR. Consultado para datos de políticas AM (/nudr-dr/v1/policy-data/ues/{ueId}/am-data) y datos de políticas SM (/nudr-dr/v1/policy-data/ues/{ueId}/sm-data). Si no está disponible, el PCF procede con la política por defecto
mcccadena"999"Código de País Móvil del PLMN que presta servicio
mnccadena"70"Código de Red Móvil del PLMN que presta servicio
heartbeat_intervalentero (ms)10000Intervalo en milisegundos entre solicitudes de latido del NRF
hss_api_base_urlcadena"https://127.0.0.1:8443"URL base de una API HSS heredada. Presente en la configuración pero no utilizada por procedimientos de políticas activos

Procedimientos Clave

Creación de Asociación de Política SM (TS 29.512 Sección 4.2.2)

Actualización de Asociación de Política SM (TS 29.512 Sección 4.2.3)

Nota: Los informes de reglas dentro de SmPolicyUpdateContextData no se procesan (PCF-M3). No se realizan actualizaciones de políticas basadas en disparadores (PCF-M4). El PCF no notifica proactivamente al SMF sobre cambios en las políticas (PCF-M7).

Creación de Asociación de Política AM (TS 29.507 Sección 4.2.2)

Estructura de SmPolicyDecision

El PCF siempre devuelve una decisión por defecto que permite todo. La estructura devuelta por TS 29.512 Tabla 5.6.2.3-1:

SmPolicyDecision
sessRules:
SessRule-{dnn}:
sessRuleId: "SessRule-{dnn}"
authSessAmbr: {uplink, downlink} <- del UDR o por defecto 1000 Kbps
authDefQos: {5qi: 9, arp: {...}} <- del UDR o 5QI=9 ARP-priority=8

pccRules:
PccRule-{dnn}-default:
pccRuleId: "PccRule-{dnn}-default"
precedence: 255
flowInfos: [permit out ip from any to {ueIp},
permit out ip from {ueIp} to any]
refQosData: ["QosData-{dnn}"]
refTcData: ["TcData-{dnn}"]

qosDecs:
QosData-{dnn}:
5qi: 9
arp: {priorityLevel: 8, preemptCap: NOT_PREEMPT, preemptVuln: PREEMPTABLE}
maxbrUl / maxbrDl: valores de AMBR de sesión

traffContDecs:
TcData-{dnn}:
flowStatus: ENABLED

suppFeat: reflejado de la solicitud (ver PCF-M6)

Métricas de Prometheus

Métricas de Política SM

MétricaTipoEtiquetasDescripción
omni_pcf.sm_policy.create.countcontadorsupi, dnn, resultOperaciones de creación de políticas SM
omni_pcf.sm_policy.delete.countcontadorsupi, dnnOperaciones de eliminación de políticas SM
omni_pcf.sm_policy_creates.totalcontadorresultTotal de creaciones de políticas SM
omni_pcf.active_sm_policies.countmedidor--Número de políticas SM activas

Métricas de Política AM

MétricaTipoEtiquetasDescripción
omni_pcf.am_policy.create.countcontadorsupi, resultOperaciones de creación de políticas AM
omni_pcf.am_policy.delete.countcontadorsupiOperaciones de eliminación de políticas AM
omni_pcf.am_policy_creates.totalcontadorresultTotal de creaciones de políticas AM
omni_pcf.active_am_policies.countmedidor--Número de políticas AM activas

Métricas de Reglas PCC

MétricaTipoEtiquetasDescripción
omni_pcf.pcc_rule_installs.totalcontador--Total de instalaciones de reglas PCC

Métricas NRF

MétricaTipoEtiquetasDescripción
omni_pcf.nrf.registration.statusmedidornf_typeEstado de registro del NRF (1=registrado, 0=no)

Métricas de BEAM VM

MétricaTipoDescripción
beam.memory.totalmedidorMemoria total de BEAM en bytes
beam.memory.processesmedidorMemoria utilizada por procesos Erlang
beam.memory.processes_usedmedidorMemoria realmente utilizada por procesos
beam.memory.systemmedidorMemoria del sistema
beam.memory.atommedidorMemoria total de átomos
beam.memory.atom_usedmedidorMemoria de átomos utilizada
beam.memory.binarymedidorMemoria binaria
beam.memory.codemedidorMemoria de código
beam.memory.etsmedidorMemoria de tabla ETS
beam.processes.countmedidorNúmero de procesos Erlang
beam.ports.countmedidorNúmero de puertos Erlang
beam.atom.countmedidorNúmero de átomos
beam.vm.uptimemedidorTiempo de actividad de la VM en segundos

Limitaciones Conocidas

IDÁreaDescripción
PCF-M1Actualización de Política AMNo hay un punto final POST /npcf-am-policy-control/v1/policies/{polAssoId}/update. El AMF no puede solicitar actualizaciones de políticas para una asociación de política AM existente. Solo se admiten crear y eliminar.
PCF-M2Notificación de Política AMEl PCF no envía notificaciones de actualización de políticas a la URI de callback del AMF. Los cambios de políticas del lado del AMF (por ejemplo, modificación de UE-AMBR) nunca son enviados por el PCF.
PCF-M3Procesamiento de Informes de ReglasLas entradas de RuleReport dentro de SmPolicyUpdateContextData no se inspeccionan ni procesan. El PCF no puede reaccionar a fallos en la aplicación de reglas o cambios reportados por el SMF.
PCF-M4Actualizaciones Basadas en DisparadoresLos valores de PolicyControlRequestTrigger no se evalúan. El PCF no detecta ni responde a eventos como cambio de PLMN, cambio de RAT o cambio de tipo de acceso que normalmente activarían una actualización de política.
PCF-M5Reglas PCC DinámicasSolo se genera una única regla PCC por defecto que permite todo por sesión. No se aplican reglas PCC específicas de flujo de datos de servicio, reglas de detección de aplicaciones, ni políticas específicas de suscriptores del UDR.
PCF-M6Negociación de CaracterísticassuppFeat en las respuestas de políticas SM y AM se establece en el valor reflejado de la solicitud en lugar de calcularse como un AND a nivel de bits de las características soportadas por el PCF y las características solicitadas por el consumidor (TS 29.512 Sección 6.1).
PCF-M7Notificación de Política SMEl PCF no invoca la notificationUri del SMF para enviar decisiones o actualizaciones de políticas. Todas las actualizaciones de políticas SM iniciadas por el PCF (por ejemplo, en respuesta a solicitudes de funciones de aplicación) están ausentes.
PCF-L1Flujos GBRNo se admiten flujos de QoS de Tasa de Bits Garantizada (GBR). Las reglas QER y PCC solo expresan restricciones basadas en MBR.
PCF-L3Suscripción a Políticas UDREl PCF consulta al UDR una vez en la creación de la asociación de políticas. No hay suscripción a notificaciones de cambios de datos del UDR (Nudr_DataRepository_Subscribe), por lo que los cambios en los datos de políticas de suscriptores en el UDR no se reflejan en las asociaciones de políticas activas.
CROSS-2Desajuste de Puntos Finales UDREl PCF consulta /nudr-dr/v1/policy-data/ues/{ueId}/am-data y .../sm-data en el UDR. Estos puntos finales no son expuestos por OmniUDM en la versión actual. Las consultas al UDR devolverán 404 y el PCF volverá silenciosamente a la política por defecto.

Solución de Problemas

Asociación de Política SM Devuelve 400 ERROR_INITIAL_PARAMETERS

El SmPolicyContextData del SMF falta un campo obligatorio. El PCF requiere: supi, pduSessionId, pduSessionType, dnn, notificationUri, sliceInfo, y al menos uno de ipv4Address o ipv6AddressPrefix. Verifique que el SMF esté enviando la dirección IP de UE en la llamada create_sm_policy — el SMF llena ipv4Address desde el campo ue_ipv4 del contexto, que se establece por el controlador PFCP después del establecimiento de la sesión. Si el PFCP falla antes de la asignación de IP, el campo estará ausente.

Asociación de Política SM Devuelve 403 POLICY_CONTEXT_DENIED

Devuelto solo cuando se encuentra una denegación específica en la validación de políticas (no activada actualmente por la lógica de política por defecto). Si se observa inesperadamente, verifique el registro del PCF para entradas [SM Policy] Created association ... failed.

Consultas al UDR Siempre Fallan

Ver limitación CROSS-2. OmniUDM no expone el árbol de recursos /policy-data/. El PCF registra una advertencia [UDR Client] SM policy query failed for {supi} y procede con la política por defecto. Esto es esperado en la implementación actual. No se necesita ninguna acción correctiva a menos que se implemente un UDR que exponga recursos de datos de políticas TS 29.519.

La Decisión de Política Contiene AMBR por Defecto en Lugar de Valores Suscritos

Esto ocurre cuando la consulta al UDR falla (CROSS-2) o el UDR devuelve un cuerpo vacío. El AMBR de sesión por defecto aplicado es 1000 Kbps en subida y bajada. Para anular, asegúrese de que el UDR devuelva sessionAmbr en la respuesta de datos de política SM, o configure los datos del suscriptor en un UDR que implemente el recurso de datos de políticas TS 29.519.

Desajuste en la Negociación de Características con SMF

Debido a PCF-M6, el suppFeat en la respuesta de política SM refleja el valor de la solicitud del SMF en lugar de realizar un AND a nivel de bits adecuado. Si el SMF o AMF depende de que se enmascaren bits de características específicos, puede resultar en un comportamiento inesperado. Como solución alternativa, configure el SMF para enviar solo las características que realmente necesita en suppFeat.

Asociaciones de Política AM Se Acumulan Sin Límite

Las asociaciones de políticas AM se crean en el registro de UE y se eliminan en la desregistración. Si el AMF no envía el DELETE al desregistrarse (por ejemplo, debido a un reinicio del AMF), las asociaciones persistirán indefinidamente. No hay un mecanismo de expiración. Monitoree el punto final /statistics para contar asociaciones. Para limpiar manualmente asociaciones obsoletas, reinicie OmniPCF (todo el estado está en proceso y no es persistente).

Correlación de Registros

Las líneas de registro de políticas SM están precedidas por [SM Policy] e incluyen el ID de asociación y SUPI. Las líneas de registro de políticas AM están precedidas por [AM Policy]. Las llamadas del cliente UDR están precedidas por [UDR Client]. Todas las entradas incluyen el SUPI, lo que permite el seguimiento por suscriptor a través del registro del PCF.