Re: [Netmod-ver-dt] Version selection

"Rob Wilton (rwilton)" <rwilton@cisco.com> Thu, 24 October 2019 10:30 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 C6B311200CC for <netmod-ver-dt@ietfa.amsl.com>; Thu, 24 Oct 2019 03:30:23 -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=EiuNCoyj; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=HUpWeLEC
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 lx4is_zYCYiZ for <netmod-ver-dt@ietfa.amsl.com>; Thu, 24 Oct 2019 03:30:21 -0700 (PDT)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 069AA12083B for <netmod-ver-dt@ietf.org>; Thu, 24 Oct 2019 03:30:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=68666; q=dns/txt; s=iport; t=1571913021; x=1573122621; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=GzXbvuLhMFeA+GHptsWqYjdnimBvQj4SRxdnMjwrI64=; b=EiuNCoyjytpGt0lfOL2LBfpcq57swBIIET//73J/fRHP+Qkd7g2eRJI1 1h1rPIEJOviCQASxRJT+qn7INB0R93D8+Jh55wKM6drXRapKdRft+lHaA tAmBcPx/zWKGTORedOmcF8lDnKR1NnURsRn/LsPOoyMZGIrXI6sLaxamF c=;
IronPort-PHdr: 9a23:a+fgCBB4XVWw5+MTwpsbUyQJPHJ1sqjoPgMT9pssgq5PdaLm5Zn5IUjD/qs13kTRU9Dd7PRJw6rNvqbsVHZIwK7JsWtKMfkuHwQAld1QmgUhBMCfDkiuNuHrazA9GuxJVURu+DewNk0GUMs=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AUAACtfLFd/5JdJa1lGgEBAQEBAQEBAQMBAQEBEQEBAQICAQEBAYFnBQEBAQELAYEbL1AFbFcgBAsqCoQeg0cDhFiGCE6CEJgDgS6BJANUCQEBAQwBAS0CAQGEQAIXgyQkNAkOAgMJAQEEAQEBAgEFBG2FNwyFUAEBAQEDEggJChMBASkFCg8CAQgRAwEBASEBBgMCAgIwFAkIAgQBEggTB4MBgXlNAy4BAqdLAoE4iGF1gTKCfgEBBYUGGIIXCYE2AYwOGIFAP4ERRoFOfj6ELxgMEhaCWjKCLI1EgjSFOySJD48BCoIklUWCO4dUhC+GX4Q1jjmBQJQvg10CBAIEBQIOAQEFgVI5gVhwFTuCbFAQFIMGg3OKU3SBKY1bAYEpAQE
X-IronPort-AV: E=Sophos;i="5.68,224,1569283200"; d="scan'208,217";a="646295370"
Received: from rcdn-core-10.cisco.com ([173.37.93.146]) by rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 24 Oct 2019 10:30:19 +0000
Received: from XCH-ALN-017.cisco.com (xch-aln-017.cisco.com [173.36.7.27]) by rcdn-core-10.cisco.com (8.15.2/8.15.2) with ESMTPS id x9OAUJAT006664 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <netmod-ver-dt@ietf.org>; Thu, 24 Oct 2019 10:30:19 GMT
Received: from xhs-aln-001.cisco.com (173.37.135.118) by XCH-ALN-017.cisco.com (173.36.7.27) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 24 Oct 2019 05:30:18 -0500
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by xhs-aln-001.cisco.com (173.37.135.118) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 24 Oct 2019 05:30:17 -0500
Received: from NAM01-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; Thu, 24 Oct 2019 05:30:17 -0500
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DeEQ4oZSGfU09CRXLi+nKdzOKo7hfem1kSmVXfWSx9tHd4+NURE0+qBnyQbMDezm0BS1cQllG0/2usoiaViuno/jqD/cTJ/Fb7UcwlnidytGrnDLnj86zK0EP00qTVdFhfpk26luCyxJ3hDEuwP5HpfpLxVwJYUo5aRCKyP0QtiwKbOX+S6s4WOUTPTkdg8AgoM9tpiKt+RlZa/uCGJGlO6oZjrXgKy4plmls1wpXiYse/qvNiutEVWTpErEx0Oqdrqkd8kktK07YQAzLLpalzLW+xtsc5TGDglU3EBowKcgOw3EwqiRW3UHK53Y5qDzGmeJb+/nzED4r7V3ND/PdQ==
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=GzXbvuLhMFeA+GHptsWqYjdnimBvQj4SRxdnMjwrI64=; b=fWxKf4HR8RiMYNqOYDB/hR8nAULaIwiSVepQPtXBKwpLyiTlXaV4V5ECjuOwVwGgnI2pGRTtzxVtKJ/Xfb5nvwSnS+oI64C+8ZJRFhHqnR3LJVCHFtyxwXXy3eDgUTqHUScuAjuCwADgBwRHnqiTVlxtLOvQ1Qd6SevwRGEhKHsXKgaIyjejIamUY8wKUowRksIgMU+Y7hEJjRsnUB855pkp/A0zTnr4Ysrv+Gfd3NEwVlDLQ1+uD6hswxEygMUYgHtqWcUHZP+ajYGTKywewGhO2C+HS3JPIjWVS2Ct6ViF28vPyIyibENhuksEwlU3IifTzo3hJRIjmwXNNR72LA==
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=GzXbvuLhMFeA+GHptsWqYjdnimBvQj4SRxdnMjwrI64=; b=HUpWeLECZGEQpfI0BFWcubcEl2Jo08AY415vsq9cLDC9SXbKHYOah31r3PjwmuB5bEKPfp7db/AIipvs8MqOrMLdO1/1nNiKteWkYl4TJ7EefVUXJ2aeeZ7YuRFac3I8ITVdO8q7c9VogeHMD2jhUPCIhdT1V48tTlHPPQwP2wA=
Received: from MN2PR11MB4366.namprd11.prod.outlook.com (52.135.38.209) by MN2PR11MB3710.namprd11.prod.outlook.com (20.178.252.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2387.20; Thu, 24 Oct 2019 10:30:16 +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; Thu, 24 Oct 2019 10:30:16 +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+adoAhqggACKDgCAAOnWQA==
Date: Thu, 24 Oct 2019 10:30:16 +0000
Message-ID: <MN2PR11MB43665DC3B123E3ECF315AA46B56A0@MN2PR11MB4366.namprd11.prod.outlook.com>
References: <E1941124-CBFE-4522-9DB2-37F8C92D44FF@cisco.com> <MN2PR11MB4366AFA861CD8EC4D8525747B56B0@MN2PR11MB4366.namprd11.prod.outlook.com> <4AAD7886-973D-4B3B-98F6-0A84421A7637@cisco.com>
In-Reply-To: <4AAD7886-973D-4B3B-98F6-0A84421A7637@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: 8ec72ce8-dc1c-42c8-9be3-08d7586d297e
x-ms-traffictypediagnostic: MN2PR11MB3710:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <MN2PR11MB371023AB69E79CE377B89CC1B56A0@MN2PR11MB3710.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7691;
x-forefront-prvs: 0200DDA8BE
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(366004)(39860400002)(376002)(136003)(346002)(189003)(199004)(51444003)(51914003)(53754006)(7696005)(102836004)(6506007)(316002)(2906002)(110136005)(76176011)(3480700005)(76116006)(6436002)(221733001)(66946007)(71200400001)(71190400001)(6246003)(229853002)(14454004)(53546011)(66446008)(64756008)(66476007)(66556008)(86362001)(256004)(14444005)(9686003)(99286004)(236005)(81166006)(66066001)(6306002)(790700001)(9326002)(8676002)(486006)(81156014)(26005)(6116002)(3846002)(7116003)(74316002)(186003)(55016002)(8936002)(446003)(476003)(11346002)(2501003)(25786009)(30864003)(33656002)(7736002)(54896002)(5660300002)(52536014)(478600001)(21314003); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB3710; 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: /lmrRfRFuRCWSu5TFKgby26dtZnJ1/sDjCew92liztzOoest+BF4yInBKfEpQ6Pd0WpUpj3B9MEjhDqjOiagajn/PV5LIDMp/Y+dgYQXW6+++bQEvBSHBtXkWFWgbZULqxshfoTxTY/B9twnIC0JvedRHu2HhbHQapppmlS9MJy0mc4hN/S3PYuxb33i6C0SJUq2HXnKzLtQ7BZ5Q9ZY1aqMbhIox9fqcPRFnW2OMNFMUa4fhGjIPWdtGrSZEEg9JeJ0iJy4kuKB3+XvJ30okuxqL9sVaTJGkJhKEORN22hVWFM4su82cuLNDV8ukAsDGHTtjKVp3rqqcdt2ZXVcI0jq41zjMhdyi62uLAv8lB3ab3Ol/4kspiKnNAk6U0vYydDfsSwleBkl8hLn1uwqjSAUTVjeQY3sgON45Ugw+0Eoex+Lpd8tW4eqOVouvR6t
Content-Type: multipart/alternative; boundary="_000_MN2PR11MB43665DC3B123E3ECF315AA46B56A0MN2PR11MB4366namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 8ec72ce8-dc1c-42c8-9be3-08d7586d297e
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2019 10:30:16.4478 (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: 7MnE25teKpbLBZjIBLKyPLaAIkxKbEgXanCGwRDxJ+QMZqsnwWnL19mNZu5WJ5MpJPhRfM3+D+ya941nnR5Ndw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3710
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.27, xch-aln-017.cisco.com
X-Outbound-Node: rcdn-core-10.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod-ver-dt/Ph6OqQag_MD1_1wtTQQNnLVyelw>
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: Thu, 24 Oct 2019 10:30:24 -0000

Hi Reshad,

Hum, it seems that my comments may have caused some confusion …

Please see inline …

From: Reshad Rahman (rrahman) <rrahman@cisco.com>
Sent: 23 October 2019 23:25
To: Rob Wilton (rwilton) <rwilton@cisco.com>; netmod-ver-dt@ietf.org
Subject: Re: Version selection

Hi Rob,

Thanks for the detailed response, inline. Looks like we’ll be discussing these points during the meeting.

From: "Rob Wilton (rwilton)" <rwilton@cisco.com<mailto:rwilton@cisco.com>>
Date: Wednesday, October 23, 2019 at 9:13 AM
To: "Reshad Rahman (rrahman)" <rrahman@cisco.com<mailto:rrahman@cisco.com>>, "netmod-ver-dt@ietf.org<mailto:netmod-ver-dt@ietf.org>" <netmod-ver-dt@ietf.org<mailto:netmod-ver-dt@ietf.org>>
Subject: RE: Version selection

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.
[RW]
Note, I’m not saying that the current model doesn’t already cover this, only trying to emphasize that this is the requirement that I think is most important, most likely to be used, and hence want to ensure that the solution covers this in an easy way.

<RR> So basically what default-schema-set does (but probably with something else than schema-sets)? I agree.
[RW]
Yes, I agree that this is something like “default-schema-set”.


<RR> One schema family at a particular version or multiple schema families each at their version? E.g. let’s say we have  2 schema families (vendor and IETF), so  e.g. top-level schemas are example-ietf-routing-top and example-vendor-xxx-top, are you suggesting we need to select one schema family or the other but not both? Some implementations may support 1 schema family at a time, others may concurrently support multiple schema families.
[RW]
I think that the ideal goal is that clients will use one version of one schema family to configure their device.

Pragmatically, it is plausible that some features may only exist in some schema, so in the short/medium term I think that there is a need to allow multiple schema families to be used in the same session (and probably also during boot).

However, I don’t think that we need to allow clients to support multiple versions of a schema family in a particular session.

Also, even if a device supports multiple schema families for configuration, it is plausible that a client might want to restrict


<RR> Also, when you say “configured”,  so we have config for default schema/version(s) and that can be overridden per “session” via the NETCONF/RESTCONF mechanisms? This is the equivalent of default-schema-set then?
[RW]
Yes.


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).
<RR> If this config is for default behaviour, I agree.
<RR> I had thought about the schema selection YANG module needing to be in all schema families, that could be problematic. Instead of that, can we have a schema-family just for YANG version selection?
[RW]
Yes, having a separate schema family might be a good solution here.  Effectively it is a bit like meta configuration anyway.


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.
<RR> Is the superset schema the combination of all schema families or 1 superset schema per schema family? If it’s the latter (which seems to be the case from your example below), how does the superset package differ from top-level package for a schema family? Or is it the same thing?
[RW]
I think that it is latter, i.e. one superset schema per schema family.

I think that a superset schema probably ends up being the same as a top-level package.

Packages just define a schema.  That schema might only apply to a particular datastore, or that schema might apply to the device, effectively constraining what the per-datastore schema can look like.

Normally, I think that a client wants to choose a package that applies to all datastores, and hence they want to choose a superset schema package.  Of course, it could also be the case that all datastores use the same schema.

Maybe we also want to allow a client to specify a schema only for one datastore, in which case I think that they would be wanting to choose a package that relates to a datastore schema rather than a device schema.  (E.g. a client might want to read a subset of the operational data using an OpenConfig schema.  Whether this makes and sense, and whether this is feasible is unclear to me).  Potentially, we should defer this consideration at this time, and just focus on choosing superset 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<mailto:example-ietf-routing-cfg-pkg@2.1.0>” , and the operational state datastore uses “example-ietf-routing-state-pkg@2.1.0<mailto: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.
<RR> I agree that only the superset packages (which I understand to be same as top level packages) should be advertised in capabilities, that was the plan.
[RW]
OK.

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.
<RR> So the superset package+version is the default schema/version pair then?
[RW]
Actually, I’m going to row back on this point.  I suspect that it might be one version per supported schema family.  So clients may want to choose which schema families that want to use, and also which versions of those schema families they wish to use.



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:

(i)     Define “datastore superset schema” as the schema that is a superset of all datastore schema (yes, we may need better names here).

(ii)   Define “datastore superset package” as the associated YANG package that defines the “datastore superset schema”.

(iii)  Perhaps rename schema-sets (or at least the per datastore parts of them) (see below)

(iv)  Update the ietf-schema-version-selection YANG model:

o   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.

o   Keep the configurable “default-schema-set” leaf, but perhaps rename it.

<RR> Let’s discuss in the meeting.
[RW]
Ack.

Thanks,
Rob


Regards,
Reshad.


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<mailto:netmod-ver-dt-bounces@ietf.org>> On Behalf Of Reshad Rahman (rrahman)
Sent: 22 October 2019 19:47
To: netmod-ver-dt@ietf.org<mailto: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,