Summary
- O
draft-ietf-netconf-yang-notifications-versioning-14permite 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-iddescrevem 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
- Projeto de versionamento de notificações YANG, revisão 14
- Registro atual no Datatracker
- Histórico do documento
- RFC 8641 — YANG-Push
- RFC 8639 — Assinaturas de notificações YANG
- RFC 8525 — YANG Library
- RFC 8341 — NACM
- Versionamento de módulos YANG
- Versionamento semântico YANG
- Lu Heng — The Policy Mirror
- Grupo de trabalho NETCONF
- RFC 7950 — Linguagem de modelagem YANG 1.1
- RFC 9196 — Módulos YANG que descrevem capacidades
- Lu Heng — Running Code Primary
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
