Re: [yang-doctors] Yangdoctors early review of draft-ietf-dots-rfc8782-bis-00

mohamed.boucadair@orange.com Fri, 25 September 2020 11:26 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 622A03A1379; Fri, 25 Sep 2020 04:26:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.118
X-Spam-Level:
X-Spam-Status: No, score=-2.118 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=orange.com
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 9Z_4zdVIdxio; Fri, 25 Sep 2020 04:26:22 -0700 (PDT)
Received: from relais-inet.orange.com (relais-inet.orange.com [80.12.70.36]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5E8533A1376; Fri, 25 Sep 2020 04:26:22 -0700 (PDT)
Received: from opfednr05.francetelecom.fr (unknown [xx.xx.xx.69]) by opfednr25.francetelecom.fr (ESMTP service) with ESMTP id 4ByV3c50HtzCrrH; Fri, 25 Sep 2020 13:26:20 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.com; s=ORANGE001; t=1601033180; bh=T7Vqkaq8t2JIulAX/PY3XHnn9HACYmoqCi5wE2kV/t4=; h=From:To:Subject:Date:Message-ID:Content-Type: Content-Transfer-Encoding:MIME-Version; b=bIlZXG+Bnp7bgqfXIj8mnCwOBHQFQEBLrPVTnKN+WeY8J6F29nxuVOAZu4MndhuoV 4HvR1fvfKbfE9w2Q+/8GFJ4csWdq1NY1ml9s6JldJYOzLJO6YS9jV7VlbTtV+ScAyd wgWBGnwNJvkquDzW+7V1dStbZZHNV9R6V9ECzYi9oQESFRTuDt3zwQ8BxBCoRO2rzB q/VHNMhPO+N5bj8WaaWterpiFpDTplPwNomZNL4+ItgejpdF/bmr7ZTvnO0pY7HLfo YEx1B1obHoli7u2/P3U7VvLo5TQ6UpMgu75+H7QgAvK/TF+255uDYEHrstuCMB8scV NcFhVTORN8E5Q==
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.51]) by opfednr05.francetelecom.fr (ESMTP service) with ESMTP id 4ByV3c3rfBzyQ4; Fri, 25 Sep 2020 13:26:20 +0200 (CEST)
From: mohamed.boucadair@orange.com
To: Ebben Aries <ebben.aries@nokia.com>
CC: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "dots@ietf.org" <dots@ietf.org>, "draft-ietf-dots-rfc8782-bis.all@ietf.org" <draft-ietf-dots-rfc8782-bis.all@ietf.org>
Thread-Topic: Yangdoctors early review of draft-ietf-dots-rfc8782-bis-00
Thread-Index: AQHWktY16QJgyyUzE0aP4KpAgGJvfql5NgTw
Date: Fri, 25 Sep 2020 11:26:20 +0000
Message-ID: <6563_1601033180_5F6DD3DC_6563_9_1_787AE7BB302AE849A7480A190F8B933031546980@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
References: <160091148495.1709.10744527350560713534@ietfa.amsl.com> <18277_1600936569_5F6C5A79_18277_298_1_787AE7BB302AE849A7480A190F8B9330315459EC@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <20200925005300.GA2034@localhost>
In-Reply-To: <20200925005300.GA2034@localhost>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.13.247]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/YEQ9DkPRmjfV9acEykgan-SST44>
Subject: Re: [yang-doctors] Yangdoctors early review of draft-ietf-dots-rfc8782-bis-00
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 25 Sep 2020 11:26:24 -0000

Hi Ebben, 

Thank you. An udpated verison that takes into account your review is available at: 

https://tools.ietf.org/html/draft-ietf-dots-rfc8782-bis-01 
https://datatracker.ietf.org/doc/html/draft-ietf-dots-rfc8782-bis-01 

A diff from the previous version is available at:
https://github.com/boucadair/rfc8782-yang-update/blob/master/Ebben-Review.pdf 

Cheers,
Med

> -----Message d'origine-----
> De : Ebben Aries [mailto:ebben.aries@nokia.com]
> Envoyé : vendredi 25 septembre 2020 02:53
> À : BOUCADAIR Mohamed TGI/OLN <mohamed.boucadair@orange.com>
> Cc : yang-doctors@ietf.org; dots@ietf.org; draft-ietf-dots-rfc8782-
> bis.all@ietf.org
> Objet : Re: Yangdoctors early review of draft-ietf-dots-rfc8782-bis-
> 00
> 
> On Sep 24 08:36 AM, mohamed.boucadair@orange.com wrote:
> > Hi Ebben, all,
> >
> > Thank you for the review.
> >
> > Please see inline.
> >
> > Cheers,
> > Med
> >
> > > -----Message d'origine-----
> > > De : Ebben Aries via Datatracker [mailto:noreply@ietf.org]
> Envoyé :
> > > jeudi 24 septembre 2020 03:38 À : yang-doctors@ietf.org Cc :
> > > dots@ietf.org; draft-ietf-dots-rfc8782-bis.all@ietf.org
> > > Objet : Yangdoctors early review of draft-ietf-dots-rfc8782-bis-
> 00
> > >
> > > Reviewer: Ebben Aries
> > > Review result: On the Right Track
> > >
> > > 2 modules in this draft:
> > > - ietf-dots-signal-channel@2020-07-02.yang
> > > - iana-dots-signal-channel@2020-05-28.yang
> > >
> > > YANG compiler errors or warnings (pyang 2.3.2, yanglint 1.9.2)
> > > - No compiler errors or warnings however pyang 2.3.2 is
> currently
> > > the only
> > >   compiler verified to emit YANG sx:structure data in tree
> format.
> > > Instance
> >
> > [Med] I confirm this is what we are using.
> >
> > >   data could not yet easily be validated given the current
> > > linters/compilers.
> > >
> > > General comments on the draft/modules:
> > > ----------------------------------------
> > > The modules defined in this draft are an update replacement to
> those
> > > defined in RFC8782 with only 1 being updated from the prior
> > > publication.
> > >   - ietf-dots-signal-channel@2020-05-28.yang (updated)
> > >   - iana-dots-signal-channel@2020-05-28.yang
> > >
> > > - First, I share some of the same comments as the previous
> review in
> > > that it
> > >   takes some additional thought on modeling structures for
> alternate
> > > protocol
> > >   communications with the YANG language.  Overall, I think this
> is
> > > likely fine
> > >   but also question where the draft/RFC specification outlines
> rules
> > > that are
> > >   not conveyed within the data-model.  Some examples include
> > > specifying
> > >   mandatory attributes but not making use of the YANG
> 'mandatory'
> > > statement.
> >
> > [Med] We are using "mandatory" statements when this makes sense
> (e.g.,
> > alt-server, hb-status). It is not used for some attributes that
> may
> > appear in both directions, but are not mandatory in one direction.
> For
> > example, "lifetime" is mandatory in a mitigation request, but it
> is
> > when the server replies with a conflict message.
> >
> > FWIW, a constraint we had is to reuse as much as possible the same
> > CBOR key/attribute names. This is not possible if we overload the
> > module with "choice"s:
> >
> > ==
> >    Each "case" may
> >    contain multiple nodes, but each node may appear in only one
> "case"
> >    under a "choice".
> > ==
> >
> > This is why what is normative for an implementation is the core of
> the
> > specification not the YANG module itself.
> >
> 
> Ack - however just like other verbiage put within the YANG
> description statements to indicate valid/invalid values (some of
> which is a direct copy from the document detail), I might expect at
> a bare minimum the description for the node carry when a node is
> mandatory within the payload or not if it cannot be expressed via a
> language statement as you indicate - e.g. This node is mandatory for
> request and info retrieval operations.
> 
> Also keep in mind, YD reviews likely have not dealt with many such
> cases yet so a best practice for these types of use-cases does not
> necessarily exist yet.
> 
> > >   Other cases are stating the intent of reserved or invalid
> integers
> > > but not
> > >   putting the same restrictions on the types under a given data
> > > node.
> >
> > [Med] Can you please indicate which data node are you referring
> to? Thanks.
> >
> 
> A common example to point out...
> 
> An unbounded int32 with the description yielding the rules around
> valid values.  From a pure type perspective, all values that fall
> within the
> int32 range are valid and data validation is only then left to the
> running implementation and conveying invalid boundaries by way of
> protocol error messaging.
> 
> 105       leaf lifetime {
> 106         type int32;
> 107         units "seconds";
> 108         default "3600";
> 109         description
> 110           "Indicates the lifetime of the mitigation request.
> 111
> 112            A lifetime of '0' in a mitigation request is an
> 113            invalid value.
> 114
> 115            A lifetime of negative one (-1) indicates indefinite
> 116            lifetime for the mitigation request.";
> 117       }
> 
> Now to be fair, this also exists in datastore related modules where
> the instance data can be valid from a data-model conformance
> standpoint but still not meet the requirements of the implementation
> - all such cases make it harder for the model consumer to fully
> validate instance data outside of the complete implementation.
> 
> The tradeoff of leaving this outside the schema is likely fine here.
> 
> >  Overall
> > >   this means that you cannot validate the instance/payload data
> > > according to
> > >   the data-model alone.
> >
> > [Med] Agree. The data model alone is not sufficient for an
> > implementer, it should rely on the detailed spec.
> >
> > >
> > > - Previous review suggested the main edits required switching
> the
> > > top-level
> > >   container 'dots-signal'.  This has now been fulfilled by that
> of
> > > an
> > >   sx:structure in this revision.
> > >
> >
> > [Med] Thanks.
> >
> > > - A recent discussion among YANG doctors suggests the use of
> > > normative
> > >   language (RFC2119) in YANG description statements. For example
> > > 'should' =>
> > >   'SHOULD', 'must' => 'MUST', etc... A benefit to this approach
> is
> > > RFC
> > >   comprehension even when the module is stripped from the source
> > > document it
> > >   is contained under.
> >
> > [Med] Thank you for sharing this. I understand the benefit for the
> > "classic" use of YANG, but in our case I'm afraid thus this will
> be
> > redundant with the core specification itself.
> >
> 
> YANG modules can become detached from the IETF document containing
> them (and is the intention for the normal uses as you mention) and
> for this purpose, the module should be as descriptive as possible to
> live on its own.
> 
> Now for this use, you are defining solely message structures which
> can likely still be used for library code generation on its own
> without further context.  The implementation however will need to
> take into account the specification to build upon and this is fine.
> 
> And yes, for all other cases I mention the intention is to be
> redundant carrying the verbiage from the specification detail into
> the YANG description statements for consistency - especially here
> where a protocol specification will already carry this in the
> detail.
> 
> > >
> > > - (draft) L887 nit: "As a reminder, the prefix length must be
> less
> > > than or
> > >   equal to 32 (for IPv4) for 128 (for IPv6)"
> >
> > [Med] Fixed. Changed to:
> >
> > "As a reminder, the prefix length must be less than or equal to 32
> for IPv4 and 128 for IPv6."


_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.