Re: [Netmod-ver-dt] Comments on the guidelines chapter

"Rob Wilton (rwilton)" <rwilton@cisco.com> Thu, 13 June 2019 10:35 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 EF0261202AF for <netmod-ver-dt@ietfa.amsl.com>; Thu, 13 Jun 2019 03:35:32 -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=g7D9NUe+; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=wOdKclLP
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 YObIyK9bJalK for <netmod-ver-dt@ietfa.amsl.com>; Thu, 13 Jun 2019 03:35:28 -0700 (PDT)
Received: from rcdn-iport-9.cisco.com (rcdn-iport-9.cisco.com [173.37.86.80]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7070212012A for <netmod-ver-dt@ietf.org>; Thu, 13 Jun 2019 03:35:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=94176; q=dns/txt; s=iport; t=1560422128; x=1561631728; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=A1KdD+dYs9qHXKVtj5i11k9VxgMBtT111iF74OhQudY=; b=g7D9NUe+thGG5AVn2n52CtpnNOUFI/j5U324+Wu9ACIAuwtInMEy0voQ q8EDAY2zsYL93f/1JEGhNSExDt/oNQKvJEdAg7wtGO5fc9meP3YDdL513 Jw2qiU88ssoac4FSrL2b+c7YhiSrr0Hn8KL/lfOXVm8/NBK/RBlL6/6GL 8=;
IronPort-PHdr: 9a23:nSsBpBYZfYsnFLPwXRcTSRf/LSx94ef9IxIV55w7irlHbqWk+dH4MVfC4el20gebRp3VvvRDjeee87vtX2AN+96giDgDa9QNMn1NksAKh0olCc+BB1f8KavwcC0+AMNEfFRk5Hq8d0NSHZW2ag==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AIAACzJQJd/4gNJK1cChoBAQEBAQIBAQEBBwIBAQEBgVEFAQEBAQsBgQ4vUANqVSAECygKhAyDRwOEUooPgleXM4EuFIEQA1QJAQEBDAEBLQIBAYRAAheCMSM0CQ4BAwEBBAEBAgEEbRwMhUoBAQEDARIICQQGEwEBOAQLAgEIEQMBAQEhAQYDAgICMBQJCAEBBAESCBMEA4MBgR1NAw4PAQKfDAKBOIhfcX4zgnkBAQWFARiCDwmBNAGLXBeBQD+BEUaCTD6EGRMCGAwSFgKCUjKCJotHU4IbhHOILhmMd2oJAoIQk2eCJo0DiAONG4ErlScCBAIEBQIOAQEFgU84gVhwFYMngg8REoNNilNygSmOIQGBIAEB
X-IronPort-AV: E=Sophos;i="5.63,369,1557187200"; d="scan'208,217";a="487236736"
Received: from alln-core-3.cisco.com ([173.36.13.136]) by rcdn-iport-9.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 13 Jun 2019 10:35:26 +0000
Received: from XCH-RCD-003.cisco.com (xch-rcd-003.cisco.com [173.37.102.13]) by alln-core-3.cisco.com (8.15.2/8.15.2) with ESMTPS id x5DAZQfB019227 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <netmod-ver-dt@ietf.org>; Thu, 13 Jun 2019 10:35:26 GMT
Received: from xhs-rtp-001.cisco.com (64.101.210.228) by XCH-RCD-003.cisco.com (173.37.102.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 13 Jun 2019 05:35:25 -0500
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by xhs-rtp-001.cisco.com (64.101.210.228) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 13 Jun 2019 06:35:25 -0400
Received: from NAM05-BY2-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, 13 Jun 2019 05:35:25 -0500
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=A1KdD+dYs9qHXKVtj5i11k9VxgMBtT111iF74OhQudY=; b=wOdKclLPXQVotNLjDADy258aEFOU3gkXc8X+mO0BAGw4kHgZQ4p00iIpmHyjMq3TK8tfLHQgQ4YPvlwzDpn9WOKYO8DIevXhffn42tqp3I2co8M94+C9S26OXub2j4wMfflLBwiMUoHa1S89iZl1X/BAOGoN9GA9zkq6VJp90QY=
Received: from BYAPR11MB2631.namprd11.prod.outlook.com (52.135.227.28) by BYAPR11MB3429.namprd11.prod.outlook.com (20.177.225.207) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.10; Thu, 13 Jun 2019 10:35:23 +0000
Received: from BYAPR11MB2631.namprd11.prod.outlook.com ([fe80::d837:c1dd:cdb1:bb78]) by BYAPR11MB2631.namprd11.prod.outlook.com ([fe80::d837:c1dd:cdb1:bb78%7]) with mapi id 15.20.1965.018; Thu, 13 Jun 2019 10:35:23 +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: Comments on the guidelines chapter
Thread-Index: AdUbv4OSRZIqBFosSQueZJ2vAPqisf///y+A//6awpCADEdqgP/+vwKQ
Date: Thu, 13 Jun 2019 10:35:23 +0000
Message-ID: <BYAPR11MB2631C76AC6020F25C399253BB5EF0@BYAPR11MB2631.namprd11.prod.outlook.com>
References: <BYAPR11MB26316C8F19B99FA99F86D012B5160@BYAPR11MB2631.namprd11.prod.outlook.com> <0E6B8ACB-8B74-4C2B-ADBB-F3CF8EBA7DF0@cisco.com> <BYAPR11MB263108664642F4370C25F92EB5170@BYAPR11MB2631.namprd11.prod.outlook.com> <3BFA7CF6-6EED-4356-A8FF-16DE5A59A590@cisco.com>
In-Reply-To: <3BFA7CF6-6EED-4356-A8FF-16DE5A59A590@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.62]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 322d42d7-9dd6-45d2-ab59-08d6efead781
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:BYAPR11MB3429;
x-ms-traffictypediagnostic: BYAPR11MB3429:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <BYAPR11MB3429EEC9481C71CA7EB197B0B5EF0@BYAPR11MB3429.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0067A8BA2A
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(39860400002)(396003)(376002)(136003)(346002)(189003)(199004)(51914003)(51444003)(7736002)(256004)(6436002)(30864003)(2501003)(14444005)(5024004)(81166006)(8676002)(236005)(9686003)(229853002)(55016002)(54896002)(6306002)(53946003)(81156014)(33656002)(7520500002)(53936002)(74316002)(66476007)(316002)(73956011)(66574012)(71190400001)(71200400001)(68736007)(110136005)(66446008)(64756008)(9326002)(6246003)(76116006)(66946007)(66556008)(478600001)(790700001)(76176011)(7696005)(52536014)(486006)(26005)(186003)(53546011)(6506007)(11346002)(446003)(476003)(86362001)(25786009)(102836004)(5660300002)(14454004)(99286004)(8936002)(66066001)(6116002)(3846002)(2906002)(559001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR11MB3429; H:BYAPR11MB2631.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-message-info: XiO+N61zuiJvirYMYbePdjO1TgaiXFlDMxIjSRwsa54dMow85OVpP8w9VQrkvHin72tCHohGc65p98TSUf00Uhlr7YrTXL3poTSc5UoM/oM41EoSpHCX6ISaP/+AbzuQAnUXsgmY574su8wSBoW28C86m1/hWtfyt8Iy7k51nAjc2uZM0lkrm9tdEH0/qv/IXZT33YXAmjx1FdAwBHmsULXevCZVi/i3nAIe08i9iEX1VzwSJHoB4+jSUE1oBz8GLn1k9qmKAD+mybRnrDjWWRSNos056LMaQD4I7yxUy+2tnlIV+NE0uYwQUYGjVy9EMlbBiWaW/lYQgCuXYKZBBXiKSqK8NE/V1vV9qG2e5FSIq6JK5vhoKncGiMy/a7LCG/EEAxioBhQNWtaagie/DWsqMqT7fgyRGHGyo6pVM1E=
Content-Type: multipart/alternative; boundary="_000_BYAPR11MB2631C76AC6020F25C399253BB5EF0BYAPR11MB2631namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 322d42d7-9dd6-45d2-ab59-08d6efead781
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2019 10:35:23.4800 (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: rwilton@cisco.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3429
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.13, xch-rcd-003.cisco.com
X-Outbound-Node: alln-core-3.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod-ver-dt/O2B2wAKoT5G_M__gBU2PXHMBfJY>
Subject: Re: [Netmod-ver-dt] Comments on the guidelines chapter
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, 13 Jun 2019 10:35:33 -0000

Hi Reshad,

Thanks for the updates.  I’ve also had some comments from Martin Bjorklund.  The trivial ones I will just make, the others we can discuss later today.

I’m not sure that we have got the revision-label right for submodules, and should discuss further today:

  *   Banning the revision-label entirely for submodules seems a bit strict
  *   From the meeting last week, the agreement was that in the revision-label is present in a sub-module then it must match the importing parent module.  But I think that this is implies that revision-dates between a module and submodule are allowed to differ, but revision-labels have to be in lock step.  This seems wrong to me.
  *   I tried to write up a stricter version of this stating that the revision-date and revision-label of sub-modules must match the importing module, but Jason indicated that this is too restrictive for their use case.

Hence, I think that we should probably allow a revision-label for a sub-module, but indicate that it has no bearing on the module revision-label, perhaps with the recommendation that if present it should match the including module (for the cross referencing that mention).

Thanks,
Rob


From: Reshad Rahman (rrahman)
Sent: 12 June 2019 20:05
To: Rob Wilton (rwilton) <rwilton@cisco.com>; netmod-ver-dt@ietf.org
Subject: Re: Comments on the guidelines chapter

Hi Rob, all,
I’ve made the changes to the guidelines as per the notes below, diff attached.


  1.  Need to add text similar to this (change semver to revision):  Put this into section 2.  Also need to state that labels in submodule revisions, if present, MUST be the same at the including module.
My memory is failing me, can someone remind me why we need revision-labels in submodule revisions? I understand that the extension applies to the revision statement which are used by sub-modules, but shouldn’t we just ignore revision-labels in submodules? Or is the point to be able to “cross-reference” module and submodule revisions?
Also the note says section 2, not sure why, I added it in the guidelines (7.1).

  1.  There is text in 7.1 which says [Moved from section 4.], I think that was added by Rob in last commit. I didn’t remove it in case it was put there for a specific reason.

Comments welcome, feel free to make any changes to the guidelines, I won’t be able to spend much time on this for the rest of the week.

Regards,
Reshad.


From: "Rob Wilton (rwilton)" <rwilton@cisco.com<mailto:rwilton@cisco.com>>
Date: Thursday, June 6, 2019 at 11:04 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: Comments on the guidelines chapter

One other change (for Rob):
- In 3.3, need to state that the revision label MUST be unique for a given YANG module.  This also needs to be added to the YANG module definition.


From: Reshad Rahman (rrahman)
Sent: 05 June 2019 21:53
To: Rob Wilton (rwilton) <rwilton@cisco.com<mailto:rwilton@cisco.com>>; netmod-ver-dt@ietf.org<mailto:netmod-ver-dt@ietf.org>
Subject: Re: Comments on the guidelines chapter

Hi Rob,

Yes we can discuss in the meeting. Inline.

From: "Rob Wilton (rwilton)" <rwilton@cisco.com<mailto:rwilton@cisco.com>>
Date: Wednesday, June 5, 2019 at 12:58 PM
To: "netmod-ver-dt@ietf.org<mailto:netmod-ver-dt@ietf.org>" <netmod-ver-dt@ietf.org<mailto:netmod-ver-dt@ietf.org>>, "Reshad Rahman (rrahman)" <rrahman@cisco.com<mailto:rrahman@cisco.com>>
Subject: Comments on the guidelines chapter

Hi Reshad,

Sorry that these have been so late, but here are some comments on the guidelines chapter.  Potentially we can discuss tomorrow, if needed.

>6.1.  Guidelines for YANG module authors

I think that this section should state that is updates RFC8407 sections 4.7 and 4.8, and I think that we should check the text against this existng BCP.
<RR> Ack. I thought I had done that, but missed it.

I think that the text also needs to cover:

(i)               Adding a "rev:nbc-changes;" if and only if there are NBC changes relative to the previous revision.
[RW]
Reshad – will add.

(ii) Fixing RFC8407 section 4.7's "The revision date substatement within the import statement SHOULD be present if any groupings are used from the external module.".
[RW]
Move following text (or similar) to guidelines:

      Using the "revision-date" statement causes overly strict import
      dependencies between modules and SHOULD NOT be used.




(ii)              Fixing RFC8407 section 4.7's "The revision date substatement within the include statement SHOULD be present if any groupings are used from the external submodule." - I think that we want this to be a MUST otherwise the module doesn't have a stable definition because the the module revision does not uniquely identify its content.

[RW]

Need to add text similar to this (change semver to revision):  Put this into section 2.  Also need to state that labels in submodule revisions, if present, MUST be the same at the including module.


   The YANG semantic versioning scheme applies only to YANG modules.

   YANG submodules are not independently versioned by the YANG semantic

   versioning scheme.  Instead, if a versioned module includes one or

   more submodules then those submodules are implicitly versioned as

   part of the module's 'semver:version' statements, and all the

   module's 'include' statements MUST specify the revision-date for each

   of the included submodules.

Probably also want a guideline statement as well:
The revision date substatement within the include statement MUST be present if any groupings are used from the external submodule.


(iii)            Some text stating that removing old revision statements from a modules revision history could break import by revision, and hence it might be better to retain them, unless it is known that all depencencies have been updated.  An alternative solution, if the revision section is too long, would be remove, or curtail, the older description statements associated with old historical revisions.

[RW]
OK, Reshad to add text along these lines.


(v) Some guidance about whether updating the revision in import revision-or-derived is a BC or NBC change.  I think that it is NBC is the imported module has been changed in an NBC way between the revision dates.

[RW]
Leave out this text for now, and resolve via the open issues.


>
>   NBC changes to YANG modules may cause problems to clients, who are
>   consumers of YANG models, and SHOULD be avoided.  YANG module authors
>   are recommended to minimize NBC changes and keep changes BC whenever
>   possible.

I think "SHOULD be avoided" is too strong.  Perhaps:

NBC changes to YANG modules may cause problems to clients, who are
consumers of YANG models, and hence YANG module authors are
RECOMMENDED to minimize NBC changes and keep changes BC whenever
possible.

<RR> Good with me.

My counter argument is that there are somecases (e.g. bugfixes), where an NBC change makes sense because it should not break any clients.

<RR> Ack.

>
>   When NBC changes are introduced, consideration should be given to the
>   impact on clients and YANG module authors SHOULD try to mitigate that
>   impact.

OK.


>
>6.1.1.  Making non-backwards-compatible changes to a YANG module
>
>   There are various valid situations where a YANG module has to be
>   modified in a non-backwards-compatible way.  Here are the different
>   ways in which this can be done:
>
>   o  NBC changes can be done incrementally using the 'deprecated'
>      status to provide clients time to adapt to NBC changes.

I would suggest caveating this to:

  o  NBC changes can sometimes be done incrementally using the 'deprecated'
     status to provide clients time to adapt to NBC changes.
<RR> OK.

E.g. I'm still to be convinced that in the mainline case that configuration can be fixed incrementally.
<RR> I think the issue is supporting both at the same time. E.g. in the vpn-id example where the type is changed from integer to string,  it can be done incrementally but supporting both at the same time on a server is an issue (mapping values etc).

>
>   o  NBC changes are done at once, i.e. without using 'status'
>      statements.  This has a big impact on clients.

"This has a big impact on clients." => "Depending on the change, this may have a big impact on clients."

<RR> Ack.

>
>   o  If the server can support multiple versions of the YANG module or
>      of YANG packages(as specified in
>      [I-D.rwilton-netmod-yang-packages]), and allows the client to
>      select the version (as per
>      [I-D.wilton-netmod-yang-ver-selection]), then NBC changes MAY be
>      done without using 'status' statements.  Clients would be required
>      to select the version which they support and the NBC change would
>      have no impact on them

OK.


>
>   Here are some guidelines on how non-backwards compatible changes can
>   be made incrementally:

Perhaps, alter this to something like:

Here are some guidelines on how non-backwards compatible changes can be made incrementally, with the assumption that deprecated nodes are implemented by the srever, and obselete nodes are not:
<RR> Good with me.

>
>   1.  The changes should be made gradually, e.g. a data node's status
>       SHOULD NOT be changed directly from "current" to "obsolete" (see
>       Section 4.7 of [RFC8407]), instead the status SHOULD first be
>       marked "deprecated" and then when support is removed its status
>       MUST be changed to "obsolete".  Instead of using the "obsolete"
>       status, the data node MAY be removed from the model but this has
>       the risk of breaking modules which import the modified module.
>
>   2.  A node with status "deprecated" MUST be supported for the
>       solution described here to function properly.

As above, I think that this could be merged into the first sentence.
<RR> So just take bullet 2 out?

>
>   3.  A node with status "deprecated" SHOULD be available for at least
>       one year before its status is changed to "obsolete", see
>       Section 4.7 of [RFC8407].

I'm not sure whether we need to even state this one (since it is already in RFC8407).
<RR> Yes, and I’d like to avoid this statement since it’s contentious.


>
>   4.  Support for a node which is "obsolete" is indicated by the node
>       "obsolete-nodes-present, see Section 4.

As above, I think that this coudl be merged into the first sentence.
>
>
>
>Claise, et al.          Expires December 1, 2019               [Page 15]
>

>Internet-Draft           YANG Module Versioning                 May 2019
>
>
>   5.  The new extension "status-description" SHOULD be used for nodes
>       which are "obsolete" or "deprecated".

Should we indicate what information should be included:
- Reason for deprecation (if interesting)
- Replacement node (if known)
- Release/time that the node is anticipated to be obsoleted.

<RR> The last 2 points are  mentioned in the following bullets. I’ll add the 1st point.

Should we also indicate that "status-description" can be used with "status current" to provide forewarning that it could be deprecated, or does that mean that the node is already deprecated?

>
>   6.  For status "deprecated", the "status-description" SHOULD also
>       indicate until when support for the node is guaranteed.  If there
>       is a replacement data node, rpc, action or notification for the
>       deprecated node, this SHOULD be stated in the "status-
>       description".

I think that the first "SHOULD" should be a "MAY" because it is hard to foretell the future.  Alternatively, or perhaps in addition, it should be caveated with an "if known".
<RR> if known.

I think that this paragraph should also cover "reason for deprecated (if interesting)", and some of the status-description information also applies, and should be preserved when it becomes status-obsolete.


>
>   7.  When obsoleting or deprecating data nodes, the "deprecated" or
>       "obsolete" status SHOULD be applied at the highest possible level
>       in the data tree.  For example, when deprecating all data nodes
>       in a container, the "deprecated" status SHOULD be applied to the
>       container.  For clarity, the status MAY be added in all the
>       affected nodes but the status-description SHOULD be added only at
>       the highest level in the tree.

I would suggest rephasing to something like:

   7.  When obsoleting or deprecating data nodes, the "deprecated" or
       "obsolete" status SHOULD be applied at the highest possible level
       in the data tree with an appropriate status-description.  For
       clarity, status statement SHOULD also be applied to all descendent
       data nodes, but status-description does not need to be repeated
       if it does not introduce any additional information.
<RR> Good with me.

>
>   See Appendix A.2 for examples on how non-backwards-compatible changes
>   can be made.
>
>6.2.  Versioning Considerations for Clients
>
>   Guidelines for clients of modules using the new module revision
>   update procedure:
>
>   o  Clients SHOULD be liberal when processing data received from a
>      server.  For example, the server may have increased the range of
>      an operational node causing the client to receive a value which is
>      outside the range of the YANG model revision it was coded against.
>
>   o  Clients SHOULD monitor changes to published YANG modules through
>      their revision history, and use appropriate tooling to understand
>      the specific changes between module revision.  In particular,
>      clients SHOULD NOT migrate to NBC revisions of a module without
>      considering the specific NBC changes.

considering -> "understanding any potential impact of"
<RR> Ack.

Regards,
Reshad.

>
>   o  Clients SHOULD plan to make changes to match published status
>      changes.  When a node's status changes from "current" to
>      "deprecated", clients SHOULD plan to stop using that node in a
>      timely fashion.  When a node's status changes to "obsolete",
>      clients MUST stop using that node.

Thanks,
Rob