[Netmod-ver-dt] YANG package module updates

"Rob Wilton (rwilton)" <rwilton@cisco.com> Wed, 11 September 2019 10:44 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: netmod-ver-dt@ietfa.amsl.com
Delivered-To: netmod-ver-dt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 00CAB120052 for <netmod-ver-dt@ietfa.amsl.com>; Wed, 11 Sep 2019 03:44:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.5
X-Spam-Level:
X-Spam-Status: No, score=-14.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=RY0CXfOz; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=maWhPCmy
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 8rA13L1Pad8L for <netmod-ver-dt@ietfa.amsl.com>; Wed, 11 Sep 2019 03:44:42 -0700 (PDT)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7C242120877 for <netmod-ver-dt@ietf.org>; Wed, 11 Sep 2019 03:44:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=27841; q=dns/txt; s=iport; t=1568198682; x=1569408282; h=from:to:subject:date:message-id:mime-version; bh=HkpVJdNAeOTLhfAeXvPCAOb25us1fmndRRivlTFc0wQ=; b=RY0CXfOzBe2GoUrz9voyK7qxaSykZAjOAnSLWFgOIIXf67TM1hLrlvQL kYLgqE670GjIE+fmVoXtwNRIncA2SkN7YFi+Xr3xZy8NwIiKcHCUKXxpu PUTJ5llWEG0g4hDUdyO7KiHEv2JUwclU9l2slN7mZwEP1g1v3y8V8aqmY c=;
IronPort-PHdr: 9a23:9ViHNBVF2dCGtlsXStbEpzQd7J7V8LGuZFwc94YnhrRSc6+q45XlOgnF6O5wiEPSA92J8OpK3uzRta2oGXcN55qMqjgjSNRNTFdE7KdehAk8GIiAAEz/IuTtankgA8VGSFhj13q6KkNSXs35Yg6arw==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0C2AAClznhd/5tdJa1lHAEBAQQBAQcEAQGBVQUBAQsBgRUvUANtViAECyoKh14DinxNmX+BLoEkA1QJAQEBDAEBIwoCAQGEPwKCVCM2Bw4CAwkBAQQBAQECAQYEbYUuAQuFYxUGEwEBOBEBQAE/JgEEGxqDAYEdTQMdAQIMnkQCgTiIYYFyM4J9AQEFhQUYghYDBoE0AYt3GIFAP4FXhWsCgWMrgxCCJpRhJJdGCoIhhwGFDgaIfZkKjX+IBJBqAgQCBAUCDgEBBYFZATAqgS5wFYMngkKDcopTc4EpjVwBgSIBAQ
X-IronPort-AV: E=Sophos;i="5.64,493,1559520000"; d="scan'208,217";a="627564069"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by rcdn-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 11 Sep 2019 10:44:41 +0000
Received: from XCH-ALN-003.cisco.com (xch-aln-003.cisco.com [173.36.7.13]) by rcdn-core-4.cisco.com (8.15.2/8.15.2) with ESMTPS id x8BAifUw006907 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <netmod-ver-dt@ietf.org>; Wed, 11 Sep 2019 10:44:41 GMT
Received: from xhs-rcd-002.cisco.com (173.37.227.247) by XCH-ALN-003.cisco.com (173.36.7.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 11 Sep 2019 05:44:40 -0500
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by xhs-rcd-002.cisco.com (173.37.227.247) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 11 Sep 2019 05:44:40 -0500
Received: from NAM04-SN1-obe.outbound.protection.outlook.com (72.163.14.9) by xhs-rcd-001.cisco.com (173.37.227.246) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 11 Sep 2019 05:44:40 -0500
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fBYiYOohVmm1jlydKzlRFZMSA7r3RUTML5SpWzJ3Oz5QB1WQew9O7WKpwHY4pjQwN4t05yHqRU9adG8D4agx0Mdct4WE6Oa1O9brgZ51JKSX/knXpN4DGop9tQ8ftJrZ1qxjK9QqqWju0NhvlprYAKo39pNvogMhGrSy80i4onelhgkN25XXeTYZ09/jtkcYRLgE61rlm+13pDKCxBYPXSSDw5ZoQIaKZg+4+nQxR8+mUaBgkMF2C9UI8Emw/lJzhtYa8oI3Q+G3Bo8mk2VQms4Byh/rIR/+6WS6/wuvhUySP212h3N9cCRSMEvVeiMrUmkxqD5EhuvpX+wzXNJoAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=952EEom9vZovFG+diJpiGYq360tFo7f+sc3Zug8X1Yc=; b=S5UNrhbKf5zZDmm4qxpB3fzFUTyXefPgXC7PgUyCqHqIrdvR/Z541Qt4a3iEhflPSwNdR+VWz8Fh/prOOLVJp8B7Fv5keZcMBJz2PLeLsM2SD3bl2YEJD1I3H03by5HJtxC67v75ya8c1H7ULscYzAmxU3D+ipsdyEwxeBKTqroB9zhXRhnqbaLp/CRQcr2F3xeZxMEEwl2uaRmNaylYxU8eKVWR9PKMJX/M4fkxdoYxRrXCfM5Yztq34q4XXvVo3sFapDb3+qZtEXcSsH7b5/thIEEMPehtUM4CpXYOFCyjRmm9vUwr2JlRRl3qS2ou9uFZnZb1oODss1RQ+iGccQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=952EEom9vZovFG+diJpiGYq360tFo7f+sc3Zug8X1Yc=; b=maWhPCmydDR7pSM6/HJgKE2TlvASSROtv5J3ofFtwS8RGJ7G/zLhiAe5CNAqI3pXNacgECtzFhBrzyHy4Eho0VRob9OjhDyeKLxfqsXkDqf1IR1ZlFHmdOLTDfdFE8rWUvtx0TRnD7h8hH2qgAiaUdVNgfbz+Co3zhfYvRZqJYo=
Received: from MN2PR11MB4366.namprd11.prod.outlook.com (52.135.38.209) by MN2PR11MB4400.namprd11.prod.outlook.com (52.135.37.204) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.18; Wed, 11 Sep 2019 10:44:39 +0000
Received: from MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::6db3:f4c:467b:30f6]) by MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::6db3:f4c:467b:30f6%7]) with mapi id 15.20.2241.018; Wed, 11 Sep 2019 10:44:39 +0000
From: "Rob Wilton (rwilton)" <rwilton@cisco.com>
To: "netmod-ver-dt@ietf.org" <netmod-ver-dt@ietf.org>
Thread-Topic: YANG package module updates
Thread-Index: AdVojeYM0yJuTXYzT4ehUINLLQi0UQ==
Date: Wed, 11 Sep 2019 10:44:39 +0000
Message-ID: <MN2PR11MB4366AE597AD428804BC53EADB5B10@MN2PR11MB4366.namprd11.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=rwilton@cisco.com;
x-originating-ip: [173.38.220.40]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 75352fdf-891c-439a-efc7-08d736a50bcf
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:MN2PR11MB4400;
x-ms-traffictypediagnostic: MN2PR11MB4400:
x-ms-exchange-purlcount: 3
x-microsoft-antispam-prvs: <MN2PR11MB4400DDA5090E976193C326C2B5B10@MN2PR11MB4400.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0157DEB61B
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(396003)(346002)(366004)(136003)(39860400002)(199004)(189003)(256004)(8936002)(66066001)(6436002)(3480700005)(5660300002)(186003)(86362001)(25786009)(7110500001)(55016002)(74316002)(7736002)(52536014)(99286004)(66446008)(6916009)(5640700003)(6306002)(15650500001)(2420400007)(54896002)(14454004)(236005)(2351001)(33656002)(8676002)(81156014)(81166006)(9686003)(9326002)(2906002)(76116006)(478600001)(790700001)(316002)(606006)(966005)(476003)(486006)(6506007)(102836004)(71200400001)(66946007)(3846002)(6116002)(7696005)(26005)(2501003)(64756008)(66556008)(66476007)(53936002)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB4400; H:MN2PR11MB4366.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: KvjeHNu7rhhheI+B/BRSWlkI3MzA9IbuNc45Ch1rkMbVJAu50b02N2q4ifKYvRnYBO9bTy99wSNXm3OSSAJdygzVO7RsAwrYE3nF6gNDQCimIf9lnpR2Y7BY1IVy4WH1ejvH/EWiRCQkqt3MB/uZSJvVOKWtFG5qGNGYwlqrn5PX8iV0qPfUfkQzMnV6cDX1uLMugHdVNxJG47QcBwpsWti4Qzk4fUvqX4CcHd5+uGcDxEOuMAjToJrMfLT09hjK4O5PnOAFggglUboZ3etE/M6SEaWURcpLui97QywAd+fEClnO5sG31i940TgIBP5L7NRhDPZ0outk3iuNdppprtgA6r9WxqbrtIapYghTKceaxr2qvr6sNqunyBZJyig/SCBJoS+ghiFi8YXobL43rjlwFzk2STzoGVQ6xlnRNhA=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_MN2PR11MB4366AE597AD428804BC53EADB5B10MN2PR11MB4366namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 75352fdf-891c-439a-efc7-08d736a50bcf
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2019 10:44:39.0425 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 6AJuOXBXiqDQ1OrBGKbhwXovrWBxwrSc904dvNedd+ot2nJ3S4OXcEGr8Q4mtZpgpPMP/2a7FozuoNwFZNlbhA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4400
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.13, xch-aln-003.cisco.com
X-Outbound-Node: rcdn-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod-ver-dt/FYV4kpWCBpQWXMvyXtU0Dj3xBvc>
Subject: [Netmod-ver-dt] YANG package module updates
X-BeenThere: netmod-ver-dt@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NetMod WG YANG Model Versioning Design Team <netmod-ver-dt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod-ver-dt>, <mailto:netmod-ver-dt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod-ver-dt/>
List-Post: <mailto:netmod-ver-dt@ietf.org>
List-Help: <mailto:netmod-ver-dt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod-ver-dt>, <mailto:netmod-ver-dt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Sep 2019 10:44:46 -0000

Hi,

I've updated YANG packages YANG modules based on the discussions and further thoughts.


  1.  I've kept separate definitions for the instance data file vs YANG library.
  2.  An instance-data document can now define multiple packages ... although a bit of me is now wondering whether this might be a mistake (particularly from the checksuming aspect).
  3.  I've changed the unique "version" identifier for a package to "rev:revision-label" (which disallows revision-date)
  4.  Modules revisions are now identified just using "rev:revision-date-or-label".  Submodules continue to be identified only by their revision-date.
  5.  I've changed package "revision-date" to "timestamp" and it is uses yang:date-and-time.  (But thinking about this some more, the instance data document already contains a timestamp, so I'm wondering whether we need this field at all).
  6.  I've added "checksum" leaves (defined to use SHA-256, propose defining new checksum-sha512 in future, if required) whenever location appears.  (For a module, it will be SHA-256 over the file containing the module definition, for a package, it will be a SHA-256 over an instance-data document containing just the package definition.  Might need to think a bit more about how this works with a single instance-data document containing multiple packages.
  7.  I've reordered and renamed a few fields
  8.  Imported packages can now indicate package versions that are replaced by the import.  This might still need some further thought as to whether this is the right thing to do, and what the exact semantics should be.

Updates are pushed to https://github.com/rgwilton/YANG-Packages-Draft/

Comments, etc, welcome.

Cheers,
Rob

module: ietf-yang-package
  +--ro packages
     +--ro package* [name version]
        +--ro name                      yang:yang-identifier
        +--ro version                   rev:revision-label
        +--ro timestamp?                yang:date-and-time
        +--ro description?              string
        +--ro reference?                string
        +--ro referentially-complete?   boolean
        +--ro previous-version?         rev:revision-label
        +--ro tag*                      tags:tag
        +--ro mandatory-feature*        string
        +--ro imported-packages* [name version]
        |  +--ro name                yang:yang-identifier
        |  +--ro version             rev:revision-label
        |  +--ro replaces-version*   rev:revision-label
        |  +--ro modified?           boolean
        |  +--ro location*           inet:uri
        |  +--ro checksum?           string
        +--ro module* [name]
        |  +--ro name         yang:yang-identifier
        |  +--ro revision?    rev:revision-date-or-label
        |  +--ro namespace    inet:uri
        |  +--ro location*    inet:uri
        |  +--ro checksum?    string
        |  +--ro submodule* [name]
        |     +--ro name        yang:yang-identifier
        |     +--ro revision    yanglib:revision-identifier
        |     +--ro location*   inet:uri
        |     +--ro checksum?   string
        +--ro import-only-module* [name revision]
           +--ro name                 yang:yang-identifier
           +--ro revision             rev:revision-date-or-label
           +--ro replaces-revision*   rev:revision-date-or-label
           +--ro namespace            inet:uri
           +--ro location*            inet:uri
           +--ro checksum?            string
           +--ro submodule* [name]
              +--ro name        yang:yang-identifier
              +--ro revision    yanglib:revision-identifier
              +--ro location*   inet:uri
              +--ro checksum?   string

module: ietf-yl-packages
  augment /yanglib:yang-library:
    +--ro package* [name version]
       +--ro name                      yang:yang-identifier
       +--ro version                   rev:revision-label
       +--ro timestamp?                yang:date-and-time
       +--ro description?              string
       +--ro reference?                string
       +--ro referentially-complete?   boolean
       +--ro previous-version?         rev:revision-label
       +--ro tag*                      tags:tag
       +--ro mandatory-feature*        string
       +--ro imported-packages* [name version]
       |  +--ro name                yang:yang-identifier
       |  +--ro version             rev:revision-label
       |  +--ro replaces-version*   rev:revision-label
       |  +--ro modified?           boolean
       |  +--ro location*           inet:uri
       |  +--ro checksum?           string
       +--ro module-set*               -> /yanglib:yang-library/module-set/name
       +--ro location*                 inet:uri
       +--ro checksum?                 string
  augment /yanglib:yang-library/yanglib:schema:
    +--ro package
       +--ro name?      -> /yanglib:yang-library/package/name
       +--ro version?   -> /yanglib:yang-library/package[name = current()/../name]/version
  augment /yanglib:yang-library/yanglib:module-set/yanglib:import-only-module:
    +--ro replaces-revision*   rev:revision-date-or-label