Summary
draft-ietf-netconf-yang-notifications-versioning-14позволяет ограничить подписку YANG-Push ревизией или совместимой семантической версией модуля и добавляет контекст модулей в уведомления о запуске и изменении подписки.- Ревизия, необязательная версия и
yang-library-content-idописывают схему у издателя. Они не доказывают порядок записей в пути, выбор декодера, миграцию хранилища и сохранение смысла последующих решений. - Daniel Kade предлагает акт передачи схемы телеметрии: точные наборы модулей до и после, уведомление, последняя и первая доказанно декодированные записи, очереди и повтор, испытания, остановки потребителей, владелец решения и закрытие. Это не требование IETF.
У одного изменения нет единственного времени
В плане работ записано 02:00. Устройство активирует новую YANG Library в одну секунду, в eventTime уведомления стоит другая, коллектор получает его позже. Затем рабочий процесс загружает декодер, база переключает отображение, а владелец автоматики отдельно снимает запрет на решения.
Все отметки могут быть точными, но каждая относится к своему утверждению.
Часы издателя не опустошают очередь получателя. Получение подлинного уведомления не показывает, какой декодер обработал пакет, уже лежавший в буфере. Успешная запись в базу не подтверждает, что формула тревоги правильно понимает единицу или условие наличия поля. Единая зелёная метка «переход завершён» незаметно отдаёт локальному событию власть над всей цепью.
Нужен не выбор одной удобной отметки, а связь между границами и ответственными решениями.
Какой пробел закрывает редакция 14
Сегодня получателю YANG-Push после уведомления об изменении состояния подписки может понадобиться запрос к ietf-yang-library издателя. Иначе он не узнает, изменилась ли семантика задействованных модулей. Отдельный запрос создаёт задержку и способен увидеть уже следующий, а не исходный, состав библиотеки.
Предлагаемый модуль ietf-yang-push-revision добавляет политику версии. Клиент может назвать модуль и потребовать конкретную ревизию либо семантическую версию. Неподдерживаемый запрос должен получить ошибку RPC. Если условие настроенной подписки перестало совпадать с YANG Library, издатель не должен отправлять уведомления.
subscription-started и subscription-modified получают имена модулей, их ревизии, версии при наличии и необязательный yang-library-content-id. Неизменный ID подписки больше не вынуждает получателя предполагать неизменный смысл. Поддержку расширения можно обнаружить через модель возможностей.
Это существенное улучшение: нежелательный контекст можно отвергнуть, а изменение во время жизни настроенной подписки — заметить. Проект не обещает атомарно перестроить очереди, программное обеспечение, хранение и все последующие применения.
Идентификатор содержимого не является общей контрольной суммой
yang-library-content-id представляет текущую информацию YANG Library конкретного сервера и зависит от реализации. Новое значение означает изменение одного или нескольких модулей на этом сервере. Изменившийся модуль может вообще не входить в путь подписки.
Идентификатор не определён как переносимый хеш тех байтов схемы, которые реально загрузил коллектор. Оператор может вычислить собственный отпечаток точных модулей, imports, features и deviations. Его следует хранить отдельно от ID сервера, с явным источником и областью действия.
Список модулей в уведомлении точнее очерчивает контекст, но не аттестует окружение получателя. Другая комбинация features меняет эффективное дерево. Deviation может убрать ожидаемый узел. Парсер способен принять структуру, а старое отображение хранилища — неверно обработать единицу, пустое значение или множественность.
Правильная ссылка на схему ещё не является доказательством правильного исполнения.
Уведомление не ставит барьер в очередях
Пусть A и B созданы по старой схеме, C сообщает о смене, а D создана по новой. Логический порядок — A-B-C-D. Разные пути управления и данных могут дать получателю A-C-B-D. Replay способен вернуть B после D. Старый worker может начать B и закончить после того, как новый уже сохранил D.
Подлинность C и точность его времени сами по себе не классифицируют B. Нужны сведения о транспортном порядке, очереди, назначении worker и результате декодирования.
Не следует превращать узкое протокольное расширение в распределённую транзакцию для всех внешних продуктов. Ограниченный стандарт проще внедрять. Но оператор не вправе подменять предел стандарта заявлением, будто за этим пределом всё тоже завершилось.
Совместимость всегда имеет потребителя
Обычная модель ревизий YANG ожидает сохранения совместимости. Семантическое версионирование YANG умеет явно отметить несовместимое изменение. Эти сведения полезны для выбора и политики.
У конкретного потребителя остаются свои зависимости. Совместимое добавление может проявить дефект парсера. Features или deviations могут отличаться от испытанного набора. Новое поле иногда молча игнорируется, хотя должно изменить расчёт. Синтаксис остаётся допустимым, а смысл показателя меняется.
Поэтому отдельно фиксируются классификация автора модуля, принятие политикой подписки и результат теста данного потребителя. Одно слово «совместимо» не должно стирать трёх владельцев этих решений.
Защитное молчание остаётся неоднозначным
Запрет отправки при несовпадении условия защищает подписчика: издатель не продолжает поток в неразрешённом семантическом контексте.
Но снаружи это молчание похоже на отсутствие изменений в on-change-подписке, сбой транспорта, остановку коллектора, изменение доступа или пустой фильтр. Если интерфейс продолжает показывать последнее значение как «стабильное», защита теряет смысл. Если всякая тишина объявляется ошибкой версии, появляются ложные инциденты.
Акт передачи должен сохранить действовавшее ожидание доставки, наблюдаемую причину остановки, различение альтернатив и того, кто разрешил возобновление. При недостатке доказательств останавливают применение с высоким ущербом, а не сочиняют причину для пустого интервала.
Минимальный акт передачи
Предлагаемая запись не копирует всю телеметрию. Она связывает:
- издателя, ID подписки, точный XPath или subtree и требуемую ревизию/версию;
- content ID до и после, а отдельно — локальные отпечатки точных модулей, imports, features и deviations;
- хеш аутентифицированного уведомления и время события, приёма, обработки;
- последнюю запись, доказанно разобранную старым набором, и первую — новым;
- sequence, replay и resynchronization, судьбу ожидавших, потерянных, изолированных и повторно обработанных интервалов;
- сборки декодера и отображения хранилища, тестовые векторы и результаты;
- тревоги, управления, отчёты и модели, которые остановили, пересчитали или допустили по исключению;
- владельца решения, остаточную неопределённость, цель отката и доказательство закрытия.
«Последняя» и «первая» означают границу, которую может подтвердить коллектор. Она не обязана совпадать с истинной границей генерации у издателя. Если транспортные данные не устраняют разрыв, его нужно оставить явным.
Защита канала не гарантирует смысл
Редакция 14 справедливо считает записываемые узлы политики версии чувствительными. NETCONF и RESTCONF требуют защищённого транспорта и взаимной аутентификации; NACM ограничивает право изменять условия. Несанкционированное действие может остановить поток или навязать неожиданный контекст.
Эти меры подтверждают участников и целостность сообщения. Они не доказывают очистку очереди, выбор верного декодера или пригодность бизнес-правила. Криптографическая прочность не расширяет содержание защищённого утверждения.
Зрелая эксплуатация использует сообщение как начало ограниченной паузы: получает и фиксирует точный набор модулей, запускает fixtures, сверяет очереди и replay, сравнивает проекции, затем отдельно открывает каждое применение. Изменение модуля вне фильтра можно закрыть быстро. Для телеметрии, управляющей автоматикой, порог выше.
Уведомление показывает появление границы. Акт передачи делает решение пересечь её подотчётным.
Источники
- Проект версионирования уведомлений YANG, редакция 14
- Текущая запись Datatracker
- История документа
- RFC 8641 — YANG-Push
- RFC 8639 — Подписки на уведомления YANG
- RFC 8525 — YANG Library
- RFC 8341 — NACM
- Версионирование модулей YANG
- Семантическое версионирование YANG
- Lu Heng — The Policy Mirror
- Рабочая группа NETCONF
- RFC 7950 — Язык моделирования YANG 1.1
- RFC 9196 — Модули YANG для описания возможностей
- Lu Heng — Running Code Primary
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
