Re: [netmod] WG Last Call: draft-ietf-netmod-intf-ext-yang-07

Vladimir Vassilev <> Tue, 13 August 2019 16:05 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 75F0A12020A for <>; Tue, 13 Aug 2019 09:05:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id emWpAhsm8Sb6 for <>; Tue, 13 Aug 2019 09:05:26 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id BED391200FA for <>; Tue, 13 Aug 2019 09:05:25 -0700 (PDT)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 961A348036AB; Tue, 13 Aug 2019 18:05:23 +0200 (CEST)
Received: from ([]) by localhost ( []) (amavisd-new, port 10032) with ESMTP id PilWJwiU0u6T; Tue, 13 Aug 2019 18:05:23 +0200 (CEST)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6FCAF48036AC; Tue, 13 Aug 2019 18:05:23 +0200 (CEST)
Received: from ([]) by localhost ( []) (amavisd-new, port 10026) with ESMTP id oFXN3GcIE-tF; Tue, 13 Aug 2019 18:05:23 +0200 (CEST)
Received: from [] ( []) by (Postfix) with ESMTPSA id 4547248036A9; Tue, 13 Aug 2019 18:05:23 +0200 (CEST)
To: Kent Watsen <>, "" <>
References: <>
From: Vladimir Vassilev <>
Message-ID: <>
Date: Tue, 13 Aug 2019 18:05:22 +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"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Subject: Re: [netmod] WG Last Call: draft-ietf-netmod-intf-ext-yang-07
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 13 Aug 2019 16:05:28 -0000

I have reviewed the draft. I have the following (19) IMO useful proposals:

1. Dedicated module (ietf-if-oper-status-debounce.yang) for the 
oper-status debouncing/dampening functionality currently in 

2. In sec "3.1 Carrier delay" use of the under-defined "Carrier" 
definition can be replaced with direct reference to the oper-status leaf 
(which is what is actually targeted by the algorithm) "Operational 
status transition debouncing".

3. "timer-running" and "suppressed" leafs are both "config false" and 
have "default" statements. Although this is valid YANG I do not think 
the "default" statements are intended.

4. Dedicated module (ietf-if-loopback.yang) for the loopback 
functionality currently in ietf-interfaces-common.yang.

5. Less verbose loopback identities. With dedicated module the 
(loopback-* identities can be shortened skipping the prefix).

6. The draft introduces "loopback-internal", "loopback-line" and 
"loopback-connector" loopback identities. What is confusing is that 
"internal loopback" is historically the opposite of "external loopback" 
which is a loopback with a connector. I think terminology already in use 
like "near-end" and "far-end" is less confusing.

7. I am not sure standardizing the "loopback-connector" identity is 
justified. All usecases of connecting a loopback connector I can think 
of require the system to not be aware there is special external loopback 
connector on the interface.

8. Some interfaces that implement "loopback-internal" do not implement 
"loopback-line" - e.g. classical ethernetCsmacd (Carrier-sense multiple 
access with collision detection) has a physical layer that by design can 
not implement such loopback. Maybe introducing a dedicated feature to 
enable the "loopback-line" is a good idea.

9. Appropriate entry in the "11. Security Considerations" noting the 
possibility of DoS attacks and broadcast traffic storms resulting from 


    The following leaf could cause the interface to go down, and stop
    processing any ingress or egress traffic on the interface:

    o  /if:interfaces/if:interface/loopback


    The following leaf could cause the interface to go down, and stop
    processing any ingress or egress traffic on the interface. It could
    cause broadcast traffic storms.

    o  /if:interfaces/if:interface/loopback

10. Introducing config true "forwarding-mode" leaf breaks clients that 
support e.g. rfc8344 ietf-ip (which has its dedicated forwarding leafs 
e.g. /ietf-interfaces:interfaces/interface/ietf-ip:ipv4/forwarding ) by 
introducing this new module with a new leaf they know nothing about. I 
support this leaf as config false. If NETCONF was not transactional a 
global leaf enabling the forwarding configuration would be a feature. 
But NETCONF is transactional.

11. The "forwarding-mode" leaf has the following set of identities 
{optical-layer, l2-forwarding, network-layer}. We could make the 
identity names shorter and consistent. l1,l2,l3 or 

12. I do not agree we need this text. Normally NETCONF devices should 
accept transactions to any valid configuration:

    Normally devices will not allow the parent-interface leaf to be
    changed after the interfce has been created.  If an implementation
    did allow the parent-interface leaf to be changed then it could cause
    all traffic on the affected interface to be dropped.  The affected
    leaf is:

    o  /if:interfaces/if:interface/parent-interface

    Changing the parent-interface leaf could cause
    all traffic on the affected interface to be dropped.
    The affected leaf is:

    o  /if:interfaces/if:interface/parent-interface

13. The in-drop-unknown-dest-mac-pkts changes the behavior of the 
in-unicast-pkts,in-multicast-pkts and in-broadcast-pkts. I do not agree 
any discarded packets in the forwarding process should be subtracted 
from the interface counters.

Here is the current description:

                 For consistency, frames counted against this drop
                 counters are also counted against the IETF interfaces
                 statistics.  In particular, they are included in
                 in-octets and in-discards, but are not included in
                 in-unicast-pkts, in-multicast-pkts or in-broadcast-pkts,
                 because they are not delivered to a higher layer.
                 The implementation of this counter does not
                 change the behavior of the counters defined in
                 IETF interfaces statistics.

14. I propose the in-pkts and out-pkts counters standardized too. 
And yes someone forgot to update the boilerplate text.

15. I propose that new "ietf-interfaces-common:in-discards-overflow" 
counter is added. Currently the "ietf-interfaces:in-discards" can 
contain both discards like the ones accumulated in 
in-drop-unknown-dest-mac-pkts and discards caused by overflows 
(performance related loss of packets like freeing buffer space in 
devices that in certain cases are forwarding slower then the line 
speed). Turns out knowing if device is discarding (loosing) packets due 
to performance shortage and discarding (filtering) unwanted packets are 
two different events that one needs to differentiate between are 
currently in the same in-discards counter. We can fix that with the 
introduction of in-discards-overflow counter.

16. We can replace 
"ietf-interfaces-ethernet-like:in-drop-unknown-dest-mac-pkts" with 
(in-discards - in-discards-overflow) for MAC Bridges or any other 
Ethernet interface plus save us the introduction of technology specific 
similar counters for the rest of the Bridges and non-Ethernet interfaces.

17. I have separately posted my arguments against introduction of leaf 
named l2-mtu and the need of a config false leaf that has similar 
semantics as the ifMtu object from IF-MIB.

18. Some references to relevant IEEE standards and IEEE maintained YANG 
modules should be added (in the scope of ietf-interfaces-ethernet-like). 
Also a few lines explaining the policy change and why none of the 
RFC3635 managed objects are part of the new 
ietf-interfaces-ethernet-like YANG module.

19. ietf-if-common.yang and ietf-if-ethernet-like.yang instead of 
ietf-interfaces-common.yang and ietf-interfaces-ethernet-like.yang. 
Setting a shorter naming precedent for future modules augmenting 


On 10/07/2019 02.15, Kent Watsen wrote:
> All,
> This starts a twelve-day working group last call for draft-ietf-netmod-intf-ext-yang-07
> The working group last call ends on July 21 (the day before the NETMOD 105 sessions).  Please send your comments to the working group mailing list.
> Positive comments, e.g., "I've reviewed this document and believe it is ready for publication", are welcome!  This is useful and important, even from authors.
> Thank you,
> NETMOD Chairs
> _______________________________________________
> netmod mailing list