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 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 em 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 toda a funcionalidade de 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 do Linux para desempenho máximo.
Principais Capacidades do OmniUPF
Processamento de Pacotes:
- Processamento de pacotes de 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 aplicação
- 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 de usuário)
- Escalabilidade multi-core
- Capacidade 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 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 em 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 Locais)
Em implantações de roaming ou múltiplos locais, 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 interface S5/S8 (PGW-U) do eNodeB com encapsulação GTP-U
- O plano do usuário compara pacotes com PDRs de uplink com base em TEID
- O programa eBPF aplica QER (limitação de taxa, marcação)
- FAR determina a ação de encaminhamento (encaminhar, descartar, armazenar em 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 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 transferência inter-eNodeB ou TAU (Atualização de Área de Rastreamento)
- O plano do usuário pode armazenar pacotes em buffer durante a troca de caminho
- Transição contínua 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 de plano do usuário da RAN (GTP-U) | TS 29.281 |
| N6 | OmniUPF → Rede de Dados | Tráfego de 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 de plano do usuário da RAN (GTP-U) | TS 29.281 |
| S5/S8 | OmniUPF (SGW-U) ↔ OmniUPF (PGW-U) | Plano de usuário inter-gateway (GTP-U) | TS 29.281 |
| SGi | OmniUPF (modo PGW-U) → PDN | Tráfego de plano do usuário para 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 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, armazenar em 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 aplicação (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
- 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 | Encerrar 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 |
| Plano de Dados | /dataplane_config | Endereços das interfaces 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 em buffer e controlar o armazenamento 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 plano de dados
- 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.
Protocolo PFCP e Integração 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
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 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 3GPP TS 29.244 Seção 5.22.2:
"Se o Timestamp de Recuperação da função CP tiver mudado desde a última Configuração de Associação, a função UP deverá considerar que a função CP foi reiniciada e deverá 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ção de Erro GTP-U
OmniUPF manipula 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 (Identificador de Ponto de Extremidade do Túnel). Isso indica:
- O par remoto foi reiniciado 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 par remoto (porta 2152)
- Par remoto não reconhece TEID X → Procura TEID em 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 → Pesquisa todas as sessões por FARs encaminhando 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 (3GPP TS 29.281 Seção 7.3.1):
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 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: Sessão encontrada 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ção 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ção 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 afetam apenas sessões que encaminham para esse 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 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 Uplink: Correspondência no TEID N3, encaminhar via FAR para N6
- PDR Downlink: Correspondência 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 (handover), mudanças de QoS ou atualizações de serviço.
Cenários Comuns de Modificação:
-
Handover (baseado em N2)
- Atualizar FAR uplink com novo ponto de extremidade de túnel gNB (F-TEID)
- Opcionalmente, armazenar 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 MBR/GBR
- Pode adicionar/remover filtros SDF no PDR para QoS específica 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 o 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 de uso final 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 sua importância.
Monitoramento de Sessão
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 Extremidade da 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)
Principais Operações 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):
PDRs determinam quais pacotes correspondem a fluxos de tráfego específicos. Os operadores podem:
- Visualizar PDRs uplink indexados por TEID da interface N3
- Visualizar PDRs downlink indexados por endereço IP do UE (IPv4 e IPv6)
- Inspecionar filtros SDF para classificação específica de aplicativo
- Monitorar contagens de PDR e uso de capacidade
Regras de Ação de Encaminhamento (FAR):
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 buffer por FAR
- Alternar buffer para FARs específicas durante a solução de problemas
Regras de Aplicação de QoS (QER):
QERs aplicam limites de largura de banda e marcação de pacotes. Os operadores podem:
- Visualizar parâmetros de QoS (MBR, GBR, orçamento de atraso de pacotes)
- Monitorar QERs ativas por sessão
- Inspecionar marcações QFI para fluxos de QoS 5G
Regras de Relatório de Uso (URR):
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, usuários móveis experimentariam conexões interrompidas, 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
Em redes móveis, os usuários estão constantemente se movendo. Quando um dispositivo se move de uma torre de celular para outra (handover), 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 buffering: Pacotes que chegam durante esta janela crítica seriam descartados, causando:
- Conexões TCP travadas 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 falham e precisam ser reiniciados
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 bufferiza pacotes nessas situações críticas:
1. Handover Baseado em N2 (5G) / Handover Baseado 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 buffering - 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, depois encaminha novos pacotes normalmente
Sem buffering: ~40ms de pacotes (potencialmente milhares) seriam perdidos. Com buffering: Zero perda de pacotes, handover sem interrupções.
2. Modificação de Sessão (Mudança de QoS, Atualização de Caminho)
Quando a rede precisa mudar parâmetros de 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: 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 atomicamente. O buffering garante que pacotes não sejam encaminhados com conjuntos de regras parciais/inconsistentes.
3. Notificação de Dados Downlink (Recuperação de Modo Ocioso)
Quando um UE está em modo ocioso (tela desligada, economia de bateria) e dados downlink chegam:
Sem buffering: O pacote inicial que acionou a notificação seria perdido, exigindo que o remetente retransmitisse (adiciona latência). Com buffering: O pacote que acordou o UE é entregue imediatamente quando o UE se reconecta.
4. Handover Inter-RAT (4G ↔ 5G)
Quando um UE se move entre cobertura 4G e 5G:
- Mudanças de arquitetura (eNodeB ↔ gNB)
- Mudanças de pontos de extremidade 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 em flags de ação FAR
- Etapa de Espaço do Usuário: Armazena e gerencia pacotes bufferizados 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 embrulhados 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çã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 no Espaço do Usuário: Gerenciador de buffer armazena pacotes com ID FAR, timestamp, direção
- Buffering Desabilitado: SMF define ação FAR FORW=1, BUFF=0 com novos parâmetros de encaminhamento
- Limpar Buffer: Espaço do usuário repete pacotes bufferizados usando novas regras FAR (novo ponto de extremidade 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 Handover | 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 |
| Jogos Online Enquanto se Move | Conexão cai, expulso do jogo | Jogo suave, sem desconexões |
| Chamada VoIP no Carro | Chamada cai a cada handover | 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 do Operador de Rede:
- Taxa de Queda de Chamadas Reduzida (CDR): KPI crítico para a qualidade da rede
- Maior Satisfação do Cliente: Usuários não percebem as transferências
- Custos de Suporte Mais Baixos: Menos reclamações sobre conexões perdidas
- Vantagem Competitiva: Marketing de "melhor rede para cobertura"
Operações de Gerenciamento de Buffer
Os operadores podem monitorar e controlar o buffer através da interface Web e API:
Monitoramento:
- Visualizar pacotes em buffer por ID FAR (contagem, bytes, idade)
- Rastrear uso do buffer em relação aos limites (por FAR, global)
- Alertar sobre transbordo de buffer ou duração excessiva de buffering
- Identificar buffers presos (pacotes em buffer > limite de TTL)
Operações de Controle:
- Limpar buffers: Acionar manualmente a reprodução do buffer (solução de problemas)
- Descartar buffers: Descartar pacotes em buffer (limpar buffers presos)
- Ajustar TTL: Alterar o tempo de expiração dos pacotes
- Modificar limites: Aumentar a capacidade do buffer por FAR ou global
Solução de Problemas:
- Buffer não esvaziando: Verifique se o SMF enviou atualização FAR para desabilitar o buffering
- Transbordo de buffer: Aumente os limites ou investigue por que a duração do buffering é excessiva
- Pacotes antigos no buffer: TTL pode estar muito alto ou atualização FAR atrasada
- Buffering excessivo: Pode indicar problemas de mobilidade ou problemas no SMF
Para operações detalhadas de buffer, veja Guia de Gerenciamento de Buffer.
Configuração de Buffer
Configure o comportamento do buffer em /etc/omniupf/runtime.exs:
# Configurações de buffer
buffer_port = 22152 # Porta UDP para pacotes em buffer (padrão)
Recomendações:
- Redes de alta mobilidade (estradas, trens): Aumentar
buffer_max_packetspara 20.000+ - Áreas urbanas densas (transferências frequentes): Diminuir
buffer_packet_ttlpara 15s - Aplicações de baixa latência: Definir
buffer_packet_ttlpara 10s para evitar dados obsoletos - Redes IoT: Diminuir limites (dispositivos IoT geram menos tráfego durante a transferência)
Para opções de configuração completas, veja 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: Contagem 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 UE desconhecidos
Estatísticas 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 para/de RAN (gNB/eNodeB)
- N6 RX/TX: Tráfego para/de rede de dados
- Contagens totais de pacotes: Estatísticas agregadas da interface
Para detalhes de monitoramento, veja Guia de Monitoramento.
Gerenciamento de Capacidade
Monitoramento de Capacidade do Mapa eBPF:
O desempenho do UPF depende da capacidade do mapa eBPF. Os operadores podem:
- Monitorar uso do mapa 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 IPv4 de downlinkfar_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, veja 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 RAN (GTP-U)
- Interface N6: Endereço IP para conectividade com a rede de dados
- Interface N9: Endereço IP para comunicação entre UPFs (opcional)
- Interface PFCP: Endereço IP para conectividade SMF
- Porta API: Porta de escuta da API REST
- Endpoint de Métricas: Porta de métricas do Prometheus
Configuração do Dataplane:
Parâmetros ativos da camada de dados eBPF:
- Endereço N3 ativo: Vinculação da interface N3 em tempo de execução
- Endereço N9 ativo: Vinculação da interface N9 em tempo de execução (se habilitado)
Para visualização de configuração, veja Visualização de Configuração.
Solução de Problemas
Esta seção cobre problemas operacionais comuns e suas estratégias de resolução.
Falhas na 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 Esgotada
- Verifique a visualização de Capacidade para uso de mapa vermelho (>90%)
- Aumente os tamanhos do mapa 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 da Interface
- Verifique se o IP da interface N3 é acessível a partir do gNB
- Verifique as tabelas de roteamento para conectividade N6 com a rede de dados
- Confirme se o tráfego GTP-U não está bloqueado pelo firewall
Para solução de problemas detalhada, veja Guia de Solução de Problemas.
Perda de Pacotes ou Problemas de Encaminhamento
Sintomas: UE tem conectividade, mas experimenta perda de pacotes ou nenhum fluxo de tráfego
Causas Raiz Comuns:
-
Misconfiguração de PDR
- Verifique se o TEID do PDR de uplink corresponde ao TEID atribuído pelo gNB
- Verifique se o IP do PDR de downlink do UE corresponde ao IP atribuído
- Inspecione os filtros SDF para regras excessivamente restritivas
-
Problemas de Ação FAR
- Verifique se a ação FAR é FORWARD (não DROP ou BUFFER)
- Verifique os parâmetros de criação do 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 MBR (Taxa de Bits Máxima) do QER
- Verifique a alocação de GBR (Taxa de Bits Garantida)
- 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 de ICMP indicando necessidade de fragmentação
Problemas Relacionados ao Buffer
Sintomas: Pacotes em buffer indefinidamente, transbordo 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 o buffering
- Desabilite manualmente o buffering via painel de controle se estiver preso
-
Expiração do TTL do Buffer
- Verifique a idade dos pacotes na visualização do buffer
- Verifique a configuração do TTL do buffer (o padrão pode ser muito longo)
- Limpe buffers expirados manualmente
-
Capacidade do Buffer Esgotada
- Monitore o uso total do buffer e os limites por FAR
- Verifique se há regras mal configuradas causando buffering excessivo
- Ajuste os limites max_per_far e max_total do buffer
Para solução de problemas de buffer, veja Operações de Buffer.
Anomalias de Estatísticas
Sintomas: Contadores de pacotes inesperados, estatísticas ausentes
Causas Raiz Comuns:
-
Transbordo de Contador
- Mapas eBPF usam contadores de 64 bits (não devem transbordar)
- Verifique eventos de redefinição de contadores 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 as estatísticas XDP para erros de processamento
-
Desajuste nas Estatísticas da Interface
- Compare as estatísticas N3/N6 com os contadores de interface do kernel
- Verifique se há tráfego contornando o eBPF (por exemplo, roteamento local)
- Verifique se todo o tráfego flui através dos ganchos XDP
Degradação de Desempenho
Sintomas: Alta latência, baixa taxa de transferência, saturação da CPU
Diagnóstico:
- Monitore as Estatísticas XDP: Verifique se há descartes ou abortos no XDP
- Verifique o Tempo de Acesso ao Mapa eBPF: As buscas de hash devem ser sub-microsegundo
- Revise a Utilização da CPU: eBPF deve se distribuir entre os núcleos
- Analise a Interface de Rede: Verifique se o NIC suporta descarregamento XDP
Considerações de Escalabilidade:
- Desempenho do XDP: 10M+ pacotes por segundo por núcleo
- Capacidade do PDR: Milhões de PDRs limitados apenas pela memória do kernel
- Contagem de Sessões: Milhares de sessões simultâneas por instância do UPF
- Taxa de Transferência: Taxa de transferência de múltiplos gigabits com descarregamento adequado do NIC
Para ajuste de desempenho, veja Guia de Arquitetura.
Documentação Adicional
Guias de Operações Específicas 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 ambiente, CLI)
- Modos operacionais (UPF/PGW-U/SGW-U)
- Visão geral dos modos de anexo XDP
- Compatibilidade com hipervisores (Proxmox, VMware, KVM, Hyper-V, VirtualBox)
- Compatibilidade de NIC e suporte a drivers XDP
- Exemplos de configuração para diferentes cenários
- Dimensionamento de mapas e planejamento de capacidade
Guia de Modos XDP
Configuração e otimização detalhadas do XDP, incluindo:
- Modos de anexo XDP explicados (genérico/nativo/descarregamento)
- Comparação de desempenho e benchmarks
- Configuração nativa do XDP no Proxmox VE passo a passo
- Configuração de múltiplas filas para desempenho ideal
- Configuração do XDP no VMware ESXi, KVM e Hyper-V
- Verificação e solução de problemas do XDP
- Seleção de hardware para desempenho do XDP
Guia de Arquitetura
Análise técnica profunda, incluindo:
- Fundamentos da tecnologia eBPF e ciclo de vida do programa
- Pipeline de processamento de pacotes XDP com chamadas de cauda
- Implementação do protocolo PFCP
- Arquitetura de buffering (encapsulamento GTP-U para a porta 22152)
- Limitação de taxa de controle de QoS com janela deslizante (janela de 5ms)
- Características de desempenho (latência de 3,5μs, 10 Mpps/núcleo)
Guia de Gerenciamento de Regras
Referência de regras PFCP, incluindo:
- Regras de Detecção de Pacotes (PDR) - Classificação de tráfego
- Regras de Ação de Encaminhamento (FAR) - Decisões de roteamento com flags de ação
- Regras de Aplicação de QoS (QER) - Gerenciamento de largura de banda (MBR/GBR)
- Regras de Relatório de Uso (URR) - Rastreamento e relatório de volume
- Diagramas de fluxo de pacotes de uplink e downlink
- Lógica de processamento de regras e precedência
Guia de Monitoramento
Estatísticas e gerenciamento de capacidade, incluindo:
- Estatísticas da interface N3/N6 e distribuição de tráfego
- Estatísticas de processamento XDP (passar/descarregar/redirecionar/abortar)
- Monitoramento de capacidade do mapa eBPF com zonas codificadas por cores
- Métricas de desempenho (taxa de pacotes, taxa de transferência, taxa de descarte)
- Fórmulas de planejamento de capacidade e estimativa de sessões
- Limiares de alerta e melhores práticas
Guia de Operações da Interface Web
Uso do painel de controle, incluindo:
- Visão geral do painel e navegação
- Monitoramento de sessões (estados saudáveis/não saudáveis)
- Inspeção de regras (detalhes de PDR, FAR, QER, URR)
- Monitoramento de buffer e estado de buffering de pacotes
- Painel de estatísticas em tempo real
- Visualização da capacidade do mapa eBPF
- Visualização de configuração
Documentação da API
Referência completa da API REST, incluindo:
- Documentação interativa OpenAPI/Swagger
- Paginação da API (baseada em página e baseada em offset)
- Endpoints de sessões e associações PFCP
- Regras de Detecção de Pacotes (PDR) - IPv4 e IPv6
- Regras de Ação de Encaminhamento (FAR)
- Regras de Aplicação de QoS (QER)
- Regras de Relatório de Uso (URR)
- Gerenciamento de buffer de pacotes
- Endpoints de estatísticas e monitoramento
- Gerenciamento de rotas e integração FRR
- Informações sobre mapas eBPF
- Gerenciamento de configuração
- Diretrizes de autenticação e segurança
- Fluxos de trabalho e exemplos comuns da API
Referência de Métricas
Documentação de métricas do Prometheus, incluindo:
- Métricas de mensagens PFCP (contadores, latência, erros por par)
- Métricas de ação XDP (veredictos do dataplane)
- Métricas de pacotes (contadores em nível de protocolo com rótulos de tipo de pacote)
- Métricas de sessão e associação PFCP (por nó de plano de controle)
- Métricas URR (volume de tráfego por par PFCP)
- Métricas de buffering de pacotes (estado do buffer, capacidade, taxa de transferência)
- Métricas de notificação de Relatório de Dados de Downlink (DLDR)
- Métricas de capacidade do mapa eBPF (utilização de recursos)
- Exemplos de configuração do Prometheus
- Recomendações de painel do Grafana
Referência de Códigos de Causa PFCP
Documentação de códigos de erro PFCP, incluindo:
- Definições de códigos de causa e conformidade com 3GPP (TS 129.244)
- Quando cada código de causa ocorre (sucesso, erros do cliente, erros do servidor)
- Cenários de falha comuns com resoluções
- Solução de problemas com métricas do Prometheus
- Falhas na configuração de associação e ciclo de vida da sessão
- Etapas de depuração para altas taxas de rejeição
- Recomendações de alerta para códigos de causa
Guia de Gerenciamento de Rotas do UE
Integração de roteamento FRR, incluindo:
- Visão geral e arquitetura do FRR (Free Range Routing)
- Ciclo de vida de sincronização de rotas do UE
- Sincronização automática de rotas para o daemon de roteamento
- Anúncio de rotas via OSPF e BGP
- Monitoramento de vizinhos OSPF
- Verificação do banco de dados LSA externo do OSPF
- Gerenciamento de sessão de pares BGP
- Interface de monitoramento de rotas da Web UI
- Operações manuais de sincronização de rotas
- Diagramas Mermaid para fluxo de rotas e arquitetura
Guia de IPv6 / Dual-Stack
Operação do plano do usuário IPv6 para sessões PDN IPv6 e IPv4v6:
- Pré-requisitos do kernel (habilitar IPv6 e encaminhamento)
- Configuração do pool de endereços IPv6 do UE
- Anúncio OSPFv3 de rotas de host
/128do UE - Comportamento do plano de dados de downlink/uplink IPv6
- Solução de problemas de encaminhamento IPv6 e anúncio de rotas
Guia de Solução de Problemas
Diagnóstico abrangente de problemas, incluindo:
- Lista de verificação de diagnóstico rápido e ferramentas
- Problemas de instalação e configuração
- Falhas de associação PFCP
- Problemas de processamento de pacotes
- Erros de XDP e eBPF
- Degradação de desempenho
- Problemas específicos de hipervisor (Proxmox, VMware, VirtualBox)
- Problemas de NIC e driver
- Procedimentos de resolução passo a passo
Documentação por Caso de Uso
Instalando e Configurando o OmniUPF
- Comece com este guia para uma visão geral
- Guia de Configuração para parâmetros de configuração
- Guia da Web UI para acessar o painel de controle
Implantando no Proxmox
- Guia de Modos XDP - Configuração Nativa do XDP no Proxmox - Comece aqui para desempenho
- Guia de Configuração - Compatibilidade com Hipervisor
- Guia de Configuração - Configuração SR-IOV do Proxmox
- Solução de Problemas - Problemas no Proxmox
Otimizando Desempenho
- Guia de Modos XDP - Habilite o XDP nativo para um aumento de desempenho de 5-10x
- Guia de Arquitetura - Otimização de Desempenho
- Guia de Configuração - Modos XDP
- Guia de Monitoramento - Métricas de Desempenho
- Solução de Problemas - Problemas de Desempenho
Compreendendo o Processamento de Pacotes
- Guia de Arquitetura - Pipeline de Processamento de Pacotes
- Guia de Gerenciamento de Regras
- Guia de Monitoramento - Estatísticas
Planejando Capacidade
- Guia de Configuração - Dimensionamento de Mapas
- Guia de Monitoramento - Planejamento de Capacidade
- Guia de Monitoramento - Estimativa de Capacidade de Sessão
Gerenciando Rotas do UE e Integração FRR
- Guia de Gerenciamento de Rotas do UE - Guia completo de integração de roteamento
- Documentação da API - Gerenciamento de Rotas - Endpoints da API de rotas
- Guia da Web UI - Operações da página de rotas
- Gerenciamento de Rotas do UE - Verificação FRR - Verificação do LSA OSPF
Usando a API REST
- Documentação da API - Referência completa da API
- Documentação da API - Swagger UI - Explorador interativo da API
- Documentação da API - Recursos da API - Exemplos de uso da API
- Guia da Web UI - Interface da Web como exemplo de cliente da API
Solucionando Problemas
- Guia de Solução de Problemas - Comece aqui
- Guia de Monitoramento - Verifique estatísticas e capacidade
- Guia da Web UI - Use diagnósticos do painel de controle
Referência Rápida
Endpoints Comuns da API
OmniUPF fornece uma API REST para monitoramento e gerenciamento:
# Status e saúde
GET http://localhost:8080/api/v1/upf_status
# Associações PFCP
GET http://localhost:8080/api/v1/upf_pipeline
# Sessões
GET http://localhost:8080/api/v1/sessions
# Estatísticas
GET http://localhost:8080/api/v1/packet_stats
GET http://localhost:8080/api/v1/xdp_stats
# Monitoramento de capacidade
GET http://localhost:8080/api/v1/map_info
# Estatísticas de buffer
GET http://localhost:8080/api/v1/upf_buffer_info
Para documentação completa da API, acesse a interface Swagger em http://<upf-ip>:8080/swagger/index.html
Parâmetros de Configuração Essenciais
# /etc/omniupf/runtime.exs
xdp_interfaces = "eth0" # Interfaces para tráfego N3/N6/N9
xdp_attach_mode = "native" # "generic" | "native" | "offload"
n3_address = "10.100.50.233" # IP da interface N3
pfcp_address = "10.100.50.241" # Endereço de escuta PFCP
pfcp_port = 8805 # Porta PFCP
node_id = "10.100.50.241" # ID do Nó PFCP
# Capacidade
max_sessions = 100_000 # Máximo de sessões simultâneas
# API
api_port = 8080 # Porta da API REST
Limiares de Monitoramento Importantes
- Capacidade do Mapa eBPF < 70%: Operação normal
- Capacidade do Mapa eBPF 70-90%: Planeje aumento de capacidade dentro de 1 semana
- Capacidade do Mapa eBPF > 90%: Crítico - ação imediata necessária
- Taxa de Descarte de Pacotes < 0.1%: Excelente
- Taxa de Descarte de Pacotes 0.1-1%: Boa - problemas menores
- Taxa de Descarte de Pacotes > 5%: Crítico - investigar imediatamente
- XDP Abortado > 0: Problema crítico com o programa eBPF
Referência de Normas 3GPP
OmniUPF implementa as seguintes especificações 3GPP:
| Especificação | Título | Relevância |
|---|---|---|
| TS 23.501 | Arquitetura do sistema para o Sistema 5G (5GS) | Arquitetura e interfaces do UPF 5G |
| TS 23.401 | Melhorias do Serviço de Pacote Geral (GPRS) para acesso E-UTRAN | Arquitetura do UPF LTE (PGW-U) |
| TS 29.244 | Interface entre os nós do Plano de Controle e do Plano do Usuário (PFCP) | Protocolo PFCP N4 |
| TS 29.281 | Protocolo de Tunelamento do Sistema de Pacote Geral (GTPv1-U) | Encapsulamento GTP-U |
| TS 23.503 | Estrutura de controle de políticas e cobrança para o Sistema 5G (5GS) | QoS e cobrança |
| TS 29.212 | Controle de Políticas e Cobrança (PCC) | Aplicação de QoS |
Glossário
Termos da Arquitetura 5G
- 3GPP: 3rd Generation Partnership Project - Órgão de normas para telecomunicações móveis
- AMF: Função de Gerenciamento de Acesso e Mobilidade - Elemento da rede central 5G para controle de acesso
- CHF: Função de Cobrança - Sistema de cobrança 5G
- DN: Rede de Dados - Rede externa (Internet, IMS, empresa)
- eNodeB: Evolved Node B - Estação base LTE
- F-TEID: Identificador de Endpoint de Tunelamento Totalmente Qualificado - ID de túnel GTP-U com endereço IP
- gNB: Next Generation Node B - Estação base 5G
- GTP-U: Protocolo de Tunelamento GPRS do Plano do Usuário - Protocolo de tunelamento para dados do usuário
- MBR: Taxa de Bits Máxima - Parâmetro de QoS para largura de banda máxima permitida
- GBR: Taxa de Bits Garantida - Parâmetro de QoS para largura de banda mínima garantida
- N3: Interface entre RAN e UPF (tráfego do plano do usuário)
- N4: Interface entre SMF e UPF (controle PFCP)
- N6: Interface entre UPF e Rede de Dados (tráfego do plano do usuário)
- N9: Interface entre dois UPFs (tráfego do plano do usuário inter-UPF)
- PCF: Função de Controle de Políticas - Servidor de políticas 5G
- PDU: Unidade de Dados de Protocolo - Sessão de dados em 5G
- PGW-C: PDN Gateway Control Plane - Equivalente ao plano de controle LTE do SMF
- PGW-U: PDN Gateway User Plane - Plano do usuário LTE (equivalente ao UPF)
- QFI: Identificador de Fluxo de QoS - Marcação de fluxo de QoS 5G
- QoS: Qualidade de Serviço - Priorização de tráfego e gerenciamento de largura de banda
- RAN: Rede de Acesso Rádio - Rede de estação base (gNB/eNodeB)
- SEID: Identificador de Endpoint de Sessão - ID de sessão PFCP
- SMF: Função de Gerenciamento de Sessão - Elemento da rede central 5G para controle de sessão
- TEID: Identificador de Endpoint de Tunelamento - ID de túnel GTP-U
- UE: Equipamento do Usuário - Dispositivo móvel
- UPF: Função do Plano do Usuário - Elemento de rede de encaminhamento de pacotes 5G
Termos do Protocolo PFCP
- Associação: Relação de controle entre SMF e UPF
- FAR: Regra de Ação de Encaminhamento - Determina o comportamento de encaminhamento de pacotes
- IE: Elemento de Informação - Componente da mensagem PFCP
- Node ID: Identificador do UPF ou SMF (FQDN ou endereço IP)
- PDR: Regra de Detecção de Pacotes - Classifica pacotes em fluxos
- PFCP: Protocolo de Controle de Encaminhamento de Pacotes - Protocolo de controle N4
- QER: Regra de Aplicação de QoS - Aplica limites de largura de banda e marcação
- SDF: Fluxo de Dados de Serviço - Filtro de tráfego específico da aplicação
- Sessão: Sessão PFCP representando a sessão PDU do UE ou contexto PDP
- URR: Regra de Relatório de Uso - Acompanha volumes de dados para cobrança
Termos do eBPF e do Kernel Linux
- BPF: Filtro de Pacotes Berkeley - Tecnologia de filtragem de pacotes do kernel
- eBPF: BPF Estendido - Caminho de dados programável do kernel
- Hash Map: Armazenamento de chave-valor eBPF para buscas rápidas
- XDP: Caminho de Dados eXpress - Processamento de pacotes do kernel em nível de driver
- Verificador: Componente do kernel que valida programas eBPF para segurança
- Mapa: Estrutura de dados eBPF compartilhada entre o kernel e o espaço do usuário
- Zero-copy: Processamento de pacotes sem cópia para o espaço do usuário
Termos do Produto OmniUPF
- OmniUPF: Função de Plano de Usuário baseada em eBPF (este produto)
- Caminho de Dados: Motor de processamento de pacotes (programas eBPF)
- Plano de Controle: Manipulador PFCP e gerenciamento de sessões
- REST API: API HTTP para monitoramento e gerenciamento
- Web UI: Painel de controle baseado em navegador