[yang-doctors] draft-ietf-netconf-notif-envelope-05 early Yangdoctors review
Ebben Aries via Datatracker <noreply@ietf.org> Thu, 09 July 2026 18:51 UTC
Return-Path: <noreply@ietf.org>
X-Original-To: yang-doctors@ietf.org
Delivered-To: yang-doctors@mail2.ietf.org
Received: from [10.244.21.96] (gaia.k8s.ietf.org [4.156.85.76]) by mail2.ietf.org (Postfix) with ESMTP id 7CA6E114249A0; Thu, 9 Jul 2026 11:51:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783623104; bh=Y1uvugxTRtmFVs8ZtqOy7Xsb0rVILa4mvBOi6cdi1Ew=; h=From:To:Cc:Subject:Reply-To:Date; b=pAHyfK/jR+GWFuO8VacxMYIApnkwFhPCfXdI9AB8iMNmzGmIUOZisC8hxcM7JZAKT WJkpsmL4E2Yx53K/xCYAC2bwdjtMxrfmbyvqC6AFjU/gEH4tWbNGKA4rIau0VC2QOI XP7IQDhzUce1xSr+BAO5kUpRxtJkgyrfzsulqipk=
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Ebben Aries via Datatracker <noreply@ietf.org>
To: yang-doctors@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 12.68.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <178362310440.641517.15837065988348453501@dt-datatracker-57b5d8f849-v5cht>
Date: Thu, 09 Jul 2026 11:51:44 -0700
Message-ID-Hash: YPDHHY6BN4HIFABBH5GOVINOFLC7TF6B
X-Message-ID-Hash: YPDHHY6BN4HIFABBH5GOVINOFLC7TF6B
X-MailFrom: noreply@ietf.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-yang-doctors.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: draft-ietf-netconf-notif-envelope.all@ietf.org, netconf@ietf.org
X-Mailman-Version: 3.3.9rc6
Reply-To: Ebben Aries <exa@hpe.com>
Subject: [yang-doctors] draft-ietf-netconf-notif-envelope-05 early Yangdoctors review
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/9S011rUTNor9TDNfiHClqhq7Q9o>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Owner: <mailto:yang-doctors-owner@ietf.org>
List-Post: <mailto:yang-doctors@ietf.org>
List-Subscribe: <mailto:yang-doctors-join@ietf.org>
List-Unsubscribe: <mailto:yang-doctors-leave@ietf.org>
Document: draft-ietf-netconf-notif-envelope Title: Extensible YANG Model for YANG-Push Notifications Reviewer: Ebben Aries Review result: Almost Ready 2 modules in this draft: - ietf-yp-notification@2026-05-11.yang - ietf-yp-observation@2026-05-11.yang YANG compiler errors or warnings (pyang 2.7.1, yanglint 5.8.6) - Both primary modules compile clean under pyang --ietf --strict and yanglint with no errors or warnings. - The companion example module (example-foo-extension.yang) compiles clean now under yanglint 5.8.6. The prior -02 review noted a libyang error on this module (augment extension target not found) - that has been resolved in a newer libyang release and is addressed. pyang --ietf --strict still flags the module with: example-foo-extension.yang:27: error: node ietf-yp-notification::envelope of type ('ietf-yang-structure-ext', 'structure') cannot be target node This appears rather a pyang tooling gap in RFC8791 (sx:augment-structure) support - Unrelated to these modules specifically but just to note that a dependency module fails `pyang --ietf` yang/ietf-subscribed-notifications@2019-09-09.yang:222: error: keyword "if-feature" not in canonical order (see RFC 7950, Section 14) yang/ietf-subscribed-notifications@2019-09-09.yang:276: error: keyword "if-feature" not in canonical order (see RFC 7950, Section 14) yang/ietf-subscribed-notifications@2019-09-09.yang:335: error: keyword "if-feature" not in canonical order (see RFC 7950, Section 14) yang/ietf-subscribed-notifications@2019-09-09.yang:344: error: keyword "if-feature" not in canonical order (see RFC 7950, Section 14) Prior Review Status -------------------- The following items from Juergen's -02 YANG Doctors review are now addressed in -05: - RFC3339 citation in the event-time description: removed, addressed - RFC1213 reference in the hostname description: removed, addressed - Inconsistent RFC title strings across reference statements: resolved, all references now consistently use "RFC XXXX: Extensible YANG Model for YANG-Push Notifications" The following items from the Joe's -03 OpsDir review are addressed in -05: - Per-subscription vs. network-wide control rationale: Section 4 now includes an explanation of the design decision, addressed - enable-notification-envelope description omitting subscription-termination behavior: the leaf description now includes termination behavior and uses MUST language, addressed - Typo "messsage" in Section 1.1: no longer present, addressed General Comments -------------------- This is a follow-up review against draft-05. The modules are in good shape and the majority of prior review comments have been resolved. The remaining issues below are largely nits and minor inconsistencies, with one functional concern regarding the optionality of the `contents` anydata node that should be resolved before publication. YANG Module - ietf-yp-notification -------------------- - (Nit) L#57: (module description): "encoded as defined in RFCXXX." is inconsistent with all other RFC placeholder occurrences in this file using "RFC XXXX". - L#162: The `contents` anydata node within the sx:structure envelope is optional (no `mandatory` statement), yet Sections 3.1.2.1 and 3.1.2.2 of the draft both state "Two mandatory child nodes within the 'envelope' container are expected, representing the event time and the Notification payload." - L#190: The `metadata` container added by `augment "/sn:subscriptions"` is empty with no children defined in this module. RFC8407 section 4.14.1 states that use of non-presence containers SHOULD be considered carefully. An empty container used purely as an extension anchor is unusual - the description of the container itself should likely make the intent explicit, e.g. "This container is intended to be augmented by modules defining optional notification metadata extensions." - No data node in this module carries a `reference` statement. Per RFC8407 section 4.14, if the data definition semantics are defined in an external document then a `reference` statement MUST be present. This applies to all nodes: `envelope` (L#106), `metadata` (L#115), `hostname-sequence-number` (L#119), `event-time` (L#136), `hostname` (L#143), `sequence-number` (L#151), `contents` (L#162), `enable-notification-envelope` (L#174), `metadata` (L#190), and `notification-metadata` (L#204). Several of these embed "Refer to Section 4 of RFC XXXX for more details." directly in the description (e.g. L#188, L#193) - that normative pointer belongs in a `reference` substatement, not the `description`. - (Nit) L#178: The description of `enable-notification-envelope` wraps continuation lines flush with the opening quote rather than one space past it, as used consistently elsewhere in the module. This causes line breaks to fall mid-phrase (e.g. "notification-envelope / defined in RFC XXXX", "using / the header configured", "Refer to / Section 4"), making the text read as dangling fragments. YANG Module - ietf-yp-observation -------------------- - L#33: (contact): The WG Web URL is malformed and stale: <http:/tools.ietf.org/wg/netconf/> This has a single slash after the colon and uses plain HTTP. Update to match ietf-yp-notification: <https://datatracker.ietf.org/group/netconf/> - L#132: The `yang-push-observation-time-supported` leaf description reads: "If set to true, publisher supports. If set to false, the observation-timestamp is not supported." The first sentence appears grammatically incomplete. Suggest: "If set to true, the publisher supports the observation-timestamp and point-in-time in notifications. If set to false, these are not supported." - L#74, L#79: The `timestamp` and `point-in-time` nodes in the `yang-push-observation` grouping carry no `reference` statement. Per RFC8407 section 4.14, a `reference` statement MUST be present when the semantics are defined in an external document. Notably `yang-push-observation-time-supported` (L#126) does carry a `reference`, making the omission on the grouping nodes inconsistent. - (Nit) L#110, L#117: The augment statements reference the grouping with a self-prefix (`uses iypo:yang-push-observation;`). Per RFC7950 section 5.4, the module prefix is not required when referencing a grouping defined in the same module. Suggest `uses yang-push-observation;`. Example validated instance data: <subscriptions xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"> <enable-notification-envelope xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-notification">true</enable-notification-envelope> </subscriptions> <system-capabilities xmlns="urn:ietf:params:xml:ns:yang:ietf-system-capabilities"> <subscription-capabilities xmlns="urn:ietf:params:xml:ns:yang:ietf-notification-capabilities"> <notification-metadata xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-notification"> <envelope>true</envelope> <metadata> <hostname-sequence-number>true</hostname-sequence-number> </metadata> </notification-metadata> <yang-push-observation-time-supported xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-observation">true</yang-push-observation-time-supported> </subscription-capabilities> </system-capabilities> <envelope xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-notification"> <event-time>2026-06-24T10:00:00Z</event-time> <hostname>router.example.com</hostname> <sequence-number>42</sequence-number> <contents> <push-update xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push"> <id>101</id> <timestamp xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-observation">2026-06-24T09:59:55Z</timestamp> <point-in-time xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-observation">current-accounting</point-in-time> <datastore-contents> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interface> <name>eth0</name> <admin-status>up</admin-status> <oper-status>up</oper-status> <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type> </interface> </interfaces> </datastore-contents> </push-update> </contents> </envelope> <push-update xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push"> <id>101</id> <datastore-contents> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interface> <name>eth0</name> <admin-status>up</admin-status> <oper-status>up</oper-status> <type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">ianaift:ethernetCsmacd</type> </interface> </interfaces> </datastore-contents> <timestamp xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-observation">2026-06-24T09:59:55Z</timestamp> <point-in-time xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-observation">current-accounting</point-in-time> </push-update> <push-change-update xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-push"> <id>102</id> <datastore-changes> <yang-patch> <patch-id>patch-1</patch-id> <edit> <edit-id>1</edit-id> <operation>replace</operation> <target>/ietf-interfaces:interfaces/interface[name='eth0']/oper-status</target> <value> <oper-status xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">down</oper-status> </value> </edit> </yang-patch> </datastore-changes> <timestamp xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-observation">2026-06-24T10:00:01Z</timestamp> <point-in-time xmlns="urn:ietf:params:xml:ns:yang:ietf-yp-observation">state-changed</point-in-time> </push-change-update>
- [yang-doctors] draft-ietf-netconf-notif-envelope-… Ebben Aries via Datatracker