OmniPCF
OmniPCF implementa a Função de Controle de Política (PCF) do Core 5G da Omnitouch. É o ponto de decisão de política da rede: informa ao SMF como cada sessão PDU deve ser tratada (regras PCC, session-AMBR, QoS por fluxo) e informa ao AMF a política de acesso e mobilidade para cada UE registrada. Também expõe o serviço de autorização de política voltado para a Função de Aplicação que transforma uma chamada IMS/VoNR em um fluxo dedicado de taxa de bits garantida.
OmniPCF serve três serviços SBI: Npcf_SMPolicyControl (TS 29.512), Npcf_AMPolicyControl (TS 29.507), e Npcf_PolicyAuthorization (TS 29.514). Ele busca dados de política por assinante do UDR (Nudr_DataRepository, TS 29.519), registra a associação de endereço UE para PCF no BSF (Nbsf_Management, TS 29.521) e registra/bate o coração com o NRF. As associações de política são um estado em tempo de execução mantido na memória; o UDR é a fonte autoritativa de dados de política de assinante, e as associações são restabelecidas pelo SMF e AMF à medida que sessões e registros são configurados.
Documentação
- Guia de Operações: Conceitos principais, referências 3GPP, endpoints SBI e os principais procedimentos de política com diagramas de sequência.
- Referência de Configuração: Referência completa de configuração em tempo de execução, padrões de política compilados, API de Gerenciamento/OAM e registro.
- Métricas & Monitoramento: Referência de métricas Prometheus e exemplos de consultas PromQL.
- Solução de Problemas: Problemas comuns e resoluções.
Visão Geral da Arquitetura
Visão Geral dos Recursos
- Ciclo de vida completo do
Npcf_SMPolicyControl: Criação, leitura, atualização e exclusão de associação de política SM, retornando umaSmPolicyDecision(regras de sessão, regras PCC, decisões de QoS, controle de tráfego, gatilhos de controle de política) conforme TS 29.512. - Ciclo de vida completo do
Npcf_AMPolicyControl: Criação, leitura, atualização e exclusão de associação de política AM, retornando o UE-AMBR autorizado e gatilhos de política conforme TS 29.507. Npcf_PolicyAuthorizationpara AF/IMS: Contextos de Sessão de Aplicação, sub-recurso de assinatura de eventos e restauração do P-CSCF; componentes de mídia AF (AUDIO/VIDEO) são traduzidos em regras PCC GBR dedicadas e enviadas ao SMF proprietário para VoNR.- Política orientada por UDR: dados de política SM/AM por assinante são buscados do UDR (Nudr-DR v2); regras de cobrança de portadora dedicada estática provisionadas no UDR tornam-se fluxos QoS 5G dedicados. Retorna à política padrão segura quando o UDR não está disponível.
- Registro de associação BSF: a associação de endereço UE para PCF é registrada no BSF para que um AF possa descobrir este PCF para QoS iniciada por AF.
- Assinaturas de mudança de dados de política: o PCF se inscreve em notificações de mudança de dados de política do UDR e reage a mudanças para associações afetadas.
- Negociação de recursos suportados:
suppFeaté negociado por AND bit a bit contra o bitmap suportado de cada serviço. - API de gerenciamento do operador e métricas Prometheus para observabilidade e controle em tempo de execução. Um Painel de Controle LiveView (Recursos, Configuração, Licença e Visualizações de Log) é servido via HTTPS na porta
7443, juntamente com a API de gerenciamento REST.
Início Rápido
OmniPCF lê sua configuração da chave de ambiente da aplicação :omnipcf. O mecanismo de implantação padrão é config/runtime.exs, que mapeia cada valor de uma variável de ambiente do OS com um padrão embutido.
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"))
A referência completa de parâmetros, padrões de política compilados, a API de Gerenciamento/OAM e notas de registro estão na Referência de Configuração.