Pular para o conteúdo principal

Guia de Operações do OmniUPF

Índice

  1. Visão Geral
  2. Entendendo a Arquitetura do Plano do Usuário 5G
  3. Componentes do UPF
  4. Integração do Protocolo PFCP e SMF
  5. Operações Comuns
  6. Solução de Problemas
  7. Documentação Adicional
  8. Glossário

Visão Geral

OmniUPF (Função de Plano do Usuário baseada em eBPF) é uma Função de Plano do Usuário 5G/LTE de alto desempenho que fornece encaminhamento de pacotes de grau de operadora, aplicação de QoS e gerenciamento de tráfego para redes móveis. Construído sobre a tecnologia eBPF do Linux (Filtro de Pacotes de Berkeley Estendido) e aprimorado com capacidades de gerenciamento abrangentes, o OmniUPF fornece a infraestrutura central de processamento de pacotes necessária para redes 5G SA, 5G NSA e LTE.

O que é uma Função de Plano do Usuário?

A Função de Plano do Usuário (UPF) é o elemento de rede padronizado pela 3GPP responsável pelo processamento e encaminhamento de pacotes em redes 5G e LTE. Ela fornece:

  • Encaminhamento de pacotes de alta velocidade entre dispositivos móveis e redes de dados
  • Aplicação de Qualidade de Serviço (QoS) para diferentes tipos de tráfego
  • Detecção e roteamento de tráfego com base em filtros e regras de pacotes
  • Relatórios de uso para cobrança e análises
  • Bufferização de pacotes para cenários de mobilidade e gerenciamento de sessões
  • Suporte a interceptação legal para conformidade regulatória

OmniUPF implementa toda a funcionalidade do UPF definida na 3GPP TS 23.501 (5G) e TS 23.401 (LTE), fornecendo uma solução de plano do usuário completa e pronta para produção usando a tecnologia eBPF do kernel Linux para desempenho máximo.

Principais Capacidades do OmniUPF

Processamento de Pacotes:

  • Processamento de pacotes do plano do usuário totalmente compatível com 3GPP
  • Caminho de dados baseado em eBPF para desempenho em nível de kernel
  • Encapsulação e desencapsulação de GTP-U (Protocolo de Túnel GPRS)
  • Suporte a IPv4 e IPv6 para redes de acesso e dados
  • XDP (Caminho de Dados eXpress) para processamento de latência ultra-baixa
  • Processamento de pacotes multi-threaded

QoS e Gerenciamento de Tráfego:

  • Regras de Aplicação de QoS (QER) para gerenciamento de largura de banda
  • Regras de Detecção de Pacotes (PDR) para classificação de tráfego
  • Regras de Ação de Encaminhamento (FAR) para decisões de roteamento
  • Filtragem de Fluxo de Dados de Serviço (SDF) para roteamento específico de aplicação
  • Regras de Relatório de Uso (URR) para rastreamento de volume e cobrança

Controle e Gerenciamento:

  • Interface PFCP (Protocolo de Controle de Encaminhamento de Pacotes) para SMF/PGW-C
  • API RESTful para monitoramento e diagnósticos
  • Estatísticas e métricas em tempo real
  • Monitoramento de capacidade de mapas eBPF
  • Painel de controle baseado na web

Características de Desempenho:

  • Processamento de pacotes sem cópia via eBPF
  • Encaminhamento de pacotes em nível de kernel (sem sobrecarga de espaço do usuário)
  • Escalabilidade multi-core
  • Capaz de descarregar para aceleração de hardware
  • Otimizado para implantações nativas em nuvem

Para detalhes sobre o uso do painel de controle, consulte Operações da Interface Web.

Entendendo a Arquitetura do Plano do Usuário

OmniUPF é uma solução unificada de plano do usuário que fornece encaminhamento de pacotes de grau de operadora para redes 5G Standalone (SA), 5G NSA e 4G LTE/EPC. OmniUPF é um único produto que pode funcionar simultaneamente como:

  • UPF (Função de Plano do Usuário) - plano do usuário 5G/NSA (controlado pelo OmniSMF via N4/PFCP)
  • PGW-U (Gateway de PDN do Plano do Usuário) - gateway EPC 4G para redes externas (controlado pelo OmniPGW-C via Sxc/PFCP)
  • SGW-U (Gateway de Serviço do Plano do Usuário) - gateway de serviço EPC 4G (controlado pelo OmniSGW-C via Sxb/PFCP)

OmniUPF pode operar em qualquer combinação desses modos:

  • Apenas UPF: Implantação pura de 5G
  • PGW-U + SGW-U: Gateway combinado 4G (implantação típica de EPC)
  • UPF + PGW-U + SGW-U: Suporte simultâneo a 4G e 5G (cenário de migração)

Todos os modos usam o mesmo mecanismo de processamento de pacotes baseado em eBPF e protocolo PFCP, fornecendo desempenho alto e consistente, seja operando como UPF, PGW-U, SGW-U, ou os três simultaneamente.

Arquitetura da Rede 5G (Modo SA)

A solução OmniUPF está situada no plano de dados das redes 5G, fornecendo a camada de encaminhamento de pacotes de alta velocidade que conecta dispositivos móveis a redes e serviços de dados.


Arquitetura da Rede 4G LTE/EPC

OmniUPF também suporta implantações 4G LTE e EPC (Evolved Packet Core), funcionando como OmniPGW-U ou OmniSGW-U, dependendo da arquitetura da rede.

Modo Combinado PGW-U/SGW-U (Implantação Típica de 4G)

Neste modo, o OmniUPF atua como SGW-U e PGW-U, controlado por funções de plano de controle separadas.

Modo Separado SGW-U e PGW-U (Roaming/Múltiplos Sites)

Em implantações de roaming ou múltiplos sites, duas instâncias separadas do OmniUPF podem ser implantadas - uma como SGW-U e outra como PGW-U.

Modo de Loopback N9 (Instância Única SGWU+PGWU)

Para implantações simplificadas, o OmniUPF pode executar tanto os papéis de SGWU quanto de PGWU em uma única instância com processamento de loopback N9 totalmente em eBPF.

Principais Recursos:

  • Latência N9 sub-microsegundo - Processado inteiramente em eBPF, nunca toca a rede
  • Redução de CPU de 40-50% - Uma única passagem XDP vs. duas instâncias separadas
  • Implantação simplificada - Uma instância, um arquivo de configuração
  • Detecção automática - Quando n3_address = n9_address, loopback é habilitado
  • Total conformidade com 3GPP - Protocolos PFCP e GTP-U padrão

Configuração:

# /etc/omniupf/runtime.exs
xdp_interfaces = "eth0"
n3_address = "10.0.1.10" # IP da interface S1-U
n9_address = n3_address # O mesmo IP habilita o loopback N9
pfcp_address = "10.0.1.10" # Tanto SGWU-C quanto PGWU-C se conectam aqui
pfcp_port = 8805

Quando usar:

  • Implantações de computação em borda (minimizar latência)
  • Ambientes com restrições de custo (servidor único)
  • Laboratório/testes (configuração simplificada)
  • Implantações pequenas a médias (< 100K assinantes)

Quando NÃO usar:

  • Redundância geográfica necessária (SGWU e PGWU em locais diferentes)
  • Mandatos regulatórios para gateways separados
  • Escala massiva (> 1M assinantes)

Para detalhes completos, exemplos de configuração, solução de problemas e métricas de desempenho, consulte Guia de Operações de Loopback N9.


Como as Funções de Plano do Usuário Funcionam na Rede

A função de plano do usuário (OmniUPF, OmniPGW-U ou OmniSGW-U) opera como o plano de encaminhamento controlado pelo respectivo plano de controle:

  1. Estabelecimento de Sessão

    • 5G: OmniSMF estabelece associação PFCP via interface N4 com OmniUPF
    • 4G: OmniPGW-C ou OmniSGW-C estabelece associação PFCP via Sxb/Sxc com OmniPGW-U/OmniSGW-U
    • O plano de controle cria sessões PFCP para cada sessão PDU do UE (5G) ou contexto PDP (4G)
    • O plano do usuário recebe regras PDR, FAR, QER e URR via PFCP
    • Os mapas eBPF são preenchidos com regras de encaminhamento
  2. Processamento de Pacotes de Uplink (UE → Rede de Dados)

    • 5G: Pacotes chegam na interface N3 do gNB com encapsulação GTP-U
    • 4G: Pacotes chegam na interface S1-U (SGW-U) ou S5/S8 (PGW-U) do eNodeB com encapsulação GTP-U
    • O plano do usuário combina pacotes com PDRs de uplink com base no TEID
    • O programa eBPF aplica QER (limitação de taxa, marcação)
    • FAR determina a ação de encaminhamento (encaminhar, descartar, bufferizar, duplicar)
    • Túnel GTP-U removido, pacotes encaminhados para a interface N6 (5G) ou SGi (4G)
    • URR rastreia contagens de pacotes e bytes para cobrança
  3. Processamento de Pacotes de Downlink (Rede de Dados → UE)

    • 5G: Pacotes chegam na interface N6 como IP nativo
    • 4G: Pacotes chegam na interface SGi como IP nativo
    • O plano do usuário combina pacotes com PDRs de downlink com base no endereço IP do UE
    • Filtros SDF podem classificar ainda mais o tráfego por porta, protocolo ou aplicação
    • FAR determina o túnel GTP-U e parâmetros de encaminhamento
    • Encapsulação GTP-U adicionada com o TEID apropriado
    • 5G: Pacotes encaminhados para a interface N3 em direção ao gNB
    • 4G: Pacotes encaminhados para S1-U (SGW-U) ou S5/S8 (PGW-U) em direção ao eNodeB
  4. Mobilidade e Transferência

    • 5G: OmniSMF atualiza regras PDR/FAR durante cenários de transferência
    • 4G: OmniSGW-C/OmniPGW-C atualiza regras durante a transferência inter-eNodeB ou TAU (Atualização de Área de Rastreamento)
    • O plano do usuário pode bufferizar pacotes durante a troca de caminho
    • Transição sem interrupções entre estações base sem perda de pacotes

Integração com o Plano de Controle (4G e 5G)

OmniUPF integra-se com funções de plano de controle 5G e 4G via interfaces padrão 3GPP:

Interfaces 5G

InterfaceDe → ParaPropósitoEspecificação 3GPP
N4OmniSMF ↔ OmniUPFEstabelecimento, modificação, exclusão de sessão PFCPTS 29.244
N3gNB → OmniUPFTráfego do plano do usuário da RAN (GTP-U)TS 29.281
N6OmniUPF → Rede de DadosTráfego do plano do usuário para DN (IP nativo)TS 23.501
N9OmniUPF ↔ OmniUPFComunicação inter-UPF para roaming/bordaTS 23.501

Interfaces 4G/EPC

InterfaceDe → ParaPropósitoEspecificação 3GPP
SxbOmniSGW-C ↔ OmniUPF (modo SGW-U)Controle de sessão PFCP para gateway de serviçoTS 29.244
SxcOmniPGW-C ↔ OmniUPF (modo PGW-U)Controle de sessão PFCP para gateway PDNTS 29.244
S1-UeNodeB → OmniUPF (modo SGW-U)Tráfego do plano do usuário da RAN (GTP-U)TS 29.281
S5/S8OmniUPF (SGW-U) ↔ OmniUPF (PGW-U)Plano do usuário inter-gateway (GTP-U)TS 29.281
SGiOmniUPF (modo PGW-U) → PDNTráfego do plano do usuário para a rede de dados (IP nativo)TS 23.401

Nota: Todas as interfaces PFCP (N4, Sxb, Sxc) usam o mesmo protocolo PFCP definido na TS 29.244. Os nomes das interfaces diferem, mas o protocolo e os formatos de mensagem são idênticos.

Componentes do UPF

Caminho de Dados eBPF

O caminho de dados eBPF é o mecanismo central de processamento de pacotes que roda no kernel do Linux para desempenho máximo.

Funções Principais:

  • Processamento de GTP-U: Encapsulação e desencapsulação de túneis GTP-U
  • Classificação de Pacotes: Combinação de pacotes com regras PDR usando TEID, IP do UE ou filtros SDF
  • Aplicação de QoS: Aplicar limitação de taxa e marcação de pacotes por regras QER
  • Decisões de Encaminhamento: Executar ações FAR (encaminhar, descartar, bufferizar, duplicar, notificar)
  • Rastreamento de Uso: Incrementar contadores URR para cobrança baseada em volume

Mapas eBPF: O caminho de dados usa mapas eBPF (tabelas hash na memória do kernel) para armazenamento de regras:

Nome do MapaPropósitoChaveValor
uplink_pdr_mapPDRs de uplinkTEID (32 bits)Informações PDR (ID FAR, ID QER, IDs URR)
downlink_pdr_mapPDRs de downlink (IPv4)Endereço IP do UEInformações PDR
downlink_pdr_map_ip6PDRs de downlink (IPv6)Endereço IPv6 do UEInformações PDR
far_mapRegras de encaminhamentoID FARParâmetros de encaminhamento (ação, informações do túnel)
qer_mapRegras de QoSID QERParâmetros de QoS (MBR, GBR, marcação)
urr_mapRastreamento de usoID URRContadores de volume (uplink, downlink, total)
sdf_filter_mapFiltros SDFID PDRFiltros de aplicação (portas, protocolos)

Características de Desempenho:

  • Zero-cópia: Pacotes processados inteiramente no espaço do kernel
  • Suporte a XDP: Anexar no nível do driver de rede para latência sub-microsegundo
  • Multi-core: Escala entre núcleos de CPU com suporte a mapas por CPU
  • Capacidade: Milhões de PDRs/FARs em mapas eBPF (limitado pela memória do kernel)

Para monitoramento de capacidade, consulte Gerenciamento de Capacidade.


Manipulador de Interface PFCP

A interface PFCP implementa a 3GPP TS 29.244 para comunicação com SMF ou PGW-C.

Funções Principais:

  • Gerenciamento de Associação: Batimento de coração PFCP e configuração/liberação de associação
  • Ciclo de Vida da Sessão: Criar, modificar e excluir sessões PFCP
  • Instalação de Regras: Traduzir IEs PFCP em entradas de mapa eBPF
  • Relatório de Eventos: Notificar SMF sobre limites de uso, erros ou eventos de sessão

Suporte a Mensagens PFCP:

Tipo de MensagemDireçãoPropósito
Configuração de AssociaçãoSMF → UPFEstabelecer associação de controle PFCP
Liberação de AssociaçãoSMF → UPFDestruir associação PFCP
Batimento de CoraçãoBidirecionalManter associação ativa
Estabelecimento de SessãoSMF → UPFCriar nova sessão PDU com PDR/FAR/QER/URR
Modificação de SessãoSMF → UPFAtualizar regras para mobilidade, mudanças de QoS
Exclusão de SessãoSMF → UPFRemover sessão e todas as regras associadas
Relatório de SessãoUPF → SMFRelatar 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)

CategoriaEndpointsDescrição
Saúde/healthVerificação de saúde e status
Configuração/configConfiguração do UPF
Sessões/pfcp_sessions, /pfcp_associationsDados de sessão/associação PFCP
PDRs/uplink_pdr_map, /downlink_pdr_map, /downlink_pdr_map_ip6, /uplink_pdr_map_ip6Regras de detecção de pacotes
FARs/far_mapRegras de ação de encaminhamento
QERs/qer_mapRegras de aplicação de QoS
URRs/urr_mapRegras de relatório de uso
Buffers/bufferStatus e controle do buffer de pacotes
Estatísticas/packet_stats, /route_stats, /xdp_stats, /n3n6_statsMétricas de desempenho
Capacidade/map_infoCapacidade e uso de mapas eBPF
Dataplane/dataplane_configEndereços das interfaces N3/N9

Para detalhes da API e uso, consulte Guia de Monitoramento.


Painel de Controle Web

O Painel de Controle Web fornece um painel em tempo real para monitoramento e gerenciamento do UPF.

Recursos:

  • Visualização de Sessões: Navegar por sessões PFCP ativas com IP do UE, TEID e contagens de regras
  • Gerenciamento de Regras: Visualizar e gerenciar PDRs, FARs, QERs e URRs em todas as sessões
  • Monitoramento de Buffers: Rastrear pacotes bufferizados e controlar a bufferização por FAR
  • Painel de Estatísticas: Estatísticas em tempo real de pacotes, rotas, XDP e interfaces N3/N6
  • Monitoramento de Capacidade: Uso de mapas eBPF com indicadores de capacidade codificados por cores
  • Visualização de Configuração: Exibir configuração do UPF e endereços do dataplane
  • Visualizador de Logs: Streaming de logs ao vivo para solução de problemas

Para operações detalhadas da interface, consulte Guia de Operações da Interface Web.

Integração do Protocolo PFCP e SMF

Associação PFCP

Antes que as sessões possam ser criadas, o SMF deve estabelecer uma associação PFCP com o UPF.

Ciclo de Vida da Associação:

Pontos Chave:

  • Cada SMF estabelece uma associação com o UPF
  • O UPF rastreia a associação pelo ID do Nó (FQDN ou endereço IP)
  • Mensagens de batimento de coração mantêm a vivacidade da associação
  • Todas as sessões sob uma associação são excluídas se a associação for liberada

Para visualizar associações, consulte Visualização de Sessões.


Detecção de Reinício do SMF e Limpeza de Sessões Órfãs

O OmniUPF detecta automaticamente quando um SMF reinicia e limpa sessões órfãs de acordo com as especificações da 3GPP TS 29.244.

Como Funciona:

Quando um SMF estabelece uma associação PFCP, ele fornece um Timestamp de Recuperação indicando quando começou. O OmniUPF armazena esse timestamp para cada associação. Se o SMF reiniciar:

  1. O SMF perde todo o estado da sessão na memória
  2. O SMF restabelece a associação PFCP com o UPF
  3. O SMF envia um novo Timestamp de Recuperação (diferente do anterior)
  4. O UPF detecta a mudança de timestamp = SMF reiniciado
  5. O UPF exclui automaticamente todas as sessões órfãs da antiga instância do SMF
  6. 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:

  1. 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.

  2. Comparação de Timestamp: Se o Timestamp de Recuperação for idêntico, as sessões são mantidas (SMF reconectado sem reiniciar).

  3. Conformidade com 3GPP: Esse comportamento é exigido pela Seção 5.22.2 da 3GPP TS 29.244:

    "Se o Timestamp de Recuperação da função CP mudou desde a última Configuração de Associação, a função UP deve considerar que a função CP reiniciou e deve excluir todas as sessões PFCP associadas a essa função CP."

Para solucionar problemas de sessões órfãs, consulte Detecção de Sessões Órfãs.


Manipulação de Indicações de Erro GTP-U

O OmniUPF lida com mensagens de Indicação de Erro GTP-U de pares a jusante (PGW-U, SGW-U, eNodeB, gNodeB) de acordo com as especificações da 3GPP TS 29.281.

O que são Indicações de Erro:

Quando o OmniUPF encaminha um pacote GTP-U para um par remoto (por exemplo, PGW-U em implantação SGW-U), o par pode enviar uma Indicação de Erro se não reconhecer o TEID (Identificador de Ponto de Túnel). Isso indica:

  • O par remoto reiniciou e perdeu o estado do túnel
  • O túnel nunca foi criado no lado remoto (incompatibilidade de configuração)
  • O túnel já foi excluído no lado remoto

Como Funciona:

  1. UPF encaminha pacote → Envia pacote GTP-U com TEID X para o par remoto (porta 2152)
  2. Par remoto não reconhece TEID X → Procura TEID na sua tabela de túneis, não encontrado
  3. Par remoto envia Indicação de Erro → Mensagem GTP-U tipo 26 com IE contendo TEID errôneo
  4. UPF recebe Indicação de Erro → Analisa a mensagem para extrair TEID X
  5. UPF encontra sessões afetadas → Procura todas as sessões por FARs que encaminham para TEID X
  6. UPF exclui sessões → Remove sessões dos mapas eBPF e do estado PFCP
  7. UPF atualiza métricas → Incrementa contadores do Prometheus para monitoramento

Fluxo de Indicação de Erro:

Formato do Pacote (Seção 7.3.1 da 3GPP TS 29.281):

Indicação de Erro GTP-U:
┌─────────────────────────────────────────┐
│ Cabeçalho GTP-U (12 bytes) │
├─────────────────────────────────────────┤
│ Versão, PT, Flags │ 0x32 │
│ Tipo de Mensagem │ 26 (0x1A) │
│ Comprimento │ 9 bytes │
│ TEID │ 0 (sempre) │
│ Número de Sequência │ varia │
│ Número de N-PDU │ 0 │
│ Próximo Cabeçalho de Extensão │ 0 │
├─────────────────────────────────────────┤
│ IE: Dados TEID I (5 bytes) │
├─────────────────────────────────────────┤
│ Tipo │ 16 (0x10) │
│ TEID errôneo │ 4 bytes │
└─────────────────────────────────────────┘

Quando Isso Importa:

Cenário 1: Reinício do PGW-U na Arquitetura GTP S5/S8

  • SGW-U (OmniUPF) encaminha tráfego S5/S8 para PGW-U
  • PGW-U reinicia e perde todo o estado do túnel S5/S8
  • SGW-U continua encaminhando para TEIDs antigos
  • PGW-U envia Indicações de Erro
  • SGW-U para automaticamente de usar túneis mortos

Cenário 2: Reinício do UPF Par na Arquitetura N9

  • UPF-1 (OmniUPF) encaminha tráfego N9 para UPF-2
  • UPF-2 reinicia
  • UPF-1 recebe Indicações de Erro
  • UPF-1 limpa sessões

Exemplo de Log:

Ao receber uma Indicação de Erro:

WARN: Recebida Indicação de Erro GTP-U de 192.168.50.10:2152 para TEID 0x12345678 - par remoto não reconhece este TEID
WARN: Encontrada sessão LocalSEID=42 com FAR GlobalId=1 encaminhando para TEID errôneo 0x12345678 do par 192.168.50.10
INFO: Excluindo sessão LocalSEID=42 devido à Indicação de Erro GTP-U para TEID 0x12345678 de 192.168.50.10
WARN: Excluídas 1 sessão(ões) devido à Indicação de Erro GTP-U para TEID 0x12345678 do par 192.168.50.10

Métricas do Prometheus:

Monitore a atividade de Indicações de Erro com granularidade por par e por nó:

# Total de Indicações de Erro recebidas de pares
upf_buffer_listener_error_indications_received_total{node_id="pgw-u-1",peer_address="192.168.50.10"}

# Sessões excluídas devido a Indicações de Erro
upf_buffer_listener_error_indication_sessions_deleted_total{node_id="pgw-u-1",peer_address="192.168.50.10"}

# Indicações de Erro enviadas (para TEIDs de entrada desconhecidos)
upf_buffer_listener_error_indications_sent_total{node_id="enodeb-1",peer_address="10.60.0.1"}

Rótulos de Métricas:

  • node_id: ID do Nó PFCP da associação (ou "desconhecido" se nenhuma associação existir)
  • peer_address: Endereço IP do par remoto

Essas métricas ajudam a identificar pares problemáticos e rastrear padrões de Indicações de Erro por nó de plano de controle.

Notas Importantes:

  1. Limpeza Automática: Nenhuma intervenção do operador necessária - as sessões são excluídas automaticamente

  2. Correspondência de TEID: Apenas sessões com FARs encaminhando para o TEID errôneo exato são excluídas

  3. Isolamento por Par: Indicações de Erro de um par apenas afetam sessões que encaminham para aquele par

  4. Múltiplas Sessões: Se várias sessões encaminham para o mesmo TEID morto, todas são excluídas

  5. 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)
  6. Manipulação de Pacote Malformado: Indicações de Erro inválidas são registradas e ignoradas (nenhuma sessão excluída)

Para solucionar problemas de Indicações de Erro, consulte Depuração de Indicações de Erro GTP-U.


Criação de Sessão PFCP

Quando um UE estabelece uma sessão PDU (5G) ou contexto PDP (LTE), o SMF cria uma sessão PFCP no UPF.

Fluxo de Estabelecimento de Sessão:

Conteúdos Típicos da Sessão:

  • PDR de Uplink: Combinar no TEID N3, encaminhar via FAR para N6
  • PDR de Downlink: Combinar no endereço IP do UE, encaminhar via FAR para N3 com encapsulação GTP-U
  • FAR: Parâmetros de encaminhamento (criação de cabeçalho externo, instância de rede)
  • QER: Limites de QoS (MBR, GBR) e marcação de pacotes (QFI)
  • URR: Relatório de volume para cobrança (opcional)

Modificação de Sessão PFCP

O SMF pode modificar sessões para eventos de mobilidade (transferência), mudanças de QoS ou atualizações de serviço.

Cenários Comuns de Modificação:

  1. Transferência (baseada em N2)

    • Atualizar FAR de uplink com novo ponto de túnel do gNB (F-TEID)
    • Opcionalmente bufferizar pacotes durante a troca de caminho
    • Limpar o buffer para o novo caminho quando estiver pronto
  2. Mudança de QoS

    • Atualizar QER com novos valores de MBR/GBR
    • Pode adicionar/remover filtros SDF em PDR para QoS específica de aplicação
  3. Atualização de Serviço

    • Adicionar novos PDRs para fluxos de tráfego adicionais
    • Modificar FARs para mudanças de roteamento

Fluxo de Modificação de Sessão:

Para gerenciamento de regras, consulte Guia de Gerenciamento de Regras.


Exclusão de Sessão PFCP

Quando uma sessão PDU é liberada, o SMF exclui a sessão PFCP no UPF.

Fluxo de Exclusão de Sessão:

Limpeza Realizada:

  • Todos os PDRs removidos (uplink e downlink)
  • Todos os FARs, QERs, URRs removidos
  • Buffers de pacotes limpos
  • Relatório final de uso enviado ao SMF para cobrança

Operações Comuns

O OmniUPF fornece capacidades operacionais abrangentes através de seu painel de controle baseado na web e API REST. Esta seção cobre tarefas operacionais comuns e suas significâncias.

Monitoramento de Sessões

Entendendo Sessões PFCP:

As sessões PFCP representam sessões PDU ativas do UE (5G) ou contextos PDP (LTE). Cada sessão contém:

  • SEIDs local e remoto (Identificadores de Ponto de Sessão)
  • PDRs para classificação de pacotes
  • FARs para decisões de encaminhamento
  • QERs para aplicação de QoS (opcional)
  • URRs para rastreamento de uso (opcional)

Operações Chave de Sessão:

  • Visualizar todas as sessões com endereços IP do UE, TEIDs e contagens de regras
  • Filtrar sessões por endereço IP ou TEID
  • Inspecionar detalhes da sessão incluindo configurações completas de PDR/FAR/QER/URR
  • Monitorar contagens de sessão por associação PFCP

Para procedimentos detalhados de sessão, consulte Visualização de Sessões.


Gerenciamento de Regras

Regras de Detecção de Pacotes (PDR):

As PDRs determinam quais pacotes correspondem a fluxos de tráfego específicos. Os operadores podem:

  • Visualizar PDRs de uplink indexados por TEID da interface N3
  • Visualizar PDRs de downlink indexados por endereço IP do UE (IPv4 e IPv6)
  • Inspecionar filtros SDF para classificação específica de aplicação
  • Monitorar contagens de PDR e uso de capacidade

Regras de Ação de Encaminhamento (FAR):

As FARs definem o que fazer com pacotes correspondentes. Os operadores podem:

  • Visualizar ações FAR (ENCAMINHAR, DESCARTAR, BUFFERIZAR, DUPLICAR, NOTIFICAR)
  • Inspecionar parâmetros de encaminhamento (criação de cabeçalho externo, destino)
  • Monitorar status de bufferização por FAR
  • Alternar bufferização para FARs específicas durante solução de problemas

Regras de Aplicação de QoS (QER):

As QERs aplicam limites de largura de banda e marcação de pacotes. Os operadores podem:

  • Visualizar parâmetros de QoS (MBR, GBR)
  • Monitorar QERs ativas por sessão
  • Inspecionar marcações QFI para fluxos de QoS 5G

Regras de Relatório de Uso (URR):

As URRs rastreiam volumes de dados para cobrança. Os operadores podem:

  • Visualizar contadores de volume (uplink, downlink, total de bytes)
  • Monitorar limites de uso e gatilhos de relatório
  • Inspecionar URRs ativas em todas as sessões

Para operações de regras, consulte Guia de Gerenciamento de Regras.


Bufferização de Pacotes

Por que a Bufferização é Crítica para o UPF

A bufferização de pacotes é uma das funções mais importantes de um UPF porque previne a perda de pacotes durante eventos de mobilidade e reconfigurações de sessão. Sem bufferização, os usuários móveis experimentariam desconexões, downloads interrompidos e falhas em comunicações em tempo real toda vez que se movessem entre torres de celular ou quando as condições da rede mudassem.

O Problema: Perda de Pacotes Durante a Mobilidade

Em redes móveis, os usuários estão constantemente se movendo. Quando um dispositivo se move de uma torre de celular para outra (transferência), ou quando a rede precisa reconfigurar o caminho de dados, há uma janela crítica onde pacotes estão em trânsito, mas o novo caminho ainda não está pronto:

Sem bufferização: Pacotes que chegam durante essa janela crítica seriam descartados, causando:

  • Conexões TCP estagnadas ou redefinidas (navegação na web, downloads interrompidos)
  • Chamadas de vídeo congeladas ou descartadas (Zoom, Teams, chamadas do WhatsApp falham)
  • Sessões de jogos desconectadas (jogos online, aplicativos em tempo real falham)
  • Chamadas VoIP com lacunas ou que caem completamente (chamadas telefônicas interrompidas)
  • Downloads que falham e precisam ser reiniciados

Com bufferização: OmniUPF retém temporariamente pacotes até que o novo caminho seja estabelecido, então os encaminha sem problemas. O usuário experimenta zero interrupção.


Quando a Bufferização Acontece

OmniUPF bufferiza pacotes nessas situações críticas:

1. Transferência Baseada em N2 (5G) / Transferência Baseada em X2 (4G)

Quando um UE se move entre torres de celular:

Linha do Tempo:

  • T+0ms: Caminho antigo ainda ativo
  • T+10ms: SMF diz ao UPF para bufferizar (caminho antigo fechando, novo caminho não pronto)
  • T+10-50ms: Janela crítica de bufferização - pacotes chegam, mas não podem ser encaminhados
  • T+50ms: Novo caminho pronto, SMF diz ao UPF para encaminhar
  • T+50ms+: UPF limpa pacotes bufferizados para novo caminho, então encaminha novos pacotes normalmente

Sem bufferização: ~40ms de pacotes (potencialmente milhares) seriam perdidos. Com bufferização: Zero perda de pacotes, transferência sem interrupções.


2. Modificação de Sessão (Mudança de QoS, Atualização de Caminho)

Quando a rede precisa mudar parâmetros da sessão:

  • Atualização/diminuição de QoS: Usuário se move de cobertura 4G para 5G (modo NSA)
  • Mudança de política: Usuário corporativo entra no campus corporativo (mudanças de direcionamento de tráfego)
  • Otimização de rede: A rede central redireciona tráfego para um UPF mais próximo (atualização ULCL)

Durante a modificação, o plano de controle pode precisar atualizar várias regras de forma atômica. A bufferização garante que os pacotes não sejam encaminhados com conjuntos de regras parciais/inconsistentes.


3. Notificação de Dados de Downlink (Recuperação em Modo Ocioso)

Quando um UE está em modo ocioso (tela desligada, economia de bateria) e dados de downlink chegam:

Sem bufferização: O pacote inicial que acionou a notificação seria perdido, exigindo que o remetente retransmitisse (aumenta a latência). Com bufferização: O pacote que acordou o UE é entregue imediatamente quando o UE reconecta.


4. Transferência Inter-RAT (4G ↔ 5G)

Quando um UE se move entre 4G e 5G:

  • Mudanças de arquitetura (eNodeB ↔ gNB)
  • Mudanças nos pontos de túnel (alocação de TEID diferente)
  • A bufferização garante uma transição suave entre tipos de RAT

Como a Bufferização Funciona no OmniUPF

Mecanismo Técnico:

OmniUPF usa uma arquitetura de bufferização em duas etapas:

  1. Etapa eBPF (Kernel): Detecta pacotes que requerem bufferização com base em flags de ação FAR
  2. Etapa de Espaço do Usuário: Armazena e gerencia pacotes bufferizados na memória

Processo de Bufferização:

Detalhes Chave:

  • Porta de Buffer: Porta UDP 22152 (pacotes enviados do eBPF para o espaço do usuário)
  • Encapsulação: Pacotes embrulhados em GTP-U com ID FAR como TEID
  • Armazenamento: Buffers em memória por FAR com metadados (timestamp, direção, tamanho do pacote)
  • Limites:
    • Limite por FAR: 10.000 pacotes (padrão)
    • Limite global: 100.000 pacotes em todos os FARs
    • TTL: 30 segundos (padrão) - pacotes mais velhos que TTL são descartados
  • Limpeza: Processo em segundo plano remove pacotes expirados a cada 60 segundos

Ciclo de Vida do Buffer:

  1. Bufferização Habilitada: SMF define ação FAR BUFF=1 (bit 2) via Modificação de Sessão PFCP
  2. Pacotes Bufferizados: eBPF detecta flag BUFF, encapsula pacotes, envia para a porta 22152
  3. Armazenamento do Espaço do Usuário: Gerenciador de buffer armazena pacotes com ID FAR, timestamp, direção
  4. Bufferização Desabilitada: SMF define ação FAR FORW=1, BUFF=0 com novos parâmetros de encaminhamento
  5. Limpar Buffer: Gerenciador do espaço do usuário reproduz pacotes bufferizados usando novas regras FAR (novo ponto de túnel)
  6. 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árioSem BufferizaçãoCom Bufferização
Chamada de Vídeo Durante a TransferênciaChamada congela por 1-2 segundos, pode cairSem interrupções, nenhuma interrupção
Download de Arquivo na Borda da CélulaDownload falha, precisa reiniciarDownload continua sem interrupções
Jogos Online Enquanto se MoveConexão cai, expulso do jogoJogo suave, sem desconexões
Chamada VoIP no CarroChamada cai a cada transferênciaCristalina, sem quedas
Streaming de Vídeo no TremVídeo bufferiza, qualidade caiReprodução suave
Hotspot Móvel para LaptopSessão SSH cai, chamada de vídeo falhaTodas as conexões mantidas

Benefícios para o Operador de Rede:

  • Redução da Taxa de Queda de Chamadas (CDR): KPI crítico para qualidade da rede
  • Maior Satisfação do Cliente: Usuários não percebem transferências
  • Menores Custos de Suporte: Menos reclamações sobre conexões caindo
  • Vantagem Competitiva: "Melhor rede para cobertura" marketing

Operações de Gerenciamento de Buffer

Os operadores podem monitorar e controlar a bufferização através da Interface Web e API:

Monitoramento:

  • Visualizar pacotes bufferizados por ID FAR (contagem, bytes, idade)
  • Rastrear uso de buffer em relação aos limites (por FAR, global)
  • Alertar sobre overflow de buffer ou duração excessiva de bufferização
  • Identificar buffers presos (pacotes bufferizados > limite TTL)

Operações de Controle:

  • Limpar buffers: Acionar manualmente a reprodução do buffer (solução de problemas)
  • Limpar buffers: Descartar pacotes bufferizados (limpar buffers presos)
  • Ajustar TTL: Alterar tempo de expiração dos pacotes
  • Modificar limites: Aumentar capacidade de buffer por FAR ou global

Solução de Problemas:

  • Buffer não limpando: Verifique se o SMF enviou atualização de FAR para desabilitar bufferização
  • Overflow de buffer: Aumente limites ou investigue por que a duração da bufferização é excessiva
  • Pacotes antigos no buffer: TTL pode estar muito alto, ou atualização de FAR atrasada
  • Bufferização excessiva: Pode indicar problemas de mobilidade ou problemas com o SMF

Para operações detalhadas de buffer, consulte Guia de Gerenciamento de Buffer.


Configuração de Buffer

Configure o comportamento de bufferização em /etc/omniupf/runtime.exs:

# Configurações de Buffer
buffer_port = 22152 # Porta UDP para pacotes bufferizados (padrão)

Recomendações:

  • Redes de alta mobilidade (estradas, trens): Aumente buffer_max_packets para 20.000+
  • Áreas urbanas densas (transferências frequentes): Diminua buffer_packet_ttl para 15s
  • Aplicações de baixa latência: Defina buffer_packet_ttl para 10s para evitar dados obsoletos
  • Redes IoT: Diminua limites (dispositivos IoT geram menos tráfego durante a transferência)

Para opções completas de configuração, consulte Guia de Configuração.


Estatísticas e Monitoramento

Estatísticas de Pacotes:

Métricas de processamento de pacotes em tempo real, incluindo:

  • Pacotes RX: Total recebido de todas as interfaces
  • Pacotes TX: Total transmitido para todas as interfaces
  • Pacotes descartados: Pacotes descartados devido a erros ou políticas
  • Pacotes GTP-U: Contagens de pacotes encapsulados

Estatísticas de Rota:

Métricas de encaminhamento por rota:

  • Acertos de Rota: Pacotes correspondidos por cada rota
  • Contagens de Encaminhamento: Sucesso/falha por destino
  • Contadores de Erro: TEIDs inválidos, IPs desconhecidos do UE

Estatísticas de XDP:

Métricas de desempenho do eXpress Data Path:

  • XDP processados: Pacotes tratados na camada XDP
  • XDP passados: Pacotes enviados para a pilha de rede
  • XDP descartados: Pacotes descartados na camada XDP
  • XDP abortados: Erros de processamento

Estatísticas da Interface N3/N6:

Contadores de tráfego por interface:

  • N3 RX/TX: Tráfego de/para a RAN (gNB/eNodeB)
  • N6 RX/TX: Tráfego de/para a rede de dados
  • Contagens totais de pacotes: Estatísticas agregadas da interface

Para detalhes sobre monitoramento, consulte Guia de Monitoramento.


Gerenciamento de Capacidade

Monitoramento de Capacidade de Mapas eBPF:

O desempenho do UPF depende da capacidade dos mapas eBPF. Os operadores podem:

  • Monitorar uso de mapas com indicadores de porcentagem em tempo real
  • Visualizar limites de capacidade para cada mapa eBPF
  • Alertas codificados por cores:
    • Verde (<50%): Normal
    • Amarelo (50-70%): Cuidado
    • Âmbar (70-90%): Aviso
    • Vermelho (>90%): Crítico

Mapas Críticos a Monitorar:

  • uplink_pdr_map: Classificação de tráfego de uplink
  • downlink_pdr_map: Classificação de tráfego de downlink IPv4
  • far_map: Regras de encaminhamento
  • qer_map: Regras de QoS
  • urr_map: Rastreamento de uso

Planejamento de Capacidade:

  • Cada PDR consome uma entrada de mapa (tamanho da chave + tamanho do valor)
  • A capacidade do mapa é configurada na inicialização do UPF (limite de memória do kernel)
  • Exceder a capacidade causa falhas na criação de sessões

Para monitoramento de capacidade, consulte Gerenciamento de Capacidade.


Gerenciamento de Configuração

Configuração do UPF:

Visualize e verifique os parâmetros operacionais do UPF:

  • Interface N3: Endereço IP para conectividade com a RAN (GTP-U)
  • Interface N6: Endereço IP para conectividade com a rede de dados
  • Interface N9: Endereço IP para comunicação inter-UPF (opcional)
  • Interface PFCP: Endereço IP para conectividade com SMF
  • Porta da API: Porta de escuta da API REST
  • Endpoint de Métricas: Porta de métricas do Prometheus

Configuração do Dataplane:

Parâmetros ativos do caminho de dados eBPF:

  • Endereço N3 ativo: Ligação da interface N3 em tempo de execução
  • Endereço N9 ativo: Ligação da interface N9 em tempo de execução (se habilitada)

Para visualização de configuração, consulte Visualização de Configuração.

Solução de Problemas

Esta seção cobre problemas operacionais comuns e suas estratégias de resolução.

Falhas no Estabelecimento de Sessão

Sintomas: Sessões PFCP falham ao criar, UE não consegue estabelecer conectividade de dados

Causas Raiz Comuns:

  1. 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
  2. Capacidade do Mapa eBPF Exaurida

    • Verifique a visualização de Capacidade para uso de mapa vermelho (>90%)
    • Aumente os tamanhos dos mapas eBPF na configuração do UPF
    • Exclua sessões obsoletas se o mapa estiver cheio
  3. 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
  4. 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:

  1. Configuração de PDR Incorreta

    • Verifique se o TEID de uplink PDR corresponde ao TEID atribuído pelo gNB
    • Verifique se o PDR de downlink IP do UE corresponde ao IP atribuído
    • Inspecione filtros SDF para regras excessivamente restritivas
  2. Problemas de Ação FAR

    • Verifique se a ação FAR é ENCAMINHAR (não DESCARTAR ou BUFFERIZAR)
    • Verifique os parâmetros de criação de cabeçalho externo para GTP-U
    • Certifique-se de que o endpoint de destino está correto
  3. Limites de QoS Excedidos

    • Verifique as configurações de QER MBR (Taxa