Resumo

  • A RFC 3434 fazia a magnitude viajar com HcValueStatus: zero acompanhado de valueNotAvailable(1) registrava indisponibilidade, não uma medição igual a zero.
  • A linha de alarme permanecia, as tentativas falhas eram contadas e o delta seguinte perdia a base; transição, evento, entrega e resposta continuavam sendo fatos diferentes.

O número que preenchia o lugar da ausência

Na RFC 3434, hcAlarmAbsValue não podia ser lido sozinho. Se o agente não conseguisse acessar a variável no intervalo, a magnitude seria zero e hcAlarmValueStatus indicaria valor indisponível. O zero satisfazia o formato. O estado limitava a afirmação.

O mesmo estado distinguia valores positivos e negativos. Isso era necessário porque um contador bruto podia ser não negativo, mas sua variação entre dois instantes podia cair. O modelo guardava módulo e sinal separadamente. Um exportador que preservasse apenas o módulo produziria dados bem formados e semanticamente falsos.

O texto simples, o registro do RFC Editor, a página do IETF, o histórico e as referências comprovam o documento e sua trajetória. Não comprovam implementação, adoção ou incidente atual.

Quando 32 bits deixaram de bastar

A RFC 2819 já oferecia amostragem periódica, limiares de subida e descida e uma tabela de eventos. Porém, a tabela de alarmes tinha semântica de 32 bits. A RFC 2863 mostrou o problema do aumento de velocidade: no exemplo citado, um contador de octetos de 32 bits podia dar a volta em cerca de 34 segundos a 1 Gbit/s.

A RFC 3434 criou uma tabela independente para Counter64 e para CounterBasedGauge64, convenção da RFC 2856. Ela reutilizava a tabela de eventos RMON, mas não alterava escondidamente a tabela antiga.

Os limiares também eram compostos. Cada limite ascendente ou descendente tinha palavra baixa, palavra alta e estado de sinal. A magnitude combinava a parte baixa com a parte alta multiplicada por dois elevado à trigésima segunda potência. Perder uma parte reduzia ou invertia o valor sem necessariamente quebrar o arquivo.

Persistência sem fabricação

Uma coleta falha não destruía a linha de alarme. A configuração podia continuar ativa, e hcAlarmValueFailedAttempts contava quantas consultas feitas em nome daquela linha não obtiveram valor. A norma preservava a regra sem inventar observação.

Essas evidências não eram intercambiáveis. A existência da linha mostrava continuidade da configuração. O contador de falhas mostrava que recuperações falharam. O estado indisponível mostrava que a magnitude não era utilizável naquele intervalo. Nenhum deles revelava sozinho a causa: acesso, desaparecimento do objeto, carga, temporização e falha interna continuavam abertos.

No modo absoluto, a leitura corrente era comparada diretamente com os limiares. No modo delta, o agente subtraía a amostra anterior. Se a anterior faltasse, a amostra atual não poderia criar uma linha de base retroativa. O delta deveria ser indisponível, ainda que a coleta corrente tivesse voltado a funcionar.

Uma ausência, portanto, ocupava o seu próprio intervalo e contaminava legitimamente o cálculo seguinte. Continuidade temporal fazia parte da medição.

Um cruzamento ainda não era uma resposta

O evento ascendente ocorria quando a amostra passava de abaixo para igual ou acima do limiar superior. Outro evento ascendente ficava bloqueado até o valor alcançar o limiar inferior. O lado descendente seguia a lógica inversa. Essa histerese evitava eventos repetidos a cada oscilação mínima.

A política inicial podia gerar um evento para a primeira amostra válida já fora da faixa. Mesmo assim, índice de evento zero significava nenhuma associação. Índice não zero sem linha correspondente na tabela também não criava associação. E uma associação válida ainda não provava envio, recepção, leitura humana ou correção.

O caminho era: obter, validar, calcular, comparar, detectar transição, resolver a tabela de eventos, executar ação, transportar, receber e responder. A RFC 3434 registrava etapas importantes, não o sucesso de todas elas.

O poder do ponteiro

hcAlarmVariable podia apontar para objetos inteiros fora da própria RMON. A RFC advertiu que as visões SNMP restringiam acesso, mas não conseguiam limitar adequadamente o valor do ponteiro a objetos de uma visão específica. A escrita deveria ser concedida apenas em visões capazes de ler todos os objetos da sonda.

A RFC 3410 enquadra o sistema; a RFC 3414 define USM e a RFC 3415 define VACM. Citação não comprova configuração segura. As RFCs 2578, 2579, 2580 e 2119 organizam a linguagem normativa, não atestam operação.

O registro SMI da IANA preserva a atribuição, e a consulta de erratas delimita correções conhecidas. Nenhum mede uso presente.

Dar lugar ao desconhecido

Uma tabela com tempo e valor é barata. Uma tabela honesta precisa também de estado, sinal, modo, continuidade, identidade e histórico de falhas. A RFC 3434 mostrou que esses campos não eram decoração: impediam que ausência ganhasse a autoridade visual de uma medição.

A análise de Heng Lu sobre camadas de realidade ajuda a entender por que o número visível domina o qualificador. Sua defesa do código em execução lembra que uma separação só vive se implementações e exportações a conservarem.

A RFC 3434 não prometeu que alguém receberia o alarme. Ela permitiu dizer algo anterior e mais rigoroso: a regra sobreviveu, a leitura faltou e o zero não foi medido.

Fontes