Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Conventions

Informations générales

Principes fondamentaux de la terminologie de la CIB

Format d'adresse IPC

Quelles informations doivent être transmises par le biais de la CIB ?

Comment les messages IPC sont transmis

Gamme Cisco 7500

Gamme Cisco 12000

Étapes de dépannage des problèmes, des bogues connus et des améliorations

Étape 1 : Régler le cache IPC

Étape 2 : Régler le débit IPC

Liste des améliorations apportées à la CIB

Gamme Cisco 7600

Collecter des informations de dépannage pour le TAC Cisco

Informations connexes

Introduction

Ce document explique pourquoi votre routeur signale des messages de journal liés à IPC et comment résoudre ce problème. Ce document comprend également un examen de la terminologie de la CIB.

Conditions préalables

Conditions requises

Les lecteurs de ce document devraient avoir connaissance des sujets suivants :

- Administration des routeurs Cisco

- IPC et sa terminologie

Components Used

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Toutes les versions du logiciel Cisco IOS® qui prennent en charge les routeurs des gammes Cisco 12000, 10000, 7600 et 7500.

- Routeurs des gammes Cisco 12000, 10000, 7600 et 7500.

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. If your network is live, make sure that you understand the potential impact of any command.

Conventions

Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.

Informations générales

Le module IPC (Inter-Process Communication) du logiciel Cisco IOS fournit une infrastructure de communication par laquelle les processus d'un système distribué peuvent interagir les uns avec les autres. Il assure également une communication transparente entre les plans de travail, les réseaux et la mémoire partagée.

Les services IPC servent de moyen par lequel les cartes de ligne (LC) et le processeur de routage central (RP) d’un système distribué communiquent entre eux par un échange de messages IPC envoyés du RP aux LC, ainsi qu’entre les RP actifs et de secours. Ces messages incluent des commandes de configuration et des réponses à ces commandes, ainsi que des « événements » qui doivent être signalés par un LC au RP.

Les gammes Cisco 12000, Cisco 10000, Cisco 7600 et Cisco 7500 utilisent une architecture distribuée basée sur les messages IPC. Dans de rares conditions, ces routeurs peuvent signaler ces messages de journal liés à IPC :

- Gamme Cisco 12000 - %IPC-3-NOBUFF : Le cache d'en-tête principal du message IPC a été vidé

- Gamme Cisco 7500 - %IPC_RSP_CBUS-3-NOBUF : Plus de mémoires tampon de mémoire IPC pour transmettre le message IPC

Remarque : IPC est également utilisé sur les gammes Cisco 6400 et Cisco 7304.

Principes fondamentaux de la terminologie de la CIB

Les terminologies IPC les plus courantes sont les suivantes :

- IPC - Communication interprocessus.

- Adresse IPC : mot de 32 bits composé d'un ID de siège de 16 bits et d'un ID de port de 16 bits.

- Client IPC - Module logiciel qui utilise les services IPC.

- Port IPC : point de terminaison de communication au sein de IPC utilisé comme source et destination de toute communication.

- Siège IPC - Un siège IPC est un élément de calcul, tel qu'un processeur, qui peut être communiqué à l'aide de IPC. Un siège IPC est l’emplacement des ports et des clients IPC.

- Session IPC - Une session IPC est un canal de communication simple actif entre deux ports IPC.

Toute communication qui utilise IPC se produit entre les ports IPC. Un port est un point de terminaison de communication dans IPC. Chaque port IPC est associé à une adresse logique appelée adresse IPC. IPC utilise l'adresse IPC d'un port IPC comme adresse de retour lorsqu'il envoie des messages IPC, ou une adresse de destination lorsqu'il reçoit des messages IPC.

Format d'adresse IPC

Les adresses IPC sont attribuées aux ports IPC par le responsable local des sièges IPC. Un siège est le processeur sur lequel le protocole IPC est en cours d'exécution. Un gestionnaire de postes est un processus qui tient à jour une liste de ports IPC locaux et un service de noms locaux, et qui tient également à jour des sessions de communication IPC ouvertes.

Lorsqu'un port IPC est créé, le client IPC attribue un nom de port au port IPC. D'autres clients IPC peuvent ensuite utiliser un nom de port lorsqu'ils font référence au nouveau port IPC créé. Un nom de port est une chaîne de caractères constituée d'un nom de siège et d'une fonction ou d'une description de port.

Cisco IPC présente trois niveaux de fiabilité différents lors de la livraison à un port ; ceci est défini lors de l'ouverture du port.

- Fiable : La remise du message est garantie. En cas d'échec, la livraison sera tentée à nouveau.

- Non fiable : La livraison est une tentative au mieux. Il n'y a aucune indication si la livraison échoue.

- Non fiable avec notification : La remise du message n'est pas garantie. Cependant, l'expéditeur reçoit une notification d'échec.

La commande show ipc node affiche les sièges IPC présents dans un domaine appelé domaine IPC.

Router#show ipc nodes

There are 3 nodes in this IPC realm.

ID Type       Name                         Last  Last

Sent  Heard

10000 Local      IPC Master                   0      0

1030000 RSP-CY     RSP IPC card slot 3          7      7

1000000 RSP-CY     RSP IPC card slot 0          10     10

Lorsqu'un RP esclave est présent, la commande show ipc noeuds répertorie l'adresse RP esclave, comme indiqué dans cet exemple de sortie d'un routeur de la gamme Cisco 10000 :

10k-2#show ipc nodes

There are 5 nodes in this IPC realm.

ID   Type       Name                      Last  Last

Sent  Heard

10000   Local      IPC Master                0     0

20000   UDP        C10K Line Card slot 2/0   3     3

30000   UDP        C10K Line Card slot 3/0   3     3

40000   UDP        C10K Line Card slot 1/0   3     3

50000   Ethernet   Slave                     18    45

Après avoir créé un port IPC, un client IPC peut alors enregistrer son nom de port avec le service de noms global contrôlé par IPC Master.

Un ensemble de sièges IPC, qui communiquent entre eux, est appelé zone. Pour chaque zone de la CIB, un seul siège de la CIB est désigné comme gestionnaire de zone de la CIB ou maître, ou maître de la CIB pour une courte durée. Logiquement, toutes les connexions de siège IPC dans le protocole IPC sont des connexions point à point. En règle générale, toutes les communications de siège IPC se font entre le RP actif et une carte de ligne, ou RP de secours. Il est possible de communiquer entre les cartes de ligne.

Un périphérique doit créer des ports locaux et localiser les ports de destination avant d'échanger des messages IPC. Bien qu'un périphérique crée des ports locaux, ces ports ne sont pas considérés comme des ports sources, car la communication IPC est simple. Lorsque le RP veut communiquer avec un LC, il ouvre d’abord un port sur le LC (le LC doit avoir créé le port et l’avoir enregistré avec le CIB Master - RP). Lorsque l'ouverture réussit, le trafic normal des messages IPC peut démarrer.

Dans les gammes Cisco 12000 et 7500, le processeur de routage, soit un processeur de routage Gigabit (GRP), soit un processeur de commutation de routage (RSP), et les cartes de ligne intelligentes font office de points de terminaison IPC. Un « maître IPC » contrôle un groupe de processeurs. Au fur et à mesure que le routeur s’initialise, le maître IPC découvre les points de terminaison IPC présents sur les cartes de ligne du système. Pour ce faire, le maître IPC analyse tous les logements, identifie le type de contrôleur et détermine si le contrôleur dispose de capacités IPC.

Utilisez la commande show ipc ports pour afficher ces ports. Sur un esclave IPC, cette commande répertorie les ports qui ont été créés sur ce siège IPC particulier. Lorsqu'elle est exécutée sur le maître IPC, cette commande affiche les ports qui ont été créés sur le maître, ainsi que les ports qui ont été enregistrés par les esclaves IPC (LC). En outre, la commande show ipc ports open répertorie les ports ouverts depuis ce siège IPC. Voici un exemple de résultat :

router#show ipc ports

There are 87 ports defined.

Port ID Type Name

10000.1 unicast IPC Master:Zone

10000.2 unicast IPC Master:Echo

10000.3 unicast IPC Master:Control

10000.4 unicast IPC Master:Init

port_index = 0 seat_id = 0x1020000 last sent = 0 last heard = 1

port_index = 1 seat_id = 0x1010000 last sent = 0 last heard = 1

port_index = 2 seat_id = 0x1040000 last sent = 0 last heard = 1

port_index = 3 seat_id = 0x1050000 last sent = 0 last heard = 1

port_index = 4 seat_id = 0x1060000 last sent = 0 last heard = 1

port_index = 5 seat_id = 0x1070000 last sent = 0 last heard = 1

port_index = 6 seat_id = 0x1080000 last sent = 0 last heard = 1

port_index = 7 seat_id = 0x1090000 last sent = 0 last heard = 1

port_index = 8 seat_id = 0x10A0000 last sent = 0 last heard = 1

port_index = 9 seat_id = 0x10B0000 last sent = 0 last heard = 1

port_index = 10 seat_id = 0x1030000 last sent = 0 last heard = 1

10000.5 unicast Remote TTY Server Port

port_index = 0 seat_id = 0x1070000 last sent = 0 last heard = 2

port_index = 1 seat_id = 0x1010000 last sent = 0 last heard = 2

port_index = 3 seat_id = 0x1040000 last sent = 0 last heard = 2

port_index = 4 seat_id = 0x1050000 last sent = 0 last heard = 2

Port ID Type Name

port_index = 5 seat_id = 0x1060000 last sent = 0 last heard = 3

port_index = 6 seat_id = 0x1080000 last sent = 0 last heard = 2

port_index = 7 seat_id = 0x1090000 last sent = 0 last heard = 2

port_index = 8 seat_id = 0x10A0000 last sent = 0 last heard = 2

port_index = 9 seat_id = 0x10B0000 last sent = 0 last heard = 2

[output omitted]

Le champ port_index est l'ID de session utilisé par l'IPC de destination lors du traitement des messages entrants. Lorsqu'un RP esclave est présent, la commande show ipc ports affiche les informations de port de secours, comme illustré dans cet exemple de sortie :

10k-2#show ipc ports

There are 16 ports defined.

Port ID       Type       Name

10000.1     Unicast    IPC Master:Zone

10000.2     Unicast    IPC Master:Echo

10000.3     Unicast    IPC Master:Control

10000.4     Unicast    Microcode Server

10000.5     Unicast    RFS Server Port

10000.6     Unicast    Remote File System Server Port

10000.7     Unicast    Master : TTY Server Port

port_index = 0  seat_id = 0x50000   last sent = 0     last heard = 0

10000.8     Unicast    C10K Line Card API

port_index = 0  seat_id = 0x20000   last sent = 0     last heard = 58521

port_index = 1  seat_id = 0x30000   last sent = 0     last heard = 64235

port_index = 2  seat_id = 0x40000   last sent = 0     last heard = 13486

50000.3     Unicast    Slave IPC:Control

50000.9     Unicast    Secondary RFS Server Port

50000.A     Unicast    Secondary Old RFS Server Port

50000.8     Unicast    Slave : TTY Client Port

50000.7     Unicast    Secondary Services Port

50000.B     Unicast    IF-con server port

50000.C     Unicast    RF : Standby

50000.D     Unicast    CF : Standby

Quelles informations doivent être transmises par le biais de la CIB ?

Les messages IPC sont l’unité de communication de base échangée entre les clients IPC. En fonctionnement normal, le RP et les cartes de ligne interagissent fréquemment par le biais de messages IPC. Un message inclut un en-tête, des informations d'adressage source et de destination, ainsi que les données de message.

Dans l’en-tête IPC, IPC définit plusieurs indicateurs de message différents qui modifient le traitement de réception d’un message IPC. Parmi les indicateurs définis, quatre sont liés au type de communication utilisé (non fiable, non fiable avec notification, fiable), quatre autres sont liés à la messagerie RPC (Remote Procedure Call) ou au traitement du contrôle interne, et deux ne sont pas utilisés du tout.

Voici quelques clients IPC :

- Commandes envoyées par le RP pour demander aux cartes de ligne des informations telles que la version, les quantités de mémoire, les statistiques d'interface, les modifications de l'état de l'interface et les données de configuration.

- Réponses aux commandes du RP, qui sont envoyées de la carte de ligne au RP. Parmi les informations contenues dans les messages IPC, on peut citer les mises à jour de statistiques chronométrées et les messages windows qui indiquent le nombre de messages IPC supplémentaires que la carte de ligne peut mettre en file d’attente.

- Événements ou messages générés de manière asynchrone. Par exemple, les erreurs de reporting telles que les erreurs d'entrée, les trames d'exécution et les géants, ainsi que les statistiques de reporting et d'autres informations de comptabilité, telles que le nombre d'octets et de paquets.

- Messages entre un RP actif et un RP de secours pour le bon fonctionnement du point de contrôle.

- Certains processus du logiciel Cisco IOS doivent échanger des informations entre les cartes de ligne et le processeur de routage. Ces processus sont considérés comme des demandes de CIP. Par exemple, Cisco Express Forwarding (CEF) et les systèmes de fichiers distants échangent des images entre les processeurs de routage de la gamme Cisco 12000.

Le tableau 1 répertorie les couches de la pile de protocoles IPC :

Tableau 1 - Couches de la pile de protocoles IPC

Pile de protocoles IPC

Applications IPC

Mécanisme IPC lui-même

Structure de commutation (gamme 12000) ou couche de données CBUS (gamme 7500)

Comment les messages IPC sont transmis

Les routeurs des gammes 7500 et 12000 allouent un ensemble spécial de tampons pour stocker les messages IPC mis en file d'attente pour transmission et en attente d'accusé de réception depuis le port IPC de destination.

Gamme Cisco 7500

La gamme 7500 utilise un ensemble spécial de mémoires tampon dans la mémoire système par paquets (MEMD). Pour plus d'informations sur MEMD et l'architecture 7500, consultez What Causes a "%RSP-3-RESTART : cbus complex » et Comprendre le processeur VIP fonctionnant à 99 % et la mise en mémoire tampon côté Rx.

Sur la gamme 7500, les files d'attente IPC se trouvent dans la mémoire du processeur. Dans certaines versions de Cisco IOS (voir l'exemple de sortie ci-dessous), l'espace tampon IPC agrégé dans la mémoire du processeur peut être réglé par la commande ipc cache size. Le MEMD contient des tampons limités qui ne peuvent pas être réglés. Lorsqu'un message IPC mis en file d'attente dans la mémoire du processeur est envoyé et qu'il y a un espace libre dans le MEMD, les messages IPC sont « déplacés » de la mémoire du processeur vers le MEMD avant d'être envoyés au LC.

Utilisez la commande show ipc queue pour afficher l'état des files d'attente IPC.

Router#show ipc queue

There are 0 IPC messages waiting for acknowledgment in the transmit queue.

There are 0 IPC messages waiting for a response.

There are 0 IPC messages waiting for additional fragments.

There are 0 IPC messages currently on the IPC inbound.

There are 0 messages currently in use by the system.

Remarque : ces files d'attente sont des files d'attente logicielles gérées par IPC et ne doivent pas être confondues avec les files d'attente matérielles ASIC QA de la gamme 7500.

Gamme Cisco 12000

Sur la gamme 12000, le protocole GRP envoie des messages IPC sur la matrice de commutation. Au démarrage, l'algorithme de découpage de mémoire tampon crée deux ensembles de pools dans la mémoire appelée tofab (côté réception) et frfab (côté émission). Comme le montre l'exemple de sortie de la commande show controller tofab queues (voir ci-dessous), les deux ensembles sont Non-IPC Free Queues et IPC Queues. Pour obtenir des conseils sur l'interprétation du résultat, consultez Routeur Internet de la gamme Cisco 12000 : Forum aux questions.

Sur la gamme Cisco 12000, le protocole GRP alloue un certain nombre d'en-têtes de message lors de l'initialisation. Plusieurs modifications ont été apportées pour améliorer l'allocation de mémoire pour ces en-têtes.

Le logiciel Cisco IOS Version 12.0(18)S/ST a augmenté le nombre par défaut d'en-têtes de message créés lors de l'initialisation de 1000 à 5000 sur le GRP et les LC (voir le résultat ci-dessous). Depuis la version 12.0(23)S et les versions ultérieures, le cache d'en-tête IPC peut se développer dynamiquement. Par conséquent, il n'est plus nécessaire de l'ajuster manuellement.

Les LC gèrent les en-têtes de message IPC dans la mémoire DRAM (Dynamic RAM). En outre, les LC réservent 100 tampons dans le tofab et dans la mémoire de formfab pour les messages IPC. Pour chaque message IPC transmis, le LC doit demander un en-tête de message IPC à partir du cache, puis envoyer une demande à l'ASIC de gestion de tampon de trame (BMA) pour qu'un tampon de message IPC soit utilisé pour envoyer le message au GRP sur le fabric.

LC-Slot1#show controllers tofab queues

Carve information for ToFab buffers

SDRAM size: 33554432 bytes, address: 30000000, carve base: 30029100

33386240 bytes carve size, 4 SDRAM bank(s), 8192 bytes SDRAM pagesize, 2 carve(s)

max buffer data size 9248 bytes, min buffer data size 80 bytes

40606/40606 buffers specified/carved

33249088/33249088 bytes sum buffer sizes specified/carved

Qnum        Head    Tail    #Qelem  LenThresh

----        ----    ----    ------  ---------

5 non-IPC free queues:

20254/20254 (buffers specified/carved), 49.87%, 80 byte data size

1          17297   17296    20254    65535

12152/12152 (buffers specified/carved), 29.92%, 608 byte data size

2          20548   20547    12152    65535

6076/6076 (buffers specified/carved), 14.96%, 1568 byte data size

3          32507   38582    6076     65535

1215/1215 (buffers specified/carved), 2.99%, 4544 byte data size

4          38583   39797    1215     65535

809/809 (buffers specified/carved), 1.99%, 9248 byte data size

5          39798   40606    809      65535

IPC Queue:

100/100 (buffers specified/carved), 0.24%, 4112 byte data size

30         72      71       100      65535

Raw Queue:

31         0       17302    0        65535

[output omitted]

Étapes de dépannage des problèmes, des bogues connus et des améliorations

Étape 1 : Régler le cache IPC

Remarque : Reportez-vous au tableau 2 pour obtenir la liste des versions d'IOS présentant les améliorations répertoriées dans cette section.

Dans de rares conditions (par exemple, lorsqu’une grande quantité d’informations doit être échangée entre les clients de la CIB), le cache de mémoire tampon de la CIB peut être épuisé. Le logiciel Cisco IOS utilise ces messages de journal pour signaler cette condition :

Oct 7 03:36:49: %RSP-3-RESTART: interface Serial0/0/4:1, not transmitting

Oct 7 03:39:51: %IPC_RSP_CBUS-3-NOBUF: No more IPC memd buffers to transmit

IPC message

Oct 7 03:40:09: %RSP-3-RESTART: interface Serial0/0/2:1, not transmitting

Oct 7 03:40:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1/0,

changed state to down

Oct 7 03:40:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1/1,

changed state to down

Oct 7 03:40:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1/2,

changed state to down

Oct 7 03:40:19: %LINEPROTO-5-UPDOWN: Line protocol on InterfaceSerial0/1/3,

changed state to down

Oct 7 03:40:21: %IPC_RSP_CBUS-3-NOBUF: No more IPC memd buffers to transmit

IPC message

Oct 7 03:40:26: %FIB-3-FIBDISABLE: Fatal error, slot 0: IPC failure

Oct 7 03:40:26: %FIB-3-FIBDISABLE: Fatal error, slot 1: IPC failure

Oct 7 03:40:26: %FIB-3-FIBDISABLE: Fatal error, slot 4: IPC failure

Oct 7 03:40:26: %FIB-3-FIBDISABLE: Fatal error, slot 5: IPC failure

Oct 7 03:40:29: %LINEPROTO-5-UPDOWN: Line protocol on Interface

Comme le montre le résultat ci-dessus, le RP désactive CEF sur toutes les cartes de ligne dans cette condition, car il ne pourra plus mettre à jour les tables CEF sur les cartes de ligne à l'aide de IPC. Ainsi, les messages FIBDISABLE sont signalés sur toutes les cartes de ligne.

Pour résoudre ce type de pannes, il peut être nécessaire d'augmenter le cache IPC sur le RP et la mémoire IPC sur les cartes de ligne. Avant de le faire, utilisez la commande show ipc status pour déterminer si le RP ou le LC ou les deux sont à court de tampons IPC. Prenez ce résultat et examinez-le à la fois à partir du RP et du LC.

À l'origine, le nombre par défaut de tampons alloués à tous les systèmes à l'aide d'IPC était de 1 000 en-têtes de message mis en cache, partagés entre les messages entrants et sortants. Selon la version du logiciel Cisco IOS installée, le nombre d'en-têtes de message mis en cache par IPC est statique, dynamique ou peut être ajusté.

Voici la sortie de la commande show ipc status à partir d'un routeur avec les en-têtes de message 1000 par défaut.

Remarque : les versions 12.2T et 12.2S du logiciel Cisco IOS apportent des modifications au résultat de cette commande.

router#show ipc status

IPC System Status:

This processor is the IPC master server.

1000 IPC message headers in cache

4049362 messages in, 92615 out, 4048932 delivered to local port,

352 acknowledgments received, 386 sent,

0 NACKS received, 0 sent,

15326 messages dropped on input, 154 messages dropped on output

0 no local port, 110 destination unknown, 0 no transport

0 missing callback or queue, 34 duplicate ACKs, 0 retries,

0 message timeouts.

0 ipc_output failures, 0 mtu failures,

7707 msg alloc failed, 0 emer MSG alloc failed, 0 no origs for RPC replies

0 pak alloc failed, 0 memd alloc failed

0 no hwq, 0 failed opens, 0 hardware errors

La quantité de mémoire requise à allouer dépend du type de carte (RP ou LC, RSP ou VIP) sur la plate-forme, et de l'activité des applications qui ont besoin d'IPC (CEF distribué, par exemple).

À partir du logiciel Cisco IOS Version 12.0(23)S, 12.2(18)S et du nouveau logiciel IOS trains 12.3 et 12.3T, le cache de messages IPC est géré de manière dynamique plutôt que statique. La solution proposée au problème d'épuisement du cache de messages IPC en raison d'un trafic IPC dense en rafale a été de développer et de réduire dynamiquement le cache de messages. Lors de l'initialisation, le système alloue un nombre de messages par défaut spécifié par la plate-forme. Lorsque le nombre de messages libres est inférieur au nombre de mémoires tampon « minimum », il avertit le processus d'arrière-plan critique pour développer le cache. Cela permet à IPC de continuer à développer le cache pour répondre aux besoins de ses clients. Si les mémoires tampon récemment allouées ne sont jamais utilisées par IPC pour une période donnée, ce processus commence à diminuer. Le cache s'arrête pour se rétrécir lorsqu'il atteint la taille par défaut. Cette amélioration des performances a été introduite dans CSCdv57496. Avec l'implémentation de CSCdv57496, la commande ipc cache <size> ne fonctionne plus automatiquement. Ceci est valable sur toutes les plates-formes IPC.

Remarque importante : Depuis la version 12.3(5.5)T du logiciel Cisco IOS, la possibilité de régler manuellement le cache IPC a été supprimée. Voir CSCec17505 (clients enregistrés uniquement) pour plus d'informations.

Lorsque vous vérifiez le résultat de la commande show ipc queue, voici ce que vous devez voir :

c7500#show ipc queue

Message waiting for acknowledgement in  Tx queue :       0

Maximum acknowledgement msg usage in Tx queue :          0

Message waiting for additional Fragments      :          0

Maximum message fragment usage                :          0

There are 0 IPC messages waiting for a response.

There are 0 IPC messages currently on the IPC inboundQ.

Messages currently in use                     :          0

Message cache size                            :       1000

Maximum message cache usage                   :       1344

0 times message cache crossed 5000 [max]

Emergency messages currently in use           :          0

Inbound message queue depth 0

Zone inbound message queue depth 0

Si le routeur exécute une version du logiciel Cisco IOS qui n'inclut pas les mémoires tampon de cache IPC gérées dynamiquement, c'est-à-dire les images antérieures à 12.0(23)S, 12.2(18)S, 12.3 et 12.3T, le cache IPC sur le RP et la mémoire IPC sur les cartes de ligne peuvent être augmentés manuellement. Avant de le faire, utilisez la commande show ipc status pour déterminer si le RP, LC ou les deux sont à court de mémoires tampon IPC. Prenez ce résultat et examinez-le à la fois à partir du RP et du LC.

Si nécessaire, vous pouvez utiliser ces commandes pour régler les souvenirs :

- La commande de configuration ipc cache 5000 pour augmenter le cache d'en-tête IPC sur le RP.

- Le cache ipc <size> [slot {slot_num | all}] pour augmenter le cache sur le contrôleur de réseau local Cisco 12000.

Remarque : lorsque vous allouez plus de mémoire pour les messages IPC, moins de mémoire est disponible pour les autres processus. La taille d'un seul message IPC varie en fait selon les branches du logiciel Cisco IOS. Utilisez la commande show memory summary pour vérifier s'il y a suffisamment de mémoire libre dans le pool de processeurs.

Étape 2 : Régler le débit IPC

Remarque : Reportez-vous au tableau 2 pour obtenir la liste des versions d'IOS présentant les améliorations répertoriées dans cette section.

Dans certaines situations, vous pouvez également régler le débit de IPC entre RP et LC. C'est particulièrement le cas lorsque le RP doit télécharger une grande table CEF sur le LC. Par exemple, cela peut se produire pendant le démarrage du routeur, lorsqu'il reçoit une grande quantité d'informations de routage d'un homologue BGP. Vous pouvez configurer la mise en mémoire tampon IPC supplémentaire sur le LC avec la commande ip cef linecard ipc memory xxxxx pour augmenter la bande passante du IPC. Cette commande a été introduite par CSCds89515 (clients enregistrés uniquement). La valeur de cette mémoire a été définie sur une valeur par défaut acceptable avec CSCdu54205 (clients enregistrés uniquement) et CSCuk27162 (clients enregistrés uniquement).

Voici les commandes qui indiquent le résultat lorsque vous modifiez ce paramètre :

Router#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#ip cef line ipc mem 20000

Router(config)#^Z

Router#show cef state

...

RP state:

Expanded LC ipc memory:             20000 Kbytes

...

or, alternatively:

Router#show cef line

Slot      MsgSent    XDRSent  Window   LowQ   MedQ  HighQ Flags

0           12515      21687     505      0      0      0 up

1           12515      21675     505      0      0      0 up

3           12515      21701     505      0      0      0 up

5           12515      21700     505      0      0      0 up

2           12518      22008     505      0      0      0 up

Router#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#ip cef line ipc mem 20000

Router(config)#^Z

Router#show cef line

Slot      MsgSent    XDRSent  Window   LowQ   MedQ  HighQ Flags

0           12538      22097    4966      0      0      0 up

1           12538      22081    4966      0      0      0 up

3           12538      22115    4966      0      0      0 up

5           12538      22114    4966      0      0      0 up

2           12541      22418    4966      0      0      0 up

Liste des améliorations apportées à la CIB

Le tableau 2 présente les améliorations apportées au logiciel Cisco IOS pour régler manuellement et dynamiquement la mémoire IPC sur différentes plates-formes.

Tableau 2 - Améliorations du logiciel Cisco IOS

ID de débogage Cisco

Fixe

Enhancement (amélioration)

CSCdk75315 (clients enregistrés uniquement)

12.0(5)S 12.0(5) 12.0(5)T 11.3(10)AA

Introduit une taille de cache IPC qui peut être configurée à l'aide de la commande ipc cache <size>.

CSCds89515 (clients enregistrés uniquement)

12.2(4)B 12.1(9)E 12.1(8a)E 12.2(3)T 12.2(2)S 12.1(9) 12.0(14)ST1 12.2(2) 12.2(1)T 12.0(15)S3 12.0 (16)ST 12.0(16)S

Sur un routeur Internet de la gamme Cisco 12000, Cisco Express Forwarding distribué (dCEF) peut être désactivé en raison d'une mémoire insuffisante lors d'une mise à jour de routage importante (par exemple, lors du démarrage). Comme solution de contournement, réduisez le chemin maximal dans le protocole BGP (Border Gateway Protocol) pour réduire la quantité d'informations propagées par CEF sur les cartes de ligne. Vous pouvez également réduire la taille de la fenêtre TCP pour réduire la vitesse des mises à jour BGP entrantes. Reportez-vous à la section Obtenir un routage optimal et réduire la consommation de mémoire BGP. Vous pouvez également entrer la commande de configuration d'interface ip cef linecard ipc memory 0-128000. La quantité de processeur de carte de ligne ou de mémoire principale est limitée à 50 % de la mémoire totale. Cette commande vous permet d'allouer une plus grande quantité de mémoire processeur de carte de ligne à la file d'attente du routage CEF pour mettre à jour les messages. Il permet au RP de libérer des mises à jour CEF plus rapidement pour libérer de la mémoire, et il empêche l'occurrence de condition de faible mémoire sur le RP. En fonction du nombre de processeurs VIP (Versatile Interface Processors), dCEF a besoin d'une grande quantité de mémoire temporaire sur le RSP pour mettre en mémoire tampon les messages IPC liés au VIP, en particulier dans les cas où de grands pairs BGP apparaissent ou lorsque la base d'informations de transfert (FIB) est propagée au VIP après un complexe CBUS ou un crash VIP (ou lorsque la commande clear cef line est émise ).

CSCdu21591 (clients enregistrés uniquement)

12.0(17)ST4 12.0(18)ST 12.0(18)S

Augmente la taille du cache d'en-tête de message IPC par défaut de 1 000 à 5 000 sur les routeurs de la gamme 12 000. Auparavant, l'analyseur acceptait tout nombre compris entre les valeurs codées en dur de 1000 et 15000. Aujourd'hui, l'analyseur n'accepte que les nombres compris entre la taille minimale et maximale du cache définie par la plate-forme. En outre, à l'origine, il n'était pas possible d'effacer la commande ipc cache de la configuration même si vous avez exécuté la commande no ipc cache dans la configuration pour supprimer une valeur de cache IPC personnalisée. Au lieu de cela, il a inséré une commande ipc cache x, où x est la taille de cache par défaut actuellement définie. Aujourd'hui, la commande no ipc cache a le comportement attendu. Il supprime complètement la commande ipc cache de la configuration.

CSCdu12540

12.0(19)ST 12.0(19)S

Uniquement applicable à la gamme Cisco 12000 : À l'origine, la commande ipc cache <size> fonctionnait uniquement pour le cache IPC RP. Maintenant, la commande ipc cache peut être utilisée sur les LC comme suit :

ipc cache <size> [slot {slot_num | all}]

Les options slot_num et toutes ne s'excluent pas mutuellement. Par exemple, ces commandes sont valides : ipc cache 4000 slot all ipc cache 3000 slot 5 Ces commandes augmentent la taille du cache dans slot 5 à 3000 et à 4000 pour tous les autres slots. Si vous voulez utiliser l'option all pour remplacer les instructions de configuration de la taille du cache précédentes pour les LC, assurez-vous que vous utilisez également « NOPREFIX » pour supprimer les commandes précédentes dans la mémoire vive non volatile (NVRAM), et implémentez les résultats corrects. En mode noprefix, utilisez le logement no ipc cache {slot_num | all} pour réinitialiser la taille du cache à sa valeur par défaut.

CSCdu54205

12.0(19)ST 12.0(19)S

Uniquement applicable à la gamme Cisco 12000 : Cette amélioration a modifié la valeur par défaut de l'allocation de mémoire de mise à jour CEF de la carte de ligne en 512 messages. Il n'est plus nécessaire d'utiliser la commande ip cef linecard ipc memory xxxxx, sauf si le problème est observé.

CSCuk27162 (clients enregistrés uniquement)

12.2(9)T 12.2(9)S 12.2(9) 12.0(21)ST 12.0(22)S

Cette amélioration logicielle modifie le nombre par défaut de tampons ipc de carte de ligne alloués au démarrage. Il augmente également la mémoire IPC de la carte de ligne par défaut RSP de 25 à 128 messages IPC. Solution de contournement: Utilisez la commande de configuration globale ip cef linecard ipc memory xxxxx pour augmenter le nombre de tampons sur les cartes de ligne.

CSCdv57496

12.0(23)S

Gérez le cache des messages IPC dynamiquement au lieu de l'allocation statique du cache IPC. Avec l'implémentation de CSCdv57496, la commande ipc cache <size> n'est plus valide car elle est exécutée automatiquement. Ceci est valable sur toutes les plates-formes IPC.

CSCdz77490

12.2(19.7)S 12.0(26.2)S 12.3(1)B 12.3(1)

Avec l'implémentation de CSCdz77490, l'interface de ligne de commande ipc cache <size> est supprimée des versions 12.3 et 12.3T du logiciel Cisco IOS. Dans le train Cisco IOS 12.3, cette commande est masquée, mais si elle est configurée à partir du terminal, elle imprime un message à l'utilisateur. Dans la prochaine version principale 12.4, cette commande sera supprimée.

CSCec17505 (clients enregistrés uniquement)

À déterminer

Symptômes : La taille du cache ipc ne change pas lorsque vous utilisez la commande ipc cache <size> CLI pour modifier la taille du cache. Conditions : Cette condition résulte de changements architecturaux avec IPC. Solution de contournement: La fonctionnalité de cache IPC est désormais automatique et ne peut pas être modifiée par l'utilisateur sur l'interface de ligne de commande. Cette amélioration supprime la commande CLI ipc cache <size> dans les versions du logiciel Cisco IOS qui ne permettent plus à l'utilisateur de modifier manuellement le cache IPC. Il ne doit pas y avoir de problème de rétrocompatibilité, car l'interface de ligne de commande (CLI) existe toujours dans les versions où l'utilisateur peut modifier manuellement le cache IPC à l'aide de la commande ipc cache <size> CLI.

Gamme Cisco 7600

Lors de l'exécution de Catalyst OS, la gamme Catalyst 6000 / Cisco 7600 utilise un Supervisor Engine avec une carte de routeur en option appelée carte MSFC (Multilayer Switch Feature Card). Le processeur sur le superviseur et le processeur sur la carte MSFC communiquent via des messages IPC via un bus de gestion hors bande Ethernet. Lors de l'exécution du logiciel système Cisco IOS, le processeur de routage et le processeur de commutation (SP) communiquent également par le biais de messages IPC. À l'origine, 3 000 mémoires tampon ont été créées pour les messages IPC. Dans de rares cas, le système est à court de mémoires tampon IPC et signale ces messages d'erreur :

01:52:13: %ICC-2-NOMEM: No memory available for unregistering card Card2

02:42:08: %IPC-3-NOBUFF: The main IPC message header cache has emptied

-Traceback= 4026779C 40268350 4025F930 40223D34 40221C40 40221EA4 401EAB10

Note : ICC signifie InterCard Communications.

À partir des versions 12.1(08a)E01 et 12.1(10)E du logiciel Cisco IOS, la gamme Cisco 7600 crée désormais 6000 mémoires tampon de messages IPC par défaut. En outre, les modifications apportées aux versions 12.1(08a)E et 12.1(09)EC permettent d’éviter une épuisement des en-têtes de la CIB résultant d’un grand nombre de mises à jour liées au réseau local virtuel (VLAN). Chaque message ICC annonce un groupe de modifications d’état de liens VLAN, plutôt qu’un VLAN à la fois.

Les nouvelles cartes de ligne de la gamme Cisco 7600 prennent en charge une carte fille de fonction distribuée (DFC) pour des débits de traitement de paquets à haut débit. Les cartes de ligne compatibles DFC gèrent les tables de contiguïté et de transfert Cisco Express locales et communiquent avec le superviseur à l'aide de messages IPC.

Certains messages IPC sont supérieurs à l'unité de transmission maximale (MTU) du bus de commutation Catalyst 6000 (par exemple, les messages IPC utilisés pour signaler les statistiques d'interface SONET dans des messages de plus de 1 500 octets). Ces messages doivent être fragmentés. Dans de rares conditions, le cache d'en-tête de fragment IPC est épuisé et le système signale ce message d'erreur :

%IPC-DFC6-3-NOBUFF: The fragment IPC message header cache has emptied

Les modifications apportées aux versions 12.1(08a)E et 12.1(09.05)EC du logiciel Cisco IOS font passer le nombre d'en-têtes de tampon de fragment de la CIB de 32 à 128.

Ce message peut apparaître dans la sortie de débogage si des accusés de réception en double sont reçus par le client IPC.

IPC : Message d'origine introuvable pour ACK HDR :

Les accusés de réception en double sont généralement dus à des problèmes de support qui provoquent la perte des messages d'accusé de réception. Afin de résoudre cette perte d'accusé de réception, réinsérez ou remplacez correctement la carte de ligne dans les logements pour éviter les problèmes de support.

Collecter des informations de dépannage pour le TAC Cisco

Si vous avez toujours besoin d'assistance après avoir suivi les étapes de dépannage ci-dessus et que vous souhaitez créer une demande de service auprès du TAC Cisco, veillez à inclure les informations suivantes pour le dépannage des messages d'erreur liés à IPC-3-NOBUFF :

- Dépannage réalisé avant l'ouverture du dossier.

- Sortie de la commande show technical-support (si possible en mode activé).

- Sortie de la commande show log ou captures de console si disponibles.

Veuillez attacher les données rassemblées à votre cas en format texte décompressé (.txt). Vous pouvez joindre des informations à votre dossier. Pour ce faire, téléchargez-le à l'aide de l'outil de requête de dossier (clients enregistrés uniquement). Si vous ne pouvez pas accéder à l'outil Requête de dossier, vous pouvez joindre les informations pertinentes à votre dossier en les envoyant à attach@cisco.com avec votre numéro de dossier dans la ligne d'objet de votre message.
Remarque : Ne rechargez pas manuellement le routeur ou ne le mettez pas hors tension avant de collecter les informations ci-dessus, sauf si nécessaire pour résoudre une exception IPC-3-NOBUFF, car cela peut entraîner la perte d'informations importantes nécessaires pour déterminer la cause première du problème.

Informations connexes

- Causes du message d'erreur « %RSP-3-RESTART: cbus complex »

- Affichage des informations de bogue du processeur pour les processus IPC

- Routeur Internet de la gamme Cisco 12000 : Forum aux questions

- Optimisation du routage et réduction de la consommation de mémoire au niveau des routeurs BGP

- Page d'assistance technique sur les routeurs Internet de la gamme Cisco 12000

- Page d'assistance produit des routeurs Cisco

- Support technique - Cisco Systems