Re: [Netmod-ver-dt] Version selection

"Rob Wilton (rwilton)" <rwilton@cisco.com> Wed, 23 October 2019 13:13 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 3AA2D1208E2 for <netmod-ver-dt@ietfa.amsl.com>; Wed, 23 Oct 2019 06:13:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.499
X-Spam-Level:
X-Spam-Status: No, score=-14.499 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, URIBL_BLOCKED=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=KKr7DxoL; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=qY52kGl1
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 reNuWIwGp9Bw for <netmod-ver-dt@ietfa.amsl.com>; Wed, 23 Oct 2019 06:13:33 -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 CD75F1208D8 for <netmod-ver-dt@ietf.org>; Wed, 23 Oct 2019 06:13:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=33754; q=dns/txt; s=iport; t=1571836412; x=1573046012; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=ybwJmkKH5L1NPne5UwqePAb9npTEYXKOFPJelYuECqo=; b=KKr7DxoLrH+mTf4oQ3sT+CjJz9keZuvFuXR3OTbdKJrTHcQdH1jXRqCJ 29paJpkx5k/+/PjyWyvZMaTDA9/vtEnpvPb+vvtprDuwtxlJFZWB7/hcj ycOkvXGBiSgIT/QR6TVCNR5PNGWQqBiM0HN5V57Smq8QrjTVpO9VQxTM0 4=;
IronPort-PHdr: 9a23:gabTph1FMKI2fkhTsmDT+zVfbzU7u7jyIg8e44YmjLQLaKm44pD+JxKHt+51ggrPWoPWo7JfhuzavrqoeFRI4I3J8RVgOIdJSwdDjMwXmwI6B8vQE1L6KOLtaQQxHd9JUxlu+HToeUU=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AWAACCUbBd/5JdJa1lGgEBAQEBAQEBAQMBAQEBEQEBAQICAQEBAYFnBQEBAQELAYEbL1AFbFcgBAsqCoQdg0cDhFiGAE6CEJgDgS6BJANUCQEBAQwBAS0CAQGEQAIXgx0kNAkOAgMJAQEEAQEBAgEFBG2FNwyFUAEBAQEDEhEKEwEBKQ8PAgEIEQQBASEHAwICAjAUCQgCBAESCBqDAYF5TQMuAQKmeQKBOIhhdYEygn4BAQWFCxiCFwmBNgGMDhiBQD+BEUaBTn4+hC8YNIJaMoIsjUSCNIU6JIkOjn4KgiSVQYI7h1OELYZfhDSONoE/lCuDXQIEAgQFAg4BAQWBUjmBWHAVO4JsUBAUgwaDc4pTdIEpjXMBgSkBAQ
X-IronPort-AV: E=Sophos;i="5.68,221,1569283200"; d="scan'208,217";a="650156971"
Received: from rcdn-core-10.cisco.com ([173.37.93.146]) by rcdn-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 23 Oct 2019 13:13:31 +0000
Received: from XCH-ALN-020.cisco.com (xch-aln-020.cisco.com [173.36.7.30]) by rcdn-core-10.cisco.com (8.15.2/8.15.2) with ESMTPS id x9NDDVAV011407 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <netmod-ver-dt@ietf.org>; Wed, 23 Oct 2019 13:13:31 GMT
Received: from xhs-rtp-003.cisco.com (64.101.210.230) by XCH-ALN-020.cisco.com (173.36.7.30) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 23 Oct 2019 08:13:30 -0500
Received: from xhs-rtp-002.cisco.com (64.101.210.229) by xhs-rtp-003.cisco.com (64.101.210.230) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 23 Oct 2019 09:13:29 -0400
Received: from NAM04-CO1-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-002.cisco.com (64.101.210.229) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 23 Oct 2019 09:13:29 -0400
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=caFJ+boszlurpI3wb2mf/4fD+oCh2F1t2m+ZVhsb0D1182k9dSGYBZQjztyp9P+1B7JAugsmjvYk97IWTVVfDH3n5EOVKbaXhReGc+56UNvYNtf5LWf/TJuf/OlgO6YAi71A3e3Su15E9iB8jNoGodCacITB+PQkS0xmzG9dfcnRcaLOxLh6Vt4HD3o5Kkc36mTVnl43h3uBjfG4RYPU01Z6FO156kah42BOww1grz/GV2WcJ27dq7zT7BU3h/6mEyuOwGd3DtsvG0XxmQX8sFoE8Bs9WwmVDVO8TVyb8eKxSHeb5XlUl3G4QuThhvIhcYtgIbK81YoTM1lmFMaZFg==
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=ybwJmkKH5L1NPne5UwqePAb9npTEYXKOFPJelYuECqo=; b=aWgvV4G9VOjizlni2EoJkExibAycJ0KqI0vD9bBFnFAHyRRL6GcyD3jswJCPSb7QkYHQsWnKYzk5HMqgq0T5ElthAFmWwfUo9hrrn9ZBbdhzFcUL6T2459kRXsu3hyYx1giiMeA56n6xFcTY1Li2b1anZCDP7Ap+752d+ZMEu3hEKEXzE2wYi98UiVYK4ix0EgUmv3pQ8zhheMp18n9rpjp5AySQhUeZm3tOnlSH4+J8jCoEiRq6pMp4hi2Gzbz/WbAd3IJspbOR7eylm45B6XkvoN1TTSZGhrNek4AwlH4niSsElmvZKKqrT2k7h9Ij0PbTF1LXaqGrVxfH683DGA==
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=ybwJmkKH5L1NPne5UwqePAb9npTEYXKOFPJelYuECqo=; b=qY52kGl1VBv4Wre1saqKlaiKqSjDkuk2TO+wcDxU4R+abXOmtMwKrPKcwyNzpOH2Hcl7CwbDer4OSgHm3stQGybAkQpoTLo5bHT3pcLLjzorrC+kfGDvT/sprRvRcNr+mEQDJqLhjG0df2BFbHRQGwvHZyWJp/g55WLYZprL2yU=
Received: from MN2PR11MB4366.namprd11.prod.outlook.com (52.135.38.209) by MN2PR11MB3839.namprd11.prod.outlook.com (20.178.254.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2367.24; Wed, 23 Oct 2019 13:13:27 +0000
Received: from MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::cca:41bd:b0bb:c549]) by MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::cca:41bd:b0bb:c549%2]) with mapi id 15.20.2347.030; Wed, 23 Oct 2019 13:13:27 +0000
From: "Rob Wilton (rwilton)" <rwilton@cisco.com>
To: "Reshad Rahman (rrahman)" <rrahman@cisco.com>, "netmod-ver-dt@ietf.org" <netmod-ver-dt@ietf.org>
Thread-Topic: Version selection
Thread-Index: AQHViQkOvI26xPMrfUK7KEA4CIpe+adoAhqg
Date: Wed, 23 Oct 2019 13:13:27 +0000
Message-ID: <MN2PR11MB4366AFA861CD8EC4D8525747B56B0@MN2PR11MB4366.namprd11.prod.outlook.com>
References: <E1941124-CBFE-4522-9DB2-37F8C92D44FF@cisco.com>
In-Reply-To: <E1941124-CBFE-4522-9DB2-37F8C92D44FF@cisco.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: d4494452-dd5d-41e2-a77e-08d757bacae7
x-ms-traffictypediagnostic: MN2PR11MB3839:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <MN2PR11MB3839ED5432B3003EB2AFC9F0B56B0@MN2PR11MB3839.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 019919A9E4
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(346002)(366004)(39860400002)(396003)(136003)(199004)(189003)(53754006)(51444003)(486006)(81156014)(25786009)(86362001)(81166006)(236005)(8936002)(8676002)(256004)(446003)(14444005)(476003)(3846002)(71190400001)(52536014)(790700001)(6116002)(66556008)(66446008)(66476007)(64756008)(2906002)(71200400001)(6306002)(11346002)(66946007)(55016002)(33656002)(5660300002)(54896002)(9686003)(76116006)(186003)(7116003)(99286004)(6436002)(110136005)(6246003)(478600001)(7736002)(221733001)(316002)(66066001)(53546011)(74316002)(26005)(6506007)(14454004)(76176011)(7696005)(102836004)(3480700005)(2501003)(229853002); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB3839; 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: BCL:0;
x-microsoft-antispam-message-info: Tv+KrjhomXrWHoZz8Qslh6ECqvwz+2F6aj0xrNz1A1BjOI2NxwXRSsBjdj+Sk8WNVVfprLUCoiQAg7pMeXWSaH7YTErz4TSwP//LaAhnj36EjkIn8r7FeoEaiWrlM6P+CgVFunXgS0y1CGCnQcGZy25BEpGD/jEkzAtC0r4+QR3+1TMPJZ2Qfb1pgUksEvgR6SCXWdhPtYVtVq5hnoAAn56j0Pe5jFY2oBYKyogDpuHUz2O4SpdcmlJGDx31rlEfmankJHRJXHbRlCaufMnXgP7rhnmU2MCebhR2n4vZRax3YAeJnfmx5OBxZpnDhewicIgKcerjzge8X0SD36C93PqH5xTO7LY4qUXZxUdfqc81S8PDwiYlCk8UlHOjbDuawOLmKO61MMhfVOMCAHM2zSgA5KapeQ8oiaa9OiHIGq5ZC+feGtEjT82V+PM+2OeN
Content-Type: multipart/alternative; boundary="_000_MN2PR11MB4366AFA861CD8EC4D8525747B56B0MN2PR11MB4366namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: d4494452-dd5d-41e2-a77e-08d757bacae7
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Oct 2019 13:13:27.4618 (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: mUP250HHdC3n/jGYLuSh+D0YPqGVsUmUPDnR/W8XOeAzHBxZ+jE5WhvxqQxxp6F0CttGQhmLZxEx4tgD9z64Yg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3839
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.30, xch-aln-020.cisco.com
X-Outbound-Node: rcdn-core-10.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod-ver-dt/5ibHuG-a4mLHmqga5IiBWqIT3bw>
Subject: Re: [Netmod-ver-dt] Version selection
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, 23 Oct 2019 13:13:35 -0000

Hi Reshad, all,

Personally, I think that the number one requirement here is allow a device to be configured such that the entire device uses a particular schema family at a particular version.  Ideally, I would like the selection of this schema be written into configuration, and to be able to boot from this configuration (which may mean that I want the schema selection YANG module to be able to exist in all schema families).

Regarding schema-sets, the issue that this was trying to solve is that a device may use slightly different schema for different datastores (e.g., perhaps most plausibly, the schema for <operational> may have deviations that don’t apply to the conventional configuration datastores), but the server may require clients to always use consistent schema for the configuration vs operational datastores.

However, RFC 8342 has this text:

   The datastore schema for <operational> MUST be a superset of the
   combined datastore schema used in all configuration datastores,
   except that configuration data nodes supported in a configuration
   datastore MAY be omitted from <operational> if a server is not able
   to accurately report them.

I think that this effectively means that a device must have a single logical schema that is superset of all datastore schema.  Datastore schema are effectively allowed to choose subsets of that schema.

Given this, it is plausible that we don’t need schema-sets (or at least they can be renamed/repurposed), and instead we can rely on a device defining a package definition for the “superset schema”, which will implicitly select the appropriate package to be used for each datastore schema.  E.g. perhaps the package for the superset schema is example-ietf-routing-pkg@2.1.0<mailto:example-ietf-routing-pkg@2.1.0> and then the conventional configuration datastores use the package “example-ietf-routing-cfg-pkg@2.1.0” , and the operational state datastore uses “example-ietf-routing-state-pkg@2.1.0”.  Only the superset packages are advertised in the capabilities.  For devices that are fully compliant with NMDA, then it is plausible that they will use exactly the same schema (and hence package) for all configuration datastores and operational.

I think that this will cover the mainline case, where a client only wants to use one schema for all connections, and they just want to be able to choose the family and version of the schema that they are using to control the device.

The second use case, is where a vendor may want to allow different clients to interact with different schema families, or different schema versions at the same time (e.g. on separate connections).  I see that for this mechanism the RPC is probably the best way to go for NETCONF, and the path is the best way to go for RESTCONF.

Based on the text about, my suggestions are:

  1.  Define “datastore superset schema” as the schema that is a superset of all datastore schema (yes, we may need better names here).
  2.  Define “datastore superset package” as the associated YANG package that defines the “datastore superset schema”.
  3.  Perhaps rename schema-sets (or at least the per datastore parts of them) (see below)
  4.  Update the ietf-schema-version-selection YANG model:
     *   Perhaps rename “schema-sets” to “schema-superset”:
        *   Change to be read-only
        *   Do we need to advertise the restconf root path, or can then just be done via using “<package-name>@<version>” in the path?
        *   Probably change the list to be keyed by (package name, package version)
           *   The package here is both the superset package and also the default package/version used for each datastore unless a more explicit entry is listed in the datastore list.
     *   Keep the configurable “default-schema-set” leaf, but perhaps rename it.

Thoughts?  You may want to discuss some of this first before jumping into making changes?

Thanks,
Rob


From: Netmod-ver-dt <netmod-ver-dt-bounces@ietf.org> On Behalf Of Reshad Rahman (rrahman)
Sent: 22 October 2019 19:47
To: netmod-ver-dt@ietf.org
Subject: [Netmod-ver-dt] Version selection

Hi all,

Here’s take 1 of the client version selection draft update, I still need to add text, review text etc based on what we agree on. Here are some questions and open items, we need to close on some of those before I send next revision. I’ll track issues in github subsequently.

  1.  Use of schema-sets? In the previous version we had config for both NETCONF/RESTCONF using schema-set via port and root-path. We’re now using capability and new RPC/operation for NETCONF, and these work on YANG packages which are in YL (packages draft). I’m proposing that we remove schema-sets for now (for simplification), and have the version selection draft use “top level packages”.
  2.  If we keep schema-sets,  the YANG model has been updated to have a schema-set consist of a list of YANG packages. The question then is whether we want schema-sets to be configurable by the user or not.
  3.  NETCONF experts please take a look at the NETCONF update.
  4.  I’ve used @ as the separator for YANG package and version, e.g. example-ietf-routing@1.3.1<mailto:example-ietf-routing@1.3.1>, this is because @  cannot be in the revision-label and looks like it can’t be in the package-name either (pkg-identifier is of type yang:yang-identifier)
  5.  Joe had raised the issue of default package version if none is selected. Any suggestions on how to advertise the default version(s) in capabilities, what about @D after the revision-label e.g. “example-ietf-routing@1.3.1<mailto:example-ietf-routing@1.3.1>@D”? Rob, I don’t think your YL extensions has default for YANG package versions right now?

Regards,
Reshad,