Pular para o conteúdo principal

PCRF (Função de Regras de Política e Cobrança)

Visão Geral

O HSS inclui um PCRF (Função de Regras de Política e Cobrança) embutido que fornece controle de política e regras de cobrança para sessões de dados móveis. O PCRF controla políticas de Qualidade de Serviço (QoS), alocação de largura de banda e regras de cobrança para portadoras padrão e dedicadas em redes LTE.

Principais Capacidades

  • Interface Gx: Controle de política para PGW/PCEF (Gateway de Rede de Dados por Pacote / Função de Aplicação de Política e Cobrança)
  • Interface Rx: Autorização e QoS para fluxos de mídia IMS (Subsistema Multimídia IP)
  • Gerenciamento Dinâmico de Políticas: Atualizações de políticas em tempo real via Re-Auth Requests (RAR)
  • Suporte a VoLTE: Criação de portadora dedicada para chamadas de voz com QoS garantido
  • Regras de Cobrança: Definir comportamento de cobrança e perfis de velocidade usando Traffic Flow Templates (TFTs)
  • REST API: Controle programático da aplicação de políticas e gerenciamento de regras

Arquitetura

Interfaces Diameter

InterfaceID da AplicaçãoParPropósito
Gx16.777.238PGW (PCEF)Gerenciamento de sessão PDN, aplicação de QoS, regras de cobrança
Rx16.777.236P-CSCF (AF)Autorização de mídia IMS, reserva de largura de banda

Gerenciamento de Estado da Sessão

O PCRF mantém o estado da sessão para conexões PDN ativas e chamadas VoLTE:

Interface Gx

Operações Suportadas

1. Solicitação de Controle de Crédito - Inicial (CCR-I)

Gatilho: PGW cria nova conexão PDN para o assinante

AVPs de Solicitação:

  • Session-Id
  • Origin-Host, Origin-Realm
  • Subscription-Id (contém IMSI)
  • Called-Station-Id (nome APN)
  • IP-CAN-Type (tipo de Rede de Acesso à Conectividade IP)
  • RAT-Type (Tecnologia de Acesso Rádio)
  • Framed-IP-Address (endereço IP do UE)

Ações do PCRF:

  1. Procurar assinante pelo IMSI
  2. Recuperar perfil APN e configuração de QoS
  3. Criar entrada de rastreamento de sessão
  4. Construir políticas de QoS a partir do perfil APN

AVPs de Resposta:

  • Result-Code: 2001 (DIAMETER_SUCCESS)
  • QoS-Information (limites de largura de banda agregada do APN)
  • Default-EPS-Bearer-QoS (QCI, ARP, prioridade)
  • Bearer-Control-Mode

2. Solicitação de Controle de Crédito - Atualização (CCR-U)

Gatilho: PGW relata mudanças na sessão (atualização de localização, mudança de RAT, etc.)

Ações do PCRF:

  1. Localizar sessão existente pelo ID da sessão
  2. Atualizar parâmetros da sessão (tipo de RAT, localização, etc.)
  3. Retornar políticas atualizadas, se necessário

Resposta: Result-Code 2001 com atualizações de política opcionais

3. Solicitação de Controle de Crédito - Terminar (CCR-T)

Gatilho: PGW termina a conexão PDN

A��ões do PCRF:

  1. Localizar sessão pelo ID da sessão
  2. Excluir sessão e registros de chamadas associados
  3. Confirmar a terminação

Resposta: Result-Code 2001

4. Re-Auth Request (RAR)

Direção: PCRF → PGW (HSS inicia)

Gatilho:

  • Configuração de chamada IMS (Rx AAR aciona Gx RAR)
  • Desconexão de chamada IMS (Rx STR aciona Gx RAR)
  • Reautenticação manual via REST API

AVPs RAR:

  • Session-Id (ID da sessão PGW)
  • Auth-Application-Id: 16.777.238
  • Re-Auth-Request-Type (0 = Apenas Autorizar)
  • Charging-Rule-Install/Remove
  • QoS-Information (para portadoras dedicadas)

Ações do PGW: Criar/modificar/excluir portadoras dedicadas com base nas regras de cobrança

Regras de Cobrança e Traffic Flow Templates

O PCRF suporta a definição de regras de cobrança com Traffic Flow Templates (TFTs) para controlar:

  • Cobrança específica de serviço - Tarifas diferentes para vídeo, jogos, redes sociais, etc.
  • Perfis de velocidade - Limitar ou priorizar tráfego que corresponda a padrões específicos
  • Políticas baseadas em uso - Aplicar diferentes QoS com base no tipo de tráfego ou destino

As regras de cobrança podem ser:

  • Instaladas dinamicamente via Gx RAR com base na detecção de aplicativos
  • Pré-definidas e acionadas por condições específicas (hora do dia, localização, cota)
  • Associadas a TFTs usando regras de filtro de pacotes (5-tuple: protocolo, IP de origem/destino, porta de origem/destino)

Casos de Uso Comuns:

  • Zero-rating - Acesso ilimitado a serviços específicos (Spotify, WhatsApp, Facebook) sem consumir cota de dados
  • Acesso pós-cota - Permitir portal de autoatendimento e sites de suporte mesmo após o assinante esgotar a cota de dados
  • Velocidade em camadas - Alta velocidade para serviços premium, limitada para conteúdo padrão
  • Políticas baseadas em tempo - Streaming ilimitado fora do pico, priorização em horários de pico
  • Políticas de roaming - Cobrança diferente para uso de dados internacional vs doméstico
  • SLAs empresariais - QoS garantido para aplicativos críticos para os negócios

Estrutura da Política de QoS

QoS da Portadora Padrão (do perfil APN):

{
"QoS-Class-Identifier": 9, // QCI (9 = portadora padrão)
"APN-Aggregate-Max-Bitrate-UL": 50000, // kbps
"APN-Aggregate-Max-Bitrate-DL": 100000, // kbps
"Allocation-Retention-Priority": {
"Priority-Level": 8,
"Pre-emption-Capability": 1, // Pode ser preemptado
"Pre-emption-Vulnerability": 1 // Pode ser preemptado
}
}

QoS da Portadora Dedicada (para VoLTE):

{
"QoS-Class-Identifier": 1, // QCI 1 = Voz Conversacional
"Max-Requested-Bandwidth-UL": 128000, // bps
"Max-Requested-Bandwidth-DL": 128000, // bps
"Guaranteed-Bitrate-UL": 128000,
"Guaranteed-Bitrate-DL": 128000
}

Interface Rx

Operações Suportadas

1. AA Request (AAR) / AA Answer (AAA)

Gatilho: P-CSCF solicita autorização para sessão de mídia IMS (configuração de chamada VoLTE)

AVPs de Solicitação:

  • Session-Id (identificador da sessão P-CSCF)
  • Subscription-Id (IMSI ou SIP URI)
  • Media-Component-Description
    • Media-Type (áudio, vídeo)
    • Max-Requested-Bandwidth-UL/DL
    • Codec-Data
    • Flow-Description (filtros de pacotes 5-tuple)
  • AF-Application-Identifier

Ações do PCRF:

  1. Procurar assinante pelo IMSI ou SIP URI
  2. Encontrar sessão IMS ativa
  3. Extrair parâmetros de mídia (codec, largura de banda, regras de fluxo)
  4. Criar entrada de rastreamento de chamada
  5. Acionar Gx RAR para PGW para criar portadora dedicada
  6. Aguardar resposta Gx RAA
  7. Retornar Rx AAA com resultado da autorização

AVPs de Resposta:

  • Result-Code: 2001 (sucesso) ou 5063 (serviço não autorizado)

2. Solicitação de Término de Sessão (STR) / Resposta de Término de Sessão (STA)

Gatilho: P-CSCF termina sessão IMS (desconexão da chamada)

Ações do PCRF:

  1. Localizar sessão de chamada pelo ID da sessão P-CSCF
  2. Acionar Gx RAR para PGW para remover portadora dedicada
  3. Excluir entrada de rastreamento de chamada
  4. Retornar confirmação STA

Resposta: Result-Code 2001

Fluxos de Mensagens Comuns

Fluxo 1: Estabelecimento de Sessão PDN

Fluxo 2: Configuração de Chamada VoLTE (Rx AAR → Gx RAR)

Fluxo 3: Desconexão de Chamada VoLTE (Rx STR → Gx RAR)

Fluxo 4: Atualização da Sessão PDN

Fluxo 5: Término da Sessão PDN

Fluxo 6: Reautenticação Manual via REST API

REST API

Endpoint de Reautenticação PCRF

Endpoint: POST /api/operation/pcrf_re_auth

Propósito: Acionar manualmente a Solicitação de Reautenticação Gx para atualizar políticas

Quando Usar: Este endpoint manual é tipicamente usado para solução de problemas ou forçar a atualização de políticas em assinantes específicos. Para atualizações de políticas de rotina (mudança de perfis de QoS do APN), o sistema aciona automaticamente reautenticações para todas as sessões afetadas - nenhuma ação manual é necessária.

Corpo da Solicitação:

{
"imsi": "999999876543210",
"apn": "ims"
}

Resposta de Sucesso (HTTP 200):

{
"data": "Gx Re-Auth Request para 999999876543210 enviado para pgw.epc.mnc999.mcc999.3gppnetwork.org, Result-Code: 2001"
}

Resposta de Erro (HTTP 400):

{
"error": "Não foi possível enviar Re-Auth Request para 999999876543210 no APN ims, nenhuma sessão PDN ativa encontrada"
}

API de Configuração de Políticas

O PCRF recupera políticas de QoS das configurações de APN armazenadas no banco de dados. Essas políticas podem ser criadas e gerenciadas via REST API.

Aplicação Automática de Políticas: Quando você atualiza um perfil de QoS do APN (por exemplo, altera limites de largura de banda ou QCI), o sistema automaticamente envia Solicitações de Reautenticação Gx (RAR) para todos os PGWs com sessões PDN ativas usando esse APN. Isso garante que as mudanças de política sejam aplicadas imediatamente a todos os assinantes conectados sem intervenção manual.

Arquitetura da Política

As políticas são definidas através de uma estrutura de três camadas:

Identificador APN → Perfil QoS do APN → Perfil APN
↓ ↓ ↓
"internet" QCI, AMBR, ARP Liga ambos

1. Criar Identificador APN

Defina o nome do APN e o suporte à versão IP.

Endpoint: POST /api/apn/identifier

Corpo da Solicitação:

{
"apn_identifier": {
"apn": "internet",
"ip_version": "ipv4v6"
}
}

Opções de Versão IP:

  • "ipv4" - Apenas IPv4
  • "ipv6" - Apenas IPv6
  • "ipv4v6" - Pilha dupla (tanto IPv4 quanto IPv6)
  • "ipv4_or_ipv6" - A rede decide (ou IPv4 ou IPv6)

Resposta (HTTP 201):

{
"data": {
"id": 1,
"apn": "internet",
"ip_version": "ipv4v6"
}
}

Validação:

  • apn: Obrigatório, 1-254 caracteres, único
  • ip_version: Obrigatório, deve ser uma das quatro opções acima

Listar Identificadores APN: GET /api/apn/identifier

2. Criar Perfil QoS do APN

Defina os parâmetros de QoS (largura de banda, QCI, prioridade).

Endpoint: POST /api/apn/qos_profile

Corpo da Solicitação:

{
"apn_qos_profile": {
"name": "Melhor Esforço Internet",
"qci": 9,
"allocation_retention_priority": 8,
"apn_ambr_dl_kbps": 100000,
"apn_ambr_ul_kbps": 50000,
"pre_emption_capability": false,
"pre_emption_vulnerability": true
}
}

Parâmetros de QoS:

CampoTipoFaixaDescrição
namestring1-254 charsNome do perfil (único)
qciinteger1-254Identificador de Classe QoS (1-4 = GBR, 5-9 = Non-GBR)
allocation_retention_priorityinteger1-15Nível ARP (1 = maior prioridade)
apn_ambr_dl_kbpsinteger1-4.294.967.293Taxa Máxima Agregada de Bit Rate Downlink do APN (kbps)
apn_ambr_ul_kbpsinteger1-4.294.967.293Taxa Máxima Agregada de Bit Rate Uplink do APN (kbps)
pre_emption_capabilitybooleantrue/falsePode preemptar portadoras de menor prioridade
pre_emption_vulnerabilitybooleantrue/falsePode ser preemptado por portadoras de maior prioridade

Valores Comuns de QCI:

  • 1 - Voz Conversacional (VoLTE) - GBR, 100ms de orçamento de atraso
  • 2 - Vídeo Conversacional - GBR, 150ms de orçamento de atraso
  • 5 - Sinalização IMS - Non-GBR, 100ms de orçamento de atraso
  • 9 - Portadora Padrão (Internet) - Non-GBR, 300ms de orçamento de atraso

Resposta (HTTP 201):

{
"data": {
"id": 1,
"name": "Melhor Esforço Internet",
"qci": 9,
"allocation_retention_priority": 8,
"apn_ambr_dl_kbps": 100000,
"apn_ambr_ul_kbps": 50000,
"pre_emption_capability": false,
"pre_emption_vulnerability": true
}
}

Listar Perfis de QoS: GET /api/apn/qos_profile

3. Criar Perfil APN

Vincule o identificador APN a um perfil de QoS.

Endpoint: POST /api/apn/profile

Corpo da Solicitação:

{
"apn_profile": {
"name": "Perfil APN Internet",
"apn_identifier_id": 1,
"apn_qos_profile_id": 1
}
}

Campos:

Resposta (HTTP 201):

{
"data": {
"id": 1,
"name": "Perfil APN Internet",
"apn_identifier_id": 1,
"apn_qos_profile_id": 1
}
}

Restrições:

  • apn_identifier_id e apn_qos_profile_id devem referenciar registros existentes
  • Cada combinação de identificador APN e perfil de QoS deve ser única

Listar Perfis APN: GET /api/apn/profile

Exemplo Completo de Configuração de Políticas

Passo 1: Criar Política APN IMS (VoLTE)

# 1. Criar Identificador APN
curl -X POST https://hss.example.com:8443/api/apn/identifier \
-H "Content-Type: application/json" \
-d '{
"apn_identifier": {
"apn": "ims",
"ip_version": "ipv4v6"
}
}'
# Resposta: {"data": {"id": 2, ...}}

# 2. Criar Perfil QoS (Sinalização IMS)
curl -X POST https://hss.example.com:8443/api/apn/qos_profile \
-H "Content-Type: application/json" \
-d '{
"apn_qos_profile": {
"name": "QoS de Sinalização IMS",
"qci": 5,
"allocation_retention_priority": 2,
"apn_ambr_dl_kbps": 5000,
"apn_ambr_ul_kbps": 5000,
"pre_emption_capability": true,
"pre_emption_vulnerability": false
}
}'
# Resposta: {"data": {"id": 2, ...}}

# 3. Criar Perfil APN
curl -X POST https://hss.example.com:8443/api/apn/profile \
-H "Content-Type: application/json" \
-d '{
"apn_profile": {
"name": "Perfil APN IMS",
"apn_identifier_id": 2,
"apn_qos_profile_id": 2
}
}'
# Resposta: {"data": {"id": 2, ...}}

Passo 2: Atribuir ao Assinante

Uma vez criado, o perfil APN é atribuído a assinantes via perfis EPC. Veja Referência da API para vincular perfis APN a assinantes.

Atualização e Exclusão de Políticas

Atualizar Perfil QoS:

PATCH /api/apn/qos_profile/{id}
PUT /api/apn/qos_profile/{id}

Exemplo - Aumentar Largura de Banda para Todos os Usuários:

# Atualizar perfil QoS ID 1 para aumentar largura de banda
curl -X PATCH https://hss.example.com:8443/api/apn/qos_profile/1 \
-H "Content-Type: application/json" \
-d '{
"apn_qos_profile": {
"apn_ambr_dl_kbps": 150000,
"apn_ambr_ul_kbps": 75000
}
}'

O que Acontece Automaticamente:

  1. O perfil de QoS é atualizado no banco de dados
  2. O sistema identifica todas as sessões PDN ativas usando APNs vinculados a este perfil de QoS
  3. Para cada sessão ativa, um Gx RAR é enviado ao PGW correspondente
  4. Os PGWs atualizam a QoS da portadora para refletir os novos limites de largura de banda
  5. Todos os assinantes conectados recebem imediatamente a política atualizada

Exemplo de Cenário: Se 100 assinantes estão atualmente conectados na APN "internet" usando o perfil de QoS ID 1, todos os 100 terão seus limites de largura de banda atualizados para 150 Mbps de download / 75 Mbps de upload dentro de segundos após a conclusão da chamada da API.

Nota: Quando você atualiza um perfil de QoS do APN, o sistema aciona automaticamente reautenticação para todas as sessões PDN ativas usando esse APN, aplicando as novas políticas imediatamente aos assinantes conectados. Nenhuma reautenticação manual é necessária.

Excluir Recursos:

DELETE /api/apn/identifier/{id}
DELETE /api/apn/qos_profile/{id}
DELETE /api/apn/profile/{id}

Restrições de Exclusão:

  • Não é possível excluir identificadores APN ou perfis de QoS referenciados por perfis APN
  • Não é possível excluir perfis APN atribuídos a assinantes ativos

Modelos de Políticas

Internet de Alta Velocidade (100 Mbps de download / 50 Mbps de upload):

{
"apn_qos_profile": {
"name": "Internet de Alta Velocidade",
"qci": 9,
"allocation_retention_priority": 8,
"apn_ambr_dl_kbps": 100000,
"apn_ambr_ul_kbps": 50000,
"pre_emption_capability": false,
"pre_emption_vulnerability": true
}
}

Internet Premium (500 Mbps de download / 100 Mbps de upload):

{
"apn_qos_profile": {
"name": "Internet Premium",
"qci": 8,
"allocation_retention_priority": 5,
"apn_ambr_dl_kbps": 500000,
"apn_ambr_ul_kbps": 100000,
"pre_emption_capability": true,
"pre_emption_vulnerability": false
}
}

IoT/M2M (Baixa Largura de Banda):

{
"apn_qos_profile": {
"name": "IoT M2M",
"qci": 9,
"allocation_retention_priority": 10,
"apn_ambr_dl_kbps": 1024,
"apn_ambr_ul_kbps": 512,
"pre_emption_capability": false,
"pre_emption_vulnerability": true
}
}

Serviços de Emergência (Maior Prioridade):

{
"apn_qos_profile": {
"name": "APN de Emergência",
"qci": 5,
"allocation_retention_priority": 1,
"apn_ambr_dl_kbps": 10000,
"apn_ambr_ul_kbps": 10000,
"pre_emption_capability": true,
"pre_emption_vulnerability": false
}
}

Configuração

Configuração do Serviço Diameter

Aplicação Gx (config/runtime.exs):

%{
application_name: :gx,
application_dictionary: :diameter_gen_3gpp_gx,
vendor_specific_application_ids: [
%{vendor_id: 10415, auth_application_id: 16_777_238}
]
}

Aplicação Rx (config/runtime.exs):

%{
application_name: :rx,
application_dictionary: :diameter_gen_3gpp_rx,
vendor_specific_application_ids: [
%{vendor_id: 10415, auth_application_id: 16_777_236}
]
}

Parâmetros de QoS

Os parâmetros de QoS são extraídos de:

  • Portadora Padrão: Configuração do perfil APN no banco de dados

    • apn_qos_profile.qci (Identificador de Classe QoS)
    • apn_qos_profile.apn_ambr_ul_kbps (Taxa Máxima Agregada de Bit Rate Uplink)
    • apn_qos_profile.apn_ambr_dl_kbps (Taxa Máxima Agregada de Bit Rate Downlink)
    • apn_qos_profile.priority_level (Prioridade de Retenção de Alocação)
  • Portadora Dedicada: Extraída da Descrição do Componente de Mídia Rx AAR

    • QCI: 1 (Voz Conversacional)
    • Bitrate Garantido: Dos AVPs de Largura de Banda Máxima Solicitada
    • Filtros de fluxo: Dos AVPs de Descrição de Fluxo

Tratamento de Erros

Código de ResultadoTipoSignificadoCausa
2001SucessoDIAMETER_SUCCESSSolicitação processada com sucesso
5001ExperimentalUsuário não encontradoIMSI não está no banco de dados de assinantes
5002ExperimentalSessão não encontradaSessão PDN não existe para atualização/terminação
5063ExperimentalServiço não autorizadoAutorização de mídia IMS negada

Detalhes da Implementação

Gerenciamento de Sessão

O PCRF rastreia:

  • Sessões PDN Ativas - Uma por APN, por assinante
  • Chamadas VoLTE - Múltiplas chamadas por sessão IMS (suporta chamadas em conferência)
  • Políticas de QoS - Aplicadas dinamicamente com base na configuração do APN
  • Regras de Cobrança - Templates de fluxo de tráfego e políticas específicas de serviço

Recursos Avançados de Política

O PCRF suporta controle avançado de políticas, incluindo:

  • Instalação/remoção de regras de cobrança via interface Gx
  • Correspondência de Traffic Flow Template (TFT) para diferenciação de serviços
  • Perfis de velocidade dinâmicos com base em aplicativo ou tipo de tráfego
  • Políticas conscientes de serviço acionadas por condições de rede ou comportamento do assinante

Entre em contato com seu administrador de sistema para obter informações sobre como configurar regras de cobrança avançadas e políticas baseadas em TFT.

Documentação Relacionada