Summary

  • O draft-ietf-netconf-yang-notifications-versioning-14 permite restringir assinaturas YANG-Push por revisão ou versão semântica compatível e acrescenta contexto de módulos aos avisos de início e modificação.
  • Revisão, versão opcional e yang-library-content-id descrevem o contexto no publicador. Não provam a ordem dos registros em trânsito, o decodificador efetivamente usado, a migração do armazenamento ou a validade das decisões posteriores.
  • Daniel Kade propõe um registro de passagem do esquema de telemetria que una aviso, conjuntos exatos antes/depois, último e primeiro registros decodificados, filas e replay, testes, suspensões a jusante, responsável e encerramento. Não é requisito da IETF.

A manutenção termina antes da passagem

Uma equipe pode encerrar a janela às 04:00 porque o equipamento voltou a responder. O publicador, porém, alterou a biblioteca às 03:58:12; o aviso tem outro horário; o coletor o recebeu alguns segundos depois; o novo decodificador só foi ativado quando as dependências chegaram. O banco atualizou sua projeção em mais um momento, e cada automação retomou em uma hora diferente.

Não há contradição nesses relógios. Cada um mede um ato local. O erro é selecionar um deles e chamá-lo de conclusão de toda a passagem.

O horário do publicador não drena a fila do coletor. O recebimento autenticado do aviso não escolhe o worker que tratará um pacote antigo. Uma gravação bem-sucedida não valida a semântica da regra que lê a coluna. A governança começa ao impedir que um estado parcial se torne, sem justificativa, a verdade de todos os outros.

A lacuna que a revisão 14 corrige

No desenho existente, o receptor de YANG-Push pode ter de consultar ietf-yang-library depois de uma notificação de mudança de estado para descobrir se os módulos referenciados mudaram de significado. Essa consulta separada custa tempo e pode enxergar uma biblioteca mais recente que a do evento original.

O módulo proposto, ietf-yang-push-revision, permite associar um nome de módulo a uma revisão determinada ou a uma versão semântica. Se o servidor não suporta o pedido, deve devolver erro RPC. Se a restrição de uma assinatura configurada deixar de coincidir com a biblioteca YANG, o publicador não deve transmitir notificações.

Os avisos subscription-started e subscription-modified passam a poder carregar nomes de módulos, revisões, versões quando disponíveis e o yang-library-content-id. O receptor ganha uma referência semântica junto com o evento e pode descobrir, por capabilities, se o servidor oferece a extensão.

Isso resolve um problema real. Uma assinatura pode recusar um contexto não autorizado, e um ID de assinatura estável deixa de mascarar um esquema alterado. O texto não promete que todos os sistemas de recepção e uso mudam de forma atômica — e não precisa prometer.

O content ID não é um hash universal

O identificador de conteúdo representa as informações atuais da biblioteca YANG de um servidor e depende da implementação. Se mudou, ao menos um módulo daquele servidor mudou. Talvez seja um módulo fora do XPath ou da subárvore assinada.

Também não é definido como impressão digital portátil dos bytes que o coletor carregou. O operador pode calcular uma impressão sobre módulos exatos, imports, features e deviations adquiridos. Essa impressão local e o content ID do servidor respondem a perguntas diferentes; ambos devem permanecer com proveniência e escopo próprios.

Mesmo a lista de módulos do aviso não atesta o ambiente completo no receptor. Uma feature distinta altera a árvore efetiva. Uma deviation retira um nó esperado. O parser pode aceitar o documento e o mapeador de armazenamento ainda aplicar unidade, nulidade ou cardinalidade antigas.

Referenciar corretamente um esquema é condição para interpretar. Não é o resultado da interpretação.

Um aviso não funciona como barreira de fila

Considere A e B produzidos no esquema antigo, C como aviso e D no novo. O fluxo conceitual é A-B-C-D. Canais de controle e dados separados podem entregar A-C-B-D. Um replay pode trazer B depois de D. Um worker velho pode terminar B quando outro já persistiu D com o novo decodificador.

C pode ser autêntico e pontual sem classificar B. Para isso, é preciso conhecer ordem de transporte, estado das filas, atribuição de workers e resultado de decodificação.

Não faz sentido exigir que uma extensão de protocolo se transforme numa transação distribuída entre todos os produtos. O escopo estreito é saudável. A obrigação adicional pertence a quem utiliza o aviso para liberar análise ou controle.

Compatibilidade precisa de um consumidor

O modelo tradicional de revisões YANG espera mudanças compatíveis. O versionamento semântico YANG pode marcar alterações não retrocompatíveis. Essas informações ajudam seleção e política.

Um consumidor específico ainda pode falhar diante de uma adição compatível. O parser pode ter um defeito, a combinação de features pode não ter sido testada ou uma série pode manter o mesmo nome com outra interpretação operacional. Um campo novo pode ser ignorado justamente quando deveria alterar o cálculo.

É melhor registrar três avaliações: como o autor classificou a mudança, se a política da assinatura a aceitou e se o uso concreto passou em testes. A palavra “compatível” não deve apagar esses três responsáveis.

O silêncio criado pela proteção

A proibição de enviar quando a restrição não coincide protege o assinante. O publicador não pode continuar entregando dados sob outro contexto como se nada tivesse acontecido.

Para o observador, porém, esse silêncio se parece com ausência de mudança numa assinatura on-change, falha de transporte, coletor indisponível, perda de permissão ou filtro sem resultados. Repetir o último valor como “estável” anula a proteção. Classificar todo silêncio como erro de versão cria incidentes falsos.

O registro de passagem deve guardar qual expectativa estava válida, o motivo observado para a interrupção, os indícios que excluíram outras causas e a autorização de retomada. Sem causa suficiente, congela-se o uso consequente, não se inventa uma explicação.

O conteúdo mínimo do registro

O artefato não duplica toda a telemetria. Ele liga referências controladas por sistemas diferentes:

  • identidade do publicador, ID da assinatura, filtro exato e restrição solicitada;
  • content IDs antes/depois e impressões locais separadas dos conjuntos exatos de módulos, imports, features e deviations;
  • hash do aviso autenticado, hora do evento, chegada e processamento;
  • último registro comprovadamente decodificado sob o conjunto antigo e primeiro sob o novo;
  • sequência, replay e ressincronização, incluindo intervalos em fila, descartados, isolados ou reprocessados;
  • builds do decodificador e do mapeador, vetores de teste e tratamento dos nós alterados;
  • alertas, controles, relatórios e modelos pausados, recalculados ou aceitos por exceção;
  • dono da decisão, incerteza, alvo de rollback e evidência de encerramento.

“Último” e “primeiro” significam o que o coletor consegue provar, não necessariamente o limite exato de geração no publicador. Se a evidência de transporte não fecha a distância, ela permanece declarada.

Segurança do canal não é segurança do sentido

A revisão 14 trata corretamente os nós graváveis da política de versão como sensíveis. NETCONF e RESTCONF devem usar transporte seguro e autenticação mútua, e NACM deve restringir quem configura ou altera a assinatura. Uma mudança indevida pode parar o fluxo ou impor contexto inesperado.

Essas proteções dizem quem agiu e ajudam a preservar a mensagem. Não provam que a fila foi drenada, que o decodificador correto entrou em serviço ou que uma regra de negócio continua válida. A força criptográfica não amplia a afirmação contida no aviso.

Uma operação madura usa a mudança como gatilho para uma pausa limitada: obtém e identifica os módulos, executa fixtures, reconcilia filas e replay, compara projeções e libera cada uso conforme seu risco. Se o content ID mudou por módulo alheio ao filtro, o encerramento pode ser rápido. Se a telemetria conduz controle automático, a prova precisa ser mais forte.

O aviso mostra onde a fronteira apareceu. O registro torna justificável a decisão de atravessá-la.

Fontes