[Ivy] Re: YANG Doctors Early Review for "A YANG Module for Entitlement Inventory" - draft-ietf-ivy-inventory-entitlement-04
Marisol <marisol.ietf@gmail.com> Tue, 28 July 2026 10:20 UTC
Return-Path: <marisol.ietf@gmail.com>
X-Original-To: ivy@mail2.ietf.org
Delivered-To: ivy@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id CE3EB11FBDCA7 for <ivy@mail2.ietf.org>; Tue, 28 Jul 2026 03:20:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785234024; bh=9xVyMs+CMFqXTdjSeCthoq1ATF+YXjfy0lSXrmm6fs0=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=bdpjpygqWubN2++e0EEiRcZ4+oPosSxCbvOmM9flADb5V5gdcjT67yHVbGVyA61RK K8Pqtisjy2kETG/dRnffh3T0QW4jrCB5xCQfJpW/wd9Ha7s/g2umqdiUPhsBxhAGRe IqJb/LLWSr93Q8zHuT+JyWMgSKsgtS8jyU8MXZS8=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PZsb5OqG1Lyf for <ivy@mail2.ietf.org>; Tue, 28 Jul 2026 03:20:24 -0700 (PDT)
Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 3C2F411FBDC7B for <ivy@ietf.org>; Tue, 28 Jul 2026 03:20:23 -0700 (PDT)
Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-84e3007a2b7so3109231b3a.0 for <ivy@ietf.org>; Tue, 28 Jul 2026 03:20:23 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1785234016; cv=none; d=google.com; s=arc-20260327; b=jxWrSggoBg6zH0MbxUP1l/t0ZOE0p6SKmkO6ojKsCVqS1+MSO9piRmalXg+gmN8FUV /sKnJlAxm2i7lC6KycdtpJVqts3AZH+5eWzy1wzoaqeY+Xxuz2z7qZztR5do9YA56hEu awBINJwS1oxeXSNpXDo2COQ8eI0DnbydkPrR8DIWa3lul+pmw6QdeE9GJix4bbgdKQni ncRaJM5JaQi7CunlyuEVJKb6gssqLH9BgzP7O1yFGpie5CjCFV1T4yvhNBQS9dKTuotW ArmU+sMvUqAOgB1iw9uVxW7sqejWHrK5x0K5n81TWy/9dl4EIavVHuHxtCfy+tLvFPIi 2dag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=bH1E0t8mGuNkHvOBSq+IYyfyui3sJa1KyL/mjaTATrk=; fh=8NljhbHyIZ3V2JfTAaFe8XKJ80zxyrdrCuCIQdgoHsw=; b=dcUqw9vgPcS7pHEEGeBOjtKZatlC+mF8I6Y8+qDBlgnNcRZWZS1UV3XKUzFEXEdD7g hyHVDaX/7zqhdhKqKO7g0mBuvzKjb0ijGlOcX7KqHytLj3hdjPB+4A8kfur6bhwurEg4 T4zr+yNXX9jRyGI0tgZV4ErUlcU4/WkdgDM32AjTYZ9KkiNrYNdxgk0qSciZ5//MDQro d8gKdRQgQJFLhEcG5vaqkBJJGh422vo+9WToKTBMWjnhLG2rQZ08mkL8vlSpBDl11xS2 aKmZoaHAmZtKOFB6AuHpDEAdrZkTzpFEz1TSMs9tRIKF58RpSTzvZQNAFlq+d3llItVP tN9A==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785234016; x=1785838816; darn=ietf.org; h=content-transfer-encoding:content-type:cc:to:subject:message-id :date:from:in-reply-to:references:mime-version:from:to:cc:subject :date:message-id:reply-to:content-type; bh=bH1E0t8mGuNkHvOBSq+IYyfyui3sJa1KyL/mjaTATrk=; b=tNBVQGefN/xVk4kbbskMR19qpmdallvCXQkgjXSVdeBK4Qrvt8rus4glCLKG3Mxd0B FYkCMH02Zry4PFf1mU/AX4UlQdaYoz7JfunmSlmoLBvO3Fz79Qi7tqSfzw4Qf0Jo6r1H kDbVm/dDyp1GhCpxfiESc8sjyO5kELW7VT63+r440FIeRJK9KLltlqjYY3lprbberCTt QHpTC8hU/7FJz4NoKIdnov5ahBr5PUUTktbY/a28bd6gXvvyHHGWcpmHoeh415NJA6mF ruSjsDfolBThdEQ3JgWcgdDz/fgFrX6x6oV0wDjBCqA4//m3RS7IKyxu6myjriNCgr1L 9oNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785234016; x=1785838816; h=content-transfer-encoding:content-type:cc:to:subject:message-id :date:from:in-reply-to:references:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=bH1E0t8mGuNkHvOBSq+IYyfyui3sJa1KyL/mjaTATrk=; b=AE19spi3WNCE0r523h2990wMkqXlx3J8zXObvL1hAG2zmQiF0K2QJSnjMSCf7Pj+1j agOnWzoSb+ezdN3a1rTZmZChGuFh3+019PgxZgwdTcnYno8rEaOzWkYh4g7AtBKEeuOc 3KSkHqIp/g0JN7RsQRPokaUvQrrZsKySBtEqY6slyAmoMbLhNcN7dRu6SbasmpjWOlJM GuHuqJQ9NG3ALQdRC1D0N3pISqVkQy2Qfy0V1MzyKTwge935HTOJjOHURUapB2NzmqY3 qZrp9HE4zUHXw004hTZcs0BO2PzpeYP75TRhbHDpQ4C5qPFJtl3j7/v2QwWUsOvjnL4S 3lYQ==
X-Forwarded-Encrypted: i=1; AHgh+Rp7CyVNZydI+De/srasdNzqX6M6z+bKRRnMO1n/nr8QTsj0q5vnUaVlkBFKJV6gMlQQfFg=@ietf.org
X-Gm-Message-State: AOJu0YwqbkvEtn7Nt5XCGCnTEMYz2TsPXEqVm/bI0ZufPboxTFcxnQmK Yp5IJK7yINDvYEKTSotOzA+ywzYbyIyolgmUjOhQImTbFh04tbfizceERpUp4j+KBcPBXzCJVwb 3kVX771xkvozVcHRurT3ml2//u9oRRz8m8w==
X-Gm-Gg: AR+sD100QLWBF9F3HU/9LJndbyhhv7PRA0iR1YrBXFRoIqZyPIO2XGqYJ7FvII5INr0 /q7D/KzxOgcx3o5K0OJwDUJu/sgn9pzcgzRfqlMSxCcdxEI3OEfSD4goubmYREmukhLCk4mGQFY 0q/dtGkCF+xLuwPXzaDRNruV9e3TjbVyYqEngHlkNecNYsQ7DKq4/Qw0vxTcBjK+rfEL3+dG1vc Fzm4VePnU5Ju6AXNpMoc6l31ezPNZ7G8jJtXKTNyI3ZB+egn3HAf9mdHVVt3i6J9wFGibw=
X-Received: by 2002:a05:6a00:4fc7:b0:842:5da3:9b89 with SMTP id d2e1a72fcca58-84e932ee1f3mr2048810b3a.38.1785234016205; Tue, 28 Jul 2026 03:20:16 -0700 (PDT)
MIME-Version: 1.0
References: <3B421669-2E05-44A3-85A2-7DE36EFB182F@gmail.com>
In-Reply-To: <3B421669-2E05-44A3-85A2-7DE36EFB182F@gmail.com>
From: Marisol <marisol.ietf@gmail.com>
Date: Tue, 28 Jul 2026 12:20:05 +0200
X-Gm-Features: AUfX_mz8MzQnKVndnATZxR5fzOL0QOVSU2PUQKim5SWMt3c0bwoipoDCJFJb8r8
Message-ID: <CAO+xsemwncNraF0pzNtmG_cC5nf3AtjQCsXxT=COToqwZ05L+A@mail.gmail.com>
To: Acee Lindem <acee.ietf@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: 4GDVN65PPTSH4ZTA3BTA3HN33CECJO5I
X-Message-ID-Hash: 4GDVN65PPTSH4ZTA3BTA3HN33CECJO5I
X-MailFrom: marisol.ietf@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: draft-ietf-ivy-entitlement-inventory@ietf.org, ops-ads@ietf.org, ivy@ietf.org, YANG Doctors <yang-doctors@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Ivy] Re: YANG Doctors Early Review for "A YANG Module for Entitlement Inventory" - draft-ietf-ivy-inventory-entitlement-04
List-Id: Network Inventory YANG Working Group <ivy.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/ivy/e8rl78n92H6mzM1dWQI5kPAId1U>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ivy>
List-Help: <mailto:ivy-request@ietf.org?subject=help>
List-Owner: <mailto:ivy-owner@ietf.org>
List-Post: <mailto:ivy@ietf.org>
List-Subscribe: <mailto:ivy-join@ietf.org>
List-Unsubscribe: <mailto:ivy-leave@ietf.org>
We want to thank you Acee, on behalf of the authors, for the detailed review.
Really appreciate it!,
In the next coming days we will work on it addressing all the points
that you are highlighting.
Many thanks,
Marisol
On Mon, Jul 27, 2026 at 7:56 PM Acee Lindem <acee.ietf@gmail.com> wrote:
>
> Document: draft-ietf-ivy-inventory-entitlement
> Reviewer: Acee Lindem
> Review Date: 2026-07-27
> IETF LC End Date: N/A (Early Review)
> Intended Status: Proposed Standard.
>
> This is YANG doctor early review on the YANG data module
> ietf-entitlement-inventory.yang. The YANG data module includes augments
> to the network-inventroy.yang YANG module to expose the entitlements
> for network elements in the network inventory. Additionally, the data
> module includes the entitlement restrictions and relationships between
> entitlements (i.e., the hierarchy).
>
> The draft also includes a description of the framework for entitlements.
> Interestly, the provisioning of entitlements is outside the scope of the
> draft and all the data nodes in the module are read-only. Finally, the
> draft contains a large number of examples (8) for various entitlement
> use cases.
>
> The ietf-network-entitlement.yang data module augments the
> ietf-network-inventory.yang data module and is well-structured. As this
> is an early review, there are a number of issues that need to be fixed
> prior to WG last call. I've characterized these by the type of issue.
>
> Formating issues:
>
> 1. All the YANG trees are formatted without line constraints and
> exceed the supported RFC page length. Please reformat with
>
> pyang -f tree --tree-line-length 66 ietf-network-inventory.yang
>
> 2. Many of the JSON example lines also exceed 69, the RFC maximum.
>
> 3. There are a number of unprintable characters in the draft. I've tried
> to removed these in the nits.
>
> RFC 9907 Issues:
>
> 1. Missing References for imported YANG data modules:
>
> RFC 7950 — the module is yang-version 1.1. RFC 6020 is cited
> correctly the registry.
> RFC 9911 — ietf-yang-types is imported for date-and-time.
> RFC 8340 — tree diagrams in sections 3.2, 3.3, 3.5, and 3.7.1.
> RFC 7951 — all of section 4 is JSON encoding.
> RFC 6241/8040/8446 for the security boilerplate.
>
> 2. Similiarly, the imported modules should contain YANG
> reference statements for the corresponding drafts for RFCs.
>
> 3. The YANG description statement and the YANG revision statement
> should reference the current version of the draft. Also, the
> revision statement should a YANG refernce statement. There are
> plenty of examples. Also, no need to have revision
> statements for revisions prior to publication - just update the
> single revision.
>
> 4. Reference to [BaseInventory] draft should be normative rather
> than informative.
>
> 5. Need <CODE BEGINS> / <CODE ENDS> for ietf-network-entitlements.yang
> source code.
>
> 6. The "Security Considerations" doesn't follow the template in
> RFC 9907. Also, the data paths of the sensitive leaves need
> to be listed.
>
> 7. Drop the "-t" on "entitlement-state-t". While this is sometimes
> done in C, it shouldn't be done in YANG for typedefs.
>
>
> YANG Module Problems and Suggestions:
>
> 1. The installed-entitlements/entitlement/entitlement-id references a
>
> type leafref {
> path "/inv:network-inventory/ei:entitlements"
> + "/ei:entitlement/ei:entitlement-id";
> }
>
> Since require-instance is true, an entitlement can't be returned
> unless the corresponding network-element exists. Consider
> "require-instance false;".
>
>
> 2. Same probllem entitlement-attachment/assets/{elements,components}
> since the assets can't be returned unless both the network-element
> and the compoent exists. Consider "require-instance false;".
>
> type leafref {
> path "/inv:network-inventory"
> + "/inv:network-elements"
> + "/inv:network-element"
> + "[inv:ne-id=current()/../network-element]"
> + "/inv:components/"
> + "inv:component/inv:component-id";
> }
>
> 3. Should "max-value" and "current-value" be uint64 rather than uint32
> for extendibility to restrictions with units that can exceed 4.2G?
>
> 4. Section 5.2 says:
>
> Network elements SHOULD generate notifications when installed
> entitlements are approaching expiration. The notification timing and
>
> However, the YANG module doesn't include definitiions for notifications.
>
> 5. Rename "parent-entitlement-uid" to "parent-entitlement-id" consistent
> with the referenced leaf. Fix in json example as well.
>
> 6. The identity hierarchy of "basic-capability-class" and
> "basic-capability-description" is awkward. Why isn't it
> "basic-capability-list" rather than "basic-capability-description"?
>
> *Basic capability class*: The module defines basic-capability-
> description as a simple capability class using only identifiers
> and descriptions. This supports implementations that present
> capabilities as straightforward lists.
>
> 7. For the holder leaf lists, organization-names/organizations and
> user-names/users, do we really need an enclosing containter? I'm not
> sure what it buys you. If needed, maybe organizations/organization
> and users/user for the leaf lists.
>
> 8. If "universal-access" is true for entitlement attachments, does this
> mean that holders and assets cannot be specified? What are the intended
> semantics?
>
> Other Issues:
>
> 1. Section 3.5 says "This point requires further exploration in future
> instances of this document."
>
> 2. Section 2 includes:
>
> * ToBeUpdated(TBU) Open Issue for the IVY WG, to include:
>
> <<Update Glossary under Network Inventory draft, [BaseInventory]. We
> need at least formal definitions of "capability" and "entitlement".>>
>
> However, it seems these are already convered in the document.
>
> 3. In Section 3.6.4:
>
> When a capability lists multiple supporting entitlements, the
> entitlement-state/allowed field MUST reflect the combined effect of
> all required entitlements. If any required entitlement is missing,
> expired, or revoked, the allowed leaf should be false.
>
> Since there is "MUST reflect", shouldn't it be "the allowed leaf SHOULD
> be false."? Uppercase "SHOULD"?
>
> 4. The tree disagrams in sections 3.2, 3.3, and 3.5 are snipped without
> including the augment line from the full tree. It would be clearer to
> include the augment line.
>
> Editorial suggestions:
>
> 183c183
> < Network elements provide capabilities‚ i.e., functions related to
> ---
> > Network elements provide capabilities, i.e., functions related to
> 288c288
> < rights to use that capability—even if access to the device itself is
> ---
> > rights to use that capability, even if access to the device itself is
> 589c589
> < entitlement—whether active or not.
> ---
> > entitlement, whether active or not.
> 961c961
> < when necessary—specifically when each component has its own set of
> ---
> > when necessary, specifically when each component has its own set of
> 1052c1052
> < Other licenses should be openly constrained to a geographic location.
> ---
> > Other licenses should be specifically constrained to a geographic location.
> 1069c1069
> < Some entitlements are inherently associated with a holder, such as
> ---
> > Some entitlements are inherently associated with a holder, such as an
> 1074c1074
> < holders, such as people under a jurisdiction or a geographical area.
> ---
> > holders, such as people under a jurisdiction or in a geographical area.
> 1195c1195
> < expired, or revoked, allowed should be false. The in-use field
> ---
> > expired, or revoked, the allowed leaf should be false. The in-use leaf
> 1260c1260
> < Copyright (c) 2025 IETF Trust and the persons identified as
> ---
> > Copyright (c) 2026 IETF Trust and the persons identified as
> 1423c1423
> < capabilities list exist and the information system
> ---
> > capabilities list entry exists and the information system
> 1521c1521
> < current allowed state. this container
> ---
> > current allowed state. This container
> 1523c1523
> < An empty list of supporting-entitlement means
> ---
> > An empty list of supporting-entitlements means
> 1662,1664c1662,1664
> < "Stock Keeping Unit - vendor's catalog/ordering number
> < for this entitlement. Used for procurement and asset
> < management integration.";
> ---
> > "Stock Keeping Unit (SKU) - vendor's catalog/ordering
> > number for this entitlement. Used for procurement and
> > asset management integration.";
> 1756c1756
> < statements due to XPath 1.0 limitations, management
> ---
> > statements due to XPath 1.1 limitations, management
> 2429c2429
> < "description": "Maximum OSPF neighbor adjacencies, just to give an example :)",
> ---
> > "description": "Maximum OSPF neighbor adjacencies",
> 4443c4443
> < handling is implementation-specific but SHOULD provide sufficient
> ---
> > handling are implementation-specific but SHOULD provide sufficient
>
> Thanks,
> Acee
>
>
> _______________________________________________
> Ivy mailing list -- ivy@ietf.org
> To unsubscribe send an email to ivy-leave@ietf.org