Кратко
draft-ietf-netmod-yang-packages-09рекурсивно объединяет пакеты, implemented и import-only модули, features, deviations, исключения и mounts в resolved package schema.- Валидный
.ypkg, отсутствие циклов,complete: trueи привязка YANG Library подтверждают структуру заявления. Они не подтверждают происхождение байтов, загрузку процесса, совпадение клиента и сервера, совместимость экземпляров и успех развёртывания.
Самый опасный отчёт выглядит безупречно. Пара name/version уникальна, JSON проходит проверку, include-граф не содержит циклов, все location отвечают, imports закрыты. Однако контроллер берёт старую копию из cache, а сервер объявляет новый контент под тем же именем и версией. Оба разрешения могут быть корректны по отдельности и несовместимы вместе.
Редакция 09 датирована 6 июля 2026 года. Это активный Internet-Draft рабочей группы NETMOD для Standards Track, срок которого истекает 7 января 2027 года. Документ остаётся work in progress и не свидетельствует о внедрении. Он создаёт дисциплину там, где раньше могла быть только папка: именованную, версионированную, иерархически вычисляемую схему.
Разрешение меняет наследование
includes добавляет пакеты, implemented modules, import-only modules и обязательные features. excludes удаляет унаследованные модули и функции. depends-on указывает контекст для неполного пакета, но не включает его в собственную resolved schema. mount задаёт пакеты и features в точке монтирования.
Сначала каждый включённый пакет разрешается тем же рекурсивным процессом. Затем результаты сливаются с локальными решениями. Implemented modules объединяются, конфликт версий решается, локальная запись может заменить выбор, а исключения фильтруют итог. Import-only может сохранять несколько версий. Features объединяются, добавляются и удаляются; исключение модуля удаляет его features.
Для mount значение inherit-packages=false отбрасывает унаследованный набор и передаёт определение подсхемы локальной записи. Списки location сохраняют первое вхождение и добавляют новые URI в порядке includes. Порядок воспроизводим, но не удостоверяет содержимое первого адреса.
Автоматический победитель не знает ожиданий клиента
При конфликте implemented module два YANG Semver сравниваются только по major, minor и patch; модификаторы совместимости, prerelease и build metadata игнорируются. Semver предпочтительнее иного формата; без Semver выигрывает более новая revision-date. Локальный модуль может задать явный override.
Такой выбор детерминирован, но не знает, для какой версии сгенерирован клиент и какая ветка одобрена. Нужна запись всех кандидатов, правила, победителя, замен, исключений и предупреждений. Нулевой код возврата не описывает решение.
Классификация различий схем рассмотрена отдельно. Она помогает оценке, но не доказывает, что сравнивались фактически загруженные байты, и не исполняет клиента.
complete означает замкнутые imports
Пакет referentially complete, если каждый import каждого прямо или косвенно включённого модуля разрешается в версию внутри определения. Неполный hotfix может назвать ожидаемый контекст через depends-on.
Это не гарантия подлинности mirror, неизменности контента, получения всех submodules или поведения данных. Submodules перечисляются главным образом ради location; разрешение выбирает версию модуля и при равенстве может предположить эквивалентность. Реальные байты всё равно нужно фиксировать.
Глобальная уникальность name/version — правило публикации, а не content addressing. При расхождении двух location ожидание эквивалентности не определяет верный источник. Требуются издатель, URI, время получения, происхождение cache и digest.
Каталог, привязка и загрузка — разные факты
Верхний список packages показывает, что сервер знает, но запись может не быть реализована или активна ни в одном datastore. Только расширение YANG Library связывает name/version и additional features с конкретной datastore schema.
Результат такой привязки должен быть полным и точно совпадать с module-set YANG Library. Это сильная проверка согласованности, но обе стороны описывает сервер. Клиент должен сравнить их и сохранить время и content-id. Последний создаёт сервер; это индикатор изменения, а не общий digest.
.ypkg переносит определение как JSON instance data. Клиент может взять серверную копию, location или cache с тем же name/version. Структурная проверка не подтверждает автора, свежесть, путь разрешения или активацию. RFC 9195 также не считает instance data протоколом управления живой конфигурацией и состоянием.
Соответствие пакету не равно результату сети
Сервер, отличающийся от стандартного пакета, может объявить server implementation package: включить исходный, выбрать другие версии, добавить deviations, исключить модули или features. Это честно описывает вариацию, но не гарантирует работу контроллера.
Поэтому доказательства разделяются: издатель и identity; байты и digest; структурная проверка; рекурсивная трасса; конфликт и победитель; closure imports/submodules; итоговая schema; binding datastore; load процесса; множества клиента и сервера; тесты конфигурации, состояния, RPC, notifications и доступа; порядок rollout и rollback; runtime; внешний эффект.
Первичные источники
Использованы редакция 09, её запись и история Datatracker, RFC 7950, RFC 8525, RFC 9195, RFC 8528, RFC 8342, YANG Module Versioning редакция 17, YANG Semantic Versioning редакция 28 и протокол NETMOD IETF 122: https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-packages-09; https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-packages/; https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-packages/history/; https://www.rfc-editor.org/rfc/rfc7950.html; https://www.rfc-editor.org/rfc/rfc8525.html; https://www.rfc-editor.org/rfc/rfc9195.html; https://www.rfc-editor.org/rfc/rfc8528.html; https://www.rfc-editor.org/rfc/rfc8342.html; https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-module-versioning-17; https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-semver-28; https://datatracker.ietf.org/doc/minutes-122-netmod-202503190600/00/.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
