[core] draft-ietf-core-sid-02 Issues
Andy Bierman <andy@yumaworks.com> Mon, 13 November 2017 21:41 UTC
Return-Path: <andy@yumaworks.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BA4D5126D0C for <core@ietfa.amsl.com>; Mon, 13 Nov 2017 13:41:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Huu0_CCWxjqr for <core@ietfa.amsl.com>; Mon, 13 Nov 2017 13:41:28 -0800 (PST)
Received: from mail-lf0-x236.google.com (mail-lf0-x236.google.com [IPv6:2a00:1450:4010:c07::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C5338126D45 for <core@ietf.org>; Mon, 13 Nov 2017 13:41:27 -0800 (PST)
Received: by mail-lf0-x236.google.com with SMTP id m1so4016798lfj.9 for <core@ietf.org>; Mon, 13 Nov 2017 13:41:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=GfzX17sNz+S6mg/lpFwduFr03XAl2YI4vHM7eTcT/CY=; b=xBOV4DGPX1zVaTIIVokE378cDSz7SX7hFQHlX1AcOJQnmDEWjVk3i95RXo3fxwJbZk lY701Xt0gkRgHDJBF3kL7j/2CIjiFWjVhNT7Xl90DxWMI5HCY7OcNf+B1DM//K5QpLQZ GPf+gnJydd+bG0nhwESCmyjZ0O3trPrf5vvpy2xD2yJVuwPbQpEa64O85vf10wvfAuLj 6noO1qxUOEgdtO02ku25LfGDgi+2nx27xI7bHL0l/1sxT17sNuVN4DY9C8LR9QRUOokU R9cpXm4M4ighqnhHy7REjzciOnIID0vHI6BR+YHikCtj/uBRobWL/AdzMxxDOsPL8tCV Bj8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=GfzX17sNz+S6mg/lpFwduFr03XAl2YI4vHM7eTcT/CY=; b=dMH5LU1IBk5KGXUF0Sh1tzU9Ax9JIuKXlRJGxnmEAby0yadYQoCftUIW6JlAgWsO6Z 3P74kbyYveIaG3DM67AgxlhmPxyNNEwDK2Ox5Pphu/f7CebU141TrIWESwMXojemoFFv VVPmwjIw3hitcM1PfGjFz9NU4aft2vmm5nM3BOvSpgDh/qunrf1exKGUg6PHdveb5tbE Ra1Ua01Xn2lNt9KSp2Hyd8Lx58d20a0x6YZcqRYtzyBVK50LTeHQ61OjsaZmFikdj1mc qV6J3p5S0tNyh6nfglvEIWhgdXCy3fS21/RoHwlVQldZlFPw1lvYn0Yr0uk59Pls9D3P 4tIw==
X-Gm-Message-State: AJaThX41lgK7CVyaqpVvQCGJm4IKXcxjKxVoBs5u99fX4ZPZ4sy1uggT v1kUFsJ7Q3z8cj88Xxbmj/nl3zXpUkuQafMTf2zUseDX
X-Google-Smtp-Source: AGs4zMbeuqjNJinU1sKoYXDZKIfknvZy7gBsIr1R4iaEY3d/cb27QubJXbTnF+0iRq0HPJqTJSyIgm/HEVMqaGr6oEw=
X-Received: by 10.46.31.10 with SMTP id f10mr3658722ljf.153.1510609285625; Mon, 13 Nov 2017 13:41:25 -0800 (PST)
MIME-Version: 1.0
Received: by 10.25.33.81 with HTTP; Mon, 13 Nov 2017 13:41:24 -0800 (PST)
From: Andy Bierman <andy@yumaworks.com>
Date: Mon, 13 Nov 2017 13:41:24 -0800
Message-ID: <CABCOCHT9D-4ko4Du_HEv62Etf2aPTbSqBJb1rOOEoMzpXVRXxA@mail.gmail.com>
To: Core <core@ietf.org>
Content-Type: multipart/alternative; boundary="f4030439c680dd5074055de421e1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/Y0XRhZ0VIbH2gr0QwgIqrtu2pPQ>
Subject: [core] draft-ietf-core-sid-02 Issues
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Nov 2017 21:41:31 -0000
Hi, Here are some comments on SID draft: - The SID design does not support augment correctly. It is not mentioned at all in the draft. The "label" leaf design does not allow for YANG identifier names from other modules. There is also no need to overload the label field with extra semantics about the data type. This actually breaks the SID mapping since "label" is part of the key. (It needs a simple and canonical representation.) Example of SID broken for augment: module A { ... container top { leaf leaf1 { type string; } } } module B { import A { prefix A; } ... augment /A:top { leaf leaf1 { type int32; } } container top; } - the module revision date is always 2015-12-16. The revision date is supposed to match the I-D revision date so YANG compilers can tell the different versions apart - typedef yang-identifier do not clone this type. Use the real yang-identifier in ietf-yang-types (RFC 6991( - The 'mandatory true' statements are redundant for key leafs and should be removed (for key leafs only) - leaf 'type' needs to be an enumeration, not a string with patterns to do the same thing as an enumeration. This field needs to be a simple identifier, not a union of complex patterns. This type is not defined correctly. It needs to identify the YANG identifier namespace type, as defined in RFC 7950, sec. 6.2.1 Modules and submodules are in the same namespace. They are not separate things as defined in the SID draft. The following "yang-ns-id" typedef definition shows the full namespace, and "sid-ns-id" shows the subset relevant to CoMI. The leafs "type" and "label" fix the problems with the current design and allow the "label" field to support augment-stmt. The only allowed form is also the canonical form, allowing the { type, label } tuples to be easily and correctly compared. typedef yang-ns-id { type enumeration { enum module { description "All module and submodule names share the same global module identifier namespace."; } enum extension { description "All extension names defined in a module and its submodules share the same extension identifier namespace."; } enum feature { description "All feature names defined in a module and its submodules share the same feature identifier namespace."; } enum identity { description "All identity names defined in a module and its submodules share the same identity identifier namespace."; } enum type { description "The namespace for all derived type names, as defined in YANG."; } enum grouping { description "The namespace for all grouping names, as defined in YANG."; } enum data { description "The namespace for all data nodes, as defined in YANG."; } enum case { description "All cases within a choice share the same case identifier namespace. This namespace is scoped to the parent choice node."; } } description "A YANG namespace identifier specifies the identifier namespace within a YANG module and its submodules. An identifier is only required to be unique within a specific namespace."; reference "RFC 7950, The YANG 1.1 Data Modeling Language; Section 6.2.1: Identifiers and Their Namespaces."; } typedef sid-ns-id { type yang-ns-id { enum module { description "All module and submodule names share the same global module identifier namespace."; } enum feature { description "All feature names defined in a module and its submodules share the same feature identifier namespace."; } enum identity { description "All identity names defined in a module and its submodules share the same identity identifier namespace."; } enum data { description "The namespace for all data nodes, as defined in YANG."; } } description "A SID namespace identifier specifies the identifier namespace within a YANG module and its submodules, as used within the a SID registry mapping."; } typedef sid-path { type string; description "Identifies a schema-node path string for use in the SID registry. This string format follows the rules for an instance-identifier, as defined in RFC 7959, except that no predicates are allowed. This format is intended to support the YANG 1.1 ABNF for a schema node identifier, except module names are used instead of prefixes, as specified in RFC 7951."; reference "RFC 7950, The YANG 1.1 Data Modeling Language; Section 6.5: Schema Node Identifier; RFC 7951, JSON Encoding of YANG Data; Section 6.11: The instance-identifier type"; } leaf type { type sid-ns-id; description "The SID namespace Identifier type for this entry"; } leaf label { type union { type sid-path; type yang:yang-identifier; } description "The label identifying this mapping entry. If the corresponding 'type' field is 'module', 'feature', or 'identity', then this field MUST contain a valid yang-identifier string. If the corresponding 'type' field is 'data', then this field MUST contain a valid sid-path string."; } Example for module A and B: module A: module, "A", 1700 data, "/A:top", 1701 data, "/A:top/leaf1", 1702 module B: module, "B", 2700 data, "/A:top/B:leaf1", 2701 data, "/B:top", 2702 Andy
- [core] draft-ietf-core-sid-02 Issues Andy Bierman
- Re: [core] draft-ietf-core-sid-02 Issues Michel Veillette
- Re: [core] draft-ietf-core-sid-02 Issues Andy Bierman