Re: [yang-doctors] Yangdoctors last call review of draft-ietf-nvo3-yang-cfg-05
Mehmet Ersue <mersue@gmail.com> Thu, 16 September 2021 11:05 UTC
Return-Path: <mersue@gmail.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 C801E3A24AF for <yang-doctors@ietfa.amsl.com>; Thu, 16 Sep 2021 04:05:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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=gmail.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 3F1sSqg40iHi for <yang-doctors@ietfa.amsl.com>; Thu, 16 Sep 2021 04:04:55 -0700 (PDT)
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4E39E3A24AD for <yang-doctors@ietf.org>; Thu, 16 Sep 2021 04:04:55 -0700 (PDT)
Received: by mail-wm1-x32a.google.com with SMTP id n7-20020a05600c3b8700b002f8ca941d89so4201172wms.2 for <yang-doctors@ietf.org>; Thu, 16 Sep 2021 04:04:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:references:in-reply-to:subject:date:message-id:mime-version :content-transfer-encoding:thread-index:content-language; bh=1otvaxn27Bjnf4u4gg8foLQCs3eM9oHm4RZUgHDMxWA=; b=m0qngtoyy7SUQMt/DgmlWRJgfFI4rqgAx+ksEupl9WUOWPHHX0yzEi5s7OFC8863Jn 2g9pg2aWlkWhDr7pW+SvMVSMVyIq5UEbKjzAK4Ywr0cRYlQ8WVJ31d9qzdMNH7gVOFFB oMpybAJfg3ghNbZdRNNsl0GRjsaIMoJifMx6t8d5qCjc6gM9aVFljJ8h0Ef2j4dr2v/r 8BYlWB9emcdr/JhEszQIjzE2vJQdoNf4NkYXWdv3Qde5jQWjvSez/O2JfiPi3dYnWeZS ABTRrcMcmwewIBJ8aVUuJaP/Q8Usa1kf4kLU8e7IUGwuU1Q6E+IUEN+Qvt1BN0SRmPOX SCiw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:references:in-reply-to:subject:date :message-id:mime-version:content-transfer-encoding:thread-index :content-language; bh=1otvaxn27Bjnf4u4gg8foLQCs3eM9oHm4RZUgHDMxWA=; b=JZWFk1sUKW2Kzg1/5v0wdeeAcyUtTnSel05Sln9SLxUqBDaeAvMfRQBT00ilz+APC0 6XiUBMZ2pQAlEW4fP66rwniFhMAeGpNVHJVrkWERbhcGtLI/+W85BoHFy01HzOYLsHqW 2bZEGf0N+pY/V3sIj/NgCMlwJpDXWuIEcEFfMdRqFnbw7eybdt8IzHEgKPF3YjyjzR5V zKsoLuoroyhRfcJHWFDACdVcALwNbpoYSDa+Dcdvznz2hOgS4US1VhhakOwZ9G4KKe73 JNodrG0mxha5q1/eVbRXOujAGxNglOyaavVVZPGr1/69S2Xt2C91Q5uRb0s8yUwssu+i FCcg==
X-Gm-Message-State: AOAM5320mie3+PLMGrvLes9NdOY38Wcaci7olWtR1vv9HVBixYV0GasA UdBLJS5dgUjXeMvGXvpzXN7LAccp0rg=
X-Google-Smtp-Source: ABdhPJwZzzT0eMra1MUjMoFqF2b6OqsJ4KlsRIKnfQ6Pvn0TyT4ESPpbscWevZYDzUiuf70G8kjzzQ==
X-Received: by 2002:a05:600c:3b83:: with SMTP id n3mr4624891wms.50.1631790293350; Thu, 16 Sep 2021 04:04:53 -0700 (PDT)
Received: from DESKTOPFLHJVQJ ([188.119.61.189]) by smtp.gmail.com with ESMTPSA id u29sm238718wru.34.2021.09.16.04.04.52 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Sep 2021 04:04:52 -0700 (PDT)
From: Mehmet Ersue <mersue@gmail.com>
To: 'Jan Lindblad' <janl@tail-f.com>, yang-doctors@ietf.org
References: <163177624716.21367.10437954922414983100@ietfa.amsl.com>
In-Reply-To: <163177624716.21367.10437954922414983100@ietfa.amsl.com>
Date: Thu, 16 Sep 2021 14:04:50 +0300
Message-ID: <00d201d7aaea$ac0e0c70$042a2550$@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQFyp63HCT8vykxLHHnYIUX52g+qU6xwhbPA
Content-Language: de
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/RwWWbdsFQ7miNjjX-RPbPQqvuC0>
Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-nvo3-yang-cfg-05
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: Thu, 16 Sep 2021 11:05:01 -0000
Many Thanks Jan! Cheers, Mehmet > -----Original Message----- > From: yang-doctors <yang-doctors-bounces@ietf.org> On Behalf Of Jan > Lindblad via Datatracker > Sent: Thursday, September 16, 2021 10:11 AM > To: yang-doctors@ietf.org > Cc: last-call@ietf.org; nvo3@ietf.org; draft-ietf-nvo3-yang-cfg.all@ietf.org > Subject: [yang-doctors] Yangdoctors last call review of draft-ietf-nvo3-yang- > cfg-05 > > Reviewer: Jan Lindblad > Review result: Not Ready > > This is the YANG Doctor review of draft-ietf-nvo3-yang-cfg. In my judgement > the draft is not ready for last call. This is not to say that there isn't plenty of > good work that has gone into this draft and YANG module, but since I have > been unable to compile it, due to unclear dependencies, the fundamental > requirements for performing a review aren't met. > > As soon as you import another module, you become dependent on that > module and inherit any problems it may have. If the modules you depend > upon are not stable enough, it may not be viable to perform a last call review. > As long as the modules you depend upon are not published, I would think > you cannot go through with publication of your own module either. > > There's always a bit of guesswork involved when a YANG module imports > unpublished modules. By looking in the IETF Git repository, under > "standards/ietf/RFC" as well as under "experimental/ietf-extracted-YANG- > modules", i.e. the section for automatically extracted YANG modules from > drafts, I was able to guess at which modules that are transitively referenced. > Based on this, I believe we will need to have stable versions of the following > modules before the draft-ietf-nvo3-yang-cfg can proceed. Experimental > modules are marked (*). > > iana-bfd-types.yang (*) > iana-if-type.yang > ietf-bfd-types.yang (*) > ietf-bgp-common-multiprotocol.yang (*) > ietf-bgp-common-structure.yang (*) > ietf-bgp-common.yang (*) > ietf-bgp-l3vpn.yang (*) > ietf-bgp-neighbor.yang (*) > ietf-bgp-peer-group.yang (*) > ietf-bgp-policy.yang (*) > ietf-bgp-rib-attributes.yang (*) > ietf-bgp-rib-tables.yang (*) > ietf-bgp-rib-types.yang (*) > ietf-bgp-rib.yang (*) > ietf-bgp-types.yang (*) > ietf-bgp.yang (*) > ietf-inet-types.yang > ietf-interfaces.yang > ietf-ip.yang > ietf-key-chain.yang > ietf-l2vpn.yang (*) > ietf-netconf-acm.yang > ietf-network-instance.yang > ietf-pseudowires.yang (*) > ietf-routing-policy.yang (*) > ietf-routing-types.yang > ietf-routing.yang > ietf-tcp-common.yang (*) > ietf-tcp.yang (*) > ietf-yang-schema-mount.yang > ietf-yang-types.yang > > Since I already did a first reading and found a few things, I'll list them here for > the WG's benefit rather than me holding them to myself. > > 1. YANG 1.1 > > The draft says "YANG [RFC6020] is a data definition language that was > introduced to". Since you are using yang-version 1.1, it would be more > appropriate with a reference to RFC 7950. > > 2. Identity equality tests > > There are a couple of places in the YANG that check that an interface is of > Nve type. Currently this is done using an equality test. While that can work, a > better and more future proof way is to use derived-from-or-self(). So change > > must "(/if:interfaces/if:interface[if:name=current()]/if:type='Nve')"; > > to > > must > "derived-from-or-self(/if:interfaces/if:interface[if:name=current()]/if:type , > 'Nve')"; > > 3. Behavioral constraints defined in English text > > list static-peer { > key "peer-ip"; > ... > leaf out-vni-id { > type uint32 { > range "1..16777215"; > } > description > "The ID of VNI for outbound. Do not support separate deletion."; > } > > I'm not completely clear as to the "Do not support separate deletion" is > supposed to mean. If every static-peer must have an out-vni-id, it should be > marked mandatory. If this is supposed to mean that an out-vni-id may be > added, but not deleted, that violates one of the basic principles in YANG. The > validity of a configuration should not depend on anything else than the > configuration itself. In particular, the validity of an upcoming configuration > should not depend on the prior configuration. > > If you don't want out-vni-id to be mandatory, but also don't want people to > be able to delete it without deleting the static-peer, I would recommend > making out-vni-id part of the key for static-peer, and ensure it can take a > value that essentially means none. For example like this: > > list static-peer { > key "peer-ip out-vni-id"; > ... > leaf out-vni-id { > type union { > type enumeration { > enum none; > } > type uint32 { > range "1..16777215"; > } > } > description > "The ID of VNI for outbound. Do not support separate deletion."; > } > > 4. Repetition of config false > > In many places within the module, there are config false statements inside > elements that are already config false. While this is perfectly legal, it is > superfluous. Once a container or other element is marked config false, > everything below that point will always be config false. The IETF convention is > to not write config false in more places than necessary. > > container peers { > config false; <--- Everything within/below container peers is now > config false description > "Operational data of remote NVE address in a VNI."; > list peer { > key "vni-id source-ip peer-ip"; > config false; <--- Superfluous > > 5. Weak data format > > leaf up-time { > type string { > length "1..10"; > } > config false; > description > "The continuous time as NVO3 tunnel is reachable."; > } > > YANG strings are great when used for names that the client can choose > arbitrarily. They are not so great when they encode information that is not a > name, unless there is a detailed description of the encoding. Since the > encoding of the up-time leaf is not specified, the contents will not be > interoperable. Either remove this leaf, or better, describe the format of the > contents so that it can be decoded. Changing the type from string to some > time type might be a good option. > > 6. Identities conventionally start with lowercase letters > > By convention, all identities defined by IETF start with a lower case letter. > Citing the principle of least surprise, I would recommend changing > > identity Nve { > > to > > identity nve { > > 7. RPC or Action > > In YANG 1.1, rpc:s that pertain to a certain element in the data tree can be > modeled as actions instead. This often leads to a more coherent model with > less text. In this module, that seems to be the case for the two rpc:s defined. > Therefore I would suggest changing > > rpc reset-vni-peer-statistic { > description > "Clear traffic statistics about the VXLAN tunnel."; > input { > leaf vni-id { > type uint32 { > range "1..16777215"; > } > mandatory true; > description > "The ID of the VNI."; > } > leaf peer-ip { > type inet:ip-address-no-zone; > mandatory true; > description > "The address of the remote NVE."; > } > leaf direction{ > type direction-type; > mandatory true; > description > "Traffic statistics direction for the tunnel."; > } > } > } > > to > > list statistic { > key "vni-id peer-ip direction"; ... > action reset-vni-peer-statistic { > description > "Clear traffic statistics about the VXLAN tunnel."; > } > > Best Regards, > /jan > > > > _______________________________________________ > yang-doctors mailing list > yang-doctors@ietf.org > https://www.ietf.org/mailman/listinfo/yang-doctors
- [yang-doctors] Yangdoctors last call review of dr… Jan Lindblad via Datatracker
- Re: [yang-doctors] Yangdoctors last call review o… Liubing (Remy)
- Re: [yang-doctors] Yangdoctors last call review o… Mehmet Ersue