Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Informações de Apoio

Problema

Solução

Configurar

Verificar

Troubleshoot

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.