Re: [pim] Robert Wilton's Discuss on draft-ietf-pim-igmp-mld-snooping-yang-17: (with DISCUSS and COMMENT)

"Eric Vyncke (evyncke)" <evyncke@cisco.com> Tue, 14 July 2020 11:28 UTC

Return-Path: <evyncke@cisco.com>
X-Original-To: pim@ietfa.amsl.com
Delivered-To: pim@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 014A93A0AE7; Tue, 14 Jul 2020 04:28:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.62
X-Spam-Level:
X-Spam-Status: No, score=-9.62 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, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=gkZpMj+V; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=sU3dx8BW
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 2QETdSqBvA5q; Tue, 14 Jul 2020 04:28:08 -0700 (PDT)
Received: from rcdn-iport-1.cisco.com (rcdn-iport-1.cisco.com [173.37.86.72]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 131D53A0AD9; Tue, 14 Jul 2020 04:28:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=19706; q=dns/txt; s=iport; t=1594726088; x=1595935688; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=A5sobdw8YMTPMyCQH6zWsXwgXxGA80JL5LyBvpvSrpQ=; b=gkZpMj+VfdCthV6YdDl3XDQcPESYZvsZIxnUhAjFj8Ko6X1+ki0JjJIG B9LhtLPpHf6nPS9mctzkXTjU6ovb6M5B+W1DUtfszSsqm2V5ylbpNg6n1 L8iXmII1CTFCEczNi5aeTXKtmoaOT6Dvhv8EpEnwuTQiU/vE5vB5HJkmF I=;
IronPort-PHdr: =?us-ascii?q?9a23=3AArmodxYRWmwrYxvTIWrp4wn/LSx94ef9IxIV55?= =?us-ascii?q?w7irlHbqWk+dH4MVfC4el21QWVD4ne4uhPzevbr66mXnYPst6Ns3EHJZpLUR?= =?us-ascii?q?JNycAbhBcpD8PND0rnZOXrYCo3EIUnNhdl8ni3PFITFJP4YFvf8XG35CQZXB?= =?us-ascii?q?TyKQQzIf76Scbeis2t3LW0/JveKwxDmDu6Z+Z0KxO75QXcv8Ubm81sMKE0nx?= =?us-ascii?q?DIuXBPPe9RwDBl?=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CsBQCUlg1f/4kNJK1gHAEBAQEBAQc?= =?us-ascii?q?BARIBAQQEAQFAgUqBUlEHb1gvLIQzg0YDjVCKAo5cgUKBEQNVCwEBAQwBASM?= =?us-ascii?q?KAgQBAYRMAheCBQIkOBMCAwEBCwEBBQEBAQIBBgRthVsMhW8BAQEBAxIREQw?= =?us-ascii?q?BASkOAQsEAgEIEQMBAQEDAh8HAgICHxEVCAgCBAENBSKDBAGCSwMuAQ6daAK?= =?us-ascii?q?BOYhhdoEygwEBAQWBRkGDLA0Lgg4DBoEOKoJqg1WCL4QEGoFBP4ERJxyCTT6?= =?us-ascii?q?CGkICAQEBAYEmARIBBwIYgxYzgi2PESODFKIUTQqCXYhTjBcEhGwDHoJ1iTm?= =?us-ascii?q?FJY1gkXGKJIJbjVGEJgIEAgQFAg4BAQWBaiNnWBEHcBVlAYI+UBcCDY4eN4M?= =?us-ascii?q?6hRSFQnQCNQIGAQcBAQMJfI9cAQE?=
X-IronPort-AV: E=Sophos;i="5.75,350,1589241600"; d="scan'208";a="788538407"
Received: from alln-core-4.cisco.com ([173.36.13.137]) by rcdn-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 14 Jul 2020 11:27:54 +0000
Received: from XCH-RCD-004.cisco.com (xch-rcd-004.cisco.com [173.37.102.14]) by alln-core-4.cisco.com (8.15.2/8.15.2) with ESMTPS id 06EBRsnu027464 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 14 Jul 2020 11:27:54 GMT
Received: from xhs-aln-002.cisco.com (173.37.135.119) by XCH-RCD-004.cisco.com (173.37.102.14) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 14 Jul 2020 06:27:54 -0500
Received: from xhs-rtp-002.cisco.com (64.101.210.229) by xhs-aln-002.cisco.com (173.37.135.119) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 14 Jul 2020 06:27:53 -0500
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-002.cisco.com (64.101.210.229) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Tue, 14 Jul 2020 07:27:53 -0400
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bIv2vDpp9+2Hw5XOZbJ9WwJDg3Wxygy8Sgt+4k0ktHjN3QRppvaM/Acp28j1AEEGFbfBrdZaS+ge5L6w0pfgTfddCldJSWrr5VWkzdL515DcCttsgF6+BNHNd5qszfuq/1Ky4NLMVVby4UGUtgQbAc6yrRh7PUXxhuNgkPGc8HJ2vthEoyL/BWSHihJ6tAplgrU1299+X3//sJPAXgprDCqkPaWjmx2wW/zyq5FSmVTVoeFa8ly72a/KeqyCsnqbA3V9ooJFR0B6A0V/BZp9Df2FmJfhUIRLxOLoKwH6blU65W7IxWsKUCsZAd6XTUcSjjZo7+Ofeon91olwhWkl2A==
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=A5sobdw8YMTPMyCQH6zWsXwgXxGA80JL5LyBvpvSrpQ=; b=BRmjhR5AcZtxTOc1wD0bfsEywmT7TWB6t3nKiThQSBuL47cvyUvPHOT+HBYn/zifEothv/Goq7KU3VM9hmSHGcpriMXsd2QqKvl9Ad7pxN0VE7+KDEOnyn6lxMMTwk/VIaoSRyxM/plEUlBLg60z5uykrryHN/IMOiN452yELjX9UiHSfyc927G6t7gEtAOcPSIwQzOG8adeAA1SJlMF0xqpNfdDImz1CXWu0l5mFVwbOdzBhzp8m33FgtrOPn6X9oK5dYeN8QUcFI7SN1DEtMWie21VX9y4hAWJQWHWDnrtetDiZkL6um/0l7tLqAQGgKtO6w6mWoiGMTkTUAp1tQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A5sobdw8YMTPMyCQH6zWsXwgXxGA80JL5LyBvpvSrpQ=; b=sU3dx8BWEdGjMTSDC+eiOxV5JxLInC7IH4xjvfuCe5aoMhQ241vO/wkJdbk/HUOJsYJeDgp0DZ8Y2I7sIbkOtJhvhygHKk/Fc2m9KC5fWk7V0Fl4A5CLKK7TXMt2BygUMSCZbgsa3ty1PY5+Hg/TZfojYmF7gOk7tljspyPXsuM=
Received: from DM5PR11MB1753.namprd11.prod.outlook.com (2603:10b6:3:10d::13) by DM6PR11MB2762.namprd11.prod.outlook.com (2603:10b6:5:c8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.22; Tue, 14 Jul 2020 11:27:52 +0000
Received: from DM5PR11MB1753.namprd11.prod.outlook.com ([fe80::a14c:59b6:47b0:f630]) by DM5PR11MB1753.namprd11.prod.outlook.com ([fe80::a14c:59b6:47b0:f630%7]) with mapi id 15.20.3174.025; Tue, 14 Jul 2020 11:27:52 +0000
From: "Eric Vyncke (evyncke)" <evyncke@cisco.com>
To: "Rob Wilton (rwilton)" <rwilton=40cisco.com@dmarc.ietf.org>, Hongji Zhao <hongji.zhao@ericsson.com>, The IESG <iesg@ietf.org>, "aretana.ietf@gmail.com" <aretana.ietf@gmail.com>
CC: Stig Venaas <stig@venaas.com>, "pim-chairs@ietf.org" <pim-chairs@ietf.org>, "pim@ietf.org" <pim@ietf.org>, "draft-ietf-pim-igmp-mld-snooping-yang@ietf.org" <draft-ietf-pim-igmp-mld-snooping-yang@ietf.org>
Thread-Topic: Robert Wilton's Discuss on draft-ietf-pim-igmp-mld-snooping-yang-17: (with DISCUSS and COMMENT)
Thread-Index: AQHWVdcXmlpukUvGqE2bmmz/z85+SqkGcErggABdioCAAEuigA==
Date: Tue, 14 Jul 2020 11:27:52 +0000
Message-ID: <FCA2400B-CC22-47DB-9E0C-9BD100107A0F@cisco.com>
References: <159428852777.7283.9711125025293117565@ietfa.amsl.com> <HE1PR0701MB249249C361CB7EAE14C9E8BF96610@HE1PR0701MB2492.eurprd07.prod.outlook.com> <BY5PR11MB435511BEE3DAF693888E91E2B5610@BY5PR11MB4355.namprd11.prod.outlook.com>
In-Reply-To: <BY5PR11MB435511BEE3DAF693888E91E2B5610@BY5PR11MB4355.namprd11.prod.outlook.com>
Accept-Language: fr-BE, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.38.20061401
authentication-results: dmarc.ietf.org; dkim=none (message not signed) header.d=none;dmarc.ietf.org; dmarc=none action=none header.from=cisco.com;
x-originating-ip: [2001:420:c0c1:36:9d11:3ced:eb6c:1d34]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5b4fe2ba-799e-48b2-b47e-08d827e8f272
x-ms-traffictypediagnostic: DM6PR11MB2762:
x-microsoft-antispam-prvs: <DM6PR11MB2762FC142759E32C8DD6845EA9610@DM6PR11MB2762.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: CcINP1EgNB6hSZJaT8Dk+wt3+tGrce7m7WbOTDT6A8fIidA337K2Iqn27y4vSbXSLQ1f39jSGg7R3IG5YiC/CdEDtZ7O+ewuJC3pI5BU3hIzbPmAKbO0Skre4wkHQzEAeHDoG1mzgqkTY6Hd5kkrPhfFCNEo+QvPfkHZjDjcWAv0QTHbC6ewSXgdKKzwucd62rr4eLxV0v+Pf74Q+LM+gRzns6oQdJx+ul2y3QoM77HkBU3LO7QY0Fpm7aERUNBOKI/M3sEnBptdM8yi6e7mHn8h3RPNADZ2D0EcUKKH1lByjxB6g0lY9rijxkKVDSAUnID0KIdqfZhYm3Pt5iM9/Q2Ee/duu5akO9uT4tVqPPNGOtGeT6JzgzkZQb92WkC6x2MojWoj0wrDanDRsc1CEZYY19MoKRHMTGlW66gFFTTVSUxz6wXfoDfjkxw1m57pu9kP0AZVO6fpv8hJFrwfuw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR11MB1753.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(376002)(346002)(396003)(366004)(39860400002)(4326008)(66574015)(86362001)(8936002)(478600001)(8676002)(6486002)(71200400001)(316002)(6512007)(2906002)(91956017)(186003)(66556008)(30864003)(5660300002)(66476007)(53546011)(83380400001)(33656002)(54906003)(2616005)(76116006)(66446008)(966005)(64756008)(6506007)(66946007)(36756003)(110136005)(21314003); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: 1chtCa6TSSFREoSRqnI1hyxE/W/T4YoPWfFDIVJuNg3moUWs+98psgTt74vp6aiutjo3XaJ6EQUvP98gmII9QZb8SZ/xzpgdVlThoVGqcWlyuOMtqOw76OclwJv3tQEzeok9zt5sJMwXrZ/aOGXPryO9G6cmjk4jLIysh8oF3ArGTkIsru7KZ+1kSdYcQq4rx1GFGlqc4LnH/NnjzIYu5KvsYEvvwTMCUtUVfiuS3hOdg3ijwEoN3F3R+jTDVPMjE+nzvg/PnGM8pZSmNEv4NhsjDJ/FUNUZUliTzgl5TuBzCdNy97Y45qQASm/aWIpAP2hignOmK6G1YW/bfH0HoebOy5ju+PEam9G3q3jT59ZfQ7XgHU9bSwHJurZjKGVAdTyjQhRGrwoL4TtclVOywBAcV3/O8istUX80oVYEbm/NxWj57WzSHEjCFZ22PPoQOzQzxxVIm3dMpFKxa0xzeOpULKDELEfQrndYPizWwjUCY5jrKXPfd5yYN3RKS9URhvuDSInyzRnAdTZIaXrSFoER/BTExxBhfKZJiQurJHw=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <5F188082E837C94DAF64B707BED54577@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM5PR11MB1753.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5b4fe2ba-799e-48b2-b47e-08d827e8f272
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jul 2020 11:27:52.5475 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: rDeUprRXPsOSzGxKQ0iQvqVu2wcMPN7p5uaTLn2qjeyB1FHphRCQ6OSiX1cBD8j71as87UQIi1ujkA3t9rCn1A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2762
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.14, xch-rcd-004.cisco.com
X-Outbound-Node: alln-core-4.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/pim/RABfJDFMLvgdI45hdclgZy0Bz6w>
Subject: Re: [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
Precedence: list
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: Tue, 14 Jul 2020 11:28:11 -0000

It seems that similar issues keep repeating for IPv4 and IPv6 (e.g. RFC 8652)... Either two trees in one module or two modules (one per address family). 

While I am not a YANG expert, I would assume that network operators would prefer a unified models (of course with specific leaves & containers) when operating a dual-stack network rather than duplicating their automation effort.

As long as IPv6 is covered, I am OK (per my COMMENT on this I-D) but unsure whether 2 modules/2 trees should be the 'way to go'... For SNMP, RFC 4292/4293 was made protocol version independent which is a big plus IMHO for operations.

-éric

-----Original Message-----
From: iesg <iesg-bounces@ietf.org> on behalf of "Rob Wilton (rwilton)" <rwilton=40cisco.com@dmarc.ietf.org>
Date: Tuesday, 14 July 2020 at 10:58
To: Hongji Zhao <hongji.zhao@ericsson.com>om>, The IESG <iesg@ietf.org>rg>, "aretana.ietf@gmail.com" <aretana.ietf@gmail.com>
Cc: Stig Venaas <stig@venaas.com>om>, "pim-chairs@ietf.org" <pim-chairs@ietf.org>rg>, "pim@ietf.org" <pim@ietf.org>rg>, "draft-ietf-pim-igmp-mld-snooping-yang@ietf.org" <draft-ietf-pim-igmp-mld-snooping-yang@ietf.org>
Subject: RE: Robert Wilton's Discuss on draft-ietf-pim-igmp-mld-snooping-yang-17: (with DISCUSS and COMMENT)

    Hi Hongji,

    There are 3 choices here:

    (1) Put both models in the same YANG module, use common groupings, and then use top level features to enable/disable the functionality.  I.e., this is what the draft currently does.

    Benefits:
     - One module
     - Use of groupings ensure the contents are aligned.

    Downsides:
     - Undesirable top level IGMP/MLD features
     - Somewhat unclear description statements (since the descriptions reference both IGMP and MLD even when they only apply to one protocol).


    (2) Split the work into 3 YANG models:
      (i) Common IGMP/MLD groupings/features, i.e. the same shared groupings that you have now.
      (ii) IGMP snooping module (importing shared groupings)
      (iii) MLD snooping module (importing shared groupings)

    Benefits:
     - Avoids top level IGMP/MLD features
     - Use of groupings ensures the contents are aligned

    Downsides:
      - Somewhat unclear description statements (since the descriptions reference both IGMP and MLD even when they only apply to one protocol).
      - Note, the 'refine' statement could be used where the groupings are used (RFC 7950 sec 7.13.2) to potentially improve the descriptions.  Otherwise possibly some of the description statements could be slightly reworded to avoid referencing back to IGMP or MLD.
      - Some features would need to belong the common module unless the data nodes using those features were taken out of the common groupings

    (3) Split the work into 2 separate modules
      (i) IGMP snooping module
      (ii) MLD snooping module

    Benefits:
     - Avoids top level IGMP/MLD features
     - Description statements are clear (since they always only refer to the protocol they act on)
     - Features are controllable for each protocol separately (not sure if this is a benefit or a downside)

    Downsides:
     - Duplicate definitions, more potential to get out of sync in future, although given that they are both defined in the same document, that doesn't seem too likely.


    My preference is for (3).  I believe that makes it much easier/clearer to an operator to see whether one/both IGMP and MLD snooping is supported.

    However, this is just a preference, and I also want to see IETF YANG models completed and standardized.  I.e., I will not block progression of this document if the authors & Alvaro thinks that the existing module structure is sufficient, or choose to do (2) instead.

    Regards,
    Rob



    > -----Original Message-----
    > From: Hongji Zhao <hongji.zhao@ericsson.com>
    > Sent: 14 July 2020 04:26
    > To: Rob Wilton (rwilton) <rwilton@cisco.com>om>; 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>om>; aretana.ietf@gmail.com
    > Subject: RE: Robert Wilton's Discuss on draft-ietf-pim-igmp-mld-snooping-
    > yang-17: (with DISCUSS and COMMENT)
    > 
    > Hi Robert,
    > 
    > Thanks a lot for your comments.
    > 
    > In this YANG model, four of six groupings are common for both igmp
    > snooping and mld snooping.
    > If it is splitted into two separate YANG models, there will be a lot of
    > duplicated contents.  Is it ok?   Thank you very much.
    > 
    > 
    > 
    > BR/Hongji
    > 
    > -----Original Message-----
    > From: Robert Wilton via Datatracker <noreply@ietf.org>
    > Sent: Thursday, July 9, 2020 5:55 PM
    > 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>om>; aretana.ietf@gmail.com;
    > stig@venaas.com
    > Subject: Robert Wilton's Discuss on draft-ietf-pim-igmp-mld-snooping-yang-
    > 17: (with DISCUSS and COMMENT)
    > 
    > 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.
    > 
    >