[pim] Robert Wilton's Discuss on draft-ietf-pim-igmp-mld-snooping-yang-17: (with DISCUSS and COMMENT)
Robert Wilton via Datatracker <noreply@ietf.org> Thu, 09 July 2020 09:55 UTC
Return-Path: <noreply@ietf.org>
X-Original-To: pim@ietf.org
Delivered-To: pim@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id C55453A00B0; Thu, 9 Jul 2020 02:55:27 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Robert Wilton via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-pim-igmp-mld-snooping-yang@ietf.org, pim-chairs@ietf.org, pim@ietf.org, Stig Venaas <stig@venaas.com>, aretana.ietf@gmail.com, stig@venaas.com
X-Test-IDTracker: no
X-IETF-IDTracker: 7.7.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Robert Wilton <rwilton@cisco.com>
Message-ID: <159428852777.7283.9711125025293117565@ietfa.amsl.com>
Date: Thu, 09 Jul 2020 02:55:27 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/pim/cUU-JbsHzYnUm2dduFs8MGu6pb0>
Subject: [pim] Robert Wilton's Discuss on draft-ietf-pim-igmp-mld-snooping-yang-17: (with DISCUSS and COMMENT)
X-BeenThere: pim@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Protocol Independent Multicast <pim.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pim>, <mailto:pim-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pim/>
List-Post: <mailto:pim@ietf.org>
List-Help: <mailto:pim-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pim>, <mailto:pim-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Jul 2020 09:55:28 -0000
Robert Wilton has entered the following ballot position for draft-ietf-pim-igmp-mld-snooping-yang-17: Discuss When responding, please keep the subject line intact and reply to all email addresses included in the To and CC lines. (Feel free to cut this introductory paragraph, however.) Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html for more information about IESG DISCUSS and COMMENT positions. The document, along with other ballot positions, can be found here: https://datatracker.ietf.org/doc/draft-ietf-pim-igmp-mld-snooping-yang/ ---------------------------------------------------------------------- DISCUSS: ---------------------------------------------------------------------- Hi, I appreciate that this YANG model has already passed a YANG doctor review, but this discuss is to understand the reasoning as to why both IGMP snooping and MLD snooping are in the same YANG module, yet have top level features to separate their functionality. 4. IGMP and MLD Snooping YANG Module feature igmp-snooping { description "Support IGMP snooping."; reference "RFC 4541"; } feature mld-snooping { description "Support MLD snooping."; reference "RFC 4541"; } It seems strange to me to have the entire YANG Model split under two separate feature statements. I believe that it would have been better to split this into two separate YANG models, both following the same structure. Possibly, a common YANG module could have been used to share groupings and definitions, but even then duplicating the contents of the model so that the description statements could be correct/accurate would be more helpful. ---------------------------------------------------------------------- COMMENT: ---------------------------------------------------------------------- Thank you for your work on this document and YANG model. I also have a few minor comments/suggestions that may improve the document and YANG module: 2. Design of Data Model An IGMP/MLD snooping switch [RFC4541] analyzes IGMP/MLD packets and sets up forwarding tables for multicast traffic. If a switch does not run IGMP/MLD snooping, multicast traffic will be flooded in the broadcast domain. If a switch runs IGMP/MLD snooping, multicast traffic will be forwarded based on the forwarding tables to avoid wasting bandwidth. The IGMP/MLD snooping switch does not need to run any of the IGMP/MLD protocols. Because the IGMP/MLD snooping is independent of the IGMP/MLD protocols, the data model defined in this document does not augment, or even require, the IGMP/MLD data model defined in [RFC8652]. The model covers considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches [RFC4541]. It wasn't clear to me what the final sentence was trying to say. Perhaps it should be merged with the penultimate sentence in the paragraph? The YANG module includes IGMP and MLD Snooping instance definition, using instance in the scenario of BRIDGE [dot1Qcp] and L2VPN [draft- ietf-bess-l2vpn-yang]. The module also includes actions for clearing IGMP and MLD Snooping group tables. I find the use of the terminology of "scenario of " to be somewhat strange. I would probably have referred to these a "L2 forwarding pradigms" or "L2 forwarding instances". If this terminology is changed then it would need to be fixed elsewhere in this document and the YANG model. On the other hand, operational state parameters are not so widely designated as features, as there are many cases where the defaulting of an operational state parameter would not cause any harm to the system, and it is much more likely that an implementation without native support for a piece of operational state would be able to derive a suitable value for a state variable that is not natively supported. With NMDA, the server also has the option of not returning a value for a given item of operational data (RFC 8342, section 5,3, paragraph 4). Although this doesn't conform to the data model, the semantics are well defined - i.e. the client cannot infer anything about the value that has not been returned. 2.3. Position of Address Family in Hierarchy IGMP Snooping only supports IPv4, while MLD Snooping only supports IPv6. The data model defined in this document can be used for both IPv4 and IPv6 address families. This document defines IGMP Snooping and MLD Snooping as separate schema branches in the structure. The benefits are: * The model can support IGMP Snooping (IPv4), MLD Snooping (IPv6), or both optionally and independently. Such flexibility cannot be achieved cleanly with a combined branch. * The separate branches for IGMP Snooping and MLD Snooping can accommodate their differences better and cleaner. The two branches can better support different features and node types. I would suggest rewording this first sentence to something like: "Having separate branches for IGMP Snooping and MLD Snooping allows minor differences in their behavior to be modelled more simply and cleanly". 3. Module Structure A configuration data node is marked as mandatory only when its value must be provided by the user. Where nodes are not essential to protocol operation, they are marked as optional. Some other nodes are essential but have a default specified, so that they are also optional and need not be configured explicitly. This paragraph seems to just describe standard YANG modelling and can be removed. 3.1. IGMP Snooping Instances The value of scenario in igmp-snooping-instance is bridge or l2vpn. When it is bridge, igmp-snooping-instance will be used in the BRIDGE As per previous comments, this first sentence does not read well for me. The values of bridge-mrouter-interface, l2vpn-mrouter-interface-ac, l2vpn-mrouter-interface-pw are filled by the snooping device dynamically. They are different from static-bridge-mrouter-interface, static-l2vpn-mrouter-interface-ac, and static-l2vpn-mrouter-interface-pw which are configured Ideally, these static nodes would not have been necessary, instead relying on the NMDA split between configuration and state, but that would probably require the default model to always allow them to be statically configured. In NMDA, features can be implemented per-datastore but it is not clear how well that would work here. units one-tenth-second; Perhaps "units deciseconds" would be better? grouping igmp-snooping-statistics { description "The statistics attributes for IGMP snooping."; leaf num-query { type yang:counter64; description "The number of Membership Query messages."; reference "RFC 2236"; } For these counters, rather than "num-XXX", I think that they would be better as "XXX-count", or if these relate to the number of packets "XXX-pkts" (as per RFC 8343). container statistics { description "The interface statistics for IGMP snooping"; container received { description "Statistics of received IGMP snooping packets."; uses igmp-snooping-statistics; } container sent { description "Statistics of sent IGMP snooping packets."; uses igmp-snooping-statistics; } } Should the descriptions for received and sent be for "snooped IGMP packets"? The equivalent MLD structure probably also needs a similar fix.
- [pim] Robert Wilton's Discuss on draft-ietf-pim-i… Robert Wilton via Datatracker
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Hongji Zhao
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Rob Wilton (rwilton)
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Eric Vyncke (evyncke)
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Rob Wilton (rwilton)
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Alvaro Retana
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Hongji Zhao
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Hongji Zhao
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Rob Wilton (rwilton)
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Hongji Zhao
- Re: [pim] Robert Wilton's Discuss on draft-ietf-p… Hongji Zhao