RtgDir review:

Ravi Singh <ravis@juniper.net> Fri, 09 February 2018 13:36 UTC

Return-Path: <ravis@juniper.net>
X-Original-To: rtg-bfd@ietfa.amsl.com
Delivered-To: rtg-bfd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 226A3120726; Fri, 9 Feb 2018 05:36:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 CcTfsvDmPvMk; Fri, 9 Feb 2018 05:36:22 -0800 (PST)
Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 4E84B126579; Fri, 9 Feb 2018 05:36:22 -0800 (PST)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w19DYPTt027271; Fri, 9 Feb 2018 05:36:22 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : content-type : mime-version; s=PPS1017; bh=bBWm14kgJSVLkYoQnJ0ynhXZQcd5rTiYTrOQXaWENvo=; b=jBe786sS31+Ef8cGbBG/6/BU1RFVM9RXlUH+sLhGIKSuTLoSIcGOt0xnzSFokKgE6XxJ KOYAYPpARaeRUYtoGR9t3TNrSDg86Tm4wRShLzKLaicQpRvxJrlansjoeNAAsAsMD3c6 gWLj9KaEJz3u7+koAGr52N4ivqkEPGQT1xlhtwYpsqHzzdGeJPZkwQqZQ3ZD0n+gjRme 7dIS+ssjRUSARkRqYjBKjpYf4NLQbwsjnndmffJNKuw23ADowF6gW4l215fYg4dIbYHu tyQ6L09NJPxrC+iI62DrxnYDw36rL5hsZr09GMQEI2yT5tICZmn8rG1lP3d8tJfMMKZQ pA==
Received: from nam01-by2-obe.outbound.protection.outlook.com (mail-by2nam01lp0175.outbound.protection.outlook.com [216.32.181.175]) by mx0a-00273201.pphosted.com with ESMTP id 2g1c4nr1tk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 09 Feb 2018 05:36:21 -0800
Received: from CY1PR05MB2521.namprd05.prod.outlook.com (10.167.10.136) by CY1PR05MB2778.namprd05.prod.outlook.com (10.167.18.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.3; Fri, 9 Feb 2018 13:36:20 +0000
Received: from CY1PR05MB2521.namprd05.prod.outlook.com ([10.167.10.136]) by CY1PR05MB2521.namprd05.prod.outlook.com ([10.167.10.136]) with mapi id 15.20.0506.007; Fri, 9 Feb 2018 13:36:20 +0000
From: Ravi Singh <ravis@juniper.net>
To: "rtg-ads@ietf.org" <rtg-ads@ietf.org>
CC: "rtg-bfd@ietf.org" <rtg-bfd@ietf.org>, "rtg-dir@ietf.org" <rtg-dir@ietf.org>, "draft-ietf-bfd-yang@ietf.org" <draft-ietf-bfd-yang@ietf.org>
Subject: RtgDir review:
Thread-Topic: RtgDir review:
Thread-Index: AdOhqoIHQ8/tn0ZITIGGnYvKorDfkA==
Date: Fri, 09 Feb 2018 13:36:20 +0000
Message-ID: <CY1PR05MB252142B6B09A610FB388FE3BABF20@CY1PR05MB2521.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [66.129.239.15]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; CY1PR05MB2778; 7:Mi5kR7rCPnmnoLhaooxrJsT7uKhav3l994crGmjDbKD7eZY/rf8KYqlgXgIHq8A37tMAh/yqtMQKuiW4cAr9c5Y3Ce5Tom4At9snEsPEIGS8erucUD9Sdx0FlKz0SDBTuofur370BnZm5xelnPeZZiRrgiE4tql/erBe73bjx9Sk1PiatXPcSOa75Pr6S/7u/7c4wYqS8irY5CbNGuTFKJt/LFAyn3AqVNmUWVZmoLaxmZR0quiGOp5utovU5BCP
x-ms-exchange-antispam-srfa-diagnostics: SSOS;
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 9150a8fc-5cd6-411b-4695-08d56fc21a8e
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:CY1PR05MB2778;
x-ms-traffictypediagnostic: CY1PR05MB2778:
x-microsoft-antispam-prvs: <CY1PR05MB277840BD953C86CACED31BD6ABF20@CY1PR05MB2778.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(28532068793085)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3002001)(3231101)(2400082)(944501161)(10201501046)(93006095)(93001095)(6055026)(6041288)(20161123560045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:CY1PR05MB2778; BCL:0; PCL:0; RULEID:; SRVR:CY1PR05MB2778;
x-forefront-prvs: 057859F9C5
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(396003)(39380400002)(39860400002)(346002)(376002)(189003)(199004)(790700001)(66066001)(6116002)(6436002)(3846002)(4326008)(25786009)(450100002)(5640700003)(106356001)(55016002)(14454004)(236005)(54896002)(9686003)(2351001)(6306002)(5660300001)(97736004)(53936002)(2906002)(6916009)(105586002)(478600001)(2501003)(4743002)(7116003)(33656002)(8676002)(3660700001)(81166006)(5630700001)(3280700002)(81156014)(68736007)(8936002)(102836004)(99286004)(3480700004)(26005)(9326002)(2900100001)(6506007)(77096007)(59450400001)(316002)(186003)(54906003)(7696005)(86362001)(606006)(74316002)(7736002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR05MB2778; H:CY1PR05MB2521.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-microsoft-antispam-message-info: fu3mLgs+EkvBKPXMQ66jI+1ZH/f+/mAWCDo5CQs9QbB0oMWVSxhUKNJCiPMi9JwGgbe+INb0KgDMgM/3o27VOw==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_CY1PR05MB252142B6B09A610FB388FE3BABF20CY1PR05MB2521namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 9150a8fc-5cd6-411b-4695-08d56fc21a8e
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2018 13:36:20.2038 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR05MB2778
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2018-02-09_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1802090175
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-bfd/Eq6gzaTCKN_xtl3FTLWgPdIc02k>
X-Mailman-Approved-At: Fri, 09 Feb 2018 12:07:31 -0800
X-BeenThere: rtg-bfd@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "RTG Area: Bidirectional Forwarding Detection DT" <rtg-bfd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtg-bfd/>
List-Post: <mailto:rtg-bfd@ietf.org>
List-Help: <mailto:rtg-bfd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Feb 2018 13:36:26 -0000

Hello,

I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related drafts as they pass through IETF last call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to the Routing ADs. For more information about the Routing Directorate, please see ​http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir

Although these comments are primarily for the use of the Routing ADs, it would be helpful if you could consider them along with any other IETF Last Call comments that you receive, and strive to resolve them through discussion or by updating the draft.

Document: draft-ietf-bfd-yang-09
Reviewer: Ravi Singh
Review Date: 02/09/2018
Intended Status: Proposed standard



Summary: there is more commonality of info in the new modules listed in sections 2.6-2.10 than there are differences. So, I think it would be worthwhile looking at sub-abstracting things to avoid repetitive fields individually listed in the modules of section 2.6-2.10.

Details:
I've reviewed the draft. Most sections look good.
My comments below pertain to 2.6 to 2.10.
Section 2 says "Since BFD is used for liveliness detection of various forwarding
   paths, there is no uniform key to identify a BFD session.  So the BFD
   data model is split in multiple YANG modules where each module
   corresponds to one type of forwarding path. "
That is ok. However, this is causing too much repetition of info across the multiple modules.
There appears to be scope for modularization to not repeat the individual fields in describing them in every module that uses them.
Instead sub-modules should be considered & listed in one section which just augment the newly created modules of this draft wherever currently used.

Eg.
Separate sub-modules could be considered for:
A.
        +--ro session-statistics
        |  +--ro session-count?              uint32
        |  +--ro session-up-count?           uint32
        |  +--ro session-down-count?         uint32
        |  +--ro session-admin-down-count?   uint32

B.
           +--rw source-addr                 inet:ip-address
           +--rw dest-addr                   inet:ip-address
           +--rw local-multiplier?           multiplier
           +--rw (interval-config-type)?
           |  +--:(tx-rx-intervals)
           |  |  +--rw desired-min-tx-interval?    uint32
           |  |  +--rw required-min-rx-interval?   uint32
           |  +--:(single-interval)
           |     +--rw min-interval?               uint32
           +--rw demand-enabled?             boolean {demand-mode}?
           +--rw admin-down?                 boolean
           +--rw authentication! {authentication}?
           |  +--rw key-chain?    kc:key-chain-ref
           |  +--rw meticulous?   Boolean

C.
              +--ro path-type?              identityref
              +--ro ip-encapsulation?       boolean
              +--ro local-discriminator?    discriminator
              +--ro remote-discriminator?   discriminator
              +--ro remote-multiplier?      multiplier
              +--ro demand-capability?      boolean {demand-mode}?
              +--ro source-port?            inet:port-number
              +--ro dest-port?              inet:port-number
              +--ro session-running
              |  +--ro session-index?                uint32
              |  +--ro local-state?                  state
              |  +--ro remote-state?                 state
              |  +--ro local-diagnostic?
              |  |       iana-bfd-types:diagnostic
              |  +--ro remote-diagnostic?
              |  |       iana-bfd-types:diagnostic
              |  +--ro remote-authenticated?         boolean
              |  +--ro remote-authentication-type?
              |  |       iana-bfd-types:auth-type {authentication}?
              |  +--ro detection-mode?               enumeration
              |  +--ro negotiated-tx-interval?       uint32
              |  +--ro negotiated-rx-interval?       uint32
              |  +--ro detection-time?               uint32
              |  +--ro echo-tx-interval-in-use?      uint32
              |          {echo-mode}?
              +--ro sesssion-statistics
                 +--ro create-time?            yang:date-and-time
                 +--ro last-down-time?         yang:date-and-time
                 +--ro last-up-time?           yang:date-and-time
                 +--ro down-count?             uint32
                 +--ro admin-down-count?       uint32
                 +--ro receive-packet-count?   uint64
                 +--ro send-packet-count?      uint64
                 +--ro receive-bad-packet?     uint64
                 +--ro send-failed-packet?     Uint64

D.
           +--rw (interval-config-type)?
           |  +--:(tx-rx-intervals)
           |  |  +--rw desired-min-tx-interval?    uint32
           |  |  +--rw required-min-rx-interval?   uint32
           |  +--:(single-interval)
           |     +--rw min-interval?               uint32


E.

              +--ro sesssion-statistics
              |  +--ro create-time?            yang:date-and-time
              |  +--ro last-down-time?         yang:date-and-time
              |  +--ro last-up-time?           yang:date-and-time
              |  +--ro down-count?             uint32
              |  +--ro admin-down-count?       uint32
              |  +--ro receive-packet-count?   uint64
              |  +--ro send-packet-count?      uint64
              |  +--ro receive-bad-packet?     uint64
              |  +--ro send-failed-packet?     uint64

F.       In notifications:
        +--ro local-discr?                 discriminator
        +--ro remote-discr?                discriminator
        +--ro new-state?                   state
        +--ro state-change-reason?         iana-bfd-types:diagnostic
        +--ro time-of-last-state-change?   yang:date-and-time
        +--ro dest-addr?                   inet:ip-address
        +--ro source-addr?                 inet:ip-address
        +--ro session-index?               uint32
        +--ro path-type?                   identityref

Separate sub-modules for the above could be used to enable cleaner abstractions. The same could augment the modules of sections 2.6-2.10.

Regards
Ravi