Re: [RTG-DIR] RtgDir review:

Ravi Singh <> Thu, 22 February 2018 06:05 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A2604126D3F; Wed, 21 Feb 2018 22:05:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.71
X-Spam-Status: No, score=-0.71 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, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=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 BYL5MHn3ynLa; Wed, 21 Feb 2018 22:05:02 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id EDE51126C22; Wed, 21 Feb 2018 22:05:01 -0800 (PST)
Received: from pps.filterd ( []) by ( with SMTP id w1M63qBm030833; Wed, 21 Feb 2018 22:04:59 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=Q0N44fymQkvV1JqXhnJpQf5za4PRhk7s5y0DG/aV++k=; b=o1bIB3GOVfb8qt5JUCS99JK0gb1Ypk+nUuf5cXuDEudZMlBbNN7nnN4hHcRCwN0xMVJb aw3UnlN78YYJr6FkbV5FscRyqrv2F2BYB+SDCXl6Sv8t7q9N66DUHEzv0iqbEwWA521b NPh8j0anqBOzO9NKXNKqM/6ypAoQDcQARoL2fPNZtAGK5IQf4+d91LYUP8+6fzwK9D3O LpB+wF0a/72ggnKzha7FzYKuy5nZ8R1DRPR4ossegv5nYHydM+lUBQzXC4zlNO17+KK5 aWW2owI1yWCI4a4cVGJCgfkgLAMtQAVkmZnUy877qn798t9AT2SyC1wttqvcdSYSHZO9 Pw==
Received: from ( []) by with ESMTP id 2g9r7s804x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 21 Feb 2018 22:04:59 -0800
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.548.6; Thu, 22 Feb 2018 06:04:57 +0000
Received: from ([fe80::7c07:b141:6fc:17a2]) by ([fe80::7c07:b141:6fc:17a2%2]) with mapi id 15.20.0548.005; Thu, 22 Feb 2018 06:04:57 +0000
From: Ravi Singh <>
To: "Reshad Rahman (rrahman)" <>, "Acee Lindem (acee)" <>, "" <>
CC: "" <>, "" <>, "" <>, YANG Doctors <>
Thread-Topic: [RTG-DIR] RtgDir review:
Thread-Index: AdOhqoIHQ8/tn0ZITIGGnYvKorDfkAABkKqAAG+JwQACDKuFQA==
Date: Thu, 22 Feb 2018 06:04:56 +0000
Message-ID: <>
References: <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BN3PR05MB2514; 7:mLyHxDckzrQhPQ09pvekKJT1Gq3mkNnAXMcgK8b1+AAhWhVMw6zOvrmgxN/Xr9ZVrWQuYyGnakXEIt0RfzzVXv+GnMfL+72OHX7DAMqNpRgxjUt+e8XULGDxTJFX9Nr1/AaAVC0VHexwjrW0ptAUY+DNOQ94pcvp+eB51iuUWg+qRKfNx9S5WEAtPBLAIIIiuhvtHqHmnZ8WwkDVDzrEvZaa8yrBK5ix+iw3tphYO1r8ouQkLFDk5OqOnxWKytwc
x-ms-exchange-antispam-srfa-diagnostics: SSOS;
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: e9d88efd-b4a6-4ad2-0059-08d579ba3312
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:BN3PR05MB2514;
x-ms-traffictypediagnostic: BN3PR05MB2514:
x-microsoft-antispam-prvs: <>
x-exchange-antispam-report-test: UriScan:(28532068793085)(10436049006162)(138986009662008)(85827821059158)(100405760836317)(95692535739014)(21748063052155)(50582790962513);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001076)(6040501)(2401047)(5005006)(8121501046)(3231101)(944501161)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041288)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:BN3PR05MB2514; BCL:0; PCL:0; RULEID:; SRVR:BN3PR05MB2514;
x-forefront-prvs: 059185FE08
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39380400002)(346002)(39860400002)(376002)(396003)(366004)(189003)(199004)(14454004)(53546011)(55016002)(316002)(59450400001)(97736004)(3660700001)(110136005)(66066001)(53946003)(236005)(9686003)(81166006)(54896002)(81156014)(54906003)(2900100001)(6436002)(6306002)(106356001)(33656002)(102836004)(186003)(4326008)(8676002)(229853002)(6506007)(25786009)(76176011)(606006)(3280700002)(5250100002)(6116002)(478600001)(105586002)(26005)(790700001)(2950100002)(3846002)(2906002)(86362001)(5660300001)(7736002)(53936002)(99286004)(8936002)(68736007)(74316002)(6246003)(7696005)(2501003)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR05MB2514;; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None ( does not designate permitted sender hosts)
x-microsoft-antispam-message-info: ICyEBKzSdgklKVS+DY60GTSa9qQV88aioyhDTx3zhJPBWkKqzg9VRhrue0FZBpfsG6RRn2U5GpDSxd/nWs8FdpyK2KM3weUxbMjNRLnm3iflbVH/a6r4cTnzuHS1a8wmQtl2V60OzRW6YN/WXCiWvlWqtDGXK83ts4zEMGCUuJ8=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BN3PR05MB2515FD48E4F253F7EBC6D56EABCD0BN3PR05MB2515namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: e9d88efd-b4a6-4ad2-0059-08d579ba3312
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Feb 2018 06:04:56.9217 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR05MB2514
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2018-02-22_03:, , 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-1802220078
Archived-At: <>
Subject: Re: [RTG-DIR] RtgDir review:
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Routing Area Directorate <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 22 Feb 2018 06:05:11 -0000

Hi Reshad
Thanks for your response.

> We’ve done what you suggested by defining groupings for the common information, so although you see repetitions in the YANG trees, there is no repetition in the YANG modules.

Got it.

From: Reshad Rahman (rrahman) []
Sent: Sunday, February 11, 2018 11:32 AM
To: Acee Lindem (acee) <>om>; Ravi Singh <>et>;
Cc:;;; YANG Doctors <>
Subject: Re: [RTG-DIR] RtgDir review:

Hi Ravi,

There is indeed lots of common information and this was addressed by using groupings.

I am not sure I understand the suggestion to use submodules. A submodule can belong to only 1 module (<>) so I do not see how using submodules would help (but I could be missing something).

We’ve done what you suggested by defining groupings for the common information, so although you see repetitions in the YANG trees, there is no repetition in the YANG modules.


From: "Acee Lindem (acee)" <<>>
Date: Friday, February 9, 2018 at 9:18 AM
To: Ravi Singh <<>>, "<>" <<>>
Cc: "<>" <<>>, "<>" <<>>, "<>" <<>>, YANG Doctors <<>>
Subject: Re: [RTG-DIR] RtgDir review:
Resent-From: <<>>
Resent-To: <<>>, <<>>, <<>>, <<>>, <<>>
Resent-Date: Friday, February 9, 2018 at 9:18 AM

+yang doctors

Hi Ravi,
 submodules have proved to be unwieldy and offer little advantage over groupings. I don’t know that we want to crave this model up into submodules. I’ve copied the YANG doctors to assure this is the consensus as there have been submodule debates on the NETMOD list in the past.


From: rtg-dir <<>> on behalf of Ravi Singh <<>>
Date: Friday, February 9, 2018 at 8:36 AM
To: "<>" <<>>
Cc: Routing Directorate <<>>, "<>" <<>>, "<>" <<>>
Subject: [RTG-DIR] RtgDir review:


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 ​<>

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.

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.

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

           +--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

              +--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

           +--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


              +--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.