Re: [babel] Yangdoctors early review of draft-ietf-babel-yang-model-03

Radek Krejčí <> Wed, 16 October 2019 10:52 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C5F711200B7; Wed, 16 Oct 2019 03:52:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.298
X-Spam-Status: No, score=-4.298 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id l9Oc3BtpRzGr; Wed, 16 Oct 2019 03:52:04 -0700 (PDT)
Received: from ( [IPv6:2001:718:1:101::144:244]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 1C959120043; Wed, 16 Oct 2019 03:52:03 -0700 (PDT)
Received: from (unknown [IPv6:2001:67c:1220:80c:d0:552c:73a5:18da]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id 5FF78400052; Wed, 16 Oct 2019 12:52:00 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=office2-2020; t=1571223120; bh=y6qJifVPAqwu1pSkFCl9acYKKoN/EcYiTHa0nNqGmUk=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=OjTIgBMlVvUqyTdGiUVShECVEhtZC9kGr4m2NWU2rodWwjEB3kYS6HuGqzNLIEG+v EPUu2vo83PrJ5JgcQWMbMW7jelUMWL4jCDsImaCH1vVlQNctY2eDw0cgC3XMjne0M7 t21eA//zI35+0cM8/+KYohWLW4Pz7M9Ll5hBh8+4WYkp/UyvjvFOcV/aGKskTWDGi3 /ZsSptaEs3VS7HsrwihIYJ/3GSIpXmBDFgzXp+uHs31UJpktBK902AgS09J/QBIMSs omSFPJhBJM60Csbuxgsm9A0JJegDb9kGWDCOg7HXTL8Jb9NqvzJCRY9as2tcWmLHlX SZ1FxkZj2RFtA==
To: Mahesh Jethanandani <>
References: <> <>
From: =?UTF-8?B?UmFkZWsgS3JlasSNw60=?= <>
Openpgp: preference=signencrypt
Autocrypt:; prefer-encrypt=mutual; keydata= mQGiBEKfHd4RBADDE8CtJpEtOraXBKfQg0KCRZu7BRALixoLqW98U+N9h+PJ+gCnFaKNmnYu fXWLYKTJRUlaoMGIJOZjHpr/zvwozSR+VJkxCsTyNYTF8vIfN3Iwrxy9e8CNy/O1GI50K/ld WWMDl+3M2NztiBFPrCT0b/U5ErsN7bTrf2XLEQRpZwCg95POGbJPqPAaaok2KU5e2u0/flsD /AyC0aRO66Ci0OGw0R5sCJmzZ5xE5eBUvfx0N0IC16aojrwRYM5yf+bULtBDd4wPI1R+VH/X P6OrDgzlDmutJthVtYfCcho3IhqnVo1R/UvJxjF3ATKbOnVHL4xwiLSrRDb6rKVyd1+Kc7cq +JABgFl+JP4xndytvvUXdVqhuSUFBACCDdDtxutkclBrvEp2guBIftuT4/oK3IWxgtevlGfY LZXwdD6pIWS1z6y6xthoFTsLWS1QCFk2ZXmAgvOV/lnW0iGHwO5kCfzvWJq7weeH2FGuBgq+ WInxhdIFD/QwiXV6EPUWzAoC5Fx4Cz5ySFSd6n0C1Mrzin3ABtPHRpUT8rQpUmFkZWsgS3Jl amNpIChDRVNORVQpIDxya3JlamNpQGNlc25ldC5jej6IYgQTEQIAIgUCTT/pkAIbAwYLCQgH AwIGFQgCCQoLBBYCAwECHgECF4AACgkQIMoxClN+p/31DwCfWVWX1IWaUa6+QbuVvZQIkb6m Rn8AoLRvdANGe/As/Nxabu+KKtrorkQ6uQENBEKfHeIQBACwORs231u+o9/pM7y85ZlZhnNY iJziZ4P5W9lD5cwcEUFgTt1upUmjjSMWr5x4HL6o5jZeKOQMxiYP+8qA8OPEM6fzemS1Uj9M 6RXUaoUZFrcKD6BvneyyKuGgNa9bQfTG0aDOqaxy4lYFNcHVeo9sXJ+6adVxlCo/GzZ6zznn nwADBQP+IZQoao7aCFkZOVk8F5AW9Iiz0hk1trdCw88vD5fPMqcLxOQEsKrHAjibTWyOy1il 9zgLyVjcBzOs+v6UvbcJRybyaITC7j4IFPr78euVup/AeL+A9ay+ZWKHMFzALD+VjLyYAiRL w2MBjdqAKbPh2Ei1HXJoOX5JTWWnMRsBey+ISQQYEQIACQUCQp8d4gIbDAAKCRAgyjEKU36n /YssAKDVrEroZMSci018ipG4q6w11TsriwCghwCwX0isavqXJTbw10hwJePlDns=
Message-ID: <>
Date: Wed, 16 Oct 2019 12:51:57 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
Archived-At: <>
Subject: Re: [babel] Yangdoctors early review of draft-ietf-babel-yang-model-03
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 16 Oct 2019 10:52:07 -0000

Hi Mahesh,

Dne 16. 10. 19 v 0:43 Mahesh Jethanandani napsal(a):
>> The draft is well written with an informative overview of the YANG module
>> sections. Maybe some set of example configuration data (some Appendix) would be
>> useful.
> I am not sure of the ask. Could you elaborate?

ahh, sorry, my fault - I have missed the appendixes - that actually already contain exactly what I meant.

>> Regarding the YANG module, I have just a few notes:
>> - In multiple description texts, nodes are referenced by a path in format with
>> dashes (e.g. babel-mac-default-apply). This format is confusing especially when
>> some element in the path contains dash(es). Why the common format with slashes
>> is not used?
> Ok. I can see that the text can be confusing. The text is from the information model (I-d.ietf-babel-information-model), where the name of the node just happens to follow the path in the YANG model. I can modify the text to use the node names in the YANG model itself.

I would prefer it. For example the mentioned babel-mac-default-apply - if you're not familiar with the tree, you don't know if to search for babel/mac-default-apply, babel/mac/default-apply or babel/mac/default/apply node.

>> - grouping routes
>>  - just think if the grouping is reusable - in the module itself, the grouping
>>  is used just once and needless creation of groupings decrease module
>>  readability
> It is a grouping so that it can be used with routing policy module.


>> - babel/interfaces/metric-algorithm
>>  - the text "The value MUST be one of those listed in
>>  'metric-comp-algorithm'." in description just duplicates the type's
>>  information (identityref with metric-comp-algorithms base).
> How about if it says “The value MUST be one of those listed in ‘metric-comp-algorithm’ typedef.”?

I see no such typedef in the module (neither in the information model). This is probably again a confusion between information model and yang model. If it refers to information model, I don't think it is a good idea, but it should be at least explicitly stated. If it refers to the leaf's base identity, I don't think that it is necessary to duplicate this information (but I'm not strongly against it, it just make me believe that actually it is some additional restriction to the type itself), because there is already:

type identityref {
  base metric-comp-algorithms;

which also says that the value MUST be one of the identities based on metric-comp-algorithms. And technically, such identities can be added so the possible values do not need to be listed in some text/list/typedef. If you really want to limit the values to some static list, the type should be actually enumeration.

>> - babel/interfaces/mac-key-sets
>>  - what does the babel-mac-key-sets in description refer to?
> It now says:
>             "List of references to the mac entries that apply
>              to this interface. When an interface instance is
>              created, all mac instances with default-apply 'true'
>              will be included in this list.”


>> - babel/interfaces/stats/reset
>>  - I'm confused, is it per-interface reset (as placed in the module) or
>>  system-wide interfaces stats reset (as information model defines it?). If it
>>  is the system-wide reset, why tha action cannot be placed in babel container?
> The action statement defines an operation connected to a specific container. What would it mean to have an action statement on the whole babel container? Reset everything?

but that is what the information model says, right? System-wide reset of the stats.Or is the meaning different?

> Even though the information model calls for a system-wide reset of stats, the model defines it at a per-interface level. It can be called recursively for every interface instance to realize a system-wide reset of stats.

that's what I miss in the action description. There is what the reset is supposed to do by information model (system-wide reset) and that in YANG the reset action has to be placed where the action needs to be performed. So according to the description, the reset is in a wrong container because to perform system-wide reset, it probably don't need to be performed in a specific interface, right? There is no word about intention to change what the reset is supposed to do (reset of stats for the specific interface).