Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Informations générales

Problème

Solution

Configuration

Vérification

Dépannage

Introduction

Ce document décrit la fonctionnalité « Gestion d'assertion gracieuse », introduite dans la version 21.5.0 de StarOS.

Conditions préalables

Conditions requises

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- StarOs

- SGSN (Serving GPRS Support Node)

Components Used

Les informations de ce document sont basées sur StarOS R21.5 et versions ultérieures.

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. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Informations générales

La fonction est disponible dans la documentation officielle à l'adresse suivante : Guide d'administration SGSN.

L'infrastructure de traitement d'assertion en douceur permet le traitement en douceur des sessions d'abonné pour lesquelles la condition ASSERT est atteinte au moment de l'exécution de l'appel. Ceci est réalisé sans affecter les autres sessions d'abonnés sur le même proclet.

Normalement, lorsque la condition ASSERT est remplie, le proclète Session Manager (SessMgr) redémarre et récupère toutes les sessions d'abonnés à partir de AAA Manager (AAAMgr). Les sessions d'abonnés restaurées passent à l'état INACTIF.

Lorsque la gestion d'assertions en douceur est activée, le proclète SessMgr ne redémarre pas. Au lieu de cela, le proclet SessMgr récupère uniquement la session de l'abonné affecté à partir d'AAAMgr et efface la session de l'abonné existant sur le SessMgr. Les sessions d'abonnés restaurées passent à l'état INACTIF. Au moment de la procédure de récupération, tous les messages dirigés vers l'abonné sont abandonnés. Après la récupération, l'abonné continue à gérer les messages qui lui sont adressés. Avec cette procédure, les sessions d'abonné qui restent sur le SessMgr ne sont pas affectées.

Problème

Il existe des cas de collision et/ou de collision pour lesquels la cause première est complexe ou inconnue. Dans ces cas, une approche d'affirmation progressive est adoptée afin d'éviter un redémarrage complet du gestionnaire de session.

Solution

Avec l'assertion gracieuse, vous pouvez nettoyer et restaurer la session 1 qui atteint la condition d'assertion gracieuse.

Aucune autre session n'a d'impact sur le même sessmgr.

Il n'y aura pas de déroutement SNMP ni de syslog pour un redémarrage en douceur.

Il n'y aura pas de perte de KPI en cas d'affirmation gracieuse. La tâche elle-même ne sera pas redémarrée.

Cependant, les assertions gracieuses sont traitées comme n'importe quel autre crash, ce qui signifie que vous obtiendrez une entrée dans la liste show crash.

Comment identifier une affirmation gracieuse du SSD :

- Vidage d'état initié par le système avec coeur. - sera affiché sous la sortie « show crash » avant la pile

- crashed proclet est initié par l'utilisateur ou non boxer - sera vu après la pile sous la sortie « debug console cpu »

- pid 7939 facility sessmgr failover 5132->94 - sous « debug console CPU » ne sera pas enregistré/vu en cas d'assertion gracieuse

Configuration

La gestion d'assertion en douceur peut être configurée comme suit :

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

A noter :

- assertion contrôlée : Configure l'infrastructure d'assertions contrôlées.

- s4sgsn : Configure l'assertion contrôlée S4-SGSN.

- génération principale : Configure la génération principale pour l'assertion contrôlée. Par défaut : Activée.

- limit-per-assert : Configure la limite par assertion pour l'assertion contrôlée. Par défaut : 5.

- test nom_fichier nom_fichier numéro_ligne numéro_ligne [ numéro_séquence numéro_séquence numéro_séquence ] : Configure la gestion des tests d'assertion contrôlée.

- nom_fichier nom_fichier : Configure le nom du fichier où le contrôle d'assertion est requis. nom_fichier doit être une chaîne alphanumérique de 1 à 254 caractères.

- numéro_ligne numéro_ligne : Configure le numéro de ligne où le contrôle d'assertion est requis. line_num doit être un entier compris entre 1 et 4294967295.

- sequence-number numéro_séquence : Configure le numéro d'ordre où le contrôle d'assertion est requis. seq_num doit être un entier compris entre 1 et 100. Valeur par défaut : 1.

- désactiver : Désactive l'action spécifiée pour une structure d'assertion contrôlée.

- activer : Active l'action spécifiée pour une structure d'assertion contrôlée.

- non: Supprime la configuration de test spécifiée liée à l'infrastructure d'assertion contrôlée.

Exemple

********************* 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

Vérification

Référez-vous à cette section pour vous assurer du bon fonctionnement de votre configuration.

Exemple d'obtention des statistiques d'assertion contrôlée pour tous les sessmgrs actifs :

# 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

Exemple de rapport :

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

Ces informations (nombre et numéro de ligne) seront réinitialisées si le sessmgr redémarre pour toute autre panne. Une fois le nombre maximal de fois (5 par défaut) atteint, le coeur ne sera pas généré.

Dépannage

Il n'existe actuellement aucune information de dépannage spécifique pour cette configuration.