Re: [netmod] New Version Notification for draft-verdt-netmod-yang-versioning-reqs-01.txt

Robert Wilton <> Mon, 12 November 2018 17:14 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 51D6E12896A for <>; Mon, 12 Nov 2018 09:14:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id x9e39eJ9vWxJ for <>; Mon, 12 Nov 2018 09:14:23 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 298E2130DF2 for <>; Mon, 12 Nov 2018 09:14:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=4691; q=dns/txt; s=iport; t=1542042863; x=1543252463; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=sQNMs9IXGj9Z4IBSeFzwkqQs916MEkiBrr049je/Fnw=; b=bNXX/KHXsw7givu0QNO+YzhGPH/70/sxSwar7GyaWfBO+1ydRs+zvhr0 SFw4kfXN5GVTOYPzz06ZSmNnxr3OXt+0okTKwgIXkAKNQT9EaU/EnyLze kA0+WHROsJsXAhAObkVU6HFNa8kBgYA53XIPURKY/E+GZ4SQ67fjeFR2S Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="5.54,496,1534809600"; d="scan'208";a="7938731"
Received: from (HELO ([]) by with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Nov 2018 17:14:21 +0000
Received: from [] ( []) by (8.15.2/8.15.2) with ESMTP id wACHEKl8020688; Mon, 12 Nov 2018 17:14:21 GMT
To: Martin Bjorklund <>
References: <> <> <> <>
From: Robert Wilton <>
Message-ID: <>
Date: Mon, 12 Nov 2018 17:14:20 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <>
Subject: Re: [netmod] New Version Notification for draft-verdt-netmod-yang-versioning-reqs-01.txt
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 12 Nov 2018 17:14:25 -0000

On 12/11/2018 16:29, Martin Bjorklund wrote:
> Robert Wilton <> wrote:
>> Hi Martin,
>> On 09/11/2018 16:31, Martin Bjorklund wrote:
>>> Juergen Schoenwaelder <> wrote:
>>>> On Fri, Nov 09, 2018 at 02:37:29PM +0100, Martin Bjorklund wrote:
>>>>>> I think we need to distinguish between the agreement on the
>>>>>> requirement, namely that a server should be able to provide support
>>>>>> for an old and a new definition, and agreement on the solution.
>>>>>> Do you disagree with the requirement? Or do you disagree with the
>>>>>> consequences of implementing multiple versions of the same module
>>>>>> for some of the proposed new versioning schemes? Or both?
>>>>> I do not agree with the requirement that a server MUST be able to
>>>>> support multiple revisions of the same module, which is how I
>>>>> interpret 3.2.  If this is not the intention of 3.2, maybe it can be
>>>>> clarified.
>>>> Here is what 3.2 says:
>>>>          3.2  The solution MUST provide a mechanism to allow servers to
>>>>               simultaneously support clients using different revisions of
>>>>               modules.  A client's choice of particular revision of one or
>>>>               more modules may restrict the particular revision of other
>>>>               modules that may be used in the same request or session.
>>>> This does _not_ say servers MUST implement this.
>>>> Item 3.2 establishes a requirement and for some solutions it may be
>>>> easy to satisfy this requirement, for others it may be more costly to
>>>> satisfy this requirement.
>>>> The whole requirements exercise becomes a rather pointless exercise if
>>>> we remove requirements so that certain solutions look more
>>>> attractive.
>>> Ok, but that's not what I wrote.  I don't agree with this requirement
>>> which says that it MUST be possible for a server to support
>>> different revisions of a given module (again, if this is not the
>>> intention of the text, please clarify).  I simply don't think that
>>> this is a good requirement.
>> One way to think of this is as YANG data models defining an API
>> between client and server.
>> There seem to be lots of REST APIs that implement versioning of their
>> API by having a version number in the URL.
> Yes, but that doesn't mean that a given server supports more than one
> version seamlessly.
I agree.  But if a set of translations are being defined between old and 
new it should be possible to identify those cases where the mapping does 
not work.

At the end of the day, if the schema has been expanded in any way, then 
an old client isn't going to understand new functionality used by a new 

>   As you wrote, it works fine for operational
> state, but it is less obvious how it should work in the general case
> for config data.
Even for operational data (if we are discussing mapping different 
versions of a schema) then it is not guaranteed that it is possible to 
map between different representations.  If they are two far apart then a 
good mapping may not be possible.

>> In fact, I think that
>> RESTCONF adopts this approach to allow versioning of the protocol.
>> One solution is as Andy describes.  The underlying server only
>> implements one version of the a given YANG module, but they may
>> provide other views on to this data using different versions of YANG
>> modules.  E.g. the same as how Vendor YANG models, IETF YANG models,
>> and OpenConfig YANG models might be treated as their own views, mapped
>> to the same internal YANG modules.
> Yes, but this solution is also problematic; it is not always the case
> that clients can pick and choose from these different "views" and get
> consistent results, simply b/c the mappings are not 100% one-to-one.
But a device performing that mapping should be able to report the 
paths/values that it has not been able to map.


> /martin
>> Thanks,
>> Rob
>>> /martin
>>>> I have not seen a proposal that addresses all requirements and hence
>>>> at the end the WG needs to decide which tradeoffs make sense.
>>>> /js
>>>> -- 
>>>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>>> Fax:   +49 421 200 3103         <>
>>> _______________________________________________
>>> netmod mailing list
>>> .
> .