Re: Yangdoctors early review of draft-ietf-rtgwg-policy-model-09

Yingzhen Qu <yingzhen.qu@futurewei.com> Sat, 23 May 2020 20:21 UTC

Return-Path: <yingzhen.qu@futurewei.com>
X-Original-To: rtgwg@ietfa.amsl.com
Delivered-To: rtgwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 369EA3A0E93; Sat, 23 May 2020 13:21:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.091
X-Spam-Level:
X-Spam-Status: No, score=-2.091 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_H2=-0.001, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=futurewei.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 rbB9unultN2v; Sat, 23 May 2020 13:21:30 -0700 (PDT)
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2117.outbound.protection.outlook.com [40.107.220.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 54E1C3A0BD2; Sat, 23 May 2020 13:21:30 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GksATEuviNEMx9q3HZSchKai9fm003hUAQm6byunuj+Ot26lTjzYTH/NCukOsB21AjIHJoPYBz+VJfhBskpsbihAJVxxf9uCLCkmVBzxxu1BerHogUlDaRHG4rO3A6r9svBAthQi0O4m5BNq6ANTDedhsv4CqQQRXtRrWMRcSLlIuGYK2lAuff/TF68qNtvwxHEl69SbWX29u597t3mNwLjU1TK5EiPpgHg4cvd2jF0ApeePRq9siHvb4qH+j/ZxO8NRWCBNgYt2HcCEwyVhyt78+oFuuGB6XwT6RUhLm24rcsUAYV7XKF83EnsEeUKZXzXgKLNL/DVdo8t27AHG0Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t4Qn6h+t9rdt/rPWx9FUNemB2QN/J9yBwgtcNQwhrbU=; b=WCYSgMN6XhAJHW+SxGgbTBLMrHuVIdRGKFidzTn2B1m/NhGqZBQ3iZDyjNw65UNP0JsRbMZE4IX/wFpZE86r2fyqxxbFOJeWcct/PIruIe6S3DyVSqAeVFB8BTqihaTaIxywoX/8+X/lEtFT8sKmrLhuBcA9Z5Zrvmb2IunvkJ29Ne5DIGnoNtfwXtgHL5TYFvy50W0i15Q79RzBz2MyHHPoa94Bpw2XuIGQLF375zOmlQewpkB2528dzxwn62U0pppD+cd0uodrWkU61APRVUKHEPSzmBoHRQvmK833u+2jh1vZCtzrYpUw5gURLPFiS4CVSvu0TeyIzXCiae+f5A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=futurewei.com; dmarc=pass action=none header.from=futurewei.com; dkim=pass header.d=futurewei.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Futurewei.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t4Qn6h+t9rdt/rPWx9FUNemB2QN/J9yBwgtcNQwhrbU=; b=P2oU5Q9spuXpEAFz9weze56ABjf9B5Lvdl8/4BPDix3SKg1ZgD1rAVGg4cVjUENAa1+omE+Rj7bzK2sqAs3zw3bnhwbZf1TX+RBFmLW8xB7t3957rUX8NTUUEtyPuNOegpCtxzsa4u2pe7i3gfqZ2gUrq/pKRy6kFPU6r8SdAVE=
Received: from BY5PR13MB3048.namprd13.prod.outlook.com (2603:10b6:a03:188::21) by BY5PR13MB3079.namprd13.prod.outlook.com (2603:10b6:a03:182::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.9; Sat, 23 May 2020 20:21:20 +0000
Received: from BY5PR13MB3048.namprd13.prod.outlook.com ([fe80::69ad:a0d4:1045:5f7e]) by BY5PR13MB3048.namprd13.prod.outlook.com ([fe80::69ad:a0d4:1045:5f7e%7]) with mapi id 15.20.3045.009; Sat, 23 May 2020 20:21:19 +0000
From: Yingzhen Qu <yingzhen.qu@futurewei.com>
To: Mahesh Jethanandani <mjethanandani@gmail.com>, "yang-doctors@ietf.org" <yang-doctors@ietf.org>
CC: "draft-ietf-rtgwg-policy-model.all@ietf.org" <draft-ietf-rtgwg-policy-model.all@ietf.org>, "rtgwg@ietf.org" <rtgwg@ietf.org>
Subject: Re: Yangdoctors early review of draft-ietf-rtgwg-policy-model-09
Thread-Topic: Yangdoctors early review of draft-ietf-rtgwg-policy-model-09
Thread-Index: AQHWLmaRqyIyvvjQ2kuvlHXV5sAvRKi1rUYA
Date: Sat, 23 May 2020 20:21:19 +0000
Message-ID: <2735CC19-B499-468A-9B31-C8F9D57802F2@futurewei.com>
References: <158995210745.32133.15039309101330577713@ietfa.amsl.com>
In-Reply-To: <158995210745.32133.15039309101330577713@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.1e.0.191013
authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=futurewei.com;
x-originating-ip: [2601:646:9500:c900:98c5:2baa:1d73:8612]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ba5c023e-77e0-4fbe-78c7-08d7ff56daa6
x-ms-traffictypediagnostic: BY5PR13MB3079:
x-microsoft-antispam-prvs: <BY5PR13MB3079079BF3E6AEBF4AC7D68BE1B50@BY5PR13MB3079.namprd13.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-forefront-prvs: 0412A98A59
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 0MfcZOOoO+ndp2YCWUpqAyVlHOAAd2rUS1VCfpxuRUhDkC/UCVyJUsscNNubOLgLBVqBzts76bSNhpEsJHmoVg2pgsbq+Zn53A/NdLctxesv4/152qm/ops1Qi3ELZLQsAcEzT7EZMyzsSdyOOc8s3M+rrakti3tHvhE3In6tUUc5nryVgGne342pMPZphtDZOZb+hl3C1OIsFeJ189+bzFPgWAdIvVZZk7qcntHnjnqu+wTC0VcUuCm1/TiUd8baL1YUSd9Svv257cGshjgF1tKOFnL4v8hpua9lmZEDftQMOz5Io9fHdJ5vYBNC78LZVaE/REMrl8XdGwgxW4gD9pBrsuMJVMax7c6ZQe6jmUPIyUzaUmIKmOJo5KpdGrn97yUmeA0VLBtqLDVAbPKcQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR13MB3048.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39840400004)(396003)(376002)(366004)(346002)(136003)(478600001)(2906002)(6486002)(6512007)(71200400001)(33656002)(44832011)(66556008)(66476007)(66446008)(66946007)(45080400002)(64756008)(2616005)(36756003)(5660300002)(110136005)(6506007)(4326008)(186003)(86362001)(76116006)(966005)(8936002)(316002)(8676002)(54906003); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: 4rVkGR8CTm2WxXg2R/AP6IKRUC2MT9j3gVj1JOktirOd9lC1zLxAt2vFHZasWXsoACeQRhmcV5M/ub3YsAQR5nRjQjiA5PtqNV6QiEW13RrQEiT2H3FcGdde+7syXN4xjg0UOjakoCGqxawqMuncqBshxFCJ1F5GCsy1s75ZGtGe8Cier1ZYRgQcX44DUXhGu0FwyW1t266nF/ZafciwO73x8Td+rzE8sMn8DgZb9rpk2/2fhOAS0wbzJgW54Ijjy9cGyEIQJiHavUKUSagt+EbEv0hRB9i5wpm5ZxU2/Te9g6H/uNs5TGjB2lr3IXyy5w2QpQNmwQlUQE6xVqSiRjwkCbGWglcOui1gtQC91FsUHYq2FjUW8ZtHD5eJ+X58wEElppwxhIR6HmNXieo95dkmRLbEtns4v6w48MN9l5aQFZLK5LWIIBsyMwGD43bSmhq9lds1HsPCaHSdt0i4Jlo2+3YCVNML0zi+FQhWTllCf116ARWgn61iQioJzyjRum8B9dNvHQTZcNCmGFz+0hRNzsHpE8HJpjqUHQpOJiflxShucnokyamUwhYR7vPt
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <D74AA59DE36DC442877A5E8F55478CC4@namprd13.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: Futurewei.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ba5c023e-77e0-4fbe-78c7-08d7ff56daa6
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2020 20:21:19.4938 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 0fee8ff2-a3b2-4018-9c75-3a1d5591fedc
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ce+nkGInoZP2RI6Vi6PEqMJLHJXzZm7dGMwIQ6QRrTJy2iIQoTQ/6z+/TdygEhh4iW0cUMDoN5t8H1aE0k/IXQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB3079
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtgwg/9dJSBNqdzhWtCXGdSX17ioN-kkM>
X-BeenThere: rtgwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Routing Area Working Group <rtgwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtgwg/>
List-Post: <mailto:rtgwg@ietf.org>
List-Help: <mailto:rtgwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 May 2020 20:21:34 -0000

Hi Mahesh,

Thanks for the review, very much appreciated.

I submitted -10 version to address your comments: https://datatracker.ietf.org/doc/draft-ietf-rtgwg-policy-model/ 

Note: There are YANG validation errors because yanglint can't find model "ietf-if-extensions", not sure why.
yanglint SO 1.6.7: yanglint --verbose -p {rfclib} -p {draftlib} -p {tmplib} {model} -i:
err : Data model "ietf-if-extensions" not found.
err : Importing "ietf-if-extensions" module into "ietf-routing-policy" failed.
err : Module "ietf-routing-policy" parsing failed.

Please see detailed feedbacks below inline starting with [YQ].

Thanks,
Yingzhen

On 5/19/20, 10:21 PM, "Mahesh Jethanandani via Datatracker" <noreply@ietf.org> wrote:

    Reviewer: Mahesh Jethanandani
    Review result: On the Right Track
    
    This review is looking at the draft from a YANG perspective. With that said, I
    have marked it as on the right track, because of some of the points discussed
    below.
    
    Summary:
    
    This document defines a YANG data model for configuring and managing routing
    policies in a vendor-neutral way.
    
    The description in the document and in the model is well written and easy to
    understand.
    
    Nits
    
    1. Please run the spell checker on the document.
[YQ]: fixed

    2. Indentations in the YANG model are not consistent. There is at least one
    place in the definition of 'grouping neighbor-set' that needs fixing. 
[YQ]: fixed
3.
    Consistency in how the description statements are written. Most of the
    descriptions start on a new line, except for a few places where they do not. 
[YQ]: fixed
4.
    The match-set-options-type defines enums as 'all', 'any' and 'invert'. Then why
    use ALL, ANY (all caps) when describing them? Could you use single quotes (as
    above) around them when referring to the definition? 
[YQ]: fixed.

5. Remove unnecessary
    empty lines in the model.
[YQ]: Done.
    
    Comments:
    
    Section 1 - Introduction:
    
    The document does not mention whether the model is YANG 1.0 or a 1.1 model. It
    includes both RFC 6020 and RFC 7950 even though the actual YANG model clearly
    states that the yang-version is 1.1. Please remove reference to RFC 6020.
[YQ]: removed reference to RFC 6020
    
    The document includes a section on Terminology and Notation. However it does
    not define what is a "routing policy" or provide a reference to it.
[YQ]: I'm not sure there is a standard definition of "routing policy". I'll do some
research on this and see whether we should add it to the terminology.
    
    Section 8 - Security Considerations:
    
    The security considerations section needs to follow the guidelines outlined in
    Section 3.7 of RFC 8407.
[YQ]: this section has been rewritten.
    
    Section 9 - IANA Considerations
    
    The IANA considerations section needs a complete rework. Please see Section 3.8
    of RFC 8407 or see any of the many drafts/RFCs that have samples of what needs
    to go into that section.
 
[YQ]: this section has been rewritten.
   
    Section 10.1 - Routing policy model
    
    The model uses a lot of groupings, most of them used only once in the model.
    That makes the model difficult to understand. Unless these groupings are meant
    for use by other models, they should be folded into the main container. Take
    this grouping for example:
    
         grouping policy-definitions {
           description
             "This grouping provides policy definitions";
    
           leaf name {
             type string;
             description
               "Name of the top-level policy definition -- this name
               is used in references to the current policy";
           }
         }
    
    For one the description of the grouping is not correct. Secondly, it is used
    only once in the model and that too to define a key of a list.
   
[YQ]: This model was initiated by OpenConfig, we've removed some groupings 
Since this become an IETF draft. I removed "policy-definitions" and "policy-statements" 
groups.
 
    The YANG model imports multiple models from other drafts. It provides normative
    references to the imported models in Section 2.2. (A nit here is that it
    missing the cross-reference in the table for if-l3-vlan), but does not provide
    references to them in the model. See Section 3.9 of RFC 8407. Please add
    something like this in the model.
    
    import ietf-inet-types {
      prefix "inet";
      reference
        "RFC 6991: Common YANG Data Types.";
    }
[YQ]: fixed.
    
    Please drop <mailto:....> and just keep the e-mail address. That tag works only
    when embedded within a HTML document.
 [YQ]: do you mean the "editor" in the model? 
  
    The description section splits the description of the model by inserting the
    Copyright statement in the middle. Can that statement be moved so that the
    actual description of the model is together.
  [YQ]: fixed.
 
    The model defines a lot of identities some of which are not used in the model
    or used at all. Would it not be better to have those identities defined in the
    individual routing models that augment this model? The BGP YANG model does not
    use any of the identities defined in this model.
 [YQ]:  OSPF and ISIS will use these identities as "metric-type". 
   
    Can the following comment be made part of the description statement of the
    typedef?
    
           /* This typedef retained for name compatibiity with default
              import and export policy. */
[YQ]: fixed.
    
    s/compatibiity/compatibility/
 [YQ]: fixed.
   
    I believe masklength is two words. s/masklength-lower/mask-length-lower/ and
    the same for masklength-upper. Also update the description.
[YQ]: fixed
 
    A pyang compilation of the model with —ietf and —lint option was clean.
    However, there seems to be an issue with the example in Section 11. Instead of
    actually including an example, it is showing the path to what should have been
    the example. I was therefore not able to validate the example against the model.
[YQ]: I can't find this example in OpenConfig Github anymore, so removed this section.

    A idnits run of the draft reveals a few issues. Please address them.
    
       Checking nits according to https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fid-info%2Fchecklist&amp;data=02%7C01%7Cyingzhen.qu%40futurewei.com%7C5fbfd5e232374ca2774d08d7fc7db255%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637255489110446326&amp;sdata=as3LAkcLhaEt51NkRKsiuYSxa5HxXV0zOQ0FAlL6uuc%3D&amp;reserved=0 :
      ----------------------------------------------------------------------------
    
      == There are 4 instances of lines with private range IPv4 addresses in the
         document.  If these are generic example addresses, they should be changed
         to use any of the ranges defined in RFC 6890 (or successor): 192.0.2.x,
         198.51.100.x or 203.0.113.x.
  [YQ]: fixed

      == The document doesn't use any RFC 2119 keywords, yet seems to have RFC
         2119 boilerplate text.
    
      Checking references for intended status: Proposed Standard
      ----------------------------------------------------------------------------
    
         (See RFCs 3967 and 4897 for information about using normative references
         to lower-maturity documents in RFCs)
    
      == Unused Reference: 'I-D.ietf-netmod-sub-intf-vlan-model' is defined on
         line 1620, but no explicit reference was found in the text
    
      -- No information found for draft-ietf-netmod-intf-ext-yang - is the name
         correct?
    
      -- Possible downref: Normative reference to a draft: ref.
         'I-D.ietf-netmod-intf-ext-yang'
    
      -- No information found for draft-ietf-netmod-sub-intf-vlan-model - is the
         name correct?
    
      -- Possible downref: Normative reference to a draft: ref.
         'I-D.ietf-netmod-sub-intf-vlan-model'
  
[YQ]: there is dependency on both 'I-D.ietf-netmod-intf-ext-yang' and 'I-D.ietf-netmod-sub-intf-vlan-model'.

         Summary: 0 errors (**), 0 flaws (~~), 9 warnings (==), 5 comments (--).