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 (Extended Berkeley Packet Filter) e aprimorado com capacidades de gerenciamento abrangentes, o OmniUPF oferece 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
- Buffering de pacotes para cenários de mobilidade e gerenciamento de sessões
- Suporte a interceptação legal para conformidade regulatória
OmniUPF implementa a funcionalidade completa do UPF definida nas especificações 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 (GPRS Tunneling Protocol)
- Suporte a IPv4 e IPv6 para redes de acesso e de dados
- XDP (eXpress Data Path) para processamento de latência ultra-baixa
- Processamento de pacotes multithread
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 aplicativos
- Regras de Relatório de Uso (URR) para rastreamento de volume e cobrança
Controle e Gerenciamento:
- Interface PFCP (Packet Forwarding Control Protocol) 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 multicanal
- 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 (PDN Gateway User Plane) - gateway EPC 4G para redes externas (controlado pelo OmniPGW-C via Sxc/PFCP)
- SGW-U (Serving Gateway User Plane) - 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 4G combinado (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 o protocolo PFCP, proporcionando desempenho alto e consistente, seja operando como UPF, PGW-U, SGW-U ou todos 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.
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 de 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 compara 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, buffer, 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 compara 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 aplicativo
- FAR determina o túnel GTP-U e os 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 transferência entre eNodeBs ou TAU (Atualização de Área de Rastreamento)
- O plano do usuário pode armazenar 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 da 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 entre UPFs 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 Linux para desempenho máximo.
Funções Principais:
- Processamento GTP-U: Encapsulação e desencapsulação de túneis GTP-U
- Classificação de Pacotes: Comparaçã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, buffer, 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 aplicativo (portas, protocolos) |
Características de Desempenho:
- Zero-copy: Pacotes processados inteiramente no espaço do kernel
- Suporte a XDP: Anexar no nível do driver de rede para latência sub-microsegundo
- Multicore: 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 TS 29.244 da 3GPP 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 | Encerrar associação PFCP |
| Batimento de Coração | Bidirecional | Manter a 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 de interface N3/N9 |
Para detalhes e uso da API, 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 armazenados e controlar o buffering 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
- 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
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. 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 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 a 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 o Guia de Solução de Problemas.
Manipulação de Indicações de Erro GTP-U
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 uma implantação SGW-U), o par pode enviar de volta uma Indicação de Erro se não reconhecer o TEID (Tunnel Endpoint Identifier). 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 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 → Busca 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):
GTP-U Indicação de Erro:
┌─────────────────────────────────────────┐
│ 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 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 a encaminhar 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(s) 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étrica:
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 - 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 só 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 configuração de associação)
- Manipulação de Indicação de Erro = reativa (detecta túneis mortos quando o tráfego flui)
-
Manipulação de Pacotes Malformados: 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 o Guia de Solução de Problemas.
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: Comparar no TEID N3, encaminhar via FAR para N6
- PDR de Downlink: Comparar 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 gNB (F-TEID)
- Opcionalmente armazenar pacotes durante a troca de caminho
- Limpar buffer para novo caminho quando pronto
-
Mudança de QoS
- Atualizar QER com novos valores MBR/GBR
- Pode adicionar/remover filtros SDF no PDR para QoS específico de aplicativo
-
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
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 aplicativos
- 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, BUFFER, DUPLICAR, NOTIFICAR)
- Inspecionar parâmetros de encaminhamento (criação de cabeçalho externo, destino)
- Monitorar status de buffering por FAR
- Alternar buffering 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, marcação de pacotes)
- 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.
Buffering de Pacotes
Por que o Buffering é Crítico para o UPF
O buffering 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 buffering, os usuários móveis experimentariam desconexões, downloads interrompidos e falhas em comunicações em tempo real toda vez que se movem entre torres de celular ou quando as condições da rede mudam.
O Problema: Perda de Pacotes Durante a Mobilidade
Nas 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 os pacotes estão em trânsito, mas o novo caminho ainda não está pronto:
Sem buffering: Pacotes chegando durante essa janela crítica seriam descartados, causando:
- Conexões TCP a travar ou reiniciar (navegação na web, downloads interrompidos)
- Chamadas de vídeo a congelar ou cair (Zoom, Teams, chamadas do WhatsApp falham)
- Sessões de jogos a desconectar (jogos online, aplicativos em tempo real falham)
- Chamadas VoIP a ter lacunas ou cair completamente (chamadas telefônicas interrompidas)
- Downloads a falhar e precisar reiniciar
Com buffering: OmniUPF retém temporariamente pacotes até que o novo caminho seja estabelecido, depois os encaminha sem problemas. O usuário experimenta zero interrupção.
Quando o Buffering Acontece
OmniUPF armazena 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:
Cronograma:
- T+0ms: Caminho antigo ainda ativo
- T+10ms: SMF diz ao UPF para armazenar (caminho antigo fechando, novo caminho não pronto)
- T+10-50ms: Janela crítica de armazenamento - pacotes chegam, mas não podem ser encaminhados
- T+50ms: Novo caminho pronto, SMF diz ao UPF para encaminhar
- T+50ms+: UPF limpa pacotes armazenados para novo caminho, depois encaminha novos pacotes normalmente
Sem buffering: ~40ms de pacotes (potencialmente milhares) seriam perdidos. Com buffering: 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 os parâmetros da sessão:
- Atualização/diminuição de QoS: Usuário se move da cobertura 4G para 5G (modo NSA)
- Mudança de política: Usuário corporativo entra no campus da empresa (mudanças de direcionamento de tráfego)
- Otimização da rede: A rede central redireciona o 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. O buffering 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 buffering: O pacote inicial que acionou a notificação seria perdido, exigindo que o remetente retransmitisse (aumenta a latência). Com buffering: 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 cobertura 4G e 5G:
- Mudanças de arquitetura (eNodeB ↔ gNB)
- Mudanças nos pontos de túnel (alocação de TEID diferente)
- O buffering garante uma transição suave entre tipos de RAT
Como o Buffering Funciona no OmniUPF
Mecanismo Técnico:
OmniUPF usa uma arquitetura de buffering em duas etapas:
- Etapa eBPF (Kernel): Detecta pacotes que requerem buffering com base nas flags de ação FAR
- Etapa de Espaço do Usuário: Armazena e gerencia pacotes armazenados na memória
Processo de Buffering:
Detalhes Chave:
- Porta de Buffer: Porta UDP 22152 (pacotes enviados do eBPF para o espaço do usuário)
- Encapsulação: Pacotes envoltos em GTP-U com ID FAR como TEID
- Armazenamento: Buffers na 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 antigos que o TTL são descartados
- Limpeza: Processo em segundo plano remove pacotes expirados a cada 60 segundos
Ciclo de Vida do Buffer:
- Buffering Habilitado: SMF define a ação FAR BUFF=1 (bit 2) via Modificação de Sessão PFCP
- Pacotes Armazenados: eBPF detecta a flag BUFF, encapsula pacotes, envia para a porta 22152
- Armazenamento no Espaço do Usuário: Gerenciador de buffer armazena pacotes com ID FAR, timestamp, direção
- Buffering Desabilitado: SMF define a ação FAR FORW=1, BUFF=0 com novos parâmetros de encaminhamento
- Limpar Buffer: Gerenciador do espaço do usuário repete pacotes armazenados 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 Buffering | Com Buffering |
|---|---|---|
| Chamada de Vídeo Durante a Transferência | Chamada congela por 1-2 segundos, pode cair | Sem interrupção, sem problemas |
| Download de Arquivo na Borda da Célula | Download falha, deve reiniciar | Download continua sem interrupções |
| Jogo 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 em 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:
- Taxa de Queda de Chamadas (CDR) Reduzida: KPI crítico para qualidade de rede
- Maior Satisfação do Cliente: Usuários não notam transferências
- Menores Custos de Suporte: Menos reclamações sobre conexões perdidas
- Vantagem Competitiva: Marketing "melhor rede para cobertura"
Operações de Gerenciamento de Buffer
Os operadores podem monitorar e controlar o buffering através da interface Web e API:
Monitoramento:
- Visualizar pacotes armazenados por ID FAR (contagem, bytes, idade)
- Rastrear uso de buffer contra limites (por FAR, global)
- Alertar sobre overflow de buffer ou duração excessiva de buffering
- Identificar buffers presos (pacotes armazenados > limite TTL)
Operações de Controle:
- Limpar buffers: Acionar manualmente a repetição do buffer (solução de problemas)
- Descartar buffers: Descartar pacotes armazenados (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 buffering
- Overflow de buffer: Aumente limites ou investigue por que a duração do buffering é 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 no SMF
Para operações detalhadas de buffer, consulte Guia de Gerenciamento de Buffer.
Configuração de Buffer
Configure o comportamento de buffering em /etc/omniupf/runtime.exs:
# Configurações de Buffer
buffer_port = 22152 # Porta UDP para pacotes armazenados (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 desatualizados - 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 de UE desconhecidos
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 de Interface N3/N6:
Contadores de tráfego por interface:
- N3 RX/TX: Tráfego de RAN (gNB/eNodeB)
- N6 RX/TX: Tráfego 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 do mapa eBPF. Os operadores podem:
- Monitorar uso de mapa com indicadores de porcentagem em tempo real
- Visualizar limites de capacidade para cada mapa eBPF
- Alertas codificados por cor:
- Verde (<50%): Normal
- Amarelo (50-70%): Cuidado
- Âmbar (70-90%): Aviso
- Vermelho (>90%): Crítico
Mapas Críticos para 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 parâmetros operacionais do UPF:
- Interface N3: Endereço IP para conectividade RAN (GTP-U)
- Interface N6: Endereço IP para conectividade da rede de dados
- Interface N9: Endereço IP para comunicação inter-UPF (opcional)
- Interface PFCP: Endereço IP para conectividade 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: Endereço da interface N3 em tempo de execução
- Endereço N9 ativo: Endereço da interface N9 em tempo de execução (se habilitado)
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 serem criadas, 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 antigas 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 da PDR de uplink corresponde ao TEID atribuído pelo gNB
- Verifique se o PDR de downlink corresponde ao IP atribuído do UE
- Inspecione filtros SDF para regras excessivamente restritivas
-
Problemas de Ação FAR
- Verifique se a ação FAR é ENCAMINHAR (não DESCARTAR ou BUFFER)
- Verifique os parâmetros de criação de cabeçalho externo
- Certifique-se de que o ponto de destino está correto
-
Limites de QoS Excedidos
- Verifique as configurações de QER MBR (Taxa Máxima de Bits)
- Verifique a alocação de GBR (Taxa Garantida de Bits)
- Monitore a perda de pacotes devido a limitação de taxa
-
Problemas de MTU da Interface
- Verifique se a sobrecarga do GTP-U (40-50 bytes) não causa fragmentação
- Verifique a configuração de MTU da interface N3/N6
- Monitore mensagens ICMP de fragmentação necessárias
Problemas Relacionados ao Buffer
Sintomas: Pacotes armazenados indefinidamente, overflow de buffer
Causas Raiz Comuns:
-
Buffering Não Desabilitado Após Transferência
- Verifique a flag de buffering do FAR (bit 2)
- Verifique se o SMF enviou Modificação de Sessão para desabilitar buffering
- Desabilite manualmente o buffering via painel de controle se preso
-
Expiração do TTL do Buffer
- Verifique a idade dos pacotes na visualização do buffer
- Verifique a configuração de TTL do buffer (o padrão pode ser muito longo)
- Limpe buffers expirados manualmente
-
Capacidade do Buffer Exaurida
- Monitore o uso total do buffer e limites por FAR
- Verifique regras mal configuradas que causam buffering excessivo
- Ajuste limites de max_per_far e max_total de buffer
Para solução de problemas de buffer, consulte Operações de Buffer.
Anomalias nas Estatísticas
Sintomas: Contadores de pacotes inesperados, estatísticas ausentes
Causas Raiz Comuns:
-
Overflow de Contador
- Mapas eBPF usam contadores de 64 bits (não devem transbordar)
- Verifique eventos de redefinição de contador nos logs
- Verifique se o relatório URR está funcionando
-
Estatísticas de Rota Não Atualizando
- Verifique se o programa eBPF está anexado às interfaces
- Verifique se a versão do kernel suporta os recursos eBPF necessários
- Revise estatísticas de XDP para erros de processamento
-
Desajuste nas Estatísticas de Interface
- Compare estatísticas N3/N6 com contadores de interface do kernel
- Verifique se o tráfego está contornando o eBPF (por exemplo, roteamento local)
- Verifique se todo o tráfego flui através de ganchos XDP
Degradação de Desempenho
Sintomas: Alta latência, baixa taxa de transferência, saturação da CPU
Diagnóstico:
- Monitore Estatísticas de XDP: Verifique se há descartes ou abortos de XDP
- Verifique o Tempo de Acesso ao Mapa eBPF: As pesquisas hash devem ser sub-microsegundo
- Revise a Utilização da CPU: eBPF deve distribuir entre núcleos
- Analise a Interface de Rede: Verifique se o NIC suporta descarregamento de XDP
Considerações de Escalabilidade:
- Desempenho do XDP: 10M+ pacotes por segundo por núcleo
- Capacidade de PDR: Milhões de PDRs limitados apenas pela memória do kernel
- Contagem de Sessões: Milhares de sessões concorrentes por instância do UPF
- Taxa de Transferência: Taxa de vários gigabits com descarregamento adequado do NIC
Para ajuste de desempenho, consulte Guia de Arquitetura.
Documentação Adicional
Guias de Operações Específicos do Componente
Para operações detalhadas e solução de problemas para cada componente do UPF:
Guia de Configuração
Referência completa de configuração incluindo:
- Parâmetros de configuração (YAML, variáveis de