Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Informações de Apoio

Fundamentos da terminologia IPC

Formato de endereço IPC

Quais informações precisam ser transmitidas por IPC?

Como as mensagens IPC são transmitidas

Cisco 7500 Series

Cisco 12000 Series

Etapas para solucionar problemas, bugs conhecidos e melhorias

Passo 1: Ajuste o cache IPC

Passo 2: Ajustar o throughput do IPC

Lista de aprimoramentos de IPC

Cisco 7600 Series

Colete informações de solução de problemas para o Cisco TAC

Informações Relacionadas

Introduction

Este documento explica por que o roteador relata mensagens de log relacionadas ao IPC e como solucionar esse problema. Este documento também inclui uma revisão da terminologia IPC.

Prerequisites

Requirements

Os leitores deste documento devem estar cientes destes tópicos:

- Administração do roteador Cisco

- IPC e sua terminologia

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Todas as versões do software Cisco IOS® que suportam os Cisco 12000, 10000, 7600 e 7500 Series Routers.

- Cisco 12000, 10000, 7600 e 7500 Series Routers.

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

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

Informações de Apoio

O módulo de Comunicação entre Processos (IPC - Inter-Process Communication) do software Cisco IOS fornece uma infraestrutura de comunicação pela qual os processos em um sistema distribuído podem interagir entre si. Fornece também comunicação transparente entre painéis traseiros, redes e memória compartilhada.

Os serviços IPC servem como o meio pelo qual as placas de linha (LCs) e o processador de rota central (RP) em um sistema distribuído se comunicam entre si através de uma troca de mensagens IPC enviadas do RP para as LCs, e também entre RPs ativos e em standby. Essas mensagens incluem comandos de configuração e respostas a esses comandos, além de "eventos" que precisam ser relatados por um LC ao RP.

As séries Cisco 12000, Cisco 10000, Cisco 7600 e Cisco 7500 usam uma arquitetura distribuída com base em mensagens IPC. Em condições raras, esses roteadores podem relatar essas mensagens de log relacionadas ao IPC:

- Cisco 12000 Series - %IPC-3-NOBUFF: O cache do cabeçalho da mensagem IPC principal foi esvaziado

- Série Cisco 7500 - %IPC_RSP_CBUS-3-NOBUF: Não há mais buffers de memória IPC para transmitir mensagem IPC

Observação: o IPC também é usado nas séries Cisco 6400 e Cisco 7304.

Fundamentos da terminologia IPC

As terminologias IPC mais comuns são:

- IPC - Comunicação entre Processos.

- Endereço IPC - Uma palavra de 32 bits composta por um ID de slot de 16 bits e um ID de porta de 16 bits.

- Cliente IPC - Um módulo de software que usa serviços IPC.

- Porta IPC - Um endpoint de comunicação dentro do IPC usado como origem e destino de toda a comunicação.

- Assento IPC - Um assento IPC é um elemento computacional, como um processador, que pode ser comunicado com a ajuda da comunicação IP. Um assento IPC é onde residem os clientes e as portas IPC.

- Sessão IPC - Uma sessão IPC é um canal de comunicação simplex ativo entre duas portas IPC.

Toda comunicação que usa IPC acontece entre portas IPC. Uma porta é um endpoint de comunicação em IPC. Cada porta IPC é associada a um endereço lógico chamado endereço IPC. O IPC usa o endereço IPC de uma porta IPC como um endereço de retorno quando envia mensagens IPC ou um endereço de destino quando recebe mensagens IPC.

Formato de endereço IPC

Os endereços IPC são atribuídos às portas IPC pelo gerenciador local de estações IPC. Um assento é o processador no qual o protocolo IPC está sendo executado no momento. Um gerenciador de lugares é um processo que mantém uma lista de portas IPC locais e um serviço de nome local, além de manter sessões abertas de comunicação IPC.

Quando uma porta IPC é criada, o cliente IPC atribui um nome de porta à porta IPC. Outros clientes IPC podem usar um nome de porta quando se referem à porta IPC recém-criada. Um nome de porta é uma sequência de caracteres que consiste em um nome de assento e uma função ou descrição de porta.

O Cisco IPC tem três níveis diferentes de confiabilidade na entrega a uma porta; isso é definido quando a porta é aberta.

- Confiável: A entrega da mensagem é garantida. Em caso de falha, a entrega será tentada novamente.

- Não confiável: A entrega é uma tentativa de melhor esforço. Não há indicação de falha na entrega.

- Não confiável com notificação: A entrega da mensagem não é garantida. No entanto, o remetente recebe uma notificação da falha.

O comando show ipc nodes exibe os assentos de IPC presentes em uma chamada esfera de 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

Quando um RP escravo está presente, o comando show ipc nodes lista o endereço do RP escravo, como mostrado neste exemplo de saída de um Cisco 10000 Series Router:

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

Depois de criar uma porta IPC, um cliente IPC pode registrar seu nome de porta com o serviço de nome global controlado pelo IPC Master.

Uma coleção de assentos IPC que se comunicam uns com os outros é chamada de zona. Para cada zona IPC, um único assento IPC é designado como o IPC Zone Manager ou Master, ou IPC Master, para abreviar. Logicamente, todas as conexões de estações IPC no protocolo IPC são conexões ponto-a-ponto. Toda comunicação de estação IPC é geralmente entre o RP ativo e uma placa de linha, ou RP em standby. A comunicação da placa de linha com a placa de linha é possível.

Um dispositivo deve criar portas locais e localizar portas de destino antes de trocar qualquer mensagem IPC. Apesar de o dispositivo criar portas locais, essas portas não são consideradas portas de origem, pois a comunicação IPEX é simples. Quando o RP deseja se comunicar com um LC, ele abre primeiro uma porta no LC (o LC precisa ter criado a porta e registrado-a com o IPC Master - RP). Quando a abertura for bem-sucedida, o tráfego normal de mensagens IPC poderá ser iniciado.

Nos Cisco 12000 e 7500 Series, o processador de rota, um GRP (Gigabit Route Processor) ou um RSP (Route Switch Processor) e as placas de linha inteligentes agem como pontos de extremidade IPC. Um "IPC Mestre" controla um grupo de processadores. À medida que o roteador é inicializado, o IPC Master descobre os endpoints IPC presentes em placas de linha no sistema. Para fazer isso, o IPC Master verifica todos os slots, identifica o tipo de controlador e determina se o controlador tem recursos IPC.

Use o comando show ipc ports para exibir essas portas. Em um escravo IPC, esse comando lista as portas que foram criadas nesse assento IPC específico. Quando emitido no IPC Master, esse comando exibe as portas que foram criadas no Master e também as portas que foram registradas pelos IPC slaves (LCs). Além disso, o comando show ipc ports open lista as portas que foram abertas desse assento IPC. Aqui está um exemplo de saída:

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]

O campo port_index é a ID da sessão usada pelo IPC de destino quando processa mensagens de entrada. Quando um RP escravo está presente, o comando show ipc ports exibe informações de porta em standby, como ilustrado neste exemplo de saída:

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

Quais informações precisam ser transmitidas por IPC?

As mensagens do IPC são a unidade básica das comunicações trocadas entre os clientes IPC. Durante a operação normal, o RP e as placas de linha interagem frequentemente através de mensagens de IPC. Uma mensagem inclui um cabeçalho, informações de endereçamento de origem e de destino e os dados da mensagem.

No cabeçalho IPC, o IPC define vários flags de mensagem diferentes que alteram o processamento de recepção de uma mensagem IPC. Entre os flags definidos, quatro estão relacionados ao tipo de comunicação usada (não-confiável, não-confiável com notificação, confiável), outros quatro estão relacionados às mensagens RPC (Remote Procedure Call) ou ao processamento de controle interno e dois não são usados.

Aqui estão alguns clientes IPC:

- Comandos enviados pelo RP para consultar as placas de linha em busca de informações, como versão, quantidade de memória, estatísticas de interfaces, alterações no status de interfaces e dados de configuração.

- Respostas aos comandos do RP, que são enviados da placa de linha para o RP. Exemplos de informações contidas nas mensagens IPC incluem atualizações de estatísticas temporizadas e mensagens do Windows que indicam quantas mais mensagens IPC a placa de linha pode colocar em fila.

- Eventos ou mensagens gerados de forma assíncrona. Exemplos relatam erros, como erros de entrada, runts e gigantes, bem como relatam estatísticas e demais informações de contabilização, como contagem de bytes e pacotes.

- Mensagens entre um RP ativo e em standby para a operação apropriada do ponto de verificação.

- Alguns processos do software Cisco IOS precisam trocar informações entre as placas de ingresso e o processador de rota. Esses processos são considerados aplicativos IPC. Os exemplos incluem o Cisco Express Forwarding (CEF) e sistemas de arquivos remotos para trocar imagens entre os processadores de roteamento Cisco 12000 Series.

A Tabela 1 lista as camadas da pilha de protocolos IPC:

Tabela 1 - Camadas da pilha de protocolos IPC

Pilha de protocolos IPC

Aplicativos de IPC

Mecanismo de IPC propriamente dito

Switch Fabric (série 12000) ou CBUS (série 7500) Data Layer

Como as mensagens IPC são transmitidas

Os 7500 Series e os 12000 Series Routers alocam um conjunto especial de buffers para armazenar mensagens IPC que estão na fila para transmissão e aguardam confirmação da porta IPC de destino.

Cisco 7500 Series

O 7500 Series utiliza um conjunto especial de buffers na memória de pacotes do sistema (MEMD). Para obter mais informações sobre o MEMD e a arquitetura 7500, consulte O que causa um "%RSP-3-RESTART: complexo CBUS? e compreendendo a execução da CPU VIP em 99% e a colocação em buffer no lado Rx.

No 7500 Series, as filas de IPC estão na memória do processador. Em algumas versões do Cisco IOS (consulte o exemplo de saída abaixo), o espaço de buffer IPC agregado na memória do processador pode ser ajustado pelo comando ipc cache size. O MEMD contém alguns buffers limitados que não podem ser ajustados. Quando uma mensagem IPC que é enfileirada na memória do processador é enviada e quando há algum espaço livre no MEMD, as mensagens IPC são "movidas" da memória do processador para o MEMD antes de serem enviadas para o LC.

Use o comando show ipc queue para exibir o status das filas 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.

Observação: essas filas são filas de software mantidas por IPC e não devem ser confundidas com as filas de hardware QA-ASIC da série 7500.

Cisco 12000 Series

No 12000 Series, o GRP envia mensagens IPC pela matriz de comutação. Na inicialização, o algoritmo de gravação de buffer cria dois conjuntos de pools na chamada memória tofab (lado de recepção) e frfab (lado de transmissão). Conforme mostrado no exemplo de saída do comando show controller tofab queues (veja abaixo), os dois conjuntos são filas livres não-IPC e filas IPC. Para obter orientação sobre como interpretar a saída, consulte Roteador de Internet Cisco 12000 Series. Perguntas freqüentes

No Cisco 12000 Series, o GRP aloca um certo número de cabeçalhos de mensagem na inicialização. Foram feitas várias modificações para melhorar a alocação de memória desses cabeçalhos.

O Cisco IOS Software Release 12.0(18)S/ST aumentou o número padrão de cabeçalhos de mensagem criados na inicialização de 1000 para 5000 no GRP e nos LCs (consulte a saída a seguir). A partir da versão 12.0(23)S e posterior, o cache do cabeçalho IPC pode crescer dinamicamente. Portanto, não precisa mais ser ajustada manualmente.

Os LCs mantêm cabeçalhos de mensagem IPC na RAM dinâmica (DRAM). Adicionalmente, os LCs reservam 100 buffers na memória tofab e fromfab para mensagens de IPC. Com cada mensagem IPC transmitida, a LC deve solicitar um cabeçalho de mensagem IPC do cache e, em seguida, enviar uma solicitação para o Frfab Buffer Management ASIC (BMA) para que um buffer de mensagem IPC seja usado para enviar a mensagem para o GRP pela estrutura.

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]

Etapas para solucionar problemas, bugs conhecidos e melhorias

Passo 1: Ajuste o cache IPC

Observação: consulte a tabela 2 para obter uma lista das versões do IOS que têm os aprimoramentos listados nesta seção.

Em condições raras (por exemplo, quando uma grande quantidade de informações precisa ser trocada entre clientes IPC), o cache do buffer IPC pode ser esgotado. O software Cisco IOS usa estas mensagens de log para relatar esta condição:

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

Como a saída acima ilustra, o RP desabilita o CEF em todas as placas de linha nesta condição porque ele não poderá mais atualizar as tabelas CEF nas placas de linha com a ajuda do IPC. Então, mensagens de FIBDISABLE são informadas em todas as placas de linha.

Para resolver esses tipos de falhas, talvez seja necessário aumentar o cache de IPC no RP e na memória IPC nas placas de linha. Antes de fazer isso, use o comando show ipc status para investigar se o RP ou o LC ou ambos estão sem buffers IPC. Pegue essa saída e examine-a a partir do RP e do LC.

Originalmente, o número padrão de buffers alocados para todos os sistemas com a ajuda do IPC era de 1.000 cabeçalhos de mensagem em cache, que eram compartilhados entre mensagens de entrada e saída. Com base na versão instalada do software Cisco IOS, o número de cabeçalhos de mensagens em cache IPC é estático, dinâmico ou pode ser ajustado.

Aqui está a saída do comando show ipc status de um roteador com os cabeçalhos de mensagem 1000 padrão.

Observação: o Cisco IOS Software Release 12.2T e 12.2S introduzem alterações na saída desse comando.

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

A quantidade necessária de memória a ser alocada depende do tipo de placa (RP ou LC, RSP ou VIP) na plataforma e da atividade dos aplicativos que precisam de IPC (CEF distribuído, por exemplo).

Do Cisco IOS Software Release 12.0(23)S, 12.2(18)S e das novas trilhas IOS 12.3 e 12.3T, o cache de mensagens IPC é gerenciado dinamicamente em vez de alocação estática do cache IPC. A solução proposta para o problema de esgotamento do cache de mensagens IPC devido ao tráfego intenso e intermitente de IPC foi crescer e reduzir o cache de mensagens dinamicamente. Na inicialização, o sistema aloca uma plataforma especificada como o número padrão de mensagens. Quando o número de mensagens livres fica abaixo do "mínimo" de buffers, ele notifica o processo crítico de segundo plano para aumentar o cache. Isso permite que o IPC continue a aumentar o cache para atender às necessidades de seus clientes. Se os buffers alocados recentemente nunca são usados pelo IPC para um período de tempo especificado, esse processo começa a diminuir. O cache pára para diminuir quando atinge o tamanho padrão. Essa melhoria de desempenho foi apresentada no CSCdv57496. Com a implementação do CSCdv57496, o comando ipc cache <size> não funciona mais como é feito automaticamente. Isso é válido em todas as plataformas IPC.

Nota importante: No Cisco IOS Software Release 12.3(5.5)T, a capacidade de ajustar manualmente o cache IPC foi removida. Consulte CSCec17505 (somente clientes registrados) para obter mais informações.

Quando você verifica a saída do comando show ipc queue, aqui está o que você deve ver:

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

Se o roteador executa uma versão do software Cisco IOS que não inclui buffers de cache IPC gerenciados dinamicamente, ou seja, imagens anteriores a 12.0(23)S, 12.2(18)S, 12.3 e 12.3T, o cache IPC no RP e a memória IPC nas placas de linha podem ser aumentados manualmente. Antes de fazer isso, use o comando show ipc status para investigar se o RP, o LC ou ambos estão ficando sem buffers IPC. Pegue essa saída e examine-a a partir do RP e do LC.

Se necessário, você pode usar estes comandos para ajustar as memórias:

- O comando de configuração ipc cache 5000 para aumentar o cache do cabeçalho IPC no RP.

- O cache ipc <size> [slot {slot_num | all}] para aumentar o cache no Cisco 12000 LC.

Observação: quando você aloca mais memória para mensagens IPC, menos memória está disponível para outros processos. O tamanho de uma única mensagem IPC varia de fato com as diferentes ramificações do software Cisco IOS. Use o comando show memory summary para verificar se há memória livre suficiente no pool de processadores.

Passo 2: Ajustar o throughput do IPC

Observação: consulte a tabela 2 para obter uma lista das versões do IOS que têm os aprimoramentos listados nesta seção.

Em algumas situações, talvez você também queira ajustar o rendimento de IPC entre RP e LC. Isso acontece especialmente quando o RP precisa carregar uma grande tabela CEF para o LC. Por exemplo, isso pode acontecer enquanto o roteador é inicializado, quando recebe uma grande quantidade de informações de roteamento de um peer BGP. Você pode configurar o buffer de IPC extra no LC com o comando ip cef linecard ipc memory xxxxx para aumentar a largura de banda do IPC. Este comando foi apresentado pelo CSCds89515 (somente clientes registrados) . O valor para esta memória foi definido como um padrão aceitável com CSCdu54205 (somente clientes registrados) e CSCuk27162 (somente clientes registrados) .

Estes são os comandos que indicam o resultado quando você altera este parâmetro:

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

Lista de aprimoramentos de IPC

A Tabela 2 fornece uma visão geral dos aprimoramentos implementados no software Cisco IOS para ajustar manualmente e dinamicamente a memória IPC em diferentes plataformas.

Tabela 2 - Aprimoramentos no software Cisco IOS

ID de bug da Cisco

Entrada Fixa

Enhancement

CSCdk75315 (apenas clientes registrados)

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

Apresenta um tamanho de cache IPC que pode ser configurado com a ajuda do comando ipc cache <size>.

CSCds89515 (apenas clientes registrados)

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

Em um Cisco 12000 Series Internet Router, o Cisco Express Forwarding (dCEF) distribuído pode ser desabilitado devido a uma condição de memória baixa durante uma grande atualização de roteamento (por exemplo, durante a inicialização). Como solução alternativa, reduza o caminho máximo no Border Gateway Protocol (BGP) para reduzir a quantidade de informações que o CEF propaga para as placas de linha. Como alternativa, reduza o tamanho da janela TCP para reduzir a velocidade das atualizações de BGP recebidas. Consulte Alcançar o roteamento ideal e reduzir o consumo de memória BGP. Como alternativa, você também pode inserir o comando de configuração de interface ip cef linecard ipc memory 0-128000. O total de memória do processador da placa de linha ou da memória principal está limita a 50% da memória total. Esse comando permite alocar uma quantidade maior de memória do processador da placa de linha para o enfileiramento para que o roteamento CEF atualize mensagens. Ele permite que o RP libere atualizações de CEF mais rapidamente para liberar memória e evita a ocorrência de condição de memória baixa no RP. Com base no número de Versatile Interface Processors (VIPs), o dCEF precisa de uma grande quantidade de memória temporária no RSP para armazenar mensagens IPC vinculadas ao VIP, especialmente nos casos em que grandes pares de BGP são ativados ou quando o Forwarding Information Base (FIB) é propagado para o VIP após um complexo CBUS ou um travamento de VIP (ou quando o clear cef line é emitido).

CSCdu21591 (apenas clientes registrados)

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

Aumenta o tamanho padrão do cache do cabeçalho da mensagem IPC de 1000 para 5000 em 12000 Series Routers. Anteriormente, o analisador aceitou qualquer número entre os valores codificados de 1000 e 15000. Hoje, o analisador aceita apenas números entre os tamanhos mínimo e máximo de cache definidos pela plataforma. Além disso, originalmente, não foi possível limpar o comando ipc cache da configuração mesmo que você tenha executado o comando no ipc cache na configuração para remover um valor de cache IPC personalizado. Em vez disso, inseriu um comando ipc cache x, onde x é o tamanho de cache padrão definido atualmente. Hoje, o comando no ipc cache tem o comportamento esperado. Ele remove completamente o comando ipc cache da configuração.

CSCdu12540

12.0(19)ST 12.0(19)S

Aplicável somente à série Cisco 12000: Originalmente, o comando ipc cache <tamanho> funcionava somente para o cache RP IPC. Agora, o comando ipc cache pode ser usado em LCs da seguinte maneira:

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

As opções slot_num e all não são mutuamente exclusivas. Por exemplo, estes comandos são válidos: ipc cache 4000 slot all ipc cache 3000 slot 5 Esses comandos aumentam o tamanho do cache no slot 5 para 3000 e para 4000 para todos os outros slots. Se quiser usar a opção all para substituir as instruções de configuração de tamanho de cache anteriores para LCs, certifique-se de que também use "NOPREFIX" para excluir os comandos anteriores na NVRAM não volátil (NVRAM) e implementar os resultados corretos. No modo noprefix, use o slot no ipc cache slot {slot_num | all} para redefinir o tamanho do cache para seu valor padrão.

CSCdu54205

12.0(19)ST 12.0(19)S

Aplicável somente à série Cisco 12000: Essa melhoria alterou o valor padrão de alocação de memória de atualização CEF da placa de linha para 512 mensagens. Não é mais necessário usar o comando ip cef linecard ipc memory xxxx, a menos que o problema seja observado.

CSCuk27162 (apenas clientes registrados)

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

Esse aprimoramento de software altera o número padrão por plataforma dos buffers ipc da placa de linha alocados na inicialização. Também aumenta a memória IPC da placa de linha padrão por plataforma do RSP de 25 para 128 mensagens IPC. Solução: Use o comando de configuração global ip cef linecard ipc memory xxxx para aumentar o número de buffers nas placas de linha.

CSCdv57496

12.0(23)S

Gerenciar dinamicamente o cache de mensagens IPC em vez da alocação estática do cache IPC. Com a implementação do CSCdv57496, o comando ipc cache <size> não é mais válido, pois isso é feito automaticamente. Isso é válido em todas as plataformas IPC.

CSCdz77490

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

Com a implementação do CSCdz77490, a interface de linha de comando ipc cache <size> é removida das trilhas 12.3 e 12.3T do software Cisco IOS. Na trilha do Cisco IOS 12.3, esse comando é oculto, mas, se configurado no terminal, imprime uma mensagem ao usuário. Na próxima versão principal 12.4, esse comando será removido.

CSCec17505 (apenas clientes registrados)

TBD

Sintomas: O tamanho do cache ipc não é alterado quando você usa o comando ipc cache <size> CLI para alterar o tamanho do cache. Condições: Essa condição ocorre como resultado de mudanças na arquitetura com a comunicação IP. Solução: A funcionalidade do cache IPC agora é feita automaticamente e não pode ser alterada pelo usuário na CLI. Essa melhoria remove o comando CLI ipc cache <size> nas versões do software Cisco IOS que não permitem mais que o usuário altere manualmente o cache IPC. Não deve haver problemas de compatibilidade com versões anteriores, pois a CLI ainda existirá em versões onde o usuário pode alterar manualmente o cache IPC com o comando ipc cache <size> CLI.

Cisco 7600 Series

Ao executar o Catalyst OS, o Catalyst 6000 / Cisco 7600 Series usa um Supervisor Engine com uma placa de roteador opcional conhecida como Multilayer Switch Feature Card (MSFC). A CPU no Supervisor e a CPU no MSFC comunicam-se através de mensagens IPC através de um barramento de gerenciamento out-of-band Ethernet. Ao executar o Cisco IOS System Software, o RP e o processador do switch (SP) também se comunicam através de mensagens IPC. Originalmente, 3.000 buffers foram criados para mensagens IPC. Em casos raros, o sistema fica sem buffers IPC e relata estas mensagens de erro:

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

Observação: ICC significa InterCard Communications.

Nas versões 12.1(08a)E01 e 12.1(10)E do software Cisco IOS, a série Cisco 7600 agora cria buffers de mensagem IPC 6000 por padrão. Além disso, as alterações feitas nas versões 12.1(08a)E e 12.1(09)EC ajudam a evitar o esgotamento do cabeçalho IPC que resulta de um grande número de atualizações relacionadas à LAN Virtual (VLAN). Cada mensagem ICC anuncia um grupo de alterações de link-state da VLAN, em vez de uma VLAN por vez.

As placas de linha mais novas para a série Cisco 7600 suportam uma placa filha de recursos distribuídos (DFC) para taxas de tratamento de pacotes de alta velocidade. As placas de linha ativadas por DFC mantêm tabelas locais do Cisco Express Forwarding e de adjacência e comunicam-se com o supervisor usando mensagens IPC.

Algumas mensagens de IPC são maiores que a MTU (Maximum Transmission Unit, unidade máxima de transmissão) do barramento de switching do Catalyst 6000 (por exemplo, mensagens de IPC usadas para relatar estatísticas de interface SONET em mensagens maiores que 1500 bytes). Tais mensagens precisam de ser fragmentadas. Em condições raras, o cache do cabeçalho do fragmento IPC está esgotado e o sistema relata esta mensagem de erro:

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

As alterações feitas no Cisco IOS Software Releases 12.1(08a)E e 12.1(09.05)EC aumentam o número de cabeçalhos de buffer de fragmentos IPC de 32 para 128.

Essa mensagem pode aparecer na saída de depuração se confirmações duplicadas forem recebidas pelo cliente IPC.

IPC: Não é possível localizar a mensagem original para ACK HDR:

As confirmações duplicadas são mais comumente devidas a problemas de mídia que fazem com que as mensagens de confirmação sejam perdidas. Para resolver essa perda de confirmação, recoloque ou substitua a placa de linha nos slots corretamente para evitar problemas de mídia.

Colete informações de solução de problemas para o Cisco TAC

Se você ainda precisar de assistência depois de seguir as etapas de solução de problemas acima e quiser criar uma solicitação de serviço com o Cisco TAC, inclua as seguintes informações para a solução de problemas de mensagens de erro relacionadas ao IPC-3-NOBUFF:

- Solução de problemas executada antes de abrir o caso.

- show technical-support output (se possível, no modo enable).

- mostrar registro de saída ou capturas de tela do console, se disponível.

Anexe os dados coletados para o seu caso em um formato não compactado e texto simples (.txt). Você pode anexar informações ao seu caso. Para fazer isso, faça o upload com a ajuda da Case Query Tool (somente clientes registrados) . Se você não puder acessar a ferramenta Case Query, você pode anexar informações relevantes para o seu caso, enviando-as para attach@cisco.com com o número de seu caso na linha de assunto de sua mensagem.
Observação: não recarregue manualmente ou desligue e ligue o roteador antes de coletar as informações acima, a menos que seja necessário solucionar problemas de uma exceção IPC-3-NOBUFF, pois isso pode causar a perda de informações importantes necessárias para determinar a causa raiz do problema.

Informações Relacionadas

- O que causa um "%RSP-3-RESTART: complexo CBUS?

- Exibição de informações de suínos para processos IPC

- Cisco 12000 Series Internet Router: Perguntas mais freqüentes

- Alcance um Roteamento Ideal e Reduza o Consumo de Memória BGP

- Página de suporte técnico do Cisco 12000 Series Internet Router

- Página de Suporte do Produto Cisco Routers

- Suporte Técnico - Cisco Systems