Re: [yang-doctors] Yangdoctors early review of draft-ietf-rtgwg-policy-model-09

Yingzhen Qu <yingzhen.qu@futurewei.com> Fri, 29 May 2020 22:16 UTC

Return-Path: <yingzhen.qu@futurewei.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 F2CB23A10E3; Fri, 29 May 2020 15:16:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Level:
X-Spam-Status: No, score=-1.989 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, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_MSPIKE_H2=-0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] 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 PEkpLxsYGLkc; Fri, 29 May 2020 15:16:26 -0700 (PDT)
Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700094.outbound.protection.outlook.com [40.107.70.94]) (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 22F983A0F0F; Fri, 29 May 2020 15:16:25 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WyWo80Mt6VNDx/dNswsSL4YYor7seNZh4V72/kuVUqtAg+kNw1bnUGvsGSHrDcjQwau0SUGVC+ezAOddPxFHS+GAoMs+YAk5i8fGFxz33jy/Mn8ZMugT1TRv3btFRXYQTwpc0A1YGazGGuznOlvevFWDdhYDMMK9oQjY20GLI+pEhhfy6KigozD3O/Sj2LMA47lSKUBtQPH48iwPuH69rEbXY05oVLfkFt/vov1f/JAQipd3lS9YC/2Leig+0reaRIroWV6xSnvhHUjQttyjbIKs3RjxJW7X64AS65dJgiF4oqQt2G53cZ0fnfNz+cV2rHfJGaNl/vgA9K+9HmDMXQ==
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=HBxnDwmDeYdYDwOXizbkSeKYYF4HXVmWDyHsGZLp9z8=; b=dDS4o1uNbXOHN13mzawsD7M7qg6E88930SiiP/CZJSNnzZ9pSUhfrvPmBTB57WU/k4YBqxqqcIXbzUmOPGtSlKAhHhi0895BZaehpKJjT0g5/wIC0Cz/POH6bb9j76KEr/FFVkCaxN33977AXA45i94JAfjBh0D2tp2KBybkJLQSatJds+6PLols7ur17ZR5QMh+W0RxEamqBnB6Cg1x8l5lsQYThNMeY2PZQu/Qu98oBmtEGC5K0QKnsLlyafqiK81v6lVf6DJBV9CL1W2lONLVL0Ry+EjkOumdzwFKwZKl9QnJC90qer1xvJbYFo64eW3ksNN6d+/F4li4jbFAQQ==
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=HBxnDwmDeYdYDwOXizbkSeKYYF4HXVmWDyHsGZLp9z8=; b=fBD4J6TjFcyxfT+x0H0Q+33vMcLSzpvxy6qfWRJsmq695EsETq0rGN0H+oGXSQVnbZkZiSSiXjNzSC8C1HZGVIPxQiD5Q1WHEVqTTcd2k/mA3l7mzm2mZDJ0QSkQ//1LVrP+GScToki/9n13hvEZhHTJBWxAu1+fbbHO7KSKsJ0=
Received: from BY5PR13MB3048.namprd13.prod.outlook.com (2603:10b6:a03:188::21) by BY5PR13MB3174.namprd13.prod.outlook.com (2603:10b6:a03:182::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.9; Fri, 29 May 2020 22:16:23 +0000
Received: from BY5PR13MB3048.namprd13.prod.outlook.com ([fe80::28f0:8a33:3418:b39b]) by BY5PR13MB3048.namprd13.prod.outlook.com ([fe80::28f0:8a33:3418:b39b%4]) with mapi id 15.20.3066.010; Fri, 29 May 2020 22:16:23 +0000
From: Yingzhen Qu <yingzhen.qu@futurewei.com>
To: Mahesh Jethanandani <mjethanandani@gmail.com>
CC: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "draft-ietf-rtgwg-policy-model.all@ietf.org" <draft-ietf-rtgwg-policy-model.all@ietf.org>, "rtgwg@ietf.org" <rtgwg@ietf.org>
Thread-Topic: Yangdoctors early review of draft-ietf-rtgwg-policy-model-09
Thread-Index: AQHWLmaRqyIyvvjQ2kuvlHXV5sAvRKi1rUYAgAHrL4CABGJ9AIAAkUAAgAKvOIA=
Date: Fri, 29 May 2020 22:16:23 +0000
Message-ID: <0EA1B88E-EA58-423C-8529-BD4305F8566A@futurewei.com>
References: <158995210745.32133.15039309101330577713@ietfa.amsl.com> <2735CC19-B499-468A-9B31-C8F9D57802F2@futurewei.com> <B5D48696-88FC-4BF6-9B2E-3BF556520D58@gmail.com> <035C70FF-D60E-4269-A8EE-582D139C2A4C@futurewei.com> <38A3E237-5300-40C4-BB85-1DEB81915117@gmail.com>
In-Reply-To: <38A3E237-5300-40C4-BB85-1DEB81915117@gmail.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:89be:72f3:5da7:2102]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d2a6610b-510c-43a9-655d-08d8041dec1f
x-ms-traffictypediagnostic: BY5PR13MB3174:
x-microsoft-antispam-prvs: <BY5PR13MB31745BDE310093C3BEC73464E18F0@BY5PR13MB3174.namprd13.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 04180B6720
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: VGnkHqqTVA8eAV/1ehrH5Cr7JO7hTp2ekHp1H7R/eefXDDAKf6rrLhdZEZVDnxlKLgYsre+UVqvTx+koOLFldmQc57DTm5p8Wy8nIbFLn35AfNuf5cK/fDBbtq/Le78l/ldp/KZKGkkftM7zetxKiYm2xDVNRAlKOmUZOrMqlfCJxjMZ0R99MtNOmrTsfhi/XrdSGwYgFs5KvYiGBUv5enAkvLCb1wrgtVxVGnm5IU3+D0EkTaFSN9KdLclbttV1+AMr8WXosbuXzzB2DlyJVS72FeugLYTk5Smv/oRswc5hWAeZllMEy88gtUAjCYNk2NchA3xTbojtvhGrNuao3TyzmKmWZMCoZIu7rXf7TQOnmHDr4lLDVRjkQgG97f4h/tKrNPR39xYvBS4WapxDDw==
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)(376002)(396003)(346002)(39840400004)(136003)(366004)(54906003)(6506007)(966005)(6916009)(478600001)(53546011)(36756003)(166002)(186003)(71200400001)(76116006)(44832011)(8676002)(8936002)(64756008)(9326002)(66556008)(66446008)(4326008)(2616005)(316002)(66946007)(66476007)(2906002)(6486002)(5660300002)(6512007)(33656002)(83380400001)(86362001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: updKw0WLtSiWqeE24aO4mnSBFAKsIEiMnKr7eiOpDxsyA8bSo6dd7P4I3y5g+etAT4yayttSFEp/3PPuJSSmpeOdzj09+5DBilsFhTSP3l790q9350MR9qsPCzKxu2CuVsjWlGTsD7EoV8y6YU0I8xCqhFiRzEwxc1dOznmLdbKV8/1dCL3ufUu0r0/siDx5DQuuqrGicBe+0lyxMiPuHblqW9gxl8lIDyot4yPuvJ96akH9iZfmofnsdF4yiWwO7hMlHUoHrocCx3ZBTnOBvC1WYzot/mYfTXAkaw44sHp8jN8+UtOW3SoLLm9r+GEL5YWSc5oVTHv/ktibftBw/Vqk56omLa8rV/n7ttOxhJu7gIfMDq5L82qC0Kyg9i+S06+R0oMtVbRb7XILReG3AxYClEs0Rg0qCW04aqaq4gCX+Kuht9lQ9iM71on58YwsEgD/cDyzHLl9OQXgWycLL0DPVw90+fCqOuH5THdtqSiXdaKDTm/OsMSRzEmOnz8icnWBhXryT2lP4UFzliIzTVinWg7J4GVKa2XGBydTjsrw4zhsOTrDfpSk5qy9ryUW
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_0EA1B88EEA58423C8529BD4305F8566Afutureweicom_"
MIME-Version: 1.0
X-OriginatorOrg: Futurewei.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d2a6610b-510c-43a9-655d-08d8041dec1f
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 May 2020 22:16:23.1850 (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: 7tjvf9SimErM/Cp5ysWSdFqB6z5DnQoWVM4eJ56PTEgoTx9RkEAeecso6LFB3zUYhICArx1vXMR7ToJfP+BPWw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB3174
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/WfGeM48qgapI44cRSU60jIyii6k>
Subject: Re: [yang-doctors] Yangdoctors early review of draft-ietf-rtgwg-policy-model-09
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, 29 May 2020 22:16:29 -0000

Hi Mahesh,

Thank you for your thorough review. I’ve uploaded version -12: removed “source-protocol” from the example and added “Routing Policy” definition.

Thanks,
Yingzhen

From: Mahesh Jethanandani <mjethanandani@gmail.com>
Date: Wednesday, May 27, 2020 at 3:17 PM
To: Yingzhen Qu <yingzhen.qu@futurewei.com>
Cc: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "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

Hi Yingzhen,

Thank you for addressing my comments. I think we are down to the last few.

Thanks for including the example. It really helps in implementation. However, I believe we have a bug. On the command line below, all the YANG models published by IETF reside in my ~/git/iana/yang-parameters directory and the example you included in the draft is in the file called example-routing-policy.xml. On running the command, I get the following error:

% yanglint -s -i -t auto -p ~/git/iana/yang-parameters/ ietf-routing-policy@2020-05-26.yang<mailto:ietf-routing-policy@2020-05-26.yang> example-routing-policy.xml
err : Failed to resolve identityref "bgp". (/ietf-routing-policy:routing-policy/policy-definitions/policy-definition[name='export-tagged-BGP']/statements/statement[name='term-0']/conditions/source-protocol)

That is because you do not have “bgp” defined anywhere in your module. The only definition for that exists in ietf-bgp module. But you cannot include that module, because it creates a circular dependency (ietf-bgp depends on ietf-routing-policy).

Luckily for you, ‘source-protocol’ is not a mandatory field, so if you remove the following line in the example, the example is validated.

              <source-protocol>bgp</source-protocol>

For the remaining point see inline.


On May 27, 2020, at 1:36 PM, Yingzhen Qu <yingzhen.qu@futurewei.com<mailto:yingzhen.qu@futurewei.com>> wrote:

Hi Mahesh,

Thanks for your nice and patient review. I’ve uploaded version -11 to address your comments.

Major changes:

  *   Removed groupings only used in the model and not meant to be used later by augmentations
  *   Added an xml example in section 11.
  *   Fixed the cross-reference issue.
  *   Changed the “mailto” in the model to “Email”

Looking at the terms we have so far in section 2, I don’t think it’s necessary to add a definition for “routing policy”. But this is open for discussion.

It might be obvious to folks who know and understand routing what "routing policy" means. But it is not obvious to anyone who knows YANG modeling what it means. I am not going to hold up the review because of this, but I would highly encourage the authors to come up with a definition and include it in the draft.

Cheers.



Thanks,
Yingzhen

From: Mahesh Jethanandani <mjethanandani@gmail.com<mailto:mjethanandani@gmail.com>>
Date: Sunday, May 24, 2020 at 11:39 AM
To: Yingzhen Qu <yingzhen.qu@futurewei.com<mailto:yingzhen.qu@futurewei.com>>
Cc: "yang-doctors@ietf.org<mailto:yang-doctors@ietf.org>" <yang-doctors@ietf.org<mailto:yang-doctors@ietf.org>>, "draft-ietf-rtgwg-policy-model.all@ietf.org<mailto:draft-ietf-rtgwg-policy-model.all@ietf.org>" <draft-ietf-rtgwg-policy-model.all@ietf.org<mailto:draft-ietf-rtgwg-policy-model.all@ietf.org>>, "rtgwg@ietf.org<mailto:rtgwg@ietf.org>" <rtgwg@ietf.org<mailto:rtgwg@ietf.org>>
Subject: Re: Yangdoctors early review of draft-ietf-rtgwg-policy-model-09

[Trimming the list to open issues]

Hi Yingzhen,



On May 23, 2020, at 1:21 PM, Yingzhen Qu <yingzhen.qu@futurewei.com<mailto:yingzhen.qu@futurewei.com>> wrote:

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/<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-ietf-rtgwg-policy-model%2F&data=02%7C01%7Cyingzhen.qu%40futurewei.com%7C6ec8621912f64640bd2208d8028baff0%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637262146270083465&sdata=g07tQ8sUtiRs7rQqf3tCDBTfp6Ya0q6j681QIxZ3duc%3D&reserved=0>

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.

ietf-if-extensions is part of the draft-ietf-netmod-inft-ext-yang draft, which is still a draft. It should ideally be in the {draftlib} path variable. I would suggest a open an issue with the tools team to have them track it.

I am assuming of course that you are able to validate the model locally on your machine.
…



   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.

Looking at how the draft describes it, how about something like this?

“A routing policy defines whether a routing protocol imports a route into the routing table, modifies it, or exports a route from the routing table."

…



   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 general rule is that if the grouping is used only once in the model, and not meant for use outside the module, that it should not be a grouping.

For example, ‘grouping neighbor-set’ is used only once in the model, and I doubt it is meant for use outside of this module. That grouping should be collapsed into the model where it gets used. Same for ‘grouping tag-set’. These are just two examples. There are many more.




   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),

A nit. if-l3-vlan is still missing the cross-reference (and the hyperlink) to the draft. Also why idnits is giving you an error at the bottom.



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?

I meant to say you should drop the word “mailto:" from the list of e-mail addresses of the editors. That tag works inside a HTML document, not inside a YANG model.




   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.

Hmm. That leaves the model without any examples, and examples are important.

I was able to find the example in an earlier version of your own draft (01). I would suggest that you take that example and modify it to make it compatible with the latest version of the model. If you need help, let me know.




     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

The reason you are getting this error is because you are lacking a normative reference to I-D.ietf-netmod-sub-intf-vlan-model in the document. Goes back to the nit I point up earlier.

I would suggest that once you have fixed all the issues in the draft, that you re-run idnits locally on the machine.




     -- 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 (--).