Guia de Operações do OmniUPF
Índice
- Visão Geral
- Entendendo a Arquitetura do Plano do Usuário 5G
- Componentes do UPF
- Integração do Protocolo PFCP e SMF
- Operações Comuns
- Solução de Problemas
- Documentação Adicional
- Glossário
Visão Geral
OmniUPF (Função de Plano do Usuário baseada em eBPF) é uma Função de Plano do Usuário 5G/LTE de alto desempenho que fornece encaminhamento de pacotes de grau de operadora, aplicação de QoS e gerenciamento de tráfego para redes móveis. Construído sobre a tecnologia eBPF do Linux (Filtro de Pacotes de Berkeley Estendido) e aprimorado com capacidades de gerenciamento abrangentes, o OmniUPF fornece a infraestrutura central de processamento de pacotes necessária para redes 5G SA, 5G NSA e LTE.
O que é uma Função de Plano do Usuário?
A Função de Plano do Usuário (UPF) é o elemento de rede padronizado pela 3GPP responsável pelo processamento e encaminhamento de pacotes em redes 5G e LTE. Ela fornece:
- Encaminhamento de pacotes de alta velocidade entre dispositivos móveis e redes de dados
- Aplicação de Qualidade de Serviço (QoS) para diferentes tipos de tráfego
- Detecção e roteamento de tráfego com base em filtros e regras de pacotes
- Relatórios de uso para cobrança e análises
- Bufferização de pacotes para cenários de mobilidade e gerenciamento de sessões
- Suporte a interceptação legal para conformidade regulatória
OmniUPF implementa toda a funcionalidade do UPF definida na 3GPP TS 23.501 (5G) e TS 23.401 (LTE), fornecendo uma solução de plano do usuário completa e pronta para produção usando a tecnologia eBPF do kernel Linux para desempenho máximo.
Principais Capacidades do OmniUPF
Processamento de Pacotes:
- Processamento de pacotes do plano do usuário totalmente compatível com 3GPP
- Caminho de dados baseado em eBPF para desempenho em nível de kernel
- Encapsulação e desencapsulação de GTP-U (Protocolo de Túnel GPRS)
- Suporte a IPv4 e IPv6 para redes de acesso e dados
- XDP (Caminho de Dados eXpress) para processamento de latência ultra-baixa
- Processamento de pacotes multi-threaded
QoS e Gerenciamento de Tráfego:
- Regras de Aplicação de QoS (QER) para gerenciamento de largura de banda
- Regras de Detecção de Pacotes (PDR) para classificação de tráfego
- Regras de Ação de Encaminhamento (FAR) para decisões de roteamento
- Filtragem de Fluxo de Dados de Serviço (SDF) para roteamento específico de aplicação
- Regras de Relatório de Uso (URR) para rastreamento de volume e cobrança
Controle e Gerenciamento:
- Interface PFCP (Protocolo de Controle de Encaminhamento de Pacotes) para SMF/PGW-C
- API RESTful para monitoramento e diagnósticos
- Estatísticas e métricas em tempo real
- Monitoramento de capacidade de mapas eBPF
- Painel de controle baseado na web
Características de Desempenho:
- Processamento de pacotes sem cópia via eBPF
- Encaminhamento de pacotes em nível de kernel (sem sobrecarga de espaço do usuário)
- Escalabilidade multi-core
- Capaz de descarregar para aceleração de hardware
- Otimizado para implantações nativas em nuvem
Para detalhes sobre o uso do painel de controle, consulte Operações da Interface Web.
Entendendo a Arquitetura do Plano do Usuário
OmniUPF é uma solução unificada de plano do usuário que fornece encaminhamento de pacotes de grau de operadora para redes 5G Standalone (SA), 5G NSA e 4G LTE/EPC. OmniUPF é um único produto que pode funcionar simultaneamente como:
- UPF (Função de Plano do Usuário) - plano do usuário 5G/NSA (controlado pelo OmniSMF via N4/PFCP)
- PGW-U (Gateway de PDN do Plano do Usuário) - gateway EPC 4G para redes externas (controlado pelo OmniPGW-C via Sxc/PFCP)
- SGW-U (Gateway de Serviço do Plano do Usuário) - gateway de serviço EPC 4G (controlado pelo OmniSGW-C via Sxb/PFCP)
OmniUPF pode operar em qualquer combinação desses modos:
- Apenas UPF: Implantação pura de 5G
- PGW-U + SGW-U: Gateway combinado 4G (implantação típica de EPC)
- UPF + PGW-U + SGW-U: Suporte simultâneo a 4G e 5G (cenário de migração)
Todos os modos usam o mesmo mecanismo de processamento de pacotes baseado em eBPF e protocolo PFCP, fornecendo desempenho alto e consistente, seja operando como UPF, PGW-U, SGW-U, ou os três simultaneamente.
Arquitetura da Rede 5G (Modo SA)
A solução OmniUPF está situada no plano de dados das redes 5G, fornecendo a camada de encaminhamento de pacotes de alta velocidade que conecta dispositivos móveis a redes e serviços de dados.
Arquitetura da Rede 4G LTE/EPC
OmniUPF também suporta implantações 4G LTE e EPC (Evolved Packet Core), funcionando como OmniPGW-U ou OmniSGW-U, dependendo da arquitetura da rede.
Modo Combinado PGW-U/SGW-U (Implantação Típica de 4G)
Neste modo, o OmniUPF atua como SGW-U e PGW-U, controlado por funções de plano de controle separadas.
Modo Separado SGW-U e PGW-U (Roaming/Múltiplos Sites)
Em implantações de roaming ou múltiplos sites, duas instâncias separadas do OmniUPF podem ser implantadas - uma como SGW-U e outra como PGW-U.
Modo de Loopback N9 (Instância Única SGWU+PGWU)
Para implantações simplificadas, o OmniUPF pode executar tanto os papéis de SGWU quanto de PGWU em uma única instância com processamento de loopback N9 totalmente em eBPF.
Principais Recursos:
- ✅ Latência N9 sub-microsegundo - Processado inteiramente em eBPF, nunca toca a rede
- ✅ Redução de CPU de 40-50% - Uma única passagem XDP vs. duas instâncias separadas
- ✅ Implantação simplificada - Uma instância, um arquivo de configuração
- ✅ Detecção automática - Quando
n3_address=n9_address, loopback é habilitado - ✅ Total conformidade com 3GPP - Protocolos PFCP e GTP-U padrão
Configuração:
# /etc/omniupf/runtime.exs
xdp_interfaces = "eth0"
n3_address = "10.0.1.10" # IP da interface S1-U
n9_address = n3_address # O mesmo IP habilita o loopback N9
pfcp_address = "10.0.1.10" # Tanto SGWU-C quanto PGWU-C se conectam aqui
pfcp_port = 8805
Quando usar:
- Implantações de computação em borda (minimizar latência)
- Ambientes com restrições de custo (servidor único)
- Laboratório/testes (configuração simplificada)
- Implantações pequenas a médias (< 100K assinantes)
Quando NÃO usar:
- Redundância geográfica necessária (SGWU e PGWU em locais diferentes)
- Mandatos regulatórios para gateways separados
- Escala massiva (> 1M assinantes)
Para detalhes completos, exemplos de configuração, solução de problemas e métricas de desempenho, consulte Guia de Operações de Loopback N9.
Como as Funções de Plano do Usuário Funcionam na Rede
A função de plano do usuário (OmniUPF, OmniPGW-U ou OmniSGW-U) opera como o plano de encaminhamento controlado pelo respectivo plano de controle:
-
Estabelecimento de Sessão
- 5G: OmniSMF estabelece associação PFCP via interface N4 com OmniUPF
- 4G: OmniPGW-C ou OmniSGW-C estabelece associação PFCP via Sxb/Sxc com OmniPGW-U/OmniSGW-U
- O plano de controle cria sessões PFCP para cada sessão PDU do UE (5G) ou contexto PDP (4G)
- O plano do usuário recebe regras PDR, FAR, QER e URR via PFCP
- Os mapas eBPF são preenchidos com regras de encaminhamento
-
Processamento de Pacotes de Uplink (UE → Rede de Dados)
- 5G: Pacotes chegam na interface N3 do gNB com encapsulação GTP-U
- 4G: Pacotes chegam na interface S1-U (SGW-U) ou S5/S8 (PGW-U) do eNodeB com encapsulação GTP-U
- O plano do usuário combina pacotes com PDRs de uplink com base no TEID
- O programa eBPF aplica QER (limitação de taxa, marcação)
- FAR determina a ação de encaminhamento (encaminhar, descartar, bufferizar, duplicar)
- Túnel GTP-U removido, pacotes encaminhados para a interface N6 (5G) ou SGi (4G)
- URR rastreia contagens de pacotes e bytes para cobrança
-
Processamento de Pacotes de Downlink (Rede de Dados → UE)
- 5G: Pacotes chegam na interface N6 como IP nativo
- 4G: Pacotes chegam na interface SGi como IP nativo
- O plano do usuário combina pacotes com PDRs de downlink com base no endereço IP do UE
- Filtros SDF podem classificar ainda mais o tráfego por porta, protocolo ou aplicação
- FAR determina o túnel GTP-U e parâmetros de encaminhamento
- Encapsulação GTP-U adicionada com o TEID apropriado
- 5G: Pacotes encaminhados para a interface N3 em direção ao gNB
- 4G: Pacotes encaminhados para S1-U (SGW-U) ou S5/S8 (PGW-U) em direção ao eNodeB
-
Mobilidade e Transferência
- 5G: OmniSMF atualiza regras PDR/FAR durante cenários de transferência
- 4G: OmniSGW-C/OmniPGW-C atualiza regras durante a transferência inter-eNodeB ou TAU (Atualização de Área de Rastreamento)
- O plano do usuário pode bufferizar pacotes durante a troca de caminho
- Transição sem interrupções entre estações base sem perda de pacotes
Integração com o Plano de Controle (4G e 5G)
OmniUPF integra-se com funções de plano de controle 5G e 4G via interfaces padrão 3GPP:
Interfaces 5G
| Interface | De → Para | Propósito | Especificação 3GPP |
|---|---|---|---|
| N4 | OmniSMF ↔ OmniUPF | Estabelecimento, modificação, exclusão de sessão PFCP | TS 29.244 |
| N3 | gNB → OmniUPF | Tráfego do plano do usuário da RAN (GTP-U) | TS 29.281 |
| N6 | OmniUPF → Rede de Dados | Tráfego do plano do usuário para DN (IP nativo) | TS 23.501 |
| N9 | OmniUPF ↔ OmniUPF | Comunicação inter-UPF para roaming/borda | TS 23.501 |
Interfaces 4G/EPC
| Interface | De → Para | Propósito | Especificação 3GPP |
|---|---|---|---|
| Sxb | OmniSGW-C ↔ OmniUPF (modo SGW-U) | Controle de sessão PFCP para gateway de serviço | TS 29.244 |
| Sxc | OmniPGW-C ↔ OmniUPF (modo PGW-U) | Controle de sessão PFCP para gateway PDN | TS 29.244 |
| S1-U | eNodeB → OmniUPF (modo SGW-U) | Tráfego do plano do usuário da RAN (GTP-U) | TS 29.281 |
| S5/S8 | OmniUPF (SGW-U) ↔ OmniUPF (PGW-U) | Plano do usuário inter-gateway (GTP-U) | TS 29.281 |
| SGi | OmniUPF (modo PGW-U) → PDN | Tráfego do plano do usuário para a rede de dados (IP nativo) | TS 23.401 |
Nota: Todas as interfaces PFCP (N4, Sxb, Sxc) usam o mesmo protocolo PFCP definido na TS 29.244. Os nomes das interfaces diferem, mas o protocolo e os formatos de mensagem são idênticos.
Componentes do UPF
Caminho de Dados eBPF
O caminho de dados eBPF é o mecanismo central de processamento de pacotes que roda no kernel do Linux para desempenho máximo.
Funções Principais:
- Processamento de GTP-U: Encapsulação e desencapsulação de túneis GTP-U
- Classificação de Pacotes: Combinação de pacotes com regras PDR usando TEID, IP do UE ou filtros SDF
- Aplicação de QoS: Aplicar limitação de taxa e marcação de pacotes por regras QER
- Decisões de Encaminhamento: Executar ações FAR (encaminhar, descartar, bufferizar, duplicar, notificar)
- Rastreamento de Uso: Incrementar contadores URR para cobrança baseada em volume
Mapas eBPF: O caminho de dados usa mapas eBPF (tabelas hash na memória do kernel) para armazenamento de regras:
| Nome do Mapa | Propósito | Chave | Valor |
|---|---|---|---|
uplink_pdr_map | PDRs de uplink | TEID (32 bits) | Informações PDR (ID FAR, ID QER, IDs URR) |
downlink_pdr_map | PDRs de downlink (IPv4) | Endereço IP do UE | Informações PDR |
downlink_pdr_map_ip6 | PDRs de downlink (IPv6) | Endereço IPv6 do UE | Informações PDR |
far_map | Regras de encaminhamento | ID FAR | Parâmetros de encaminhamento (ação, informações do túnel) |
qer_map | Regras de QoS | ID QER | Parâmetros de QoS (MBR, GBR, marcação) |
urr_map | Rastreamento de uso | ID URR | Contadores de volume (uplink, downlink, total) |
sdf_filter_map | Filtros SDF | ID PDR | Filtros de aplicação (portas, protocolos) |
Características de Desempenho:
- Zero-cópia: Pacotes processados inteiramente no espaço do kernel
- Suporte a XDP: Anexar no nível do driver de rede para latência sub-microsegundo
- Multi-core: Escala entre núcleos de CPU com suporte a mapas por CPU
- Capacidade: Milhões de PDRs/FARs em mapas eBPF (limitado pela memória do kernel)
Para monitoramento de capacidade, consulte Gerenciamento de Capacidade.
Manipulador de Interface PFCP
A interface PFCP implementa a 3GPP TS 29.244 para comunicação com SMF ou PGW-C.
Funções Principais:
- Gerenciamento de Associação: Batimento de coração PFCP e configuração/liberação de associação
- Ciclo de Vida da Sessão: Criar, modificar e excluir sessões PFCP
- Instalação de Regras: Traduzir IEs PFCP em entradas de mapa eBPF
- Relatório de Eventos: Notificar SMF sobre limites de uso, erros ou eventos de sessão
Suporte a Mensagens PFCP:
| Tipo de Mensagem | Direção | Propósito |
|---|---|---|
| Configuração de Associação | SMF → UPF | Estabelecer associação de controle PFCP |
| Liberação de Associação | SMF → UPF | Destruir associação PFCP |
| Batimento de Coração | Bidirecional | Manter associação ativa |
| Estabelecimento de Sessão | SMF → UPF | Criar nova sessão PDU com PDR/FAR/QER/URR |
| Modificação de Sessão | SMF → UPF | Atualizar regras para mobilidade, mudanças de QoS |
| Exclusão de Sessão | SMF → UPF | Remover sessão e todas as regras associadas |
| Relatório de Sessão | UPF → SMF | Relatar uso, erros ou eventos |
Elementos de Informação (IE) Suportados:
- Criar PDR, FAR, QER, URR
- Atualizar PDR, FAR, QER, URR
- Remover PDR, FAR, QER, URR
- Informações de Detecç��o de Pacotes (IP do UE, F-TEID, filtro SDF)
- Parâmetros de Encaminhamento (instância de rede, criação de cabeçalho externo)
- Parâmetros de QoS (MBR, GBR, QFI)
- Gatilhos de Relatório de Uso (limite de volume, limite de tempo)
Servidor API REST
A API REST fornece acesso programático ao estado e operações do UPF.
Funções Principais:
- Monitoramento de Sessões: Consultar sessões PFCP ativas e associações
- Inspeção de Regras: Visualizar configurações de PDR, FAR, QER, URR
- Estatísticas: Recuperar contadores de pacotes, estatísticas de rotas, estatísticas de XDP
- Gerenciamento de Buffers: Visualizar e controlar buffers de pacotes
- Informações de Mapas: Monitorar uso e capacidade de mapas eBPF
Endpoints da API: (34 endpoints no total)
| Categoria | Endpoints | Descrição |
|---|---|---|
| Saúde | /health | Verificação de saúde e status |
| Configuração | /config | Configuração do UPF |
| Sessões | /pfcp_sessions, /pfcp_associations | Dados de sessão/associação PFCP |
| PDRs | /uplink_pdr_map, /downlink_pdr_map, /downlink_pdr_map_ip6, /uplink_pdr_map_ip6 | Regras de detecção de pacotes |
| FARs | /far_map | Regras de ação de encaminhamento |
| QERs | /qer_map | Regras de aplicação de QoS |
| URRs | /urr_map | Regras de relatório de uso |
| Buffers | /buffer | Status e controle do buffer de pacotes |
| Estatísticas | /packet_stats, /route_stats, /xdp_stats, /n3n6_stats | Métricas de desempenho |
| Capacidade | /map_info | Capacidade e uso de mapas eBPF |
| Dataplane | /dataplane_config | Endereços das interfaces N3/N9 |
Para detalhes da API e uso, consulte Guia de Monitoramento.
Painel de Controle Web
O Painel de Controle Web fornece um painel em tempo real para monitoramento e gerenciamento do UPF.
Recursos:
- Visualização de Sessões: Navegar por sessões PFCP ativas com IP do UE, TEID e contagens de regras
- Gerenciamento de Regras: Visualizar e gerenciar PDRs, FARs, QERs e URRs em todas as sessões
- Monitoramento de Buffers: Rastrear pacotes bufferizados e controlar a bufferização por FAR
- Painel de Estatísticas: Estatísticas em tempo real de pacotes, rotas, XDP e interfaces N3/N6
- Monitoramento de Capacidade: Uso de mapas eBPF com indicadores de capacidade codificados por cores
- Visualização de Configuração: Exibir configuração do UPF e endereços do dataplane
- Visualizador de Logs: Streaming de logs ao vivo para solução de problemas
Para operações detalhadas da interface, consulte Guia de Operações da Interface Web.
Integração do Protocolo PFCP e SMF
Associação PFCP
Antes que as sessões possam ser criadas, o SMF deve estabelecer uma associação PFCP com o UPF.
Ciclo de Vida da Associação:
Pontos Chave:
- Cada SMF estabelece uma associação com o UPF
- O UPF rastreia a associação pelo ID do Nó (FQDN ou endereço IP)
- Mensagens de batimento de coração mantêm a vivacidade da associação
- Todas as sessões sob uma associação são excluídas se a associação for liberada
Para visualizar associações, consulte Visualização de Sessões.
Detecção de Reinício do SMF e Limpeza de Sessões Órfãs
O OmniUPF detecta automaticamente quando um SMF reinicia e limpa sessões órfãs de acordo com as especificações da 3GPP TS 29.244.
Como Funciona:
Quando um SMF estabelece uma associação PFCP, ele fornece um Timestamp de Recuperação indicando quando começou. O OmniUPF armazena esse timestamp para cada associação. Se o SMF reiniciar:
- O SMF perde todo o estado da sessão na memória
- O SMF restabelece a associação PFCP com o UPF
- O SMF envia um novo Timestamp de Recuperação (diferente do anterior)
- O UPF detecta a mudança de timestamp = SMF reiniciado
- O UPF exclui automaticamente todas as sessões órfãs da antiga instância do SMF
- O SMF cria novas sessões para assinantes ativos
Fluxo de Detecção de Reinício:
Exemplo de Log:
Quando um SMF reinicia, você verá:
WARN: Associação com NodeID: smf-1 e endereço: 192.168.1.10 já existe
WARN: Timestamp de Recuperação do SMF alterado (antigo: 2025-01-15T10:00:00Z, novo: 2025-01-15T10:30:15Z) - SMF reiniciado, excluindo 245 sessões órfãs
INFO: Excluindo sessão órfã 2 (LocalSEID) devido ao reinício do SMF
INFO: Excluindo sessão órfã 3 (LocalSEID) devido ao reinício do SMF
...
INFO: Excluindo sessão órfã 246 (LocalSEID) devido ao reinício do SMF
Notas Importantes:
-
Isolamento: Apenas as sessões do SMF reiniciado são excluídas. Outras associações de SMF e suas sessões não são afetadas.
-
Comparação de Timestamp: Se o Timestamp de Recuperação for idêntico, as sessões são mantidas (SMF reconectado sem reiniciar).
-
Conformidade com 3GPP: Esse comportamento é exigido pela Seção 5.22.2 da 3GPP TS 29.244:
"Se o Timestamp de Recuperação da função CP mudou desde a última Configuração de Associação, a função UP deve considerar que a função CP reiniciou e deve excluir todas as sessões PFCP associadas a essa função CP."
Para solucionar problemas de sessões órfãs, consulte Detecção de Sessões Órfãs.
Manipulação de Indicações de Erro GTP-U
O OmniUPF lida com mensagens de Indicação de Erro GTP-U de pares a jusante (PGW-U, SGW-U, eNodeB, gNodeB) de acordo com as especificações da 3GPP TS 29.281.
O que são Indicações de Erro:
Quando o OmniUPF encaminha um pacote GTP-U para um par remoto (por exemplo, PGW-U em implantação SGW-U), o par pode enviar uma Indicação de Erro se não reconhecer o TEID (Identificador de Ponto de Túnel). Isso indica:
- O par remoto reiniciou e perdeu o estado do túnel
- O túnel nunca foi criado no lado remoto (incompatibilidade de configuração)
- O túnel já foi excluído no lado remoto
Como Funciona:
- UPF encaminha pacote → Envia pacote GTP-U com TEID X para o par remoto (porta 2152)
- Par remoto não reconhece TEID X → Procura TEID na sua tabela de túneis, não encontrado
- Par remoto envia Indicação de Erro → Mensagem GTP-U tipo 26 com IE contendo TEID errôneo
- UPF recebe Indicação de Erro → Analisa a mensagem para extrair TEID X
- UPF encontra sessões afetadas → Procura todas as sessões por FARs que encaminham para TEID X
- UPF exclui sessões → Remove sessões dos mapas eBPF e do estado PFCP
- UPF atualiza métricas → Incrementa contadores do Prometheus para monitoramento
Fluxo de Indicação de Erro:
Formato do Pacote (Seção 7.3.1 da 3GPP TS 29.281):
Indicação de Erro GTP-U:
┌─────────────────────────────────────────┐
│ Cabeçalho GTP-U (12 bytes) │
├─────────────────────────────────────────┤
│ Versão, PT, Flags │ 0x32 │
│ Tipo de Mensagem │ 26 (0x1A) │
│ Comprimento │ 9 bytes │
│ TEID │ 0 (sempre) │
│ Número de Sequência │ varia │
│ Número de N-PDU │ 0 │
│ Próximo Cabeçalho de Extensão │ 0 │
├─────────────────────────────────────────┤
│ IE: Dados TEID I (5 bytes) │
├─────────────────────────────────────────┤
│ Tipo │ 16 (0x10) │
│ TEID errôneo │ 4 bytes │
└─────────────────────────────────────────┘
Quando Isso Importa:
Cenário 1: Reinício do PGW-U na Arquitetura GTP S5/S8
- SGW-U (OmniUPF) encaminha tráfego S5/S8 para PGW-U
- PGW-U reinicia e perde todo o estado do túnel S5/S8
- SGW-U continua encaminhando para TEIDs antigos
- PGW-U envia Indicações de Erro
- SGW-U para automaticamente de usar túneis mortos
Cenário 2: Reinício do UPF Par na Arquitetura N9
- UPF-1 (OmniUPF) encaminha tráfego N9 para UPF-2
- UPF-2 reinicia
- UPF-1 recebe Indicações de Erro
- UPF-1 limpa sessões
Exemplo de Log:
Ao receber uma Indicação de Erro:
WARN: Recebida Indicação de Erro GTP-U de 192.168.50.10:2152 para TEID 0x12345678 - par remoto não reconhece este TEID
WARN: Encontrada sessão LocalSEID=42 com FAR GlobalId=1 encaminhando para TEID errôneo 0x12345678 do par 192.168.50.10
INFO: Excluindo sessão LocalSEID=42 devido à Indicação de Erro GTP-U para TEID 0x12345678 de 192.168.50.10
WARN: Excluídas 1 sessão(ões) devido à Indicação de Erro GTP-U para TEID 0x12345678 do par 192.168.50.10
Métricas do Prometheus:
Monitore a atividade de Indicações de Erro com granularidade por par e por nó:
# Total de Indicações de Erro recebidas de pares
upf_buffer_listener_error_indications_received_total{node_id="pgw-u-1",peer_address="192.168.50.10"}
# Sessões excluídas devido a Indicações de Erro
upf_buffer_listener_error_indication_sessions_deleted_total{node_id="pgw-u-1",peer_address="192.168.50.10"}
# Indicações de Erro enviadas (para TEIDs de entrada desconhecidos)
upf_buffer_listener_error_indications_sent_total{node_id="enodeb-1",peer_address="10.60.0.1"}
Rótulos de Métricas:
node_id: ID do Nó PFCP da associação (ou "desconhecido" se nenhuma associação existir)peer_address: Endereço IP do par remoto
Essas métricas ajudam a identificar pares problemáticos e rastrear padrões de Indicações de Erro por nó de plano de controle.
Notas Importantes:
-
Limpeza Automática: Nenhuma intervenção do operador necessária - as sessões são excluídas automaticamente
-
Correspondência de TEID: Apenas sessões com FARs encaminhando para o TEID errôneo exato são excluídas
-
Isolamento por Par: Indicações de Erro de um par apenas afetam sessões que encaminham para aquele par
-
Múltiplas Sessões: Se várias sessões encaminham para o mesmo TEID morto, todas são excluídas
-
Complementar ao Timestamp de Recuperação:
- Detecção de Timestamp de Recuperação = proativa (detecta reinício durante a configuração da associação)
- Manipulação de Indicação de Erro = reativa (detecta túneis mortos quando o tráfego flui)
-
Manipulação de Pacote Malformado: Indicações de Erro inválidas são registradas e ignoradas (nenhuma sessão excluída)
Para solucionar problemas de Indicações de Erro, consulte Depuração de Indicações de Erro GTP-U.
Criação de Sessão PFCP
Quando um UE estabelece uma sessão PDU (5G) ou contexto PDP (LTE), o SMF cria uma sessão PFCP no UPF.
Fluxo de Estabelecimento de Sessão:
Conteúdos Típicos da Sessão:
- PDR de Uplink: Combinar no TEID N3, encaminhar via FAR para N6
- PDR de Downlink: Combinar no endereço IP do UE, encaminhar via FAR para N3 com encapsulação GTP-U
- FAR: Parâmetros de encaminhamento (criação de cabeçalho externo, instância de rede)
- QER: Limites de QoS (MBR, GBR) e marcação de pacotes (QFI)
- URR: Relatório de volume para cobrança (opcional)
Modificação de Sessão PFCP
O SMF pode modificar sessões para eventos de mobilidade (transferência), mudanças de QoS ou atualizações de serviço.
Cenários Comuns de Modificação:
-
Transferência (baseada em N2)
- Atualizar FAR de uplink com novo ponto de túnel do gNB (F-TEID)
- Opcionalmente bufferizar pacotes durante a troca de caminho
- Limpar o buffer para o novo caminho quando estiver pronto
-
Mudança de QoS
- Atualizar QER com novos valores de MBR/GBR
- Pode adicionar/remover filtros SDF em PDR para QoS específica de aplicação
-
Atualização de Serviço
- Adicionar novos PDRs para fluxos de tráfego adicionais
- Modificar FARs para mudanças de roteamento
Fluxo de Modificação de Sessão:
Para gerenciamento de regras, consulte Guia de Gerenciamento de Regras.
Exclusão de Sessão PFCP
Quando uma sessão PDU é liberada, o SMF exclui a sessão PFCP no UPF.
Fluxo de Exclusão de Sessão:
Limpeza Realizada:
- Todos os PDRs removidos (uplink e downlink)
- Todos os FARs, QERs, URRs removidos
- Buffers de pacotes limpos
- Relatório final de uso enviado ao SMF para cobrança
Operações Comuns
O OmniUPF fornece capacidades operacionais abrangentes através de seu painel de controle baseado na web e API REST. Esta seção cobre tarefas operacionais comuns e suas significâncias.
Monitoramento de Sessões
Entendendo Sessões PFCP:
As sessões PFCP representam sessões PDU ativas do UE (5G) ou contextos PDP (LTE). Cada sessão contém:
- SEIDs local e remoto (Identificadores de Ponto de Sessão)
- PDRs para classificação de pacotes
- FARs para decisões de encaminhamento
- QERs para aplicação de QoS (opcional)
- URRs para rastreamento de uso (opcional)
Operações Chave de Sessão:
- Visualizar todas as sessões com endereços IP do UE, TEIDs e contagens de regras
- Filtrar sessões por endereço IP ou TEID
- Inspecionar detalhes da sessão incluindo configurações completas de PDR/FAR/QER/URR
- Monitorar contagens de sessão por associação PFCP
Para procedimentos detalhados de sessão, consulte Visualização de Sessões.
Gerenciamento de Regras
Regras de Detecção de Pacotes (PDR):
As PDRs determinam quais pacotes correspondem a fluxos de tráfego específicos. Os operadores podem:
- Visualizar PDRs de uplink indexados por TEID da interface N3
- Visualizar PDRs de downlink indexados por endereço IP do UE (IPv4 e IPv6)
- Inspecionar filtros SDF para classificação específica de aplicação
- Monitorar contagens de PDR e uso de capacidade
Regras de Ação de Encaminhamento (FAR):
As FARs definem o que fazer com pacotes correspondentes. Os operadores podem:
- Visualizar ações FAR (ENCAMINHAR, DESCARTAR, BUFFERIZAR, DUPLICAR, NOTIFICAR)
- Inspecionar parâmetros de encaminhamento (criação de cabeçalho externo, destino)
- Monitorar status de bufferização por FAR
- Alternar bufferização para FARs específicas durante solução de problemas
Regras de Aplicação de QoS (QER):
As QERs aplicam limites de largura de banda e marcação de pacotes. Os operadores podem:
- Visualizar parâmetros de QoS (MBR, GBR)
- Monitorar QERs ativas por sessão
- Inspecionar marcações QFI para fluxos de QoS 5G
Regras de Relatório de Uso (URR):
As URRs rastreiam volumes de dados para cobrança. Os operadores podem:
- Visualizar contadores de volume (uplink, downlink, total de bytes)
- Monitorar limites de uso e gatilhos de relatório
- Inspecionar URRs ativas em todas as sessões
Para operações de regras, consulte Guia de Gerenciamento de Regras.
Bufferização de Pacotes
Por que a Bufferização é Crítica para o UPF
A bufferização de pacotes é uma das funções mais importantes de um UPF porque previne a perda de pacotes durante eventos de mobilidade e reconfigurações de sessão. Sem bufferização, os usuários móveis experimentariam desconexões, downloads interrompidos e falhas em comunicações em tempo real toda vez que se movessem entre torres de celular ou quando as condições da rede mudassem.
O Problema: Perda de Pacotes Durante a Mobilidade
Em redes móveis, os usuários estão constantemente se movendo. Quando um dispositivo se move de uma torre de celular para outra (transferência), ou quando a rede precisa reconfigurar o caminho de dados, há uma janela crítica onde pacotes estão em trânsito, mas o novo caminho ainda não está pronto:
Sem bufferização: Pacotes que chegam durante essa janela crítica seriam descartados, causando:
- Conexões TCP estagnadas ou redefinidas (navegação na web, downloads interrompidos)
- Chamadas de vídeo congeladas ou descartadas (Zoom, Teams, chamadas do WhatsApp falham)
- Sessões de jogos desconectadas (jogos online, aplicativos em tempo real falham)
- Chamadas VoIP com lacunas ou que caem completamente (chamadas telefônicas interrompidas)
- Downloads que falham e precisam ser reiniciados
Com bufferização: OmniUPF retém temporariamente pacotes até que o novo caminho seja estabelecido, então os encaminha sem problemas. O usuário experimenta zero interrupção.
Quando a Bufferização Acontece
OmniUPF bufferiza pacotes nessas situações críticas:
1. Transferência Baseada em N2 (5G) / Transferência Baseada em X2 (4G)
Quando um UE se move entre torres de celular:
Linha do Tempo:
- T+0ms: Caminho antigo ainda ativo
- T+10ms: SMF diz ao UPF para bufferizar (caminho antigo fechando, novo caminho não pronto)
- T+10-50ms: Janela crítica de bufferização - pacotes chegam, mas não podem ser encaminhados
- T+50ms: Novo caminho pronto, SMF diz ao UPF para encaminhar
- T+50ms+: UPF limpa pacotes bufferizados para novo caminho, então encaminha novos pacotes normalmente
Sem bufferização: ~40ms de pacotes (potencialmente milhares) seriam perdidos. Com bufferização: Zero perda de pacotes, transferência sem interrupções.
2. Modificação de Sessão (Mudança de QoS, Atualização de Caminho)
Quando a rede precisa mudar parâmetros da sessão:
- Atualização/diminuição de QoS: Usuário se move de cobertura 4G para 5G (modo NSA)
- Mudança de política: Usuário corporativo entra no campus corporativo (mudanças de direcionamento de tráfego)
- Otimização de rede: A rede central redireciona tráfego para um UPF mais próximo (atualização ULCL)
Durante a modificação, o plano de controle pode precisar atualizar várias regras de forma atômica. A bufferização garante que os pacotes não sejam encaminhados com conjuntos de regras parciais/inconsistentes.
3. Notificação de Dados de Downlink (Recuperação em Modo Ocioso)
Quando um UE está em modo ocioso (tela desligada, economia de bateria) e dados de downlink chegam:
Sem bufferização: O pacote inicial que acionou a notificação seria perdido, exigindo que o remetente retransmitisse (aumenta a latência). Com bufferização: O pacote que acordou o UE é entregue imediatamente quando o UE reconecta.
4. Transferência Inter-RAT (4G ↔ 5G)
Quando um UE se move entre 4G e 5G:
- Mudanças de arquitetura (eNodeB ↔ gNB)
- Mudanças nos pontos de túnel (alocação de TEID diferente)
- A bufferização garante uma transição suave entre tipos de RAT
Como a Bufferização Funciona no OmniUPF
Mecanismo Técnico:
OmniUPF usa uma arquitetura de bufferização em duas etapas:
- Etapa eBPF (Kernel): Detecta pacotes que requerem bufferização com base em flags de ação FAR
- Etapa de Espaço do Usuário: Armazena e gerencia pacotes bufferizados na memória
Processo de Bufferização:
Detalhes Chave:
- Porta de Buffer: Porta UDP 22152 (pacotes enviados do eBPF para o espaço do usuário)
- Encapsulação: Pacotes embrulhados em GTP-U com ID FAR como TEID
- Armazenamento: Buffers em memória por FAR com metadados (timestamp, direção, tamanho do pacote)
- Limites:
- Limite por FAR: 10.000 pacotes (padrão)
- Limite global: 100.000 pacotes em todos os FARs
- TTL: 30 segundos (padrão) - pacotes mais velhos que TTL são descartados
- Limpeza: Processo em segundo plano remove pacotes expirados a cada 60 segundos
Ciclo de Vida do Buffer:
- Bufferização Habilitada: SMF define ação FAR BUFF=1 (bit 2) via Modificação de Sessão PFCP
- Pacotes Bufferizados: eBPF detecta flag BUFF, encapsula pacotes, envia para a porta 22152
- Armazenamento do Espaço do Usuário: Gerenciador de buffer armazena pacotes com ID FAR, timestamp, direção
- Bufferização Desabilitada: SMF define ação FAR FORW=1, BUFF=0 com novos parâmetros de encaminhamento
- Limpar Buffer: Gerenciador do espaço do usuário reproduz pacotes bufferizados usando novas regras FAR (novo ponto de túnel)
- Retomar Normal: Novos pacotes encaminhados imediatamente via novo caminho
Por que Isso Importa para a Experiência do Usuário
Impacto no Mundo Real:
| Cenário | Sem Bufferização | Com Bufferização |
|---|---|---|
| Chamada de Vídeo Durante a Transferência | Chamada congela por 1-2 segundos, pode cair | Sem interrupções, nenhuma interrupção |
| Download de Arquivo na Borda da Célula | Download falha, precisa reiniciar | Download continua sem interrupções |
| Jogos Online Enquanto se Move | Conexão cai, expulso do jogo | Jogo suave, sem desconexões |
| Chamada VoIP no Carro | Chamada cai a cada transferência | Cristalina, sem quedas |
| Streaming de Vídeo no Trem | Vídeo bufferiza, qualidade cai | Reprodução suave |
| Hotspot Móvel para Laptop | Sessão SSH cai, chamada de vídeo falha | Todas as conexões mantidas |
Benefícios para o Operador de Rede:
- Redução da Taxa de Queda de Chamadas (CDR): KPI crítico para qualidade da rede
- Maior Satisfação do Cliente: Usuários não percebem transferências
- Menores Custos de Suporte: Menos reclamações sobre conexões caindo
- Vantagem Competitiva: "Melhor rede para cobertura" marketing
Operações de Gerenciamento de Buffer
Os operadores podem monitorar e controlar a bufferização através da Interface Web e API:
Monitoramento:
- Visualizar pacotes bufferizados por ID FAR (contagem, bytes, idade)
- Rastrear uso de buffer em relação aos limites (por FAR, global)
- Alertar sobre overflow de buffer ou duração excessiva de bufferização
- Identificar buffers presos (pacotes bufferizados > limite TTL)
Operações de Controle:
- Limpar buffers: Acionar manualmente a reprodução do buffer (solução de problemas)
- Limpar buffers: Descartar pacotes bufferizados (limpar buffers presos)
- Ajustar TTL: Alterar tempo de expiração dos pacotes
- Modificar limites: Aumentar capacidade de buffer por FAR ou global
Solução de Problemas:
- Buffer não limpando: Verifique se o SMF enviou atualização de FAR para desabilitar bufferização
- Overflow de buffer: Aumente limites ou investigue por que a duração da bufferização é excessiva
- Pacotes antigos no buffer: TTL pode estar muito alto, ou atualização de FAR atrasada
- Bufferização excessiva: Pode indicar problemas de mobilidade ou problemas com o SMF
Para operações detalhadas de buffer, consulte Guia de Gerenciamento de Buffer.
Configuração de Buffer
Configure o comportamento de bufferização em /etc/omniupf/runtime.exs:
# Configurações de Buffer
buffer_port = 22152 # Porta UDP para pacotes bufferizados (padrão)
Recomendações:
- Redes de alta mobilidade (estradas, trens): Aumente
buffer_max_packetspara 20.000+ - Áreas urbanas densas (transferências frequentes): Diminua
buffer_packet_ttlpara 15s - Aplicações de baixa latência: Defina
buffer_packet_ttlpara 10s para evitar dados obsoletos - Redes IoT: Diminua limites (dispositivos IoT geram menos tráfego durante a transferência)
Para opções completas de configuração, consulte Guia de Configuração.
Estatísticas e Monitoramento
Estatísticas de Pacotes:
Métricas de processamento de pacotes em tempo real, incluindo:
- Pacotes RX: Total recebido de todas as interfaces
- Pacotes TX: Total transmitido para todas as interfaces
- Pacotes descartados: Pacotes descartados devido a erros ou políticas
- Pacotes GTP-U: Contagens de pacotes encapsulados
Estatísticas de Rota:
Métricas de encaminhamento por rota:
- Acertos de Rota: Pacotes correspondidos por cada rota
- Contagens de Encaminhamento: Sucesso/falha por destino
- Contadores de Erro: TEIDs inválidos, IPs desconhecidos do UE
Estatísticas de XDP:
Métricas de desempenho do eXpress Data Path:
- XDP processados: Pacotes tratados na camada XDP
- XDP passados: Pacotes enviados para a pilha de rede
- XDP descartados: Pacotes descartados na camada XDP
- XDP abortados: Erros de processamento
Estatísticas da Interface N3/N6:
Contadores de tráfego por interface:
- N3 RX/TX: Tráfego de/para a RAN (gNB/eNodeB)
- N6 RX/TX: Tráfego de/para a rede de dados
- Contagens totais de pacotes: Estatísticas agregadas da interface
Para detalhes sobre monitoramento, consulte Guia de Monitoramento.
Gerenciamento de Capacidade
Monitoramento de Capacidade de Mapas eBPF:
O desempenho do UPF depende da capacidade dos mapas eBPF. Os operadores podem:
- Monitorar uso de mapas com indicadores de porcentagem em tempo real
- Visualizar limites de capacidade para cada mapa eBPF
- Alertas codificados por cores:
- Verde (<50%): Normal
- Amarelo (50-70%): Cuidado
- Âmbar (70-90%): Aviso
- Vermelho (>90%): Crítico
Mapas Críticos a Monitorar:
uplink_pdr_map: Classificação de tráfego de uplinkdownlink_pdr_map: Classificação de tráfego de downlink IPv4far_map: Regras de encaminhamentoqer_map: Regras de QoSurr_map: Rastreamento de uso
Planejamento de Capacidade:
- Cada PDR consome uma entrada de mapa (tamanho da chave + tamanho do valor)
- A capacidade do mapa é configurada na inicialização do UPF (limite de memória do kernel)
- Exceder a capacidade causa falhas na criação de sessões
Para monitoramento de capacidade, consulte Gerenciamento de Capacidade.
Gerenciamento de Configuração
Configuração do UPF:
Visualize e verifique os parâmetros operacionais do UPF:
- Interface N3: Endereço IP para conectividade com a RAN (GTP-U)
- Interface N6: Endereço IP para conectividade com a rede de dados
- Interface N9: Endereço IP para comunicação inter-UPF (opcional)
- Interface PFCP: Endereço IP para conectividade com SMF
- Porta da API: Porta de escuta da API REST
- Endpoint de Métricas: Porta de métricas do Prometheus
Configuração do Dataplane:
Parâmetros ativos do caminho de dados eBPF:
- Endereço N3 ativo: Ligação da interface N3 em tempo de execução
- Endereço N9 ativo: Ligação da interface N9 em tempo de execução (se habilitada)
Para visualização de configuração, consulte Visualização de Configuração.
Solução de Problemas
Esta seção cobre problemas operacionais comuns e suas estratégias de resolução.
Falhas no Estabelecimento de Sessão
Sintomas: Sessões PFCP falham ao criar, UE não consegue estabelecer conectividade de dados
Causas Raiz Comuns:
-
Associação PFCP Não Estabelecida
- Verifique se o SMF pode alcançar a interface PFCP do UPF (porta 8805)
- Verifique o status da associação PFCP na visualização de Sessões
- Verifique se a configuração do ID do Nó corresponde entre SMF e UPF
-
Capacidade do Mapa eBPF Exaurida
- Verifique a visualização de Capacidade para uso de mapa vermelho (>90%)
- Aumente os tamanhos dos mapas eBPF na configuração do UPF
- Exclua sessões obsoletas se o mapa estiver cheio
-
Configuração Inválida de PDR/FAR
- Verifique se o endereço IP do UE é único e válido
- Verifique se a alocação de TEID não está em conflito
- Certifique-se de que o FAR referencia instâncias de rede válidas
-
Problemas de Configuração de Interface
- Verifique se o IP da interface N3 é acessível a partir do gNB
- Verifique tabelas de roteamento para conectividade N6 com a rede de dados
- Confirme se o tráfego GTP-U não está bloqueado por firewall
Para solução de problemas detalhada, consulte Guia de Solução de Problemas.
Problemas de Perda ou Encaminhamento de Pacotes
Sintomas: UE tem conectividade, mas experimenta perda de pacotes ou nenhum fluxo de tráfego
Causas Raiz Comuns:
-
Configuração de PDR Incorreta
- Verifique se o TEID de uplink PDR corresponde ao TEID atribuído pelo gNB
- Verifique se o PDR de downlink IP do UE corresponde ao IP atribuído
- Inspecione filtros SDF para regras excessivamente restritivas
-
Problemas de Ação FAR
- Verifique se a ação FAR é ENCAMINHAR (não DESCARTAR ou BUFFERIZAR)
- Verifique os parâmetros de criação de cabeçalho externo para GTP-U
- Certifique-se de que o endpoint de destino está correto
-
Limites de QoS Excedidos
- Verifique as configurações de QER MBR (Taxa