Introduction
Este documento descreve o recurso "Manuseio de declaração gracioso", introduzido na versão 21.5.0 do StarOS.
Prerequisites
Requirements
A Cisco recomenda que você tenha conhecimento destes tópicos:
- StarOs
- Servindo GPRS Support Node (SGSN)
Componentes Utilizados
As informações neste documento são baseadas no StarOS R21.5 e posterior.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
O recurso pode ser encontrado na documentação oficial aqui: Guia SGSN-Admin.
A estrutura de Manuseio de Asserção de Segurança permite o tratamento de sessões de assinante de forma segura para as quais a condição ASSERT é atingida no momento da execução da chamada. Isso é obtido sem afetar outras sessões de assinante no mesmo proclet.
Normalmente, quando a condição ASSERT é atingida, o proclet do Session Manager (SessMgr) reinicia e recupera todas as sessões de assinante do AAA Manager (AAMgr). As sessões de assinante recuperadas são movidas para o estado IDLE.
Quando o Manuseio de Declaração de Segurança estiver habilitado, o proclet SessMgr não será reiniciado. Em vez disso, o proclet do SessMgr recupera apenas a sessão do assinante afetado do AAMgr e limpa a sessão do assinante existente no SessMgr. As sessões de assinante recuperadas são movidas para o estado IDLE. No momento do procedimento de recuperação, todas as mensagens direcionadas ao assinante são descartadas. Após a recuperação, o assinante continuará a tratar as mensagens direcionadas a ele. Com esse procedimento, as sessões de assinante que permanecem no SessMgr permanecem inalteradas.
Problema
Há alguns casos de canto e/ou colisão para os quais a correção da causa raiz é complexa ou a causa raiz é desconhecida. Nesses casos, uma abordagem de asserção apropriada é usada para evitar a reinicialização completa do gerenciador de sessão.
Solução
Com asserção gratuita, você pode limpar e restaurar a sessão 1 que atinge a condição de asserção gratuita.
Não há impacto em nenhuma outra sessão no mesmo sessmgr.
Não haverá interceptação SNMP ou syslog para uma reinicialização normal.
Não haverá perda de KPI no caso de uma declaração gratuita. A tarefa em si não será reiniciada.
No entanto, as asserções graciosas são tratadas como qualquer outra falha, o que significa que você obterá uma entrada em show crash list.
Como identificar uma declaração gratuita do SSD:
- Despejo de estado iniciado pelo sistema com núcleo. - será visto na saída "show crash" antes da pilha
- o crashed proclet é iniciado pelo usuário ou não boxer - será visto após a pilha na saída "debug console cpu"
- pid 7939 facility sessmgr failover 5132->94 - em "debug console CPU" não será registrado/visto em caso de declaração gratuita
Configurar
O Manuseio de Asserção de Segurança pode ser configurado da seguinte forma:
configure
debug controlled-assert s4sgsn
[ disable | enable ] core-generation
limit-per-assert assert_value
[ no ] test file-name file_name line-number line_num [ sequence-number seq_num ]
end
Tome nota:
-
afirmação controlada: Configura a estrutura de declaração controlada.
-
s4sgsn: Configura a declaração controlada S4-SGSN.
-
geração de núcleo: Configura a geração de núcleo para asserção controlada. Padrão: Habilitado.
-
limite por asserção: Configura o limite por asserção para asserção controlada. Padrão: 5.
-
test file-name file_name line-number line_num [ sequence-number seq_num ]: Configura o tratamento de teste de asserção controlado.
-
file-name nome_do_arquivo: Configura o nome do arquivo onde o controle de declaração é necessário. file_name deve ser uma sequência alfanumérica de 1 a 254 caracteres.
-
line-number line_num: Configura o número da linha onde o controle de declaração é necessário. line_num deve ser um inteiro de 1 a 4294967295.
-
sequence-number seq_num: Configura o número de sequência onde o controle assert é necessário. seq_num deve ser um inteiro de 1 a 100. Padrão: 1.
-
desabilitado: Desabilita a ação especificada para uma estrutura de declaração controlada.
-
enable: Habilita a ação especificada para uma estrutura de declaração controlada.
-
não: Remove a configuração de teste especificada relacionada à estrutura de asserção controlada.
Exemplo
********************* CRASH #93 ***********************
SW Version : 21.5.19
Similar Crash Count : 8
Time of First Crash : 2019-May-21+06:57:14
Fatal Signal 6: Aborted
PC: [ffffe430/X] __kernel_vsyscall()
Note: System-initiated state dump w/core. <<< This note indicates a graceful assert.
Process: card=10 cpu=0 arch=X pid=11573 cpu=~16% argv0=sessmgr
Crash time: 2019-May-23+06:00:13 UTC
Recent errno: 11 Resource temporarily unavailable
Build_number: 71813
Verificar
Use esta seção para confirmar se a sua configuração funciona corretamente.
Exemplo de obtenção de estatísticas de asserção controlada para todos os sessmgrs ativos:
# zcat ssd_s4sgn.log.gz | sed -n -e '/\*\{7\} show session subsystem facility sessmgr all debug-info /,/\*\{7\}/p' | sed -e '/^SessMgr: /,/^Controlled Assert Stats/{/^SessMgr: /!{/^Controlled Assert Stats/!d}}' | grep -E "SessMgr: Instance [0-9]{1,3}$" -A 10
Saída de exemplo:
SessMgr: Instance 135
Controlled Assert Stats
Module Name :SGW_DRV
Assert Count:0
Count File:Line Last Assert hit time(in sec)
Module Name :S4_SGSN
Assert Count:1
Count File:Line Last Assert hit time(in sec)
1 sess/sgsn/sgsn-app/s4_sm/s4_smn_egtpc.c:3164 2019/01/30 09:28:11 UTC
Essas informações (contagem e número de linha) serão redefinidas se o sessmgr for para uma reinicialização para qualquer outro travamento. Depois que o número máximo de vezes (padrão 5) for atingido, o núcleo não será gerado.
Troubleshoot
Atualmente, não existem informações disponíveis específicas sobre Troubleshooting para esta configuração.