[Netmod-ver-dt] Proposed updated to Schema-selection draft

"Rob Wilton (rwilton)" <rwilton@cisco.com> Thu, 23 January 2020 12:14 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 81709120074 for <netmod-ver-dt@ietfa.amsl.com>; Thu, 23 Jan 2020 04:14:56 -0800 (PST)
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=PAG0NA+e; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=Z2TKSGu7
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 lheRKHnAk9Si for <netmod-ver-dt@ietfa.amsl.com>; Thu, 23 Jan 2020 04:14:54 -0800 (PST)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0E07F120071 for <netmod-ver-dt@ietf.org>; Thu, 23 Jan 2020 04:14:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=12902; q=dns/txt; s=iport; t=1579781694; x=1580991294; h=from:to:subject:date:message-id:mime-version; bh=P0X3JPwI7Fo9paPjLpw5lwKF6vAWqbwQPziyNXj74HM=; b=PAG0NA+eqoPWtivRErbodg5X4k2miFYXrwpGB1H3foGYvuYRNz8BuQTW jACIaZimUlEpsl3iWGQwnE6uyAJ/KhKh5iqkuV4UTcYjNp4ltJq437Ejl KxZoEsH/ORdeVjXmE6bi5kJaSpB3QMqe/h05FkmVWM4Nb8O1RzBysihG3 U=;
IronPort-PHdr: 9a23:aF5PChzqqXRvPmTXCy+N+z0EezQntrPoPwUc9psgjfdUf7+++4j5YhSN/u1j2VnOW4iTq+lJjebbqejBYSQB+t7A1RJKa5lQT1kAgMQSkRYnBZufFkz/MPnsRyc7B89FElRi+iLzPA==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DwFADRjSle/4oNJK1lgkGBJS9QBWxYIAQLKgqHTgOLC06VPoRiglIDVAkBAQEMAQEtAgEBhEACgh4kNwYOAgMNAQEEAQEBAgEFBG2FNwELhXcbEwEBOBEBgQAmAQQbEweDBYF9TQMuAQKhewKBOYhhgieCfwEBBYUKGIIMCYE4jBcagUE/gViBTkmFJhiDQIIsjg+IJCSZAQqCOQSWS4JHjE6LYo5egUqVSIN2AgQCBAUCDgEBBYFoI4FYcBU7gmxQGA2LdIpTdIEpi0MBgQ8BAQ
X-IronPort-AV: E=Sophos;i="5.70,353,1574121600"; d="scan'208,217";a="422171530"
Received: from alln-core-5.cisco.com ([173.36.13.138]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 23 Jan 2020 12:14:53 +0000
Received: from XCH-RCD-010.cisco.com (xch-rcd-010.cisco.com [173.37.102.20]) by alln-core-5.cisco.com (8.15.2/8.15.2) with ESMTPS id 00NCEqRV006698 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <netmod-ver-dt@ietf.org>; Thu, 23 Jan 2020 12:14:53 GMT
Received: from xhs-rtp-002.cisco.com (64.101.210.229) by XCH-RCD-010.cisco.com (173.37.102.20) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 23 Jan 2020 06:14:52 -0600
Received: from xhs-aln-003.cisco.com (173.37.135.120) by xhs-rtp-002.cisco.com (64.101.210.229) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 23 Jan 2020 07:14:51 -0500
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (173.37.151.57) by xhs-aln-003.cisco.com (173.37.135.120) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Thu, 23 Jan 2020 06:14:50 -0600
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R/ordxl0LYY3O2fPM5Hi/kwF+uohcSJALvtHNvhO3mELRhqmjeqxizTT4GpIb1mlaOAQ/bsRDqQvYSk6ZJY6eWnCRWffavlBIsw9c+1KlasH7U/zhD4l50wVPslUJpfsJqlRA29MAq0rzkZRwnYy6UzUqrfxwbgAs7SH8rfwrJOWwpw7xkW0IoaLGB09E/mJ12vgl4u8MDGEepBy8mNYAC1F3SIpMhRweMcLot6P9DmLGHKURes8ixknxFI/yJKWqbbsCwXZFeKMPI5iywYpQhlKMET7+hgA2lg40LLOBzaEOig6kcTgwf7yQWudpzPSH/vTLceJ8Quyv0vT7OQnqg==
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=X2MdPCrkFd5D/Sa4turzvVuQvDNXSVQKFL7ZuBA9mdY=; b=hpuZdWBeGI3vNS/VLovT9Fm5EU6hokk5FrqKvp1WVy+7tMwNl/9M+6++NrAEVGOfhMzTvlqZG1tieY/hj5kiwnNNVOCYjU2npvjkNaGyc5p+BIfgD6wU+zJASsnoA/4E5//k01ubu/ewUHHVj5LlW+P91OPCpSuZ6x44CEnLjfZl7GmOBklU16ZstvfyUJ3y9OzKFJPp9sgnIhB7qpV7S/wC0nXBqfYCHTP1U0oPGYsEVX84miPLsI03h3sPY5q7AzHlszjWW5u59au2jpuaLUeLbGCWX9NwIYyfy5xj07ap7J0gEj/H2iowxtwDHePVLaVH0S9P3UwTYztHKTzVYw==
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=X2MdPCrkFd5D/Sa4turzvVuQvDNXSVQKFL7ZuBA9mdY=; b=Z2TKSGu7zdqY2+OMCdBe7L/2ckjcS6E/USQcNxIMIjxn2TsLaI0um94b+K7wN1hSBK7yycDvbXKbPq/9RoCjJRoY/LJSodGf3Bg/A6LuxmOBDEkoT1Zp8GrmjdV85mnQhGdVaX5N1Ht/YjPRDybp0LSgSC9y8WvZBa44tneVxs4=
Received: from MN2PR11MB4366.namprd11.prod.outlook.com (52.135.38.209) by MN2PR11MB4240.namprd11.prod.outlook.com (52.135.36.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.20; Thu, 23 Jan 2020 12:14:48 +0000
Received: from MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::b9ce:1058:5fa6:44a1]) by MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::b9ce:1058:5fa6:44a1%7]) with mapi id 15.20.2644.027; Thu, 23 Jan 2020 12:14:48 +0000
From: "Rob Wilton (rwilton)" <rwilton@cisco.com>
To: "netmod-ver-dt@ietf.org" <netmod-ver-dt@ietf.org>
Thread-Topic: Proposed updated to Schema-selection draft
Thread-Index: AdXR5mTnk1yqwxLjSMGdvHQe/EbrHw==
Date: Thu, 23 Jan 2020 12:14:48 +0000
Message-ID: <MN2PR11MB4366E80A15F643A666232CCAB50F0@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.33]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 8bffea70-edfd-4ade-4df9-08d79ffdd79b
x-ms-traffictypediagnostic: MN2PR11MB4240:
x-microsoft-antispam-prvs: <MN2PR11MB4240CFD097670500F11C3B0EB50F0@MN2PR11MB4240.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 029174C036
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(396003)(39860400002)(376002)(346002)(136003)(189003)(199004)(71200400001)(7696005)(26005)(186003)(33656002)(6916009)(81156014)(81166006)(6506007)(52536014)(5660300002)(8676002)(478600001)(316002)(8936002)(66946007)(15650500001)(2906002)(9686003)(55016002)(66556008)(66476007)(86362001)(76116006)(66446008)(64756008); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB4240; H:MN2PR11MB4366.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: M2rM3nlA8+6msyysT/sL2pexEyOXeLzvr0HrVxtWuweOOl8+ta3FhGlcm/rXmK+xZ7wVVR8bInVijzaJIs8zTE+V6MMdpXeOzA1GkjfhBDB/ChZyHnoxYlBDNZTMZIvqDyDfNxlF9jWR0NiNny0K7fKukz8sL/o999XkJRFUPOvCofTKkvTs4hMqUkHsdycdIeHw+yGDt4tyHVQHQ12EBMEzTqB0C1yecjEZ2eTNxer6C0tJYNNoAjYzBMVK9Wxk4lgWJmmPUAOMQglZ5MqQnd+UjUf7TT+VYBc4DUUpkTG7BQurjyN+No8ePAb/BU4yEdeWg4A8ExOO7zqUtXa3+dNks+2VMJZWHtJ//+/WsPgQYvahX470GJ/xIWqg8sXBADM1nYe2e9gSEi/nraW1NVo0Av0Y3eYfqDrksxEPqn3yUaWhhV/ridCa/VmJN4pU
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_MN2PR11MB4366E80A15F643A666232CCAB50F0MN2PR11MB4366namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 8bffea70-edfd-4ade-4df9-08d79ffdd79b
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2020 12:14:48.5178 (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: dGjbAa1tFsx6UgxCr+cyKcQm3syLftVr3ibW6JsmV7/pBX/ZyqjTvLyzDg3gxu8RHXMJsttVedZlZPYdEOz8cA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4240
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.20, xch-rcd-010.cisco.com
X-Outbound-Node: alln-core-5.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod-ver-dt/RcTkJe6XD_4B31gyLgymnUB-Rlw>
Subject: [Netmod-ver-dt] Proposed updated to Schema-selection draft
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: Thu, 23 Jan 2020 12:14:56 -0000

Sorry, for this being a bit late.

Here are my rough proposed notes on how to update the schema selection draft.  Perhaps we can discuss/refine these today, and hopefully split the work updating the document.

(1) Suggest rename draft to "Model and protocol operations for YANG schema selection"
- The crux of the solution is about selecting schema-sets, which can be version selection, but can cover other stuff as well, e.g. schema families, that are already covered by the draft.

(2) Definitions:
- Should define "schema family", or possibly better in the packages draft?

(3) Update the solution overview:
- Considerable flexibility given to servers on what they can allow clients to select (i.e. primary schema, secondary schema, custom schema)
- Schema-sets are constructed from the union of YANG packages (which must have no conflicting modules/deviations/versions).
   - The schema associated with a particular datastore is the union of the common YANG packages and the per datastore YANG packages.  E.g. a per datatstore YANG package could contain a list of deviations of nodes not supported in that datastore, or it might enable features only in some datastores.
- Schema-sets are advertised as operational data, including whether they can be used as primary or secondary schema, and what compatibility they have with other schema.
- Primary schema: Default schema for the device, schema used to persist configuration, schema chosen if no schema selection is performed.  Primary schema can only be changed for a YANG RPC operation, that can provide an alternative configuration in the new schema.
   - Explain that a configuration in the new schema can be provided, or otherwise the existing configuraiton converted into the new schema (is this best effort, or does it fail if it cannot be converted?)
- Secondary schema: Additional schema that are used in addition to the primary schema.  Secondary schema are selected via capabilities (NETCONF), or path (RESTCONF).  Servers can either automatically support.
  - Possibly the desription of the NETCONF and RESTCONF behaviour should be documented under secondary schema?
- Custom schema:
   - Configured by the client, but once configured also appears in the operational schema-set list alongside server provided schema-sets.
   - Serve two purposes:
     - Allows a client to give schema custom names (i.e. that would be used in secondary schema selection)
     - Allows a client to combine compatible schema together (as a union).  E.g., selecting particular features that need to be supported, or perhaps combining two schema families.

(4) Update NETCONF section (to cover secondary schema selection):
  - Effectively try and make behaviour as close as possible to RESTCONF
  - Server doesn't advertise schema-sets in capabilities (information is available as operational data, but also expected to be known ahead of time).
  - If client wishes to use a secondary schema, then it specifies the schema-sets that it will use.  Connection is closed if the server does not support that schema-set as a primary or secondary schema.

(5) Update RESTCONF section:
  - Primarily only cover secondary schema selection, but client could use schema-set name of the primary-schema which is equivalent to binding to the normal per datastore paths.
  - Uses path based on schema-set name.
  - Add a note tha the schema-set name needs to be encoded (e.g. if it happens to contains the @ symbol).

(6) Update to the new YANG module (obviously)
- Need to decide if the "read-only" flag should be reverse sense (i.e. "writable").

(7) Add and refine the 4 examples that I provided in the appendix.  E.g. for one they are missing XML namespaces, but Bo indicates that it would probably use if the schema family selection example included some actual concrete modules in the different schema families (at least for IETF and OpenConfig)

(8) Add text to an appendix about implementation notes:
- Reiterate that there is considerable freedom on what servers choose to support, i.e. any combination or primary and secondary schemas, and custom schema.
- Talk about filtered schema vs translation (which is requried if the versions are different).

Thanks,
Rob