SGSN (Domínio de Pacotes)
OmniMSC inclui um S4-SGSN integrado que serve o domínio de pacotes (PS) para assinantes 3G (UTRAN) através de Iu-PS, ancorando suas sessões de dados no mesmo S-GW/P-GW que o LTE. Um único nó serve tanto o domínio CS (voz, SMS) quanto o domínio PS (dados de pacotes) para um assinante; o anexo combinado é tratado em processo entre o SGSN e o VLR.
O SGSN está desativado por padrão e habilitado conforme a configuração abaixo. A maioria das dependências externas são opt-in, de modo que um laboratório pode executar o núcleo de pacotes com um par estático e credenciais injetadas antes que um HLR/DNS completo exista.
Arquitetura
Tunnel Direto é utilizado: o plano de usuário GTP-U opera diretamente entre o RNC e o S-GW-U. O SGSN intermedia os pontos finais do túnel durante a configuração do bearer, mas nunca transporta pacotes do plano de usuário. Quando o UE fica ocioso (PMM-IDLE), o SGSN re-ancla o ponto final de downlink de volta em si mesmo, de modo que o S-GW armazena em buffer e gera uma Notificação de Dados de Downlink em vez de enviar para um RNC liberado (TS 23.060 §15.6).
Interfaces
| Interface | Par | Protocolo | Propósito | Referência |
|---|---|---|---|---|
| Iu-PS | RNC | RANAP sobre SCCP/M3UA | Transporte NAS, atribuição de RAB, realocação | TS 25.413 |
| Gr | HLR / AuC | MAP sobre TCAP/SCCP | Atualização de localização, vetores de autenticação, assinatura | TS 29.002 |
| S4 | S-GW (SGW-C) | GTPv2-C | Criar / Modificar / Deletar Sessão, paginação | TS 29.274 |
| S3 | MME | GTPv2-C | Mobilidade inter-RAT de 3G-PS para LTE | TS 29.274 §7.3 |
| Gn/Gp (CAP) | gsmSCF | CAP sobre TCAP/SCCP | Controle / cobrança online CAMEL GPRS | TS 29.078 |
| GTP-U | RNC para S-GW-U | GTP-U (Tunnel Direto) | Plano de usuário (não através do SGSN) | TS 29.281 |
Iu-PS, Gr, S3 e CAP reutilizam as pilhas SS7 e GTPv2-C que o lado CS já executa. S3 e Sv compartilham o servidor GTPv2-C; a interface Sv SRVCC permanece em seu próprio socket.
Configuração
O SGSN lê config :omnimsc, :sgsn e, para as interfaces GTPv2-C, o bloco compartilhado config :gtpc, :service.
config :omnimsc, :sgsn,
enabled: true,
# Área de roteamento que este SGSN serve (anunciada para UEs)
rai: %{mcc: "001", mnc: "01", lac: 1, rac: 1},
# Largura do NRI para alocação de P-TMSI em um pool (0 = sem pool)
nri_bits: 6,
# F-TEIDs de controle S4/S3 deste SGSN anunciados para o S-GW / MME
s4_f_teid: %{teid: "0a0a0a0a", ipv4: "10.0.0.10"},
s3_f_teid: %{teid: "0b0b0b0b", ipv4: "10.0.0.10"},
# Contador de reinício de recuperação GTP-C (TS 23.007 §18)
recovery: 1,
# Pares de núcleo de pacotes estáticos (usados a menos que a seleção DNS esteja habilitada)
sgw: %{ip: "10.179.1.25", port: 2123},
pgw_c: "10.179.1.21",
# APN-AMBR padrão enviado em Criar Sessão quando a assinatura não carrega nenhum
default_apn_ambr: %{ul: 0, dl: 0},
# Seleção de P-GW/S-GW baseada em APN via DNS S-NAPTR (opt-in; padrão desligado)
pgw_dns: false,
sgw_dns: false,
# Temporizador de guarda de liberação Iu (ms) após um Comando de Liberação Iu
iu_release_guard_ms: 5000,
# Substituições de temporizador GMM / SM (ms)
gmm_timers: %{t3350: 6000, t3360: 6000, t3370: 6000, t3312: 3_240_000},
sm_timers: %{t3395: 8000},
# Fallback de assinatura quando Gr Insert Subscriber Data não está conectado
subscribed_apns: ["internet"],
default_apn: "internet",
wildcard_apn: false
config :gtpc,
service: %{
name: :s3,
listen_ip: "10.0.0.10",
listen_port: 2123,
control_module: Omnimsc.Gtpc.Router,
t3: 5000,
n3: 3
}
Parâmetros do Núcleo
| Parâmetro | Tipo | Necessário | Padrão | Descrição |
|---|---|---|---|---|
enabled | Booleano | Não | false | Interruptor mestre para a árvore de processos e interfaces do SGSN. |
rai | Mapa | Sim | - | Identidade da Área de Roteamento (mcc/mnc/lac/rac) anunciada para UEs e usada como a rede servidora. |
nri_bits | Inteiro | Não | 0 | Largura do campo NRI no P-TMSI; alinhar com o pool do MSC. 0 desativa o pooling. |
s4_f_teid | Mapa | Sim | - | F-TEID de controle S4 do SGSN (teid hex, ipv4) que o S-GW endereça para sinalização de bearer. |
s3_f_teid | Mapa | Não | - | F-TEID de controle S3 do SGSN anunciado para o MME para mobilidade inter-RAT. |
recovery | Inteiro | Não | 0 | Contador de reinício de recuperação GTP-C (TS 23.007 §18). Incrementar no reinício do SGSN. |
sgw | Mapa | Não | %{ip: "10.179.1.25", port: 2123} | Par GTP-C S-GW estático usado quando sgw_dns está desligado. |
pgw_c | String | Não | "10.179.1.21" | Endereço GTP-C P-GW estático usado quando pgw_dns está desligado. |
default_apn_ambr | Mapa | Não | %{ul: 0, dl: 0} | APN-AMBR (kbps) colocado em Criar Sessão quando a assinatura não fornece nenhum. 0/0 evita S-GWs de laboratório que rejeitam um valor diferente de zero. |
pgw_dns | Booleano | Não | false | Resolver o P-GW por APN solicitada via DNS S-NAPTR (TS 29.303). Retorna para pgw_c em qualquer falha de DNS. |
sgw_dns | Booleano | Não | false | Resolver o S-GW por APN solicitada via DNS S-NAPTR. Retorna para sgw em qualquer falha de DNS. |
iu_release_guard_ms | Inteiro | Não | 5000 | Tempo a esperar pela conclusão da Liberação Iu RANAP antes de liberar a conexão forçosamente (TS 25.413 §8.5). |
Parâmetros de Temporizador
| Parâmetro | Tipo | Padrão (ms) | Descrição |
|---|---|---|---|
gmm_timers.t3350 | Inteiro | 6000 | Retransmissão de Aceitação de Anexo / Aceitação de RAU / Realoção de P-TMSI aguardando Completo (TS 24.008 §11.2.2). |
gmm_timers.t3360 | Inteiro | 6000 | Retransmissão de Solicitação de Autenticação e Cifragem aguardando Resposta. |
gmm_timers.t3370 | Inteiro | 6000 | Retransmissão de Solicitação de Identidade aguardando Resposta de Identidade. |
gmm_timers.t3312 | Inteiro | 3240000 | Temporizador de RAU móvel / periódico; ao expirar (mais a graça) os contextos MM e PDP são desconectados implicitamente (TS 24.008 §4.7.2.2). |
sm_timers.t3395 | Inteiro | 8000 | Retransmissão de uma Solicitação de Desativação de Contexto PDP solicitada pela rede aguardando Aceitação (TS 24.008 §6.1.3.4.2). |
Todos os temporizadores de retransmissão têm um limite de 5 tentativas antes que o procedimento seja abandonado.
Parâmetros de Assinatura e APN
Usados para validar a APN solicitada quando Gr Insert Subscriber Data não populou uma assinatura ativa (veja Gr MAP). Quando uma assinatura real está presente, ela tem precedência sobre esses valores estáticos.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
subscribed_apns | Lista | [] | Nomes de APN permitidos. Uma APN solicitada fora desta lista é rejeitada com a causa SM 33 (TS 24.008 §10.5.6.6). Vazio desativa a aplicação (aceita qualquer um). |
default_apn | String | - | APN usada quando o UE não solicita nenhuma. Retorna para a única APN assinada se não definida. |
wildcard_apn | Booleano | false | Quando true, qualquer APN solicitada é permitida (assinatura curinga). |
Injeções de Laboratório
Essas chaves injetam uma função (ou {módulo, função}) para que o núcleo de pacotes possa ser executado antes que o estado SS7/HLR esteja completo. Elas são opcionais; quando não definidas, o SGSN ignora a rodada externa correspondente e o procedimento ainda é concluído.
| Parâmetro | Tipo | Descrição |
|---|---|---|
quintet_source | Função/{m,f} | Fornece um quinteto UMTS AKA (imsi, resync) para o desafio de autenticação em vez de um Gr SendAuthenticationInfo ativo. |
gr_source | Função/{m,f} | Fornece o resultado de HLR UpdateGprsLocation / Insert Subscriber Data no anexo. Quando não definido, o anexo prossegue sem registro Gr. |
purge_ms_sink | Função/{m,f} | Recebe uma notificação de Purge MS quando o SGSN remove um assinante. |
Parâmetros de Serviço GTP-C
| Parâmetro | Tipo | Necessário | Padrão | Descrição |
|---|---|---|---|---|
name | Átomo | Sim | - | Nome do serviço; :s3 para o servidor de mobilidade SGSN. |
listen_ip | String | Sim | - | Endereço de ligação para o servidor GTPv2-C. |
listen_port | Inteiro | Não | 2123 | Porta UDP GTP-C (TS 29.274). |
control_module | Módulo | Sim | - | Omnimsc.Gtpc.Router roteia mensagens S3/S4 iniciadas pelo par para o SGSN. |
t3 | Inteiro | Não | 5000 | Temporizador de retransmissão de solicitação GTP-C (ms). |
n3 | Inteiro | Não | 3 | Tentativas máximas de retransmissão GTP-C. |
Quando tanto Sv (SRVCC) quanto as interfaces GTPv2-C do SGSN são executadas em um único host, vincule-as a pontos finais IP/porta distintos.
Gerenciamento de Mobilidade (GMM)
O SGSN executa uma máquina de estados GMM por UE (TS 24.008 §4.7).
Comportamento GMM implementado:
- Anexo / RAU / Desanexo / Solicitação de Serviço, com anexo combinado (PS+CS) tratado em processo com o VLR.
- Autenticação UMTS AKA com validação de RES contra XRES, incluindo ressincronização AUTS.
- Alocação de P-TMSI e uma assinatura P-TMSI autenticada em um anexo/RAU posterior (TS 24.008 §10.5.5.8).
- Temporizadores de retransmissão T3350/T3360/T3370 e o temporizador de móvel acessível T3312 impulsionando o desanexo implícito.
- RANAP Common ID enviado ao RNC após a conclusão do Modo de Segurança (TS 25.413 §8.24).
- Procedimento de Identidade solicitando IMEISV durante o anexo.
- GMM STATUS em uma mensagem GMM desconhecida ou errônea, e causas de rejeição por procedimento (não uma única causa genérica).
- Solicitação de Desanexo Iniciado pela Rede (MT) para que a rede possa desanexar um UE e solicitar reanexação.
- Tratamento de Status do Contexto PDP em RAU / Solicitação de Serviço para que o estado PDP do MS e do SGSN não possa divergir.
- Liberação Iu após a conclusão de um procedimento apenas de sinalização, com o temporizador de guarda acima.
Gerenciamento de Sessão (SM / PDP)
Comportamento SM implementado:
- Ativação de contexto PDP com negociação de APN, QoS e endereço PDN.
- Multiplexação NSAPI / contextos PDP secundários: um UE mantém múltiplos contextos concorrentes identificados por NSAPI (5-15); uma colisão de NSAPI em uso é resolvida desativando localmente o contexto colidido conforme TS 24.008 §6.1.3.1.4.
- Negociação de QoS a partir de QoS solicitada e assinada para o QoS do Bearer S4 e o IE QoS NAS.
- Tipos de PDP IPv4, IPv6 e IPv4v6 de ponta a ponta.
- Desativação solicitada pela rede com temporizador de retransmissão T3395.
- Seleção de APN e aplicação de assinatura: validar a APN solicitada contra a assinatura, resolver APNs curinga e padrão, e rejeitar uma APN não assinada com a causa SM correta.
- SM STATUS e validação de NSAPI em erros de protocolo, com causa GTP-C mapeada para a causa SM NAS.
Iu-PS e RANAP
O manipulador Iu-PS possui a seção orientada a conexão SCCP por UE e conecta NAS em ambas as direções através de RANAP DirectTransfer.
- InicialUE / ponte DirectTransfer transportando NAS GMM/SM em cada direção.
- Atribuição de RAB com parâmetros derivados do bearer/QoS assinado, e reação à Resposta de Atribuição de RAB FailedList (mapeando a causa RANAP para uma rejeição SM) e modificações apenas de TEID (encaminhadas para o S-GW).
- Liberação Iu após procedimentos de sinalização, e na liberação SCCP de entrada para uma conexão PS, com o temporizador de guarda.
- RANAP RESET de um RNC purgando as conexões Iu-PS obsoletas desse RNC e reconhecendo.
- Indicação de Erro RANAP emitida em um PDU RANAP malformado / indecifrável (TS 25.413 §8.27).
- Sinalização de realocação SRNS (TS 25.413 §8.6-8.9): todos os seis PDUs de Realocação, impulsionando a realocação intra-SGSN e re-anclando o Tunnel Direto no RNC alvo na conclusão. A realocação inter-SGSN via S3 está sendo rastreada como trabalho futuro (veja Limitações).
S4 e GTP-C
- Criar / Modificar / Deletar Sessão em direção ao S-GW, com tipo RAT UTRAN e os F-TEIDs S4-SGSN.
- Intermediação do ponto final do Tunnel Direto, e retorno de downlink ao SGSN em PMM-IDLE para que o S-GW armazene em buffer e acione a paginação em vez de enviar para um RNC liberado.
- Solicitação de Delete / Update Bearer iniciada pelo par do S-GW/P-GW: reconhecida e encaminhada ao UE.
- Gerenciamento de caminho GTP-C: Detecção de Echo Request/Response e contador de reinício de recuperação para invalidar sessões obsoletas (TS 23.007 §18).
- Seleção de P-GW/S-GW S-NAPTR via DNS por APN quando habilitada, com fallback estático.
- Paginação de dados MT: uma Notificação de Dados de Downlink S4 aciona a paginação RANAP e é reconhecida (TS 29.274 §7.2.11).
Mobilidade S3 (para o MME)
- Transferência de contexto em modo ocioso: Solicitação de Contexto / Resposta / Reconhecimento (TS 29.274 §7.3.7).
- Modo de segurança do contexto MM codificado como EPS (valor 4) ao carregar um contexto KASME (TS 29.274 §8.38).
- Contêineres transparentes de realocação Forward (contêineres RAN de Fonte para Destino / Destino para Fonte) transportados de ponta a ponta para que o rádio alvo possa ser configurado (TS 29.274 §7.3.1).
Gr MAP (Interface HLR)
- UpdateGprsLocation registrando o SGSN no HLR no Anexo GPRS (TS 23.060 §6.5.3).
- Insert Subscriber Data consumido no contexto do assinante (APNs permitidas, QoS assinadas, APN-AMBR, cobrança), alimentando a aplicação de APN e negociação de QoS.
- Cancel Location purgando os contextos MM e PDP locais e desmontando a sessão S4; Purge MS enviado quando o SGSN remove um assinante.
A rodada Gr é controlada por gr_source; quando não definida, o anexo prossegue sem registro Gr, de modo que o laboratório continue funcionando com um quinteto injetado.
Cobrança (CDRs PS)
O SGSN produz registros de detalhes de chamadas do domínio PS roteados para o coletor de CDR compartilhado (TS 32.251, TS 32.298):
- S-CDR (
SGSNPDPRecord) aberto na ativação de PDP e fechado na desativação. - M-CDR (
SGSNMMRecord) aberto na conclusão do Anexo e fechado no Desanexo, com um contêiner de mudança de localização no RAU. - Contêineres de mudança de condição de cobrança (QoS / RAT / tarifa-tempo / mudança de Tunnel Direto) e registros parciais com um número de sequência crescente.
Veja documentação CDR para o coletor e formato de saída. A contagem de volume sob Tunnel Direto depende de um feed de relatório de uso S4 (veja Limitações).
CAMEL GPRS (Cobrança e Controle Online)
Um gprsSSF opt-in aciona o controle CAMEL fase-3 GPRS (TS 23.078, TS 29.078). Ele é ativado apenas quando a assinatura carrega GPRS-CSI; sem isso, o anexo e a ativação de PDP permanecem inalterados.
- Modelos de estado gprsSSF para Anexo/Desanexo e Contexto PDP, com armamento de ponto de detecção e relatório de eventos.
- InitialDPGPRS acionado nos pontos de detecção de Anexo e Estabelecimento de Contexto PDP.
- Laço de cobrança online ApplyChargingGPRS / ApplyChargingReportGPRS.
- Operações de controle Connect/Continue/Release/Cancel/ActivityTest GPRS, o temporizador Tssf e tratamento padrão GPRS em erro ou timeout do gsmSCF.
- FurnishChargingInformationGPRS mesclado no S-CDR e SendChargingInformationGPRS capturado em direção à camada SM.
Tabelas de Referência
Causas Comuns de Rejeição GMM (TS 24.008 §10.5.5.14)
| Causa | Nome | Gatilho típico |
|---|---|---|
| 2 | IMSI desconhecido no HLR | Assinante não provisionado |
| 7 | Serviços GPRS não permitidos | Assinatura bloqueia serviço de pacotes |
| 9 | Identidade do MS não pode ser derivada | RAU/Solicitação de Serviço P-TMSI não resolvível |
| 11 | PLMN não permitido | Roaming / restrição de PLMN |
| 17 | Falha de rede | Sem vetores de autenticação do HLR |
Causas Comuns de Rejeição SM (PDP) (TS 24.008 §10.5.6.6)
| Causa | Nome | Gatilho típico |
|---|---|---|
| 26 | Recursos insuficientes | S-GW recusou Criar Sessão, ou nenhum RAB pôde ser atribuído |
| 27 | APN ausente ou desconhecida | APN solicitada não pode ser resolvida |
| 31 | Ativação rejeitada, não especificada | Falha na configuração de RAB do RNC |
| 33 | Opção de serviço solicitada não assinada | APN não está na assinatura |
Métricas
Métrica: omnimsc_sgsn_attach_count
Tipo: Contador
Descrição: Resultados de anexo GPRS.
Rótulos:
result- Resultado do anexo (por exemploaccepted,rejected).
Métrica: omnimsc_sgsn_pdp_count
Tipo: Contador
Descrição: Resultados de ativação de contexto PDP.
Rótulos:
result-activeourejected.
Consultas de exemplo:
# Taxa de aceitação de anexo
sum(rate(omnimsc_sgsn_attach_count{result="accepted"}[5m]))
/ sum(rate(omnimsc_sgsn_attach_count[5m]))
# Taxa de rejeição de PDP
sum(rate(omnimsc_sgsn_pdp_count{result="rejected"}[5m]))
Solução de Problemas
Anexo rejeitado com causa 17 (falha de rede)
Sintomas: UE não consegue anexar ao domínio de pacotes; causa de rejeição GMM Anexo 17.
Causas possíveis:
- Nenhum vetor de autenticação retornado do HLR via Gr.
quintet_sourcenão definido em um laboratório sem Gr ativo.
Resolução:
- Confirme se o HLR retorna vetores para o IMSI (SendAuthenticationInfo).
- Em um laboratório, defina
quintet_sourcepara injetar um quinteto UMTS conhecido.
Ativação de PDP rejeitada com causa 26 (recursos insuficientes)
Sintomas: Ativar Solicitação de Contexto PDP causa rejeição 26.
Causas possíveis:
- O S-GW recusou Criar Sessão (por exemplo, um ULI ou APN-AMBR diferente de zero que ele rejeita).
- Nenhum RAB pôde ser atribuído pelo RNC.
Resolução:
- Verifique se o S-GW aceita a Criar Sessão; defina
default_apn_ambrpara%{ul: 0, dl: 0}para S-GWs que rejeitam um valor diferente de zero. - Revise a Resposta de Atribuição de RAB para uma entrada FailedList.
Ativação de PDP rejeitada com causa 33 (opção de serviço não assinada)
Sintomas: Ativar Solicitação de Contexto PDP causa rejeição 33.
Causas possíveis:
- A APN solicitada não está na assinatura ou em
subscribed_apns.
Resolução:
- Adicione a APN à assinatura do HLR (Insert Subscriber Data) ou a
subscribed_apns. - Defina
wildcard_apn: trueapenas se qualquer APN deve ser permitida.
Sem dados de downlink
Sintomas: O uplink funciona, mas nenhum pacote de downlink chega.
Causas possíveis:
- Tunnel Direto não concluído: a Modificação de Bearer não transportou o RNC F-TEID.
- Downlink ainda ancorado em um RNC liberado após o UE ter ficado ocioso.
Resolução:
- Confirme se a Modificação de Bearer após a atribuição de RAB transportou o RNC F-TEID.
- Confirme se o retorno de downlink ao SGSN foi acionado em PMM-IDLE para que a paginação possa trazer o UE de volta.
RAU não roteado para este SGSN
Sintomas: Uma Atualização de Área de Roteamento de um UE cai no nó errado.
Causas possíveis:
- O NRI P-TMSI não corresponde à configuração de
nri_bits/ alocação do pool deste SGSN.
Resolução:
- Alinhe
nri_bitscom a configuração do pool MSC/SGSN.
Limitações
As seguintes implementações são tratadas como costuras ou caminhos parciais e são documentadas para que os operadores saibam o que ainda não está end-to-end:
- Contagem de volume sob Tunnel Direto: o SGSN não vê plano de usuário, portanto, os volumes de S-CDR e cobrança online CAMEL requerem um feed de relatório de uso S4 que ainda não está conectado. O registro e os loops de relatório estão completos; a diminuição de volume ativa aguarda esse feed.
- CAMEL Advice-of-Charge para o MS: SendChargingInformationGPRS é capturado em direção à camada SM, mas a entrega de AoC para o dispositivo não está construída ainda.
- Realocação Forward Inter-SGSN: a sinalização de realocação SRNS intra-SGSN está completa; impulsionar o salto S3 para um SGSN par (conclusão da transferência de modo conectado PS) está sendo rastreado sob o épico da interface S3.