
From nobody Mon Jan  4 09:55:18 2021
Return-Path: <alex@futurewei.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 672093A0ED2; Mon,  4 Jan 2021 09:55:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.19
X-Spam-Level: 
X-Spam-Status: No, score=-0.19 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=futurewei.com
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 bQDLnXhjtWbD; Mon,  4 Jan 2021 09:55:14 -0800 (PST)
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2139.outbound.protection.outlook.com [40.107.244.139]) (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 5C8253A0ED1; Mon,  4 Jan 2021 09:55:14 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BqHSB5U3pzM0KDq8FzEVFN6RAKv7G4UX1FThuAa+pjXRZoraEE7oo/vciM3jHkRYI+uKGxcAcqBu5vJR/jH1+f8YOGT69w7geUbymrGJR4XWqe2m48zg5Ldal5W5lUnt1oak7ox+k+sG4uS8NhadXEZPRC2wY3+BMibNBhsDwcmZ9eosN3rhhDq+TZtrKENcUOMuFoLcSVRww/x1HI65KcllFuLVZuoTPSzPRPgUVfSMT+NqCR7NuFMgqoLxCwbUGhpynVOwKfg/pWGI0JUkugA/XJt960qPpVO8bproJzPFsOBVNPe7SPtB4gfyNzRUJBF+jEhaCOFzoU6PTLoKkA==
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=xl+fnV//4hYhKFOAImCW21QeGoiQs6ILA6MDhCOm0SA=; b=GBVBXsD/obyeTFeqSNWBAalrJtGatp02Fy5Q4WVHoA8KJPaWk0vkGk1S1EkzuAcgHtZG/bk/KHrwSpeEVRfucKh8ocKxIuUAaalLYcsQWxRuMyYDXg62foIulJDiVnJk6RMYVVDct1M4xfcafQ/DIzdxV7QPHCXUug84mNm+kScBNfbLUwstoJSz7fQVJsBClTwrNguOilOdGQdqEDzpigCAthjJiUfv9EN4net/8peogtjYyejMB39qvmyRopMnnbFJ+vR7Pp3EMuzroo69eRizLiMvM3vMWI0L2PrnsNdcyYDGkweanS2xF/pEjeLKdq+LT82UEBMM5rAiyXxGlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=futurewei.com; dmarc=pass action=none header.from=futurewei.com; dkim=pass header.d=futurewei.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Futurewei.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xl+fnV//4hYhKFOAImCW21QeGoiQs6ILA6MDhCOm0SA=; b=FPkgTwfbH3+OnKHHiwUYRSTwinH7YqjGsmO0q2Cam+469LlrPQ2/+UPIadJ2GJ1tZvcr87BklGj3dnF5sFNJF0VNKs9BC0zXZfs4gyGDGZqhmhBEG1Lr6I7gAHqfPu1UT4sMtsZ/Gh/fR/FleSaZ0CU5bpYOX2l3mflgH39cX0o=
Received: from BY5PR13MB3793.namprd13.prod.outlook.com (2603:10b6:a03:226::15) by BY5PR13MB3714.namprd13.prod.outlook.com (2603:10b6:a03:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.4; Mon, 4 Jan 2021 17:55:09 +0000
Received: from BY5PR13MB3793.namprd13.prod.outlook.com ([fe80::81f6:a35d:1051:da32]) by BY5PR13MB3793.namprd13.prod.outlook.com ([fe80::81f6:a35d:1051:da32%7]) with mapi id 15.20.3742.006; Mon, 4 Jan 2021 17:55:08 +0000
From: Alexander Clemm <alex@futurewei.com>
To: tom petch <ietfc@btconnect.com>, 'Juergen Schoenwaelder' <j.schoenwaelder@jacobs-university.de>, 'Andy Bierman' <andy@yumaworks.com>, "adrian@olddog.co.uk" <adrian@olddog.co.uk>
CC: 'NetMod WG Chairs' <netmod-chairs@ietf.org>, 'NETMOD Group' <netmod@ietf.org>
Thread-Topic: [netmod] Adoption poll for draft-wwx-netmod-event-yang-10
Thread-Index: AQHWzOhiXaVbV6R5bE6bbeHhqkaQs6oB3waAgALAo4CAAECyAIAAMysAgAlRTQCAAVXJAIAILdGA
Date: Mon, 4 Jan 2021 17:55:08 +0000
Message-ID: <BY5PR13MB37939EA742602A3C6477D1C5DBD20@BY5PR13MB3793.namprd13.prod.outlook.com>
References: <f836c5b2-ebc5-2775-ca60-3e888f12788c@labn.net> <CAB75xn6OoL63hyOpMJ=BcmVvnTiZHNskMDyQF6H54AafT7Q7Dw@mail.gmail.com> <AM7PR07MB6248FC667BA42C839086153BA0DE0@AM7PR07MB6248.eurprd07.prod.outlook.com> <CABCOCHQRfm0ZnTTeKR43ki0fTGJi037hV83EjDaTO2xO+u64DA@mail.gmail.com> <20201223180852.rnif4ioc3tovvwkv@anna.jacobs.jacobs-university.de>, <015a01d6ddff$52cd3ef0$f867bcd0$@olddog.co.uk> <AM7PR07MB6248DD811CFF3CC21EB88D00A0D70@AM7PR07MB6248.eurprd07.prod.outlook.com>
In-Reply-To: <AM7PR07MB6248DD811CFF3CC21EB88D00A0D70@AM7PR07MB6248.eurprd07.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: btconnect.com; dkim=none (message not signed) header.d=none;btconnect.com; dmarc=none action=none header.from=futurewei.com;
x-originating-ip: [73.189.160.186]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 68a5911b-7c2d-4692-f8e9-08d8b0d9dfff
x-ms-traffictypediagnostic: BY5PR13MB3714:
x-microsoft-antispam-prvs: <BY5PR13MB37142B08FC38E396775C05D5DBD20@BY5PR13MB3714.namprd13.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: UMl5bpIJSCmiQMrX8AeHy/XlGczmcwYAkdd+DJESed/+5KwFenxwK7DDilOeZyJCQBVCmh5cIYzt3rotF0IyLOfWPgjlHhpV4EKwj5agwRIHkUrjv53wDRNGnJEAEAM2Lqvsza0zktmBzrT72h5u3zRzkvqdSK01WLJfwNXqCtpZadBUfE/EGPnD5GjKGl62Y0LIDXDZP8Gm2J//ABoGgW167Bel5x7epcwQo3GprkZkj2vXV1B9smGvx3YTm4N3FbXOFkxhXTPBFY+zznEyRh7C9JMwyjnZKvqMDDKvVkWRcCyn7DRE32JlX2071N3WzhCTz2k3FkpIPGtsXWU4/aSvoBCwksro7MMULfSKbaKnGr0dVh6+YfkYS0Aa29EeTuhTFfbhX12xv3Bd4Zal8ZZEt72AGwkVQF3KGoJkwxv3ktGikJTvzXDTOspe5mHEQKf8uDbXuSP8LaukTIrf4lOG6qcA/iPSYciR0wDVqF3h83Dhd36qit7tsZmKhfMjf3rXatCBjS76e9V64ZFpFQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:BY5PR13MB3793.namprd13.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(366004)(376002)(346002)(39840400004)(396003)(136003)(478600001)(45080400002)(8936002)(55016002)(9686003)(26005)(52536014)(966005)(186003)(110136005)(66446008)(66946007)(53546011)(66476007)(66556008)(6506007)(64756008)(8676002)(54906003)(83380400001)(86362001)(316002)(83080400002)(2906002)(71200400001)(5660300002)(76116006)(296002)(4326008)(33656002)(7696005); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?rWlb6OQxf1sl3qloUPcB01QlNHJm3YN2BiSQ1fVKFufORsfXdbO/BDJ/TXm7?= =?us-ascii?Q?A+Fy4okz+R7tMwNRi9lh/o0AcuIbzy7cwvBq/pEcjKO029v7mBQ/9GzsKCM5?= =?us-ascii?Q?AYfotyvsmR6ZPkg71J63+aldmACg/SjVIbSCkKrfLWjo62PNLg0tGyXyV2Zz?= =?us-ascii?Q?zmNkRLAG1EF3hlHEFyV42crN1qr9BM282bTDCf7S9jp4soehBLMHO9taVOo/?= =?us-ascii?Q?grLuMlmgB4+IlFb21gz5ZUNEK7TLVOV5KRDn4e2xMl1rl8jEbdy0ONkw89Gk?= =?us-ascii?Q?airUaXys8rH0ehYOeveq66+8PBfCNsMCAbHqHPF2hSudF4eg9ECx7O9SGVM+?= =?us-ascii?Q?KYbEXwUhhJGzA6AWe5yyVohpl5KUIR2ml6/ZVC6HoOeh6dS0SAIUaXPHXYIN?= =?us-ascii?Q?Q2p0qIB8LwXn46i/faiZBUs2DKhWfdKPfCGX6Uvr3hNns94IaathAH9yCYQj?= =?us-ascii?Q?uSzvdUc+9IdU26fq8HaxCsmSyll9SK/s8bsnSS4UhXzH2sr9XMsG90FyVxE2?= =?us-ascii?Q?1dZJGTrdd73TRnZV33bdzYe/v75SwcmqzMLdO98rj601lXHComh49lcaJbmO?= =?us-ascii?Q?6WPRWxh1Xyf4R7oyC4pZlBpkVjKMGRycyLRZCC4D2ezCU8q5sBiLyt90bSgk?= =?us-ascii?Q?gX34n+dqMiJ7AVf5yRcsXD+olXagO+9KNThFvwsNCWEVecAUmGQmjxcpYMCE?= =?us-ascii?Q?scmysXado9R8mV5gkyqOFkCVzBZ/sDYCOQ1jRibi7Fe8GQN1PuH+qY7gPGQD?= =?us-ascii?Q?GDg2J/Ukf3zqiGyP7xUEMJjJoeAQIVAktxlK9i9coZTF1A3TOgnWHGQ1IYLc?= =?us-ascii?Q?mZQDd7QnPHnDEuPqQqIgVfIgIE/8o6ZdsOPtH60+fJ6Nqw7Ip7Wfoov5tple?= =?us-ascii?Q?y296B+jaxZtkZpdqWgzj+42yxUGSl/zxa6YMZK35Nuk2u7DyHRsRJzwpxWrK?= =?us-ascii?Q?1XB/PljigYVDDhI4NiOWI1yab1jKwwbLQ1K+A1hQTiw=3D?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: Futurewei.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY5PR13MB3793.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 68a5911b-7c2d-4692-f8e9-08d8b0d9dfff
X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jan 2021 17:55:08.4027 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 0fee8ff2-a3b2-4018-9c75-3a1d5591fedc
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: dHU7rqqhvW70X+QVMlz2y5cn5+or3v9STE2QiwBA1ovTSq4/NAG9pD7a8IO5XtrWJLog6ozTd7hwqHd8aSTOQA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB3714
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/wF2zfND6fng6ZSYJHM-RrXvdgFs>
Subject: Re: [netmod] Adoption poll for draft-wwx-netmod-event-yang-10
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2021 17:55:16 -0000

Hi all,

First of all, happy New Year!

My 2 cents: I can see that ECAs can be a slippery slope that can lead to si=
gnificant complexity when not careful.  That said, I do think there is valu=
e in simple automation on the device, things like TCAs etc, and (looking ba=
ck at history) RMON and event MIB were useful at least to some.  If we resi=
st from trying to make this very "general" but keep it simple, I think the =
same can be the case here.  We certainly should not get into complex proces=
sing/actions that would require exception handling or such, but things like=
 "send a custom notification with data D if X happens and condition C holds=
" would seem useful.  So, I do think it is worthwhile to pursue this and no=
t shut it down, but I agree that we need to moderate this in a way that it =
focuses on the stuff that is "simple". =20

--- Alex

-----Original Message-----
From: netmod <netmod-bounces@ietf.org> On Behalf Of tom petch
Sent: Wednesday, December 30, 2020 4:50 AM
To: 'Juergen Schoenwaelder' <j.schoenwaelder@jacobs-university.de>; 'Andy B=
ierman' <andy@yumaworks.com>; adrian@olddog.co.uk
Cc: 'NetMod WG Chairs' <netmod-chairs@ietf.org>; 'NETMOD Group' <netmod@iet=
f.org>
Subject: Re: [netmod] Adoption poll for draft-wwx-netmod-event-yang-10

From: netmod <netmod-bounces@ietf.org> on behalf of Adrian Farrel <adrian@o=
lddog.co.uk>
Sent: 29 December 2020 16:26

Hi Juergen,

What you say about learning lessons from the past is wise and valuable.

Sadly (well, it's a good thing, really) we have new people in the IETF and =
the memory of events over the last 20 years are not immediately accessible =
to them. Others, who are old and grey, have been around that long but were =
not necessarily involved in previous ECA discussions.

Since "intent-based networking" is a big thing once again (see recent repor=
ts of acquisitions in this sector) the excitement about ECA may be forgiven=
, but it would help to ground the discussions if those who can remember pre=
vious efforts would share their experiences or at least some pointers.

<tp>
Adrian,
Reading Juergen's post I thought of the work of the DISMAN WG back in 2002/=
2003 which produced MIBs for alarms, events, alarm reporting and such like.=
  I thought it a great idea which chimed with proprietary work I had seen a=
 few years earlier but the IETF work seemed not to catch on.  Randy was act=
ive in that while Juergen could say whether or not it was the kind of thing=
 he had in mind.

With hindsight, I suspect that Andy's point about complexity of implementat=
ion was a factor.

Tom Petch

Best,
Adrian

-----Original Message-----
From: netmod <netmod-bounces@ietf.org> On Behalf Of Juergen Schoenwaelder
Sent: 23 December 2020 18:09
To: Andy Bierman <andy@yumaworks.com>
Cc: NetMod WG Chairs <netmod-chairs@ietf.org>; NETMOD Group <netmod@ietf.or=
g>
Subject: Re: [netmod] Adoption poll for draft-wwx-netmod-event-yang-10

On Wed, Dec 23, 2020 at 07:05:44AM -0800, Andy Bierman wrote:
> On Wed, Dec 23, 2020 at 3:14 AM tom petch <ietfc@btconnect.com> wrote:
>
> > From: netmod <netmod-bounces@ietf.org> on behalf of Dhruv Dhody <=20
> > dhruv.ietf@gmail.com>
> > Sent: 21 December 2020 17:12
> >
> > Hi Lou, WG,
> >
> > I find the motivation in the Introduction to be focused on ECA at=20
> > the network devices (with all the talk about issues with Centralized=20
> > network management).
> >
> > I see the value of ECA on the controller as well, say a customer=20
> > network controller or an orchestrator can set the ECA on a central=20
> > controller (reference ACTN in TEAS WG). Perhaps you would consider=20
> > adding a sentence to describe this as well. The client-server=20
> > terminology in the rest of the document covers it already.
> >
> > And I do see value in this and support adoption.
> >
> > <tp>
> > My take is that the I-D is unclear on what ECA is.
> >
> > ECA has been worked on in at least two IETF WG AFAICT.  It cropped=20
> > up in I2RS but as I recall, it was along the lines of 'This is ECA' =20
> > 'No It is not'  'Yes it is' which gave me the impression that ECA is=20
> > not a well-defined, or well-understood, term.
> >
> > More recently, I2NSF have produced a YANG capability-data-model=20
> > which is
> > 55 pages of ECA.  Lacking a definition in this netmod I-D, I am=20
> > unclear what the relationship is between the I2NSF I-D and the=20
> > netmod I-D,
whether
> > or not they are using ECA in the same sense.
> >
> >
> Hi Tom,
>
> It usually helps to agree on the problem-space before focusing on the=20
> solution-space.
> ECA seems like a methodology (ala MVC) more than anything else.
> The problem statement seems to be that some client tasks need to be
handled
> on the
> server using ECA methodology, instead of on the client.
> Which tasks? Seems to be any task of arbitrary purpose or complexity.
> And now the scope is supposed to include controllers (just another
client),
> so the problem-stmt
> is even less clear.
>
> The traditional approach is to pick specific client tasks to move to=20
> the server.
> The example of detecting and reporting route-flaps has been used.
> (No ECA example of this complexity has been provided yet).
> The traditional approach would be to write a route-flap-detection YANG=20
> module with some configuration, monitoring data, and notification=20
> events.
>
> The generalized approach is likely to be extremely complex to=20
> standardize and implement.
>

ECA work has a long 20+ year tradition in the IETF and several specificatio=
ns have been published over the years by various working groups. As far as =
I can tell, none of them got traction in terms of signifiant deployment of =
interoperable implementations.

I would have hoped that the next iteration of ECA work would have started w=
ith a deep reflection about why all the previous attempts failed to gain tr=
action and some genuine insights how to design things differently in order =
to improve the likelihood to have impact.

/js

--
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://nam11.safelinks.protection.outlook=
.com/?url=3Dhttps%3A%2F%2Fwww.jacobs-university.de%2F&amp;data=3D04%7C01%7C=
alex%40futurewei.com%7C0beb4699b9a0495dba0b08d8acc162c6%7C0fee8ff2a3b240189=
c753a1d5591fedc%7C1%7C0%7C637449293911549584%7CUnknown%7CTWFpbGZsb3d8eyJWIj=
oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sda=
ta=3DnQXdxJ7DumQoX9pPoHQgtYJ%2FiuoLaV1u6WtvKnKBqdg%3D&amp;reserved=3D0>

_______________________________________________
netmod mailing list
netmod@ietf.org
https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fwww.iet=
f.org%2Fmailman%2Flistinfo%2Fnetmod&amp;data=3D04%7C01%7Calex%40futurewei.c=
om%7C0beb4699b9a0495dba0b08d8acc162c6%7C0fee8ff2a3b240189c753a1d5591fedc%7C=
1%7C0%7C637449293911559532%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQ=
IjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=3DaacWB%2BxWlKp=
msS9v%2FRSUY%2BbxWdKxUIfZRcnjjGtSQ7o%3D&amp;reserved=3D0

_______________________________________________
netmod mailing list
netmod@ietf.org
https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fwww.iet=
f.org%2Fmailman%2Flistinfo%2Fnetmod&amp;data=3D04%7C01%7Calex%40futurewei.c=
om%7C0beb4699b9a0495dba0b08d8acc162c6%7C0fee8ff2a3b240189c753a1d5591fedc%7C=
1%7C0%7C637449293911559532%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQ=
IjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=3DaacWB%2BxWlKp=
msS9v%2FRSUY%2BbxWdKxUIfZRcnjjGtSQ7o%3D&amp;reserved=3D0

_______________________________________________
netmod mailing list
netmod@ietf.org
https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fwww.iet=
f.org%2Fmailman%2Flistinfo%2Fnetmod&amp;data=3D04%7C01%7Calex%40futurewei.c=
om%7C0beb4699b9a0495dba0b08d8acc162c6%7C0fee8ff2a3b240189c753a1d5591fedc%7C=
1%7C0%7C637449293911559532%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQ=
IjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=3DaacWB%2BxWlKp=
msS9v%2FRSUY%2BbxWdKxUIfZRcnjjGtSQ7o%3D&amp;reserved=3D0


From nobody Mon Jan  4 15:06:17 2021
Return-Path: <wwwrun@rfc-editor.org>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 279FC3A0A0B; Mon,  4 Jan 2021 15:06:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 IYwfgxwrRSEl; Mon,  4 Jan 2021 15:06:12 -0800 (PST)
Received: from rfc-editor.org (rfc-editor.org [4.31.198.49]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7460F3A09E9; Mon,  4 Jan 2021 15:06:12 -0800 (PST)
Received: by rfc-editor.org (Postfix, from userid 30) id 954B2F40754; Mon,  4 Jan 2021 15:06:10 -0800 (PST)
To: ietf-announce@ietf.org, rfc-dist@rfc-editor.org
X-PHP-Originating-Script: 1005:ams_util_lib.php
From: rfc-editor@rfc-editor.org
Cc: rfc-editor@rfc-editor.org, drafts-update-ref@iana.org, netmod@ietf.org
Content-type: text/plain; charset=UTF-8
Message-Id: <20210104230610.954B2F40754@rfc-editor.org>
Date: Mon,  4 Jan 2021 15:06:10 -0800 (PST)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/gYe7yrSJG3wDyO9GuXBmXfLFDfs>
Subject: [netmod] =?utf-8?q?RFC_8819_on_YANG_Module_Tags?=
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2021 23:06:15 -0000

A new Request for Comments is now available in online RFC libraries.

        
        RFC 8819

        Title:      YANG Module Tags 
        Author:     C. Hopps,
                    L. Berger,
                    D. Bogdanovic
        Status:     Standards Track
        Stream:     IETF
        Date:       January 2021
        Mailbox:    chopps@chopps.org, 
                    lberger@labn.net, 
                    ivandean@gmail.com
        Pages:      19
        Updates:    RFC 8407

        I-D Tag:    draft-ietf-netmod-module-tags-10.txt

        URL:        https://www.rfc-editor.org/info/rfc8819

        DOI:        10.17487/RFC8819

This document provides for the association of tags with YANG modules.
The expectation is for such tags to be used to help classify and
organize modules. A method for defining, reading, and writing modules
tags is provided. Tags may be registered and assigned during module
definition, assigned by implementations, or dynamically defined and
set by users. This document also provides guidance to future model
writers; as such, this document updates RFC 8407.

This document is a product of the Network Modeling Working Group of the IETF.

This is now a Proposed Standard.

STANDARDS TRACK: This document specifies an Internet Standards Track
protocol for the Internet community, and requests discussion and suggestions
for improvements.  Please refer to the current edition of the Official
Internet Protocol Standards (https://www.rfc-editor.org/standards) for the 
standardization state and status of this protocol.  Distribution of this 
memo is unlimited.

This announcement is sent to the IETF-Announce and rfc-dist lists.
To subscribe or unsubscribe, see
  https://www.ietf.org/mailman/listinfo/ietf-announce
  https://mailman.rfc-editor.org/mailman/listinfo/rfc-dist

For searching the RFC series, see https://www.rfc-editor.org/search
For downloading RFCs, see https://www.rfc-editor.org/retrieve/bulk

Requests for special distribution should be addressed to either the
author of the RFC in question, or to rfc-editor@rfc-editor.org.  Unless
specifically noted otherwise on the RFC itself, all RFCs are for
unlimited distribution.


The RFC Editor Team
Association Management Solutions, LLC


From nobody Tue Jan  5 06:18:05 2021
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netmod@ietf.org
Delivered-To: netmod@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id CF3C63A0F46; Tue,  5 Jan 2021 06:17:59 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netmod@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.24.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netmod@ietf.org
Message-ID: <160985627980.17103.15655186257841903652@ietfa.amsl.com>
Date: Tue, 05 Jan 2021 06:17:59 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/fyxL-y22_ijzheflLTqWhB0FXwQ>
Subject: [netmod] I-D Action: draft-ietf-netmod-yang-versioning-reqs-04.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2021 14:18:00 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Modeling WG of the IETF.

        Title           : YANG Module Versioning Requirements
        Author          : Joe Clarke
	Filename        : draft-ietf-netmod-yang-versioning-reqs-04.txt
	Pages           : 12
	Date            : 2021-01-05

Abstract:
   This document describes the problems that can arise because of the
   YANG language module update rules, that require all updates to YANG
   module preserve strict backwards compatibility.  It also defines the
   requirements on any solution designed to solve the stated problems.
   This document does not consider possible solutions, nor endorse any
   particular solution.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-versioning-reqs/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netmod-yang-versioning-reqs-04
https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-versioning-reqs-04

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-netmod-yang-versioning-reqs-04


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/



From nobody Tue Jan  5 06:26:17 2021
Return-Path: <jclarke@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A00743A0E25; Tue,  5 Jan 2021 06:26:15 -0800 (PST)
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_H3=-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=T+ioCJPd; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=jfks5LXb
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 FRETBFNvSYSD; Tue,  5 Jan 2021 06:26:14 -0800 (PST)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E29F63A0E21; Tue,  5 Jan 2021 06:26:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1907; q=dns/txt; s=iport; t=1609856773; x=1611066373; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=kd96klVtSoFJ0pG4oiCOhYwmuP9UjM/A6Fu31TBoMwQ=; b=T+ioCJPdHxNSKA50z6gsfIYMEOFgGhEp//GRy7i8SNsyisMt4sjSRQ4d REhpnELb+wW5c/uAXhFpcSL3bS+BbyrQsHhdogDuaDgI+Uteon9SkbWHJ 30vROe40RyI1H9kQBokPck+ZvH88NGpf3VJAa0+PnPbShGqfAVCITBCIO 0=;
IronPort-PHdr: =?us-ascii?q?9a23=3Asjs4ixQXtkMjg443cl7MjbH2vdpsv++ubAcI9p?= =?us-ascii?q?oqja5Pea2//pPkeVbS/uhpkESQBN+J6v9YhazRqa+zEWAD4JPUtncEfdQMUh?= =?us-ascii?q?IekswZkkQmB9LNEkz0KvPmLklYVMRPXVNo5Te3ZE5SHsutZlDOrDu19zFBUh?= =?us-ascii?q?n6PBB+c+LyHIOahs+r1ue0rpvUZQgAhDe0bb5oahusqgCEvcgNiowkIaE0mR?= =?us-ascii?q?Y=3D?=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DqBQCFdvRf/49dJa1iHAEBAQEBAQc?= =?us-ascii?q?BARIBAQQEAQFAgU+BU1EHdlsvLogHA41BJQOZD4JTA1QLAQEBDQEBGA0IAgQ?= =?us-ascii?q?BAYQGRAKBbwIlOBMCAwEBCwEBBQEBAQIBBgRxhWEMhXMBAQEDAQEBECgGAQE?= =?us-ascii?q?sCwEECwIBCBgeECcLJQIEDgUbB4MEAYJVAw4gAQ6jYgKBPIhpdIE0gwQBAQa?= =?us-ascii?q?BNwIOQUSCOxiCEAmBOIJ1ijQmG4FBP4E4DBCCVj6CXQEBAgEBFYFGg0yCLIF?= =?us-ascii?q?PgVkEUQIURxaBD3C4AgqCdokqkjIDH4MpgS6IfZUDlhOJDpFaXoNvAgQCBAU?= =?us-ascii?q?CDgEBBoFtI4FXcBUaISoBgj4JNRIXAg2OIYNxhRSFRHQ3AgYKAQEDCXyMMQE?= =?us-ascii?q?B?=
X-IronPort-AV: E=Sophos;i="5.78,477,1599523200"; d="scan'208";a="849542123"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 05 Jan 2021 14:25:54 +0000
Received: from XCH-ALN-003.cisco.com (xch-aln-003.cisco.com [173.36.7.13]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id 105EPsDb007549 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 5 Jan 2021 14:25:54 GMT
Received: from xhs-rtp-002.cisco.com (64.101.210.229) by XCH-ALN-003.cisco.com (173.36.7.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 5 Jan 2021 08:25:54 -0600
Received: from xhs-aln-001.cisco.com (173.37.135.118) by xhs-rtp-002.cisco.com (64.101.210.229) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 5 Jan 2021 09:25:52 -0500
Received: from NAM04-DM6-obe.outbound.protection.outlook.com (173.37.151.57) by xhs-aln-001.cisco.com (173.37.135.118) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Tue, 5 Jan 2021 08:25:52 -0600
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ISKpGGRfynzhExHzqBd4piLVk6KeR5n35dwxyTsYcOffExE8v+FGJoLC5AKE3J+C0f3HCuE0KFc7VILGLXIx76uvqjOYYyP86q2ssRcoqXYHHEeku60m7Fbfq/JlSGSlBm927kkBt3JdaI1hpKCbEh6Pl3Bs+tLcDqOMlQIkSm39fdcfbk3tgUrsifN60RFOnEVROaHDCiY9a8MMbvA5nNzPbG8H7DFmUFaFw0zGC+ULAKviDt+sGxrRGuvjv7L7xt4taiE4abDzVPc/ijvZWVgDfyA2dbMVEcJjrBj+Q1MQOIka5aFuyh4rSsc+aqVh5zxraph/ZWX9lTNexm8hgg==
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=RxXZo4fgzW5XvB0e67bSlZBYdmE3VARu2mBy+zCJ0cQ=; b=Mcs34XAnt08KV/dy57bd6MrodjLljXAPa6eCxNuUzon3KX8bx0LC9uxmhSXf58w2FLeKAwMKZ1WMSLLn1DhDxRfE37rj57omEKwrOyOUaL8l4z1KFCWec2nxLB55dC0b74UkXFnsyzSW9n/4QLxBysFCKD7TiAJkopBiBBmzc/+H4214HmfYYM3pU5uLAUYfHJrXkHFkOwvu75R/m+LXfxL4qINCaz9V8Jad+G+XnTTglp7YqdxBrCHpCQIFjclzvQ1VZ521QrvWHX6/IHJxC+WJfnnZEKWkcEelxWPyXS3pMHlu6ZTituoeDoh1beQlBSAEABIVfhvGiU7gkvQtKQ==
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=RxXZo4fgzW5XvB0e67bSlZBYdmE3VARu2mBy+zCJ0cQ=; b=jfks5LXbJ31AdKQtjpLZPT6arI+IY3ojo3rYR+P6CyAmICCStDvNa9liq8jtAy3P850Ioq42IbxDWTPUcmVmg5VcKV2TnIt7iiXl+tgQRzZQLyfWNXLhHKP6SaYOso5Os8IeL1t7cU6ySklsF99iTN3iOrGqFO40CbjbSu0Dkh4=
Received: from BN6PR11MB1667.namprd11.prod.outlook.com (2603:10b6:405:e::12) by BN8PR11MB3556.namprd11.prod.outlook.com (2603:10b6:408:8d::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.23; Tue, 5 Jan 2021 14:25:50 +0000
Received: from BN6PR11MB1667.namprd11.prod.outlook.com ([fe80::fd07:517e:fe73:789d]) by BN6PR11MB1667.namprd11.prod.outlook.com ([fe80::fd07:517e:fe73:789d%12]) with mapi id 15.20.3721.024; Tue, 5 Jan 2021 14:25:50 +0000
From: "Joe Clarke (jclarke)" <jclarke@cisco.com>
To: NetMod WG <netmod@ietf.org>
CC: "i-d-announce@ietf.org" <i-d-announce@ietf.org>
Thread-Topic: [netmod] I-D Action: draft-ietf-netmod-yang-versioning-reqs-04.txt
Thread-Index: AQHW4225tdhGyKdwG0658zOXinAebqoZFnkA
Date: Tue, 5 Jan 2021 14:25:50 +0000
Message-ID: <FA62F57D-5209-4BC6-B50A-95633BB450FB@cisco.com>
References: <160985627980.17103.15655186257841903652@ietfa.amsl.com>
In-Reply-To: <160985627980.17103.15655186257841903652@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: Apple Mail (2.3654.40.0.2.32)
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=cisco.com;
x-originating-ip: [2001:420:2481:6:41a5:a955:fbf7:aa6b]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f6cb7638-c6ef-4f31-c91a-08d8b185cd70
x-ms-traffictypediagnostic: BN8PR11MB3556:
x-microsoft-antispam-prvs: <BN8PR11MB3556981C2223B3654879B3F9B8D10@BN8PR11MB3556.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 5Lkyn7pMoVNWfRU2TPXkzxtBIWWh9ueQjbL/uDfx4FVlvr52q6spqBNRtesEVt95b/lFBbkjYYWLrbyhpDzIYs2YTOLT9uNsh1L2BbzGyGUtglb6jM8Ee405VCExZ9/LnLQCaHyxZHlxYEPgKK8OkJXjh03csehgxRvaKVr1V7c8LQD1L4RDFiRiX1Kzv5gR5UL9NFQ3XD1ge4gYyo5rCQU+2MYfWwmaXfIiYF5MAUPeCY95RkACCQP8dHXZAv6r9QKeDppVOIKua8zAuGC8h34wzgBbU+k/2iE4uTdtDkpaMR0t6OjoChJGCc81zJGk3L8FMQtj/h2pA0A9q1WGaz9Byv3mE8gnaxSBYM2gB2lM7j1/hodPl+7vj6C/Vi9/JgHtShdfW5ZLqj0qCrejmXnXTp3p5GbVUQbyUoT59/mQM3e8goiWOhPjJYwS2mLgY5NEDK5r6qfNWp4+mqNOV9PeQ0lUd4pTG7cWDnGNIqfexAs1onG9dp/3V2N1WhXEJfp4sg3kPQFqE/rwqgAIKA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:BN6PR11MB1667.namprd11.prod.outlook.com; PTR:; CAT:NONE;  SFS:(366004)(136003)(376002)(39860400002)(346002)(396003)(186003)(8936002)(4326008)(2906002)(6506007)(76116006)(316002)(53546011)(2616005)(66574015)(6486002)(83380400001)(86362001)(450100002)(8676002)(33656002)(36756003)(71200400001)(66556008)(478600001)(66946007)(6916009)(6512007)(91956017)(66476007)(5660300002)(66446008)(64756008)(966005)(45980500001); DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?RKALKgxd7cZ3NL/gUDu1bLdqFNgXnGEqSWsAw7p18AreiemexiMvP9jgfRLP?= =?us-ascii?Q?gH4d3Ta9oJJiFQG3Al5ei6rijF6pSerA4D3sLILkxsR2kjhQ3Y1UUm5CXOfp?= =?us-ascii?Q?9B66F5PgxzI+vhGh7YQAhYo7fQzjsEi1yisEWsqYf7IEN8QcGOMzP6IIqhWi?= =?us-ascii?Q?vbpCZoBzLrZ6dfYL+urpv3G0CDt7OYUtyXuAktmqmVQPW8RGcq9E2n7S+2yL?= =?us-ascii?Q?2BAIEssjfKTfCCtNN4SttKH7od2WYlivMOmW4DZH9+m29VaIC1vlehdlwvmN?= =?us-ascii?Q?5lIQzxibadHUIKUN37pKnxVwq1pO3+1XZDYLWxzRrGTqnceKIXU7uLH7R6+p?= =?us-ascii?Q?1lDc/hi3leA7RiL4npkjNawFkenaAvl0zpTrse1CdUcdbdPAwprz8rQEMmZx?= =?us-ascii?Q?c7Odcp3vil4WZixPh2fv2HC1A+D95R7TDVOYK/ob97x2/VKgYSM+8x2JUIyn?= =?us-ascii?Q?iW8TMevTJ5AcxFTgQIWVjzmSGdrW2qAIqvstp9ifh14ZuriS6Rmd12yjugxF?= =?us-ascii?Q?+pr2a/d7sGcEu5v+5IuzTNjqr2KsxeJWKhAzcGyGazMEct7wMb3WuhJVl5Ww?= =?us-ascii?Q?lYKvZjFX5ijfuj/5X+ujHYjPaVw4cyTPgr+w0RpmLpjUfAkesIEoCbxfAH4g?= =?us-ascii?Q?bS4ZDayQhn1YBZcS5vq6JAtLjiWYu4zute8PzKdqYVd93VK1n553d72WGw4U?= =?us-ascii?Q?Vh9dRQVM1lEbZ3gGlJgNiW61sJ1nCV7Kbyk4OhTgkIsqVuxGTmGlqfig+67+?= =?us-ascii?Q?MKx56319hH5SYG0LNtQaxs9qOZdpKFbdAxSQoMGBjd7io32IwiTufAZZe5YH?= =?us-ascii?Q?8Z0LtEo2JO1UNWeOb6ducx/G4yMZgWI0nIKR1ASuQTADyQIo+44wCmmlAQTy?= =?us-ascii?Q?pMIffdG3tmEuqjfkzk1deHF4D+G0RNZ+x2DY2wNHOKIEkUqgwTBz8G8dtulZ?= =?us-ascii?Q?cSnK2sQOkO8putxcndCGUJvsSHSXNBaTUU4pJm4kdaVLWIeXWlXtTaBqKrEE?= =?us-ascii?Q?E6LLcFoD9QkL1ou9jgyJXJYFJiJm/slVakve0zU8zJywegothDhWV/coX7ea?= =?us-ascii?Q?CxTblDco?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-ID: <57A75C4AC35FBF45A16946A12BF2B220@namprd11.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1667.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f6cb7638-c6ef-4f31-c91a-08d8b185cd70
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2021 14:25:50.7173 (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: uJxFm0Y9d5geIvAktK1IlZ4c6NOyvXHwshfJi6rmbuD1EdcPR+lnUZ9vKl27WC2rDhbceB/cY4CdNmjlPNiVHg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR11MB3556
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.13, xch-aln-003.cisco.com
X-Outbound-Node: rcdn-core-7.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Y_57DA43WsQLx2ZxvOoyjfC3CyM>
Subject: Re: [netmod] I-D Action: draft-ietf-netmod-yang-versioning-reqs-04.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2021 14:26:16 -0000

No changes in this.  Just bumping to keep this active while the other draft=
s are being refined.

Joe

> On Jan 5, 2021, at 09:17, internet-drafts@ietf.org wrote:
>=20
>=20
> A New Internet-Draft is available from the on-line Internet-Drafts direct=
ories.
> This draft is a work item of the Network Modeling WG of the IETF.
>=20
>        Title           : YANG Module Versioning Requirements
>        Author          : Joe Clarke
> 	Filename        : draft-ietf-netmod-yang-versioning-reqs-04.txt
> 	Pages           : 12
> 	Date            : 2021-01-05
>=20
> Abstract:
>   This document describes the problems that can arise because of the
>   YANG language module update rules, that require all updates to YANG
>   module preserve strict backwards compatibility.  It also defines the
>   requirements on any solution designed to solve the stated problems.
>   This document does not consider possible solutions, nor endorse any
>   particular solution.
>=20
>=20
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-versioning-reqs/
>=20
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-ietf-netmod-yang-versioning-reqs-04
> https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-versioning-r=
eqs-04
>=20
> A diff from the previous version is available at:
> https://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-netmod-yang-versioning-req=
s-04
>=20
>=20
> Please note that it may take a couple of minutes from the time of submiss=
ion
> until the htmlized version and diff are available at tools.ietf.org.
>=20
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>=20
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Tue Jan  5 07:26:18 2021
Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 527D93A0FDE for <netmod@ietfa.amsl.com>; Tue,  5 Jan 2021 07:26:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.15
X-Spam-Level: 
X-Spam-Status: No, score=-2.15 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 f8kDWksg7sZY for <netmod@ietfa.amsl.com>; Tue,  5 Jan 2021 07:26:14 -0800 (PST)
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2139.outbound.protection.outlook.com [40.107.243.139]) (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 9B37A3A0F4A for <netmod@ietf.org>; Tue,  5 Jan 2021 07:26:14 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h5+LkYWKCA5HomfbjtBnkV3f1Yg8rCMP+zZfRpMem7484NKDQY0huxSOK3OXpXgbvbaih+r5hsJp42QAiWNm7juPjKVdTzFGZbJka5nwvGq51ID6CKBSUVxv2SipNyuYCZ4FcExW3PvAKObNxn8/cxQBd5/lZXoh2/LdFHub4pBg5hVVUcVUDZqSdhgbwvbpLUemSwJlsJOZ14NW4zdJmO96mHJriWidrcUFcB7WDiUkscCSLT+ALk3En7EWfSbgn1FVLBMkzoWw+CwmhieCEQ4lsZGUqWCZtVoPiHOvy8RiNd6atq5hk0GgsWC9B8L1Fg24zshRBTvQLfclmcW/Mg==
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=IvgPRew4BEXMg5Ofmz8pCn+6OV3qrLrrDGdg0/GulE8=; b=HG5AacOx9z40kAEQR05kB15YmcDqf+YQaRG8d8H/cMRhkMoOBX/XUJYgf3q8T7u0ZFwYGsWX873P1FkyWSmmPDdjXAkKntvOEHO35MRcL//+vudSiUcsmjFjYNmPgnoRPNqI9GAE5oUyPEyatMQvWytWKbhu1huKGwMN0j0FlVUfOwkRwuxRzE22vILc8IVrn+GGMIjr3ITeSpjIaQTU/Yq/xEA1Z5ZSTZ76EGWpaH6Vhf990MYsQ3yT8DHiIunqe7s0Ysvda5okwOYyVpZr65Pkhkbpv3beMMS+OHCLjp8s1rmjzLGBmBI1rzdzE3JJjtgxtFo+HKLau2O4MkImpg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IvgPRew4BEXMg5Ofmz8pCn+6OV3qrLrrDGdg0/GulE8=; b=D1X5VNih0O7jEc7C1IGV1B5NBe0OOd4kklAQcRU/J4zD6/DTdsaUHLPWKqkZYMh1xc7LHFzf/qkM5dfIr8F2yuErlF7c840yDMd/daPeMEi5WQE4XMvShDtFdI7+iyjQA3QtHElSMfjHIpzV+h4AR06wkoEgNfaxJ12L4i1jG7Q=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM6PR08MB6060.namprd08.prod.outlook.com (2603:10b6:5:107::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.22; Tue, 5 Jan 2021 15:26:12 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3%5]) with mapi id 15.20.3721.024; Tue, 5 Jan 2021 15:26:12 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: NETMOD Versioning virtual interim #2 - Week of Feb 1, 2021 - poll for attendees
Thread-Index: AdbUxHNaYV+25IoQRI+oab9ajVEERgOr9GMA
Date: Tue, 5 Jan 2021 15:26:12 +0000
Message-ID: <DM6PR08MB508484BA0769D1A406157E739BD10@DM6PR08MB5084.namprd08.prod.outlook.com>
References: <DM6PR08MB58841D16386B5891EC8C9F0B9BC40@DM6PR08MB5884.namprd08.prod.outlook.com>
In-Reply-To: <DM6PR08MB58841D16386B5891EC8C9F0B9BC40@DM6PR08MB5884.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [24.226.236.156]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 0aff8fe0-599e-4ddd-745d-08d8b18e3c2a
x-ms-traffictypediagnostic: DM6PR08MB6060:
x-microsoft-antispam-prvs: <DM6PR08MB606034B8053A2C68169A97FC9BD10@DM6PR08MB6060.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: DW+jcmdMgEzMU9EiKrbXbT2MlWNNglxoCB20GDChhiL1mVWWfVV4joB3wm+vySwuT5NJbnRZ072MWO7fGLpqaYKPckjxEFXOmwdtHhPQsTGZ6bz+N6tEtMBkuraxZrpRflgbeCEoT1GrHUe5vhMOnP9RK5n8gCnhueAsVuDljfySi64voLGbfUmgCMAsDEwWbIUUIOcnFm3aeU0BDjk+UZoeJHcUV2a3sZkkqVS89wYtXHjQRBcYVEfj80E0VXiShsfdY7paMvQuzwI1bvYbXwVqlQ/5gD+heb+vAhlTrsyG4v/Oo1/ATI9zRUfR+T3LRsGTYVdrQgjL9xq1HRK0271K/w61Gx+v0NaQ1+FBhjNB49Mq1CE6H5PEcFL2FLMUr7CS6PJbn68BpiFcE1VM6ZnuqgtauDRpWrbkLiijAvQertm/kSw18IPtrERFd9dDoUq7niK1sVcKOFEyTZrwIghiN9wfSk3IpVb1duF1ElOH4ZLFo/lW+hgtUdRr6QfTkVT4p2DWCBUOrUoLBIZjGQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(376002)(136003)(346002)(396003)(39850400004)(366004)(7696005)(83380400001)(53546011)(966005)(2906002)(66446008)(6916009)(9686003)(6506007)(8936002)(71200400001)(76116006)(316002)(26005)(66946007)(86362001)(478600001)(33656002)(52536014)(55016002)(166002)(8676002)(186003)(5660300002)(64756008)(66476007)(66556008)(130980200001); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?KBVoA5ubnyOTOQBKbxWwRzokVnmpi0HQlf4wal0DwhRFMFPlOgpob5xVKwjL?= =?us-ascii?Q?u8Teh+A2IM6vBasIl54NxCEwsgD0xtaDEbBDU05Um4CHM1VNIonsmUF212ak?= =?us-ascii?Q?2bjc3E3MtSrV/UyZSKCjaCoyJYYEGD4J0C/tq78LXfQwsy7ih93Z8WtdfNcE?= =?us-ascii?Q?6EQtGiuauQz3t5W5wth98uDVMfFf4Km/Minwcb1/83curgP22OqzRCG/88Y1?= =?us-ascii?Q?CPJYLMcGaOTZ+DOJs2iJDgsxDyW3T9cffJx+WxcIxhnFTwuGrV+ltYAT50QE?= =?us-ascii?Q?oFp0dET3hUik/St+gO1sKsvkyz7C8tpVqwVPgarL+KwdjJTJvFpQU4wi9gai?= =?us-ascii?Q?2LANdKGYQOX7C4Mk2ZD//PKXcQ8nRwW4i3xzzjx2w2CNdpPqNNtUU/eMquP9?= =?us-ascii?Q?Z7mUUufUOhdMHk45x45GdWXJlHSMwYLM2Mnp2p5nMk8XD03h3/PM/U9R8NC6?= =?us-ascii?Q?GpnBjjS1Lx5UnymhYwkWiOJXnv2vVLRQGx4Cac0T430Y2BvGE1zh2rkkkMM/?= =?us-ascii?Q?OoGhjMy5lKSzGFH4MSbr6M78MqslerE8v1LFxPPCQ0iu8Vy41v9tla59lgmv?= =?us-ascii?Q?5tVyDgGIUEreYycjRjDjR17EdTuWok0LeLvK7bSZSW5rlVR1B0JC2wh5vPVy?= =?us-ascii?Q?g8yIOPS47bd7fCyLeJTFZi/ior2RLJsEj9sbj+Lf+AIE9tiDG8i4FU6g97Zy?= =?us-ascii?Q?Xexx2cq/feklAgirV5b6Jq0JsvKb4oyvYNp0IM1ykliwaxRcfDPB7KCBAWtx?= =?us-ascii?Q?pLKRHmSsYrna6RRm+MmdUrb3YjUz1ZRjmqkdkiM74dHkjDVS8hj9Bf8VZgIN?= =?us-ascii?Q?CfHiGlUUlowAYjPLbv1fvmcC2Wfjsdw3QgWhMd5lNPAgjxh0rn12xWX3pDk6?= =?us-ascii?Q?eV+DPyBpWaPsOSaNFS8diOo65KP2VxHFN1B1H51obg0nYC6Vuk58XGCDrywp?= =?us-ascii?Q?Xl+w1/MhdO/JGdZV3VjypNKjBHDJGhJidTZIUG/gJyo=3D?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB508484BA0769D1A406157E739BD10DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0aff8fe0-599e-4ddd-745d-08d8b18e3c2a
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2021 15:26:12.4843 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 8Zz6qcsmhuVENH+Dfl3u3hemP9VtiHfGxIX60mf3chLJZNPiBiu++AkQ6sm4kEyH/MwEQ0rGLbHQRp1d8TcQcw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB6060
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/AnvZSKC_ZhJ2pI40l7ftJETgMQc>
Subject: Re: [netmod] NETMOD Versioning virtual interim #2 - Week of Feb 1, 2021 - poll for attendees
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2021 15:26:16 -0000

--_000_DM6PR08MB508484BA0769D1A406157E739BD10DM6PR08MB5084namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello WG,

In our weekly YANG Versioning call today we decided that we should tackle t=
he meaning of BC vs NBC for config false nodes in the Feb virtual interim.

We're also unlikely to get through all of the topics below so the updated a=
genda of topics is as follows:

T1) Definition/meaning of BC vs NBC for config false nodes
https://github.com/netmod-wg/yang-ver-dt/issues/15

T2) IANA considerations: how are final RFC revision labels assigned ?
https://github.com/netmod-wg/yang-ver-dt/issues/59

T3) YANG file naming when revision labels are being used (symbolic links? @=
<revision-label>) ?

T4) SemVer: gaps in history, removing revision statements
https://github.com/netmod-wg/yang-ver-dt/issues/61

Please indicate your availability on the doodle poll (link below).

Rgds,
Jason

From: netmod <netmod-bounces@ietf.org> On Behalf Of Sterne, Jason (Nokia - =
CA/Ottawa)
Sent: Thursday, December 17, 2020 6:12 PM
To: netmod@ietf.org
Subject: [netmod] NETMOD Versioning virtual interim #2 - Week of Feb 1, 202=
1 - poll for attendees

Hi all,

The first Virtual Interim for YANG Versioning topics was quite useful. Than=
ks to all who attended and helped prepare.

We're going to hold a second interim in the first week of February.

### YOUR RESPONSE REQUESTED ###
Please fill in the doodle poll with what days in the Feb 1-4 range you coul=
d arrange your schedule to attend.
- If you will, or even *may* attend, then please fill in the doodle poll
- if you don't intend to attend, then please do not fill in the doodle poll
https://doodle.com/poll/b5uveesppy8sf6rm

The focus of versioning interim #2 is likely the following topics (we may n=
ot get through all of them):

1) IANA considerations: how are final RFC revision labels assigned ?
https://github.com/netmod-wg/yang-ver-dt/issues/59

2) YANG file naming when revision labels are being used (symbolic links? @<=
revision-label>) ?

3) SemVer: mandatory for IETF ?
https://github.com/netmod-wg/yang-ver-dt/issues/45

4) SemVer: initial revision label for drafts and RFC updates
https://github.com/netmod-wg/yang-ver-dt/issues/60

5) SemVer: gaps in history, removing revision statements
https://github.com/netmod-wg/yang-ver-dt/issues/61


Topics 1 and 2 are related to YANG module versioning:
https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-module-versioning/

Topics 3-5 are related to the Semver draft:
https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-semver

As before, we will send materials before the meeting.

Rgds,
Jason


--_000_DM6PR08MB508484BA0769D1A406157E739BD10DM6PR08MB5084namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hello WG,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">In our weekly YANG Versioning call today we decided =
that we should tackle the meaning of BC vs NBC for config false nodes in th=
e Feb virtual interim.
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We're also unlikely to get through all of the topics=
 below so the updated agenda of topics is as follows:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T1) Definition/meaning =
of BC vs NBC for config false nodes<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/15">https://github.com/netmod-wg/yang-v=
er-dt/issues/15</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T2) IANA considerations=
: how are final RFC revision labels assigned ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/59">https://github.com/netmod-wg/yang-v=
er-dt/issues/59</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T3) YANG file naming wh=
en revision labels are being used (symbolic links? @&lt;revision-label&gt;)=
 ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T4) SemVer: gaps in his=
tory, removing revision statements<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/61">https://github.com/netmod-wg/yang-v=
er-dt/issues/61</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Please indicate your availability on the doodle poll=
 (link below).
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Rgds,<br>
Jason<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"mso-fareast-languag=
e:EN-CA">From:</span></b><span lang=3D"EN-US" style=3D"mso-fareast-language=
:EN-CA"> netmod &lt;netmod-bounces@ietf.org&gt;
<b>On Behalf Of </b>Sterne, Jason (Nokia - CA/Ottawa)<br>
<b>Sent:</b> Thursday, December 17, 2020 6:12 PM<br>
<b>To:</b> netmod@ietf.org<br>
<b>Subject:</b> [netmod] NETMOD Versioning virtual interim #2 - Week of Feb=
 1, 2021 - poll for attendees<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Hi all,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The first Virtual Interim for YANG Versioning topics=
 was quite useful. Thanks to all who attended and helped prepare.<o:p></o:p=
></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We're going to hold a second interim in the first we=
ek of February.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><b><u>### YOUR RESPONSE REQUESTED ###<o:p></o:p></u>=
</b></p>
<p class=3D"MsoNormal">Please fill in the doodle poll with what days in the=
 Feb 1-4 range you could arrange your schedule to attend.<o:p></o:p></p>
<p class=3D"MsoNormal">- If you will, or even *<b>may</b>* attend, then ple=
ase fill in the doodle poll<o:p></o:p></p>
<p class=3D"MsoNormal">- if you don't intend to attend, then please do not =
fill in the doodle poll<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://doodle.com/poll/b5uveesppy8sf6rm"=
>https://doodle.com/poll/b5uveesppy8sf6rm</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The focus of versioning interim #2 is likely the fol=
lowing topics (we may not get through all of them):<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">1) IANA considerations:=
 how are final RFC revision labels assigned ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/59">https://github.com/netmod-wg/yang-v=
er-dt/issues/59</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">2) YANG file naming whe=
n revision labels are being used (symbolic links? @&lt;revision-label&gt;) =
?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">3) SemVer: mandatory fo=
r IETF ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/45">https://github.com/netmod-wg/yang-v=
er-dt/issues/45</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">4) SemVer: initial revi=
sion label for drafts and RFC updates<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/60">https://github.com/netmod-wg/yang-v=
er-dt/issues/60</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">5) SemVer: gaps in hist=
ory, removing revision statements<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/61">https://github.com/netmod-wg/yang-v=
er-dt/issues/61</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Topics 1 and 2 are related to YANG module versioning=
:<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://datatracker.ietf.org/doc/draft-ie=
tf-netmod-yang-module-versioning/">https://datatracker.ietf.org/doc/draft-i=
etf-netmod-yang-module-versioning/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Topics 3-5 are related to the Semver draft:<o:p></o:=
p></p>
<p class=3D"MsoNormal"><a href=3D"https://datatracker.ietf.org/doc/draft-ie=
tf-netmod-yang-semver">https://datatracker.ietf.org/doc/draft-ietf-netmod-y=
ang-semver</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">As before, we will send materials before the meeting=
.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Rgds,<o:p></o:p></p>
<p class=3D"MsoNormal">Jason<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</body>
</html>

--_000_DM6PR08MB508484BA0769D1A406157E739BD10DM6PR08MB5084namp_--


From nobody Tue Jan  5 07:42:07 2021
Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BD88D3A1115 for <netmod@ietfa.amsl.com>; Tue,  5 Jan 2021 07:41:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.949
X-Spam-Level: 
X-Spam-Status: No, score=-1.949 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, HTTP_ESCAPED_HOST=0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URI_HEX=0.1] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 LFka7l-25LQl for <netmod@ietfa.amsl.com>; Tue,  5 Jan 2021 07:41:54 -0800 (PST)
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2108.outbound.protection.outlook.com [40.107.93.108]) (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 5EB373A10E9 for <netmod@ietf.org>; Tue,  5 Jan 2021 07:41:51 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VlZ+UhprZIYFUxiH/Zsvu9XOrRcOoVVlQeLYJdalC/ecLWbWUoWXKJ8tU85xKwTLnmxLSmgG86PSDPFbDl9b4Ow+j3hkLCcPmy6prVXytL/EGbgKV+/CUa7ihrpWYnqvpG4BVhAEOy3qdTYcvBNcAIQEwlV91Ap2qKJgYf4RKhGjc8w6qJk9iPdZGxl+4Q/n0ZArlLhXNKo2S0FGibhoLI5JhuFL+GVwH/cs7qd5LFrR5m8f+n962f6/2BdQMPJDVOZrGKEzM1AmlRpfJRYOVqpZQWLnaxuYjSFPH2XPz7jzwaSJ1Ln5POiW2wmtJqZSMCTaNZRmJfPoBvj4oRh6cA==
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=7loDJEm5esYE/XvVZCRaeYG75qKCivdF6vf+ij+vQVE=; b=DyeydqCGAJiCWPVAoyAGkC4gb4y511WRgfsE4PvOnrAcFZSFdMCbL92EIMewdrB6WXdUPbw6/pqRF6W598ytqwuJ2dPFyz+RKZch0NQjRxXjw0FeHLtU1s+GLarEEAaqg1hIi66uYER5Mcx/Zluo1mEz6xMdtgd05j2ZKAkJ59uMx6bB6qL24TCYLU1rDca0UYRtNTBjngDtxFN4YtfQjuz7lEIBIVGROif1NNEv5Jv0Z7DFoJDN0SSqSr8xsIUxmn/LtoVOIu06bcDxXvHN+5nTMij6I8HnKfVi8uNXbfO9A65ihvG7Q50UKw+AU+gdExg0iIIMTOWhxhz6ENJekQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7loDJEm5esYE/XvVZCRaeYG75qKCivdF6vf+ij+vQVE=; b=lR2Mn8PDZ8UdMym8wpcf539ZNdDEiycncQ4Edv0/WtCYDi8k7JwXYDR/8lESOIytwDAwQJyo4hcWro1UtoWcxGnRmLBUgWwyr9WewqOZCpsAWiPycErxHcDdFW52BrFxLExvuyRSF7UuBQsm31+IUAwXAZjnSx0p5owFpYf46ho=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM6PR08MB5802.namprd08.prod.outlook.com (2603:10b6:5:178::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.21; Tue, 5 Jan 2021 15:41:46 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3%5]) with mapi id 15.20.3721.024; Tue, 5 Jan 2021 15:41:46 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: YANG Versioning Weekly Call Minutes - 2021-01-05
Thread-Index: AdbjeIxzPM27AdyvRCyi/fCc/KwiKg==
Date: Tue, 5 Jan 2021 15:41:45 +0000
Message-ID: <DM6PR08MB508424D127965412E3EDCAF49BD10@DM6PR08MB5084.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [24.226.236.156]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: d086d059-e5d8-4eac-f348-08d8b1906893
x-ms-traffictypediagnostic: DM6PR08MB5802:
x-microsoft-antispam-prvs: <DM6PR08MB5802C34BBFCEC3953300DB1F9BD10@DM6PR08MB5802.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: KOHTUI24rGBD0awrPs5pECOZIMLqkA8JAqJ5aLXns3SvxZFcR6gHTnIIt9ym65WtUNN5su6zBJrBjj/i7aKWykoahnFe3Bc/NPa3/dJD665P1Bt14Dg5/tGRMAUyWINDwVDc4yg0dB8E+2GgkCUalLkO58nEyqSasH1TQRjDuWxHIbcwT0WtjlXHBLanE2ZUhnBkbbe30zeLWRK0zGcX04GgQcHgpe4l8VPIpp9MK+kUSHXLKkABsqGZd/kWn3Gr4v/lRLDg/m9A1/AbpmzhNyI9JuA3o8opyngh91XIUQjIk/1KnYmWnRulyY0dm4wv9l1VR0r/Lqbw17rV1iGvzc4EyB7Em5ARU+pwdTvdyN7ebbd5/JueTyCR3IUlKWm8vuTSN3zsluWMQ3so+S+k3lpgAdxcpB6upDzk8VIrxbwtgzZByN2+7WMr8nepOuZO9qBi45O5k3iRbIAl4sgp6A==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(136003)(39850400004)(346002)(396003)(366004)(376002)(76116006)(66556008)(6916009)(8936002)(55016002)(16799955002)(66446008)(66946007)(64756008)(66476007)(9686003)(186003)(52536014)(26005)(966005)(478600001)(71200400001)(2906002)(7696005)(33656002)(6506007)(8676002)(19627405001)(83380400001)(45080400002)(316002)(86362001)(166002)(5660300002); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?cHStgnixJGM6bTStfw0kYrY+tfRhVBjBTPJtZCLe+JFh75pucu2focVXlZxU?= =?us-ascii?Q?VewjfoxmCj5B3iJk2/xClAWhLr4ZpPEaZdaXSh8P37Xxp7EHZOATLUTDaDRl?= =?us-ascii?Q?CKWQn7EsmzWCCd8EOgCDPsQD/HG/GcmF5EFWsh4WNgN42zyu0v5vvhSEKS4J?= =?us-ascii?Q?i+VfyeWJBtS5pIX13wY/ddEOJjxciS4jzka/jIKLJyp2jcHJfHnE04XEf5Ps?= =?us-ascii?Q?1/kW/YwqBxi9RfjLaHMKHN2Q49dLimBSKIX3taXlFPzZlleO0VaSOjVJBDZn?= =?us-ascii?Q?PsMdGh/tdFCcpkW2j2N+LMfIRntDuFSje6vWMRUKbzULm4vcOQag1cIdmysu?= =?us-ascii?Q?9fih70HhCcBTA2fj7Qt2j7y5Zi6YawOKBLturOvg5LXz+x2j/ePEt247jjnD?= =?us-ascii?Q?s4iW0/OOKP8joeZvDYkQklNVVsENWswnNM1h4L44dO5Sxmh233ZPt1dYjo/R?= =?us-ascii?Q?4mMJVb0UD4giEm2QZP6aDT0x5TppcXQfhbkPJWAI5JsDHWCzY20Imlzdi3ld?= =?us-ascii?Q?NBSw7YtcZRys1iZWifNVp4gOJpXV7edNOKBzkDV2KsLCOmSeDQiU4HP4mozx?= =?us-ascii?Q?E0gx4tHZnJp/hhNYLuklUpODkfVf5J1a+4RTFLollJoewO4udt1ZvO9t0p5G?= =?us-ascii?Q?ihzBULaRHpd5Me0UwGe5OthWHchQhiqmKdIHyhx7g8OQ7M/Qd9BtJmH8C6YJ?= =?us-ascii?Q?n+cx9nGgQHvRsxDsUyCfC1XmfzzDasS/35rINKwK3jdnqiiBR4aFAo1mUYge?= =?us-ascii?Q?qUa8DSJHXagAVw6oTHLl5HsagSk2VzMmqGO4sqhQTeCip9FFCL6pnE/GaxZi?= =?us-ascii?Q?MaoXBVx4o2w/TStabFXvgGQll+935YER+QssMrOHbSfavZntrfYb7gFEy9Kj?= =?us-ascii?Q?Xt18XzUTt3bEdNUQuQ7dCvdTt6tI0lTeVpg1PnC6iA0wMSQLZCPn/vMnOBgH?= =?us-ascii?Q?fAFNjiZ7jmbdIM5+4erq0cvYXNxFEsFA2fggm8qONE0=3D?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB508424D127965412E3EDCAF49BD10DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d086d059-e5d8-4eac-f348-08d8b1906893
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2021 15:41:45.9439 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UkZBkqw7JJp1+EV6L9oeqQ9Krddx5VP+ZKlGwow+YYHDph2LZqlBWsER2veFNFBZg/SO/GS9xZvRmxpuW8xmfQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB5802
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/zp4kXgA9FCcKtTgvpvjx9Z2dwwk>
Subject: [netmod] YANG Versioning Weekly Call Minutes - 2021-01-05
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2021 15:42:02 -0000

--_000_DM6PR08MB508424D127965412E3EDCAF49BD10DM6PR08MB5084namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

YANG Versioning Weekly Call Minutes - 2021-01-05
(see the link below to join the calls)

Key topics & next steps for the versioning work:
A) drafts expiring (reqs, versioning, semver)
    -> bump requirements draft
    -> let versioning and semver expire until real updates or IETF 110
B) open issues review (yang versioning first)
    -> we left off at issue #15  https://github.com/netmod-wg/yang-ver-dt/i=
ssues/15
C) next virtual interim (who preparing what?)
    -> Balazs for config false rules
D) ORAN/3GPP liaison statement
E) Whitespace issue

Add new topic to Feb virtual interim:
## new: 0) Definition/meaning of BC vs NBC for config false nodes

Move the Semver "gaps in history" issue as the first Semver issue for the F=
eb virtual interim

BC vs NBC for config false nodes:
- review expectations of clients (e.g. handle unknown tags, handle values o=
utside the 'range' statement)
- no validation on outgoing data today in 7950. Is that an indication that =
there are no guarantees on config false nodes?
- changing type should be NBC for config true or false nodes (**including c=
hanging something to a union that is a superset of the previous type? -> ye=
s, receiver may suddenly get that new member)
- reverse the meaning of some rules (expanding vs shrinking value spaces), =
but look at 3.3
- adding mandatory: different rule for config true vs false?
- suggested approach: go through 7950 rules and try to stick with them as m=
uch as we can for config false, but define/highlight rules that should be d=
ifferent for config false
[Balazs to take a first stab at the rules]

Jason



NETMOD Working Group changed the Webex meeting information.


When it's time, join the Webex meeting here.


Meeting number (access code): 171 069 0374

Meeting password: semver?


Occurs every Tuesday effective Tuesday, September 1, 2020 until Tuesday, Au=
gust 24, 2021 from 9:00 AM to 10:00 AM, (UTC-04:00) Eastern Time (US & Cana=
da)
9:00 am  |  (UTC-04:00) Eastern Time (US & Canada)  |  1 hr



Join meeting<https://ietf.webex.com/ietf/j.php?MTID=3Dma7627a2ae7b770537cff=
5f5b89293c70>



Tap to join from a mobile device (attendees only)
+1-650-479-3208,,1710690374##<tel:%2B1-650-479-3208,,*01*1710690374%23%23*0=
1*> Call-in toll number (US/Canada)


Join by phone
1-650-479-3208 Call-in toll number (US/Canada)
Global call-in numbers<https://ietf.webex.com/ietf/globalcallin.php?MTID=3D=
m5914d38cfac744cced3593159cb7f971>



Join from a video system or application
Dial 1710690374@ietf.webex.com<%20sip:1710690374@ietf.webex.com>
You can also dial 173.243.2.68 and enter your meeting number.



Join using Microsoft Lync or Microsoft Skype for Business
Dial 1710690374.ietf@lync.webex.com<%20sip:1710690374.ietf@lync.webex.com>



Need help? Go to http://help.webex.com



--_000_DM6PR08MB508424D127965412E3EDCAF49BD10DM6PR08MB5084namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US">YANG Versioning Weekly Call Min=
utes - 2021-01-05<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">(see the link below to join the=
 calls)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Key topics &amp; next steps for=
 the versioning work:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">A) drafts expiring (reqs, versi=
oning, semver)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp; -&gt; bump r=
equirements draft<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp; -&gt; let ve=
rsioning and semver expire until real updates or IETF 110<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">B) open issues review (yang ver=
sioning first)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp; -&gt; we lef=
t off at issue #15</span><span lang=3D"EN-US"> &nbsp;</span>https://github.=
com/netmod-wg/yang-ver-dt/issues/15<o:p></o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">C) next virtual interim (who pr=
eparing what?)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp; -&gt; Balazs=
 for config false rules<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">D) ORAN/3GPP liaison statement<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">E) Whitespace issue<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Add new topic to Feb virtual in=
terim:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">## new: 0) Definition/meaning o=
f BC vs NBC for config false nodes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Move the Semver &quot;gaps in h=
istory&quot; issue as the first Semver issue for the Feb virtual interim<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">BC vs NBC for config false node=
s:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">- review expectations of client=
s (e.g. handle unknown tags, handle values outside the 'range' statement)<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">- no validation on outgoing dat=
a today in 7950. Is that an indication that there are no guarantees on conf=
ig false nodes?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">- changing type should be NBC f=
or config true or false nodes (**including changing something to a union th=
at is a superset of the previous type? -&gt; yes, receiver may suddenly get=
 that new member)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">- reverse the meaning of some r=
ules (expanding vs shrinking value spaces), but look at 3.3<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">- adding mandatory: different r=
ule for config true vs false?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">- suggested approach: go throug=
h 7950 rules and try to stick with them as much as we can for config false,=
 but define/highlight rules that should be different for config false<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">[Balazs to take a first stab at=
 the rules]<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Jason<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0">
<tbody>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p style=3D"line-height:16.5pt;mso-element:frame;mso-element-frame-hspace:2=
.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-ele=
ment-anchor-horizontal:column;mso-height-rule:exactly">
<b><span style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,sans-serif=
;color:black">NETMOD Working Group changed the Webex meeting information.
<o:p></o:p></span></b></p>
</td>
</tr>
<tr style=3D"height:15.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:15.0pt">
<p class=3D"MsoNormal" style=3D"line-height:15.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p style=3D"line-height:16.5pt;mso-element:frame;mso-element-frame-hspace:2=
.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-ele=
ment-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:black">When it's time, join the Webex meeting here.
<o:p></o:p></span></p>
</td>
</tr>
<tr style=3D"height:15.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:15.0pt">
<p class=3D"MsoNormal" style=3D"line-height:15.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<div style=3D"mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element=
-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horiz=
ontal:column;mso-height-rule:exactly">
<table cellspacing=3D"0" cellpadding=3D"0" hspace=3D"0" vspace=3D"0" align=
=3D"left">
<tbody>
<tr>
<td valign=3D"top" align=3D"left" style=3D"padding-top:0cm;padding-right:2.=
25pt;padding-bottom:0cm;padding-left:2.25pt">
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0" width=3D"0" =
style=3D"width:0cm;width:auto!important">
<tbody>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:16.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:black">Meeting number (access code): 171 069 0374
<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0" width=3D"0" =
style=3D"width:0cm;width:auto!important">
<tbody>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:16.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:black">Meeting password: semver?<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0" width=3D"100=
%" style=3D"width:100.0%">
<tbody>
<tr style=3D"height:12.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:12.0pt">
<p class=3D"MsoNormal" style=3D"line-height:12.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:16.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#666666">Occurs every Tuesday effective Tuesday, September 1, 2020 unti=
l Tuesday, August 24, 2021 from 9:00 AM to 10:00 AM, (UTC-04:00) Eastern Ti=
me (US &amp; Canada)
<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:16.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:12.0pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#666666">9:00 am&nbsp;&nbsp;|&nbsp;&nbsp;(UTC-04:00) Eastern Time (US &=
amp; Canada)&nbsp;&nbsp;|&nbsp;&nbsp;1 hr
<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0">
<tbody>
<tr style=3D"height:15.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:15.0pt">
<p class=3D"MsoNormal" style=3D"line-height:15.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0" width=3D"0" =
style=3D"width:0cm;width:auto!important">
<tbody>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm;width:auto!important">
<table class=3D"MsoNormalTable" border=3D"1" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"0" style=3D"width:0cm;background:#43A942;border:solid #43A9=
42 1.0pt;width:auto!important">
<tbody>
<tr>
<td style=3D"border:none;padding:7.5pt 27.0pt 7.5pt 27.0pt;width:auto!impor=
tant;border-radius:20px;min-width:160px!important">
<p class=3D"MsoNormal" align=3D"center" style=3D"text-align:center;line-hei=
ght:13.5pt;mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wr=
ap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizont=
al:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333"><a href=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dma7627a2ae=
7b770537cff5f5b89293c70"><span style=3D"font-size:15.0pt;font-family:&quot;=
Calibri&quot;,sans-serif;color:white;text-decoration:none">Join
 meeting</span></a><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0">
<tbody>
<tr style=3D"height:36.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:36.0pt">
<p class=3D"MsoNormal" style=3D"line-height:36.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0">
<tbody>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<b><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;=
color:black">Tap to join from a mobile device (attendees only)<o:p></o:p></=
span></b></p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333"><a href=3D"tel:%2B1-650-479-3208,,*01*1710690374%23%23*01*"><s=
pan style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;co=
lor:#00AFF9;text-decoration:none">+1-650-479-3208,,1710690374##</span></a>
 Call-in toll number (US/Canada)<o:p></o:p></span></p>
</td>
</tr>
<tr style=3D"height:18.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:18.0pt">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0">
<tbody>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<b><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;=
color:black">Join by phone<o:p></o:p></span></b></p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">1-650-479-3208&nbsp;Call-in toll number (US/Canada)<o:p></o:p>=
</span></p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333"><a href=3D"https://ietf.webex.com/ietf/globalcallin.php?MTID=
=3Dm5914d38cfac744cced3593159cb7f971"><span style=3D"font-size:11.0pt;font-=
family:&quot;Calibri&quot;,sans-serif;color:#00AFF9;text-decoration:none">G=
lobal
 call-in numbers</span></a><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0">
<tbody>
<tr style=3D"height:21.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:21.0pt">
<p class=3D"MsoNormal" style=3D"line-height:21.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0">
<tbody>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<b><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;=
color:black">Join from a video system or application<o:p></o:p></span></b><=
/p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">Dial <a href=3D"%20sip:1710690374@ietf.webex.com">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;=
color:#00AFF9;text-decoration:none">1710690374@ietf.webex.com</span></a><o:=
p></o:p></span></p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">You can also dial 173.243.2.68 and enter your meeting number.<=
o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0">
<tbody>
<tr style=3D"height:15.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:15.0pt">
<p class=3D"MsoNormal" style=3D"line-height:15.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0">
<tbody>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<b><span style=3D"font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif;=
color:black">Join using Microsoft Lync or Microsoft Skype for Business<o:p>=
</o:p></span></b></p>
</td>
</tr>
<tr>
<td style=3D"padding:0cm 0cm 0cm 0cm">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">Dial <a href=3D"%20sip:1710690374.ietf@lync.webex.com">
<span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;=
color:#00AFF9;text-decoration:none">1710690374.ietf@lync.webex.com</span></=
a><o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333;display:none"><o:p>&nbsp;</o:p></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0">
<tbody>
<tr style=3D"height:15.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:15.0pt">
<p class=3D"MsoNormal" style=3D"line-height:15.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<table class=3D"MsoNormalTable" border=3D"0" cellpadding=3D"0" align=3D"lef=
t" width=3D"100%" style=3D"width:100.0%">
<tbody>
<tr style=3D"height:54.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:54.0pt">
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
<tr style=3D"height:18.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:18.0pt">
<p class=3D"MsoNormal" style=3D"line-height:18.0pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:black">Need help? Go to
<a href=3D"http://help.webex.com"><span style=3D"font-size:11.0pt;font-fami=
ly:&quot;Calibri&quot;,sans-serif;color:#049FD9;text-decoration:none">http:=
//help.webex.com</span></a>
<o:p></o:p></span></p>
</td>
</tr>
<tr style=3D"height:33.0pt">
<td style=3D"padding:0cm 0cm 0cm 0cm;height:33.0pt">
<p class=3D"MsoNormal" style=3D"line-height:13.5pt;mso-element:frame;mso-el=
ement-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertic=
al:paragraph;mso-element-anchor-horizontal:column;mso-height-rule:exactly">
<span style=3D"font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;co=
lor:#333333">&nbsp;<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
</body>
</html>

--_000_DM6PR08MB508424D127965412E3EDCAF49BD10DM6PR08MB5084namp_--


From nobody Tue Jan  5 13:07:13 2021
Return-Path: <joelja@bogus.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DEF563A1215; Tue,  5 Jan 2021 13:07:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level: 
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 aOLcI9vKaXFt; Tue,  5 Jan 2021 13:07:09 -0800 (PST)
Received: from nagasaki.bogus.com (nagasaki.bogus.com [IPv6:2001:418:1::81]) (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 43CA13A1211; Tue,  5 Jan 2021 13:07:09 -0800 (PST)
Received: from jmbp.local ([IPv6:2601:1c0:cb00:5dd1:2c80:2c7d:875d:fc1d]) (authenticated bits=0) by nagasaki.bogus.com (8.15.2/8.15.2) with ESMTPSA id 105L77ou097063; Tue, 5 Jan 2021 21:07:08 GMT (envelope-from joelja@bogus.com)
X-Authentication-Warning: nagasaki.bogus.com: Host [IPv6:2601:1c0:cb00:5dd1:2c80:2c7d:875d:fc1d] claimed to be jmbp.local
To: "netmod@ietf.org" <netmod@ietf.org>
Cc: "netmod-chairs@ietf.org" <netmod-chairs@ietf.org>
References: <20210104230610.954B2F40754@rfc-editor.org>
From: Joel Jaeggli <joelja@bogus.com>
Message-ID: <ae726e45-2081-24a7-36ac-22f403bf7bd1@bogus.com>
Date: Tue, 5 Jan 2021 13:07:00 -0800
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.6.0
MIME-Version: 1.0
In-Reply-To: <20210104230610.954B2F40754@rfc-editor.org>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/5yeCdolW0-4UBiHbhkYYm5C4NDo>
Subject: [netmod] Congratulations... Re:  RFC 8819 on YANG Module Tags
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2021 21:07:12 -0000

On getting this one out the door.

The utility of this work to all of us is greatly appreciated.

joel

On 1/4/21 15:06, rfc-editor@rfc-editor.org wrote:
> A new Request for Comments is now available in online RFC libraries.
>
>         
>         RFC 8819
>
>         Title:      YANG Module Tags 
>         Author:     C. Hopps,
>                     L. Berger,
>                     D. Bogdanovic
>         Status:     Standards Track
>         Stream:     IETF
>         Date:       January 2021
>         Mailbox:    chopps@chopps.org, 
>                     lberger@labn.net, 
>                     ivandean@gmail.com
>         Pages:      19
>         Updates:    RFC 8407
>
>         I-D Tag:    draft-ietf-netmod-module-tags-10.txt
>
>         URL:        https://www.rfc-editor.org/info/rfc8819
>
>         DOI:        10.17487/RFC8819
>
> This document provides for the association of tags with YANG modules.
> The expectation is for such tags to be used to help classify and
> organize modules. A method for defining, reading, and writing modules
> tags is provided. Tags may be registered and assigned during module
> definition, assigned by implementations, or dynamically defined and
> set by users. This document also provides guidance to future model
> writers; as such, this document updates RFC 8407.
>
> This document is a product of the Network Modeling Working Group of the IETF.
>
> This is now a Proposed Standard.
>
> STANDARDS TRACK: This document specifies an Internet Standards Track
> protocol for the Internet community, and requests discussion and suggestions
> for improvements.  Please refer to the current edition of the Official
> Internet Protocol Standards (https://www.rfc-editor.org/standards) for the 
> standardization state and status of this protocol.  Distribution of this 
> memo is unlimited.
>
> This announcement is sent to the IETF-Announce and rfc-dist lists.
> To subscribe or unsubscribe, see
>   https://www.ietf.org/mailman/listinfo/ietf-announce
>   https://mailman.rfc-editor.org/mailman/listinfo/rfc-dist
>
> For searching the RFC series, see https://www.rfc-editor.org/search
> For downloading RFCs, see https://www.rfc-editor.org/retrieve/bulk
>
> Requests for special distribution should be addressed to either the
> author of the RFC in question, or to rfc-editor@rfc-editor.org.  Unless
> specifically noted otherwise on the RFC itself, all RFCs are for
> unlimited distribution.
>
>
> The RFC Editor Team
> Association Management Solutions, LLC
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>


From nobody Tue Jan 12 05:56:10 2021
Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EA0F73A126D for <netmod@ietfa.amsl.com>; Tue, 12 Jan 2021 05:56:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.15
X-Spam-Level: 
X-Spam-Status: No, score=-2.15 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 LvgW35SmiKLT for <netmod@ietfa.amsl.com>; Tue, 12 Jan 2021 05:56:07 -0800 (PST)
Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2111.outbound.protection.outlook.com [40.107.236.111]) (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 A6D083A126B for <netmod@ietf.org>; Tue, 12 Jan 2021 05:56:05 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JN9dsgIRTtuw/j1+/exb6x/JfcEzZ8Bjpp5O+3Ayfm72w8aSxD+fjk9+qHZbFLJR4LLWOAKKT38IprATp6essMEZlJSWZ8UdJ50OHyGfWmv1xkAUNE78DW9Qy8RlsjmLnzmg6kK+7DRruwBJPMbFs9/dKoEOEVK9tf9wd3xST50J+7yhBdur1cydi6xhBJ+C0O9OrgTJWQDKXuuFs+EOWakp5799VdLkzQv/Tq4X/8lUuKBw/HVn7K0xamjBbNc3XOBn+GqaxriusQqRgcoL0UeqPha+oRbd7//E9q0qzgUfQ3/i6HwICEtB/XkUyU5aI4CBYmHLCixIk1CHvVBidg==
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=1VkyCzmD3mx5hv7sLxZ5/Oo/u2Qxz2hOQFo6IHbpLro=; b=gbjkQffq1Y2ZHZdI91/VoZ0Qbkn4WnyG5NzsWX1BdvUZH4IYJgWYEGd4MS1ofIqgMFPPyeWMCG5MW35+h4Dg8KW2Ne4IzT9zR/6zb5ZOhqdd7OnKX5rJx2obAVBjerdX5hPY8dWIEDUn5V4KblPBYvI7k7/LMETkdPmW64SDa9TFvRMaFz2zxyepzM5otXigHz78uSplEqY4i7l9aimpbZFLv71UB05Fdd6RsafupBj7Yd8wbRx9dW4ohSR9cgXbS5M8rr6ZEiekSAR7eTx8N1leaYF0oRiaYFKeJRR/MeYYtUTI0Cnb4De+duP0Oe4M2HLKN0/DPX689WZoxpZanQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1VkyCzmD3mx5hv7sLxZ5/Oo/u2Qxz2hOQFo6IHbpLro=; b=SVRoOEv2SOiF7gPCpKQRuD4UWtLsvZWjLGqYokSwSH9/0M0xU95KySWIbFduEIbPs+qne3QvHSJ3MpwX6iieKawUMLYq2xnnwpvvqQAkFqqCSvlEY19AUEP7QdHN/HEK2uOz8pPL+lOR1IUdzWhXwFdiqECyAB/MUJTX1ZAIIaE=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM6PR08MB4153.namprd08.prod.outlook.com (2603:10b6:5:8f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.10; Tue, 12 Jan 2021 13:56:03 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3%5]) with mapi id 15.20.3742.012; Tue, 12 Jan 2021 13:56:03 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: Defining YANG backwards compatibility rules for state
Thread-Index: Adbo6n6fx/1mWdEDTkemZJCQtFv5tA==
Date: Tue, 12 Jan 2021 13:56:03 +0000
Message-ID: <DM6PR08MB50840A58039E5ACF37AAEA489BAA0@DM6PR08MB5084.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [2607:fea8:e324:8d00:f965:4ae3:4b56:123b]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: c59ec724-7f67-4d6c-598a-08d8b701cce4
x-ms-traffictypediagnostic: DM6PR08MB4153:
x-microsoft-antispam-prvs: <DM6PR08MB4153D9DAB0DD06C98CAE6F0C9BAA0@DM6PR08MB4153.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6430;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: pYPANLWEkmn/ez6yguRMOPEjZ7SC01AN2BFBHQgzW10K7rwcsL0DkyCdDojO+ANIr1jEhVsIB7JP3JtLTneV4Nw0cfyfBUtBVXuMGWL9xBZeCuVxJSMiBfVm0mB0CRbm1HxwZH/6ApLesoeUOiuxYphAq7Tmnh+giLMnRa7mgJSFSJuL1uJAyJyjs6Itoj1rsHJp7EgG1TVD2sku4/JDzIBZ16T92Y8ylRAtkEj9p8KIZVbMiTv8zCeqDACjsL7KpbKjDTBea9F8vAIICmjjiFQXFJFdVErzCJ6i9uVhp7DCH1oQ5A9a/hjE/WKzIUZe8WqXHk8VhcRuQ3KT6jljzkjfDQoGKv5oilSHrdFl+vfB+h1BhhMfYXX/2RpSIhDR1znOPsNJFWeVa0oNwOBD2HOvBTfmfFrsfwV9cVQOJPO9Kv34xmMTqRI3P/xYUhh/m6mb84csBeLJVD8R1o2Y4A==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(346002)(136003)(366004)(39850400004)(376002)(396003)(66556008)(64756008)(66446008)(52536014)(55016002)(316002)(9686003)(71200400001)(5660300002)(186003)(8676002)(66476007)(86362001)(76116006)(66946007)(166002)(6506007)(53546011)(966005)(83380400001)(7696005)(6916009)(2906002)(478600001)(8936002)(33656002); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?bYqfOZ05JrFmHNvrBnnKfP4NTds5obDdZxNu8RLQGUg12JTSDyglPoIJ0lkn?= =?us-ascii?Q?2s93Xu/LXHj4mcQnuytn8T14u0R2gQLhFYcHKDN/eRRoSIsRIMLVqj3x6r32?= =?us-ascii?Q?ZUpmGhe1q52/Ich4FpJ/3vOr6c7F8FV/X2AKMCZyCoq7m8UUwho9qydI4PXf?= =?us-ascii?Q?94BkIIP/xdNDOZEtXYPVg82qD9YKUoF8C8LfrSO12MQCuV2ytix+XVs8JtWz?= =?us-ascii?Q?1IpRcWbOWC++9MDxrq4nV0Bcf3v33RYINtrUPkSBp9RngvF0fOaW31PqUS/u?= =?us-ascii?Q?fWMfQsoCfOPGMzSiWSrVV2NOG3AqvKVN1qEeUKHJ4DFuwgpFzKaIjWZaUP6F?= =?us-ascii?Q?n0nyu9fYgeDczu67YfjF4abQFDRil33uwUuiLM/o2X2klk9dnSyA8OaqPxko?= =?us-ascii?Q?HKhnTCaKCnEm6i5Nk3VJGXUjaPsKBqYTh/SjAp4OlGK5eend0Epm2PBH68Zb?= =?us-ascii?Q?8ksvalxSCpTzUi+IHILPW8KbdVflohgC1+YWZH+4mOq0qpR8VbQ7QNwKXlAE?= =?us-ascii?Q?Zo3IvNirIwR+Sy+nvu5ptj22hGgEIRr8TuGy5YAQiS8UJYeJzOWyXgc9UPVu?= =?us-ascii?Q?DgVlf9JoF9tJXfTyUxcp35qIFMLDgnIB7k/cR6qyvbt3B+Uv9fJBs4BR8Zr0?= =?us-ascii?Q?UChA+EaGDoq8q67zN+NE+Xzh2F/4qz1/DTV+wfnufTDjWueRlRx6I1M4PbGu?= =?us-ascii?Q?EDe2kkuL+bfwNk7eDZHodyLIUs1cS68u3dx+mYzW8PQfALnRZhz44QfFqjC6?= =?us-ascii?Q?CZWTk6wl7VQ8lWz2DeLBbymx1wpssB2AB6C+VEPQLTB4cJl0RbdZusDpWB67?= =?us-ascii?Q?tHDQVQca/LYhRvEXHJEd5BIRKL6iFv0vKCMtJUUK+wh+C+PMzcbh26Qwf2Gw?= =?us-ascii?Q?VIUom6l40vlBwKG52aIPUcuBQ2nrz1BZ2nsqCHH7n8gjDHW7a+uajw5cCk9z?= =?us-ascii?Q?oxOZEDZSmjYgp37NPjyJ9J9wI87emebtPeeX7NlEjcM4uwAWZC4quALzpraI?= =?us-ascii?Q?x+klj7L9zSbinIao3zYOkfGCYke+nMF/MMfLDutfGGF3mae+JZ7H71SDEmGD?= =?us-ascii?Q?m/8S66Lq?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB50840A58039E5ACF37AAEA489BAA0DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c59ec724-7f67-4d6c-598a-08d8b701cce4
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2021 13:56:03.2373 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /c3gWOWSfcFI5oBllMMQYI6ZUEOXWH4XHnnoUTo30wQiXHAMfGBO0p1Os+BYSg+0NNgFr+nN7jyJeXlK4bL4Vw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB4153
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/2ZStB6hi5mhUeWHSIspmu5t6Vqs>
Subject: [netmod] Defining YANG backwards compatibility rules for state
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2021 13:56:09 -0000

--_000_DM6PR08MB50840A58039E5ACF37AAEA489BAA0DM6PR08MB5084namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

One topic that we're planning to discuss in the NETMOD virtual interim meet=
ing in Feb is how to define backwards compatibility for YANG state (config =
false).

It would be great to get your participation in the discussion.  If you migh=
t be able to attend, please indicate your preferred date for the virtual in=
terim here:
https://doodle.com/poll/b5uveesppy8sf6rm

Rgds,
Jason

From: Sterne, Jason (Nokia - CA/Ottawa)
Sent: Tuesday, January 5, 2021 10:26 AM
To: netmod@ietf.org
Subject: RE: NETMOD Versioning virtual interim #2 - Week of Feb 1, 2021 - p=
oll for attendees

Hello WG,

In our weekly YANG Versioning call today we decided that we should tackle t=
he meaning of BC vs NBC for config false nodes in the Feb virtual interim.

We're also unlikely to get through all of the topics below so the updated a=
genda of topics is as follows:

T1) Definition/meaning of BC vs NBC for config false nodes
https://github.com/netmod-wg/yang-ver-dt/issues/15

T2) IANA considerations: how are final RFC revision labels assigned ?
https://github.com/netmod-wg/yang-ver-dt/issues/59

T3) YANG file naming when revision labels are being used (symbolic links? @=
<revision-label>) ?

T4) SemVer: gaps in history, removing revision statements
https://github.com/netmod-wg/yang-ver-dt/issues/61

Please indicate your availability on the doodle poll (link below).

Rgds,
Jason

From: netmod <netmod-bounces@ietf.org<mailto:netmod-bounces@ietf.org>> On B=
ehalf Of Sterne, Jason (Nokia - CA/Ottawa)
Sent: Thursday, December 17, 2020 6:12 PM
To: netmod@ietf.org<mailto:netmod@ietf.org>
Subject: [netmod] NETMOD Versioning virtual interim #2 - Week of Feb 1, 202=
1 - poll for attendees

Hi all,

The first Virtual Interim for YANG Versioning topics was quite useful. Than=
ks to all who attended and helped prepare.

We're going to hold a second interim in the first week of February.

### YOUR RESPONSE REQUESTED ###
Please fill in the doodle poll with what days in the Feb 1-4 range you coul=
d arrange your schedule to attend.
- If you will, or even *may* attend, then please fill in the doodle poll
- if you don't intend to attend, then please do not fill in the doodle poll
https://doodle.com/poll/b5uveesppy8sf6rm

The focus of versioning interim #2 is likely the following topics (we may n=
ot get through all of them):

1) IANA considerations: how are final RFC revision labels assigned ?
https://github.com/netmod-wg/yang-ver-dt/issues/59

2) YANG file naming when revision labels are being used (symbolic links? @<=
revision-label>) ?

3) SemVer: mandatory for IETF ?
https://github.com/netmod-wg/yang-ver-dt/issues/45

4) SemVer: initial revision label for drafts and RFC updates
https://github.com/netmod-wg/yang-ver-dt/issues/60

5) SemVer: gaps in history, removing revision statements
https://github.com/netmod-wg/yang-ver-dt/issues/61


Topics 1 and 2 are related to YANG module versioning:
https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-module-versioning/

Topics 3-5 are related to the Semver draft:
https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-semver

As before, we will send materials before the meeting.

Rgds,
Jason


--_000_DM6PR08MB50840A58039E5ACF37AAEA489BAA0DM6PR08MB5084namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://schema=
s.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html=
40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi all,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">One topic that we're planning to discuss in the NETM=
OD virtual interim meeting in Feb is how to define backwards compatibility =
for YANG state (config false).<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">It would be great to get your participation in the d=
iscussion.&nbsp; If you might be able to attend, please indicate your prefe=
rred date for the virtual interim here:<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://doodle.com/poll/b5uveesppy8sf6rm"=
>https://doodle.com/poll/b5uveesppy8sf6rm</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Rgds,<o:p></o:p></p>
<p class=3D"MsoNormal">Jason<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"mso-fareast-languag=
e:EN-CA">From:</span></b><span lang=3D"EN-US" style=3D"mso-fareast-language=
:EN-CA"> Sterne, Jason (Nokia - CA/Ottawa)
<br>
<b>Sent:</b> Tuesday, January 5, 2021 10:26 AM<br>
<b>To:</b> netmod@ietf.org<br>
<b>Subject:</b> RE: NETMOD Versioning virtual interim #2 - Week of Feb 1, 2=
021 - poll for attendees<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Hello WG,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">In our weekly YANG Versioning call today we decided =
that we should tackle the meaning of BC vs NBC for config false nodes in th=
e Feb virtual interim.
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We're also unlikely to get through all of the topics=
 below so the updated agenda of topics is as follows:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T1) Definition/meaning =
of BC vs NBC for config false nodes<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/15">https://github.com/netmod-wg/yang-v=
er-dt/issues/15</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T2) IANA considerations=
: how are final RFC revision labels assigned ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/59">https://github.com/netmod-wg/yang-v=
er-dt/issues/59</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T3) YANG file naming wh=
en revision labels are being used (symbolic links? @&lt;revision-label&gt;)=
 ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T4) SemVer: gaps in his=
tory, removing revision statements<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/61">https://github.com/netmod-wg/yang-v=
er-dt/issues/61</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Please indicate your availability on the doodle poll=
 (link below).
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Rgds,<br>
Jason<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"mso-fareast-languag=
e:EN-CA">From:</span></b><span lang=3D"EN-US" style=3D"mso-fareast-language=
:EN-CA"> netmod &lt;<a href=3D"mailto:netmod-bounces@ietf.org">netmod-bounc=
es@ietf.org</a>&gt;
<b>On Behalf Of </b>Sterne, Jason (Nokia - CA/Ottawa)<br>
<b>Sent:</b> Thursday, December 17, 2020 6:12 PM<br>
<b>To:</b> <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
<b>Subject:</b> [netmod] NETMOD Versioning virtual interim #2 - Week of Feb=
 1, 2021 - poll for attendees<o:p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Hi all,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The first Virtual Interim for YANG Versioning topics=
 was quite useful. Thanks to all who attended and helped prepare.<o:p></o:p=
></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We're going to hold a second interim in the first we=
ek of February.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><b><u>### YOUR RESPONSE REQUESTED ###<o:p></o:p></u>=
</b></p>
<p class=3D"MsoNormal">Please fill in the doodle poll with what days in the=
 Feb 1-4 range you could arrange your schedule to attend.<o:p></o:p></p>
<p class=3D"MsoNormal">- If you will, or even *<b>may</b>* attend, then ple=
ase fill in the doodle poll<o:p></o:p></p>
<p class=3D"MsoNormal">- if you don't intend to attend, then please do not =
fill in the doodle poll<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://doodle.com/poll/b5uveesppy8sf6rm"=
>https://doodle.com/poll/b5uveesppy8sf6rm</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The focus of versioning interim #2 is likely the fol=
lowing topics (we may not get through all of them):<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">1) IANA considerations:=
 how are final RFC revision labels assigned ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/59">https://github.com/netmod-wg/yang-v=
er-dt/issues/59</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">2) YANG file naming whe=
n revision labels are being used (symbolic links? @&lt;revision-label&gt;) =
?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">3) SemVer: mandatory fo=
r IETF ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/45">https://github.com/netmod-wg/yang-v=
er-dt/issues/45</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">4) SemVer: initial revi=
sion label for drafts and RFC updates<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/60">https://github.com/netmod-wg/yang-v=
er-dt/issues/60</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">5) SemVer: gaps in hist=
ory, removing revision statements<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><a href=3D"https://gith=
ub.com/netmod-wg/yang-ver-dt/issues/61">https://github.com/netmod-wg/yang-v=
er-dt/issues/61</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Topics 1 and 2 are related to YANG module versioning=
:<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://datatracker.ietf.org/doc/draft-ie=
tf-netmod-yang-module-versioning/">https://datatracker.ietf.org/doc/draft-i=
etf-netmod-yang-module-versioning/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Topics 3-5 are related to the Semver draft:<o:p></o:=
p></p>
<p class=3D"MsoNormal"><a href=3D"https://datatracker.ietf.org/doc/draft-ie=
tf-netmod-yang-semver">https://datatracker.ietf.org/doc/draft-ietf-netmod-y=
ang-semver</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">As before, we will send materials before the meeting=
.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Rgds,<o:p></o:p></p>
<p class=3D"MsoNormal">Jason<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</body>
</html>

--_000_DM6PR08MB50840A58039E5ACF37AAEA489BAA0DM6PR08MB5084namp_--


From nobody Tue Jan 12 10:43:19 2021
Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D2DDC3A0F22 for <netmod@ietfa.amsl.com>; Tue, 12 Jan 2021 10:43:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.151
X-Spam-Level: 
X-Spam-Status: No, score=-2.151 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 bmtzeNVM6r36 for <netmod@ietfa.amsl.com>; Tue, 12 Jan 2021 10:43:16 -0800 (PST)
Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2125.outbound.protection.outlook.com [40.107.94.125]) (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 C6DE93A11C3 for <netmod@ietf.org>; Tue, 12 Jan 2021 10:42:33 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R75s3i4VP3h1N0eEEGsPSc9w6iJ2HbDw8HYrU7fZEkrGMQB1c/JTWsoO0cfvCg3ZV7chSeSJFg7q1jbyU1oASeBVg4/tmxHFnKx5oQeohkbq65Fi+/mSoIFdsJk8c6s91sCX7P9V1M3zkaZYoxahnJfui4uMuFVEEchTVFHax1dyqWRsM9Sb+jsfwGO2n3NBrRGoEvcRRXI2YeJizY7hLd9mIHtS5TMLlhKaBIYxBgHDEIMxZBvycaEBCIAeVtr6ZVTU0y2NvVFhnFP6jkv/InGixIlc/kSAIUgmW5uQYPHKPvp7TZmRyPVpYAV1/iggCaZjQC6cI8HRw5uWtIjUGg==
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=/bZ/RbOwjLJZWSAkwgWRGdg58U+A+ccFHwJIjlCWG3k=; b=kftavAC5s2MGRCLkA5ZfG1VhtRGkg9HtA+X/jj35u8eqwtI1R4s3G0+YbuOJZ6JIXsihlq4oaudusPkHbKuMMiLbaQa0SxuMTe4m2s1dcpauvm86eJv1xO15mjCfSge0ws9CMHrX0aUKZGGtDJKzIPZ4SooJ2S/LgerLF8cucIi90Q5bdYl7zialC3gCy7CaGjI1aAaendchOc5FF3LkFhGRJaxXFtoRusypNQJAGt+fxDpc/Wr6R/NJkI9t/b+h8Mw83j2dkiKZwf4MPqfHl2R0WoGz7gA4Rba0fsS9MXUGt4UsuZGSoM2fg1TkrVWQdLRytzDDVOzzRInlgfxIsg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/bZ/RbOwjLJZWSAkwgWRGdg58U+A+ccFHwJIjlCWG3k=; b=E/Lbu0nlldOEKmK+iH8DTuA36UXKLQAUwZRRNsbB+lOobW+tQxQ2t/xUZkd65rAxOZg1LACp2yQpxrR7ZV5vpbSqehyJ0shdSCXyswocBtj/PdHTzT8fpaKW/Ln4dx9TvIDKx7qXmYWzt8OSdXY0G/31bHzaNJmc+8WzCin+aE8=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM5PR08MB2379.namprd08.prod.outlook.com (2603:10b6:3:77::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Tue, 12 Jan 2021 18:42:32 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3%5]) with mapi id 15.20.3742.012; Tue, 12 Jan 2021 18:42:32 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: YANG Versioning Weekly Call Minutes - 2021-01-12
Thread-Index: AdbpEaS4Z8wSJsYoSp2jPnD4I9K8QQ==
Date: Tue, 12 Jan 2021 18:42:32 +0000
Message-ID: <DM6PR08MB5084DE972E2E1763C429300F9BAA0@DM6PR08MB5084.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [2607:fea8:e324:8d00:f965:4ae3:4b56:123b]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 7d4a956f-31cc-4e95-fc93-08d8b729d23c
x-ms-traffictypediagnostic: DM5PR08MB2379:
x-microsoft-antispam-prvs: <DM5PR08MB23799B24033E273326832A139BAA0@DM5PR08MB2379.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: wzK1kaFytkAg7kPSKwWmCc3MFtBQ07paOSyiZkjZDQDiDVBIToglgIx1q15kXqRFdI9WPMcGs3o80YIgmucMU2dlBrdRLjSax2bs3xIwCX1Vpb9GjVxAdeBGOQUxMcn7wk/wsSrF+iN/uya27N0LBJgiwEDRQsPaDMlhw4G2YIpEQ98TPr3iNzQL8q6I/RrFCClhrtgAzqabYiik4Ku0fMHc0KfDus9GuKQmTa8KZQmU7ZjNRk08oE/i/zgiAlYapSixET2CtiDFWPEArm3lSv0Hte2NvjjDuwxH7i+cf4tbOr+BVK4EEq+Qgm8PLUp8o6a4B2KcpQw6ZVEmxYfHKZ+Lsh8fBSgmsk1Xwk57IU6eP0bDNGVMx9TVVdpeb0I3PwbMp18RlTqmu9K8tAlXbWtP72v9zED7W3V9VQEuvIY97LoCrFjeuzxztT3Jny5qtLFogXCIIBq64tosBrVtxA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(366004)(136003)(346002)(376002)(39860400002)(396003)(8676002)(64756008)(71200400001)(9686003)(66946007)(478600001)(8936002)(86362001)(2906002)(66556008)(966005)(66446008)(33656002)(6506007)(52536014)(186003)(6916009)(66476007)(5660300002)(316002)(55016002)(7696005)(76116006); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?xkU4A9qcCV5hupjzU8fifpI52gpJo5XNFnfWz18F+hCPngcW7MSsDrNAfZTK?= =?us-ascii?Q?q8537Km9ZbSXJK5a95FizF44s2mDK9jeOUto5jO04s3q4in5LOl3VWbTWGzn?= =?us-ascii?Q?RKBP6TIkMAZaU19MQuz+9VkKin/OBtTtaC5nwf0dbvnULGfK8gPywTkpxooL?= =?us-ascii?Q?y/7A7y/WSEm4xH5Siu0DFrN1JqLAHdXhw/z5NGbzxy/DirlVBiUk3Bb5YRXI?= =?us-ascii?Q?Af8cNXkmEvXsnfWpjGEkHcjQaVGNyZfVxaiKXh28N++7RxMbwZAwrqtj+mMP?= =?us-ascii?Q?vmYWpKN5MakazEcRZnEZVv0HqBNyVkndxQDQiZUb1owC9lCqmMlrYJXjaJqP?= =?us-ascii?Q?prWIV69q86CjeSdhaDliJ1qRb0W0iGqQNVN+OfLII2QUTQdM6+StVl5fJ7Zk?= =?us-ascii?Q?EOKNoT+lygoodX1GaguOPvtyH67l7zN5A7mzxfNXtJ8x/eyxT/g/fEf7BPWp?= =?us-ascii?Q?UVADyK6YKx57NFfamg7+B7vogCauvqEmvz7U/F6UZ2TX6Hy5kVoqD5NircZn?= =?us-ascii?Q?WwDwSkQD6xBA/KsW0FmVJpgKvJdpLIsX9ptN1WY21LebZIJxkn80vKGAyoAv?= =?us-ascii?Q?zwrX55PVk/SKMFulMAQDviOCA7XFp0jg9iK9aT6hWAi7V7O52K15bpJT5FWe?= =?us-ascii?Q?5fed2R2Yf/hksrvM4dhQrhSZsgmwp8BN0qM3akGgxTWwRPtpPVph+H/l72Am?= =?us-ascii?Q?I5MI1mmo5kLUqlfK0XwO+Rce2gENseFM+T50+UeFyAjXs4/05tbMjT1ZeeX4?= =?us-ascii?Q?Y1ufRWH7CzXPjTUJGyfXpKr+cDnK3ADf6LrhU1XrOww8LEn3cZoDYeMBlN9b?= =?us-ascii?Q?7hP3q+B5k7KMXmw9sMZs8SvVK5I+FYnFjK+sqZGO26LyFzBBfvU6ro36UhfH?= =?us-ascii?Q?d8rRUluT7uA8MzNyztjqkkLyDLxQc+33cDgB0InTkiLcxTcH57lwgc+AI0js?= =?us-ascii?Q?qpATCP2NK9hPkCb2g+pY4DG5zOKhsjbhMpR8eH0NdJBRWRMOw6XWmI8zJAlX?= =?us-ascii?Q?0N9QluequC7RhRt5v63lbo9y6uG04LVhMqEHG1z+MIwhG5fSCoTfSDzds0kE?= =?us-ascii?Q?rHmRP35e?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB5084DE972E2E1763C429300F9BAA0DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7d4a956f-31cc-4e95-fc93-08d8b729d23c
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2021 18:42:32.0480 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /HO7Oa8UtLfkFtaCg034+ewOdCH7vIp8cp831TUKlh0+c+Ln4VIylchKnAgv89TchM4keOMwZa9w0BcHMoupyQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR08MB2379
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/E71x72lzLg3MnDYZoW80HmbSATM>
Subject: [netmod] YANG Versioning Weekly Call Minutes - 2021-01-12
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2021 18:43:18 -0000

--_000_DM6PR08MB5084DE972E2E1763C429300F9BAA0DM6PR08MB5084namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

YANG Versioning Weekly Call Minutes - 2021-01-12

Topics and owners for Feb virtual interim:

Reshad - editor for YANG versioning draft
Jason - coordinate virtual interim, agenda. Do introduction at VI.

T1) Definition/meaning of BC vs NBC for config false nodes
https://github.com/netmod-wg/yang-ver-dt/issues/15
- Balazs

T2) IANA considerations: how are final RFC revision labels assigned ?
https://github.com/netmod-wg/yang-ver-dt/issues/59
- Rob

T3) YANG file naming when revision labels are being used (symbolic links? @=
<revision-label>) ?
- Reshad to prepare material, TBD to present/lead at VI

T4) SemVer: gaps in history, removing revision statements
https://github.com/netmod-wg/yang-ver-dt/issues/61
- Joe

We spent most of the time discussing Balazs' rules for backwards compatibil=
ity of config false nodes (T1 above):
- clients SHOULD be able to deal with (not crash) unexpected output
- some changes to config false nodes should be BC (increasing value space w=
ithin the same type), some will be NBC (e.g. removing mandatory, changing t=
ype)
- the YANG author can mark a change that increases value space as NBC if th=
ey feel it is significant & breaks compatibility

We also talked briefly about Rob's proposal for IANA considerations (T2 abo=
ve).
- we may also want some guidance for RFC editors (coordinate with authors o=
n final SemVer for example)

Next week we'll continue focus on the four Virtual Interim topics.

Other topics we need to get back to at some point:
- whitespace
- github issues (left off at #15)

Jason


--_000_DM6PR08MB5084DE972E2E1763C429300F9BAA0DM6PR08MB5084namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">YANG Versioning Weekly Call Minutes - 2021-01-12<o:p=
></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Topics and owners for Feb virtual interim:<o:p></o:p=
></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">Reshad - editor for YAN=
G versioning draft<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">Jason - coordinate virt=
ual interim, agenda. Do introduction at VI.<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T1) Definition/meaning =
of BC vs NBC for config false nodes<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">https://github.com/netm=
od-wg/yang-ver-dt/issues/15<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">- Balazs<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T2) IANA considerations=
: how are final RFC revision labels assigned ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">https://github.com/netm=
od-wg/yang-ver-dt/issues/59<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">- Rob<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T3) YANG file naming wh=
en revision labels are being used (symbolic links? @&lt;revision-label&gt;)=
 ?<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">- Reshad to prepare mat=
erial, TBD to present/lead at VI<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">T4) SemVer: gaps in his=
tory, removing revision statements<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">https://github.com/netm=
od-wg/yang-ver-dt/issues/61<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"margin-left:36.0pt">- Joe<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We spent most of the time discussing Balazs' rules f=
or backwards compatibility of config false nodes (T1 above):<o:p></o:p></p>
<p class=3D"MsoNormal">- clients SHOULD be able to deal with (not crash) un=
expected output<o:p></o:p></p>
<p class=3D"MsoNormal">- some changes to config false nodes should be BC (i=
ncreasing value space within the same type), some will be NBC (e.g. removin=
g mandatory, changing type)
<o:p></o:p></p>
<p class=3D"MsoNormal">- the YANG author can mark a change that increases v=
alue space as NBC if they feel it is significant &amp; breaks compatibility=
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We also talked briefly about Rob's proposal for IANA=
 considerations (T2 above).<o:p></o:p></p>
<p class=3D"MsoNormal">- we may also want some guidance for RFC editors (co=
ordinate with authors on final SemVer for example)<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Next week we'll continue focus on the four Virtual I=
nterim topics.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Other topics we need to get back to at some point:<o=
:p></o:p></p>
<p class=3D"MsoNormal">- whitespace<o:p></o:p></p>
<p class=3D"MsoNormal">- github issues (left off at #15)<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Jason<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_DM6PR08MB5084DE972E2E1763C429300F9BAA0DM6PR08MB5084namp_--


From nobody Thu Jan 14 14:44:02 2021
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: netmod@ietf.org
Delivered-To: netmod@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id BCC733A1432; Thu, 14 Jan 2021 14:43:56 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: netmod@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.24.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <161066423665.31950.4445093223290915581@ietfa.amsl.com>
Date: Thu, 14 Jan 2021 14:43:56 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/aR1wPtGE8GEq16MZzmIzmG2-zu0>
Subject: [netmod] Network Modeling (netmod) WG Virtual Meeting: 2021-02-01
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2021 22:43:57 -0000

The Network Modeling (netmod) WG will hold
a virtual interim meeting on 2021-02-01 from 10:30 to 12:00 America/New_York (15:30 to 17:00 UTC).

Agenda:
NETMOD Agenda for Interim (virtual)

Date            February 1, 2021
Start Time      14:30 UTC
Duration        90 minutes

Time Zone Converter:
     https://www.timeanddate.com/worldclock/converter.html?iso=20210201T143000&p1=1440&p2=37&p3=438&p4=33&p5=248&p6=224&p7=179
Slides:
     https://datatracker.ietf.org/meeting/interim-2021-netmod-01/session/netmodNotes
Notes & BlueSheet:
    https://codimd.ietf.org/notes-ietf-interim-2021-netmod-01-netmod
WebEx:
    https://ietf.webex.com/ietf/j.php?MTID=m8ee8976e972cc17b725f3ce1900b0cd0 
Jabber:
    xmpp:netmod@jabber.ietf.org?join

Agenda:

1       Topic   Intro & Administrivia
Presenter:      Chairs

2 Topic Module Versioning:
Presenter: Authors
Follow on to https://datatracker.ietf.org/meeting/interim-2020-netmod-03/session/netmod
Virtual Bluesheet


Information about remote participation:
https://ietf.webex.com/ietf/j.php?MTID=m8ee8976e972cc17b725f3ce1900b0cd0


From nobody Fri Jan 15 08:22:53 2021
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: netmod@ietf.org
Delivered-To: netmod@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 7D9123A0C9C; Fri, 15 Jan 2021 08:22:47 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: IESG Secretary <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
Cc: netmod@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.24.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <161072776741.29590.13830234810493226103@ietfa.amsl.com>
Date: Fri, 15 Jan 2021 08:22:47 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/dhcTAia3nHsG_bwrfj22zUKUVzU>
Subject: [netmod] Network Modeling (netmod) WG Virtual Meeting: 2021-02-01 CHANGED
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2021 16:22:48 -0000

MEETING DETAILS HAVE CHANGED.  SEE LATEST DETAILS BELOW.

The Network Modeling (netmod) WG will hold
a virtual interim meeting on 2021-02-01 from 09:30 to 11:00 America/New_York (14:30 to 16:00 UTC).

Agenda:
NETMOD Agenda for Interim (virtual)

Date            February 1, 2021
Start Time      14:30 UTC
Duration        90 minutes

Time Zone Converter:
     https://www.timeanddate.com/worldclock/converter.html?iso=20210201T143000&amp;p1=1440&amp;p2=37&amp;p3=438&amp;p4=33&amp;p5=248&amp;p6=224&amp;p7=179
Slides:
     https://datatracker.ietf.org/meeting/interim-2021-netmod-01/session/netmodNotes
Notes &amp; BlueSheet:
    https://codimd.ietf.org/notes-ietf-interim-2021-netmod-01-netmod
WebEx:
    https://ietf.webex.com/ietf/j.php?MTID=m8ee8976e972cc17b725f3ce1900b0cd0 
Jabber:
    xmpp:netmod@jabber.ietf.org?join

Agenda:

1       Topic   Intro &amp; Administrivia
Presenter:      Chairs

2 Topic Module Versioning:
Presenter: Authors
Follow on to https://datatracker.ietf.org/meeting/interim-2020-netmod-03/session/netmod
Virtual Bluesheet


Information about remote participation:
https://ietf.webex.com/ietf/j.php?MTID=m8ee8976e972cc17b725f3ce1900b0cd0


From nobody Fri Jan 15 08:31:51 2021
Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8FB253A0CE0 for <netmod@ietfa.amsl.com>; Fri, 15 Jan 2021 08:31:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.151
X-Spam-Level: 
X-Spam-Status: No, score=-2.151 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 TLDIHTYGfbSe for <netmod@ietfa.amsl.com>; Fri, 15 Jan 2021 08:31:49 -0800 (PST)
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2129.outbound.protection.outlook.com [40.107.93.129]) (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 E50253A0CD4 for <netmod@ietf.org>; Fri, 15 Jan 2021 08:31:48 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XADEfzSPvJ/rfxc/RS98xCzPb2cAKUcUPqlnyD+aerOm27KubhWQKNEcIq2y/w3eQ9QDosSNxv9DyPPJIkq0Y39n0JqnqHmfk+4hNFp48HBXHX091QvpCDx+phTBlG94+tZPRpw7l338GGkpyscGohJGFTz7h7nfZA1X7KZ9Y5RT1vrKUydKY5cc3LuKLhmSJXPIXwk/Wm8UL2PqtG5caF8wLM5DIMRwp4J7LKrh1qLL6iNFtOECHeCRqthNPAJHn0YAQumwUgCs9KTa/osCsDdoBIfUBFzx0CaQiNeZgX0aONVdTa7JOCTC16phSffrJOP6t5qWbyEOq8WXUk8dEw==
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=MWbG6c507sO2Dohd9kTAN2aasNXhgfDUWdT1a1jyM74=; b=YzgS6YCnmbj/KH6Tv+tjLR2QCO8GbXVV7DzJdSL0O8t8ih2jdglQ4vRWN7H2j+rfbUUUKcKWaDWy8bgR//WBPRt1WwuyIoGWC9mEVhJeqVERtvOXuLx6S8uIseuYf7J8cwyMSgiInQUm1bDYQhHOQMkfFTcDTuf2MneGnebbBMdeWxGSi6EHdBWNpbe7xSxc0ZEd2HoInOCGa2G4hyMwnhyv1QMUPztczAz5YgOeeh9jCTyjS2/b2FHgVZoYZhqDVEuBJqTYrCUsaT/XTwFqpHPCG4Kh/VSE7WbQeVsmRWdmginbnOxCEtum8twcnwVYN5be787w6/jHvcg9BY4/Yg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MWbG6c507sO2Dohd9kTAN2aasNXhgfDUWdT1a1jyM74=; b=bWd4ErLRlDl8kL7INEivO2MtsO3MAIojVI22/fKRGeuGpGkYxN4GVIGQfPiSa+8BKEKH+TO3qt6t8DH4s4SduYqyfBIzgZM4MQSM2MKVLcIk0PwOUZ2GGu6eAPFypgWwsdCo8h6TI70DNnqy0UHGP4ZDKl7hO1WYUl5y/7TV3SY=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM5PR08MB3547.namprd08.prod.outlook.com (2603:10b6:4:64::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.12; Fri, 15 Jan 2021 16:31:46 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3%5]) with mapi id 15.20.3763.010; Fri, 15 Jan 2021 16:31:46 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] Network Modeling (netmod) WG Virtual Meeting: 2021-02-01 CHANGED
Thread-Index: AQHW61rzxAbwH/yDlkCcBt5oLj1JC6oo4JCg
Date: Fri, 15 Jan 2021 16:31:46 +0000
Message-ID: <DM6PR08MB50841A8FC8D34C76DA593B739BA70@DM6PR08MB5084.namprd08.prod.outlook.com>
References: <161072776741.29590.13830234810493226103@ietfa.amsl.com>
In-Reply-To: <161072776741.29590.13830234810493226103@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [174.112.3.120]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: d3af87a3-b7a0-4115-1ec8-08d8b9730d4f
x-ms-traffictypediagnostic: DM5PR08MB3547:
x-microsoft-antispam-prvs: <DM5PR08MB35473D67B5B0946ACF744E989BA70@DM5PR08MB3547.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:4303;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: YWPjlR1cgNCTAsBuDudlIWW8W8TX++W08Yw2koiKR4PZ75jHtM1n+NJTxDEASorM6T7ZzRxWH1kaJaFpSs5dqNXiHiG9W+S3pOhUcXpchKfgUS9NfWnOMXstGIqweHFlNN5ehBmbFkc23JTqkZVnTRe0tfcXVWTedIkHwGtdTQBkcFZ/A+Vvt4vpoBW+0ze5oI2/6D0EItoez9d4eyXI27EZXd5fTr4FbuiHrgWdGIOO21OHw2WuNg0AQ6jtwkmpTCAPSk2tFpwBARu3EAaCv22Ph4pUzDXP7V9/ic3VvxY96NFFJyEihxHXNFJGndCitCNgOLHG7tVGnqXf3Dhb4X4I/qqQWs8l2V9fkXVCqc64XAl31MMl+e2C7iPdysznA0I7AjmNxYzEVmLRprXFbwc5jNI+q3TX/vl5myUcoxxTSPqgQQAl/UfFSxpbw85tinXA5bl7UGr4/LC36R73Jg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(366004)(396003)(39860400002)(346002)(136003)(376002)(5660300002)(52536014)(53546011)(6506007)(83380400001)(478600001)(76116006)(966005)(6916009)(9686003)(71200400001)(86362001)(66446008)(66476007)(2906002)(66556008)(26005)(7696005)(8676002)(33656002)(186003)(316002)(64756008)(16799955002)(8936002)(66946007)(55016002); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?utf-8?B?RGVTaVZNNGUyNTFqSVNKWXBEdTR2bWVpWVZ2c0VxVTBLbG0xWkRBSTVlWEpk?= =?utf-8?B?Sk5rdVlEVk1xTzNtcmpmNXhoTXBCZCtxdmZnK04zZGd3VkFva2ZYZ3FDbzFS?= =?utf-8?B?U2kyWGVnM2RpMUZ0REVPdzRYd0U0a01KbkM1enh6bXpkNEgzOGxXVzRrUUt5?= =?utf-8?B?NXpqeHBRZFV1MjdWWDN2aU1RR3oyY1gvQjcvV2lrZmNXdjFvZUNVZnU3YzlV?= =?utf-8?B?RTF3VER2aWRaUFMza3RMVmdWQ054R3ozdXBocTFDdjJVWGNjQXMwRVVBNFB2?= =?utf-8?B?TlJWNEU1dWsvUkR4enFtQWpHdktMTENTR1E5WGtodUpGVEtMU1ZwY1NnWi9q?= =?utf-8?B?UjhBNm03eTlBV3NVaHZwZEQ1TWRhdUhhRXo4cmVCQ1VGb080bHIycEJDekNq?= =?utf-8?B?a1NZNGlFTXRsVE5zVW1SR2QxeG44bnlMeVl2SWFZdGdEZTFseTBsNTBaU1Vk?= =?utf-8?B?aGNkTXZHYjhrOXZ0OUV3NWNISjVuN3J6c3VQSjdZMXBCN0hvdDZXTmpUWXJF?= =?utf-8?B?REZVTzFkZmJxRHMxWml3RkdTbW5mQ1dzRVJBMVAreDR0MUc0UDdFeHdYdk5T?= =?utf-8?B?a2h6SHhsU0k3SGxtd3ZVcVExR1cwb0pOVnRxKzNqejZpcW1nZWdrMEhNK1Yv?= =?utf-8?B?cEJzUnNqYjNVVWpjcnhpZGxVamxLTEMvUGdxZEU1cGQ0QlRXalJOUVhuN1Rh?= =?utf-8?B?aGs2bnB2bkJiV3J3bUVEcHgwWFFRZEM0Rm94cGF5MHVvN0MvTVdVNlNLTHNq?= =?utf-8?B?QnFKbTdXMWRGeG0xRkVHTDVnKzY3NmMzZ1l0WHloNENDSEpQTHpGNHRlQ0R1?= =?utf-8?B?bVpQc01Pb3RBazAzY3lORzgzUzJqZE55V3JFWmVqZ3hmWkNYbzkyMWxIc1Yx?= =?utf-8?B?UlpoWVNYSURFalBRa1NBQzVsS2c2aUNEdzF2VmxueC9tWC92cEdDblNCcTFi?= =?utf-8?B?QVZrN2JvektJN0psU1BIa2VEVENXVjRIeXVpcGJmZ2FGdXZqTlBtV2h2aC9p?= =?utf-8?B?S2hZN1RoRXVIYjNnWGJ4NG5wY1ZIdTNtdllteU9YMnBRRHFFQzcvcVZ6K0Zq?= =?utf-8?B?c09XdGlDU3VIbDFwaGZKSWcrNUo5NnBldlFvSS85ck5CL2FiOGhtNHp2anZL?= =?utf-8?B?Q0U4M0MwL1hVS1V0QUs0Z0IxZ2l6Mk0yaWk2T05ScWk0NXJLcHRmcmdJcDFv?= =?utf-8?B?L1JqSDNsRWRkN0R5dE5KbzBSa1dObk1XOVZKM3hmNFJFbHd4dkZJcElaSXU0?= =?utf-8?B?YlVzYzAyY291a1ZmL2ozZ1BLQWRaeXY1NWN6eHRVZFZsR1ZlUE94bFNTYytV?= =?utf-8?Q?O0PJvbVkbpM6c=3D?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d3af87a3-b7a0-4115-1ec8-08d8b9730d4f
X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jan 2021 16:31:46.7442 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: EWYqbusN2P4LiyVpIjJgeL1PR+gQoG8yu+SpbjekWP8LzUmncPvcj7JDtmIj3DrxJCp7OC4ywQudmPY3sLLCrA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR08MB3547
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/87fd1vsbQdhfOtiXTDxRp80pSno>
Subject: Re: [netmod] Network Modeling (netmod) WG Virtual Meeting: 2021-02-01 CHANGED
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2021 16:31:51 -0000

SGkgYWxsLA0KDQpIb3BlIHRvIHNlZSBtYW55IG9mIHlvdSB0aGVyZS4gVGhlIGRpc2N1c3Npb25z
IGluIHRoZSBwcmV2aW91cyBpbnRlcmltIChEZWMgMjAyMCkgd2VyZSBsaXZlbHkgYW5kIHVzZWZ1
bCB0byBwcm9ncmVzcyB0aGlzIHdvcmsuDQoNCig2OjMwYW0gQ2FsaWZvcm5pYSAvIDk6MzBhbSBF
YXN0ZXJuIC8gMzozMHBtIEV1cm9wZSAvIDEwOjMwcG0gQmVpamluZykNCg0KVG9waWNzIGZvciB0
aGUgbWVldGluZzogDQoNClQxKSBEZWZpbml0aW9uL21lYW5pbmcgb2YgQkMgdnMgTkJDIGZvciBj
b25maWcgZmFsc2Ugbm9kZXMNCmh0dHBzOi8vZ2l0aHViLmNvbS9uZXRtb2Qtd2cveWFuZy12ZXIt
ZHQvaXNzdWVzLzE1DQoNClQyKSBJQU5BIGNvbnNpZGVyYXRpb25zOiBob3cgYXJlIGZpbmFsIFJG
QyByZXZpc2lvbiBsYWJlbHMgYXNzaWduZWQgPw0KaHR0cHM6Ly9naXRodWIuY29tL25ldG1vZC13
Zy95YW5nLXZlci1kdC9pc3N1ZXMvNTkNCg0KVDMpIFlBTkcgZmlsZSBuYW1pbmcgd2hlbiByZXZp
c2lvbiBsYWJlbHMgYXJlIGJlaW5nIHVzZWQgKHN5bWJvbGljIGxpbmtzPyBAPHJldmlzaW9uLWxh
YmVsPikgPw0KDQpUNCkgU2VtVmVyOiBnYXBzIGluIGhpc3RvcnksIHJlbW92aW5nIHJldmlzaW9u
IHN0YXRlbWVudHMNCmh0dHBzOi8vZ2l0aHViLmNvbS9uZXRtb2Qtd2cveWFuZy12ZXItZHQvaXNz
dWVzLzYxDQoNCk1vcmUgbWF0ZXJpYWxzIHdpbGwgZm9sbG93Lg0KDQpSZ2RzLA0KSmFzb24NCg0K
PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBuZXRtb2QgPG5ldG1vZC1ib3Vu
Y2VzQGlldGYub3JnPiBPbiBCZWhhbGYgT2YgSUVTRyBTZWNyZXRhcnkNCj4gU2VudDogRnJpZGF5
LCBKYW51YXJ5IDE1LCAyMDIxIDExOjIzIEFNDQo+IFRvOiBJRVRGLUFubm91bmNlIDxpZXRmLWFu
bm91bmNlQGlldGYub3JnPg0KPiBDYzogbmV0bW9kQGlldGYub3JnDQo+IFN1YmplY3Q6IFtuZXRt
b2RdIE5ldHdvcmsgTW9kZWxpbmcgKG5ldG1vZCkgV0cgVmlydHVhbCBNZWV0aW5nOiAyMDIxLQ0K
PiAwMi0wMSBDSEFOR0VEDQo+IA0KPiBNRUVUSU5HIERFVEFJTFMgSEFWRSBDSEFOR0VELiAgU0VF
IExBVEVTVCBERVRBSUxTIEJFTE9XLg0KPiANCj4gVGhlIE5ldHdvcmsgTW9kZWxpbmcgKG5ldG1v
ZCkgV0cgd2lsbCBob2xkDQo+IGEgdmlydHVhbCBpbnRlcmltIG1lZXRpbmcgb24gMjAyMS0wMi0w
MSBmcm9tIDA5OjMwIHRvIDExOjAwDQo+IEFtZXJpY2EvTmV3X1lvcmsgKDE0OjMwIHRvIDE2OjAw
IFVUQykuDQo+IA0KPiBBZ2VuZGE6DQo+IE5FVE1PRCBBZ2VuZGEgZm9yIEludGVyaW0gKHZpcnR1
YWwpDQo+IA0KPiBEYXRlICAgICAgICAgICAgRmVicnVhcnkgMSwgMjAyMQ0KPiBTdGFydCBUaW1l
ICAgICAgMTQ6MzAgVVRDDQo+IER1cmF0aW9uICAgICAgICA5MCBtaW51dGVzDQo+IA0KPiBUaW1l
IFpvbmUgQ29udmVydGVyOg0KPiANCj4gaHR0cHM6Ly93d3cudGltZWFuZGRhdGUuY29tL3dvcmxk
Y2xvY2svY29udmVydGVyLmh0bWw/aXNvPTIwMjEwMjAxVDENCj4gNDMwMDAmYW1wO3AxPTE0NDAm
YW1wO3AyPTM3JmFtcDtwMz00MzgmYW1wO3A0PTMzJmFtcDtwNT0yNDgmYQ0KPiBtcDtwNj0yMjQm
YW1wO3A3PTE3OQ0KPiBTbGlkZXM6DQo+ICAgICAgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9y
Zy9tZWV0aW5nL2ludGVyaW0tMjAyMS1uZXRtb2QtDQo+IDAxL3Nlc3Npb24vbmV0bW9kTm90ZXMN
Cj4gTm90ZXMgJmFtcDsgQmx1ZVNoZWV0Og0KPiAgICAgaHR0cHM6Ly9jb2RpbWQuaWV0Zi5vcmcv
bm90ZXMtaWV0Zi1pbnRlcmltLTIwMjEtbmV0bW9kLTAxLW5ldG1vZA0KPiBXZWJFeDoNCj4gDQo+
IGh0dHBzOi8vaWV0Zi53ZWJleC5jb20vaWV0Zi9qLnBocD9NVElEPW04ZWU4OTc2ZTk3MmNjMTdi
NzI1ZjNjZTE5MDBiDQo+IDBjZDANCj4gSmFiYmVyOg0KPiAgICAgeG1wcDpuZXRtb2RAamFiYmVy
LmlldGYub3JnP2pvaW4NCj4gDQo+IEFnZW5kYToNCj4gDQo+IDEgICAgICAgVG9waWMgICBJbnRy
byAmYW1wOyBBZG1pbmlzdHJpdmlhDQo+IFByZXNlbnRlcjogICAgICBDaGFpcnMNCj4gDQo+IDIg
VG9waWMgTW9kdWxlIFZlcnNpb25pbmc6DQo+IFByZXNlbnRlcjogQXV0aG9ycw0KPiBGb2xsb3cg
b24gdG8gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9tZWV0aW5nL2ludGVyaW0tMjAyMC1u
ZXRtb2QtDQo+IDAzL3Nlc3Npb24vbmV0bW9kDQo+IFZpcnR1YWwgQmx1ZXNoZWV0DQo+IA0KPiAN
Cj4gSW5mb3JtYXRpb24gYWJvdXQgcmVtb3RlIHBhcnRpY2lwYXRpb246DQo+IGh0dHBzOi8vaWV0
Zi53ZWJleC5jb20vaWV0Zi9qLnBocD9NVElEPW04ZWU4OTc2ZTk3MmNjMTdiNzI1ZjNjZTE5MDBi
DQo+IDBjZDANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fDQo+IG5ldG1vZCBtYWlsaW5nIGxpc3QNCj4gbmV0bW9kQGlldGYub3JnDQo+IGh0dHBz
Oi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vbmV0bW9kDQo=


From nobody Mon Jan 18 14:08:24 2021
Return-Path: <internet-drafts@ietf.org>
X-Original-To: netmod@ietf.org
Delivered-To: netmod@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 499AE3A0C1C; Mon, 18 Jan 2021 14:08:22 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: netmod@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.24.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: netmod@ietf.org
Message-ID: <161100770222.25746.4414271883591983954@ietfa.amsl.com>
Date: Mon, 18 Jan 2021 14:08:22 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/ytV9-ZR_B0xw-jIUSMhl40p15fY>
Subject: [netmod] I-D Action: draft-ietf-netmod-eca-policy-00.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jan 2021 22:08:22 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Network Modeling WG of the IETF.

        Title           : A YANG Data model for ECA Policy Management
        Authors         : Qin Wu
                          Igor Bryskin
                          Henk Birkholz
                          Xufeng Liu
                          Benoit Claise
	Filename        : draft-ietf-netmod-eca-policy-00.txt
	Pages           : 54
	Date            : 2020-12-22

Abstract:
   This document defines a YANG data model for Event Condition Action
   (ECA) policy management.  The ECA policy YANG module provides the
   ability to delegate some network management functions to the server
   which can take simple and instant action when a trigger condition on
   the system state is met.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netmod-eca-policy/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-netmod-eca-policy-00
https://datatracker.ietf.org/doc/html/draft-ietf-netmod-eca-policy-00


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/



From nobody Tue Jan 19 07:23:55 2021
Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 41BA83A159C for <netmod@ietfa.amsl.com>; Tue, 19 Jan 2021 07:23:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.151
X-Spam-Level: 
X-Spam-Status: No, score=-2.151 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 nxGegVYIo0k1 for <netmod@ietfa.amsl.com>; Tue, 19 Jan 2021 07:23:52 -0800 (PST)
Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2099.outbound.protection.outlook.com [40.107.220.99]) (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 A581A3A15A3 for <netmod@ietf.org>; Tue, 19 Jan 2021 07:23:52 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oGlHtW6dixo5rTPH1kCBcNohQcFl+meAnIB+OlMTRZeUHqn0ZEvA9pAfIY5yGO9LVvsvSZo4kgICqa4EF4otn9GR2dnnBkgFtaUBhlYdiJdoh9x6B2UVznY6CAtm3v0YtVkv1ImxtmDYfQeTA44VPTFcHoqJ5QYwv8DvieLQc6wbfL0fjAguCM+uxSNNOUZZXKnHdZ5XLOTsf548ez7KEVIxwpt+RerCCUU35XYb8GzXf+nCN21pQ8cDs/P/eXAHO18vKd8ijlo2TlxDQhzxfnONXdEjaqJvSOm6rDzPT+9EXTnkoqWSj1Ah6jgLVVuct00+YOeYUk+RXMaGGXCqSA==
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=hxvJLloQ8L6fZa2daEdxXcETQ/iRCthcuOGUtZ2SX24=; b=kO3ODtAOE3RuL13HFCceiiOd0jSHYCuTslBsUPvvMWlN6WWcgbJCn2Od1AzsOoqw3pSqWJpDsxQ1MGPJRoQRsSGZx7KW/1FIHvXGt2vKWXOcHVGOjWEvhdR8O5+xCQZ210fFGmvvbXHJuYWLKbBryvQaQTgnCVQydfwyDUN2QrPmxcw+X43CAOHTeYwlUS0RhowRLcGVqAyZXSJfd7rf80Coj3ZSGi6o1jdSnfK+8fBnDMg4mUcQ6r3RKAgENLQsR5rnKhvgYC7mnpT/OuBRvHorV3k6rMHqI+ZsZKKqu+Z95OUw91MPWyEDgxYhQpAgxNHOPJqJ0zOiVH7znKGmoQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hxvJLloQ8L6fZa2daEdxXcETQ/iRCthcuOGUtZ2SX24=; b=PAZqkFhi+qSoN4CF8dSSJkglk0UALRbdxUjOIOO18bASXWQ33MRXjROCGXlOeoUwKVXZIK84mD7Q4PIDcizfZfbwgJJFmTLgmOo+M2BxzuNfxvuKuve6uKUWionESW2ldqf99bGsf97vJeU+Z+zA/IMPSHd5oVQfKeySGcGuLq8=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DS7PR08MB6942.namprd08.prod.outlook.com (2603:10b6:5:3ac::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.9; Tue, 19 Jan 2021 15:23:49 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3%5]) with mapi id 15.20.3784.011; Tue, 19 Jan 2021 15:23:49 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: YANG Versioning Weekly Call Minutes - 2021-01-19
Thread-Index: Adbudo4BDg5oia0QRSaHyhkOWpD1wQ==
Date: Tue, 19 Jan 2021 15:23:49 +0000
Message-ID: <DM6PR08MB5084A6146FD766542349E8249BA39@DM6PR08MB5084.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [2607:fea8:e31f:6800:1981:b0bf:c427:aa21]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 46b2ba78-b38d-4b2b-901b-08d8bc8e38c6
x-ms-traffictypediagnostic: DS7PR08MB6942:
x-microsoft-antispam-prvs: <DS7PR08MB694208C760419520C92E01429BA30@DS7PR08MB6942.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: v6LiqUeBP4akzd/tqQeJ5cpD5jl4+Kux6VLu3tZ4k7Nh6xEYsM39gqT6yJO4vGJ+NndNSxrPKKo2JDFcxzLHlG39KxyrH04ueK4+VT9RqHTz7CWBnC8rrHbq4n2dtzG4PGDfyNZxh4bw4WYbl1+Hlp8BVorLW59VVBMrddeoL4Cm5eMz7EGfGv9mCyIMsVYlx71YJvGHAPEFsE5qq0UNutjKv0qWC9WFqA7vyKawnZRkNH0QtmlKbcBH8J6MtnjeIPFlWdZnYAJxTmzp6KqVZ1LOE8hIlpCiSRVyTnViN1s92+n/Fb1CZ2eOw3IqkNNXK7Gxqaor7XCsdWaSjqR8O15oGwAA4i+Xis8LwNzFibGQkHcOoR3KDlF0cYCPgH8PVJFkP/Jxk3BVYeAsDbLFx0oyMXKMVbBJ6u4fP5gb1fM7lvzZp7T55Ul4EyoavwZqv+537p4H2Fif8O6iqto0Jopqo5u43gxcX9LF47dpXsE82Ub9JGfIa91DNnRooHflaxAViXaLw+jO0ngxP1FX4A==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(136003)(376002)(366004)(39850400004)(346002)(396003)(2906002)(9686003)(55016002)(4001150100001)(71200400001)(8676002)(66476007)(6916009)(76116006)(7696005)(86362001)(4744005)(5660300002)(316002)(52536014)(186003)(478600001)(64756008)(33656002)(66556008)(66446008)(66946007)(8936002)(6506007); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?ncfd2TrN6wiod63r+cfzcCttjBf8davjaiW9+5+pg1NCjUBIMO4lRk9YXv5R?= =?us-ascii?Q?b7YFPzSBVBSMK+O7DEBl6HvDXNDMhQ4oUQ4V9esu+awXeJ+7mGcblWpzu5zv?= =?us-ascii?Q?cckYDNgnj/GmcHzY7R9Vnv+9iwi9n1xBtRTqtJxDAO3Bi05NpeVgHT0sLAaD?= =?us-ascii?Q?ThV5D4+EKWEvFm/1cmlZQOpWPa3WmBxO/AuNXvZXBZltRuldqZYkM5YntxLw?= =?us-ascii?Q?zRtq+m2MJ057Xb3FigJ7uPi+Qk9CCaiFrllPLI5bm8IFGFDcRZv1cQTERn2Y?= =?us-ascii?Q?1Fg1ldBRCv2lV8vvBsBP8K0qkOO91SpraWpqkTQCx3QFc1CIXqLQyXcVgcfy?= =?us-ascii?Q?I5zc081HheNtwD6RRGQ3ZqAz1YBbwzEmi2OBiPjS8jHbXoe2GaOlZOd91frt?= =?us-ascii?Q?IXVkk404Fh6NgX7xpz9QwpErtkQWjTdAvbjKdQ7kOuxQ4CCif0LaktYe7c7l?= =?us-ascii?Q?4MsVR/WX0Zy0A+N+O0TT1vCWiEAQrvf9Nx/xMzrS8WO1qckadmcEboER0yxr?= =?us-ascii?Q?VZUeSmYgFmv6q0jsVaABv4ZoWPUpZX31g9aVw6iLHO2MJZQubjAUFlZ8sKI7?= =?us-ascii?Q?ppXvgLqSRWjiimT3obbsM92rA8olJ+2dKELp9TK5MPW+/6q6n9loHQfJm21I?= =?us-ascii?Q?FNy9MlU9lDv46Tn8xOvDgvdu6Hf/KgsNIB+daK1/LcjP3j5aGarPIy3lRSoH?= =?us-ascii?Q?E+1yX6UamAG4shkgZeMalIo+LTtobr63A9N0QYXKwO99524FGmsqusyirOCu?= =?us-ascii?Q?nKl4Q3gOaQKEvJU+LgSOwWmg9d0x4OJ1s04McexR9wtBbCBpJ0f6kB4o+8ug?= =?us-ascii?Q?kU9bwwPiPJKfFDswmy8LA5YyYgcYWks8NoYsMCxaxGPYgmjTl6oJLzCGB6lj?= =?us-ascii?Q?BlP2/r1vEgeAwac0XX/sRYSz4UmnOM/STKGj5Ssoc2gz/R8gDBsl8tI6mc9d?= =?us-ascii?Q?+qIWAYjonQnSHpLNiRzoPvym9nV+I2FkyjpOOiPC4qJMPkjuyPifPFIHH2Ax?= =?us-ascii?Q?7zuG6Twtd/SRxZZR5seHcduVGpX483PVb7S0mRLMQYmxF/n1oM5YCpjRIiuZ?= =?us-ascii?Q?gQGKlYie?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB5084A6146FD766542349E8249BA39DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 46b2ba78-b38d-4b2b-901b-08d8bc8e38c6
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jan 2021 15:23:49.6220 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: lM0K6cnZwoSMkE1qXdwYsbYEBYTqOZqdPtlSUc2VQl8pnPaJWkesLmEOgLD3jdFruSUy7B1ZTjrRyz1rgUaaOg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR08MB6942
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/rXVfqFWZp1666nBCSbLpYBPHEqo>
Subject: [netmod] YANG Versioning Weekly Call Minutes - 2021-01-19
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jan 2021 15:23:54 -0000

--_000_DM6PR08MB5084A6146FD766542349E8249BA39DM6PR08MB5084namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

YANG Versioning Weekly Call Minutes - 2021-01-19

We discussed the Feb Virtual Interim topics

T3: (filenames)
- introduce a new optional filename format module-name#<revision-label>.yan=
g.  e.g. acme-module#3.0.1.yang  (in parallel with the current optional for=
mat acme-module@2020-12-12.yang)
- avoid mentioning symlinks. That is outside the scope of our specification=
s.

T2: (IANA considerations)
- we will propose text for enum & identity handling for IANA-maintained mod=
ules
- Rob to raise a separate issue for versioning handling in RFC Editor guide=
lines

T1: (NBC rules for state)
- still open debate on fundamental principles (mandatory, value space chang=
es, removing leafs)

Jason

--_000_DM6PR08MB5084A6146FD766542349E8249BA39DM6PR08MB5084namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://schema=
s.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html=
40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">YANG Versioning Weekly Call Minutes - 2021-01-19<o:p=
></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We discussed the Feb Virtual Interim topics<o:p></o:=
p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">T3: (filenames)<o:p></o:p></p>
<p class=3D"MsoNormal">- introduce a new optional filename format module-na=
me#&lt;revision-label&gt;.yang.&nbsp; e.g. acme-module#3.0.1.yang&nbsp; (in=
 parallel with the current optional format acme-module@2020-12-12.yang)<o:p=
></o:p></p>
<p class=3D"MsoNormal">- avoid mentioning symlinks. That is outside the sco=
pe of our specifications.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">T2: (IANA considerations)<o:p></o:p></p>
<p class=3D"MsoNormal">- we will propose text for enum &amp; identity handl=
ing for IANA-maintained modules<o:p></o:p></p>
<p class=3D"MsoNormal">- Rob to raise a separate issue for versioning handl=
ing in RFC Editor guidelines<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">T1: (NBC rules for state)<o:p></o:p></p>
<p class=3D"MsoNormal">- still open debate on fundamental principles (manda=
tory, value space changes, removing leafs)<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Jason<o:p></o:p></p>
</div>
</body>
</html>

--_000_DM6PR08MB5084A6146FD766542349E8249BA39DM6PR08MB5084namp_--


From nobody Tue Jan 19 17:35:32 2021
Return-Path: <bill.wu@huawei.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 88DA33A0B5F for <netmod@ietfa.amsl.com>; Tue, 19 Jan 2021 17:35:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 Zy1tHDuGs0ob for <netmod@ietfa.amsl.com>; Tue, 19 Jan 2021 17:35:28 -0800 (PST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 107453A0B5A for <netmod@ietf.org>; Tue, 19 Jan 2021 17:35:28 -0800 (PST)
Received: from fraeml745-chm.china.huawei.com (unknown [172.18.147.207]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4DL7Jx33Hyz67dTM; Wed, 20 Jan 2021 09:31:13 +0800 (CST)
Received: from fraeml745-chm.china.huawei.com (10.206.15.226) by fraeml745-chm.china.huawei.com (10.206.15.226) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 20 Jan 2021 02:35:21 +0100
Received: from DGGEML403-HUB.china.huawei.com (10.3.17.33) by fraeml745-chm.china.huawei.com (10.206.15.226) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.1.2106.2 via Frontend Transport; Wed, 20 Jan 2021 02:35:20 +0100
Received: from DGGEML531-MBS.china.huawei.com ([169.254.5.18]) by DGGEML403-HUB.china.huawei.com ([fe80::74d9:c659:fbec:21fa%31]) with mapi id 14.03.0509.000; Wed, 20 Jan 2021 09:35:11 +0800
From: Qin Wu <bill.wu@huawei.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "Bogaert, Bart (Nokia - BE/Antwerp)" <bart.bogaert@nokia.com>
CC: "Carey, Timothy (Nokia - US)" <timothy.carey@nokia.com>, "Pauwels, Ludwig (Nokia - BE/Antwerp)" <ludwig.pauwels@nokia.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] RFC 8808 (reset to factory defaults) versus RFC 8342 (NMDA)
Thread-Index: AdbuzH0FzTt4ftu9Q1OYtAkOOPecKA==
Date: Wed, 20 Jan 2021 01:35:11 +0000
Message-ID: <B8F9A780D330094D99AF023C5877DABAADCE1FD2@dggeml531-mbs.china.huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.136.101.103]
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/CgFskWNr7YIWUJEwECwPBP5fpi8>
Subject: Re: [netmod] RFC 8808 (reset to factory defaults) versus RFC 8342 (NMDA)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 01:35:31 -0000

SSB0aGluayBKdWVyZ2VuIGlzIGNvcnJlY3QuIEEgZmV3IHRob3VnaHRzIG9uIHRoaXM6DQoxLiBG
YWN0b3J5IGRlZmF1bHQgZGF0YXN0b3JlIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggZGVmYXVsdCBk
YXRhIGhhbmRsaW5nIG9yIHN5c3RlbSBkYXRhIGhhbmRsaW5nLCBmb3IgZGVmYXVsdCBkYXRhIGhh
bmRsaW5nLCBwbGVhc2UgcmVmZXIgdG8gUkZDNjI0MywgZm9yIHN5c3RlbSBkYXRhIGhhbmRsaW5n
LCB0aGVyZSBpcyBvbmUgb24gZ29pbmcgaW5kaXZpZHVhbCB3b3JrIGluIG5ldGNvbmYgV0cNCmh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1tYS1uZXRjb25mLXdpdGgtc3lzdGVtLTAx
IHdoaWNoIHByb3Bvc2UgdG8gZGVmaW5lIGEgc3lzdGVtIGRhdGEgZGF0YXN0b3JlIHRvIHByb3Zp
ZGUgY29uc2lzdGVudCBkYXRhIGhhbmRsaW5nIGluIHRoZSBzYW1lIHdheSBhcyBSRkM2MjQzIGRp
ZC4NCjIuIERlZmF1bHQgZGF0YSB3aWxsIGJlIHBhcnQgb2YgZGVmaW5pdGlvbiBvZiB5YW5nIG1v
ZHVsZXMgYXMgbWV0YWRhdGEsIHNlZSBmaWd1cmUgaW4gdGhlIHNlY3Rpb24gMy4xIG9mIFJGQzYy
NDQNCjMuIERlZmF1bHQgc3RhdGVtZW50IGlzIGRlZmluZWQgaW4gUkZDNzk1MCwgaXQgY2FuIGJl
IHVzZWQgd2l0aCBtYW55IFlBTkcgZGF0YSBub2RlcywgZS5nLiwgbGVhZiwgbGVhZi1saXN0LCBj
aG9pY2UuDQotLS0tLdPKvP7Urbz+LS0tLS0NCreivP7IyzogbmV0bW9kIFttYWlsdG86bmV0bW9k
LWJvdW5jZXNAaWV0Zi5vcmddILT6se0gSnVlcmdlbiBTY2hvZW53YWVsZGVyDQq3osvNyrG85Dog
MjAyMMTqMTHUwjfI1SAxOjM0DQrK1bz+yMs6IEJvZ2FlcnQsIEJhcnQgKE5va2lhIC0gQkUvQW50
d2VycCkgPGJhcnQuYm9nYWVydEBub2tpYS5jb20+DQqzrcvNOiBDYXJleSwgVGltb3RoeSAoTm9r
aWEgLSBVUykgPHRpbW90aHkuY2FyZXlAbm9raWEuY29tPjsgUGF1d2VscywgTHVkd2lnIChOb2tp
YSAtIEJFL0FudHdlcnApIDxsdWR3aWcucGF1d2Vsc0Bub2tpYS5jb20+OyBuZXRtb2RAaWV0Zi5v
cmcNCtb3zOI6IFJlOiBbbmV0bW9kXSBSRkMgODgwMiAocmVzZXQgdG8gZmFjdG9yeSBkZWZhdWx0
cykgdmVyc3VzIFJGQyA4MzQyIChOTURBKQ0KDQpPbiBGcmksIE5vdiAwNiwgMjAyMCBhdCAwMzoz
MTozNlBNICswMDAwLCBCb2dhZXJ0LCBCYXJ0IChOb2tpYSAtIEJFL0FudHdlcnApIHdyb3RlOg0K
PiBIaSwNCj4gDQo+IFdlIGFyZSBhIGxpdHRsZSBjb25mdXNlZCB3aGVuIHJlYWRpbmcgUkZDODgw
OCAocmVzZXQgdG8gZmFjdG9yeS1kZWZhdWx0IGRhdGFzdG9yZSkgaW4gcmVsYXRpb24gdG8gdGhl
ICJzeXN0ZW0gY29uZmlndXJhdGlvbiIgc291cmNlIGluIGZpZ3VyZSAyIG9mIFJGQzgzNDIuICBX
aGVuIGNvcnJlY3RseSB1bmRlcnN0YW5kaW5nIFJGQyA4MzQyLCB0aGUgcnVubmluZyBkYXRhc3Rv
cmUgaXMgZW1wdHkgd2hlbiB0aGUgc3lzdGVtIHN0YXJ0cyB1cCBhZnRlciBjb21pbmcgZnJvbSB0
aGUgZmFjdG9yeSwgYW5kICdmYWN0b3J5IGRlZmF1bHQnIGRhdGEgaXMgZW50ZXJlZCBpbiB0aGUg
b3BlcmF0aW9uYWwgZGF0YXN0b3JlIGFzICdzeXN0ZW0vZGVmYXVsdCBjb25maWd1cmF0aW9uJyBk
YXRhLg0KPiANCj4gUkZDIDg4MDggc2VlbXMgdG8gc3VnZ2VzdCB0aGF0IHRoZSBydW5uaW5nIGRh
dGFzdG9yZSBjb250YWlucyAoZmFjdG9yeS1kZWZhdWx0LCBzeXN0ZW0pIGRhdGEgd2hlbiB0aGUg
c3lzdGVtIHN0YXJ0cyB1cCBhZnRlciBjb21pbmcgZnJvbSB0aGUgZmFjdG9yeS4gSS5lLiB0aGUg
dW5kZXJzdGFuZGluZyBpcyB0aGF0IGEgcmVzZXQgdG8gZmFjdG9yeSBkZWZhdWx0IGJyaW5ncyB0
aGUgc3lzdGVtIGJhY2sgdG8gdGhlIHN0YXR1cyBhcyBpZiBpdCBjb21lcyBmcm9tIHRoZSBmYWN0
b3J5LCBhbmQgaXQgaXMgc2FpZCB0aGUgZmFjdG9yeSBkZWZhdWx0IGdvZXMgaW50byB0aGUgcnVu
bmluZywgLi4uDQo+IA0KPiBXaGF0IGV4YWN0bHkgaXMgdGhlIGNvbnRlbnQgb2YgdGhlIHJ1bm5p
bmcgZGF0YXN0b3JlIHdoZW4gaXQgY29tZXMgZnJvbSB0aGUgZmFjdG9yeT8NCj4gQ291bGQgdGhp
cyBiZSBjbGFyaWZpZWQ/DQo+DQoNCkkgY29uc2lkZXIgUkZDIDg4MDggYW4gZXh0ZW5zaW9uIHRo
YXQgcGVvcGxlIG1heSBpbXBsZW1lbnQgaWYgdGhlaXIgc3lzdGVtcyBkbyB3aGF0IFJGQyA4ODA4
IGRlc2NyaWJlcywgbmFtZWx5IHRoYXQgdGhlIHJ1bm5pbmcgZGF0YXN0b3JlIGlzIGJvb3RzdHJh
cHBlZCBmcm9tIGEgZmFjdG9yeSBkZWZhdWx0IGRhdGFzdG9yZS4gKE9mIGNvdXJzZSwgYSBzeXN0
ZW0gd2l0aCBhbiBlbXB0eSBydW5uaW5nIGRhdGFzdG9yZSBhZnRlciBhIGZhY3RvcnkgcmVzZXQg
bWF5IGNsYWltIHRvIGJlIGJvb3RzdHJhcHBlZCBmcm9tIGFuIGVtcHR5IGZhY3RvcnkgZGVmYXVs
dCBkYXRhc3RvcmUuKQ0KDQpJbiBvdGhlciB3b3JkcywgSSB0aGluayB0aGUgYW5zd2VyIHRvICJX
aGF0IGV4YWN0bHkgaXMgdGhlIGNvbnRlbnQgb2YgdGhlIHJ1bm5pbmcgZGF0YXN0b3JlIHdoZW4g
aXQgY29tZXMgZnJvbSB0aGUgZmFjdG9yeT8iIGlzIHRoYXQgaXQgaXMgZW1wdHkuIE9uIGZpcnN0
IGJvb3QsIG9uIGEgc3lzdGVtIGltcGxlbWVudGluZyBSRkMgODgwOCwgaXQgd291bGQgYmUgbG9h
ZGVkIHdpdGggdGhlIGNvbnRlbnQgb2YgdGhlIGZhY3RvcnkgZGVmYXVsdCBkYXRhc3RvcmUgYW5k
IG9uIHN5c3RlbXMgbm90IGltcGxlbWVudGluZyBSRkMgODgwOCBpdCB3b3VsZCBtb3N0IGxpa2Vs
eSByZW1haW4gZW1wdHkuDQoNCi9qcw0KDQotLSANCkp1ZXJnZW4gU2Nob2Vud2FlbGRlciAgICAg
ICAgICAgSmFjb2JzIFVuaXZlcnNpdHkgQnJlbWVuIGdHbWJIDQpQaG9uZTogKzQ5IDQyMSAyMDAg
MzU4NyAgICAgICAgIENhbXB1cyBSaW5nIDEgfCAyODc1OSBCcmVtZW4gfCBHZXJtYW55DQpGYXg6
ICAgKzQ5IDQyMSAyMDAgMzEwMyAgICAgICAgIDxodHRwczovL3d3dy5qYWNvYnMtdW5pdmVyc2l0
eS5kZS8+DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
DQpuZXRtb2QgbWFpbGluZyBsaXN0DQpuZXRtb2RAaWV0Zi5vcmcNCmh0dHBzOi8vd3d3LmlldGYu
b3JnL21haWxtYW4vbGlzdGluZm8vbmV0bW9kDQo=


From nobody Wed Jan 20 00:57:55 2021
Return-Path: <Italo.Busi@huawei.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0DE423A0CD9 for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 00:57:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 M96P8dq2iB2s for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 00:57:51 -0800 (PST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A9ACC3A0CD6 for <netmod@ietf.org>; Wed, 20 Jan 2021 00:57:50 -0800 (PST)
Received: from fraeml709-chm.china.huawei.com (unknown [172.18.147.201]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4DLK8b4Y2Tz67f57 for <netmod@ietf.org>; Wed, 20 Jan 2021 16:54:39 +0800 (CST)
Received: from fraeml715-chm.china.huawei.com (10.206.15.34) by fraeml709-chm.china.huawei.com (10.206.15.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 20 Jan 2021 09:57:48 +0100
Received: from fraeml715-chm.china.huawei.com ([10.206.15.34]) by fraeml715-chm.china.huawei.com ([10.206.15.34]) with mapi id 15.01.2106.006; Wed, 20 Jan 2021 09:57:48 +0100
From: Italo Busi <Italo.Busi@huawei.com>
To: "'netmod@ietf.org'" <netmod@ietf.org>
Thread-Topic: Questions about how to assign default values with YANG
Thread-Index: AdbvCmZgzen+a6G4QWicT/glaRAynA==
Date: Wed, 20 Jan 2021 08:57:48 +0000
Message-ID: <a0c43ab5c3c1463a97a1aa594a80ceee@huawei.com>
Accept-Language: it-IT, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.47.81.4]
Content-Type: multipart/alternative; boundary="_000_a0c43ab5c3c1463a97a1aa594a80ceeehuaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/y6rrP5avzNBh2-TkXkOTdENcmi4>
Subject: [netmod] Questions about how to assign default values with YANG
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 08:57:53 -0000

--_000_a0c43ab5c3c1463a97a1aa594a80ceeehuaweicom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

I have read RFC7950 and RFC8342 but I have still some questions for clarifi=
cation about how to deal with default values in YANG.

Let's consider a config true leaf for which a YANG default statement has be=
en defined in the YANG module.

If the client does not configure that leaf in the running datastore, the le=
af is not present (cannot be read) in the running datastore.

The default value for that leaf is assigned by server in the operational da=
tastore as part of the applied configuration (assuming that other configura=
tions do not override it).

If that leaf exists in the operational datastore, the server shall return t=
he default value if that leaf is read.

Is our understanding correct?

Is it possible for a server not to use that leaf and not to return any valu=
e if that leaf is read?

According to this text from RFC8342, it seems that this is possible:

   Requests to retrieve nodes from <operational> always return the value
   in use if the node exists, regardless of any default value specified
   in the YANG module.  If no value is returned for a given node, then
   this implies that the node is not used by the device.

However, according to this text from RFC7950, it seems that this is not pos=
sible:

   When the default value is in use, the server MUST operationally
   behave as if the leaf was present in the data tree with the default
   value as its value.
There are case where the default value to assign to a leaf depends on the c=
onfiguration of other leaves. In this case, the default value cannot be def=
ined using a YANG default statement.

In this case, is it possible in this case to define the default value in th=
e description (maybe referencing some other standard specification)?
Would the behavior of the system be exactly the same as in the cases where =
the default value is assigned using a YANG default statement?
Would it be possible in this case to define a default value for a leaf defi=
ned in a base model which depends on an attribute defined in another model =
which augments the base model?
In this case, the description of the leaf in the base model cannot be chang=
ed in the augmented model. Should the default value for the leaf defined in=
 the base model be described in the description for the leaf defined in the=
 augmenting module?

For example, would this YANG be valid/correct to define a default value 10 =
for the leaf foo when the leaf bar exist?

module example-base {
  container example {
    leaf foo {
      type uint8;
    }
  }
}

module example-augment {
  import example {
    prefix ex;
  }

  augment "ex:example" {
    leaf bar {
      type empty;
      description
        "When present, the default value for foo is 10.";
    }
  }
}


Thanks for your help

Italo


--_000_a0c43ab5c3c1463a97a1aa594a80ceeehuaweicom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"\@SimSun";
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi all,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">I have read RFC7950 and RFC8342 but I have still som=
e questions for clarification about how to deal with default values in YANG=
.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Let's consider a config true leaf for which a YANG d=
efault statement has been defined in the YANG module.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">If the client does not configure that leaf in the ru=
nning datastore, the leaf is not present (cannot be read) in the running da=
tastore.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The default value for that leaf is assigned by serve=
r in the operational datastore as part of the applied configuration (assumi=
ng that other configurations do not override it).<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">If that leaf exists in the operational datastore, th=
e server shall return the default value if that leaf is read.<o:p></o:p></p=
>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Is our understanding correct?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Is it possible for a server not to use that leaf and=
 not to return any value if that leaf is read?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">According to this text from RFC8342, it seems that t=
his is possible:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp; Requests to retrieve nodes from &lt;ope=
rational&gt; always return the value<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp; in use if the node exists, regardless o=
f any default value specified<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp; in the YANG module.&nbsp; If no value i=
s returned for a given node, then<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp; this implies that the node is not used =
by the device.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">However, according to this text from RFC7950, it see=
ms that this is not possible:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp; When the default value is in use, the s=
erver MUST operationally<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp; behave as if the leaf was present in th=
e data tree with the default<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp; value as its value.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">There are case where the default value to assign to =
a leaf depends on the configuration of other leaves. In this case, the defa=
ult value cannot be defined using a YANG default statement.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">In this case, is it possible in this case to define =
the default value in the description (maybe referencing some other standard=
 specification)?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">Would the behavior of the system be exactly the same=
 as in the cases where the default value is assigned using a YANG default s=
tatement?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">Would it be possible in this case to define a defaul=
t value for a leaf defined in a base model which depends on an attribute de=
fined in another model which augments the base model?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">In this case, the description of the leaf in the bas=
e model cannot be changed in the augmented model. Should the default value =
for the leaf defined in the base model be described in the description for =
the leaf defined in the augmenting
 module?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">For example, would this YANG be valid/correct to def=
ine a default value 10 for the leaf foo when the leaf bar exist?<o:p></o:p>=
</p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#C586C0">module</sp=
an><span style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbs=
p;example-base&nbsp;{<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;</span><span style=3D"font-size:10.5pt;font-family:Consolas;color:#C586C0=
">container</span><span style=3D"font-size:10.5pt;font-family:Consolas;colo=
r:#D4D4D4">&nbsp;example&nbsp;{<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;</span><span style=3D"font-size:10.5pt;font-family:Consolas;c=
olor:#C586C0">leaf</span><span style=3D"font-size:10.5pt;font-family:Consol=
as;color:#D4D4D4">&nbsp;foo&nbsp;{<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:10.5pt;font-famil=
y:Consolas;color:#C586C0">type</span><span style=3D"font-size:10.5pt;font-f=
amily:Consolas;color:#D4D4D4">&nbsp;uint8;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;}<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;}<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">}<o:p></o:=
p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#C586C0">module</sp=
an><span style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbs=
p;example-augment&nbsp;{<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;</span><span style=3D"font-size:10.5pt;font-family:Consolas;color:#C586C0=
">import</span><span style=3D"font-size:10.5pt;font-family:Consolas;color:#=
D4D4D4">&nbsp;example&nbsp;{<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;</span><span style=3D"font-size:10.5pt;font-family:Consolas;c=
olor:#C586C0">prefix</span><span style=3D"font-size:10.5pt;font-family:Cons=
olas;color:#D4D4D4">&nbsp;ex;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;}<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;</span><span style=3D"font-size:10.5pt;font-family:Consolas;color:#C586C0=
">augment</span><span style=3D"font-size:10.5pt;font-family:Consolas;color:=
#D4D4D4">&nbsp;</span><span style=3D"font-size:10.5pt;font-family:Consolas;=
color:#CE9178">&quot;ex:example&quot;</span><span style=3D"font-size:10.5pt=
;font-family:Consolas;color:#D4D4D4">&nbsp;{<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;</span><span style=3D"font-size:10.5pt;font-family:Consolas;c=
olor:#C586C0">leaf</span><span style=3D"font-size:10.5pt;font-family:Consol=
as;color:#D4D4D4">&nbsp;bar&nbsp;{<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:10.5pt;font-famil=
y:Consolas;color:#C586C0">type</span><span style=3D"font-size:10.5pt;font-f=
amily:Consolas;color:#D4D4D4">&nbsp;empty;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:10.5pt;font-famil=
y:Consolas;color:#C586C0">description</span><span style=3D"font-size:10.5pt=
;font-family:Consolas;color:#D4D4D4"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style=3D"font-size:10.5p=
t;font-family:Consolas;color:#CE9178">&quot;When&nbsp;present,&nbsp;the&nbs=
p;default&nbsp;value&nbsp;for&nbsp;foo&nbsp;is&nbsp;10.&quot;</span><span s=
tyle=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">;<o:p></o:p></=
span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;&nbsp;&nbsp;}<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">&nbsp;&nbs=
p;}<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4">}<o:p></o:=
p></span></p>
<p class=3D"MsoNormal" style=3D"line-height:14.25pt;background:#1E1E1E"><sp=
an style=3D"font-size:10.5pt;font-family:Consolas;color:#D4D4D4"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks for your help<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Italo<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_a0c43ab5c3c1463a97a1aa594a80ceeehuaweicom_--


From nobody Wed Jan 20 01:47:44 2021
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0BAE23A0E1C for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 01:47:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 0j3567lPXgRi for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 01:47:41 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7C9093A0E1D for <netmod@ietf.org>; Wed, 20 Jan 2021 01:47:40 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id E7E7FD70; Wed, 20 Jan 2021 10:47:38 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.198]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id hNSapHXb9xvY; Wed, 20 Jan 2021 10:47:38 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Wed, 20 Jan 2021 10:47:38 +0100 (CET)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by hermes.jacobs-university.de (Postfix) with ESMTP id 8E7B220156; Wed, 20 Jan 2021 10:47:38 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10028) with ESMTP id tu3mPc_ZpJBn; Wed, 20 Jan 2021 10:47:38 +0100 (CET)
Received: from localhost (anna.jacobs.jacobs-university.de [10.50.218.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by hermes.jacobs-university.de (Postfix) with ESMTPS id EECE120154; Wed, 20 Jan 2021 10:47:37 +0100 (CET)
Date: Wed, 20 Jan 2021 10:47:37 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Italo Busi <Italo.Busi@huawei.com>
Cc: "'netmod@ietf.org'" <netmod@ietf.org>
Message-ID: <20210120094737.g5l5pvfzligahrj6@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Italo Busi <Italo.Busi@huawei.com>, "'netmod@ietf.org'" <netmod@ietf.org>
References: <a0c43ab5c3c1463a97a1aa594a80ceee@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <a0c43ab5c3c1463a97a1aa594a80ceee@huawei.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/pmiwvNsTXP22yy38jpYtqk3GVBs>
Subject: Re: [netmod] Questions about how to assign default values with YANG
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 09:47:44 -0000

On Wed, Jan 20, 2021 at 08:57:48AM +0000, Italo Busi wrote:
> Hi all,
> 
> I have read RFC7950 and RFC8342 but I have still some questions for clarification about how to deal with default values in YANG.
> 
> Let's consider a config true leaf for which a YANG default statement has been defined in the YANG module.
> 
> If the client does not configure that leaf in the running datastore, the leaf is not present (cannot be read) in the running datastore.
> 
> The default value for that leaf is assigned by server in the operational datastore as part of the applied configuration (assuming that other configurations do not override it).
> 
> If that leaf exists in the operational datastore, the server shall return the default value if that leaf is read.
> 
> Is our understanding correct?

Yes. And you would tag the value with or:origin="or:default", appendix C.1
in RFC 8342 is a good example.
 
> Is it possible for a server not to use that leaf and not to return any value if that leaf is read?
> 
> According to this text from RFC8342, it seems that this is possible:
> 
>    Requests to retrieve nodes from <operational> always return the value
>    in use if the node exists, regardless of any default value specified
>    in the YANG module.  If no value is returned for a given node, then
>    this implies that the node is not used by the device.
> 
> However, according to this text from RFC7950, it seems that this is not possible:
> 
>    When the default value is in use, the server MUST operationally
>    behave as if the leaf was present in the data tree with the default
>    value as its value.

I do not see the conflict. Note that RFC 7950 predates the notion of
an operational datastore.

> There are case where the default value to assign to a leaf depends on the configuration of other leaves. In this case, the default value cannot be defined using a YANG default statement.
> 
> In this case, is it possible in this case to define the default value in the description (maybe referencing some other standard specification)?
> 
> Would the behavior of the system be exactly the same as in the cases where the default value is assigned using a YANG default statement?

RFC 8342 says:

   o  default: represents configuration using a default value specified
      in the data model, using either values in the "default" statement
      or any values described in the "description" statement.  The
      default origin is only used when the configuration has not been
      provided by any other source.

and

     identity default {
       base origin;
       description
         "Denotes configuration that does not have a configured or
          learned value but has a default value in use.  Covers both
          values defined in a 'default' statement and values defined
          via an explanation in a 'description' statement.";
     }

So it is possible to define the default in a description clause.

> Would it be possible in this case to define a default value for a leaf defined in a base model which depends on an attribute defined in another model which augments the base model?
> In this case, the description of the leaf in the base model cannot be changed in the augmented model. Should the default value for the leaf defined in the base model be described in the description for the leaf defined in the augmenting module?
> For example, would this YANG be valid/correct to define a default value 10 for the leaf foo when the leaf bar exist?
> 
> module example-base {
>   container example {
>     leaf foo {
>       type uint8;
>     }
>   }
> }
> 
> module example-augment {
>   import example {
>     prefix ex;
>   }
> 
>   augment "ex:example" {
>     leaf bar {
>       type empty;
>       description
>         "When present, the default value for foo is 10.";
>     }
>   }
> }
> 

Well, this may be meaningful in some cases but it is also risky, if
multiple augementations start to disagree on what should be the
default of some other leaf. Alternatively, you could report the value
foo=10 with the origin "system". For most clients, it likely does not
matter much whether foo=10 is reported with origin=default or
origin=system if the default derivation logic becomes more complex.

For me personally, if there is more complex logic involved in deriving
a value for a leaf (i.e., the existence of other leafs or values of
other leafs matter), then I would rather call it a system provided
value and not a default value.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Wed Jan 20 02:51:19 2021
Return-Path: <Italo.Busi@huawei.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B4E73A10B0 for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 02:51:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 c8C6-6zhuIaH for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 02:51:15 -0800 (PST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 68E6C3A10AB for <netmod@ietf.org>; Wed, 20 Jan 2021 02:51:15 -0800 (PST)
Received: from fraeml710-chm.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4DLMch2qlYz67dBW; Wed, 20 Jan 2021 18:45:40 +0800 (CST)
Received: from fraeml715-chm.china.huawei.com (10.206.15.34) by fraeml710-chm.china.huawei.com (10.206.15.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 20 Jan 2021 11:51:10 +0100
Received: from fraeml715-chm.china.huawei.com ([10.206.15.34]) by fraeml715-chm.china.huawei.com ([10.206.15.34]) with mapi id 15.01.2106.006; Wed, 20 Jan 2021 11:51:10 +0100
From: Italo Busi <Italo.Busi@huawei.com>
To: 'Juergen Schoenwaelder' <j.schoenwaelder@jacobs-university.de>
CC: "'netmod@ietf.org'" <netmod@ietf.org>
Thread-Topic: [netmod] Questions about how to assign default values with YANG
Thread-Index: AdbvCmZgzen+a6G4QWicT/glaRAynP///QGA///e3yA=
Date: Wed, 20 Jan 2021 10:51:09 +0000
Message-ID: <2384a8f549c94ea0ac46d6c772fbca43@huawei.com>
References: <a0c43ab5c3c1463a97a1aa594a80ceee@huawei.com> <20210120094737.g5l5pvfzligahrj6@anna.jacobs.jacobs-university.de>
In-Reply-To: <20210120094737.g5l5pvfzligahrj6@anna.jacobs.jacobs-university.de>
Accept-Language: it-IT, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.47.81.4]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/zp_cw9LTBL7y8DHoGiWwsFetC48>
Subject: Re: [netmod] Questions about how to assign default values with YANG
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 10:51:17 -0000

Juergen,

Thanks for your quick and clear reply.

Thanks also for the suggestion of using system provided values instead of d=
efault values.

I have only one doubt and one follow-up question:

> > Is it possible for a server not to use that leaf and not to return any =
value if
> that leaf is read?
> >
> > According to this text from RFC8342, it seems that this is possible:
> >
> >    Requests to retrieve nodes from <operational> always return the valu=
e
> >    in use if the node exists, regardless of any default value specified
> >    in the YANG module.  If no value is returned for a given node, then
> >    this implies that the node is not used by the device.
> >
> > However, according to this text from RFC7950, it seems that this is not
> possible:
> >
> >    When the default value is in use, the server MUST operationally
> >    behave as if the leaf was present in the data tree with the default
> >    value as its value.
>=20
> I do not see the conflict. Note that RFC 7950 predates the notion of an
> operational datastore.
>

Does it mean that a server may not use/implement in the operational datasto=
re a leaf for which a YANG default statement has been defined?

What would be the value of defining a YANG default statement for  config fa=
lse leaf?

Italo

> -----Original Message-----
> From: Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de]
> Sent: mercoled=EC 20 gennaio 2021 10:48
> To: Italo Busi <Italo.Busi@huawei.com>
> Cc: 'netmod@ietf.org' <netmod@ietf.org>
> Subject: Re: [netmod] Questions about how to assign default values with
> YANG
>=20
> On Wed, Jan 20, 2021 at 08:57:48AM +0000, Italo Busi wrote:
> > Hi all,
> >
> > I have read RFC7950 and RFC8342 but I have still some questions for
> clarification about how to deal with default values in YANG.
> >
> > Let's consider a config true leaf for which a YANG default statement ha=
s
> been defined in the YANG module.
> >
> > If the client does not configure that leaf in the running datastore, th=
e leaf is
> not present (cannot be read) in the running datastore.
> >
> > The default value for that leaf is assigned by server in the operationa=
l
> datastore as part of the applied configuration (assuming that other
> configurations do not override it).
> >
> > If that leaf exists in the operational datastore, the server shall retu=
rn the
> default value if that leaf is read.
> >
> > Is our understanding correct?
>=20
> Yes. And you would tag the value with or:origin=3D"or:default", appendix =
C.1 in
> RFC 8342 is a good example.
>=20
> > Is it possible for a server not to use that leaf and not to return any =
value if
> that leaf is read?
> >
> > According to this text from RFC8342, it seems that this is possible:
> >
> >    Requests to retrieve nodes from <operational> always return the valu=
e
> >    in use if the node exists, regardless of any default value specified
> >    in the YANG module.  If no value is returned for a given node, then
> >    this implies that the node is not used by the device.
> >
> > However, according to this text from RFC7950, it seems that this is not
> possible:
> >
> >    When the default value is in use, the server MUST operationally
> >    behave as if the leaf was present in the data tree with the default
> >    value as its value.
>=20
> I do not see the conflict. Note that RFC 7950 predates the notion of an
> operational datastore.
>=20
> > There are case where the default value to assign to a leaf depends on t=
he
> configuration of other leaves. In this case, the default value cannot be =
defined
> using a YANG default statement.
> >
> > In this case, is it possible in this case to define the default value i=
n the
> description (maybe referencing some other standard specification)?
> >
> > Would the behavior of the system be exactly the same as in the cases wh=
ere
> the default value is assigned using a YANG default statement?
>=20
> RFC 8342 says:
>=20
>    o  default: represents configuration using a default value specified
>       in the data model, using either values in the "default" statement
>       or any values described in the "description" statement.  The
>       default origin is only used when the configuration has not been
>       provided by any other source.
>=20
> and
>=20
>      identity default {
>        base origin;
>        description
>          "Denotes configuration that does not have a configured or
>           learned value but has a default value in use.  Covers both
>           values defined in a 'default' statement and values defined
>           via an explanation in a 'description' statement.";
>      }
>=20
> So it is possible to define the default in a description clause.
>=20
> > Would it be possible in this case to define a default value for a leaf =
defined in
> a base model which depends on an attribute defined in another model which
> augments the base model?
> > In this case, the description of the leaf in the base model cannot be c=
hanged
> in the augmented model. Should the default value for the leaf defined in =
the
> base model be described in the description for the leaf defined in the
> augmenting module?
> > For example, would this YANG be valid/correct to define a default value=
 10
> for the leaf foo when the leaf bar exist?
> >
> > module example-base {
> >   container example {
> >     leaf foo {
> >       type uint8;
> >     }
> >   }
> > }
> >
> > module example-augment {
> >   import example {
> >     prefix ex;
> >   }
> >
> >   augment "ex:example" {
> >     leaf bar {
> >       type empty;
> >       description
> >         "When present, the default value for foo is 10.";
> >     }
> >   }
> > }
> >
>=20
> Well, this may be meaningful in some cases but it is also risky, if multi=
ple
> augementations start to disagree on what should be the default of some ot=
her
> leaf. Alternatively, you could report the value
> foo=3D10 with the origin "system". For most clients, it likely does not m=
atter
> much whether foo=3D10 is reported with origin=3Ddefault or origin=3Dsyste=
m if the
> default derivation logic becomes more complex.
>=20
> For me personally, if there is more complex logic involved in deriving a =
value
> for a leaf (i.e., the existence of other leafs or values of other leafs m=
atter), then
> I would rather call it a system provided value and not a default value.
>=20
> /js
>=20
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Wed Jan 20 03:44:53 2021
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5219E3A114A for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 03:44:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 20Ra06dKhbiY for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 03:44:50 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6009F3A1149 for <netmod@ietf.org>; Wed, 20 Jan 2021 03:44:50 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 3636182F; Wed, 20 Jan 2021 12:44:48 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.198]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id 9qiBwKmTf1PE; Wed, 20 Jan 2021 12:44:47 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Wed, 20 Jan 2021 12:44:47 +0100 (CET)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by hermes.jacobs-university.de (Postfix) with ESMTP id CBD7820156; Wed, 20 Jan 2021 12:44:47 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10028) with ESMTP id o4o-dz-FSp_h; Wed, 20 Jan 2021 12:44:47 +0100 (CET)
Received: from localhost (anna.jacobs.jacobs-university.de [10.50.218.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by hermes.jacobs-university.de (Postfix) with ESMTPS id 31C5320154; Wed, 20 Jan 2021 12:44:46 +0100 (CET)
Date: Wed, 20 Jan 2021 12:44:46 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Italo Busi <Italo.Busi@huawei.com>
Cc: "'netmod@ietf.org'" <netmod@ietf.org>
Message-ID: <20210120114446.ovih63db7vmv7c7s@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Italo Busi <Italo.Busi@huawei.com>, "'netmod@ietf.org'" <netmod@ietf.org>
References: <a0c43ab5c3c1463a97a1aa594a80ceee@huawei.com> <20210120094737.g5l5pvfzligahrj6@anna.jacobs.jacobs-university.de> <2384a8f549c94ea0ac46d6c772fbca43@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <2384a8f549c94ea0ac46d6c772fbca43@huawei.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/MoZZofgoOHqqCiG7G0Em7c3oGFA>
Subject: Re: [netmod] Questions about how to assign default values with YANG
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 11:44:52 -0000

On Wed, Jan 20, 2021 at 10:51:09AM +0000, Italo Busi wrote:
> 
> Does it mean that a server may not use/implement in the operational datastore a leaf for which a YANG default statement has been defined?
>

RFC 7950 section 7.6.1 mentions describes situations where a leaf is
conditional, i.e., there is when condition or an if-feature expression
or the leaf is a case node.

> What would be the value of defining a YANG default statement for  config false leaf?
>

Technically, this can happen because a type has a defined default
value and this type may be used by config false leafs.

An example is the zero-based-counter32 typedef in RFC 6991. However,
this style may be debated since it (mis)uses a default statement to
define an initial value. I am not sure whether the pattern of using
default statements for specifying intial values is a good one.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Wed Jan 20 06:41:45 2021
Return-Path: <Italo.Busi@huawei.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B87213A1443 for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 06:41:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 Fc-dlQGSz230 for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 06:41:41 -0800 (PST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C57823A143D for <netmod@ietf.org>; Wed, 20 Jan 2021 06:41:41 -0800 (PST)
Received: from fraeml711-chm.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4DLSnL3PKfz67dKf; Wed, 20 Jan 2021 22:38:30 +0800 (CST)
Received: from fraeml715-chm.china.huawei.com (10.206.15.34) by fraeml711-chm.china.huawei.com (10.206.15.60) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 20 Jan 2021 15:41:39 +0100
Received: from fraeml715-chm.china.huawei.com ([10.206.15.34]) by fraeml715-chm.china.huawei.com ([10.206.15.34]) with mapi id 15.01.2106.006; Wed, 20 Jan 2021 15:41:39 +0100
From: Italo Busi <Italo.Busi@huawei.com>
To: 'Juergen Schoenwaelder' <j.schoenwaelder@jacobs-university.de>
CC: "'netmod@ietf.org'" <netmod@ietf.org>
Thread-Topic: [netmod] Questions about how to assign default values with YANG
Thread-Index: AdbvCmZgzen+a6G4QWicT/glaRAynP///QGA///e3yCAAEHcAP//waGg
Date: Wed, 20 Jan 2021 14:41:39 +0000
Message-ID: <0ed5638881af42148720dd7f4843c3e6@huawei.com>
References: <a0c43ab5c3c1463a97a1aa594a80ceee@huawei.com> <20210120094737.g5l5pvfzligahrj6@anna.jacobs.jacobs-university.de> <2384a8f549c94ea0ac46d6c772fbca43@huawei.com> <20210120114446.ovih63db7vmv7c7s@anna.jacobs.jacobs-university.de>
In-Reply-To: <20210120114446.ovih63db7vmv7c7s@anna.jacobs.jacobs-university.de>
Accept-Language: it-IT, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.47.27.133]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/wb-byR8yyfuQuJucedoRPSVsz7k>
Subject: Re: [netmod] Questions about how to assign default values with YANG
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 14:41:44 -0000

Thanks again Juergen,

This was really helpful

I still have one doubt:

> > Does it mean that a server may not use/implement in the operational
> datastore a leaf for which a YANG default statement has been defined?
> >
>=20
> RFC 7950 section 7.6.1 mentions describes situations where a leaf is
> conditional, i.e., there is when condition or an if-feature expression or=
 the leaf
> is a case node.
>

What about the case the leaf is not conditional (but still mandatory false =
since a YANG default statement is defined)?

May the server still decide not to use/implement this leaf in the operation=
al datastore?

For example, in appendix C.1 of RFC8342, auto-negotiation is enabled by def=
ault.
What should be the behavior of a system which does not implement auto-negot=
iation?
Return the value false or no value (in the operational datastore)?

Italo

> -----Original Message-----
> From: Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de]
> Sent: mercoled=EC 20 gennaio 2021 12:45
> To: Italo Busi <Italo.Busi@huawei.com>
> Cc: 'netmod@ietf.org' <netmod@ietf.org>
> Subject: Re: [netmod] Questions about how to assign default values with
> YANG
>=20
> On Wed, Jan 20, 2021 at 10:51:09AM +0000, Italo Busi wrote:
> >
> > Does it mean that a server may not use/implement in the operational
> datastore a leaf for which a YANG default statement has been defined?
> >
>=20
> RFC 7950 section 7.6.1 mentions describes situations where a leaf is
> conditional, i.e., there is when condition or an if-feature expression or=
 the leaf
> is a case node.
>=20
> > What would be the value of defining a YANG default statement for  confi=
g
> false leaf?
> >
>=20
> Technically, this can happen because a type has a defined default value a=
nd
> this type may be used by config false leafs.
>=20
> An example is the zero-based-counter32 typedef in RFC 6991. However, this
> style may be debated since it (mis)uses a default statement to define an =
initial
> value. I am not sure whether the pattern of using default statements for
> specifying intial values is a good one.
>=20
> /js
>=20
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Wed Jan 20 08:05:25 2021
Return-Path: <j.schoenwaelder@jacobs-university.de>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D64243A14B2 for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 08:05:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 rhHN6g_1uBMB for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 08:05:21 -0800 (PST)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 067C93A14AC for <netmod@ietf.org>; Wed, 20 Jan 2021 08:05:20 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id C2E76D70; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.198]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id 6VXIsmAPeJT0; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6A9BD20156; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10028) with ESMTP id j2eSeO1tnm5k; Wed, 20 Jan 2021 17:05:18 +0100 (CET)
Received: from localhost (anna.jacobs.jacobs-university.de [10.50.218.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by hermes.jacobs-university.de (Postfix) with ESMTPS id B896020154; Wed, 20 Jan 2021 17:05:17 +0100 (CET)
Date: Wed, 20 Jan 2021 17:05:17 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Italo Busi <Italo.Busi@huawei.com>
Cc: "'netmod@ietf.org'" <netmod@ietf.org>
Message-ID: <20210120160517.hsg5dnpidvrprtso@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Italo Busi <Italo.Busi@huawei.com>, "'netmod@ietf.org'" <netmod@ietf.org>
References: <a0c43ab5c3c1463a97a1aa594a80ceee@huawei.com> <20210120094737.g5l5pvfzligahrj6@anna.jacobs.jacobs-university.de> <2384a8f549c94ea0ac46d6c772fbca43@huawei.com> <20210120114446.ovih63db7vmv7c7s@anna.jacobs.jacobs-university.de> <0ed5638881af42148720dd7f4843c3e6@huawei.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <0ed5638881af42148720dd7f4843c3e6@huawei.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/xTuDLYC8_xwqAaYHvqcJXvj7oso>
Subject: Re: [netmod] Questions about how to assign default values with YANG
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 16:05:24 -0000

On Wed, Jan 20, 2021 at 02:41:39PM +0000, Italo Busi wrote:
> 
> What about the case the leaf is not conditional (but still mandatory false since a YANG default statement is defined)?
> 
> May the server still decide not to use/implement this leaf in the operational datastore?
> 
> For example, in appendix C.1 of RFC8342, auto-negotiation is enabled by default.
> What should be the behavior of a system which does not implement auto-negotiation?
> Return the value false or no value (in the operational datastore)?
>

Here are some of the rules I personally like:

 - <operational> is the ground truth about what a system has and does
 - do not implement leafs that do not apply

Hence, interfaces supporting auto-negotiation have either
auto-negotiation/enabled = true or auto-negotiation/enabled = false in
<operational>. And interfaces not supporting auto-negotiation have
nothing to report about auto-negotiation. Yes, I do not want to see
auto-negotiation/enabled = false on a loopback interface.

My historic Ethernet interface from the last century would also not
report auto-negotiation/enabled in <operational>. You may hit
applications that love to have auto-negotiation/enabled available on
all Ethernet interfaces and then you end in a debate where the
application developers tell you that no information in <operational>
may have many reasons (instrumentation not implemented, access control
rules, whatever and by reporting enabled=false you do them a favor)
but the true answer in such a debate is often that modeling things as
a boolean is simplistic since there are often more than exactly two
states (in this case, enabled, disabled, failed, not-available, ...).
So you settle on blaming the model writer. ;-)

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>


From nobody Wed Jan 20 08:41:28 2021
Return-Path: <ietfc@btconnect.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 490BA3A03FA for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 08:41:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=btconnect.onmicrosoft.com
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 UjeNIzJ0KRWV for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 08:41:24 -0800 (PST)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60110.outbound.protection.outlook.com [40.107.6.110]) (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 D67053A03F3 for <netmod@ietf.org>; Wed, 20 Jan 2021 08:41:23 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fHk0ma5h7rMde1vbUEHQCL+F1tAoO4wkXQyp0LI8Hv9KIYN0gWNlHqkSfjGjXAJXESguW2pAzbw6q7h4BZ1tnUOno8DtJJcaxQ4iYGLq6P3bNCmh3iejY8GsmyASNy+82BG+mrJEM0HZrUi7Hz4LzUcJ0UKgJl1+/KNCDr0ts5lmFWmZYIfXRHfKvEjghJdH91Zoj/f33E563BqiJydrYlSD0tvgXmuc9nKsfoOSLsJgYlzO0aAZeVkWmhsiG4Aze6EPsnbFTgxaopKLB0sWtGhDlNAqj96d8jeeLnCkTjaPoMi+PaAkZlEld1wti5NtUVOtBqEO6VKb+g6ntYkpZg==
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=3vnoxU/b0uZc0K2/DCmrRcHsb2awWOXZUDJH4yuvRQo=; b=WNACUVW4aVomWEBycJm5gaNRWathncO7z/0pJMjnH8WepAdvzuD79McxlIi+3OJX9f+ZVBxqNBHYAdHA5Ia8/Jf6qUvUFmRore5AzjYUhTqnvYjWgkTQC1MhA3OeLhOtW3W4LWV6B92tPExtVZXnXIF2YG0JZ2fmDnqmmQPlPGE8/e5s8D/wjoL+5joWx1xHoW+EHvMLb8sxqVpLTnOBXnE4J/a1265iJOjtr46XZOGHeRGamY+dF2PWpNn92GiGcCvTKdiPwLM+0Q4cgBXFk0Aq9PuuP1L2ZoRbW00M1tcONL60NLvEHrbKwbqJ8boTlimMoRTtco4LY2drGRoExQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=btconnect.com; dmarc=pass action=none header.from=btconnect.com; dkim=pass header.d=btconnect.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector2-btconnect-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3vnoxU/b0uZc0K2/DCmrRcHsb2awWOXZUDJH4yuvRQo=; b=fX/4c3//zzuSoQ9YI+sDIza1yHOko3jaJyy4TNYZdaWI+651HKF1JLJxvZOlNwgwztHvIYeD8S/07ZJ6ZYkEzPHVgLFLGWBuv2Qg5qOrHn0BA5RJbv6I35bYDgAUYJqZn/LXQPgPFZCmhq0hl/SmnQzx50NqmKT7GjCydlnQN8I=
Received: from (2603:10a6:20b:134::11) by AM6PR07MB5108.eurprd07.prod.outlook.com (2603:10a6:20b:35::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.5; Wed, 20 Jan 2021 16:41:21 +0000
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::6d46:4f3c:643:4849]) by AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::6d46:4f3c:643:4849%5]) with mapi id 15.20.3763.014; Wed, 20 Jan 2021 16:41:21 +0000
From: tom petch <ietfc@btconnect.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: Structuring a DHCP module
Thread-Index: AQHW70sVzeGJg/CSikuUFwnormzctQ==
Date: Wed, 20 Jan 2021 16:41:21 +0000
Message-ID: <AM7PR07MB6248BC693F7056249D29CF16A0A20@AM7PR07MB6248.eurprd07.prod.outlook.com>
References: <161100770222.25746.4414271883591983954@ietfa.amsl.com>
In-Reply-To: <161100770222.25746.4414271883591983954@ietfa.amsl.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=btconnect.com;
x-originating-ip: [86.146.121.140]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 72550d9d-ee22-49bb-de43-08d8bd6237d6
x-ms-traffictypediagnostic: AM6PR07MB5108:
x-microsoft-antispam-prvs: <AM6PR07MB510877760DD5329E910B288BA0A20@AM6PR07MB5108.eurprd07.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: uoJvzzeLvkf4MlJKz9B1eKF0xtg/1elf1tS/yAVtJWluZTu7hP/d120rSM/dnbhpzCMGYAvfx61OabayoGV9Ok1w4y2lr9qzIEfuN2EOy3NyMdg8AhST4NFrcDC6oiz4xt1NKyxxgoohF+jDzsOgJcdZd7lG/ZslLIhCuBsncDfFxPOkjHs64KOFHnk/DeKPy4E0yWwr/nIR8OjfwGwOJrGpBA//FjBBmalyO539Hb6kJ80yaYlp9MwLkIw84XL/G13P8MvpgJOwBXIj1aH3F0R2ya4A4g5gU80ZrOAmkaluBzwwZTscRuha7/RZTvS0e8kEbJdj9Ay5vZ6PrLlC8iqWbp+QnnRf/Tb2llx4jZrvc5cZfhfsEOTUEoroudak6644eE7m0bExcezweRAGSWF4ip98yspQZVApo4P1UcMdEwkEJ4k8Q47xsJmpZXJu
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:AM7PR07MB6248.eurprd07.prod.outlook.com; PTR:; CAT:NONE;  SFS:(396003)(136003)(39860400002)(366004)(376002)(346002)(6916009)(4326008)(52536014)(66946007)(2906002)(76116006)(7696005)(91956017)(316002)(5660300002)(66476007)(66556008)(33656002)(66446008)(64756008)(54906003)(55016002)(83380400001)(186003)(26005)(478600001)(71200400001)(9686003)(3480700007)(53546011)(6506007)(8676002)(86362001)(8936002)(518174003); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?Windows-1252?Q?k320etwqmd7jntIM6Xytx1eSFK7xA1bVThIhwW77uoZtW/ex9cXuXD2C?= =?Windows-1252?Q?yrqBQM6bSPYsmDu8V/DRqDk+76QgvZZ5aCccSx2pJQpddIP7LwPMSxla?= =?Windows-1252?Q?rzmXRs1wLfh3Q+15NsDhAaI9l08JBsQf2TkPtpm1H/P03CfizebuLJZ7?= =?Windows-1252?Q?wYp9nZ4bYvzLMNKATQOLSqCE6gHNzQvGdwWxRzuQoO+mIXg6ia0CTrJL?= =?Windows-1252?Q?FEzAFZCS78cX1yveGK5PDDM/eO5uXN3KSr5ECWL4znxCHjhA4/bn6maP?= =?Windows-1252?Q?wMU5K9tiFlwREfWpo+DjuUjfuXj+3WAMdAOk62TPghr/tzY6qeq/Mwai?= =?Windows-1252?Q?SIPyF5VIqMbJOx1zLAy0KFVRhh3ipt5EEI0FRBKZ6VimUD/tuQwWb8+4?= =?Windows-1252?Q?5NoTHVpVQV+hbDuSnvhqDKFqtyPR7CsetEWGDAlvJRYWhciotyktqY1n?= =?Windows-1252?Q?AeX4d+8eEKzkvkHNQq/hWhUArUXs4saNDwWgI9CE0tc/bFyfBUGHNiCl?= =?Windows-1252?Q?AXWmbnqGy8j1bfHcS6QhR4EZfiGf7cM8QoEM5uw76ngVj2KlPDrL63D/?= =?Windows-1252?Q?A4nEIfWschbLdzT1b822VJNa/jwveFt0+lAY6v47L0HoMBrl+i5n0OyG?= =?Windows-1252?Q?Ui2tXs9mB6NRXjeNHZQ5thfDgrmeL5wz5QmoLZO99EkUiXSNDYCiumpK?= =?Windows-1252?Q?66iQR3kIrVxfrXiRtmb5AMes48VaBbQv+bYbLNAyGWSc1aYKjHRtKOH9?= =?Windows-1252?Q?Jt8tC62mFm44MMQQmYAGjRxSYRTUDeN4xjO8xoonstYvBEU4ZQqp1Jo4?= =?Windows-1252?Q?wEgb1U8HL0GOPuwr0akDaOYqixiODQqQmr7WxCWlnEoj21V6R+l96ARH?= =?Windows-1252?Q?SRC6n5oKlRo7xeha6fOZIZoOoVTNnW1s8tY4bpcrSk1u17MiCfp9RfQo?= =?Windows-1252?Q?JIs33cwZ5AAlIaStSPi4KguWO5vxu2C82lIxdyaSvLDp+JQP1AfQRcTI?= =?Windows-1252?Q?Zr1NvgkDaq6J2dohnI/LnZI0WP/VFLUKq6t1oe7qL5pxQou7WquaLApc?= =?Windows-1252?Q?pz4D+pKnfMPA7Xoc+IEirAVWHnjuqSoA9wRDPD5dkagkG3iVpQQnVTRa?= =?Windows-1252?Q?nM5ORKWH4++wU4cAOy6pFSc1?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR07MB6248.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 72550d9d-ee22-49bb-de43-08d8bd6237d6
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jan 2021 16:41:21.2555 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UMfjbtLHlmJSZIfTqLCJ1BXPjRfOYCPIZCAdfhbxRRwrp55HvPBvzJrKEKwnlL2OLuC5ETJjctkZaVSusQUIfA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR07MB5108
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/CpzB2f8ebtoYbYBnh58gLOGrHCI>
Subject: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 16:41:26 -0000

Juergen, Lada, Martin, Andy=0A=
=0A=
I wonder if one of you, or perhaps another on this list, would be willing t=
o give advice on the =0A=
structuring of  the YANG module for DHCP.  It has been revised and restruct=
ured several times and, to me, is not progressing.=0A=
=0A=
It models three roles - client, server, relay - and a dozen optional functi=
on which can appear in one or more roles.  A node will likely have only one=
 role but may have many options.=0A=
=0A=
There are, at present, seven modules=0A=
server which defines a server identity  based on common identity inter alia=
=0A=
relay which defines relay identity ditto=0A=
client which defines client identity ditto=0A=
server options which has groupings for each option for a server=0A=
client options which has groupings for each option for a relay=0A=
relay options which has groupings for each option for a client=0A=
common which defines the common identity inter alia=0A=
Since options are common across roles, some groupings are replicated in the=
 three options modules.  Three separate option modules were created to avoi=
d problems with imports as Ian explains below.  The I-D is draft-ietf-dhc-d=
hcpv6-yang=0A=
=0A=
My take is that one module is best, using 'when' or if-feature to select, w=
hich is what I see with OSPF, PCE, TCP, IGMP and almost everything else but=
 am struggling to convince others, especially  the author Ian.  [IF] in the=
 e-mail extract below=0A=
=0A=
I suggested asking a YANG Doctor, NOT to look at the module but rather to a=
dvise on a structure given the requirements to which Ian said that he had n=
ot had much joy with YANG Doctors.  I append our most recent exchange in wh=
ich he responds to my query as to why there are seven modules; formatting i=
s a bit of a mess I am afraid.  The posts are to the DHCWG mail list.=0A=
=0A=
Any advice appreciated even if it is that Ian is on just the right track!=
=0A=
=0A=
Tom Petch=0A=
=0A=
On 19/01/2021 11:25, tom petch wrote:=0A=
> ________________________________________=0A=
> From: dhcwg <dhcwg-bounces@ietf.org> on behalf of ianfarrer@gmx.com <ianf=
arrer@gmx.com>=0A=
> Sent: 19 January 2021 07:37=0A=
>=0A=
> Thanks for your comments. Please see inline below.=0A=
>=0A=
> Ian=0A=
>=0A=
> On 14. Jan 2021, at 13:40, t petch <ietfa@btconnect.com<mailto:ietfa@btco=
nnect.com>> wrote:=0A=
>=0A=
> Ian=0A=
>=0A=
> I do not understand this I-D; I have tracked it for a number of years and=
 my understanding of it is diminishing.=0A=
>=0A=
> Currently, it is seven YANG modules: why?=0A=
>=0A=
> [if - The separation into client/server/relay, and DHCP options has been =
in the draft since -05 and the changes were presented and discussed at IETF=
101 - I=92ve described the reasoning for this split in the next answer. Bey=
ond that, the common module was added to avoid (well reduce as you point ou=
t below) duplication.=0A=
>=0A=
> The separation of the option modules came at a later stage based on impor=
t dependencies of a single options module. When the options module imports =
the client/server/relay modules so it can augment the relevant module based=
 on identity, an implementation also needs to import these modules and will=
 declare them in it=92s capabilities as available even though it doesn=92t =
implement them. Dividing the options modules avoids the need for deviations=
.=0A=
>=0A=
> Even though there are 7 modules defined here, the likely hood is that an =
element implementation would require 3 modules to be implemented (e.g. clie=
nt, common and client options).]=0A=
>=0A=
> [tp] Other WG have models with multiple roles and many options and have a=
 single YANG module, using the features of YANG to tailor the module to dif=
ferent configurations.=0A=
>=0A=
> [if - It=92s not really tailoring the module to different configurations,=
 they are for the most part separate functional elements in the network wit=
h any device only implementing one of the client, relay or server functions=
.=0A=
>=0A=
> However, even in the case that a device is both a server and a client (e.=
g. a home gateway with a client on the WAN and a server on the LAN), the li=
kelihood is that these will be done using different software implementation=
s, so having separate modules for server and client offers implementation f=
lexibility.=0A=
>=0A=
> In the case of a monolithic module with the relevant client/relay/server =
functionality enabled by features, the module would do nothing unless one o=
r more of the features was enabled, and Is unlikely that you=92d ever enabl=
e more than one. Is this approach used by other WGs? Could you point me to =
some some examples as I've only seen features been used as relatively small=
 optional extensions used when the bulk of the nodes are common?]=0A=
=0A=
[tp]=0A=
Ian=0A=
=0A=
Almost all the YANG models I know of are single module.  For example,=0A=
draft-ietf-ospf-yang supports two versions modelled as identity and 28 =0A=
options modelled as features.=0A=
=0A=
draft-ietf-tcpm-yang supports client and server as containers with =0A=
if-feature and has other features as well=0A=
=0A=
draft-ietf-pim-igmp-mld-yang supports five versions of two protocol =0A=
using identity=0A=
=0A=
draft-pce-pcep-yang offers the roles of pcc or pce or both using typedef.=
=0A=
=0A=
And so on and so on.  if-feature, when and suchlike provide the =0A=
necessary customisation.=0A=
=0A=
I think that your problems with options are because the identity are =0A=
defined in the wrong place.  The base, the common module (or part of the =
=0A=
one and only module) should define what is common, what everyone needs; =0A=
if there are three roles and a dozen options, than that is where they =0A=
need to be defined.=0A=
=0A=
Then there can be an object which is configured with the roles of a =0A=
particular box, client or server or relay, or if required, a combination =
=0A=
of the there - simpler if that is out of scope as you suggest.=0A=
=0A=
My starting point would be a dhc container with a leaf for a role and then =
=0A=
containers for client, relay, server, added by augment and controlled by =
=0A=
when pointing at the role.=0A=
=0A=
I will post something to the netmod WG list - there are lots of people =0A=
there with greater exposure than mine who can give better guidance than I.=
=0A=
=0A=
Tom Petch=0A=
=0A=
> Here you have modelled the options as YANG grouping. The intent of a grou=
ping is to provide a block of statements that can be reused so avoiding dup=
lication with the attendant problems.  Here you have the same grouping in t=
riplicate in three different YANG modules which seems to me to be the antit=
hesis of a grouping.=0A=
>=0A=
> [If - We could move the option definitions for "status-code-option-group=
=94 (client, server, relay) and =93rapid-commit-option-group, vendor-specif=
ic-information-option-group; reconfigure-accept-option-group=94 (client, se=
rver) into the common module to resolve the duplication. I didn=92t do this=
 previously as the intention was to keep options definitions in the options=
 modules for consistency, but it  would be simple to change. ]=0A=
>=0A=
> [tp] Likewise I find the specification of server v client v relay unusual=
.=0A=
>=0A=
> [If - A similar approach for separated client/server modules is also used=
 in RFC8676, where the client and server have discrete function, as with DH=
CP.]=0A=
>=0A=
> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show them th=
e YANG and invite comments, rather outline in an abstract way what it is yo=
u want to model and see what they suggest; that might well be a single YANG=
 module.=0A=
>=0A=
> [if - Yes, I=92d be happy to. Is there someone that you have in mind (I=
=92ve not had much luck with getting YANG doctor input outside of the forma=
l review process in the past)?. I=92m not opposed to changing the way that =
the modules are structured on principal, I do however, think that the separ=
ation by functional element is logical and simpler for implementers, and I =
would like to know what the benefits of a single module (or other structure=
) might be.]=0A=
>=0A=
> [tp]I do have quite a number of detailed comments but do not think them w=
orth making until the I-D seems to me more stable.=0A=
>=0A=
> [if - It=92d be great if you could supply them as well so I can start goi=
ng though them and fixing what=92s currently fixable in parallel to the dis=
cussion above.]=0A=
>=0A=
> Tom Petch=0A=
>=0A=
> On 07/01/2021 16:10, ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> wrote:=
=0A=
> Hi Tom,=0A=
>=


From nobody Wed Jan 20 10:32:42 2021
Return-Path: <andy@yumaworks.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E66DE3A11D8 for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 10:32:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.887
X-Spam-Level: 
X-Spam-Status: No, score=-1.887 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.com
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 K3ILutcEuDhd for <netmod@ietfa.amsl.com>; Wed, 20 Jan 2021 10:32:38 -0800 (PST)
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 405613A11D7 for <netmod@ietf.org>; Wed, 20 Jan 2021 10:32:38 -0800 (PST)
Received: by mail-lf1-x12a.google.com with SMTP id h7so6208614lfc.6 for <netmod@ietf.org>; Wed, 20 Jan 2021 10:32:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jPmL2ct493RK1S22fbHChYzmDcX1ni90O/AT9d4EYcU=; b=ir9XAMj1nkfuQPoKaqD7bj2dmUsUwlpapWLJZYu+Kgh0DRtDBRSaQ/riuZ9XCPebMF 2wjz3Wdiyu90sk6CT8BL9soxvJR0WRJvwPFPT+RAZrV2AxNF8pgGBUDiqfJXGaNkeZqJ oGIoSrNy3ban0n5YmgblT9Lb9svRA6mNUuc1vo5KrEzsPiFqlqGIkGv5J0urtgY2Lwta uz+Pu3GjW3nfj02BUlq6QfW3/XtXvmc0bTwnIVNNjh59v3SdleU0GOZhvW2BSK1lNp4k o/iQCX2MmuekG0V6/hatq3nfp8W82ya+swwjWCQId/Fm0WFNfo77taO1nkZhcoXREkxQ sRCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jPmL2ct493RK1S22fbHChYzmDcX1ni90O/AT9d4EYcU=; b=BtzEvMJm7l0VfNPXc+iemre1NgQ/6n01dW5h8AsaqJDGqGesEW0WWFUrlA3gKJ+bI/ 7xc6BeFDHsXnptAx44DrkHZTCi+bYbqGRbJFHo5AzQVpElAWPHAdkcTH9jR+T6qtrKLr DQ2EC81ffNfZ2/rA5nSEMe6RpQXDFrX6VIF8C5jf6nWhu59uF9faOzmonq7APCaVt0gQ IiaL03iNvf1IIDA6LBnzJVM2mkNtgUcUVZm+7h++5MSmITraZec66v/zv6Tnclw9Q7wK aDHV5vUb4rJTHD+l6m8Mc6+ndgtOYav+73MU9/pUb6yfpruMZ1zRkQ4mMMfV66aMeVbS QN7g==
X-Gm-Message-State: AOAM530wVPcLR7hde9MTBukuQ50PoVRqTnYR2CTen5lNCvqt0f0MXvM0 ryNteCQzLc7FI9EjxBO7ZBkx8enqvuPPWUBf5a5VEA==
X-Google-Smtp-Source: ABdhPJzavboqkVXwNZumTdVVJac3ABG3oL2MQlqPJi/CGSljS6tAV8Ize0dyR93P7NVllRubMP2BJE2WqSq5wdawXno=
X-Received: by 2002:a19:4107:: with SMTP id o7mr4499233lfa.512.1611167555944;  Wed, 20 Jan 2021 10:32:35 -0800 (PST)
MIME-Version: 1.0
References: <161100770222.25746.4414271883591983954@ietfa.amsl.com> <AM7PR07MB6248BC693F7056249D29CF16A0A20@AM7PR07MB6248.eurprd07.prod.outlook.com>
In-Reply-To: <AM7PR07MB6248BC693F7056249D29CF16A0A20@AM7PR07MB6248.eurprd07.prod.outlook.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 20 Jan 2021 10:32:25 -0800
Message-ID: <CABCOCHTexq8SBCE5=9fGuqYQ5fQWVvu+R1jN9V-Mg+pPUq0RZA@mail.gmail.com>
To: tom petch <ietfc@btconnect.com>
Cc: "netmod@ietf.org" <netmod@ietf.org>,  Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>,  =?UTF-8?Q?Martin_Bj=C3=B6rklund?= <mbj+ietf@4668.se>,  Ladislav Lhotka <ladislav.lhotka@nic.cz>, "ianfarrer@gmx.com" <ianfarrer@gmx.com>
Content-Type: multipart/alternative; boundary="000000000000d89d7905b9592db7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/yaxmCBPyv63AHvxItrUVOlHLpoQ>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 18:32:41 -0000

--000000000000d89d7905b9592db7
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Jan 20, 2021 at 8:41 AM tom petch <ietfc@btconnect.com> wrote:

> Juergen, Lada, Martin, Andy
>
> I wonder if one of you, or perhaps another on this list, would be willing
> to give advice on the
> structuring of  the YANG module for DHCP.  It has been revised and
> restructured several times and, to me, is not progressing.
>
> It models three roles - client, server, relay - and a dozen optional
> function which can appear in one or more roles.  A node will likely have
> only one role but may have many options.
>
> There are, at present, seven modules
> server which defines a server identity  based on common identity inter al=
ia
> relay which defines relay identity ditto
> client which defines client identity ditto
> server options which has groupings for each option for a server
> client options which has groupings for each option for a relay
> relay options which has groupings for each option for a client
> common which defines the common identity inter alia
> Since options are common across roles, some groupings are replicated in
> the three options modules.  Three separate option modules were created to
> avoid problems with imports as Ian explains below.  The I-D is
> draft-ietf-dhc-dhcpv6-yang
>
> My take is that one module is best, using 'when' or if-feature to select,
> which is what I see with OSPF, PCE, TCP, IGMP and almost everything else
> but am struggling to convince others, especially  the author Ian.  [IF] i=
n
> the e-mail extract below
>
> I suggested asking a YANG Doctor, NOT to look at the module but rather to
> advise on a structure given the requirements to which Ian said that he ha=
d
> not had much joy with YANG Doctors.  I append our most recent exchange in
> which he responds to my query as to why there are seven modules; formatti=
ng
> is a bit of a mess I am afraid.  The posts are to the DHCWG mail list.
>
> Any advice appreciated even if it is that Ian is on just the right track!
>


Either approach is valid so multi-module vs. single module w/ features is
more
of an overall system maintenance issue.  7 modules seems like a lot for
DHCP but
I have no objective criteria to back that up.

There is some confusion about the import-stmt, which leads to many YANG
modules.
In compiler terms, importing a module merely makes the symbols available
for parsing in the current module.
The import-stmt implies no conformance requirements whatsoever.
Only statements that use the imported module can do that.
(So a server module importing a module that has client groupings is not
actually a problem.)

YANG Conformance for a single module is better defined than for multiple
related modules.
The YANG Packages work could fix that someday.
.



> Tom Petch
>


Andy


>
> On 19/01/2021 11:25, tom petch wrote:
> > ________________________________________
> > From: dhcwg <dhcwg-bounces@ietf.org> on behalf of ianfarrer@gmx.com <
> ianfarrer@gmx.com>
> > Sent: 19 January 2021 07:37
> >
> > Thanks for your comments. Please see inline below.
> >
> > Ian
> >
> > On 14. Jan 2021, at 13:40, t petch <ietfa@btconnect.com<mailto:
> ietfa@btconnect.com>> wrote:
> >
> > Ian
> >
> > I do not understand this I-D; I have tracked it for a number of years
> and my understanding of it is diminishing.
> >
> > Currently, it is seven YANG modules: why?
> >
> > [if - The separation into client/server/relay, and DHCP options has bee=
n
> in the draft since -05 and the changes were presented and discussed at
> IETF101 - I=E2=80=99ve described the reasoning for this split in the next=
 answer.
> Beyond that, the common module was added to avoid (well reduce as you poi=
nt
> out below) duplication.
> >
> > The separation of the option modules came at a later stage based on
> import dependencies of a single options module. When the options module
> imports the client/server/relay modules so it can augment the relevant
> module based on identity, an implementation also needs to import these
> modules and will declare them in it=E2=80=99s capabilities as available e=
ven though
> it doesn=E2=80=99t implement them. Dividing the options modules avoids th=
e need for
> deviations.
> >
> > Even though there are 7 modules defined here, the likely hood is that a=
n
> element implementation would require 3 modules to be implemented (e.g.
> client, common and client options).]
> >
> > [tp] Other WG have models with multiple roles and many options and have
> a single YANG module, using the features of YANG to tailor the module to
> different configurations.
> >
> > [if - It=E2=80=99s not really tailoring the module to different configu=
rations,
> they are for the most part separate functional elements in the network wi=
th
> any device only implementing one of the client, relay or server functions=
.
> >
> > However, even in the case that a device is both a server and a client
> (e.g. a home gateway with a client on the WAN and a server on the LAN), t=
he
> likelihood is that these will be done using different software
> implementations, so having separate modules for server and client offers
> implementation flexibility.
> >
> > In the case of a monolithic module with the relevant client/relay/serve=
r
> functionality enabled by features, the module would do nothing unless one
> or more of the features was enabled, and Is unlikely that you=E2=80=99d e=
ver enable
> more than one. Is this approach used by other WGs? Could you point me to
> some some examples as I've only seen features been used as relatively sma=
ll
> optional extensions used when the bulk of the nodes are common?]
>
> [tp]
> Ian
>
> Almost all the YANG models I know of are single module.  For example,
> draft-ietf-ospf-yang supports two versions modelled as identity and 28
> options modelled as features.
>
> draft-ietf-tcpm-yang supports client and server as containers with
> if-feature and has other features as well
>
> draft-ietf-pim-igmp-mld-yang supports five versions of two protocol
> using identity
>
> draft-pce-pcep-yang offers the roles of pcc or pce or both using typedef.
>
> And so on and so on.  if-feature, when and suchlike provide the
> necessary customisation.
>
> I think that your problems with options are because the identity are
> defined in the wrong place.  The base, the common module (or part of the
> one and only module) should define what is common, what everyone needs;
> if there are three roles and a dozen options, than that is where they
> need to be defined.
>
> Then there can be an object which is configured with the roles of a
> particular box, client or server or relay, or if required, a combination
> of the there - simpler if that is out of scope as you suggest.
>
> My starting point would be a dhc container with a leaf for a role and the=
n
> containers for client, relay, server, added by augment and controlled by
> when pointing at the role.
>
> I will post something to the netmod WG list - there are lots of people
> there with greater exposure than mine who can give better guidance than I=
.
>
> Tom Petch
>
> > Here you have modelled the options as YANG grouping. The intent of a
> grouping is to provide a block of statements that can be reused so avoidi=
ng
> duplication with the attendant problems.  Here you have the same grouping
> in triplicate in three different YANG modules which seems to me to be the
> antithesis of a grouping.
> >
> > [If - We could move the option definitions for
> "status-code-option-group=E2=80=9D (client, server, relay) and
> =E2=80=9Crapid-commit-option-group, vendor-specific-information-option-gr=
oup;
> reconfigure-accept-option-group=E2=80=9D (client, server) into the common=
 module to
> resolve the duplication. I didn=E2=80=99t do this previously as the inten=
tion was
> to keep options definitions in the options modules for consistency, but i=
t
> would be simple to change. ]
> >
> > [tp] Likewise I find the specification of server v client v relay
> unusual.
> >
> > [If - A similar approach for separated client/server modules is also
> used in RFC8676, where the client and server have discrete function, as
> with DHCP.]
> >
> > [tp]I wonder if it is worth consulting a YANG doctor, NOT to show them
> the YANG and invite comments, rather outline in an abstract way what it i=
s
> you want to model and see what they suggest; that might well be a single
> YANG module.
> >
> > [if - Yes, I=E2=80=99d be happy to. Is there someone that you have in m=
ind (I=E2=80=99ve
> not had much luck with getting YANG doctor input outside of the formal
> review process in the past)?. I=E2=80=99m not opposed to changing the way=
 that the
> modules are structured on principal, I do however, think that the
> separation by functional element is logical and simpler for implementers,
> and I would like to know what the benefits of a single module (or other
> structure) might be.]
> >
> > [tp]I do have quite a number of detailed comments but do not think them
> worth making until the I-D seems to me more stable.
> >
> > [if - It=E2=80=99d be great if you could supply them as well so I can s=
tart
> going though them and fixing what=E2=80=99s currently fixable in parallel=
 to the
> discussion above.]
> >
> > Tom Petch
> >
> > On 07/01/2021 16:10, ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> wrote:
> > Hi Tom,
> >

--000000000000d89d7905b9592db7
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jan 20, 2021 at 8:41 AM tom p=
etch &lt;<a href=3D"mailto:ietfc@btconnect.com">ietfc@btconnect.com</a>&gt;=
 wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Juergen,=
 Lada, Martin, Andy<br>
<br>
I wonder if one of you, or perhaps another on this list, would be willing t=
o give advice on the <br>
structuring of=C2=A0 the YANG module for DHCP.=C2=A0 It has been revised an=
d restructured several times and, to me, is not progressing.<br>
<br>
It models three roles - client, server, relay - and a dozen optional functi=
on which can appear in one or more roles.=C2=A0 A node will likely have onl=
y one role but may have many options.<br>
<br>
There are, at present, seven modules<br>
server which defines a server identity=C2=A0 based on common identity inter=
 alia<br>
relay which defines relay identity ditto<br>
client which defines client identity ditto<br>
server options which has groupings for each option for a server<br>
client options which has groupings for each option for a relay<br>
relay options which has groupings for each option for a client<br>
common which defines the common identity inter alia<br>
Since options are common across roles, some groupings are replicated in the=
 three options modules.=C2=A0 Three separate option modules were created to=
 avoid problems with imports as Ian explains below.=C2=A0 The I-D is draft-=
ietf-dhc-dhcpv6-yang<br>
<br>
My take is that one module is best, using &#39;when&#39; or if-feature to s=
elect, which is what I see with OSPF, PCE, TCP, IGMP and almost everything =
else but am struggling to convince others, especially=C2=A0 the author Ian.=
=C2=A0 [IF] in the e-mail extract below<br>
<br>
I suggested asking a YANG Doctor, NOT to look at the module but rather to a=
dvise on a structure given the requirements to which Ian said that he had n=
ot had much joy with YANG Doctors.=C2=A0 I append our most recent exchange =
in which he responds to my query as to why there are seven modules; formatt=
ing is a bit of a mess I am afraid.=C2=A0 The posts are to the DHCWG mail l=
ist.<br>
<br>
Any advice appreciated even if it is that Ian is on just the right track!<b=
r></blockquote><div><br></div><div><br></div><div>Either approach is valid =
so multi-module vs. single module w/ features is more</div><div>of an overa=
ll system maintenance issue.=C2=A0 7 modules seems like a lot for DHCP but<=
/div><div>I have no objective criteria to back that up.=C2=A0</div><div><br=
></div><div>There is some confusion about the import-stmt, which leads to m=
any YANG modules.</div><div>In compiler terms, importing a module merely ma=
kes the symbols available for parsing in the current module.</div><div>The =
import-stmt implies no conformance requirements whatsoever.</div><div>Only =
statements that use the imported module can do that.</div><div>(So a server=
 module importing a module that has client groupings is not actually a prob=
lem.)</div><div><br></div><div>YANG Conformance for a single module is bett=
er defined than for multiple related modules.</div><div>The YANG Packages w=
ork could fix that someday.</div><div>.</div><div><br></div><div><br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Tom Petch<br></blockquote><div><br></div><div><br></div><div>Andy</div><div=
>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
On 19/01/2021 11:25, tom petch wrote:<br>
&gt; ________________________________________<br>
&gt; From: dhcwg &lt;<a href=3D"mailto:dhcwg-bounces@ietf.org" target=3D"_b=
lank">dhcwg-bounces@ietf.org</a>&gt; on behalf of <a href=3D"mailto:ianfarr=
er@gmx.com" target=3D"_blank">ianfarrer@gmx.com</a> &lt;<a href=3D"mailto:i=
anfarrer@gmx.com" target=3D"_blank">ianfarrer@gmx.com</a>&gt;<br>
&gt; Sent: 19 January 2021 07:37<br>
&gt;<br>
&gt; Thanks for your comments. Please see inline below.<br>
&gt;<br>
&gt; Ian<br>
&gt;<br>
&gt; On 14. Jan 2021, at 13:40, t petch &lt;<a href=3D"mailto:ietfa@btconne=
ct.com" target=3D"_blank">ietfa@btconnect.com</a>&lt;mailto:<a href=3D"mail=
to:ietfa@btconnect.com" target=3D"_blank">ietfa@btconnect.com</a>&gt;&gt; w=
rote:<br>
&gt;<br>
&gt; Ian<br>
&gt;<br>
&gt; I do not understand this I-D; I have tracked it for a number of years =
and my understanding of it is diminishing.<br>
&gt;<br>
&gt; Currently, it is seven YANG modules: why?<br>
&gt;<br>
&gt; [if - The separation into client/server/relay, and DHCP options has be=
en in the draft since -05 and the changes were presented and discussed at I=
ETF101 - I=E2=80=99ve described the reasoning for this split in the next an=
swer. Beyond that, the common module was added to avoid (well reduce as you=
 point out below) duplication.<br>
&gt;<br>
&gt; The separation of the option modules came at a later stage based on im=
port dependencies of a single options module. When the options module impor=
ts the client/server/relay modules so it can augment the relevant module ba=
sed on identity, an implementation also needs to import these modules and w=
ill declare them in it=E2=80=99s capabilities as available even though it d=
oesn=E2=80=99t implement them. Dividing the options modules avoids the need=
 for deviations.<br>
&gt;<br>
&gt; Even though there are 7 modules defined here, the likely hood is that =
an element implementation would require 3 modules to be implemented (e.g. c=
lient, common and client options).]<br>
&gt;<br>
&gt; [tp] Other WG have models with multiple roles and many options and hav=
e a single YANG module, using the features of YANG to tailor the module to =
different configurations.<br>
&gt;<br>
&gt; [if - It=E2=80=99s not really tailoring the module to different config=
urations, they are for the most part separate functional elements in the ne=
twork with any device only implementing one of the client, relay or server =
functions.<br>
&gt;<br>
&gt; However, even in the case that a device is both a server and a client =
(e.g. a home gateway with a client on the WAN and a server on the LAN), the=
 likelihood is that these will be done using different software implementat=
ions, so having separate modules for server and client offers implementatio=
n flexibility.<br>
&gt;<br>
&gt; In the case of a monolithic module with the relevant client/relay/serv=
er functionality enabled by features, the module would do nothing unless on=
e or more of the features was enabled, and Is unlikely that you=E2=80=99d e=
ver enable more than one. Is this approach used by other WGs? Could you poi=
nt me to some some examples as I&#39;ve only seen features been used as rel=
atively small optional extensions used when the bulk of the nodes are commo=
n?]<br>
<br>
[tp]<br>
Ian<br>
<br>
Almost all the YANG models I know of are single module.=C2=A0 For example,<=
br>
draft-ietf-ospf-yang supports two versions modelled as identity and 28 <br>
options modelled as features.<br>
<br>
draft-ietf-tcpm-yang supports client and server as containers with <br>
if-feature and has other features as well<br>
<br>
draft-ietf-pim-igmp-mld-yang supports five versions of two protocol <br>
using identity<br>
<br>
draft-pce-pcep-yang offers the roles of pcc or pce or both using typedef.<b=
r>
<br>
And so on and so on.=C2=A0 if-feature, when and suchlike provide the <br>
necessary customisation.<br>
<br>
I think that your problems with options are because the identity are <br>
defined in the wrong place.=C2=A0 The base, the common module (or part of t=
he <br>
one and only module) should define what is common, what everyone needs; <br=
>
if there are three roles and a dozen options, than that is where they <br>
need to be defined.<br>
<br>
Then there can be an object which is configured with the roles of a <br>
particular box, client or server or relay, or if required, a combination <b=
r>
of the there - simpler if that is out of scope as you suggest.<br>
<br>
My starting point would be a dhc container with a leaf for a role and then =
<br>
containers for client, relay, server, added by augment and controlled by <b=
r>
when pointing at the role.<br>
<br>
I will post something to the netmod WG list - there are lots of people <br>
there with greater exposure than mine who can give better guidance than I.<=
br>
<br>
Tom Petch<br>
<br>
&gt; Here you have modelled the options as YANG grouping. The intent of a g=
rouping is to provide a block of statements that can be reused so avoiding =
duplication with the attendant problems.=C2=A0 Here you have the same group=
ing in triplicate in three different YANG modules which seems to me to be t=
he antithesis of a grouping.<br>
&gt;<br>
&gt; [If - We could move the option definitions for &quot;status-code-optio=
n-group=E2=80=9D (client, server, relay) and =E2=80=9Crapid-commit-option-g=
roup, vendor-specific-information-option-group; reconfigure-accept-option-g=
roup=E2=80=9D (client, server) into the common module to resolve the duplic=
ation. I didn=E2=80=99t do this previously as the intention was to keep opt=
ions definitions in the options modules for consistency, but it=C2=A0 would=
 be simple to change. ]<br>
&gt;<br>
&gt; [tp] Likewise I find the specification of server v client v relay unus=
ual.<br>
&gt;<br>
&gt; [If - A similar approach for separated client/server modules is also u=
sed in RFC8676, where the client and server have discrete function, as with=
 DHCP.]<br>
&gt;<br>
&gt; [tp]I wonder if it is worth consulting a YANG doctor, NOT to show them=
 the YANG and invite comments, rather outline in an abstract way what it is=
 you want to model and see what they suggest; that might well be a single Y=
ANG module.<br>
&gt;<br>
&gt; [if - Yes, I=E2=80=99d be happy to. Is there someone that you have in =
mind (I=E2=80=99ve not had much luck with getting YANG doctor input outside=
 of the formal review process in the past)?. I=E2=80=99m not opposed to cha=
nging the way that the modules are structured on principal, I do however, t=
hink that the separation by functional element is logical and simpler for i=
mplementers, and I would like to know what the benefits of a single module =
(or other structure) might be.]<br>
&gt;<br>
&gt; [tp]I do have quite a number of detailed comments but do not think the=
m worth making until the I-D seems to me more stable.<br>
&gt;<br>
&gt; [if - It=E2=80=99d be great if you could supply them as well so I can =
start going though them and fixing what=E2=80=99s currently fixable in para=
llel to the discussion above.]<br>
&gt;<br>
&gt; Tom Petch<br>
&gt;<br>
&gt; On 07/01/2021 16:10, <a href=3D"mailto:ianfarrer@gmx.com" target=3D"_b=
lank">ianfarrer@gmx.com</a>&lt;mailto:<a href=3D"mailto:ianfarrer@gmx.com" =
target=3D"_blank">ianfarrer@gmx.com</a>&gt; wrote:<br>
&gt; Hi Tom,<br>
&gt;</blockquote></div></div>

--000000000000d89d7905b9592db7--


From nobody Thu Jan 21 04:06:33 2021
Return-Path: <ietfc@btconnect.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CEBBB3A07FC for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 04:06:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=btconnect.onmicrosoft.com
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 4eD7uWnpFFSW for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 04:06:29 -0800 (PST)
Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70129.outbound.protection.outlook.com [40.107.7.129]) (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 95F323A07EB for <netmod@ietf.org>; Thu, 21 Jan 2021 04:06:28 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SGKKmJk5PYGS+4QF5CaTdrrmNkknxQuJIZi8GLf3COGbqMLc/JWUtkbHUa5mSanHKysZe8yVSUbRBTTQzH/59h87rArpxJ/DH9jjZNujPmuQ48lnUid1YcoMpdObtyghbfoGyy1Cpq4FD6w43O1UAxk8LWLi+60L/VGhjNG2dOQfvId8sXnbQgjyNIquzajYraBOQ0DkBNZISrQHANLL+TV6Vvw9CPlTwFKENMA2wP+iJkFw/ZXTD+TMM0NSoZJKMqSwoD5lxrgOk8Y8Iz0dpmaUT0l0c4CUQFb4qV6ajND1QH9VHS2vM6uF4TQVzC/0pRNWiOjEa4q0ACm5qxJR2w==
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=ah6BsjDUvQcDQnj/D8/JpmIcUpnab37dqlQmk3X6GIs=; b=odqOIVRdjasilpmJ7KGKdU0a1vtdstLf3iaJVA0rR6IJXwRci2zJiCUIP5YHq4hiWXUUUGT/Nkp2nKLhi5g9KpxOP7BEDrey7jsbpk2Xsxkx0tS2iGKblZhsxf5H7dY4SakJVAQFupSQ5pXy1y9oSMIJ8o658+5dn9dp4F4+k2SU973phtaVTdh2ae0QLkAWnxtoYVGWjCZk9Zi7rABulg+Fo7cZsKekYIIeDZb/za41EeMJsrS8RtUDPQvp0k5C8ye1Ankq6iJqIf8iI9C8Ocd5fUsRpcyQNxdH0zx6dkHS04zSB7NmA3Bvsl68j8GjYGJb9nvGkLD9xuEwgGFEhg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=btconnect.com; dmarc=pass action=none header.from=btconnect.com; dkim=pass header.d=btconnect.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector2-btconnect-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ah6BsjDUvQcDQnj/D8/JpmIcUpnab37dqlQmk3X6GIs=; b=YGPbIroK0fbPXk2JDxhIWJYgpONkbIc9XMDg5eSwDea2SIa6Dhr0ZUri5A5ORFupilrYgJNN1CK1D5ZoSZebqc7qBFPMom+xgwUF6On0WPTdRBKx9skycxn88s88LdtXslnywUe1WVEE/YSpXAgxToq3t4v2ir3USAeO8gQxWKU=
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com (2603:10a6:20b:134::11) by AM7PR07MB6247.eurprd07.prod.outlook.com (2603:10a6:20b:13d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.2; Thu, 21 Jan 2021 12:06:17 +0000
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::6d46:4f3c:643:4849]) by AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::6d46:4f3c:643:4849%5]) with mapi id 15.20.3763.014; Thu, 21 Jan 2021 12:06:17 +0000
From: tom petch <ietfc@btconnect.com>
To: Andy Bierman <andy@yumaworks.com>
CC: "netmod@ietf.org" <netmod@ietf.org>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, =?Windows-1252?Q?Martin_Bj=F6rklund?= <mbj+ietf@4668.se>, Ladislav Lhotka <ladislav.lhotka@nic.cz>, "ianfarrer@gmx.com" <ianfarrer@gmx.com>
Thread-Topic: Structuring a DHCP module
Thread-Index: AQHW70sVzeGJg/CSikuUFwnormzctaow1pyAgAEdNOU=
Date: Thu, 21 Jan 2021 12:06:17 +0000
Message-ID: <AM7PR07MB624877D5F864EF3F3D9171E1A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
References: <161100770222.25746.4414271883591983954@ietfa.amsl.com> <AM7PR07MB6248BC693F7056249D29CF16A0A20@AM7PR07MB6248.eurprd07.prod.outlook.com>, <CABCOCHTexq8SBCE5=9fGuqYQ5fQWVvu+R1jN9V-Mg+pPUq0RZA@mail.gmail.com>
In-Reply-To: <CABCOCHTexq8SBCE5=9fGuqYQ5fQWVvu+R1jN9V-Mg+pPUq0RZA@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: yumaworks.com; dkim=none (message not signed) header.d=none;yumaworks.com; dmarc=none action=none header.from=btconnect.com;
x-originating-ip: [86.146.121.140]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: a3374518-3da3-43d2-ee92-08d8be04f52d
x-ms-traffictypediagnostic: AM7PR07MB6247:
x-microsoft-antispam-prvs: <AM7PR07MB62470D3E81EF6C873147949EA0A10@AM7PR07MB6247.eurprd07.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: zLLqHEIyevfTgkSbXvzNjcDOYwJMjvFLfSpH6DwSa7RUHJEDZAODP5xgv+v772z76O4KBKmWdAikeP1Pk2uxyZBw13zqgKoEfKWhrSSWnksQMby2zLfpiLK4tpbBCvrpvY4J9/thyjCT06A6RuuxxfvV6SUJi1ckMUunc/sep5MUxIod7D+7wmot4cYUcDDuN4Y1c3bbIqD+QE/SzHQAUox5OCfJzlHwelTnzkc/EyxfZyi97LfCqsbd5JXZcqCEpxaTZ2Fs0M4InbQutbRfuryqKZHJrlhQFWaqR1i8VC/3PZlV5YJZ72l/IqyqWxCsASWlnHXzgWvHePTgLn917rxnvqCsZxgtxQhQ5fHtNlPzyOmanNDg/053PCKPyuK5wqqrdeOwSQmk1yCXmZqziJGtdj8jxRJkWFEidxeXm8m+dGUquRUevGW5kdFqkq1q
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:AM7PR07MB6248.eurprd07.prod.outlook.com; PTR:; CAT:NONE;  SFS:(39860400002)(366004)(346002)(376002)(396003)(136003)(8676002)(66446008)(53546011)(5660300002)(66476007)(4326008)(26005)(186003)(6916009)(3480700007)(7696005)(316002)(6506007)(91956017)(86362001)(9686003)(54906003)(66946007)(55016002)(2906002)(71200400001)(33656002)(66556008)(76116006)(30864003)(64756008)(478600001)(83380400001)(52536014)(8936002)(518174003); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?Windows-1252?Q?brd4BMnLP7smMMcloVv8+gXeYUBR5VWVwgIvktxamtp3SMNCBV3d3h9Y?= =?Windows-1252?Q?0cTGznNVaLDKVvLwEpIgWEOZGV7whCL7U9Vq1xun8JWeP08zQs9O3nfw?= =?Windows-1252?Q?hcr7MdDzZIaHyb00KMycFwYnDUqoMcS9kMxEW0regWHnknMfLbjOJOKI?= =?Windows-1252?Q?WgaK2C+FtHDL5jrOyMrki9x3ubTZvhv+B7kbQB0OAo1VE/0IDZPCgj5v?= =?Windows-1252?Q?ntEBqaMPJQrE79BA7bTrjfBlI/M/nZFklxfU+IJmBFyuzciSxt5jErKm?= =?Windows-1252?Q?5AMxnrTncKwj2Hh42kF886fGBK5/Sk2rCLpq4XYNvPq+QReL+Je0/WIZ?= =?Windows-1252?Q?jgTM7jBt1dZ3UP1FuGbhouyBipzIhHC5+5mVIKwAqvNUI/Qfag5MMklb?= =?Windows-1252?Q?NKcCsWuRVLFD66tUviRKH9Ts8AakGha+yfkz9+n7OVXpUuuJf5iqFu9Y?= =?Windows-1252?Q?ELz7vhqhOQnrGxlypcUIjqooQjmTwM7fpOviygz/PUV0uRDhz3K1FpZ2?= =?Windows-1252?Q?/5q2vYJclgQ++BqI7UlJK2fAnMWI2a2Du2ki5RXp2lWyAw90xP8jkohN?= =?Windows-1252?Q?N1YMSC5FLHkQaDY6FOrZydr5mly3BmjosqVRzsJKLK2aZtWerBa82Z6Q?= =?Windows-1252?Q?HXCF4UQzzYKHTvTk5cpCFGftN7K4/ZR4m4RHt5XtZd+uo3qPkCHyyFyj?= =?Windows-1252?Q?qdjkho4wZP8ggKOl93zx3N9mR/sAb0Of7Cv0VGwaK66u9M6erTYxebw4?= =?Windows-1252?Q?YqGh5LpxDkFUMglPICLcy+BgCsD5CtsLGdbsK/sGT80/MbDKUv3SsaZY?= =?Windows-1252?Q?Wb8WybB42j2sWAtdiSYVfDF6DeBbO3rAxuKL/RIF1L3P9lACKQWpgGVo?= =?Windows-1252?Q?+8Fh4ckRAvquLTkOdKL1zMn389yDdLr9ahM3+xj3xxdnfeLjQdRdhzR7?= =?Windows-1252?Q?lD9aynuRNNbjDIUAtfleYMTjwUEmY/z5hSqyr0VuRBj0y/YEb0ekcAzD?= =?Windows-1252?Q?zPwPeoswLipc5LJaCVzNOi/iwAqXlT8lcLTuI5HldGcs/gJtjchgHojd?= =?Windows-1252?Q?rLx6/dx+2i48/1G7VrLBa2DSKrAitnf28p0AAYufJz6otA7KRhiA1PFk?= =?Windows-1252?Q?hFfnXjDEgC6G2Sy37X9vASD8?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR07MB6248.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a3374518-3da3-43d2-ee92-08d8be04f52d
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2021 12:06:17.4793 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: bhHc/lrnEZcsDr7YmpEzSDGcIhj3eQaaTcB5/p4/Bdy8b0mpC6dy5gaPCVLBYaFKUbT7ZUpwhBosXQ05VgqXDQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6247
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/JEoXZpfHRSbVyUI1gZSpsEYrVbs>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jan 2021 12:06:32 -0000

=0A=
Inline <tp>=0A=
=0A=
From: Andy Bierman <andy@yumaworks.com>=0A=
Sent: 20 January 2021 18:32=0A=
=0A=
On Wed, Jan 20, 2021 at 8:41 AM tom petch <ietfc@btconnect.com<mailto:ietfc=
@btconnect.com>> wrote:=0A=
Juergen, Lada, Martin, Andy=0A=
=0A=
I wonder if one of you, or perhaps another on this list, would be willing t=
o give advice on the=0A=
structuring of  the YANG module for DHCP.  It has been revised and restruct=
ured several times and, to me, is not progressing.=0A=
=0A=
It models three roles - client, server, relay - and a dozen optional functi=
on which can appear in one or more roles.  A node will likely have only one=
 role but may have many options.=0A=
=0A=
There are, at present, seven modules=0A=
server which defines a server identity  based on common identity inter alia=
=0A=
relay which defines relay identity ditto=0A=
client which defines client identity ditto=0A=
server options which has groupings for each option for a server=0A=
client options which has groupings for each option for a relay=0A=
relay options which has groupings for each option for a client=0A=
common which defines the common identity inter alia=0A=
Since options are common across roles, some groupings are replicated in the=
 three options modules.  Three separate option modules were created to avoi=
d problems with imports as Ian explains below.  The I-D is draft-ietf-dhc-d=
hcpv6-yang=0A=
=0A=
My take is that one module is best, using 'when' or if-feature to select, w=
hich is what I see with OSPF, PCE, TCP, IGMP and almost everything else but=
 am struggling to convince others, especially  the author Ian.  [IF] in the=
 e-mail extract below=0A=
=0A=
I suggested asking a YANG Doctor, NOT to look at the module but rather to a=
dvise on a structure given the requirements to which Ian said that he had n=
ot had much joy with YANG Doctors.  I append our most recent exchange in wh=
ich he responds to my query as to why there are seven modules; formatting i=
s a bit of a mess I am afraid.  The posts are to the DHCWG mail list.=0A=
=0A=
Any advice appreciated even if it is that Ian is on just the right track!=
=0A=
=0A=
=0A=
Either approach is valid so multi-module vs. single module w/ features is m=
ore=0A=
of an overall system maintenance issue.  7 modules seems like a lot for DHC=
P but=0A=
I have no objective criteria to back that up.=0A=
=0A=
There is some confusion about the import-stmt, which leads to many YANG mod=
ules.=0A=
In compiler terms, importing a module merely makes the symbols available fo=
r parsing in the current module.=0A=
The import-stmt implies no conformance requirements whatsoever.=0A=
Only statements that use the imported module can do that.=0A=
(So a server module importing a module that has client groupings is not act=
ually a problem.)=0A=
=0A=
<tp>=0A=
=0A=
Andy, Juergen,=0A=
=0A=
Thank you for the replies.  What Ian said about the import is=0A=
=0A=
> [IF] The separation of the option modules came at a later stage based on =
import dependencies of a single options module. When the options module imp=
orts the client/server/relay modules so it can augment the relevant module =
based on identity, an implementation also needs to import these modules and=
 will declare them in it=92s capabilities as available even though it doesn=
=92t implement them. Dividing the options modules avoids the need for devia=
tions.=0A=
=0A=
<tp> that is, the prefix for dhcpv6-server is defined in the server module,=
=0A=
   module ietf-dhcpv6-server {=0A=
...=0A=
     prefix "dhcpv6-server";=0A=
...=0A=
     identity server {=0A=
       base "dhcpv6-common:dhcpv6-node";=0A=
       description "DHCPv6 server identity.";      }=0A=
     leaf dhcpv6-node-type {=0A=
       type identityref {=0A=
         base "dhcpv6-common:dhcpv6-node";        }=0A=
       description "Type for a DHCPv6 server.";     }=0A=
=0A=
and the prefix for dhcpv6-relay in the relay module etc so having a single =
module for options which needs to augment options to the server module need=
s to import the server module so that the dhcpv6-server prefix is defined, =
ditto relay and client so the single module for options then imports server=
 and relay and client modules.=0A=
=0A=
With three options modules, each only imports one of server, relay, client =
but the groupings are then replicated across the three options modules.=0A=
=0A=
Logical if you agree with the initial premise (which I do not!). =0A=
=0A=
The seven YANG modules are all in the one I-D of 56pp with the tree diagram=
s 12pp.=0A=
=0A=
Tom Petch=0A=
(on European time:-(=0A=
=0A=
YANG Conformance for a single module is better defined than for multiple re=
lated modules.=0A=
The YANG Packages work could fix that someday.=0A=
=0A=
Tom Petch=0A=
=0A=
=0A=
Andy=0A=
=0A=
=0A=
On 19/01/2021 11:25, tom petch wrote:=0A=
> ________________________________________=0A=
> From: dhcwg <dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> on be=
half of ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> <ianfarrer@gmx.com<mail=
to:ianfarrer@gmx.com>>=0A=
> Sent: 19 January 2021 07:37=0A=
>=0A=
> Thanks for your comments. Please see inline below.=0A=
>=0A=
> Ian=0A=
>=0A=
> On 14. Jan 2021, at 13:40, t petch <ietfa@btconnect.com<mailto:ietfa@btco=
nnect.com><mailto:ietfa@btconnect.com<mailto:ietfa@btconnect.com>>> wrote:=
=0A=
>=0A=
> Ian=0A=
>=0A=
> I do not understand this I-D; I have tracked it for a number of years and=
 my understanding of it is diminishing.=0A=
>=0A=
> Currently, it is seven YANG modules: why?=0A=
>=0A=
> [if - The separation into client/server/relay, and DHCP options has been =
in the draft since -05 and the changes were presented and discussed at IETF=
101 - I=92ve described the reasoning for this split in the next answer. Bey=
ond that, the common module was added to avoid (well reduce as you point ou=
t below) duplication.=0A=
>=0A=
> The separation of the option modules came at a later stage based on impor=
t dependencies of a single options module. When the options module imports =
the client/server/relay modules so it can augment the relevant module based=
 on identity, an implementation also needs to import these modules and will=
 declare them in it=92s capabilities as available even though it doesn=92t =
implement them. Dividing the options modules avoids the need for deviations=
.=0A=
>=0A=
> Even though there are 7 modules defined here, the likely hood is that an =
element implementation would require 3 modules to be implemented (e.g. clie=
nt, common and client options).]=0A=
>=0A=
> [tp] Other WG have models with multiple roles and many options and have a=
 single YANG module, using the features of YANG to tailor the module to dif=
ferent configurations.=0A=
>=0A=
> [if - It=92s not really tailoring the module to different configurations,=
 they are for the most part separate functional elements in the network wit=
h any device only implementing one of the client, relay or server functions=
.=0A=
>=0A=
> However, even in the case that a device is both a server and a client (e.=
g. a home gateway with a client on the WAN and a server on the LAN), the li=
kelihood is that these will be done using different software implementation=
s, so having separate modules for server and client offers implementation f=
lexibility.=0A=
>=0A=
> In the case of a monolithic module with the relevant client/relay/server =
functionality enabled by features, the module would do nothing unless one o=
r more of the features was enabled, and Is unlikely that you=92d ever enabl=
e more than one. Is this approach used by other WGs? Could you point me to =
some some examples as I've only seen features been used as relatively small=
 optional extensions used when the bulk of the nodes are common?]=0A=
=0A=
[tp]=0A=
Ian=0A=
=0A=
Almost all the YANG models I know of are single module.  For example,=0A=
draft-ietf-ospf-yang supports two versions modelled as identity and 28=0A=
options modelled as features.=0A=
=0A=
draft-ietf-tcpm-yang supports client and server as containers with=0A=
if-feature and has other features as well=0A=
=0A=
draft-ietf-pim-igmp-mld-yang supports five versions of two protocol=0A=
using identity=0A=
=0A=
draft-pce-pcep-yang offers the roles of pcc or pce or both using typedef.=
=0A=
=0A=
And so on and so on.  if-feature, when and suchlike provide the=0A=
necessary customisation.=0A=
=0A=
I think that your problems with options are because the identity are=0A=
defined in the wrong place.  The base, the common module (or part of the=0A=
one and only module) should define what is common, what everyone needs;=0A=
if there are three roles and a dozen options, than that is where they=0A=
need to be defined.=0A=
=0A=
Then there can be an object which is configured with the roles of a=0A=
particular box, client or server or relay, or if required, a combination=0A=
of the there - simpler if that is out of scope as you suggest.=0A=
=0A=
My starting point would be a dhc container with a leaf for a role and then=
=0A=
containers for client, relay, server, added by augment and controlled by=0A=
when pointing at the role.=0A=
=0A=
I will post something to the netmod WG list - there are lots of people=0A=
there with greater exposure than mine who can give better guidance than I.=
=0A=
=0A=
Tom Petch=0A=
=0A=
> Here you have modelled the options as YANG grouping. The intent of a grou=
ping is to provide a block of statements that can be reused so avoiding dup=
lication with the attendant problems.  Here you have the same grouping in t=
riplicate in three different YANG modules which seems to me to be the antit=
hesis of a grouping.=0A=
>=0A=
> [If - We could move the option definitions for "status-code-option-group=
=94 (client, server, relay) and =93rapid-commit-option-group, vendor-specif=
ic-information-option-group; reconfigure-accept-option-group=94 (client, se=
rver) into the common module to resolve the duplication. I didn=92t do this=
 previously as the intention was to keep options definitions in the options=
 modules for consistency, but it  would be simple to change. ]=0A=
>=0A=
> [tp] Likewise I find the specification of server v client v relay unusual=
.=0A=
>=0A=
> [If - A similar approach for separated client/server modules is also used=
 in RFC8676, where the client and server have discrete function, as with DH=
CP.]=0A=
>=0A=
> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show them th=
e YANG and invite comments, rather outline in an abstract way what it is yo=
u want to model and see what they suggest; that might well be a single YANG=
 module.=0A=
>=0A=
> [if - Yes, I=92d be happy to. Is there someone that you have in mind (I=
=92ve not had much luck with getting YANG doctor input outside of the forma=
l review process in the past)?. I=92m not opposed to changing the way that =
the modules are structured on principal, I do however, think that the separ=
ation by functional element is logical and simpler for implementers, and I =
would like to know what the benefits of a single module (or other structure=
) might be.]=0A=
>=0A=
> [tp]I do have quite a number of detailed comments but do not think them w=
orth making until the I-D seems to me more stable.=0A=
>=0A=
> [if - It=92d be great if you could supply them as well so I can start goi=
ng though them and fixing what=92s currently fixable in parallel to the dis=
cussion above.]=0A=
>=0A=
> Tom Petch=0A=
>=0A=
> On 07/01/2021 16:10, ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mailto:i=
anfarrer@gmx.com<mailto:ianfarrer@gmx.com>> wrote:=0A=
> Hi Tom,=0A=
>=0A=


From nobody Thu Jan 21 04:42:18 2021
Return-Path: <mbj+ietf@4668.se>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6337F3A09E0 for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 04:42:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.123
X-Spam-Level: 
X-Spam-Status: No, score=-0.123 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, PDS_NAKED_TO_NUMERO=1.997, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=4668.se header.b=p5LnLcP5; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=Q6G3LTyy
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 hfiiwQqBmLMQ for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 04:42:15 -0800 (PST)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 31EB53A09C9 for <netmod@ietf.org>; Thu, 21 Jan 2021 04:42:15 -0800 (PST)
Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 6F1CD5C0120; Thu, 21 Jan 2021 07:42:14 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 21 Jan 2021 07:42:14 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=4668.se; h=date :message-id:to:cc:subject:from:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=fm3; bh= 9ewtZaI5m3Cf3cRChgFi/iFEk6XCFqG0MFynu4a6fV0=; b=p5LnLcP5d60VJ2Hs K36i779LnyM401eswbUPipkER/vSeUp0bPZX97/SYvDzrWKCJIAZ79KphSVcuLWS BdKXuQ1SQhj/V39h8cZgMxOVTNhNKZ4mJ9Ve1AoTCgERHDayfXuIqLp9Kgrd+e3k 5LLebK52JHovqlUVUjRCOa7Y55ALnotTJZVNwZ9Qsor+YpBxXLAxImdybVGLpJtz DWXL8UdsBltCb1fXoskaG60QdJvYQXr1cK3V/2dhEBF1K6oUwmF3AC2GLkS7Gg1i eUS3xYMmRR9snV1y0PrGTVBwh45HVQdA0Ag+qFTnuYiWbQ+K7bMtccyAwYFA0wVZ yAx8wg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=9ewtZaI5m3Cf3cRChgFi/iFEk6XCFqG0MFynu4a6f V0=; b=Q6G3LTyyRScwzOo/tRQCO9HzfOjHsEpLhbijDs81kU5nGBkBWer2z26Kn z+90Hjg40c/48WDoCfHO7AbQV1/okZQXMwdqDXlVDQWfOlmLPE9vDvNOqqv87t4e lNbv956OGulkZXoEgNr0db/pmHu//WssMiEZlxJakkIBIdJuLz89SuY37baiHpBg Sn79pygXLYqAXcJTxRLOuEge0YmkslqDoP3uzCLp0IaYBeB/QmrjtGobyS8KBTGF CeiG40SeyBmZLchjN70ZPUvyXfcDmfj5LhHs3gO2IMsXchCblGUoJKC6b/15npNY 4HULmd0W6/mMtwsU7Cgkx0uCeERlA==
X-ME-Sender: <xms:pXYJYAOB5Z_qdCOuOls6QE1Q6L17svUM5y0raJGbR6fGd50c0w_KMw> <xme:pXYJYG-8Whehc_YiSHJL2E2FwB_3gxFCk61AstSF8B4r-e6TqVprlEJr3grEHh2xr BuCi5avKvQAUKlL88I>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudeggdeghecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepfffkvffuhfgjfhfogggtgfesthgsre dtredtjeenucfhrhhomhepofgrrhhtihhnuceujhpnrhhklhhunhguuceomhgsjhdoihgv thhfseegieeikedrshgvqeenucggtffrrghtthgvrhhnpeehteegtdffgfegffekvdejke evleetuedutddtfffhlefgtedvveehvdeguedtudenucfkphepudehkedrudejgedrgedr vdduheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hmsghjodhivghtfhesgeeiieekrdhsvg
X-ME-Proxy: <xmx:pXYJYHRNomb1Xt_NLotSX7nWl50CnspNRWzlunjWu7lwCLd1ae9G1A> <xmx:pXYJYIuehMh6GBaP0ZxHSerYDcrNBY8GTnJRryDaUZ5vDHk3lVqrww> <xmx:pXYJYIcnUHU4C6HyW9tsKmD7qvRts_gUgFzuWrBp0On_iYubj3jUQQ> <xmx:pnYJYH6CYa3wjdBXilwGYKTJJeBTORBD-nqbWn8_a0H6FYRgYH9Bdw>
Received: from localhost (unknown [158.174.4.215]) by mail.messagingengine.com (Postfix) with ESMTPA id 6C6361080067; Thu, 21 Jan 2021 07:42:12 -0500 (EST)
Date: Thu, 21 Jan 2021 13:42:11 +0100 (CET)
Message-Id: <20210121.134211.1244086498697136841.id@4668.se>
To: ietfc@btconnect.com
Cc: andy@yumaworks.com, netmod@ietf.org, j.schoenwaelder@jacobs-university.de, mbj+ietf@4668.se, ladislav.lhotka@nic.cz, ianfarrer@gmx.com
From: Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj+ietf@4668.se>
In-Reply-To: <AM7PR07MB624877D5F864EF3F3D9171E1A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
References: <AM7PR07MB6248BC693F7056249D29CF16A0A20@AM7PR07MB6248.eurprd07.prod.outlook.com> <CABCOCHTexq8SBCE5=9fGuqYQ5fQWVvu+R1jN9V-Mg+pPUq0RZA@mail.gmail.com> <AM7PR07MB624877D5F864EF3F3D9171E1A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
X-Mailer: Mew version 6.8 on Emacs 26.3
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/wnRE23TOLoQOiVAf1DVjA14u7i8>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jan 2021 12:42:17 -0000

SGksDQoNCkkgdGhpbmsgaXQgaXMgYSBtYXR0ZXIgb2YgdGFzdGUgYW5kIHBlcmhhcHMgZnV0dXJl
IGV4dGVuc2liaWxpdHkgaWYNCnRoaXMgbW9kZWwgaXMgZG9uZSBhcyBvbmUgb3IgbW9yZSBZQU5H
IG1vZHVsZXMuICBJdCBjYW4gY2VydGFpbmx5IGJlDQpkb25lIGluIG9uZSBtb2R1bGUsIHdpdGgg
ZmVhdHVyZXMgZm9yIGNsaWVudCwgc2VydmVyIGFuZCByZWxheSwgYnV0IGl0DQppcyBhbHNvIG9r
IHRvIGhhdmUgMyBtb2R1bGVzIGZvciB0aGUgZGlmZmVyZW50IGZ1bmN0aW9ucy4gIEFuZCBvbmNl
DQp5b3UgaGF2ZSB0aGVzZSAzIG1vZHVsZXMsIGl0IGlzIG5hdHVyYWwgdG8gaGF2ZSBhICJjb21t
b24iIG1vZHVsZSwNCmxlYWRpbmcgdG8gNCBtb2R1bGVzLiAgSW4gb3JkZXIgdG8ga2VlcCB0aGUg
bnVtYmVyIG9mIG1vZHVsZXMgZG93biwNCnBlcmhhcHMgdGhlIHZhcmlvdXMgLW9wdGlvbnMgbW9k
dWxlcyBjb3VsZCBiZSBtZXJnZWQgaW50byB0aGUgb3RoZXINCjMsIHByb2JhYmx5IHdpdGggYSBm
ZWF0dXJlIGVhY2guDQoNCk9uZSBjb21tZW50IGlzIHRoYXQgaXQgbWlnaHQgYmUgd2lzZSB0byBh
dm9pZCBoYXZpbmcgYSByZmMgbnVtYmVyIGluDQp0aGUgaWRlbnRpZmllci4gIFdoYXQgaGFwcGVu
cyBpZi93aGVuIHRoYXQgUkZDIGlzIHJldmlzZWQgZm9yIGFueQ0KcmVhc29uPw0KDQoNCi9tYXJ0
aW4NCg0KDQp0b20gcGV0Y2ggPGlldGZjQGJ0Y29ubmVjdC5jb20+IHdyb3RlOg0KPiANCj4gSW5s
aW5lIDx0cD4NCj4gDQo+IEZyb206IEFuZHkgQmllcm1hbiA8YW5keUB5dW1hd29ya3MuY29tPg0K
PiBTZW50OiAyMCBKYW51YXJ5IDIwMjEgMTg6MzINCj4gDQo+IE9uIFdlZCwgSmFuIDIwLCAyMDIx
IGF0IDg6NDEgQU0gdG9tIHBldGNoIDxpZXRmY0BidGNvbm5lY3QuY29tPG1haWx0bzppZXRmY0Bi
dGNvbm5lY3QuY29tPj4gd3JvdGU6DQo+IEp1ZXJnZW4sIExhZGEsIE1hcnRpbiwgQW5keQ0KPiAN
Cj4gSSB3b25kZXIgaWYgb25lIG9mIHlvdSwgb3IgcGVyaGFwcyBhbm90aGVyIG9uIHRoaXMgbGlz
dCwgd291bGQgYmUgd2lsbGluZyB0byBnaXZlIGFkdmljZSBvbiB0aGUNCj4gc3RydWN0dXJpbmcg
b2YgIHRoZSBZQU5HIG1vZHVsZSBmb3IgREhDUC4gIEl0IGhhcyBiZWVuIHJldmlzZWQgYW5kIHJl
c3RydWN0dXJlZCBzZXZlcmFsIHRpbWVzIGFuZCwgdG8gbWUsIGlzIG5vdCBwcm9ncmVzc2luZy4N
Cj4gDQo+IEl0IG1vZGVscyB0aHJlZSByb2xlcyAtIGNsaWVudCwgc2VydmVyLCByZWxheSAtIGFu
ZCBhIGRvemVuIG9wdGlvbmFsIGZ1bmN0aW9uIHdoaWNoIGNhbiBhcHBlYXIgaW4gb25lIG9yIG1v
cmUgcm9sZXMuICBBIG5vZGUgd2lsbCBsaWtlbHkgaGF2ZSBvbmx5IG9uZSByb2xlIGJ1dCBtYXkg
aGF2ZSBtYW55IG9wdGlvbnMuDQo+IA0KPiBUaGVyZSBhcmUsIGF0IHByZXNlbnQsIHNldmVuIG1v
ZHVsZXMNCj4gc2VydmVyIHdoaWNoIGRlZmluZXMgYSBzZXJ2ZXIgaWRlbnRpdHkgIGJhc2VkIG9u
IGNvbW1vbiBpZGVudGl0eSBpbnRlciBhbGlhDQo+IHJlbGF5IHdoaWNoIGRlZmluZXMgcmVsYXkg
aWRlbnRpdHkgZGl0dG8NCj4gY2xpZW50IHdoaWNoIGRlZmluZXMgY2xpZW50IGlkZW50aXR5IGRp
dHRvDQo+IHNlcnZlciBvcHRpb25zIHdoaWNoIGhhcyBncm91cGluZ3MgZm9yIGVhY2ggb3B0aW9u
IGZvciBhIHNlcnZlcg0KPiBjbGllbnQgb3B0aW9ucyB3aGljaCBoYXMgZ3JvdXBpbmdzIGZvciBl
YWNoIG9wdGlvbiBmb3IgYSByZWxheQ0KPiByZWxheSBvcHRpb25zIHdoaWNoIGhhcyBncm91cGlu
Z3MgZm9yIGVhY2ggb3B0aW9uIGZvciBhIGNsaWVudA0KPiBjb21tb24gd2hpY2ggZGVmaW5lcyB0
aGUgY29tbW9uIGlkZW50aXR5IGludGVyIGFsaWENCj4gU2luY2Ugb3B0aW9ucyBhcmUgY29tbW9u
IGFjcm9zcyByb2xlcywgc29tZSBncm91cGluZ3MgYXJlIHJlcGxpY2F0ZWQgaW4gdGhlIHRocmVl
IG9wdGlvbnMgbW9kdWxlcy4gIFRocmVlIHNlcGFyYXRlIG9wdGlvbiBtb2R1bGVzIHdlcmUgY3Jl
YXRlZCB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIGltcG9ydHMgYXMgSWFuIGV4cGxhaW5zIGJlbG93
LiAgVGhlIEktRCBpcyBkcmFmdC1pZXRmLWRoYy1kaGNwdjYteWFuZw0KPiANCj4gTXkgdGFrZSBp
cyB0aGF0IG9uZSBtb2R1bGUgaXMgYmVzdCwgdXNpbmcgJ3doZW4nIG9yIGlmLWZlYXR1cmUgdG8g
c2VsZWN0LCB3aGljaCBpcyB3aGF0IEkgc2VlIHdpdGggT1NQRiwgUENFLCBUQ1AsIElHTVAgYW5k
IGFsbW9zdCBldmVyeXRoaW5nIGVsc2UgYnV0IGFtIHN0cnVnZ2xpbmcgdG8gY29udmluY2Ugb3Ro
ZXJzLCBlc3BlY2lhbGx5ICB0aGUgYXV0aG9yIElhbi4gIFtJRl0gaW4gdGhlIGUtbWFpbCBleHRy
YWN0IGJlbG93DQo+IA0KPiBJIHN1Z2dlc3RlZCBhc2tpbmcgYSBZQU5HIERvY3RvciwgTk9UIHRv
IGxvb2sgYXQgdGhlIG1vZHVsZSBidXQgcmF0aGVyIHRvIGFkdmlzZSBvbiBhIHN0cnVjdHVyZSBn
aXZlbiB0aGUgcmVxdWlyZW1lbnRzIHRvIHdoaWNoIElhbiBzYWlkIHRoYXQgaGUgaGFkIG5vdCBo
YWQgbXVjaCBqb3kgd2l0aCBZQU5HIERvY3RvcnMuICBJIGFwcGVuZCBvdXIgbW9zdCByZWNlbnQg
ZXhjaGFuZ2UgaW4gd2hpY2ggaGUgcmVzcG9uZHMgdG8gbXkgcXVlcnkgYXMgdG8gd2h5IHRoZXJl
IGFyZSBzZXZlbiBtb2R1bGVzOyBmb3JtYXR0aW5nIGlzIGEgYml0IG9mIGEgbWVzcyBJIGFtIGFm
cmFpZC4gIFRoZSBwb3N0cyBhcmUgdG8gdGhlIERIQ1dHIG1haWwgbGlzdC4NCj4gDQo+IEFueSBh
ZHZpY2UgYXBwcmVjaWF0ZWQgZXZlbiBpZiBpdCBpcyB0aGF0IElhbiBpcyBvbiBqdXN0IHRoZSBy
aWdodCB0cmFjayENCj4gDQo+IA0KPiBFaXRoZXIgYXBwcm9hY2ggaXMgdmFsaWQgc28gbXVsdGkt
bW9kdWxlIHZzLiBzaW5nbGUgbW9kdWxlIHcvIGZlYXR1cmVzIGlzIG1vcmUNCj4gb2YgYW4gb3Zl
cmFsbCBzeXN0ZW0gbWFpbnRlbmFuY2UgaXNzdWUuICA3IG1vZHVsZXMgc2VlbXMgbGlrZSBhIGxv
dCBmb3IgREhDUCBidXQNCj4gSSBoYXZlIG5vIG9iamVjdGl2ZSBjcml0ZXJpYSB0byBiYWNrIHRo
YXQgdXAuDQo+IA0KPiBUaGVyZSBpcyBzb21lIGNvbmZ1c2lvbiBhYm91dCB0aGUgaW1wb3J0LXN0
bXQsIHdoaWNoIGxlYWRzIHRvIG1hbnkgWUFORyBtb2R1bGVzLg0KPiBJbiBjb21waWxlciB0ZXJt
cywgaW1wb3J0aW5nIGEgbW9kdWxlIG1lcmVseSBtYWtlcyB0aGUgc3ltYm9scyBhdmFpbGFibGUg
Zm9yIHBhcnNpbmcgaW4gdGhlIGN1cnJlbnQgbW9kdWxlLg0KPiBUaGUgaW1wb3J0LXN0bXQgaW1w
bGllcyBubyBjb25mb3JtYW5jZSByZXF1aXJlbWVudHMgd2hhdHNvZXZlci4NCj4gT25seSBzdGF0
ZW1lbnRzIHRoYXQgdXNlIHRoZSBpbXBvcnRlZCBtb2R1bGUgY2FuIGRvIHRoYXQuDQo+IChTbyBh
IHNlcnZlciBtb2R1bGUgaW1wb3J0aW5nIGEgbW9kdWxlIHRoYXQgaGFzIGNsaWVudCBncm91cGlu
Z3MgaXMgbm90IGFjdHVhbGx5IGEgcHJvYmxlbS4pDQo+IA0KPiA8dHA+DQo+IA0KPiBBbmR5LCBK
dWVyZ2VuLA0KPiANCj4gVGhhbmsgeW91IGZvciB0aGUgcmVwbGllcy4gIFdoYXQgSWFuIHNhaWQg
YWJvdXQgdGhlIGltcG9ydCBpcw0KPiANCj4gPiBbSUZdIFRoZSBzZXBhcmF0aW9uIG9mIHRoZSBv
cHRpb24gbW9kdWxlcyBjYW1lIGF0IGEgbGF0ZXIgc3RhZ2UgYmFzZWQgb24gaW1wb3J0IGRlcGVu
ZGVuY2llcyBvZiBhIHNpbmdsZSBvcHRpb25zIG1vZHVsZS4gV2hlbiB0aGUgb3B0aW9ucyBtb2R1
bGUgaW1wb3J0cyB0aGUgY2xpZW50L3NlcnZlci9yZWxheSBtb2R1bGVzIHNvIGl0IGNhbiBhdWdt
ZW50IHRoZSByZWxldmFudCBtb2R1bGUgYmFzZWQgb24gaWRlbnRpdHksIGFuIGltcGxlbWVudGF0
aW9uIGFsc28gbmVlZHMgdG8gaW1wb3J0IHRoZXNlIG1vZHVsZXMgYW5kIHdpbGwgZGVjbGFyZSB0
aGVtIGluIGl04oCZcyBjYXBhYmlsaXRpZXMgYXMgYXZhaWxhYmxlIGV2ZW4gdGhvdWdoIGl0IGRv
ZXNu4oCZdCBpbXBsZW1lbnQgdGhlbS4gRGl2aWRpbmcgdGhlIG9wdGlvbnMgbW9kdWxlcyBhdm9p
ZHMgdGhlIG5lZWQgZm9yIGRldmlhdGlvbnMuDQo+IA0KPiA8dHA+IHRoYXQgaXMsIHRoZSBwcmVm
aXggZm9yIGRoY3B2Ni1zZXJ2ZXIgaXMgZGVmaW5lZCBpbiB0aGUgc2VydmVyIG1vZHVsZSwNCj4g
ICAgbW9kdWxlIGlldGYtZGhjcHY2LXNlcnZlciB7DQo+IC4uLg0KPiAgICAgIHByZWZpeCAiZGhj
cHY2LXNlcnZlciI7DQo+IC4uLg0KPiAgICAgIGlkZW50aXR5IHNlcnZlciB7DQo+ICAgICAgICBi
YXNlICJkaGNwdjYtY29tbW9uOmRoY3B2Ni1ub2RlIjsNCj4gICAgICAgIGRlc2NyaXB0aW9uICJE
SENQdjYgc2VydmVyIGlkZW50aXR5LiI7ICAgICAgfQ0KPiAgICAgIGxlYWYgZGhjcHY2LW5vZGUt
dHlwZSB7DQo+ICAgICAgICB0eXBlIGlkZW50aXR5cmVmIHsNCj4gICAgICAgICAgYmFzZSAiZGhj
cHY2LWNvbW1vbjpkaGNwdjYtbm9kZSI7ICAgICAgICB9DQo+ICAgICAgICBkZXNjcmlwdGlvbiAi
VHlwZSBmb3IgYSBESENQdjYgc2VydmVyLiI7ICAgICB9DQo+IA0KPiBhbmQgdGhlIHByZWZpeCBm
b3IgZGhjcHY2LXJlbGF5IGluIHRoZSByZWxheSBtb2R1bGUgZXRjIHNvIGhhdmluZyBhIHNpbmds
ZSBtb2R1bGUgZm9yIG9wdGlvbnMgd2hpY2ggbmVlZHMgdG8gYXVnbWVudCBvcHRpb25zIHRvIHRo
ZSBzZXJ2ZXIgbW9kdWxlIG5lZWRzIHRvIGltcG9ydCB0aGUgc2VydmVyIG1vZHVsZSBzbyB0aGF0
IHRoZSBkaGNwdjYtc2VydmVyIHByZWZpeCBpcyBkZWZpbmVkLCBkaXR0byByZWxheSBhbmQgY2xp
ZW50IHNvIHRoZSBzaW5nbGUgbW9kdWxlIGZvciBvcHRpb25zIHRoZW4gaW1wb3J0cyBzZXJ2ZXIg
YW5kIHJlbGF5IGFuZCBjbGllbnQgbW9kdWxlcy4NCj4gDQo+IFdpdGggdGhyZWUgb3B0aW9ucyBt
b2R1bGVzLCBlYWNoIG9ubHkgaW1wb3J0cyBvbmUgb2Ygc2VydmVyLCByZWxheSwgY2xpZW50IGJ1
dCB0aGUgZ3JvdXBpbmdzIGFyZSB0aGVuIHJlcGxpY2F0ZWQgYWNyb3NzIHRoZSB0aHJlZSBvcHRp
b25zIG1vZHVsZXMuDQo+IA0KPiBMb2dpY2FsIGlmIHlvdSBhZ3JlZSB3aXRoIHRoZSBpbml0aWFs
IHByZW1pc2UgKHdoaWNoIEkgZG8gbm90ISkuIA0KPiANCj4gVGhlIHNldmVuIFlBTkcgbW9kdWxl
cyBhcmUgYWxsIGluIHRoZSBvbmUgSS1EIG9mIDU2cHAgd2l0aCB0aGUgdHJlZSBkaWFncmFtcyAx
MnBwLg0KPiANCj4gVG9tIFBldGNoDQo+IChvbiBFdXJvcGVhbiB0aW1lOi0oDQo+IA0KPiBZQU5H
IENvbmZvcm1hbmNlIGZvciBhIHNpbmdsZSBtb2R1bGUgaXMgYmV0dGVyIGRlZmluZWQgdGhhbiBm
b3IgbXVsdGlwbGUgcmVsYXRlZCBtb2R1bGVzLg0KPiBUaGUgWUFORyBQYWNrYWdlcyB3b3JrIGNv
dWxkIGZpeCB0aGF0IHNvbWVkYXkuDQo+IA0KPiBUb20gUGV0Y2gNCj4gDQo+IA0KPiBBbmR5DQo+
IA0KPiANCj4gT24gMTkvMDEvMjAyMSAxMToyNSwgdG9tIHBldGNoIHdyb3RlOg0KPiA+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiBGcm9tOiBkaGN3ZyA8ZGhj
d2ctYm91bmNlc0BpZXRmLm9yZzxtYWlsdG86ZGhjd2ctYm91bmNlc0BpZXRmLm9yZz4+IG9uIGJl
aGFsZiBvZiBpYW5mYXJyZXJAZ214LmNvbTxtYWlsdG86aWFuZmFycmVyQGdteC5jb20+IDxpYW5m
YXJyZXJAZ214LmNvbTxtYWlsdG86aWFuZmFycmVyQGdteC5jb20+Pg0KPiA+IFNlbnQ6IDE5IEph
bnVhcnkgMjAyMSAwNzozNw0KPiA+DQo+ID4gVGhhbmtzIGZvciB5b3VyIGNvbW1lbnRzLiBQbGVh
c2Ugc2VlIGlubGluZSBiZWxvdy4NCj4gPg0KPiA+IElhbg0KPiA+DQo+ID4gT24gMTQuIEphbiAy
MDIxLCBhdCAxMzo0MCwgdCBwZXRjaCA8aWV0ZmFAYnRjb25uZWN0LmNvbTxtYWlsdG86aWV0ZmFA
YnRjb25uZWN0LmNvbT48bWFpbHRvOmlldGZhQGJ0Y29ubmVjdC5jb208bWFpbHRvOmlldGZhQGJ0
Y29ubmVjdC5jb20+Pj4gd3JvdGU6DQo+ID4NCj4gPiBJYW4NCj4gPg0KPiA+IEkgZG8gbm90IHVu
ZGVyc3RhbmQgdGhpcyBJLUQ7IEkgaGF2ZSB0cmFja2VkIGl0IGZvciBhIG51bWJlciBvZiB5ZWFy
cyBhbmQgbXkgdW5kZXJzdGFuZGluZyBvZiBpdCBpcyBkaW1pbmlzaGluZy4NCj4gPg0KPiA+IEN1
cnJlbnRseSwgaXQgaXMgc2V2ZW4gWUFORyBtb2R1bGVzOiB3aHk/DQo+ID4NCj4gPiBbaWYgLSBU
aGUgc2VwYXJhdGlvbiBpbnRvIGNsaWVudC9zZXJ2ZXIvcmVsYXksIGFuZCBESENQIG9wdGlvbnMg
aGFzIGJlZW4gaW4gdGhlIGRyYWZ0IHNpbmNlIC0wNSBhbmQgdGhlIGNoYW5nZXMgd2VyZSBwcmVz
ZW50ZWQgYW5kIGRpc2N1c3NlZCBhdCBJRVRGMTAxIC0gSeKAmXZlIGRlc2NyaWJlZCB0aGUgcmVh
c29uaW5nIGZvciB0aGlzIHNwbGl0IGluIHRoZSBuZXh0IGFuc3dlci4gQmV5b25kIHRoYXQsIHRo
ZSBjb21tb24gbW9kdWxlIHdhcyBhZGRlZCB0byBhdm9pZCAod2VsbCByZWR1Y2UgYXMgeW91IHBv
aW50IG91dCBiZWxvdykgZHVwbGljYXRpb24uDQo+ID4NCj4gPiBUaGUgc2VwYXJhdGlvbiBvZiB0
aGUgb3B0aW9uIG1vZHVsZXMgY2FtZSBhdCBhIGxhdGVyIHN0YWdlIGJhc2VkIG9uIGltcG9ydCBk
ZXBlbmRlbmNpZXMgb2YgYSBzaW5nbGUgb3B0aW9ucyBtb2R1bGUuIFdoZW4gdGhlIG9wdGlvbnMg
bW9kdWxlIGltcG9ydHMgdGhlIGNsaWVudC9zZXJ2ZXIvcmVsYXkgbW9kdWxlcyBzbyBpdCBjYW4g
YXVnbWVudCB0aGUgcmVsZXZhbnQgbW9kdWxlIGJhc2VkIG9uIGlkZW50aXR5LCBhbiBpbXBsZW1l
bnRhdGlvbiBhbHNvIG5lZWRzIHRvIGltcG9ydCB0aGVzZSBtb2R1bGVzIGFuZCB3aWxsIGRlY2xh
cmUgdGhlbSBpbiBpdOKAmXMgY2FwYWJpbGl0aWVzIGFzIGF2YWlsYWJsZSBldmVuIHRob3VnaCBp
dCBkb2VzbuKAmXQgaW1wbGVtZW50IHRoZW0uIERpdmlkaW5nIHRoZSBvcHRpb25zIG1vZHVsZXMg
YXZvaWRzIHRoZSBuZWVkIGZvciBkZXZpYXRpb25zLg0KPiA+DQo+ID4gRXZlbiB0aG91Z2ggdGhl
cmUgYXJlIDcgbW9kdWxlcyBkZWZpbmVkIGhlcmUsIHRoZSBsaWtlbHkgaG9vZCBpcyB0aGF0IGFu
IGVsZW1lbnQgaW1wbGVtZW50YXRpb24gd291bGQgcmVxdWlyZSAzIG1vZHVsZXMgdG8gYmUgaW1w
bGVtZW50ZWQgKGUuZy4gY2xpZW50LCBjb21tb24gYW5kIGNsaWVudCBvcHRpb25zKS5dDQo+ID4N
Cj4gPiBbdHBdIE90aGVyIFdHIGhhdmUgbW9kZWxzIHdpdGggbXVsdGlwbGUgcm9sZXMgYW5kIG1h
bnkgb3B0aW9ucyBhbmQgaGF2ZSBhIHNpbmdsZSBZQU5HIG1vZHVsZSwgdXNpbmcgdGhlIGZlYXR1
cmVzIG9mIFlBTkcgdG8gdGFpbG9yIHRoZSBtb2R1bGUgdG8gZGlmZmVyZW50IGNvbmZpZ3VyYXRp
b25zLg0KPiA+DQo+ID4gW2lmIC0gSXTigJlzIG5vdCByZWFsbHkgdGFpbG9yaW5nIHRoZSBtb2R1
bGUgdG8gZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zLCB0aGV5IGFyZSBmb3IgdGhlIG1vc3QgcGFy
dCBzZXBhcmF0ZSBmdW5jdGlvbmFsIGVsZW1lbnRzIGluIHRoZSBuZXR3b3JrIHdpdGggYW55IGRl
dmljZSBvbmx5IGltcGxlbWVudGluZyBvbmUgb2YgdGhlIGNsaWVudCwgcmVsYXkgb3Igc2VydmVy
IGZ1bmN0aW9ucy4NCj4gPg0KPiA+IEhvd2V2ZXIsIGV2ZW4gaW4gdGhlIGNhc2UgdGhhdCBhIGRl
dmljZSBpcyBib3RoIGEgc2VydmVyIGFuZCBhIGNsaWVudCAoZS5nLiBhIGhvbWUgZ2F0ZXdheSB3
aXRoIGEgY2xpZW50IG9uIHRoZSBXQU4gYW5kIGEgc2VydmVyIG9uIHRoZSBMQU4pLCB0aGUgbGlr
ZWxpaG9vZCBpcyB0aGF0IHRoZXNlIHdpbGwgYmUgZG9uZSB1c2luZyBkaWZmZXJlbnQgc29mdHdh
cmUgaW1wbGVtZW50YXRpb25zLCBzbyBoYXZpbmcgc2VwYXJhdGUgbW9kdWxlcyBmb3Igc2VydmVy
IGFuZCBjbGllbnQgb2ZmZXJzIGltcGxlbWVudGF0aW9uIGZsZXhpYmlsaXR5Lg0KPiA+DQo+ID4g
SW4gdGhlIGNhc2Ugb2YgYSBtb25vbGl0aGljIG1vZHVsZSB3aXRoIHRoZSByZWxldmFudCBjbGll
bnQvcmVsYXkvc2VydmVyIGZ1bmN0aW9uYWxpdHkgZW5hYmxlZCBieSBmZWF0dXJlcywgdGhlIG1v
ZHVsZSB3b3VsZCBkbyBub3RoaW5nIHVubGVzcyBvbmUgb3IgbW9yZSBvZiB0aGUgZmVhdHVyZXMg
d2FzIGVuYWJsZWQsIGFuZCBJcyB1bmxpa2VseSB0aGF0IHlvdeKAmWQgZXZlciBlbmFibGUgbW9y
ZSB0aGFuIG9uZS4gSXMgdGhpcyBhcHByb2FjaCB1c2VkIGJ5IG90aGVyIFdHcz8gQ291bGQgeW91
IHBvaW50IG1lIHRvIHNvbWUgc29tZSBleGFtcGxlcyBhcyBJJ3ZlIG9ubHkgc2VlbiBmZWF0dXJl
cyBiZWVuIHVzZWQgYXMgcmVsYXRpdmVseSBzbWFsbCBvcHRpb25hbCBleHRlbnNpb25zIHVzZWQg
d2hlbiB0aGUgYnVsayBvZiB0aGUgbm9kZXMgYXJlIGNvbW1vbj9dDQo+IA0KPiBbdHBdDQo+IElh
bg0KPiANCj4gQWxtb3N0IGFsbCB0aGUgWUFORyBtb2RlbHMgSSBrbm93IG9mIGFyZSBzaW5nbGUg
bW9kdWxlLiAgRm9yIGV4YW1wbGUsDQo+IGRyYWZ0LWlldGYtb3NwZi15YW5nIHN1cHBvcnRzIHR3
byB2ZXJzaW9ucyBtb2RlbGxlZCBhcyBpZGVudGl0eSBhbmQgMjgNCj4gb3B0aW9ucyBtb2RlbGxl
ZCBhcyBmZWF0dXJlcy4NCj4gDQo+IGRyYWZ0LWlldGYtdGNwbS15YW5nIHN1cHBvcnRzIGNsaWVu
dCBhbmQgc2VydmVyIGFzIGNvbnRhaW5lcnMgd2l0aA0KPiBpZi1mZWF0dXJlIGFuZCBoYXMgb3Ro
ZXIgZmVhdHVyZXMgYXMgd2VsbA0KPiANCj4gZHJhZnQtaWV0Zi1waW0taWdtcC1tbGQteWFuZyBz
dXBwb3J0cyBmaXZlIHZlcnNpb25zIG9mIHR3byBwcm90b2NvbA0KPiB1c2luZyBpZGVudGl0eQ0K
PiANCj4gZHJhZnQtcGNlLXBjZXAteWFuZyBvZmZlcnMgdGhlIHJvbGVzIG9mIHBjYyBvciBwY2Ug
b3IgYm90aCB1c2luZyB0eXBlZGVmLg0KPiANCj4gQW5kIHNvIG9uIGFuZCBzbyBvbi4gIGlmLWZl
YXR1cmUsIHdoZW4gYW5kIHN1Y2hsaWtlIHByb3ZpZGUgdGhlDQo+IG5lY2Vzc2FyeSBjdXN0b21p
c2F0aW9uLg0KPiANCj4gSSB0aGluayB0aGF0IHlvdXIgcHJvYmxlbXMgd2l0aCBvcHRpb25zIGFy
ZSBiZWNhdXNlIHRoZSBpZGVudGl0eSBhcmUNCj4gZGVmaW5lZCBpbiB0aGUgd3JvbmcgcGxhY2Uu
ICBUaGUgYmFzZSwgdGhlIGNvbW1vbiBtb2R1bGUgKG9yIHBhcnQgb2YgdGhlDQo+IG9uZSBhbmQg
b25seSBtb2R1bGUpIHNob3VsZCBkZWZpbmUgd2hhdCBpcyBjb21tb24sIHdoYXQgZXZlcnlvbmUg
bmVlZHM7DQo+IGlmIHRoZXJlIGFyZSB0aHJlZSByb2xlcyBhbmQgYSBkb3plbiBvcHRpb25zLCB0
aGFuIHRoYXQgaXMgd2hlcmUgdGhleQ0KPiBuZWVkIHRvIGJlIGRlZmluZWQuDQo+IA0KPiBUaGVu
IHRoZXJlIGNhbiBiZSBhbiBvYmplY3Qgd2hpY2ggaXMgY29uZmlndXJlZCB3aXRoIHRoZSByb2xl
cyBvZiBhDQo+IHBhcnRpY3VsYXIgYm94LCBjbGllbnQgb3Igc2VydmVyIG9yIHJlbGF5LCBvciBp
ZiByZXF1aXJlZCwgYSBjb21iaW5hdGlvbg0KPiBvZiB0aGUgdGhlcmUgLSBzaW1wbGVyIGlmIHRo
YXQgaXMgb3V0IG9mIHNjb3BlIGFzIHlvdSBzdWdnZXN0Lg0KPiANCj4gTXkgc3RhcnRpbmcgcG9p
bnQgd291bGQgYmUgYSBkaGMgY29udGFpbmVyIHdpdGggYSBsZWFmIGZvciBhIHJvbGUgYW5kIHRo
ZW4NCj4gY29udGFpbmVycyBmb3IgY2xpZW50LCByZWxheSwgc2VydmVyLCBhZGRlZCBieSBhdWdt
ZW50IGFuZCBjb250cm9sbGVkIGJ5DQo+IHdoZW4gcG9pbnRpbmcgYXQgdGhlIHJvbGUuDQo+IA0K
PiBJIHdpbGwgcG9zdCBzb21ldGhpbmcgdG8gdGhlIG5ldG1vZCBXRyBsaXN0IC0gdGhlcmUgYXJl
IGxvdHMgb2YgcGVvcGxlDQo+IHRoZXJlIHdpdGggZ3JlYXRlciBleHBvc3VyZSB0aGFuIG1pbmUg
d2hvIGNhbiBnaXZlIGJldHRlciBndWlkYW5jZSB0aGFuIEkuDQo+IA0KPiBUb20gUGV0Y2gNCj4g
DQo+ID4gSGVyZSB5b3UgaGF2ZSBtb2RlbGxlZCB0aGUgb3B0aW9ucyBhcyBZQU5HIGdyb3VwaW5n
LiBUaGUgaW50ZW50IG9mIGEgZ3JvdXBpbmcgaXMgdG8gcHJvdmlkZSBhIGJsb2NrIG9mIHN0YXRl
bWVudHMgdGhhdCBjYW4gYmUgcmV1c2VkIHNvIGF2b2lkaW5nIGR1cGxpY2F0aW9uIHdpdGggdGhl
IGF0dGVuZGFudCBwcm9ibGVtcy4gIEhlcmUgeW91IGhhdmUgdGhlIHNhbWUgZ3JvdXBpbmcgaW4g
dHJpcGxpY2F0ZSBpbiB0aHJlZSBkaWZmZXJlbnQgWUFORyBtb2R1bGVzIHdoaWNoIHNlZW1zIHRv
IG1lIHRvIGJlIHRoZSBhbnRpdGhlc2lzIG9mIGEgZ3JvdXBpbmcuDQo+ID4NCj4gPiBbSWYgLSBX
ZSBjb3VsZCBtb3ZlIHRoZSBvcHRpb24gZGVmaW5pdGlvbnMgZm9yICJzdGF0dXMtY29kZS1vcHRp
b24tZ3JvdXDigJ0gKGNsaWVudCwgc2VydmVyLCByZWxheSkgYW5kIOKAnHJhcGlkLWNvbW1pdC1v
cHRpb24tZ3JvdXAsIHZlbmRvci1zcGVjaWZpYy1pbmZvcm1hdGlvbi1vcHRpb24tZ3JvdXA7IHJl
Y29uZmlndXJlLWFjY2VwdC1vcHRpb24tZ3JvdXDigJ0gKGNsaWVudCwgc2VydmVyKSBpbnRvIHRo
ZSBjb21tb24gbW9kdWxlIHRvIHJlc29sdmUgdGhlIGR1cGxpY2F0aW9uLiBJIGRpZG7igJl0IGRv
IHRoaXMgcHJldmlvdXNseSBhcyB0aGUgaW50ZW50aW9uIHdhcyB0byBrZWVwIG9wdGlvbnMgZGVm
aW5pdGlvbnMgaW4gdGhlIG9wdGlvbnMgbW9kdWxlcyBmb3IgY29uc2lzdGVuY3ksIGJ1dCBpdCAg
d291bGQgYmUgc2ltcGxlIHRvIGNoYW5nZS4gXQ0KPiA+DQo+ID4gW3RwXSBMaWtld2lzZSBJIGZp
bmQgdGhlIHNwZWNpZmljYXRpb24gb2Ygc2VydmVyIHYgY2xpZW50IHYgcmVsYXkgdW51c3VhbC4N
Cj4gPg0KPiA+IFtJZiAtIEEgc2ltaWxhciBhcHByb2FjaCBmb3Igc2VwYXJhdGVkIGNsaWVudC9z
ZXJ2ZXIgbW9kdWxlcyBpcyBhbHNvIHVzZWQgaW4gUkZDODY3Niwgd2hlcmUgdGhlIGNsaWVudCBh
bmQgc2VydmVyIGhhdmUgZGlzY3JldGUgZnVuY3Rpb24sIGFzIHdpdGggREhDUC5dDQo+ID4NCj4g
PiBbdHBdSSB3b25kZXIgaWYgaXQgaXMgd29ydGggY29uc3VsdGluZyBhIFlBTkcgZG9jdG9yLCBO
T1QgdG8gc2hvdyB0aGVtIHRoZSBZQU5HIGFuZCBpbnZpdGUgY29tbWVudHMsIHJhdGhlciBvdXRs
aW5lIGluIGFuIGFic3RyYWN0IHdheSB3aGF0IGl0IGlzIHlvdSB3YW50IHRvIG1vZGVsIGFuZCBz
ZWUgd2hhdCB0aGV5IHN1Z2dlc3Q7IHRoYXQgbWlnaHQgd2VsbCBiZSBhIHNpbmdsZSBZQU5HIG1v
ZHVsZS4NCj4gPg0KPiA+IFtpZiAtIFllcywgSeKAmWQgYmUgaGFwcHkgdG8uIElzIHRoZXJlIHNv
bWVvbmUgdGhhdCB5b3UgaGF2ZSBpbiBtaW5kIChJ4oCZdmUgbm90IGhhZCBtdWNoIGx1Y2sgd2l0
aCBnZXR0aW5nIFlBTkcgZG9jdG9yIGlucHV0IG91dHNpZGUgb2YgdGhlIGZvcm1hbCByZXZpZXcg
cHJvY2VzcyBpbiB0aGUgcGFzdCk/LiBJ4oCZbSBub3Qgb3Bwb3NlZCB0byBjaGFuZ2luZyB0aGUg
d2F5IHRoYXQgdGhlIG1vZHVsZXMgYXJlIHN0cnVjdHVyZWQgb24gcHJpbmNpcGFsLCBJIGRvIGhv
d2V2ZXIsIHRoaW5rIHRoYXQgdGhlIHNlcGFyYXRpb24gYnkgZnVuY3Rpb25hbCBlbGVtZW50IGlz
IGxvZ2ljYWwgYW5kIHNpbXBsZXIgZm9yIGltcGxlbWVudGVycywgYW5kIEkgd291bGQgbGlrZSB0
byBrbm93IHdoYXQgdGhlIGJlbmVmaXRzIG9mIGEgc2luZ2xlIG1vZHVsZSAob3Igb3RoZXIgc3Ry
dWN0dXJlKSBtaWdodCBiZS5dDQo+ID4NCj4gPiBbdHBdSSBkbyBoYXZlIHF1aXRlIGEgbnVtYmVy
IG9mIGRldGFpbGVkIGNvbW1lbnRzIGJ1dCBkbyBub3QgdGhpbmsgdGhlbSB3b3J0aCBtYWtpbmcg
dW50aWwgdGhlIEktRCBzZWVtcyB0byBtZSBtb3JlIHN0YWJsZS4NCj4gPg0KPiA+IFtpZiAtIEl0
4oCZZCBiZSBncmVhdCBpZiB5b3UgY291bGQgc3VwcGx5IHRoZW0gYXMgd2VsbCBzbyBJIGNhbiBz
dGFydCBnb2luZyB0aG91Z2ggdGhlbSBhbmQgZml4aW5nIHdoYXTigJlzIGN1cnJlbnRseSBmaXhh
YmxlIGluIHBhcmFsbGVsIHRvIHRoZSBkaXNjdXNzaW9uIGFib3ZlLl0NCj4gPg0KPiA+IFRvbSBQ
ZXRjaA0KPiA+DQo+ID4gT24gMDcvMDEvMjAyMSAxNjoxMCwgaWFuZmFycmVyQGdteC5jb208bWFp
bHRvOmlhbmZhcnJlckBnbXguY29tPjxtYWlsdG86aWFuZmFycmVyQGdteC5jb208bWFpbHRvOmlh
bmZhcnJlckBnbXguY29tPj4gd3JvdGU6DQo+ID4gSGkgVG9tLA0KPiA+DQo=


From nobody Thu Jan 21 04:58:55 2021
Return-Path: <ladislav.lhotka@nic.cz>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D98183A0A29 for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 04:58:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.361
X-Spam-Level: 
X-Spam-Status: No, score=-2.361 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, NICE_REPLY_A=-0.262, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
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 mhLLWrwGI0T2 for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 04:58:51 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (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 40B053A0A21 for <netmod@ietf.org>; Thu, 21 Jan 2021 04:58:50 -0800 (PST)
Received: from [IPv6:2001:1488:fffe:6:a88f:7eff:fed2:45f8] (unknown [IPv6:2001:1488:fffe:6:a88f:7eff:fed2:45f8]) by mail.nic.cz (Postfix) with ESMTPSA id E388F1420EF; Thu, 21 Jan 2021 13:58:46 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1611233927; bh=y5HQKvADzjw9mlbodhrmCLys0109Tp9M5PUEIwJYrfE=; h=To:From:Date; b=XoqZoaL7pNoCJIkqbc+FU+Zh84Jp5CosAMVHovZwEzrrYVzZsiQ7U2UVmkeuHJvGA mj+XG2s6ebYtPfZastXrDeSATZPodbNP774rItcrC7zknG8i+ewyZPB3sTaXG1gbA/ iKupLIrK6TCceY/n0rMUPz5m86iXU4p1sZyasq0w=
To: =?UTF-8?Q?Martin_Bj=c3=b6rklund?= <mbj+ietf@4668.se>, ietfc@btconnect.com
Cc: andy@yumaworks.com, netmod@ietf.org, j.schoenwaelder@jacobs-university.de, ianfarrer@gmx.com
References: <AM7PR07MB6248BC693F7056249D29CF16A0A20@AM7PR07MB6248.eurprd07.prod.outlook.com> <CABCOCHTexq8SBCE5=9fGuqYQ5fQWVvu+R1jN9V-Mg+pPUq0RZA@mail.gmail.com> <AM7PR07MB624877D5F864EF3F3D9171E1A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <20210121.134211.1244086498697136841.id@4668.se>
From: Ladislav Lhotka <ladislav.lhotka@nic.cz>
Organization: CZ.NIC
Message-ID: <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz>
Date: Thu, 21 Jan 2021 13:58:46 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1
MIME-Version: 1.0
In-Reply-To: <20210121.134211.1244086498697136841.id@4668.se>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: clamav-milter 0.102.2 at mail
X-Virus-Status: Clean
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/NH7WxthyyzjljgtzYYSy5MTpk14>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jan 2021 12:58:54 -0000

Hi,

in my YD review 4.5 years ago I actually recommended to use separate
modules:

https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_ICrKPs4/

I think it is a matter of how much the different part overlap. For an
implementer, it seems to be easier to pick just the relevant parts,
provided they are easy to locate and identify.

Lada

On 21. 01. 21 13:42, Martin Björklund wrote:
> Hi,
> 
> I think it is a matter of taste and perhaps future extensibility if
> this model is done as one or more YANG modules.  It can certainly be
> done in one module, with features for client, server and relay, but it
> is also ok to have 3 modules for the different functions.  And once
> you have these 3 modules, it is natural to have a "common" module,
> leading to 4 modules.  In order to keep the number of modules down,
> perhaps the various -options modules could be merged into the other
> 3, probably with a feature each.
> 
> One comment is that it might be wise to avoid having a rfc number in
> the identifier.  What happens if/when that RFC is revised for any
> reason?
> 
> 
> /martin
> 
> 
> tom petch <ietfc@btconnect.com> wrote:
>>
>> Inline <tp>
>>
>> From: Andy Bierman <andy@yumaworks.com>
>> Sent: 20 January 2021 18:32
>>
>> On Wed, Jan 20, 2021 at 8:41 AM tom petch <ietfc@btconnect.com<mailto:ietfc@btconnect.com>> wrote:
>> Juergen, Lada, Martin, Andy
>>
>> I wonder if one of you, or perhaps another on this list, would be willing to give advice on the
>> structuring of  the YANG module for DHCP.  It has been revised and restructured several times and, to me, is not progressing.
>>
>> It models three roles - client, server, relay - and a dozen optional function which can appear in one or more roles.  A node will likely have only one role but may have many options.
>>
>> There are, at present, seven modules
>> server which defines a server identity  based on common identity inter alia
>> relay which defines relay identity ditto
>> client which defines client identity ditto
>> server options which has groupings for each option for a server
>> client options which has groupings for each option for a relay
>> relay options which has groupings for each option for a client
>> common which defines the common identity inter alia
>> Since options are common across roles, some groupings are replicated in the three options modules.  Three separate option modules were created to avoid problems with imports as Ian explains below.  The I-D is draft-ietf-dhc-dhcpv6-yang
>>
>> My take is that one module is best, using 'when' or if-feature to select, which is what I see with OSPF, PCE, TCP, IGMP and almost everything else but am struggling to convince others, especially  the author Ian.  [IF] in the e-mail extract below
>>
>> I suggested asking a YANG Doctor, NOT to look at the module but rather to advise on a structure given the requirements to which Ian said that he had not had much joy with YANG Doctors.  I append our most recent exchange in which he responds to my query as to why there are seven modules; formatting is a bit of a mess I am afraid.  The posts are to the DHCWG mail list.
>>
>> Any advice appreciated even if it is that Ian is on just the right track!
>>
>>
>> Either approach is valid so multi-module vs. single module w/ features is more
>> of an overall system maintenance issue.  7 modules seems like a lot for DHCP but
>> I have no objective criteria to back that up.
>>
>> There is some confusion about the import-stmt, which leads to many YANG modules.
>> In compiler terms, importing a module merely makes the symbols available for parsing in the current module.
>> The import-stmt implies no conformance requirements whatsoever.
>> Only statements that use the imported module can do that.
>> (So a server module importing a module that has client groupings is not actually a problem.)
>>
>> <tp>
>>
>> Andy, Juergen,
>>
>> Thank you for the replies.  What Ian said about the import is
>>
>>> [IF] The separation of the option modules came at a later stage based on import dependencies of a single options module. When the options module imports the client/server/relay modules so it can augment the relevant module based on identity, an implementation also needs to import these modules and will declare them in it’s capabilities as available even though it doesn’t implement them. Dividing the options modules avoids the need for deviations.
>>
>> <tp> that is, the prefix for dhcpv6-server is defined in the server module,
>>    module ietf-dhcpv6-server {
>> ...
>>      prefix "dhcpv6-server";
>> ...
>>      identity server {
>>        base "dhcpv6-common:dhcpv6-node";
>>        description "DHCPv6 server identity.";      }
>>      leaf dhcpv6-node-type {
>>        type identityref {
>>          base "dhcpv6-common:dhcpv6-node";        }
>>        description "Type for a DHCPv6 server.";     }
>>
>> and the prefix for dhcpv6-relay in the relay module etc so having a single module for options which needs to augment options to the server module needs to import the server module so that the dhcpv6-server prefix is defined, ditto relay and client so the single module for options then imports server and relay and client modules.
>>
>> With three options modules, each only imports one of server, relay, client but the groupings are then replicated across the three options modules.
>>
>> Logical if you agree with the initial premise (which I do not!). 
>>
>> The seven YANG modules are all in the one I-D of 56pp with the tree diagrams 12pp.
>>
>> Tom Petch
>> (on European time:-(
>>
>> YANG Conformance for a single module is better defined than for multiple related modules.
>> The YANG Packages work could fix that someday.
>>
>> Tom Petch
>>
>>
>> Andy
>>
>>
>> On 19/01/2021 11:25, tom petch wrote:
>>> ________________________________________
>>> From: dhcwg <dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> on behalf of ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> <ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>>
>>> Sent: 19 January 2021 07:37
>>>
>>> Thanks for your comments. Please see inline below.
>>>
>>> Ian
>>>
>>> On 14. Jan 2021, at 13:40, t petch <ietfa@btconnect.com<mailto:ietfa@btconnect.com><mailto:ietfa@btconnect.com<mailto:ietfa@btconnect.com>>> wrote:
>>>
>>> Ian
>>>
>>> I do not understand this I-D; I have tracked it for a number of years and my understanding of it is diminishing.
>>>
>>> Currently, it is seven YANG modules: why?
>>>
>>> [if - The separation into client/server/relay, and DHCP options has been in the draft since -05 and the changes were presented and discussed at IETF101 - I’ve described the reasoning for this split in the next answer. Beyond that, the common module was added to avoid (well reduce as you point out below) duplication.
>>>
>>> The separation of the option modules came at a later stage based on import dependencies of a single options module. When the options module imports the client/server/relay modules so it can augment the relevant module based on identity, an implementation also needs to import these modules and will declare them in it’s capabilities as available even though it doesn’t implement them. Dividing the options modules avoids the need for deviations.
>>>
>>> Even though there are 7 modules defined here, the likely hood is that an element implementation would require 3 modules to be implemented (e.g. client, common and client options).]
>>>
>>> [tp] Other WG have models with multiple roles and many options and have a single YANG module, using the features of YANG to tailor the module to different configurations.
>>>
>>> [if - It’s not really tailoring the module to different configurations, they are for the most part separate functional elements in the network with any device only implementing one of the client, relay or server functions.
>>>
>>> However, even in the case that a device is both a server and a client (e.g. a home gateway with a client on the WAN and a server on the LAN), the likelihood is that these will be done using different software implementations, so having separate modules for server and client offers implementation flexibility.
>>>
>>> In the case of a monolithic module with the relevant client/relay/server functionality enabled by features, the module would do nothing unless one or more of the features was enabled, and Is unlikely that you’d ever enable more than one. Is this approach used by other WGs? Could you point me to some some examples as I've only seen features been used as relatively small optional extensions used when the bulk of the nodes are common?]
>>
>> [tp]
>> Ian
>>
>> Almost all the YANG models I know of are single module.  For example,
>> draft-ietf-ospf-yang supports two versions modelled as identity and 28
>> options modelled as features.
>>
>> draft-ietf-tcpm-yang supports client and server as containers with
>> if-feature and has other features as well
>>
>> draft-ietf-pim-igmp-mld-yang supports five versions of two protocol
>> using identity
>>
>> draft-pce-pcep-yang offers the roles of pcc or pce or both using typedef.
>>
>> And so on and so on.  if-feature, when and suchlike provide the
>> necessary customisation.
>>
>> I think that your problems with options are because the identity are
>> defined in the wrong place.  The base, the common module (or part of the
>> one and only module) should define what is common, what everyone needs;
>> if there are three roles and a dozen options, than that is where they
>> need to be defined.
>>
>> Then there can be an object which is configured with the roles of a
>> particular box, client or server or relay, or if required, a combination
>> of the there - simpler if that is out of scope as you suggest.
>>
>> My starting point would be a dhc container with a leaf for a role and then
>> containers for client, relay, server, added by augment and controlled by
>> when pointing at the role.
>>
>> I will post something to the netmod WG list - there are lots of people
>> there with greater exposure than mine who can give better guidance than I.
>>
>> Tom Petch
>>
>>> Here you have modelled the options as YANG grouping. The intent of a grouping is to provide a block of statements that can be reused so avoiding duplication with the attendant problems.  Here you have the same grouping in triplicate in three different YANG modules which seems to me to be the antithesis of a grouping.
>>>
>>> [If - We could move the option definitions for "status-code-option-group” (client, server, relay) and “rapid-commit-option-group, vendor-specific-information-option-group; reconfigure-accept-option-group” (client, server) into the common module to resolve the duplication. I didn’t do this previously as the intention was to keep options definitions in the options modules for consistency, but it  would be simple to change. ]
>>>
>>> [tp] Likewise I find the specification of server v client v relay unusual.
>>>
>>> [If - A similar approach for separated client/server modules is also used in RFC8676, where the client and server have discrete function, as with DHCP.]
>>>
>>> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show them the YANG and invite comments, rather outline in an abstract way what it is you want to model and see what they suggest; that might well be a single YANG module.
>>>
>>> [if - Yes, I’d be happy to. Is there someone that you have in mind (I’ve not had much luck with getting YANG doctor input outside of the formal review process in the past)?. I’m not opposed to changing the way that the modules are structured on principal, I do however, think that the separation by functional element is logical and simpler for implementers, and I would like to know what the benefits of a single module (or other structure) might be.]
>>>
>>> [tp]I do have quite a number of detailed comments but do not think them worth making until the I-D seems to me more stable.
>>>
>>> [if - It’d be great if you could supply them as well so I can start going though them and fixing what’s currently fixable in parallel to the discussion above.]
>>>
>>> Tom Petch
>>>
>>> On 07/01/2021 16:10, ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mailto:ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>> wrote:
>>> Hi Tom,
>>>

-- 
Ladislav Lhotka
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67


From nobody Thu Jan 21 08:29:45 2021
Return-Path: <ianfarrer@gmx.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A76813A12BC for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 08:29:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.918
X-Spam-Level: 
X-Spam-Status: No, score=-1.918 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=gmx.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 4-GpYGauagbS for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 08:29:35 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (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 BA3103A12A3 for <netmod@ietf.org>; Thu, 21 Jan 2021 08:29:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1611246559; bh=jZ/h3n1GfKtEzIqrCCp2ldHf/sCT05d47zKP/tW8ohU=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References:To; b=V2MwnEcOXFO4vEnlESAwk76GnlW3pDVg+KKJPPd/D67Z5Dq9x5kY8PbWkeaN7wzoo XApd+DqUrNFuO/lt/H5uYd/krxNq148k1nkZg7Wbu9Pm4uShc9NawIFwi+mdRWeh6+ g9/yWIClvUKQPSEP7i/abczG61aBoZrc1tL+Uk24=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Received: from mbp-big-sur.fritz.box ([78.35.205.160]) by mail.gmx.net (mrgmx005 [212.227.17.184]) with ESMTPSA (Nemesis) id 1Mzyya-1lzQBF1hoM-00wz6F; Thu, 21 Jan 2021 17:29:19 +0100
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.40.0.2.32\))
From: ianfarrer@gmx.com
In-Reply-To: <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz>
Date: Thu, 21 Jan 2021 17:29:18 +0100
Cc: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj+ietf@4668.se>, ietfc@btconnect.com,  andy@yumaworks.com, netmod@ietf.org, j.schoenwaelder@jacobs-university.de
Content-Transfer-Encoding: quoted-printable
Message-Id: <9B941200-508A-4E8B-B430-FC45652ACF1D@gmx.com>
References: <AM7PR07MB6248BC693F7056249D29CF16A0A20@AM7PR07MB6248.eurprd07.prod.outlook.com> <CABCOCHTexq8SBCE5=9fGuqYQ5fQWVvu+R1jN9V-Mg+pPUq0RZA@mail.gmail.com> <AM7PR07MB624877D5F864EF3F3D9171E1A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <20210121.134211.1244086498697136841.id@4668.se> <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz>
To: Ladislav Lhotka <ladislav.lhotka@nic.cz>
X-Mailer: Apple Mail (2.3654.40.0.2.32)
X-Provags-ID: V03:K1:6cr4y+SBfSKeY0f+aBpiQc8es/Zkj9g18D/1oRVZnavtsu7BpKm 4YAmivCSRB5YnwcwB57eR4tn+UuOFYeeV17aCDYhz5pdqmDBIY6Q+4ynPL98ZlAv0GowuPY qCds3LVAX95LJyiy8L7uzmCJ0hQ8Q6rAMGZ2g2gjfUQkwbNdD4W/QBXwJfVWGoluRMK16lo oXFNJYi0OxKHgjbNft/Hw==
X-UI-Out-Filterresults: notjunk:1;V03:K0:QxO/WT1eNKI=:kYo6EULCUsT+OwL/F7dlyn IgNCLhJk8rj2f5fN/Mw4ZZRRVehKbGb51993UJv7itwxYFMAIXaPCJcSRKfF4r0HYvih/uwVp VTY8tu5wW6H2F7wcTeRQBexM3oh3/7zM2+Wm0Bc1Td6TyDMHkNKFIAbGLoCkaLMDEkcJGw2x5 OEY7DZQDvEOhLeOEtbsj5dlXGhWWNR1rHFyfE8g9prTUVgGPF9B/GCrdN2gYZk6SfU32Mx4Ai VDJtHLtlxT/8oWE4Ri0wbks5zF9sm8UK7hQv0YjYNEUEbrAMuoAW7oSKO11euzPF9l00CP6Up vK8eYPE8zq9JysVDSc+xLYWTv5GLtnOyQ0C1SFzgVAofLKKqOslNxGPoZw3MOsHMYznRP5IX8 dFy1QqhaTlK3kte/W/iE/uFNa6ur7pjV4kik5HeTnSs36h/Fu8cwFGUo+rPLVYRyHZ/I+Pcug yVv5Ie4lr1wvA/tF3BaL6FeVkiMeyP7Vx4uccCqzDYhK8mapL66qHvzyODtC5DaONjjS3EwTM CzWL9f7VR2WHpsESuvkiSUtU/LQdSNEe0CtmZGbgDwwTpzXaCJTruv8GUSzZeOx4IeHrj4rQ3 gNmFZoOE7RbMHYL5I/kjwpgKX13PWp1zSdPQIRWwtEAvQO9KNncG3gZk1jOwERv0En7KEOGAw k6J1Ayyy3SZ9Ese1ZD74JcVIlpEM/ZjdoOPUvMANrb0KyYRLgIO3RwPszd3f1BHn7I6sO+PrD GmcP5PvhViRn8mN5S76Q5I+8g/KLVf8jC+Kzxk/QiMNxSWtLe4RpNN6E2m545+jO00rsFsssV xWpD+lwzU+hPuKdBNsmmuS0kYQ1TABS/6Shlio0zZuB/VQz4EqxGHGuR1uWXSX9YxFZ0KN3Aw xX/Z6LotlGsQ4frJDICg==
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/IBbjqoHcI1vGYbCcw6s_yJvFKx4>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jan 2021 16:29:43 -0000

Hi,

Thanks for all your input on the question. Based on Martin=E2=80=99s =
proposal, combining the element modules with their associated options =
modules, and moving duplicate option definitions into the common module =
(resulting in 4 modules), here=E2=80=99s some very rough calculations on =
the resulting amount of overlap:

Ietf-dhcpv6-server (total size including unique option definitions, 809 =
lines) uses 120 lines from ietf-dhcpv6-common
Ietf-dhcpv6-client (562 lines) uses 120 lines from common
Ietf-dhcpv6-relay (576 lines) uses 15 lines from common

Given this, I would propose following this approach. Does this look =
reasonable?

Point taken about the rfc numbers in naming the modules. I=E2=80=99ll =
look for a better way of naming them.

Thanks,
Ian

> On 21. Jan 2021, at 13:58, Ladislav Lhotka <ladislav.lhotka@nic.cz> =
wrote:
>=20
> Hi,
>=20
> in my YD review 4.5 years ago I actually recommended to use separate
> modules:
>=20
> =
https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_ICr=
KPs4/
>=20
> I think it is a matter of how much the different part overlap. For an
> implementer, it seems to be easier to pick just the relevant parts,
> provided they are easy to locate and identify.
>=20
> Lada
>=20
> On 21. 01. 21 13:42, Martin Bj=C3=B6rklund wrote:
>> Hi,
>>=20
>> I think it is a matter of taste and perhaps future extensibility if
>> this model is done as one or more YANG modules.  It can certainly be
>> done in one module, with features for client, server and relay, but =
it
>> is also ok to have 3 modules for the different functions.  And once
>> you have these 3 modules, it is natural to have a "common" module,
>> leading to 4 modules.  In order to keep the number of modules down,
>> perhaps the various -options modules could be merged into the other
>> 3, probably with a feature each.
>>=20
>> One comment is that it might be wise to avoid having a rfc number in
>> the identifier.  What happens if/when that RFC is revised for any
>> reason?
>>=20
>>=20
>> /martin
>>=20
>>=20
>> tom petch <ietfc@btconnect.com> wrote:
>>>=20
>>> Inline <tp>
>>>=20
>>> From: Andy Bierman <andy@yumaworks.com>
>>> Sent: 20 January 2021 18:32
>>>=20
>>> On Wed, Jan 20, 2021 at 8:41 AM tom petch =
<ietfc@btconnect.com<mailto:ietfc@btconnect.com>> wrote:
>>> Juergen, Lada, Martin, Andy
>>>=20
>>> I wonder if one of you, or perhaps another on this list, would be =
willing to give advice on the
>>> structuring of  the YANG module for DHCP.  It has been revised and =
restructured several times and, to me, is not progressing.
>>>=20
>>> It models three roles - client, server, relay - and a dozen optional =
function which can appear in one or more roles.  A node will likely have =
only one role but may have many options.
>>>=20
>>> There are, at present, seven modules
>>> server which defines a server identity  based on common identity =
inter alia
>>> relay which defines relay identity ditto
>>> client which defines client identity ditto
>>> server options which has groupings for each option for a server
>>> client options which has groupings for each option for a relay
>>> relay options which has groupings for each option for a client
>>> common which defines the common identity inter alia
>>> Since options are common across roles, some groupings are replicated =
in the three options modules.  Three separate option modules were =
created to avoid problems with imports as Ian explains below.  The I-D =
is draft-ietf-dhc-dhcpv6-yang
>>>=20
>>> My take is that one module is best, using 'when' or if-feature to =
select, which is what I see with OSPF, PCE, TCP, IGMP and almost =
everything else but am struggling to convince others, especially  the =
author Ian.  [IF] in the e-mail extract below
>>>=20
>>> I suggested asking a YANG Doctor, NOT to look at the module but =
rather to advise on a structure given the requirements to which Ian said =
that he had not had much joy with YANG Doctors.  I append our most =
recent exchange in which he responds to my query as to why there are =
seven modules; formatting is a bit of a mess I am afraid.  The posts are =
to the DHCWG mail list.
>>>=20
>>> Any advice appreciated even if it is that Ian is on just the right =
track!
>>>=20
>>>=20
>>> Either approach is valid so multi-module vs. single module w/ =
features is more
>>> of an overall system maintenance issue.  7 modules seems like a lot =
for DHCP but
>>> I have no objective criteria to back that up.
>>>=20
>>> There is some confusion about the import-stmt, which leads to many =
YANG modules.
>>> In compiler terms, importing a module merely makes the symbols =
available for parsing in the current module.
>>> The import-stmt implies no conformance requirements whatsoever.
>>> Only statements that use the imported module can do that.
>>> (So a server module importing a module that has client groupings is =
not actually a problem.)
>>>=20
>>> <tp>
>>>=20
>>> Andy, Juergen,
>>>=20
>>> Thank you for the replies.  What Ian said about the import is
>>>=20
>>>> [IF] The separation of the option modules came at a later stage =
based on import dependencies of a single options module. When the =
options module imports the client/server/relay modules so it can augment =
the relevant module based on identity, an implementation also needs to =
import these modules and will declare them in it=E2=80=99s capabilities =
as available even though it doesn=E2=80=99t implement them. Dividing the =
options modules avoids the need for deviations.
>>>=20
>>> <tp> that is, the prefix for dhcpv6-server is defined in the server =
module,
>>>   module ietf-dhcpv6-server {
>>> ...
>>>     prefix "dhcpv6-server";
>>> ...
>>>     identity server {
>>>       base "dhcpv6-common:dhcpv6-node";
>>>       description "DHCPv6 server identity.";      }
>>>     leaf dhcpv6-node-type {
>>>       type identityref {
>>>         base "dhcpv6-common:dhcpv6-node";        }
>>>       description "Type for a DHCPv6 server.";     }
>>>=20
>>> and the prefix for dhcpv6-relay in the relay module etc so having a =
single module for options which needs to augment options to the server =
module needs to import the server module so that the dhcpv6-server =
prefix is defined, ditto relay and client so the single module for =
options then imports server and relay and client modules.
>>>=20
>>> With three options modules, each only imports one of server, relay, =
client but the groupings are then replicated across the three options =
modules.
>>>=20
>>> Logical if you agree with the initial premise (which I do not!).=20
>>>=20
>>> The seven YANG modules are all in the one I-D of 56pp with the tree =
diagrams 12pp.
>>>=20
>>> Tom Petch
>>> (on European time:-(
>>>=20
>>> YANG Conformance for a single module is better defined than for =
multiple related modules.
>>> The YANG Packages work could fix that someday.
>>>=20
>>> Tom Petch
>>>=20
>>>=20
>>> Andy
>>>=20
>>>=20
>>> On 19/01/2021 11:25, tom petch wrote:
>>>> ________________________________________
>>>> From: dhcwg <dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> =
on behalf of ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> =
<ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>>
>>>> Sent: 19 January 2021 07:37
>>>>=20
>>>> Thanks for your comments. Please see inline below.
>>>>=20
>>>> Ian
>>>>=20
>>>> On 14. Jan 2021, at 13:40, t petch =
<ietfa@btconnect.com<mailto:ietfa@btconnect.com><mailto:ietfa@btconnect.co=
m<mailto:ietfa@btconnect.com>>> wrote:
>>>>=20
>>>> Ian
>>>>=20
>>>> I do not understand this I-D; I have tracked it for a number of =
years and my understanding of it is diminishing.
>>>>=20
>>>> Currently, it is seven YANG modules: why?
>>>>=20
>>>> [if - The separation into client/server/relay, and DHCP options has =
been in the draft since -05 and the changes were presented and discussed =
at IETF101 - I=E2=80=99ve described the reasoning for this split in the =
next answer. Beyond that, the common module was added to avoid (well =
reduce as you point out below) duplication.
>>>>=20
>>>> The separation of the option modules came at a later stage based on =
import dependencies of a single options module. When the options module =
imports the client/server/relay modules so it can augment the relevant =
module based on identity, an implementation also needs to import these =
modules and will declare them in it=E2=80=99s capabilities as available =
even though it doesn=E2=80=99t implement them. Dividing the options =
modules avoids the need for deviations.
>>>>=20
>>>> Even though there are 7 modules defined here, the likely hood is =
that an element implementation would require 3 modules to be implemented =
(e.g. client, common and client options).]
>>>>=20
>>>> [tp] Other WG have models with multiple roles and many options and =
have a single YANG module, using the features of YANG to tailor the =
module to different configurations.
>>>>=20
>>>> [if - It=E2=80=99s not really tailoring the module to different =
configurations, they are for the most part separate functional elements =
in the network with any device only implementing one of the client, =
relay or server functions.
>>>>=20
>>>> However, even in the case that a device is both a server and a =
client (e.g. a home gateway with a client on the WAN and a server on the =
LAN), the likelihood is that these will be done using different software =
implementations, so having separate modules for server and client offers =
implementation flexibility.
>>>>=20
>>>> In the case of a monolithic module with the relevant =
client/relay/server functionality enabled by features, the module would =
do nothing unless one or more of the features was enabled, and Is =
unlikely that you=E2=80=99d ever enable more than one. Is this approach =
used by other WGs? Could you point me to some some examples as I've only =
seen features been used as relatively small optional extensions used =
when the bulk of the nodes are common?]
>>>=20
>>> [tp]
>>> Ian
>>>=20
>>> Almost all the YANG models I know of are single module.  For =
example,
>>> draft-ietf-ospf-yang supports two versions modelled as identity and =
28
>>> options modelled as features.
>>>=20
>>> draft-ietf-tcpm-yang supports client and server as containers with
>>> if-feature and has other features as well
>>>=20
>>> draft-ietf-pim-igmp-mld-yang supports five versions of two protocol
>>> using identity
>>>=20
>>> draft-pce-pcep-yang offers the roles of pcc or pce or both using =
typedef.
>>>=20
>>> And so on and so on.  if-feature, when and suchlike provide the
>>> necessary customisation.
>>>=20
>>> I think that your problems with options are because the identity are
>>> defined in the wrong place.  The base, the common module (or part of =
the
>>> one and only module) should define what is common, what everyone =
needs;
>>> if there are three roles and a dozen options, than that is where =
they
>>> need to be defined.
>>>=20
>>> Then there can be an object which is configured with the roles of a
>>> particular box, client or server or relay, or if required, a =
combination
>>> of the there - simpler if that is out of scope as you suggest.
>>>=20
>>> My starting point would be a dhc container with a leaf for a role =
and then
>>> containers for client, relay, server, added by augment and =
controlled by
>>> when pointing at the role.
>>>=20
>>> I will post something to the netmod WG list - there are lots of =
people
>>> there with greater exposure than mine who can give better guidance =
than I.
>>>=20
>>> Tom Petch
>>>=20
>>>> Here you have modelled the options as YANG grouping. The intent of =
a grouping is to provide a block of statements that can be reused so =
avoiding duplication with the attendant problems.  Here you have the =
same grouping in triplicate in three different YANG modules which seems =
to me to be the antithesis of a grouping.
>>>>=20
>>>> [If - We could move the option definitions for =
"status-code-option-group=E2=80=9D (client, server, relay) and =
=E2=80=9Crapid-commit-option-group, =
vendor-specific-information-option-group; =
reconfigure-accept-option-group=E2=80=9D (client, server) into the =
common module to resolve the duplication. I didn=E2=80=99t do this =
previously as the intention was to keep options definitions in the =
options modules for consistency, but it  would be simple to change. ]
>>>>=20
>>>> [tp] Likewise I find the specification of server v client v relay =
unusual.
>>>>=20
>>>> [If - A similar approach for separated client/server modules is =
also used in RFC8676, where the client and server have discrete =
function, as with DHCP.]
>>>>=20
>>>> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show =
them the YANG and invite comments, rather outline in an abstract way =
what it is you want to model and see what they suggest; that might well =
be a single YANG module.
>>>>=20
>>>> [if - Yes, I=E2=80=99d be happy to. Is there someone that you have =
in mind (I=E2=80=99ve not had much luck with getting YANG doctor input =
outside of the formal review process in the past)?. I=E2=80=99m not =
opposed to changing the way that the modules are structured on =
principal, I do however, think that the separation by functional element =
is logical and simpler for implementers, and I would like to know what =
the benefits of a single module (or other structure) might be.]
>>>>=20
>>>> [tp]I do have quite a number of detailed comments but do not think =
them worth making until the I-D seems to me more stable.
>>>>=20
>>>> [if - It=E2=80=99d be great if you could supply them as well so I =
can start going though them and fixing what=E2=80=99s currently fixable =
in parallel to the discussion above.]
>>>>=20
>>>> Tom Petch
>>>>=20
>>>> On 07/01/2021 16:10, =
ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mailto:ianfarrer@gmx.com<mailt=
o:ianfarrer@gmx.com>> wrote:
>>>> Hi Tom,
>>>>=20
>=20
> --=20
> Ladislav Lhotka
> Head, CZ.NIC Labs
> PGP Key ID: 0xB8F92B08A9F76C67


From nobody Thu Jan 21 08:59:53 2021
Return-Path: <ietfc@btconnect.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E73663A12D6 for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 08:59:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=btconnect.onmicrosoft.com
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 pkhWoZn0APDd for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 08:59:49 -0800 (PST)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2097.outbound.protection.outlook.com [40.107.22.97]) (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 F38E53A12D4 for <netmod@ietf.org>; Thu, 21 Jan 2021 08:59:48 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B3kXTgJeyCjN2XZABvktjWqdBaRdZfD6HaRFIf9X+UNZ2WQ/Obap+UMptC+QcPyt3/Duj5zWxsg80VaIFM4XIsD4UhO5q1J1+WmFxGEF+ZSgzgVf6SjMNegxN55jHM3L+p2+UEK5fDgAxEflK+vRkuwjYPva5kuSHCpLGLMzmrq3LWsyClWtoLLxGIkjYgCqisXlOO4guYJiz0psgE4LlwYsrWvDOEMPqje6dScJBZDSLQNpx0f85d/NfZRosVYCKqE23nSWMnb+GmPamhBnrZbNjJkChPVrdA1xa2j3iWMCA5LWVa1Y8r46ZVCIAHojTCDoYaOpdbxrAGiNVsqa/g==
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=e/B18l3bpiF06kXh34Y5Vv1k3fNCmNTWkbZ3OYbrPuA=; b=FcY4IxcgGWqT2qCtmkapYJqEY9FOPcTmxnFupymP1WvqdBEGa3eJYZ6GyMuFTkSr2oUPpUXnYF+Cpu8eGkcffrU3jpFytdaG4cXz57KyRgXRWyKNPD2yMntibdwGUH2bkFN/t8j5csLi5MNkUTihsMDcyIEdo/lR6EFnGjCoRGvSj792WRAnG1eTWaYYzqZ2w+10ra5sIKq/qEK+oS18c1HP7o8SnLiMv3idzCgj1ALUAoiUnLtUC37QnKmp+/t/Mh/DMJ66We6BJnyrcvs/9mWAlF2wW26m+YcK3Jf2fMJafOYVCpTvbKwHaQR4FQYin42Gxh7oMm33l/PGI5dVuw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=btconnect.com; dmarc=pass action=none header.from=btconnect.com; dkim=pass header.d=btconnect.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector2-btconnect-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e/B18l3bpiF06kXh34Y5Vv1k3fNCmNTWkbZ3OYbrPuA=; b=mZit+Obx5hXc8RhsdrDsngnBvQFPC36fY6IqmIcemBiGwbRO9uCWXjLjwrDGgCOTQkQw0QKRNtm9pqHH31+S2DEWY5yr3Xp1+qi+Qzu9wybVI9XEQhYDyvE6rw9KESoBiVW+AKs3WKsfHQrP1oJmlNVgTdklALgPjvx9twTVcmc=
Received: from (2603:10a6:20b:134::11) by AM6PR07MB5320.eurprd07.prod.outlook.com (2603:10a6:20b:3c::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.7; Thu, 21 Jan 2021 16:59:46 +0000
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::6d46:4f3c:643:4849]) by AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::6d46:4f3c:643:4849%5]) with mapi id 15.20.3763.014; Thu, 21 Jan 2021 16:59:46 +0000
From: tom petch <ietfc@btconnect.com>
To: Ladislav Lhotka <ladislav.lhotka@nic.cz>, =?Windows-1252?Q?Martin_Bj=F6rklund?= <mbj+ietf@4668.se>
CC: "andy@yumaworks.com" <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>, "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>, "ianfarrer@gmx.com" <ianfarrer@gmx.com>
Thread-Topic: Structuring a DHCP module
Thread-Index: AQHW70sVzeGJg/CSikuUFwnormzctaow1pyAgAEdNOWAABNGgIAABKIAgAA9LPI=
Date: Thu, 21 Jan 2021 16:59:46 +0000
Message-ID: <AM7PR07MB62480EF0BDB11B95820598EEA0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
References: <AM7PR07MB6248BC693F7056249D29CF16A0A20@AM7PR07MB6248.eurprd07.prod.outlook.com> <CABCOCHTexq8SBCE5=9fGuqYQ5fQWVvu+R1jN9V-Mg+pPUq0RZA@mail.gmail.com> <AM7PR07MB624877D5F864EF3F3D9171E1A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <20210121.134211.1244086498697136841.id@4668.se>, <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz>
In-Reply-To: <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: nic.cz; dkim=none (message not signed) header.d=none;nic.cz; dmarc=none action=none header.from=btconnect.com;
x-originating-ip: [86.146.121.140]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: ada42368-fc69-4520-45dd-08d8be2df4e4
x-ms-traffictypediagnostic: AM6PR07MB5320:
x-microsoft-antispam-prvs: <AM6PR07MB532041BCB9990818B22B2140A0A10@AM6PR07MB5320.eurprd07.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: Yi0U6CjRMhcVx0XwM4jz5DnuLD62sbla4LcSgqnT4nwV+VHeBm3EAt1lO4n+e4/zQ5TO7jFt7jVgLyllnhM1MrGU8PLOp0UbvEx+YskOw63gsiGYNkHMC1atC+CXQZZRFYK9CUysxrOExOBfGhIp7Rfw0IKxfCju1V6MDIcTqTNgTeDatOtvUwGwqjNw2Wze6IZ9vUdBv7iIpy3igi00qEyvU/OjjpM69pCVntsuQLD9ofksE6b6xFzZMBJVp6bR289ZAZpMyqEVvrij96YyhuVRyq15dLo4ejzRDRUtNNW1MSOgkMU8U0JGvkZ+5Ffh0TWAB/pI6f3520IeqhCG4BVnRtGTjPMhKzn1+IeuvaQRDzpo3ZN0AYGZtDL1KUzaD/XrpNHuUSZBtOhelPxH9mpp3dYk7qsGikuRmjgHO26turxBJ/mUUlEppvD4e1oAEaS9WpoYcCGBP/yinjHpqOYq6W4ruqo7vmRIic5Yp6FSIiu68HGxwmnMZ/JcnlrtaKu+TIBeNZkUzr9wIi5czQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:AM7PR07MB6248.eurprd07.prod.outlook.com; PTR:; CAT:NONE;  SFS:(396003)(39860400002)(366004)(346002)(136003)(376002)(52536014)(76116006)(186003)(66574015)(4326008)(5660300002)(7696005)(3480700007)(26005)(66446008)(66946007)(54906003)(9686003)(64756008)(66556008)(966005)(66476007)(110136005)(83380400001)(71200400001)(86362001)(91956017)(8936002)(33656002)(478600001)(53546011)(2906002)(8676002)(6506007)(55016002)(30864003)(316002)(518174003); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?Windows-1252?Q?ThyTQWQvmSlSjKRfMDZ1npMEFTvHkAKthAG73lFE6IyXR1booGBjTrLd?= =?Windows-1252?Q?R4xOIfnQGzdTYO2IeM89WA1KJty76GvjA+xqk7RAScR8GfjSRkn9Jjzq?= =?Windows-1252?Q?OqFjgboEUTK7C7Ivat1NV4t4X0aWbG5mdHI20BMoDsi9LjTcPprnrbNF?= =?Windows-1252?Q?MwCqf/2sL/zdXuRWdpHUqnAeL8Eq0EbvQugB8qHr7MXPdW7QeVRu+gLz?= =?Windows-1252?Q?Rox74ky6iEJ6qoSDzeTrfz4mdRZz2exuu9U3RIAYQUkcRmd9fBYK64BV?= =?Windows-1252?Q?xIeywT59h/BVSytG5hZ5B80sVDQSeY99bfnf7Y/TbuluPpN/4rtA6WYG?= =?Windows-1252?Q?77auek8/BuL2TMnXFtCGy27jJdQ5xu0/tO0G9JEldP2uP44uZg24z3cV?= =?Windows-1252?Q?p76TMKZt15sz+FruhcURMy+Xz1xh5R/sJdagZ8r2APQgTYodvz+7Gbvp?= =?Windows-1252?Q?5YHzLz3whcMPNB/sn1lxlwdwu5EhR7NDb0JZ0xVwTfjXv/eJd8iREssP?= =?Windows-1252?Q?0JfnQbqVjSVxSqsSvrL13EQ+EavfYxhM4zqCHoXl6P5OTs2LQWDuwKfF?= =?Windows-1252?Q?jfud7b4XsSpeL9QLEG5k0hxShIgpUoXPSVQKgPKztLqRFYl85wTOOTKE?= =?Windows-1252?Q?VON1TFTIsZUVQ2bhxMNtDBeneyEFessIBbbrzXrYfnRXSJIhyeWEl3lG?= =?Windows-1252?Q?zITOHjU4qQnxHTWQKXkjj8+l8yhodxdio5fCobjf729Ec7HWpegO35bj?= =?Windows-1252?Q?0Ld5f/UDSHyLWBdVsgGIc4fxa4NHC5AKSJUKjnG4m1Yx/NS+tjdfttC9?= =?Windows-1252?Q?jPcQw10yLj4lolSO207Tw/ebsVxgdeN4ew6xqgBm6R7s21lYwrhXu31L?= =?Windows-1252?Q?LQEFZ2ahErhMQojXnqDzIHJTVhL7g5M21b/HO4Wsqplx9TOy21E14veK?= =?Windows-1252?Q?qH4cyDTJ21TVGeBTn4qX96n0mFgYV4xcCb1b3Rxrs/2kE12J4bw9GAXb?= =?Windows-1252?Q?hc33LjAQiz7arnwk1CeCMw85DxrUYDKD/VpNGUal2YafHjuMcWm0Oyam?= =?Windows-1252?Q?FlGLRjTcdXDSx5Qn+zG5WdUpoePV0+7C4++hLj/Bm2hVKSLvAoKl7i5M?= =?Windows-1252?Q?ZZ+OeEdE84VNYCHAYnJtEWHS?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR07MB6248.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ada42368-fc69-4520-45dd-08d8be2df4e4
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2021 16:59:46.2768 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: oHg70zqkGHSEcRbYxg+DyjAk8ZxtH24JwFHD8gv3/TdXJjOZUDovLDJsb4Ede6Ws3KLWba2ndd+xDkyhehEUSA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR07MB5320
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/vTDVLejNCJVFWf6GS8TrIGD047Q>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jan 2021 16:59:52 -0000

From: Ladislav Lhotka <ladislav.lhotka@nic.cz>=0A=
Sent: 21 January 2021 12:58=0A=
=0A=
Hi,=0A=
=0A=
in my YD review 4.5 years ago I actually recommended to use separate=0A=
modules:=0A=
=0A=
https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_ICrK=
Ps4/=0A=
=0A=
I think it is a matter of how much the different part overlap. For an=0A=
implementer, it seems to be easier to pick just the relevant parts,=0A=
provided they are easy to locate and identify.=0A=
=0A=
<tp>=0A=
Thank you for all the responses;  I did look at the data tracker to see if =
there had been any reviews, thinking that a previous review would be  the r=
ight place to start, and it said 'No reviews'!  Perhaps these time out.=0A=
=0A=
I am not comfortable with the seven modules seeing four as better, a common=
 which is then augmented with server, relay, client, with the common contai=
ning the role(s), whereas at present it is the three role modules that cont=
ain the role which then drives having the three option modules so each opti=
on module only imports one role module, and that is the bit I find most awk=
ward. =0A=
=0A=
How best to select the three roles?  As I said upthread, I have seen the ro=
le specified with features, with augment/when based on identityref (althoug=
h not with the three identity defined in the three role modules), presence =
containers and so on (I have probably seen that and more in the history of =
this I-D:-).=0A=
=0A=
My instinct would be to put the three identity definitions into common with=
 a dhcpv6 container, which is then augmented by the three role modules, the=
 YANG 'when' referring to role leaf in the common.  Any better ways?  =0A=
=0A=
Tom Petch=0A=
=0A=
Lada=0A=
=0A=
On 21. 01. 21 13:42, Martin Bj=F6rklund wrote:=0A=
> Hi,=0A=
>=0A=
> I think it is a matter of taste and perhaps future extensibility if=0A=
> this model is done as one or more YANG modules.  It can certainly be=0A=
> done in one module, with features for client, server and relay, but it=0A=
> is also ok to have 3 modules for the different functions.  And once=0A=
> you have these 3 modules, it is natural to have a "common" module,=0A=
> leading to 4 modules.  In order to keep the number of modules down,=0A=
> perhaps the various -options modules could be merged into the other=0A=
> 3, probably with a feature each.=0A=
>=0A=
> One comment is that it might be wise to avoid having a rfc number in=0A=
> the identifier.  What happens if/when that RFC is revised for any=0A=
> reason?=0A=
>=0A=
>=0A=
> /martin=0A=
>=0A=
>=0A=
> tom petch <ietfc@btconnect.com> wrote:=0A=
>>=0A=
>> Inline <tp>=0A=
>>=0A=
>> From: Andy Bierman <andy@yumaworks.com>=0A=
>> Sent: 20 January 2021 18:32=0A=
>>=0A=
>> On Wed, Jan 20, 2021 at 8:41 AM tom petch <ietfc@btconnect.com<mailto:ie=
tfc@btconnect.com>> wrote:=0A=
>> Juergen, Lada, Martin, Andy=0A=
>>=0A=
>> I wonder if one of you, or perhaps another on this list, would be willin=
g to give advice on the=0A=
>> structuring of  the YANG module for DHCP.  It has been revised and restr=
uctured several times and, to me, is not progressing.=0A=
>>=0A=
>> It models three roles - client, server, relay - and a dozen optional fun=
ction which can appear in one or more roles.  A node will likely have only =
one role but may have many options.=0A=
>>=0A=
>> There are, at present, seven modules=0A=
>> server which defines a server identity  based on common identity inter a=
lia=0A=
>> relay which defines relay identity ditto=0A=
>> client which defines client identity ditto=0A=
>> server options which has groupings for each option for a server=0A=
>> client options which has groupings for each option for a relay=0A=
>> relay options which has groupings for each option for a client=0A=
>> common which defines the common identity inter alia=0A=
>> Since options are common across roles, some groupings are replicated in =
the three options modules.  Three separate option modules were created to a=
void problems with imports as Ian explains below.  The I-D is draft-ietf-dh=
c-dhcpv6-yang=0A=
>>=0A=
>> My take is that one module is best, using 'when' or if-feature to select=
, which is what I see with OSPF, PCE, TCP, IGMP and almost everything else =
but am struggling to convince others, especially  the author Ian.  [IF] in =
the e-mail extract below=0A=
>>=0A=
>> I suggested asking a YANG Doctor, NOT to look at the module but rather t=
o advise on a structure given the requirements to which Ian said that he ha=
d not had much joy with YANG Doctors.  I append our most recent exchange in=
 which he responds to my query as to why there are seven modules; formattin=
g is a bit of a mess I am afraid.  The posts are to the DHCWG mail list.=0A=
>>=0A=
>> Any advice appreciated even if it is that Ian is on just the right track=
!=0A=
>>=0A=
>>=0A=
>> Either approach is valid so multi-module vs. single module w/ features i=
s more=0A=
>> of an overall system maintenance issue.  7 modules seems like a lot for =
DHCP but=0A=
>> I have no objective criteria to back that up.=0A=
>>=0A=
>> There is some confusion about the import-stmt, which leads to many YANG =
modules.=0A=
>> In compiler terms, importing a module merely makes the symbols available=
 for parsing in the current module.=0A=
>> The import-stmt implies no conformance requirements whatsoever.=0A=
>> Only statements that use the imported module can do that.=0A=
>> (So a server module importing a module that has client groupings is not =
actually a problem.)=0A=
>>=0A=
>> <tp>=0A=
>>=0A=
>> Andy, Juergen,=0A=
>>=0A=
>> Thank you for the replies.  What Ian said about the import is=0A=
>>=0A=
>>> [IF] The separation of the option modules came at a later stage based o=
n import dependencies of a single options module. When the options module i=
mports the client/server/relay modules so it can augment the relevant modul=
e based on identity, an implementation also needs to import these modules a=
nd will declare them in it=92s capabilities as available even though it doe=
sn=92t implement them. Dividing the options modules avoids the need for dev=
iations.=0A=
>>=0A=
>> <tp> that is, the prefix for dhcpv6-server is defined in the server modu=
le,=0A=
>>    module ietf-dhcpv6-server {=0A=
>> ...=0A=
>>      prefix "dhcpv6-server";=0A=
>> ...=0A=
>>      identity server {=0A=
>>        base "dhcpv6-common:dhcpv6-node";=0A=
>>        description "DHCPv6 server identity.";      }=0A=
>>      leaf dhcpv6-node-type {=0A=
>>        type identityref {=0A=
>>          base "dhcpv6-common:dhcpv6-node";        }=0A=
>>        description "Type for a DHCPv6 server.";     }=0A=
>>=0A=
>> and the prefix for dhcpv6-relay in the relay module etc so having a sing=
le module for options which needs to augment options to the server module n=
eeds to import the server module so that the dhcpv6-server prefix is define=
d, ditto relay and client so the single module for options then imports ser=
ver and relay and client modules.=0A=
>>=0A=
>> With three options modules, each only imports one of server, relay, clie=
nt but the groupings are then replicated across the three options modules.=
=0A=
>>=0A=
>> Logical if you agree with the initial premise (which I do not!).=0A=
>>=0A=
>> The seven YANG modules are all in the one I-D of 56pp with the tree diag=
rams 12pp.=0A=
>>=0A=
>> Tom Petch=0A=
>> (on European time:-(=0A=
>>=0A=
>> YANG Conformance for a single module is better defined than for multiple=
 related modules.=0A=
>> The YANG Packages work could fix that someday.=0A=
>>=0A=
>> Tom Petch=0A=
>>=0A=
>>=0A=
>> Andy=0A=
>>=0A=
>>=0A=
>> On 19/01/2021 11:25, tom petch wrote:=0A=
>>> ________________________________________=0A=
>>> From: dhcwg <dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> on =
behalf of ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> <ianfarrer@gmx.com<ma=
ilto:ianfarrer@gmx.com>>=0A=
>>> Sent: 19 January 2021 07:37=0A=
>>>=0A=
>>> Thanks for your comments. Please see inline below.=0A=
>>>=0A=
>>> Ian=0A=
>>>=0A=
>>> On 14. Jan 2021, at 13:40, t petch <ietfa@btconnect.com<mailto:ietfa@bt=
connect.com><mailto:ietfa@btconnect.com<mailto:ietfa@btconnect.com>>> wrote=
:=0A=
>>>=0A=
>>> Ian=0A=
>>>=0A=
>>> I do not understand this I-D; I have tracked it for a number of years a=
nd my understanding of it is diminishing.=0A=
>>>=0A=
>>> Currently, it is seven YANG modules: why?=0A=
>>>=0A=
>>> [if - The separation into client/server/relay, and DHCP options has bee=
n in the draft since -05 and the changes were presented and discussed at IE=
TF101 - I=92ve described the reasoning for this split in the next answer. B=
eyond that, the common module was added to avoid (well reduce as you point =
out below) duplication.=0A=
>>>=0A=
>>> The separation of the option modules came at a later stage based on imp=
ort dependencies of a single options module. When the options module import=
s the client/server/relay modules so it can augment the relevant module bas=
ed on identity, an implementation also needs to import these modules and wi=
ll declare them in it=92s capabilities as available even though it doesn=92=
t implement them. Dividing the options modules avoids the need for deviatio=
ns.=0A=
>>>=0A=
>>> Even though there are 7 modules defined here, the likely hood is that a=
n element implementation would require 3 modules to be implemented (e.g. cl=
ient, common and client options).]=0A=
>>>=0A=
>>> [tp] Other WG have models with multiple roles and many options and have=
 a single YANG module, using the features of YANG to tailor the module to d=
ifferent configurations.=0A=
>>>=0A=
>>> [if - It=92s not really tailoring the module to different configuration=
s, they are for the most part separate functional elements in the network w=
ith any device only implementing one of the client, relay or server functio=
ns.=0A=
>>>=0A=
>>> However, even in the case that a device is both a server and a client (=
e.g. a home gateway with a client on the WAN and a server on the LAN), the =
likelihood is that these will be done using different software implementati=
ons, so having separate modules for server and client offers implementation=
 flexibility.=0A=
>>>=0A=
>>> In the case of a monolithic module with the relevant client/relay/serve=
r functionality enabled by features, the module would do nothing unless one=
 or more of the features was enabled, and Is unlikely that you=92d ever ena=
ble more than one. Is this approach used by other WGs? Could you point me t=
o some some examples as I've only seen features been used as relatively sma=
ll optional extensions used when the bulk of the nodes are common?]=0A=
>>=0A=
>> [tp]=0A=
>> Ian=0A=
>>=0A=
>> Almost all the YANG models I know of are single module.  For example,=0A=
>> draft-ietf-ospf-yang supports two versions modelled as identity and 28=
=0A=
>> options modelled as features.=0A=
>>=0A=
>> draft-ietf-tcpm-yang supports client and server as containers with=0A=
>> if-feature and has other features as well=0A=
>>=0A=
>> draft-ietf-pim-igmp-mld-yang supports five versions of two protocol=0A=
>> using identity=0A=
>>=0A=
>> draft-pce-pcep-yang offers the roles of pcc or pce or both using typedef=
.=0A=
>>=0A=
>> And so on and so on.  if-feature, when and suchlike provide the=0A=
>> necessary customisation.=0A=
>>=0A=
>> I think that your problems with options are because the identity are=0A=
>> defined in the wrong place.  The base, the common module (or part of the=
=0A=
>> one and only module) should define what is common, what everyone needs;=
=0A=
>> if there are three roles and a dozen options, than that is where they=0A=
>> need to be defined.=0A=
>>=0A=
>> Then there can be an object which is configured with the roles of a=0A=
>> particular box, client or server or relay, or if required, a combination=
=0A=
>> of the there - simpler if that is out of scope as you suggest.=0A=
>>=0A=
>> My starting point would be a dhc container with a leaf for a role and th=
en=0A=
>> containers for client, relay, server, added by augment and controlled by=
=0A=
>> when pointing at the role.=0A=
>>=0A=
>> I will post something to the netmod WG list - there are lots of people=
=0A=
>> there with greater exposure than mine who can give better guidance than =
I.=0A=
>>=0A=
>> Tom Petch=0A=
>>=0A=
>>> Here you have modelled the options as YANG grouping. The intent of a gr=
ouping is to provide a block of statements that can be reused so avoiding d=
uplication with the attendant problems.  Here you have the same grouping in=
 triplicate in three different YANG modules which seems to me to be the ant=
ithesis of a grouping.=0A=
>>>=0A=
>>> [If - We could move the option definitions for "status-code-option-grou=
p=94 (client, server, relay) and =93rapid-commit-option-group, vendor-speci=
fic-information-option-group; reconfigure-accept-option-group=94 (client, s=
erver) into the common module to resolve the duplication. I didn=92t do thi=
s previously as the intention was to keep options definitions in the option=
s modules for consistency, but it  would be simple to change. ]=0A=
>>>=0A=
>>> [tp] Likewise I find the specification of server v client v relay unusu=
al.=0A=
>>>=0A=
>>> [If - A similar approach for separated client/server modules is also us=
ed in RFC8676, where the client and server have discrete function, as with =
DHCP.]=0A=
>>>=0A=
>>> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show them =
the YANG and invite comments, rather outline in an abstract way what it is =
you want to model and see what they suggest; that might well be a single YA=
NG module.=0A=
>>>=0A=
>>> [if - Yes, I=92d be happy to. Is there someone that you have in mind (I=
=92ve not had much luck with getting YANG doctor input outside of the forma=
l review process in the past)?. I=92m not opposed to changing the way that =
the modules are structured on principal, I do however, think that the separ=
ation by functional element is logical and simpler for implementers, and I =
would like to know what the benefits of a single module (or other structure=
) might be.]=0A=
>>>=0A=
>>> [tp]I do have quite a number of detailed comments but do not think them=
 worth making until the I-D seems to me more stable.=0A=
>>>=0A=
>>> [if - It=92d be great if you could supply them as well so I can start g=
oing though them and fixing what=92s currently fixable in parallel to the d=
iscussion above.]=0A=
>>>=0A=
>>> Tom Petch=0A=
>>>=0A=
>>> On 07/01/2021 16:10, ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mailto=
:ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>> wrote:=0A=
>>> Hi Tom,=0A=
>>>=0A=
=0A=
--=0A=
Ladislav Lhotka=0A=
Head, CZ.NIC Labs=0A=
PGP Key ID: 0xB8F92B08A9F76C67=0A=


From nobody Thu Jan 21 09:08:06 2021
Return-Path: <mbj+ietf@4668.se>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CD3F23A017E for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 09:08:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.123
X-Spam-Level: 
X-Spam-Status: No, score=-0.123 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, PDS_NAKED_TO_NUMERO=1.997, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=4668.se header.b=dyK2sbrq; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=nvw+WEIc
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 0JTcYVV8str2 for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 09:08:02 -0800 (PST)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9450A3A02BC for <netmod@ietf.org>; Thu, 21 Jan 2021 09:08:02 -0800 (PST)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 127505C01D6; Thu, 21 Jan 2021 12:08:01 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Thu, 21 Jan 2021 12:08:01 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=4668.se; h=date :message-id:to:cc:subject:from:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=fm3; bh= SlRCYGY4pgeyOImOmcIcVpVttgTfJRvnwL+2gbPI7FU=; b=dyK2sbrqs0bKJnOf qLZkpZoc70eE3+iOv7yC8+suP3v+FGx2VG2HV9NZCVEp7VyyNL1JSMQvDKQsv8TJ 4glaGk6TtF6hDnDe9MCWqs+ho9tPARW0m3713LI2mkjXi8wl2MJgJodnSn5KU8iW 6JLcVoeBT8f9sRc/bQWxU2lAe2QdXaRR5uWVWIpj3U7ReJoUn0TZoE0c8FNJCFgY qe6wqrTmoJbP8bWjFEhUfOKdUeKDqiPtq4Whoojlc2BarrI2pGOCFubjPxMrmIbY 6a09C+jhFplC9mgLA0Mg6WU9nQrCvUBIHmuMo284vKScWSu30mylfz5BEiMR5C4l MOH4cQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=SlRCYGY4pgeyOImOmcIcVpVttgTfJRvnwL+2gbPI7 FU=; b=nvw+WEIcvsM8tuhyiHrv5AyDHl9bM/GE/NrIt5KYXBRpSj48XxvSn4yvI tbfO7g4nFnrmyBfWsSFPA0hobXi8zAcdPtkgHYpnT2VY9WpT2KlTEg1yLV30ZhLU 6NlYvzMzsZ7rhqVIxlUiUNLojXGLyPhHKcLcJx5b9GTMQE9dONtokBEOQqO1GBtx DaSqtBo8ysHDeDNP6gYR+FUDs2WvcoZ+hxKLyuXF4pyfIdRzJV/yjX1Elwys8qfS n5U/8N8UeXKReCTSVBLk+66y723kqmYiZcIal49cDT+0ENDfROmxWrtW2fwxekIQ v6FLOwqtxYndXkmFx1nVksQeBURMQ==
X-ME-Sender: <xms:8LQJYAuLx4lFwVyu5s_-qaPWHOTPt7Hsftf0NDZ4uIAw_kEV-PRWgA> <xme:8LQJYBwBnkYOyQ9Uk-x93MvDLvSz1gOJKiokZTLn3kQRK0Kaqkg_DtXoiaJfA6KUD Amj-wRhwYrhKCS6zgo>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudeggddutddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpeffkffvuffhjghfofggtgfgsehtsg ertdertdejnecuhfhrohhmpeforghrthhinhcuuehjnphrkhhluhhnugcuoehmsghjodhi vghtfhesgeeiieekrdhsvgeqnecuggftrfgrthhtvghrnhepfeehkefgudekfeehieehhf ekgedvffehteevgfeffeeghfdvfeeuleduvddvgfehnecuffhomhgrihhnpehivghtfhdr ohhrghenucfkphepudehkedrudejgedrgedrvdduheenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmsghjodhivghtfhesgeeiieekrdhsvg
X-ME-Proxy: <xmx:8LQJYK5Tqi_Qgv_WZNLqNr2lYtDBuYrM2CzGpKTJkXzB1rdRN_oz6g> <xmx:8LQJYLXs7QxZK79hieRvewtpVzhc3as5nTgHFHhBCm7H_eJwnWk2zQ> <xmx:8LQJYG1vUqXJroS39ualpoky14SDThHb7C28W8A41oJW6rKt0ZXbgg> <xmx:8bQJYGFsPSvuWTydxFsw-AMa5mE3xesXFH0E5TKjHGCgmfhXwkQIOQ>
Received: from localhost (unknown [158.174.4.215]) by mail.messagingengine.com (Postfix) with ESMTPA id 3CF35108005C; Thu, 21 Jan 2021 12:07:59 -0500 (EST)
Date: Thu, 21 Jan 2021 18:07:57 +0100 (CET)
Message-Id: <20210121.180757.1756334498885863433.id@4668.se>
To: ietfc@btconnect.com
Cc: ladislav.lhotka@nic.cz, mbj+ietf@4668.se, andy@yumaworks.com, netmod@ietf.org, j.schoenwaelder@jacobs-university.de, ianfarrer@gmx.com
From: Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj+ietf@4668.se>
In-Reply-To: <AM7PR07MB62480EF0BDB11B95820598EEA0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
References: <20210121.134211.1244086498697136841.id@4668.se> <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz> <AM7PR07MB62480EF0BDB11B95820598EEA0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
X-Mailer: Mew version 6.8 on Emacs 26.3
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/tGmVaKzCjAWKfY0untQH66Ikj88>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jan 2021 17:08:05 -0000

dG9tIHBldGNoIDxpZXRmY0BidGNvbm5lY3QuY29tPiB3cm90ZToNCj4gRnJvbTogTGFkaXNsYXYg
TGhvdGthIDxsYWRpc2xhdi5saG90a2FAbmljLmN6Pg0KPiBTZW50OiAyMSBKYW51YXJ5IDIwMjEg
MTI6NTgNCj4gDQo+IEhpLA0KPiANCj4gaW4gbXkgWUQgcmV2aWV3IDQuNSB5ZWFycyBhZ28gSSBh
Y3R1YWxseSByZWNvbW1lbmRlZCB0byB1c2Ugc2VwYXJhdGUNCj4gbW9kdWxlczoNCj4gDQo+IGh0
dHBzOi8vbWFpbGFyY2hpdmUuaWV0Zi5vcmcvYXJjaC9tc2cveWFuZy1kb2N0b3JzL0dYSGtHcVpl
SWlkTXpwemlabUtfSUNyS1BzNC8NCj4gDQo+IEkgdGhpbmsgaXQgaXMgYSBtYXR0ZXIgb2YgaG93
IG11Y2ggdGhlIGRpZmZlcmVudCBwYXJ0IG92ZXJsYXAuIEZvciBhbg0KPiBpbXBsZW1lbnRlciwg
aXQgc2VlbXMgdG8gYmUgZWFzaWVyIHRvIHBpY2sganVzdCB0aGUgcmVsZXZhbnQgcGFydHMsDQo+
IHByb3ZpZGVkIHRoZXkgYXJlIGVhc3kgdG8gbG9jYXRlIGFuZCBpZGVudGlmeS4NCj4gDQo+IDx0
cD4NCj4gVGhhbmsgeW91IGZvciBhbGwgdGhlIHJlc3BvbnNlczsgIEkgZGlkIGxvb2sgYXQgdGhl
IGRhdGEgdHJhY2tlciB0byBzZWUgaWYgdGhlcmUgaGFkIGJlZW4gYW55IHJldmlld3MsIHRoaW5r
aW5nIHRoYXQgYSBwcmV2aW91cyByZXZpZXcgd291bGQgYmUgIHRoZSByaWdodCBwbGFjZSB0byBz
dGFydCwgYW5kIGl0IHNhaWQgJ05vIHJldmlld3MnISAgUGVyaGFwcyB0aGVzZSB0aW1lIG91dC4N
Cj4gDQo+IEkgYW0gbm90IGNvbWZvcnRhYmxlIHdpdGggdGhlIHNldmVuIG1vZHVsZXMgc2VlaW5n
IGZvdXIgYXMgYmV0dGVyLCBhIGNvbW1vbiB3aGljaCBpcyB0aGVuIGF1Z21lbnRlZCB3aXRoIHNl
cnZlciwgcmVsYXksIGNsaWVudCwgd2l0aCB0aGUgY29tbW9uIGNvbnRhaW5pbmcgdGhlIHJvbGUo
cyksIHdoZXJlYXMgYXQgcHJlc2VudCBpdCBpcyB0aGUgdGhyZWUgcm9sZSBtb2R1bGVzIHRoYXQg
Y29udGFpbiB0aGUgcm9sZSB3aGljaCB0aGVuIGRyaXZlcyBoYXZpbmcgdGhlIHRocmVlIG9wdGlv
biBtb2R1bGVzIHNvIGVhY2ggb3B0aW9uIG1vZHVsZSBvbmx5IGltcG9ydHMgb25lIHJvbGUgbW9k
dWxlLCBhbmQgdGhhdCBpcyB0aGUgYml0IEkgZmluZCBtb3N0IGF3a3dhcmQuIA0KPiANCj4gSG93
IGJlc3QgdG8gc2VsZWN0IHRoZSB0aHJlZSByb2xlcz8gIEFzIEkgc2FpZCB1cHRocmVhZCwgSSBo
YXZlIHNlZW4gdGhlIHJvbGUgc3BlY2lmaWVkIHdpdGggZmVhdHVyZXMsIHdpdGggYXVnbWVudC93
aGVuIGJhc2VkIG9uIGlkZW50aXR5cmVmIChhbHRob3VnaCBub3Qgd2l0aCB0aGUgdGhyZWUgaWRl
bnRpdHkgZGVmaW5lZCBpbiB0aGUgdGhyZWUgcm9sZSBtb2R1bGVzKSwgcHJlc2VuY2UgY29udGFp
bmVycyBhbmQgc28gb24gKEkgaGF2ZSBwcm9iYWJseSBzZWVuIHRoYXQgYW5kIG1vcmUgaW4gdGhl
IGhpc3Rvcnkgb2YgdGhpcyBJLUQ6LSkuDQoNCklzICJyb2xlIiB0aGUgc2FtZSBhcyAibm9kZS10
eXBlIj8gIEVhY2ggb2YgdGhlc2UgbW9kdWxlIGRlZmluZSB0aGVpcg0Kb3duIGNvcHkgb2YgYSBs
ZWFmIGNhbGxlZCAiZGhjcHY2LW5vZGUtdHlwZSIuICBJIGFtIG5vdCBzdXJlIEkNCnVuZGVyc3Rh
bmQgd2hhdCBwdXJwb3NlIHRoaXMgbGVhZiBzZXJ2ZXMuICBJdCBzZWVtcyB0byBtZSB0aGF0IGl0
IGNhbg0KYmUgcmVtb3ZlZCwgYnV0IHBlcmhhcHMgSSBhbSBtaXNzaW5nIHNvbWV0aGluZy4NCg0K
PiANCj4gTXkgaW5zdGluY3Qgd291bGQgYmUgdG8gcHV0IHRoZSB0aHJlZSBpZGVudGl0eSBkZWZp
bml0aW9ucyBpbnRvIGNvbW1vbiB3aXRoIGEgZGhjcHY2IGNvbnRhaW5lciwgd2hpY2ggaXMgdGhl
biBhdWdtZW50ZWQgYnkgdGhlIHRocmVlIHJvbGUgbW9kdWxlcywgdGhlIFlBTkcgJ3doZW4nIHJl
ZmVycmluZyB0byByb2xlIGxlYWYgaW4gdGhlIGNvbW1vbi4gIEFueSBiZXR0ZXIgd2F5cz8gIA0K
DQpXaHkgZG8gYXVnbWVudCBhdCBhbGw/ICBXaHkgbm90IGp1c3QgaGF2ZSBhIHRvcC1sZXZlbCBj
b250YWluZXIgaW4NCmVhY2ggbW9kdWxlOyAnZGhjcHY2LWNsaWVudCcsICdkaGNwdjYtc2VydmVy
JyBldGM/DQoNCg0KL21hcnRpbg0KDQoNCg0KPiANCj4gVG9tIFBldGNoDQo+IA0KPiBMYWRhDQo+
IA0KPiBPbiAyMS4gMDEuIDIxIDEzOjQyLCBNYXJ0aW4gQmrDtnJrbHVuZCB3cm90ZToNCj4gPiBI
aSwNCj4gPg0KPiA+IEkgdGhpbmsgaXQgaXMgYSBtYXR0ZXIgb2YgdGFzdGUgYW5kIHBlcmhhcHMg
ZnV0dXJlIGV4dGVuc2liaWxpdHkgaWYNCj4gPiB0aGlzIG1vZGVsIGlzIGRvbmUgYXMgb25lIG9y
IG1vcmUgWUFORyBtb2R1bGVzLiAgSXQgY2FuIGNlcnRhaW5seSBiZQ0KPiA+IGRvbmUgaW4gb25l
IG1vZHVsZSwgd2l0aCBmZWF0dXJlcyBmb3IgY2xpZW50LCBzZXJ2ZXIgYW5kIHJlbGF5LCBidXQg
aXQNCj4gPiBpcyBhbHNvIG9rIHRvIGhhdmUgMyBtb2R1bGVzIGZvciB0aGUgZGlmZmVyZW50IGZ1
bmN0aW9ucy4gIEFuZCBvbmNlDQo+ID4geW91IGhhdmUgdGhlc2UgMyBtb2R1bGVzLCBpdCBpcyBu
YXR1cmFsIHRvIGhhdmUgYSAiY29tbW9uIiBtb2R1bGUsDQo+ID4gbGVhZGluZyB0byA0IG1vZHVs
ZXMuICBJbiBvcmRlciB0byBrZWVwIHRoZSBudW1iZXIgb2YgbW9kdWxlcyBkb3duLA0KPiA+IHBl
cmhhcHMgdGhlIHZhcmlvdXMgLW9wdGlvbnMgbW9kdWxlcyBjb3VsZCBiZSBtZXJnZWQgaW50byB0
aGUgb3RoZXINCj4gPiAzLCBwcm9iYWJseSB3aXRoIGEgZmVhdHVyZSBlYWNoLg0KPiA+DQo+ID4g
T25lIGNvbW1lbnQgaXMgdGhhdCBpdCBtaWdodCBiZSB3aXNlIHRvIGF2b2lkIGhhdmluZyBhIHJm
YyBudW1iZXIgaW4NCj4gPiB0aGUgaWRlbnRpZmllci4gIFdoYXQgaGFwcGVucyBpZi93aGVuIHRo
YXQgUkZDIGlzIHJldmlzZWQgZm9yIGFueQ0KPiA+IHJlYXNvbj8NCj4gPg0KPiA+DQo+ID4gL21h
cnRpbg0KPiA+DQo+ID4NCj4gPiB0b20gcGV0Y2ggPGlldGZjQGJ0Y29ubmVjdC5jb20+IHdyb3Rl
Og0KPiA+Pg0KPiA+PiBJbmxpbmUgPHRwPg0KPiA+Pg0KPiA+PiBGcm9tOiBBbmR5IEJpZXJtYW4g
PGFuZHlAeXVtYXdvcmtzLmNvbT4NCj4gPj4gU2VudDogMjAgSmFudWFyeSAyMDIxIDE4OjMyDQo+
ID4+DQo+ID4+IE9uIFdlZCwgSmFuIDIwLCAyMDIxIGF0IDg6NDEgQU0gdG9tIHBldGNoIDxpZXRm
Y0BidGNvbm5lY3QuY29tPG1haWx0bzppZXRmY0BidGNvbm5lY3QuY29tPj4gd3JvdGU6DQo+ID4+
IEp1ZXJnZW4sIExhZGEsIE1hcnRpbiwgQW5keQ0KPiA+Pg0KPiA+PiBJIHdvbmRlciBpZiBvbmUg
b2YgeW91LCBvciBwZXJoYXBzIGFub3RoZXIgb24gdGhpcyBsaXN0LCB3b3VsZCBiZSB3aWxsaW5n
IHRvIGdpdmUgYWR2aWNlIG9uIHRoZQ0KPiA+PiBzdHJ1Y3R1cmluZyBvZiAgdGhlIFlBTkcgbW9k
dWxlIGZvciBESENQLiAgSXQgaGFzIGJlZW4gcmV2aXNlZCBhbmQgcmVzdHJ1Y3R1cmVkIHNldmVy
YWwgdGltZXMgYW5kLCB0byBtZSwgaXMgbm90IHByb2dyZXNzaW5nLg0KPiA+Pg0KPiA+PiBJdCBt
b2RlbHMgdGhyZWUgcm9sZXMgLSBjbGllbnQsIHNlcnZlciwgcmVsYXkgLSBhbmQgYSBkb3plbiBv
cHRpb25hbCBmdW5jdGlvbiB3aGljaCBjYW4gYXBwZWFyIGluIG9uZSBvciBtb3JlIHJvbGVzLiAg
QSBub2RlIHdpbGwgbGlrZWx5IGhhdmUgb25seSBvbmUgcm9sZSBidXQgbWF5IGhhdmUgbWFueSBv
cHRpb25zLg0KPiA+Pg0KPiA+PiBUaGVyZSBhcmUsIGF0IHByZXNlbnQsIHNldmVuIG1vZHVsZXMN
Cj4gPj4gc2VydmVyIHdoaWNoIGRlZmluZXMgYSBzZXJ2ZXIgaWRlbnRpdHkgIGJhc2VkIG9uIGNv
bW1vbiBpZGVudGl0eSBpbnRlciBhbGlhDQo+ID4+IHJlbGF5IHdoaWNoIGRlZmluZXMgcmVsYXkg
aWRlbnRpdHkgZGl0dG8NCj4gPj4gY2xpZW50IHdoaWNoIGRlZmluZXMgY2xpZW50IGlkZW50aXR5
IGRpdHRvDQo+ID4+IHNlcnZlciBvcHRpb25zIHdoaWNoIGhhcyBncm91cGluZ3MgZm9yIGVhY2gg
b3B0aW9uIGZvciBhIHNlcnZlcg0KPiA+PiBjbGllbnQgb3B0aW9ucyB3aGljaCBoYXMgZ3JvdXBp
bmdzIGZvciBlYWNoIG9wdGlvbiBmb3IgYSByZWxheQ0KPiA+PiByZWxheSBvcHRpb25zIHdoaWNo
IGhhcyBncm91cGluZ3MgZm9yIGVhY2ggb3B0aW9uIGZvciBhIGNsaWVudA0KPiA+PiBjb21tb24g
d2hpY2ggZGVmaW5lcyB0aGUgY29tbW9uIGlkZW50aXR5IGludGVyIGFsaWENCj4gPj4gU2luY2Ug
b3B0aW9ucyBhcmUgY29tbW9uIGFjcm9zcyByb2xlcywgc29tZSBncm91cGluZ3MgYXJlIHJlcGxp
Y2F0ZWQgaW4gdGhlIHRocmVlIG9wdGlvbnMgbW9kdWxlcy4gIFRocmVlIHNlcGFyYXRlIG9wdGlv
biBtb2R1bGVzIHdlcmUgY3JlYXRlZCB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIGltcG9ydHMgYXMg
SWFuIGV4cGxhaW5zIGJlbG93LiAgVGhlIEktRCBpcyBkcmFmdC1pZXRmLWRoYy1kaGNwdjYteWFu
Zw0KPiA+Pg0KPiA+PiBNeSB0YWtlIGlzIHRoYXQgb25lIG1vZHVsZSBpcyBiZXN0LCB1c2luZyAn
d2hlbicgb3IgaWYtZmVhdHVyZSB0byBzZWxlY3QsIHdoaWNoIGlzIHdoYXQgSSBzZWUgd2l0aCBP
U1BGLCBQQ0UsIFRDUCwgSUdNUCBhbmQgYWxtb3N0IGV2ZXJ5dGhpbmcgZWxzZSBidXQgYW0gc3Ry
dWdnbGluZyB0byBjb252aW5jZSBvdGhlcnMsIGVzcGVjaWFsbHkgIHRoZSBhdXRob3IgSWFuLiAg
W0lGXSBpbiB0aGUgZS1tYWlsIGV4dHJhY3QgYmVsb3cNCj4gPj4NCj4gPj4gSSBzdWdnZXN0ZWQg
YXNraW5nIGEgWUFORyBEb2N0b3IsIE5PVCB0byBsb29rIGF0IHRoZSBtb2R1bGUgYnV0IHJhdGhl
ciB0byBhZHZpc2Ugb24gYSBzdHJ1Y3R1cmUgZ2l2ZW4gdGhlIHJlcXVpcmVtZW50cyB0byB3aGlj
aCBJYW4gc2FpZCB0aGF0IGhlIGhhZCBub3QgaGFkIG11Y2ggam95IHdpdGggWUFORyBEb2N0b3Jz
LiAgSSBhcHBlbmQgb3VyIG1vc3QgcmVjZW50IGV4Y2hhbmdlIGluIHdoaWNoIGhlIHJlc3BvbmRz
IHRvIG15IHF1ZXJ5IGFzIHRvIHdoeSB0aGVyZSBhcmUgc2V2ZW4gbW9kdWxlczsgZm9ybWF0dGlu
ZyBpcyBhIGJpdCBvZiBhIG1lc3MgSSBhbSBhZnJhaWQuICBUaGUgcG9zdHMgYXJlIHRvIHRoZSBE
SENXRyBtYWlsIGxpc3QuDQo+ID4+DQo+ID4+IEFueSBhZHZpY2UgYXBwcmVjaWF0ZWQgZXZlbiBp
ZiBpdCBpcyB0aGF0IElhbiBpcyBvbiBqdXN0IHRoZSByaWdodCB0cmFjayENCj4gPj4NCj4gPj4N
Cj4gPj4gRWl0aGVyIGFwcHJvYWNoIGlzIHZhbGlkIHNvIG11bHRpLW1vZHVsZSB2cy4gc2luZ2xl
IG1vZHVsZSB3LyBmZWF0dXJlcyBpcyBtb3JlDQo+ID4+IG9mIGFuIG92ZXJhbGwgc3lzdGVtIG1h
aW50ZW5hbmNlIGlzc3VlLiAgNyBtb2R1bGVzIHNlZW1zIGxpa2UgYSBsb3QgZm9yIERIQ1AgYnV0
DQo+ID4+IEkgaGF2ZSBubyBvYmplY3RpdmUgY3JpdGVyaWEgdG8gYmFjayB0aGF0IHVwLg0KPiA+
Pg0KPiA+PiBUaGVyZSBpcyBzb21lIGNvbmZ1c2lvbiBhYm91dCB0aGUgaW1wb3J0LXN0bXQsIHdo
aWNoIGxlYWRzIHRvIG1hbnkgWUFORyBtb2R1bGVzLg0KPiA+PiBJbiBjb21waWxlciB0ZXJtcywg
aW1wb3J0aW5nIGEgbW9kdWxlIG1lcmVseSBtYWtlcyB0aGUgc3ltYm9scyBhdmFpbGFibGUgZm9y
IHBhcnNpbmcgaW4gdGhlIGN1cnJlbnQgbW9kdWxlLg0KPiA+PiBUaGUgaW1wb3J0LXN0bXQgaW1w
bGllcyBubyBjb25mb3JtYW5jZSByZXF1aXJlbWVudHMgd2hhdHNvZXZlci4NCj4gPj4gT25seSBz
dGF0ZW1lbnRzIHRoYXQgdXNlIHRoZSBpbXBvcnRlZCBtb2R1bGUgY2FuIGRvIHRoYXQuDQo+ID4+
IChTbyBhIHNlcnZlciBtb2R1bGUgaW1wb3J0aW5nIGEgbW9kdWxlIHRoYXQgaGFzIGNsaWVudCBn
cm91cGluZ3MgaXMgbm90IGFjdHVhbGx5IGEgcHJvYmxlbS4pDQo+ID4+DQo+ID4+IDx0cD4NCj4g
Pj4NCj4gPj4gQW5keSwgSnVlcmdlbiwNCj4gPj4NCj4gPj4gVGhhbmsgeW91IGZvciB0aGUgcmVw
bGllcy4gIFdoYXQgSWFuIHNhaWQgYWJvdXQgdGhlIGltcG9ydCBpcw0KPiA+Pg0KPiA+Pj4gW0lG
XSBUaGUgc2VwYXJhdGlvbiBvZiB0aGUgb3B0aW9uIG1vZHVsZXMgY2FtZSBhdCBhIGxhdGVyIHN0
YWdlIGJhc2VkIG9uIGltcG9ydCBkZXBlbmRlbmNpZXMgb2YgYSBzaW5nbGUgb3B0aW9ucyBtb2R1
bGUuIFdoZW4gdGhlIG9wdGlvbnMgbW9kdWxlIGltcG9ydHMgdGhlIGNsaWVudC9zZXJ2ZXIvcmVs
YXkgbW9kdWxlcyBzbyBpdCBjYW4gYXVnbWVudCB0aGUgcmVsZXZhbnQgbW9kdWxlIGJhc2VkIG9u
IGlkZW50aXR5LCBhbiBpbXBsZW1lbnRhdGlvbiBhbHNvIG5lZWRzIHRvIGltcG9ydCB0aGVzZSBt
b2R1bGVzIGFuZCB3aWxsIGRlY2xhcmUgdGhlbSBpbiBpdOKAmXMgY2FwYWJpbGl0aWVzIGFzIGF2
YWlsYWJsZSBldmVuIHRob3VnaCBpdCBkb2VzbuKAmXQgaW1wbGVtZW50IHRoZW0uIERpdmlkaW5n
IHRoZSBvcHRpb25zIG1vZHVsZXMgYXZvaWRzIHRoZSBuZWVkIGZvciBkZXZpYXRpb25zLg0KPiA+
Pg0KPiA+PiA8dHA+IHRoYXQgaXMsIHRoZSBwcmVmaXggZm9yIGRoY3B2Ni1zZXJ2ZXIgaXMgZGVm
aW5lZCBpbiB0aGUgc2VydmVyIG1vZHVsZSwNCj4gPj4gICAgbW9kdWxlIGlldGYtZGhjcHY2LXNl
cnZlciB7DQo+ID4+IC4uLg0KPiA+PiAgICAgIHByZWZpeCAiZGhjcHY2LXNlcnZlciI7DQo+ID4+
IC4uLg0KPiA+PiAgICAgIGlkZW50aXR5IHNlcnZlciB7DQo+ID4+ICAgICAgICBiYXNlICJkaGNw
djYtY29tbW9uOmRoY3B2Ni1ub2RlIjsNCj4gPj4gICAgICAgIGRlc2NyaXB0aW9uICJESENQdjYg
c2VydmVyIGlkZW50aXR5LiI7ICAgICAgfQ0KPiA+PiAgICAgIGxlYWYgZGhjcHY2LW5vZGUtdHlw
ZSB7DQo+ID4+ICAgICAgICB0eXBlIGlkZW50aXR5cmVmIHsNCj4gPj4gICAgICAgICAgYmFzZSAi
ZGhjcHY2LWNvbW1vbjpkaGNwdjYtbm9kZSI7ICAgICAgICB9DQo+ID4+ICAgICAgICBkZXNjcmlw
dGlvbiAiVHlwZSBmb3IgYSBESENQdjYgc2VydmVyLiI7ICAgICB9DQo+ID4+DQo+ID4+IGFuZCB0
aGUgcHJlZml4IGZvciBkaGNwdjYtcmVsYXkgaW4gdGhlIHJlbGF5IG1vZHVsZSBldGMgc28gaGF2
aW5nIGEgc2luZ2xlIG1vZHVsZSBmb3Igb3B0aW9ucyB3aGljaCBuZWVkcyB0byBhdWdtZW50IG9w
dGlvbnMgdG8gdGhlIHNlcnZlciBtb2R1bGUgbmVlZHMgdG8gaW1wb3J0IHRoZSBzZXJ2ZXIgbW9k
dWxlIHNvIHRoYXQgdGhlIGRoY3B2Ni1zZXJ2ZXIgcHJlZml4IGlzIGRlZmluZWQsIGRpdHRvIHJl
bGF5IGFuZCBjbGllbnQgc28gdGhlIHNpbmdsZSBtb2R1bGUgZm9yIG9wdGlvbnMgdGhlbiBpbXBv
cnRzIHNlcnZlciBhbmQgcmVsYXkgYW5kIGNsaWVudCBtb2R1bGVzLg0KPiA+Pg0KPiA+PiBXaXRo
IHRocmVlIG9wdGlvbnMgbW9kdWxlcywgZWFjaCBvbmx5IGltcG9ydHMgb25lIG9mIHNlcnZlciwg
cmVsYXksIGNsaWVudCBidXQgdGhlIGdyb3VwaW5ncyBhcmUgdGhlbiByZXBsaWNhdGVkIGFjcm9z
cyB0aGUgdGhyZWUgb3B0aW9ucyBtb2R1bGVzLg0KPiA+Pg0KPiA+PiBMb2dpY2FsIGlmIHlvdSBh
Z3JlZSB3aXRoIHRoZSBpbml0aWFsIHByZW1pc2UgKHdoaWNoIEkgZG8gbm90ISkuDQo+ID4+DQo+
ID4+IFRoZSBzZXZlbiBZQU5HIG1vZHVsZXMgYXJlIGFsbCBpbiB0aGUgb25lIEktRCBvZiA1NnBw
IHdpdGggdGhlIHRyZWUgZGlhZ3JhbXMgMTJwcC4NCj4gPj4NCj4gPj4gVG9tIFBldGNoDQo+ID4+
IChvbiBFdXJvcGVhbiB0aW1lOi0oDQo+ID4+DQo+ID4+IFlBTkcgQ29uZm9ybWFuY2UgZm9yIGEg
c2luZ2xlIG1vZHVsZSBpcyBiZXR0ZXIgZGVmaW5lZCB0aGFuIGZvciBtdWx0aXBsZSByZWxhdGVk
IG1vZHVsZXMuDQo+ID4+IFRoZSBZQU5HIFBhY2thZ2VzIHdvcmsgY291bGQgZml4IHRoYXQgc29t
ZWRheS4NCj4gPj4NCj4gPj4gVG9tIFBldGNoDQo+ID4+DQo+ID4+DQo+ID4+IEFuZHkNCj4gPj4N
Cj4gPj4NCj4gPj4gT24gMTkvMDEvMjAyMSAxMToyNSwgdG9tIHBldGNoIHdyb3RlOg0KPiA+Pj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+Pj4gRnJvbTogZGhj
d2cgPGRoY3dnLWJvdW5jZXNAaWV0Zi5vcmc8bWFpbHRvOmRoY3dnLWJvdW5jZXNAaWV0Zi5vcmc+
PiBvbiBiZWhhbGYgb2YgaWFuZmFycmVyQGdteC5jb208bWFpbHRvOmlhbmZhcnJlckBnbXguY29t
PiA8aWFuZmFycmVyQGdteC5jb208bWFpbHRvOmlhbmZhcnJlckBnbXguY29tPj4NCj4gPj4+IFNl
bnQ6IDE5IEphbnVhcnkgMjAyMSAwNzozNw0KPiA+Pj4NCj4gPj4+IFRoYW5rcyBmb3IgeW91ciBj
b21tZW50cy4gUGxlYXNlIHNlZSBpbmxpbmUgYmVsb3cuDQo+ID4+Pg0KPiA+Pj4gSWFuDQo+ID4+
Pg0KPiA+Pj4gT24gMTQuIEphbiAyMDIxLCBhdCAxMzo0MCwgdCBwZXRjaCA8aWV0ZmFAYnRjb25u
ZWN0LmNvbTxtYWlsdG86aWV0ZmFAYnRjb25uZWN0LmNvbT48bWFpbHRvOmlldGZhQGJ0Y29ubmVj
dC5jb208bWFpbHRvOmlldGZhQGJ0Y29ubmVjdC5jb20+Pj4gd3JvdGU6DQo+ID4+Pg0KPiA+Pj4g
SWFuDQo+ID4+Pg0KPiA+Pj4gSSBkbyBub3QgdW5kZXJzdGFuZCB0aGlzIEktRDsgSSBoYXZlIHRy
YWNrZWQgaXQgZm9yIGEgbnVtYmVyIG9mIHllYXJzIGFuZCBteSB1bmRlcnN0YW5kaW5nIG9mIGl0
IGlzIGRpbWluaXNoaW5nLg0KPiA+Pj4NCj4gPj4+IEN1cnJlbnRseSwgaXQgaXMgc2V2ZW4gWUFO
RyBtb2R1bGVzOiB3aHk/DQo+ID4+Pg0KPiA+Pj4gW2lmIC0gVGhlIHNlcGFyYXRpb24gaW50byBj
bGllbnQvc2VydmVyL3JlbGF5LCBhbmQgREhDUCBvcHRpb25zIGhhcyBiZWVuIGluIHRoZSBkcmFm
dCBzaW5jZSAtMDUgYW5kIHRoZSBjaGFuZ2VzIHdlcmUgcHJlc2VudGVkIGFuZCBkaXNjdXNzZWQg
YXQgSUVURjEwMSAtIEnigJl2ZSBkZXNjcmliZWQgdGhlIHJlYXNvbmluZyBmb3IgdGhpcyBzcGxp
dCBpbiB0aGUgbmV4dCBhbnN3ZXIuIEJleW9uZCB0aGF0LCB0aGUgY29tbW9uIG1vZHVsZSB3YXMg
YWRkZWQgdG8gYXZvaWQgKHdlbGwgcmVkdWNlIGFzIHlvdSBwb2ludCBvdXQgYmVsb3cpIGR1cGxp
Y2F0aW9uLg0KPiA+Pj4NCj4gPj4+IFRoZSBzZXBhcmF0aW9uIG9mIHRoZSBvcHRpb24gbW9kdWxl
cyBjYW1lIGF0IGEgbGF0ZXIgc3RhZ2UgYmFzZWQgb24gaW1wb3J0IGRlcGVuZGVuY2llcyBvZiBh
IHNpbmdsZSBvcHRpb25zIG1vZHVsZS4gV2hlbiB0aGUgb3B0aW9ucyBtb2R1bGUgaW1wb3J0cyB0
aGUgY2xpZW50L3NlcnZlci9yZWxheSBtb2R1bGVzIHNvIGl0IGNhbiBhdWdtZW50IHRoZSByZWxl
dmFudCBtb2R1bGUgYmFzZWQgb24gaWRlbnRpdHksIGFuIGltcGxlbWVudGF0aW9uIGFsc28gbmVl
ZHMgdG8gaW1wb3J0IHRoZXNlIG1vZHVsZXMgYW5kIHdpbGwgZGVjbGFyZSB0aGVtIGluIGl04oCZ
cyBjYXBhYmlsaXRpZXMgYXMgYXZhaWxhYmxlIGV2ZW4gdGhvdWdoIGl0IGRvZXNu4oCZdCBpbXBs
ZW1lbnQgdGhlbS4gRGl2aWRpbmcgdGhlIG9wdGlvbnMgbW9kdWxlcyBhdm9pZHMgdGhlIG5lZWQg
Zm9yIGRldmlhdGlvbnMuDQo+ID4+Pg0KPiA+Pj4gRXZlbiB0aG91Z2ggdGhlcmUgYXJlIDcgbW9k
dWxlcyBkZWZpbmVkIGhlcmUsIHRoZSBsaWtlbHkgaG9vZCBpcyB0aGF0IGFuIGVsZW1lbnQgaW1w
bGVtZW50YXRpb24gd291bGQgcmVxdWlyZSAzIG1vZHVsZXMgdG8gYmUgaW1wbGVtZW50ZWQgKGUu
Zy4gY2xpZW50LCBjb21tb24gYW5kIGNsaWVudCBvcHRpb25zKS5dDQo+ID4+Pg0KPiA+Pj4gW3Rw
XSBPdGhlciBXRyBoYXZlIG1vZGVscyB3aXRoIG11bHRpcGxlIHJvbGVzIGFuZCBtYW55IG9wdGlv
bnMgYW5kIGhhdmUgYSBzaW5nbGUgWUFORyBtb2R1bGUsIHVzaW5nIHRoZSBmZWF0dXJlcyBvZiBZ
QU5HIHRvIHRhaWxvciB0aGUgbW9kdWxlIHRvIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy4NCj4g
Pj4+DQo+ID4+PiBbaWYgLSBJdOKAmXMgbm90IHJlYWxseSB0YWlsb3JpbmcgdGhlIG1vZHVsZSB0
byBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnMsIHRoZXkgYXJlIGZvciB0aGUgbW9zdCBwYXJ0IHNl
cGFyYXRlIGZ1bmN0aW9uYWwgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgd2l0aCBhbnkgZGV2aWNl
IG9ubHkgaW1wbGVtZW50aW5nIG9uZSBvZiB0aGUgY2xpZW50LCByZWxheSBvciBzZXJ2ZXIgZnVu
Y3Rpb25zLg0KPiA+Pj4NCj4gPj4+IEhvd2V2ZXIsIGV2ZW4gaW4gdGhlIGNhc2UgdGhhdCBhIGRl
dmljZSBpcyBib3RoIGEgc2VydmVyIGFuZCBhIGNsaWVudCAoZS5nLiBhIGhvbWUgZ2F0ZXdheSB3
aXRoIGEgY2xpZW50IG9uIHRoZSBXQU4gYW5kIGEgc2VydmVyIG9uIHRoZSBMQU4pLCB0aGUgbGlr
ZWxpaG9vZCBpcyB0aGF0IHRoZXNlIHdpbGwgYmUgZG9uZSB1c2luZyBkaWZmZXJlbnQgc29mdHdh
cmUgaW1wbGVtZW50YXRpb25zLCBzbyBoYXZpbmcgc2VwYXJhdGUgbW9kdWxlcyBmb3Igc2VydmVy
IGFuZCBjbGllbnQgb2ZmZXJzIGltcGxlbWVudGF0aW9uIGZsZXhpYmlsaXR5Lg0KPiA+Pj4NCj4g
Pj4+IEluIHRoZSBjYXNlIG9mIGEgbW9ub2xpdGhpYyBtb2R1bGUgd2l0aCB0aGUgcmVsZXZhbnQg
Y2xpZW50L3JlbGF5L3NlcnZlciBmdW5jdGlvbmFsaXR5IGVuYWJsZWQgYnkgZmVhdHVyZXMsIHRo
ZSBtb2R1bGUgd291bGQgZG8gbm90aGluZyB1bmxlc3Mgb25lIG9yIG1vcmUgb2YgdGhlIGZlYXR1
cmVzIHdhcyBlbmFibGVkLCBhbmQgSXMgdW5saWtlbHkgdGhhdCB5b3XigJlkIGV2ZXIgZW5hYmxl
IG1vcmUgdGhhbiBvbmUuIElzIHRoaXMgYXBwcm9hY2ggdXNlZCBieSBvdGhlciBXR3M/IENvdWxk
IHlvdSBwb2ludCBtZSB0byBzb21lIHNvbWUgZXhhbXBsZXMgYXMgSSd2ZSBvbmx5IHNlZW4gZmVh
dHVyZXMgYmVlbiB1c2VkIGFzIHJlbGF0aXZlbHkgc21hbGwgb3B0aW9uYWwgZXh0ZW5zaW9ucyB1
c2VkIHdoZW4gdGhlIGJ1bGsgb2YgdGhlIG5vZGVzIGFyZSBjb21tb24/XQ0KPiA+Pg0KPiA+PiBb
dHBdDQo+ID4+IElhbg0KPiA+Pg0KPiA+PiBBbG1vc3QgYWxsIHRoZSBZQU5HIG1vZGVscyBJIGtu
b3cgb2YgYXJlIHNpbmdsZSBtb2R1bGUuICBGb3IgZXhhbXBsZSwNCj4gPj4gZHJhZnQtaWV0Zi1v
c3BmLXlhbmcgc3VwcG9ydHMgdHdvIHZlcnNpb25zIG1vZGVsbGVkIGFzIGlkZW50aXR5IGFuZCAy
OA0KPiA+PiBvcHRpb25zIG1vZGVsbGVkIGFzIGZlYXR1cmVzLg0KPiA+Pg0KPiA+PiBkcmFmdC1p
ZXRmLXRjcG0teWFuZyBzdXBwb3J0cyBjbGllbnQgYW5kIHNlcnZlciBhcyBjb250YWluZXJzIHdp
dGgNCj4gPj4gaWYtZmVhdHVyZSBhbmQgaGFzIG90aGVyIGZlYXR1cmVzIGFzIHdlbGwNCj4gPj4N
Cj4gPj4gZHJhZnQtaWV0Zi1waW0taWdtcC1tbGQteWFuZyBzdXBwb3J0cyBmaXZlIHZlcnNpb25z
IG9mIHR3byBwcm90b2NvbA0KPiA+PiB1c2luZyBpZGVudGl0eQ0KPiA+Pg0KPiA+PiBkcmFmdC1w
Y2UtcGNlcC15YW5nIG9mZmVycyB0aGUgcm9sZXMgb2YgcGNjIG9yIHBjZSBvciBib3RoIHVzaW5n
IHR5cGVkZWYuDQo+ID4+DQo+ID4+IEFuZCBzbyBvbiBhbmQgc28gb24uICBpZi1mZWF0dXJlLCB3
aGVuIGFuZCBzdWNobGlrZSBwcm92aWRlIHRoZQ0KPiA+PiBuZWNlc3NhcnkgY3VzdG9taXNhdGlv
bi4NCj4gPj4NCj4gPj4gSSB0aGluayB0aGF0IHlvdXIgcHJvYmxlbXMgd2l0aCBvcHRpb25zIGFy
ZSBiZWNhdXNlIHRoZSBpZGVudGl0eSBhcmUNCj4gPj4gZGVmaW5lZCBpbiB0aGUgd3JvbmcgcGxh
Y2UuICBUaGUgYmFzZSwgdGhlIGNvbW1vbiBtb2R1bGUgKG9yIHBhcnQgb2YgdGhlDQo+ID4+IG9u
ZSBhbmQgb25seSBtb2R1bGUpIHNob3VsZCBkZWZpbmUgd2hhdCBpcyBjb21tb24sIHdoYXQgZXZl
cnlvbmUgbmVlZHM7DQo+ID4+IGlmIHRoZXJlIGFyZSB0aHJlZSByb2xlcyBhbmQgYSBkb3plbiBv
cHRpb25zLCB0aGFuIHRoYXQgaXMgd2hlcmUgdGhleQ0KPiA+PiBuZWVkIHRvIGJlIGRlZmluZWQu
DQo+ID4+DQo+ID4+IFRoZW4gdGhlcmUgY2FuIGJlIGFuIG9iamVjdCB3aGljaCBpcyBjb25maWd1
cmVkIHdpdGggdGhlIHJvbGVzIG9mIGENCj4gPj4gcGFydGljdWxhciBib3gsIGNsaWVudCBvciBz
ZXJ2ZXIgb3IgcmVsYXksIG9yIGlmIHJlcXVpcmVkLCBhIGNvbWJpbmF0aW9uDQo+ID4+IG9mIHRo
ZSB0aGVyZSAtIHNpbXBsZXIgaWYgdGhhdCBpcyBvdXQgb2Ygc2NvcGUgYXMgeW91IHN1Z2dlc3Qu
DQo+ID4+DQo+ID4+IE15IHN0YXJ0aW5nIHBvaW50IHdvdWxkIGJlIGEgZGhjIGNvbnRhaW5lciB3
aXRoIGEgbGVhZiBmb3IgYSByb2xlIGFuZCB0aGVuDQo+ID4+IGNvbnRhaW5lcnMgZm9yIGNsaWVu
dCwgcmVsYXksIHNlcnZlciwgYWRkZWQgYnkgYXVnbWVudCBhbmQgY29udHJvbGxlZCBieQ0KPiA+
PiB3aGVuIHBvaW50aW5nIGF0IHRoZSByb2xlLg0KPiA+Pg0KPiA+PiBJIHdpbGwgcG9zdCBzb21l
dGhpbmcgdG8gdGhlIG5ldG1vZCBXRyBsaXN0IC0gdGhlcmUgYXJlIGxvdHMgb2YgcGVvcGxlDQo+
ID4+IHRoZXJlIHdpdGggZ3JlYXRlciBleHBvc3VyZSB0aGFuIG1pbmUgd2hvIGNhbiBnaXZlIGJl
dHRlciBndWlkYW5jZSB0aGFuIEkuDQo+ID4+DQo+ID4+IFRvbSBQZXRjaA0KPiA+Pg0KPiA+Pj4g
SGVyZSB5b3UgaGF2ZSBtb2RlbGxlZCB0aGUgb3B0aW9ucyBhcyBZQU5HIGdyb3VwaW5nLiBUaGUg
aW50ZW50IG9mIGEgZ3JvdXBpbmcgaXMgdG8gcHJvdmlkZSBhIGJsb2NrIG9mIHN0YXRlbWVudHMg
dGhhdCBjYW4gYmUgcmV1c2VkIHNvIGF2b2lkaW5nIGR1cGxpY2F0aW9uIHdpdGggdGhlIGF0dGVu
ZGFudCBwcm9ibGVtcy4gIEhlcmUgeW91IGhhdmUgdGhlIHNhbWUgZ3JvdXBpbmcgaW4gdHJpcGxp
Y2F0ZSBpbiB0aHJlZSBkaWZmZXJlbnQgWUFORyBtb2R1bGVzIHdoaWNoIHNlZW1zIHRvIG1lIHRv
IGJlIHRoZSBhbnRpdGhlc2lzIG9mIGEgZ3JvdXBpbmcuDQo+ID4+Pg0KPiA+Pj4gW0lmIC0gV2Ug
Y291bGQgbW92ZSB0aGUgb3B0aW9uIGRlZmluaXRpb25zIGZvciAic3RhdHVzLWNvZGUtb3B0aW9u
LWdyb3Vw4oCdIChjbGllbnQsIHNlcnZlciwgcmVsYXkpIGFuZCDigJxyYXBpZC1jb21taXQtb3B0
aW9uLWdyb3VwLCB2ZW5kb3Itc3BlY2lmaWMtaW5mb3JtYXRpb24tb3B0aW9uLWdyb3VwOyByZWNv
bmZpZ3VyZS1hY2NlcHQtb3B0aW9uLWdyb3Vw4oCdIChjbGllbnQsIHNlcnZlcikgaW50byB0aGUg
Y29tbW9uIG1vZHVsZSB0byByZXNvbHZlIHRoZSBkdXBsaWNhdGlvbi4gSSBkaWRu4oCZdCBkbyB0
aGlzIHByZXZpb3VzbHkgYXMgdGhlIGludGVudGlvbiB3YXMgdG8ga2VlcCBvcHRpb25zIGRlZmlu
aXRpb25zIGluIHRoZSBvcHRpb25zIG1vZHVsZXMgZm9yIGNvbnNpc3RlbmN5LCBidXQgaXQgIHdv
dWxkIGJlIHNpbXBsZSB0byBjaGFuZ2UuIF0NCj4gPj4+DQo+ID4+PiBbdHBdIExpa2V3aXNlIEkg
ZmluZCB0aGUgc3BlY2lmaWNhdGlvbiBvZiBzZXJ2ZXIgdiBjbGllbnQgdiByZWxheSB1bnVzdWFs
Lg0KPiA+Pj4NCj4gPj4+IFtJZiAtIEEgc2ltaWxhciBhcHByb2FjaCBmb3Igc2VwYXJhdGVkIGNs
aWVudC9zZXJ2ZXIgbW9kdWxlcyBpcyBhbHNvIHVzZWQgaW4gUkZDODY3Niwgd2hlcmUgdGhlIGNs
aWVudCBhbmQgc2VydmVyIGhhdmUgZGlzY3JldGUgZnVuY3Rpb24sIGFzIHdpdGggREhDUC5dDQo+
ID4+Pg0KPiA+Pj4gW3RwXUkgd29uZGVyIGlmIGl0IGlzIHdvcnRoIGNvbnN1bHRpbmcgYSBZQU5H
IGRvY3RvciwgTk9UIHRvIHNob3cgdGhlbSB0aGUgWUFORyBhbmQgaW52aXRlIGNvbW1lbnRzLCBy
YXRoZXIgb3V0bGluZSBpbiBhbiBhYnN0cmFjdCB3YXkgd2hhdCBpdCBpcyB5b3Ugd2FudCB0byBt
b2RlbCBhbmQgc2VlIHdoYXQgdGhleSBzdWdnZXN0OyB0aGF0IG1pZ2h0IHdlbGwgYmUgYSBzaW5n
bGUgWUFORyBtb2R1bGUuDQo+ID4+Pg0KPiA+Pj4gW2lmIC0gWWVzLCBJ4oCZZCBiZSBoYXBweSB0
by4gSXMgdGhlcmUgc29tZW9uZSB0aGF0IHlvdSBoYXZlIGluIG1pbmQgKEnigJl2ZSBub3QgaGFk
IG11Y2ggbHVjayB3aXRoIGdldHRpbmcgWUFORyBkb2N0b3IgaW5wdXQgb3V0c2lkZSBvZiB0aGUg
Zm9ybWFsIHJldmlldyBwcm9jZXNzIGluIHRoZSBwYXN0KT8uIEnigJltIG5vdCBvcHBvc2VkIHRv
IGNoYW5naW5nIHRoZSB3YXkgdGhhdCB0aGUgbW9kdWxlcyBhcmUgc3RydWN0dXJlZCBvbiBwcmlu
Y2lwYWwsIEkgZG8gaG93ZXZlciwgdGhpbmsgdGhhdCB0aGUgc2VwYXJhdGlvbiBieSBmdW5jdGlv
bmFsIGVsZW1lbnQgaXMgbG9naWNhbCBhbmQgc2ltcGxlciBmb3IgaW1wbGVtZW50ZXJzLCBhbmQg
SSB3b3VsZCBsaWtlIHRvIGtub3cgd2hhdCB0aGUgYmVuZWZpdHMgb2YgYSBzaW5nbGUgbW9kdWxl
IChvciBvdGhlciBzdHJ1Y3R1cmUpIG1pZ2h0IGJlLl0NCj4gPj4+DQo+ID4+PiBbdHBdSSBkbyBo
YXZlIHF1aXRlIGEgbnVtYmVyIG9mIGRldGFpbGVkIGNvbW1lbnRzIGJ1dCBkbyBub3QgdGhpbmsg
dGhlbSB3b3J0aCBtYWtpbmcgdW50aWwgdGhlIEktRCBzZWVtcyB0byBtZSBtb3JlIHN0YWJsZS4N
Cj4gPj4+DQo+ID4+PiBbaWYgLSBJdOKAmWQgYmUgZ3JlYXQgaWYgeW91IGNvdWxkIHN1cHBseSB0
aGVtIGFzIHdlbGwgc28gSSBjYW4gc3RhcnQgZ29pbmcgdGhvdWdoIHRoZW0gYW5kIGZpeGluZyB3
aGF04oCZcyBjdXJyZW50bHkgZml4YWJsZSBpbiBwYXJhbGxlbCB0byB0aGUgZGlzY3Vzc2lvbiBh
Ym92ZS5dDQo+ID4+Pg0KPiA+Pj4gVG9tIFBldGNoDQo+ID4+Pg0KPiA+Pj4gT24gMDcvMDEvMjAy
MSAxNjoxMCwgaWFuZmFycmVyQGdteC5jb208bWFpbHRvOmlhbmZhcnJlckBnbXguY29tPjxtYWls
dG86aWFuZmFycmVyQGdteC5jb208bWFpbHRvOmlhbmZhcnJlckBnbXguY29tPj4gd3JvdGU6DQo+
ID4+PiBIaSBUb20sDQo+ID4+Pg0KPiANCj4gLS0NCj4gTGFkaXNsYXYgTGhvdGthDQo+IEhlYWQs
IENaLk5JQyBMYWJzDQo+IFBHUCBLZXkgSUQ6IDB4QjhGOTJCMDhBOUY3NkM2Nw0K


From nobody Thu Jan 21 09:48:50 2021
Return-Path: <ietfc@btconnect.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A0F023A13A5 for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 09:48:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=btconnect.onmicrosoft.com
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 Uf_vsCFS4r2j for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 09:48:46 -0800 (PST)
Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80123.outbound.protection.outlook.com [40.107.8.123]) (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 CD5A33A1371 for <netmod@ietf.org>; Thu, 21 Jan 2021 09:48:45 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MWMhXUCMtRiVMPxG23UDcO87wWth4171XF51CZGiBliE+Dtis6+Xf6IdmtZxQ/1UnJCdJvqfWRnvnOYwMxK0svUXouEriljjcGsEOq+5vkGSimEl2jNJKsbzookZMQnk6rwtYb1LP9GfyWO6BeY1XtgPG38zkaiY4vKYrjVhMLVhRj3h0qNvlE78xsuhIlv/nSNHyzEqPsrAiuMSmaS0ow8KrnIxbwor8bSkzg3wcbIBGC+8hCGwaQ6+afs5EkUr7swswCpwzuKgESqqSmf4Q6e6Z0CYl3BW20zFr7cbIECm/k1yP+LH7UL9dF6a9XIblbmgxGm7+MtSqmtpEj/5iw==
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=MGEEfB0apmK6Df9WHUOYVhUcUFakCoGyRxz6yrJjNk8=; b=oaAVSbLUNjXAgdJu6QDrRtW/oSvRg4B2UVIpNlAnVumpX2kHCj8NUdNwcUbLonybj3jCHEASz4WcNAEJaAs7tQeDO6iP+SWw/JUqAHROAaM0Zdl1rclQ2vazRomIFKGrLFAjJuIwHWaFaQl37O70aorumdCTq3pL1eqAeBmWFAQF4jjWvbM2ln6pCjbRkJOtFFwcMyEBQmNh6EClLbrsUpAUY6KVuZCDwdXC6VnT1BvMpfkavfNqEFHafEquJfkWO2wTj/zvDAjd+DIPjTsXNXvA8/r7dbKdoTVs7mFj1Yq7ZSacNn8V3XYLwaRUHf7G4aspWNAdBCwLHUnE6V6NvA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=btconnect.com; dmarc=pass action=none header.from=btconnect.com; dkim=pass header.d=btconnect.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector2-btconnect-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MGEEfB0apmK6Df9WHUOYVhUcUFakCoGyRxz6yrJjNk8=; b=OJHybNzsTHxkbJaX09dSnMby35rYA4aghk1O2P0D02MgDdpIBKDXP9J3qHXEGjc8BOnq9NEB5BmFRfc+/WjX2vkZW+CLD11M1BdVKv6aYlk18DAKB7s+yW7GJiAPYAFwGRueUCU9+bZXnOpbWw6lZ0y32UR2K5NmBTNrR150jjw=
Received: from (10.186.168.203) by AM6PR07MB5107.eurprd07.prod.outlook.com (20.177.119.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.8; Thu, 21 Jan 2021 17:48:42 +0000
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::6d46:4f3c:643:4849]) by AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::6d46:4f3c:643:4849%5]) with mapi id 15.20.3763.014; Thu, 21 Jan 2021 17:48:42 +0000
From: tom petch <ietfc@btconnect.com>
To: =?Windows-1252?Q?Martin_Bj=F6rklund?= <mbj+ietf@4668.se>
CC: "ladislav.lhotka@nic.cz" <ladislav.lhotka@nic.cz>, "andy@yumaworks.com" <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>, "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>, "ianfarrer@gmx.com" <ianfarrer@gmx.com>
Thread-Topic: Structuring a DHCP module
Thread-Index: AQHW70sVzeGJg/CSikuUFwnormzctaow1pyAgAEdNOWAABNGgIAABKIAgAA9LPKAAAhzgIAACCuZ
Date: Thu, 21 Jan 2021 17:48:41 +0000
Message-ID: <AM7PR07MB62481A4C3BCD3BA72D0A7B89A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
References: <20210121.134211.1244086498697136841.id@4668.se> <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz> <AM7PR07MB62480EF0BDB11B95820598EEA0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>, <20210121.180757.1756334498885863433.id@4668.se>
In-Reply-To: <20210121.180757.1756334498885863433.id@4668.se>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: 4668.se; dkim=none (message not signed) header.d=none;4668.se; dmarc=none action=none header.from=btconnect.com;
x-originating-ip: [86.146.121.140]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b887c65e-dc2b-4b84-37d5-08d8be34caab
x-ms-traffictypediagnostic: AM6PR07MB5107:
x-microsoft-antispam-prvs: <AM6PR07MB5107CAF8F38F5A9F0B3B411BA0A10@AM6PR07MB5107.eurprd07.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: fjbOl+zS4fE6Qo192B7xtFowIQZ68zZJZ00wbyby5vnC2JDTQNkcXmVSymnIFi+KyKzm4gsPS+fljdAXpD8dNfcm5DA0IKDyc/+8HgcIgNA5rJqaki6P9yKn/X59K64KSiX4N8PHan8DOkut1tqYgW316UoASxrVhDLdtdQAKM84HuPfQNFUX8LPsDhUdC7vDbEF1XcdfOe23MfSISl+bRSQuKaXEZFBBndEBn+NX+WHXjsotxhukn0VTiQsyG9/fD9eKZqPYNLmgKoo/hMsMcgS46ReV49UNfUD60I/atH7PW+n811Zv6qrfw4WcZi9xmExkjQbcnvg2LfgS7NtkXnBeQ5f8J4IGJXocr2A+ONU9se+rvbKmgIM30rAJTTcafNu0jqTLnEEe9xK8nDixPaArCz679FBU6UFQNg/3aEIea5q7/PMLQTfEBTujF9TW9MGzN4DLfkLGNji4y3XwjyYQXlXBrWbT7xlugbbvKWjp7bMq7s6DDVbnFRODvtznti/nG/tp597edaJndg6EQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:AM7PR07MB6248.eurprd07.prod.outlook.com; PTR:; CAT:NONE;  SFS:(396003)(136003)(376002)(366004)(346002)(39860400002)(9686003)(86362001)(71200400001)(54906003)(4326008)(33656002)(55016002)(2906002)(966005)(478600001)(3480700007)(5660300002)(186003)(316002)(52536014)(8936002)(8676002)(66556008)(26005)(53546011)(64756008)(91956017)(83380400001)(66446008)(76116006)(66574015)(30864003)(66476007)(66946007)(7696005)(6506007)(518174003); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?Windows-1252?Q?Y2ivRMHIMx85xxpZFuHUTNO8biudbbCk8NCWxWMdLyk3pqgHBpv7JitH?= =?Windows-1252?Q?wpHzWsnGLCiLNcvkFgDHr1ywy3tjNHVq50HzF0iNBg5xVDhbHxV/tigc?= =?Windows-1252?Q?tXgW2bqy3oGJ7fGY1DpJQkmTr613yDK0g7Ma1tMe3A4kSLkZ9JxvJmW1?= =?Windows-1252?Q?VSY3F1zk21SAIExTT2cxfKTzQZm77DX5+ZFr0vH4NVCBHXG78W4u8/ia?= =?Windows-1252?Q?2YJF75bM0otwB6kOp/5VuJTF1nVQ0KpPLrmZpPE1FeXA+4KZTJ+7ZxeV?= =?Windows-1252?Q?wUPynn89Zv1F5LTKtkc12r8LbzA7f9+X9z/hQAclMBrJnZf9MKIK0XI0?= =?Windows-1252?Q?Z3qMIXEtlmcTkhSEy3LTlr2lH+kVpiMxEzl2yv9phykZFp9KEvGg0g9/?= =?Windows-1252?Q?SxfYb/iLXTElNgTAUqQkM3ME24PUeryIeVPVoVA3d2IfIOTG+z94HFQ5?= =?Windows-1252?Q?btS+WvqDRv0Fx/45sv8jUxn+VTSxaOaHtwo3sU3ZD7zU1eas+jf0Kaia?= =?Windows-1252?Q?S7pY48T+KS5BIE+wPLbSqxKhuC2Gib91jtOydQtYORkXz9EWiQidyEVE?= =?Windows-1252?Q?9Um4faHja2bC4ZmX9/PCxwpz+m/rw1bLGwT1z6zKA4X1vM15o2sUwWpW?= =?Windows-1252?Q?UJ7ASzeLrOr7MBP43RAaJZ22rApDTx97Y6j7cNuL6b0XA+RvLeAynSP7?= =?Windows-1252?Q?9iCfOlxpmdFBOfawg0/+oOTWQ3DP6wyeWNrvCwQEAwMk9M6V5nLn7Dzk?= =?Windows-1252?Q?HVEhGxCPWcussnugV58OZRMWJQjVcE/DOZphaw5anZOaH+KCWAharZKO?= =?Windows-1252?Q?T4jXgtdf2Sp3HNEmEx4T8e/P2a6jkNx9WtV9c+knmmyASSGWCvdHbfLV?= =?Windows-1252?Q?GqgtrPudythfIY/6scyN1e9zRay6E1D7pLkWyZDBZlOfwpMxnmacx+BX?= =?Windows-1252?Q?8t9c9T8oL3T+zyTGfLGecqG2Aove79yXsDt9UftlEe4ZfB9c3DaT1O2C?= =?Windows-1252?Q?GNIALSslW56Tkou8WzEPvlpNVvBUI6o9gS4yQFGpLOKWpRbZ2aHKbrDK?= =?Windows-1252?Q?eTm/vOJRhiuswfI/GxAxacmlcVVVjk7QupxFQwUHgcBPRmjm6pgB2OOU?= =?Windows-1252?Q?TIt9y1wTn2/L/6fPOguuxG79?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR07MB6248.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b887c65e-dc2b-4b84-37d5-08d8be34caab
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2021 17:48:41.9167 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: GWWdAXFSu4UxK3ZpPGMx+6K1F2QSGCOMnTu/o56fAl/YPDV8EALG9AV8MY6JmZFhDJBTNslGFgc4Aus15TDupQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR07MB5107
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/RQoXgjSP6yfVkLm9nrdfZbAA37o>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jan 2021 17:48:50 -0000

From: Martin Bj=F6rklund <mbj+ietf@4668.se>=0A=
Sent: 21 January 2021 17:07=0A=
=0A=
tom petch <ietfc@btconnect.com> wrote:=0A=
> From: Ladislav Lhotka <ladislav.lhotka@nic.cz>=0A=
> Sent: 21 January 2021 12:58=0A=
>=0A=
> Hi,=0A=
>=0A=
> in my YD review 4.5 years ago I actually recommended to use separate=0A=
> modules:=0A=
>=0A=
> https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_IC=
rKPs4/=0A=
>=0A=
> I think it is a matter of how much the different part overlap. For an=0A=
> implementer, it seems to be easier to pick just the relevant parts,=0A=
> provided they are easy to locate and identify.=0A=
>=0A=
> <tp>=0A=
> Thank you for all the responses;  I did look at the data tracker to see i=
f there had been any reviews, thinking that a previous review would be  the=
 right place to start, and it said 'No reviews'!  Perhaps these time out.=
=0A=
>=0A=
> I am not comfortable with the seven modules seeing four as better, a comm=
on which is then augmented with server, relay, client, with the common cont=
aining the role(s), whereas at present it is the three role modules that co=
ntain the role which then drives having the three option modules so each op=
tion module only imports one role module, and that is the bit I find most a=
wkward.=0A=
>=0A=
> How best to select the three roles?  As I said upthread, I have seen the =
role specified with features, with augment/when based on identityref (altho=
ugh not with the three identity defined in the three role modules), presenc=
e containers and so on (I have probably seen that and more in the history o=
f this I-D:-).=0A=
=0A=
Is "role" the same as "node-type"?  Each of these module define their=0A=
own copy of a leaf called "dhcpv6-node-type".  I am not sure I=0A=
understand what purpose this leaf serves.  It seems to me that it can=0A=
be removed, but perhaps I am missing something.=0A=
=0A=
<tp>=0A=
=0A=
Me too.  I am assuming that it is intended to define the role but I could b=
e quite wrong.  Need input from Ian on this.=0A=
=0A=
> My instinct would be to put the three identity definitions into common wi=
th a dhcpv6 container, which is then augmented by the three role modules, t=
he YANG 'when' referring to role leaf in the common.  Any better ways?=0A=
=0A=
Why do augment at all?  Why not just have a top-level container in=0A=
each module; 'dhcpv6-client', 'dhcpv6-server' etc?=0A=
=0A=
<tp>=0A=
Yes, I am just lifting the structure of another I-D probably for no good en=
gineering reason:-(.=0A=
=0A=
Tom Petch=0A=
=0A=
/martin=0A=
=0A=
=0A=
=0A=
>=0A=
> Tom Petch=0A=
>=0A=
> Lada=0A=
>=0A=
> On 21. 01. 21 13:42, Martin Bj=F6rklund wrote:=0A=
> > Hi,=0A=
> >=0A=
> > I think it is a matter of taste and perhaps future extensibility if=0A=
> > this model is done as one or more YANG modules.  It can certainly be=0A=
> > done in one module, with features for client, server and relay, but it=
=0A=
> > is also ok to have 3 modules for the different functions.  And once=0A=
> > you have these 3 modules, it is natural to have a "common" module,=0A=
> > leading to 4 modules.  In order to keep the number of modules down,=0A=
> > perhaps the various -options modules could be merged into the other=0A=
> > 3, probably with a feature each.=0A=
> >=0A=
> > One comment is that it might be wise to avoid having a rfc number in=0A=
> > the identifier.  What happens if/when that RFC is revised for any=0A=
> > reason?=0A=
> >=0A=
> >=0A=
> > /martin=0A=
> >=0A=
> >=0A=
> > tom petch <ietfc@btconnect.com> wrote:=0A=
> >>=0A=
> >> Inline <tp>=0A=
> >>=0A=
> >> From: Andy Bierman <andy@yumaworks.com>=0A=
> >> Sent: 20 January 2021 18:32=0A=
> >>=0A=
> >> On Wed, Jan 20, 2021 at 8:41 AM tom petch <ietfc@btconnect.com<mailto:=
ietfc@btconnect.com>> wrote:=0A=
> >> Juergen, Lada, Martin, Andy=0A=
> >>=0A=
> >> I wonder if one of you, or perhaps another on this list, would be will=
ing to give advice on the=0A=
> >> structuring of  the YANG module for DHCP.  It has been revised and res=
tructured several times and, to me, is not progressing.=0A=
> >>=0A=
> >> It models three roles - client, server, relay - and a dozen optional f=
unction which can appear in one or more roles.  A node will likely have onl=
y one role but may have many options.=0A=
> >>=0A=
> >> There are, at present, seven modules=0A=
> >> server which defines a server identity  based on common identity inter=
 alia=0A=
> >> relay which defines relay identity ditto=0A=
> >> client which defines client identity ditto=0A=
> >> server options which has groupings for each option for a server=0A=
> >> client options which has groupings for each option for a relay=0A=
> >> relay options which has groupings for each option for a client=0A=
> >> common which defines the common identity inter alia=0A=
> >> Since options are common across roles, some groupings are replicated i=
n the three options modules.  Three separate option modules were created to=
 avoid problems with imports as Ian explains below.  The I-D is draft-ietf-=
dhc-dhcpv6-yang=0A=
> >>=0A=
> >> My take is that one module is best, using 'when' or if-feature to sele=
ct, which is what I see with OSPF, PCE, TCP, IGMP and almost everything els=
e but am struggling to convince others, especially  the author Ian.  [IF] i=
n the e-mail extract below=0A=
> >>=0A=
> >> I suggested asking a YANG Doctor, NOT to look at the module but rather=
 to advise on a structure given the requirements to which Ian said that he =
had not had much joy with YANG Doctors.  I append our most recent exchange =
in which he responds to my query as to why there are seven modules; formatt=
ing is a bit of a mess I am afraid.  The posts are to the DHCWG mail list.=
=0A=
> >>=0A=
> >> Any advice appreciated even if it is that Ian is on just the right tra=
ck!=0A=
> >>=0A=
> >>=0A=
> >> Either approach is valid so multi-module vs. single module w/ features=
 is more=0A=
> >> of an overall system maintenance issue.  7 modules seems like a lot fo=
r DHCP but=0A=
> >> I have no objective criteria to back that up.=0A=
> >>=0A=
> >> There is some confusion about the import-stmt, which leads to many YAN=
G modules.=0A=
> >> In compiler terms, importing a module merely makes the symbols availab=
le for parsing in the current module.=0A=
> >> The import-stmt implies no conformance requirements whatsoever.=0A=
> >> Only statements that use the imported module can do that.=0A=
> >> (So a server module importing a module that has client groupings is no=
t actually a problem.)=0A=
> >>=0A=
> >> <tp>=0A=
> >>=0A=
> >> Andy, Juergen,=0A=
> >>=0A=
> >> Thank you for the replies.  What Ian said about the import is=0A=
> >>=0A=
> >>> [IF] The separation of the option modules came at a later stage based=
 on import dependencies of a single options module. When the options module=
 imports the client/server/relay modules so it can augment the relevant mod=
ule based on identity, an implementation also needs to import these modules=
 and will declare them in it=92s capabilities as available even though it d=
oesn=92t implement them. Dividing the options modules avoids the need for d=
eviations.=0A=
> >>=0A=
> >> <tp> that is, the prefix for dhcpv6-server is defined in the server mo=
dule,=0A=
> >>    module ietf-dhcpv6-server {=0A=
> >> ...=0A=
> >>      prefix "dhcpv6-server";=0A=
> >> ...=0A=
> >>      identity server {=0A=
> >>        base "dhcpv6-common:dhcpv6-node";=0A=
> >>        description "DHCPv6 server identity.";      }=0A=
> >>      leaf dhcpv6-node-type {=0A=
> >>        type identityref {=0A=
> >>          base "dhcpv6-common:dhcpv6-node";        }=0A=
> >>        description "Type for a DHCPv6 server.";     }=0A=
> >>=0A=
> >> and the prefix for dhcpv6-relay in the relay module etc so having a si=
ngle module for options which needs to augment options to the server module=
 needs to import the server module so that the dhcpv6-server prefix is defi=
ned, ditto relay and client so the single module for options then imports s=
erver and relay and client modules.=0A=
> >>=0A=
> >> With three options modules, each only imports one of server, relay, cl=
ient but the groupings are then replicated across the three options modules=
.=0A=
> >>=0A=
> >> Logical if you agree with the initial premise (which I do not!).=0A=
> >>=0A=
> >> The seven YANG modules are all in the one I-D of 56pp with the tree di=
agrams 12pp.=0A=
> >>=0A=
> >> Tom Petch=0A=
> >> (on European time:-(=0A=
> >>=0A=
> >> YANG Conformance for a single module is better defined than for multip=
le related modules.=0A=
> >> The YANG Packages work could fix that someday.=0A=
> >>=0A=
> >> Tom Petch=0A=
> >>=0A=
> >>=0A=
> >> Andy=0A=
> >>=0A=
> >>=0A=
> >> On 19/01/2021 11:25, tom petch wrote:=0A=
> >>> ________________________________________=0A=
> >>> From: dhcwg <dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> o=
n behalf of ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> <ianfarrer@gmx.com<=
mailto:ianfarrer@gmx.com>>=0A=
> >>> Sent: 19 January 2021 07:37=0A=
> >>>=0A=
> >>> Thanks for your comments. Please see inline below.=0A=
> >>>=0A=
> >>> Ian=0A=
> >>>=0A=
> >>> On 14. Jan 2021, at 13:40, t petch <ietfa@btconnect.com<mailto:ietfa@=
btconnect.com><mailto:ietfa@btconnect.com<mailto:ietfa@btconnect.com>>> wro=
te:=0A=
> >>>=0A=
> >>> Ian=0A=
> >>>=0A=
> >>> I do not understand this I-D; I have tracked it for a number of years=
 and my understanding of it is diminishing.=0A=
> >>>=0A=
> >>> Currently, it is seven YANG modules: why?=0A=
> >>>=0A=
> >>> [if - The separation into client/server/relay, and DHCP options has b=
een in the draft since -05 and the changes were presented and discussed at =
IETF101 - I=92ve described the reasoning for this split in the next answer.=
 Beyond that, the common module was added to avoid (well reduce as you poin=
t out below) duplication.=0A=
> >>>=0A=
> >>> The separation of the option modules came at a later stage based on i=
mport dependencies of a single options module. When the options module impo=
rts the client/server/relay modules so it can augment the relevant module b=
ased on identity, an implementation also needs to import these modules and =
will declare them in it=92s capabilities as available even though it doesn=
=92t implement them. Dividing the options modules avoids the need for devia=
tions.=0A=
> >>>=0A=
> >>> Even though there are 7 modules defined here, the likely hood is that=
 an element implementation would require 3 modules to be implemented (e.g. =
client, common and client options).]=0A=
> >>>=0A=
> >>> [tp] Other WG have models with multiple roles and many options and ha=
ve a single YANG module, using the features of YANG to tailor the module to=
 different configurations.=0A=
> >>>=0A=
> >>> [if - It=92s not really tailoring the module to different configurati=
ons, they are for the most part separate functional elements in the network=
 with any device only implementing one of the client, relay or server funct=
ions.=0A=
> >>>=0A=
> >>> However, even in the case that a device is both a server and a client=
 (e.g. a home gateway with a client on the WAN and a server on the LAN), th=
e likelihood is that these will be done using different software implementa=
tions, so having separate modules for server and client offers implementati=
on flexibility.=0A=
> >>>=0A=
> >>> In the case of a monolithic module with the relevant client/relay/ser=
ver functionality enabled by features, the module would do nothing unless o=
ne or more of the features was enabled, and Is unlikely that you=92d ever e=
nable more than one. Is this approach used by other WGs? Could you point me=
 to some some examples as I've only seen features been used as relatively s=
mall optional extensions used when the bulk of the nodes are common?]=0A=
> >>=0A=
> >> [tp]=0A=
> >> Ian=0A=
> >>=0A=
> >> Almost all the YANG models I know of are single module.  For example,=
=0A=
> >> draft-ietf-ospf-yang supports two versions modelled as identity and 28=
=0A=
> >> options modelled as features.=0A=
> >>=0A=
> >> draft-ietf-tcpm-yang supports client and server as containers with=0A=
> >> if-feature and has other features as well=0A=
> >>=0A=
> >> draft-ietf-pim-igmp-mld-yang supports five versions of two protocol=0A=
> >> using identity=0A=
> >>=0A=
> >> draft-pce-pcep-yang offers the roles of pcc or pce or both using typed=
ef.=0A=
> >>=0A=
> >> And so on and so on.  if-feature, when and suchlike provide the=0A=
> >> necessary customisation.=0A=
> >>=0A=
> >> I think that your problems with options are because the identity are=
=0A=
> >> defined in the wrong place.  The base, the common module (or part of t=
he=0A=
> >> one and only module) should define what is common, what everyone needs=
;=0A=
> >> if there are three roles and a dozen options, than that is where they=
=0A=
> >> need to be defined.=0A=
> >>=0A=
> >> Then there can be an object which is configured with the roles of a=0A=
> >> particular box, client or server or relay, or if required, a combinati=
on=0A=
> >> of the there - simpler if that is out of scope as you suggest.=0A=
> >>=0A=
> >> My starting point would be a dhc container with a leaf for a role and =
then=0A=
> >> containers for client, relay, server, added by augment and controlled =
by=0A=
> >> when pointing at the role.=0A=
> >>=0A=
> >> I will post something to the netmod WG list - there are lots of people=
=0A=
> >> there with greater exposure than mine who can give better guidance tha=
n I.=0A=
> >>=0A=
> >> Tom Petch=0A=
> >>=0A=
> >>> Here you have modelled the options as YANG grouping. The intent of a =
grouping is to provide a block of statements that can be reused so avoiding=
 duplication with the attendant problems.  Here you have the same grouping =
in triplicate in three different YANG modules which seems to me to be the a=
ntithesis of a grouping.=0A=
> >>>=0A=
> >>> [If - We could move the option definitions for "status-code-option-gr=
oup=94 (client, server, relay) and =93rapid-commit-option-group, vendor-spe=
cific-information-option-group; reconfigure-accept-option-group=94 (client,=
 server) into the common module to resolve the duplication. I didn=92t do t=
his previously as the intention was to keep options definitions in the opti=
ons modules for consistency, but it  would be simple to change. ]=0A=
> >>>=0A=
> >>> [tp] Likewise I find the specification of server v client v relay unu=
sual.=0A=
> >>>=0A=
> >>> [If - A similar approach for separated client/server modules is also =
used in RFC8676, where the client and server have discrete function, as wit=
h DHCP.]=0A=
> >>>=0A=
> >>> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show the=
m the YANG and invite comments, rather outline in an abstract way what it i=
s you want to model and see what they suggest; that might well be a single =
YANG module.=0A=
> >>>=0A=
> >>> [if - Yes, I=92d be happy to. Is there someone that you have in mind =
(I=92ve not had much luck with getting YANG doctor input outside of the for=
mal review process in the past)?. I=92m not opposed to changing the way tha=
t the modules are structured on principal, I do however, think that the sep=
aration by functional element is logical and simpler for implementers, and =
I would like to know what the benefits of a single module (or other structu=
re) might be.]=0A=
> >>>=0A=
> >>> [tp]I do have quite a number of detailed comments but do not think th=
em worth making until the I-D seems to me more stable.=0A=
> >>>=0A=
> >>> [if - It=92d be great if you could supply them as well so I can start=
 going though them and fixing what=92s currently fixable in parallel to the=
 discussion above.]=0A=
> >>>=0A=
> >>> Tom Petch=0A=
> >>>=0A=
> >>> On 07/01/2021 16:10, ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mail=
to:ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>> wrote:=0A=
> >>> Hi Tom,=0A=
> >>>=0A=
>=0A=
> --=0A=
> Ladislav Lhotka=0A=
> Head, CZ.NIC Labs=0A=
> PGP Key ID: 0xB8F92B08A9F76C67=0A=


From nobody Thu Jan 21 23:34:08 2021
Return-Path: <ianfarrer@gmx.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DB3DC3A0BF7 for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 23:34:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.918
X-Spam-Level: 
X-Spam-Status: No, score=-1.918 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=gmx.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 198adW7sLanc for <netmod@ietfa.amsl.com>; Thu, 21 Jan 2021 23:34:03 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (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 932393A0C33 for <netmod@ietf.org>; Thu, 21 Jan 2021 23:34:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1611300826; bh=P5HF773EEDJg5k1NX8nYMHGBZ4fH1qcHtkGD8l5elms=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References:To; b=hA7bDPbnH1AEmBSEpHzW5pagg2K98V61JB0rRGPtUjKY5tzIiwbdcn8lkVABVV84m yZnreRlZ2VcB75zq1ktUqHvrZCvFKNG3zl4H1uKYUpf4I6hpNoBO5fNTLxPpFCpsuk hQL8a8z3ktNNucA6YYZA5X0CCAiHJvNpWi4LDI2I=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Received: from mbp-big-sur.fritz.box ([78.35.205.160]) by mail.gmx.net (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MJE6L-1lHtcv2I4R-00KdKN; Fri, 22 Jan 2021 08:33:46 +0100
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.40.0.2.32\))
From: ianfarrer@gmx.com
In-Reply-To: <AM7PR07MB62481A4C3BCD3BA72D0A7B89A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
Date: Fri, 22 Jan 2021 08:33:43 +0100
Cc: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj+ietf@4668.se>, "ladislav.lhotka@nic.cz" <ladislav.lhotka@nic.cz>, "andy@yumaworks.com" <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>, "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>
Content-Transfer-Encoding: quoted-printable
Message-Id: <22C508AF-39A8-4F14-BB7E-3B47BBA96C64@gmx.com>
References: <20210121.134211.1244086498697136841.id@4668.se> <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz> <AM7PR07MB62480EF0BDB11B95820598EEA0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <20210121.180757.1756334498885863433.id@4668.se> <AM7PR07MB62481A4C3BCD3BA72D0A7B89A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>
To: tom petch <ietfc@btconnect.com>
X-Mailer: Apple Mail (2.3654.40.0.2.32)
X-Provags-ID: V03:K1:fdgakXWP9wSjSbOpRqoAvgoR35jjfgl5LhM/gK5nfZZOhl+f8gP kq8k6xf9QTZQLThMLYoriV6GB4hetBkb4HzhFWYiZyVugpHy8RS9VcLv+WyYyuTdm/SKGGP 59ZnjatbYBMgVmcCw73ptLd6Ao00q01bzXd0p22xIBsI+xSjPBwc7nF63T3ARwJeEapYzOv S1JBicdjQ7kn9Miz1vTzg==
X-UI-Out-Filterresults: notjunk:1;V03:K0:9IsXzGGNWKs=:WvCLGZKDaqR4y8UtdTGHwH TvCJ9gbsWJEuw0LO4Ie/KjDaiUw9M9HtY7HZYh3DuohBapy2PjRYt5vLTE6ItQnKG8Tomm82s i2DUsSnDzJxwQGTDF2ofELJ14m0SKA/iNNvhwXJt/j8ISKzViD8ovDMHdilG/D1UOwr69pzmc 08ARI3UILmkd18bfu0hz5zOEsuaXGeR3jwks+D4rMdLxG1Jx4bTjupupo/jvGMRm+933RY3iL qzxVbUmnu4Hpgfq5494JF1k1dZ+QK2n4Woxfm0EWonYQR8PAQPE6oYbQkHm5DnNr1D4zL3s/s F8zRvuuqyb88otw37nQtCCg6JRt5HkqOtCMuJIruzjxGcPHOWHS97myrlW09WAvQ3woVkP0gj KTnXdD92iXAHPIPC9v033e/YfaebGfMo156znUFAUUgZpyLHiMMcFJBpIuqUBA99bPWFR56vm YfqLQiwqc7NhdsQwIgKoIY/TVaPDq/qI9U8+grpe/ss+0F2pX0MuwKtmYWShRHpTEuWQe1TEw VnyyTl0UKLXMRW+LR5oKNtto42kp6B3OWd89khuKYfAqHnWnZgYuzOCO6cfO3MI6SoOIe+1oH 0rCwbr0ilPNzTR8exI4gZK/7VGbU2Ym26UvajDCiqnMvDxvR/nAhEnbj0MGNNWx/7h5A+JUba JarTCM15xrpRCEkvfOZHtUBnBwScdJBnJal1Qrq1w9xo6A/n+CO8eu7FTgT+X0aRlagdX48Hd qX7Tohyb64ppJ0G/S6hGiwNpL2WwGu6n8UAAH1gLru3lVhCuNmPsBaJlQnrJP8DVeYvYuQP5w yH11KU8FMV8XA8bL2U2S9KwRiphG91H7bKo93o/hT5Y1TJjPf7rKdAXi1ufqvFkSM3eXG1JtS Ci0LUijOMVD7+UiwZzbw==
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/EtZlKe0qbT4U--Wued7-wx6-EyE>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jan 2021 07:34:07 -0000

I=E2=80=99m planning to restructure so that the common module is =
imported by client, server and relay, which means that the identity/role =
is no longer needed for this. (I need to look at whether the identities =
are needed for other reasons, such as how the modules will be extended =
with additional option definitions etc.). This seems simpler to me and =
avoids the common module needing to import all 3 of the other modules =
with the dependency problems that introduces.

Ian

> On 21. Jan 2021, at 18:48, tom petch <ietfc@btconnect.com> wrote:
>=20
> From: Martin Bj=C3=B6rklund <mbj+ietf@4668.se>
> Sent: 21 January 2021 17:07
>=20
> tom petch <ietfc@btconnect.com> wrote:
>> From: Ladislav Lhotka <ladislav.lhotka@nic.cz>
>> Sent: 21 January 2021 12:58
>>=20
>> Hi,
>>=20
>> in my YD review 4.5 years ago I actually recommended to use separate
>> modules:
>>=20
>> =
https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_ICr=
KPs4/
>>=20
>> I think it is a matter of how much the different part overlap. For an
>> implementer, it seems to be easier to pick just the relevant parts,
>> provided they are easy to locate and identify.
>>=20
>> <tp>
>> Thank you for all the responses;  I did look at the data tracker to =
see if there had been any reviews, thinking that a previous review would =
be  the right place to start, and it said 'No reviews'!  Perhaps these =
time out.
>>=20
>> I am not comfortable with the seven modules seeing four as better, a =
common which is then augmented with server, relay, client, with the =
common containing the role(s), whereas at present it is the three role =
modules that contain the role which then drives having the three option =
modules so each option module only imports one role module, and that is =
the bit I find most awkward.
>>=20
>> How best to select the three roles?  As I said upthread, I have seen =
the role specified with features, with augment/when based on identityref =
(although not with the three identity defined in the three role =
modules), presence containers and so on (I have probably seen that and =
more in the history of this I-D:-).
>=20
> Is "role" the same as "node-type"?  Each of these module define their
> own copy of a leaf called "dhcpv6-node-type".  I am not sure I
> understand what purpose this leaf serves.  It seems to me that it can
> be removed, but perhaps I am missing something.
>=20
> <tp>
>=20
> Me too.  I am assuming that it is intended to define the role but I =
could be quite wrong.  Need input from Ian on this.
>=20
>> My instinct would be to put the three identity definitions into =
common with a dhcpv6 container, which is then augmented by the three =
role modules, the YANG 'when' referring to role leaf in the common.  Any =
better ways?
>=20
> Why do augment at all?  Why not just have a top-level container in
> each module; 'dhcpv6-client', 'dhcpv6-server' etc?
>=20
> <tp>
> Yes, I am just lifting the structure of another I-D probably for no =
good engineering reason:-(.
>=20
> Tom Petch
>=20
> /martin
>=20
>=20
>=20
>>=20
>> Tom Petch
>>=20
>> Lada
>>=20
>> On 21. 01. 21 13:42, Martin Bj=C3=B6rklund wrote:
>>> Hi,
>>>=20
>>> I think it is a matter of taste and perhaps future extensibility if
>>> this model is done as one or more YANG modules.  It can certainly be
>>> done in one module, with features for client, server and relay, but =
it
>>> is also ok to have 3 modules for the different functions.  And once
>>> you have these 3 modules, it is natural to have a "common" module,
>>> leading to 4 modules.  In order to keep the number of modules down,
>>> perhaps the various -options modules could be merged into the other
>>> 3, probably with a feature each.
>>>=20
>>> One comment is that it might be wise to avoid having a rfc number in
>>> the identifier.  What happens if/when that RFC is revised for any
>>> reason?
>>>=20
>>>=20
>>> /martin
>>>=20
>>>=20
>>> tom petch <ietfc@btconnect.com> wrote:
>>>>=20
>>>> Inline <tp>
>>>>=20
>>>> From: Andy Bierman <andy@yumaworks.com>
>>>> Sent: 20 January 2021 18:32
>>>>=20
>>>> On Wed, Jan 20, 2021 at 8:41 AM tom petch =
<ietfc@btconnect.com<mailto:ietfc@btconnect.com>> wrote:
>>>> Juergen, Lada, Martin, Andy
>>>>=20
>>>> I wonder if one of you, or perhaps another on this list, would be =
willing to give advice on the
>>>> structuring of  the YANG module for DHCP.  It has been revised and =
restructured several times and, to me, is not progressing.
>>>>=20
>>>> It models three roles - client, server, relay - and a dozen =
optional function which can appear in one or more roles.  A node will =
likely have only one role but may have many options.
>>>>=20
>>>> There are, at present, seven modules
>>>> server which defines a server identity  based on common identity =
inter alia
>>>> relay which defines relay identity ditto
>>>> client which defines client identity ditto
>>>> server options which has groupings for each option for a server
>>>> client options which has groupings for each option for a relay
>>>> relay options which has groupings for each option for a client
>>>> common which defines the common identity inter alia
>>>> Since options are common across roles, some groupings are =
replicated in the three options modules.  Three separate option modules =
were created to avoid problems with imports as Ian explains below.  The =
I-D is draft-ietf-dhc-dhcpv6-yang
>>>>=20
>>>> My take is that one module is best, using 'when' or if-feature to =
select, which is what I see with OSPF, PCE, TCP, IGMP and almost =
everything else but am struggling to convince others, especially  the =
author Ian.  [IF] in the e-mail extract below
>>>>=20
>>>> I suggested asking a YANG Doctor, NOT to look at the module but =
rather to advise on a structure given the requirements to which Ian said =
that he had not had much joy with YANG Doctors.  I append our most =
recent exchange in which he responds to my query as to why there are =
seven modules; formatting is a bit of a mess I am afraid.  The posts are =
to the DHCWG mail list.
>>>>=20
>>>> Any advice appreciated even if it is that Ian is on just the right =
track!
>>>>=20
>>>>=20
>>>> Either approach is valid so multi-module vs. single module w/ =
features is more
>>>> of an overall system maintenance issue.  7 modules seems like a lot =
for DHCP but
>>>> I have no objective criteria to back that up.
>>>>=20
>>>> There is some confusion about the import-stmt, which leads to many =
YANG modules.
>>>> In compiler terms, importing a module merely makes the symbols =
available for parsing in the current module.
>>>> The import-stmt implies no conformance requirements whatsoever.
>>>> Only statements that use the imported module can do that.
>>>> (So a server module importing a module that has client groupings is =
not actually a problem.)
>>>>=20
>>>> <tp>
>>>>=20
>>>> Andy, Juergen,
>>>>=20
>>>> Thank you for the replies.  What Ian said about the import is
>>>>=20
>>>>> [IF] The separation of the option modules came at a later stage =
based on import dependencies of a single options module. When the =
options module imports the client/server/relay modules so it can augment =
the relevant module based on identity, an implementation also needs to =
import these modules and will declare them in it=E2=80=99s capabilities =
as available even though it doesn=E2=80=99t implement them. Dividing the =
options modules avoids the need for deviations.
>>>>=20
>>>> <tp> that is, the prefix for dhcpv6-server is defined in the server =
module,
>>>>   module ietf-dhcpv6-server {
>>>> ...
>>>>     prefix "dhcpv6-server";
>>>> ...
>>>>     identity server {
>>>>       base "dhcpv6-common:dhcpv6-node";
>>>>       description "DHCPv6 server identity.";      }
>>>>     leaf dhcpv6-node-type {
>>>>       type identityref {
>>>>         base "dhcpv6-common:dhcpv6-node";        }
>>>>       description "Type for a DHCPv6 server.";     }
>>>>=20
>>>> and the prefix for dhcpv6-relay in the relay module etc so having a =
single module for options which needs to augment options to the server =
module needs to import the server module so that the dhcpv6-server =
prefix is defined, ditto relay and client so the single module for =
options then imports server and relay and client modules.
>>>>=20
>>>> With three options modules, each only imports one of server, relay, =
client but the groupings are then replicated across the three options =
modules.
>>>>=20
>>>> Logical if you agree with the initial premise (which I do not!).
>>>>=20
>>>> The seven YANG modules are all in the one I-D of 56pp with the tree =
diagrams 12pp.
>>>>=20
>>>> Tom Petch
>>>> (on European time:-(
>>>>=20
>>>> YANG Conformance for a single module is better defined than for =
multiple related modules.
>>>> The YANG Packages work could fix that someday.
>>>>=20
>>>> Tom Petch
>>>>=20
>>>>=20
>>>> Andy
>>>>=20
>>>>=20
>>>> On 19/01/2021 11:25, tom petch wrote:
>>>>> ________________________________________
>>>>> From: dhcwg =
<dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> on behalf of =
ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> =
<ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>>
>>>>> Sent: 19 January 2021 07:37
>>>>>=20
>>>>> Thanks for your comments. Please see inline below.
>>>>>=20
>>>>> Ian
>>>>>=20
>>>>> On 14. Jan 2021, at 13:40, t petch =
<ietfa@btconnect.com<mailto:ietfa@btconnect.com><mailto:ietfa@btconnect.co=
m<mailto:ietfa@btconnect.com>>> wrote:
>>>>>=20
>>>>> Ian
>>>>>=20
>>>>> I do not understand this I-D; I have tracked it for a number of =
years and my understanding of it is diminishing.
>>>>>=20
>>>>> Currently, it is seven YANG modules: why?
>>>>>=20
>>>>> [if - The separation into client/server/relay, and DHCP options =
has been in the draft since -05 and the changes were presented and =
discussed at IETF101 - I=E2=80=99ve described the reasoning for this =
split in the next answer. Beyond that, the common module was added to =
avoid (well reduce as you point out below) duplication.
>>>>>=20
>>>>> The separation of the option modules came at a later stage based =
on import dependencies of a single options module. When the options =
module imports the client/server/relay modules so it can augment the =
relevant module based on identity, an implementation also needs to =
import these modules and will declare them in it=E2=80=99s capabilities =
as available even though it doesn=E2=80=99t implement them. Dividing the =
options modules avoids the need for deviations.
>>>>>=20
>>>>> Even though there are 7 modules defined here, the likely hood is =
that an element implementation would require 3 modules to be implemented =
(e.g. client, common and client options).]
>>>>>=20
>>>>> [tp] Other WG have models with multiple roles and many options and =
have a single YANG module, using the features of YANG to tailor the =
module to different configurations.
>>>>>=20
>>>>> [if - It=E2=80=99s not really tailoring the module to different =
configurations, they are for the most part separate functional elements =
in the network with any device only implementing one of the client, =
relay or server functions.
>>>>>=20
>>>>> However, even in the case that a device is both a server and a =
client (e.g. a home gateway with a client on the WAN and a server on the =
LAN), the likelihood is that these will be done using different software =
implementations, so having separate modules for server and client offers =
implementation flexibility.
>>>>>=20
>>>>> In the case of a monolithic module with the relevant =
client/relay/server functionality enabled by features, the module would =
do nothing unless one or more of the features was enabled, and Is =
unlikely that you=E2=80=99d ever enable more than one. Is this approach =
used by other WGs? Could you point me to some some examples as I've only =
seen features been used as relatively small optional extensions used =
when the bulk of the nodes are common?]
>>>>=20
>>>> [tp]
>>>> Ian
>>>>=20
>>>> Almost all the YANG models I know of are single module.  For =
example,
>>>> draft-ietf-ospf-yang supports two versions modelled as identity and =
28
>>>> options modelled as features.
>>>>=20
>>>> draft-ietf-tcpm-yang supports client and server as containers with
>>>> if-feature and has other features as well
>>>>=20
>>>> draft-ietf-pim-igmp-mld-yang supports five versions of two protocol
>>>> using identity
>>>>=20
>>>> draft-pce-pcep-yang offers the roles of pcc or pce or both using =
typedef.
>>>>=20
>>>> And so on and so on.  if-feature, when and suchlike provide the
>>>> necessary customisation.
>>>>=20
>>>> I think that your problems with options are because the identity =
are
>>>> defined in the wrong place.  The base, the common module (or part =
of the
>>>> one and only module) should define what is common, what everyone =
needs;
>>>> if there are three roles and a dozen options, than that is where =
they
>>>> need to be defined.
>>>>=20
>>>> Then there can be an object which is configured with the roles of a
>>>> particular box, client or server or relay, or if required, a =
combination
>>>> of the there - simpler if that is out of scope as you suggest.
>>>>=20
>>>> My starting point would be a dhc container with a leaf for a role =
and then
>>>> containers for client, relay, server, added by augment and =
controlled by
>>>> when pointing at the role.
>>>>=20
>>>> I will post something to the netmod WG list - there are lots of =
people
>>>> there with greater exposure than mine who can give better guidance =
than I.
>>>>=20
>>>> Tom Petch
>>>>=20
>>>>> Here you have modelled the options as YANG grouping. The intent of =
a grouping is to provide a block of statements that can be reused so =
avoiding duplication with the attendant problems.  Here you have the =
same grouping in triplicate in three different YANG modules which seems =
to me to be the antithesis of a grouping.
>>>>>=20
>>>>> [If - We could move the option definitions for =
"status-code-option-group=E2=80=9D (client, server, relay) and =
=E2=80=9Crapid-commit-option-group, =
vendor-specific-information-option-group; =
reconfigure-accept-option-group=E2=80=9D (client, server) into the =
common module to resolve the duplication. I didn=E2=80=99t do this =
previously as the intention was to keep options definitions in the =
options modules for consistency, but it  would be simple to change. ]
>>>>>=20
>>>>> [tp] Likewise I find the specification of server v client v relay =
unusual.
>>>>>=20
>>>>> [If - A similar approach for separated client/server modules is =
also used in RFC8676, where the client and server have discrete =
function, as with DHCP.]
>>>>>=20
>>>>> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show =
them the YANG and invite comments, rather outline in an abstract way =
what it is you want to model and see what they suggest; that might well =
be a single YANG module.
>>>>>=20
>>>>> [if - Yes, I=E2=80=99d be happy to. Is there someone that you have =
in mind (I=E2=80=99ve not had much luck with getting YANG doctor input =
outside of the formal review process in the past)?. I=E2=80=99m not =
opposed to changing the way that the modules are structured on =
principal, I do however, think that the separation by functional element =
is logical and simpler for implementers, and I would like to know what =
the benefits of a single module (or other structure) might be.]
>>>>>=20
>>>>> [tp]I do have quite a number of detailed comments but do not think =
them worth making until the I-D seems to me more stable.
>>>>>=20
>>>>> [if - It=E2=80=99d be great if you could supply them as well so I =
can start going though them and fixing what=E2=80=99s currently fixable =
in parallel to the discussion above.]
>>>>>=20
>>>>> Tom Petch
>>>>>=20
>>>>> On 07/01/2021 16:10, =
ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mailto:ianfarrer@gmx.com<mailt=
o:ianfarrer@gmx.com>> wrote:
>>>>> Hi Tom,
>>>>>=20
>>=20
>> --
>> Ladislav Lhotka
>> Head, CZ.NIC Labs
>> PGP Key ID: 0xB8F92B08A9F76C67


From nobody Fri Jan 22 02:06:48 2021
Return-Path: <ietfc@btconnect.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A3E8E3A11FE for <netmod@ietfa.amsl.com>; Fri, 22 Jan 2021 02:06:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=btconnect.onmicrosoft.com
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 eMCYrgOFH3AU for <netmod@ietfa.amsl.com>; Fri, 22 Jan 2021 02:06:43 -0800 (PST)
Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150103.outbound.protection.outlook.com [40.107.15.103]) (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 208C33A11FF for <netmod@ietf.org>; Fri, 22 Jan 2021 02:06:42 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hga0m3BrLHQjFzLe/BXvSWDy5b7f+KwKow4C9bFHDQyeHdEs115WgQLbSigq23p3U1TfAtALHO0/vqLhNRfXJ+5/mMws5o0iAH1fEBRc550o0GOE02ywEfZBzuyncyrnIQsFNAm0gnIrl8dy0VjmV0SiX247fTUOF+WYzkIHoeINJf5GqgWdaYNM5po85kZpTqDIla16Yt0I96TzjhXqDomQOjjiS6D8j2NPWgggmxgXIL7hLJAJx5KbXHaaXSXEBuHYc1fSf+KXtGo3YD6ElyxFd+PMdp/Peu18BRU00Z5TwlkJwdHXcbqDZYVPTauvlLCqlQG+c3CSQhMZwEyFyw==
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=eb03ESi/mJfJSOtoraPOi1OiDNak1nHSM45D+XhcIn4=; b=SFLkkt5tV73pwyZXH5CDHjkuW4hqR2Z6c9bDw9jLtpr0aOjTvQIJUyT7cB4OmRyM4sOFuLsUTRFcXl2DmNsmvdJRfogC8cRqAUuc1PGSvoCLPr917pfdek5BQ31JIabPxEUPGi6cQ4ZccBbfgYWTe/VHM/gPLM8nAH1UwEpauhpYAaHhcWqTidFLgdzYWLvsreZSs3sKCWWUUBAkmwhmj8EryskOApqDYFOA7tWTq1uZp5hAMziAhym7lPCtGMDMiJlOCfSDbWm4u1cqJ7Z5scthtIt9Y9GEZu2qn0BmZL9Fux6yRUprS28augiCHD33HGunuw+1eRmrTi0dqMmhzg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=btconnect.com; dmarc=pass action=none header.from=btconnect.com; dkim=pass header.d=btconnect.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector2-btconnect-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eb03ESi/mJfJSOtoraPOi1OiDNak1nHSM45D+XhcIn4=; b=Rj7VXSeCxUm7kB1GOIPlJYGTuPhYzyPRrmLeo0GMFtPlQdXmuc/RbafkLUz/oJovDaqR+dcjGbH2u6ZcLvuf7uuYAXPPAKeh+MV90ltt9pat9AuCjgPlIOO0rOd23FJ41oyqzEzsvluuEvn9UHBquJNde/9wCvzy2DGBfLafdKU=
Received: from (2603:10a6:20b:134::11) by AM6PR0702MB3798.eurprd07.prod.outlook.com (2603:10a6:209:3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.5; Fri, 22 Jan 2021 10:06:40 +0000
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::8115:3afd:18f6:c6d1]) by AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::8115:3afd:18f6:c6d1%8]) with mapi id 15.20.3805.007; Fri, 22 Jan 2021 10:06:40 +0000
From: tom petch <ietfc@btconnect.com>
To: "ianfarrer@gmx.com" <ianfarrer@gmx.com>
CC: =?Windows-1252?Q?Martin_Bj=F6rklund?= <mbj+ietf@4668.se>, "ladislav.lhotka@nic.cz" <ladislav.lhotka@nic.cz>, "andy@yumaworks.com" <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>, "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>
Thread-Topic: Structuring a DHCP module
Thread-Index: AQHW70sVzeGJg/CSikuUFwnormzctaow1pyAgAEdNOWAABNGgIAABKIAgAA9LPKAAAhzgIAACCuZgADpuYCAACNFOQ==
Date: Fri, 22 Jan 2021 10:06:40 +0000
Message-ID: <AM7PR07MB624813642FF06D0CB56366FCA0A00@AM7PR07MB6248.eurprd07.prod.outlook.com>
References: <20210121.134211.1244086498697136841.id@4668.se> <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz> <AM7PR07MB62480EF0BDB11B95820598EEA0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <20210121.180757.1756334498885863433.id@4668.se> <AM7PR07MB62481A4C3BCD3BA72D0A7B89A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com>, <22C508AF-39A8-4F14-BB7E-3B47BBA96C64@gmx.com>
In-Reply-To: <22C508AF-39A8-4F14-BB7E-3B47BBA96C64@gmx.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: gmx.com; dkim=none (message not signed) header.d=none;gmx.com; dmarc=none action=none header.from=btconnect.com;
x-originating-ip: [86.146.121.140]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4ce82408-7c13-411f-753b-08d8bebd69c9
x-ms-traffictypediagnostic: AM6PR0702MB3798:
x-microsoft-antispam-prvs: <AM6PR0702MB37982D9153CFCEC8FEFCC24AA0A00@AM6PR0702MB3798.eurprd07.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: oWCYCKAfj/TdxtJuY78lYYLUWQheyF7TrKiKlG+iuGyGhUDC+iOb0UGP+mvjOiBRZsCD4LyJymnYEpxToVZjzNq9q5rA6aCQAtocPLaTXXiSgbeh4RpEBMAeFrf+enkV1P07P9GdeohVuM9v3/YLD2YuCGdyVdPv1PhF51+6g0Krj+XiAvnSxAklHognMTisANjSum/+eIbXsDJhBwGweiVz01mf+s5g6YhuNEBqGaNn/vah/yia5OtToyFztQuz1MWmge4zwu+wyckr8xwwMmJvLjMAB2WAI9HJttXBlJTNDX/+sHnOoZghn+CC+3RY3BnT1USOyPR2Ock+9UMO2gMSOqEbRIcEiDab9Abw0px7wxwKDHjbCB0Dt+SEYbZy/0fcjrl0upjKewoeI2kDgYvz2WwF+5P56PXzNeWfa4LqqWXxrSSeBcZFU6g/aOZ4hflKm4N3TKDJ+mqc+aqHCHFw+kXEzQaFWnhY0fo7eaMlP+PeszBNHVUvKl1+qvwvjR/QhcuhtDaF5JXK9Yk+7Vv5hhcti1IqZpw8s5rv+toAgHtfK+x1lcQqOquMUtcWPpGqKEd/laztc2YLjhFJZNfhGpVxQxODw4yn7L+KI2N7ZHvJfX6FuoJIs5jWKT0t2UpBB9q2KWORLnEZqqd+Qw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:AM7PR07MB6248.eurprd07.prod.outlook.com; PTR:; CAT:NONE;  SFS:(366004)(376002)(39860400002)(396003)(136003)(346002)(86362001)(966005)(33656002)(52536014)(2906002)(54906003)(83380400001)(9686003)(7696005)(8936002)(316002)(53546011)(5660300002)(6506007)(3480700007)(55016002)(8676002)(478600001)(66946007)(71200400001)(66476007)(186003)(26005)(66574015)(66446008)(64756008)(66556008)(30864003)(6916009)(91956017)(4326008)(76116006)(518174003); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?Windows-1252?Q?xRNrPqk6CnD539sr7NC2hRmwLyHqynVKZoSCYk1yh6JnedEbbffAfen5?= =?Windows-1252?Q?7LLQxVIMg5U64NwyXWrDt0bfb3eYPBPrtGaV508/+S7D1B4nKW2uFfv4?= =?Windows-1252?Q?rFJZK20VF2onlZfTGQNch0Rqw8/oopXTc9nPuC3m0DwD0H8m9nmiDZlu?= =?Windows-1252?Q?XCQ4XZ1cVbooAV9XcgDfyplcDCcg7U5Hmm6duycNuDQfKWYwCLTdht+g?= =?Windows-1252?Q?rN2D3eUo5vrv/hp3a6CKg3BOl/yzhHlcm4f1BNliy0wqJev/vNYDYGaI?= =?Windows-1252?Q?QkiI5FtQnG0Xgg01TEropF+D3ZWaXGxm3G1TGJkMiX4UdaRIbQVu7hmo?= =?Windows-1252?Q?Ia80L2e4acLJjGRb8Y3avZUUzYB3Ys25rkTBOcsdTthcNnmW2yzph/w+?= =?Windows-1252?Q?1m5e6rfMDael6iUhVfNpLGeQP3QBoMZQB69Y/Atxz51E4wMBVQWhgdo8?= =?Windows-1252?Q?n2+n37NdNhvhjy8wmoO3McbydOdNW4ggH7Kqvrz43MfoaSlDTGreEhXF?= =?Windows-1252?Q?6ntbkXscsv4yJe8pkC4HTejFIEHxR0g5QiKahVdqFAW1CxL6uwDdOnnM?= =?Windows-1252?Q?5Mq+ZTs6IZMHuT18Ox4+H/3VGPjlBLjdrXB0/1PsdCVjA2hZF6OPXUWv?= =?Windows-1252?Q?pGufMfQ7wmGrtQOrt0sC0U77MT/ZcC3XTmA1xagLX7vDiSyWDYZOUQ8k?= =?Windows-1252?Q?UmZ5aruYXnPvIppJuOd7+2nwQ3TAdED0soLwAgvP0eZgAiswjBg4wpcd?= =?Windows-1252?Q?2XDLMYu8wS/hwHEKSg4fu4rrvpn3ifjbrMAnG5vWnG/2wkaddfVYSV9p?= =?Windows-1252?Q?6jRMIHutfJnrsa2VM8o8vBfGqSEw2d6MIFW95s0pfqJ8gT34XN7aZZM5?= =?Windows-1252?Q?lixba7MlPu39m1EMOvL3PsTqdLM7Z7ADQEwDyrQ4CS16SBBYy7f0xqNV?= =?Windows-1252?Q?+JJwtc/TaywuxBb7a8Os2aTYuuvKgHsYbl6xvj6i65VY+FXS+bqkIjid?= =?Windows-1252?Q?IQRHxkY0Le+jbrzm8ATT2Xo78VXLZx2sPB23/tP9ct7ErOFyEgSzTSOi?= =?Windows-1252?Q?/MYilWAFbZIwCMiy1SEcJQv+HJMePX7Ywi1GD64TyfXV8k6WcJzKANEo?= =?Windows-1252?Q?GW9pri0Xt9D+FzwvojI110zb?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR07MB6248.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4ce82408-7c13-411f-753b-08d8bebd69c9
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2021 10:06:40.4806 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 2i106Vm1anWPNKY+DvBejBfThKLshxmSpQPbhSvR1kKxK/NYfZMShdLKGCxBb59uVctIGjf78R73KTPH615gcQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0702MB3798
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/-gaoS-gTCNAs6mlHwfjZ2El_3oU>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jan 2021 10:06:47 -0000

From: ianfarrer@gmx.com <ianfarrer@gmx.com>=0A=
Sent: 22 January 2021 07:33=0A=
=0A=
I=92m planning to restructure so that the common module is imported by clie=
nt, server and relay, which means that the identity/role is no longer neede=
d for this. (I need to look at whether the identities are needed for other =
reasons, such as how the modules will be extended with additional option de=
finitions etc.). This seems simpler to me and avoids the common module need=
ing to import all 3 of the other modules with the dependency problems that =
introduces.=0A=
=0A=
<tp>=0A=
Sounds like a good idea to me.=0A=
=0A=
Does this address Martin's comment about not understanding the purpose of=
=0A=
 a leaf called "dhcpv6-node-type"?=0A=
=0A=
For me. if identities are needed, they belong in the common module so all n=
ode types have access to them (my instinct would be to specify them even if=
 they are not needed at present on the grounds that they likely will be).  =
Likewise, if there is a need to know the node type, I see that also as part=
 of a common module but then, as I said before, I am more used to, more com=
fortable with, a single module.  I have great respect for Lada's recommenda=
tions so if he sees three modules as best, I will take that on board.  (You=
 will have seen the comments up-thread from others about the support from t=
ools offering somewhat more with a single module).  =0A=
=0A=
Another point where different models take different views is whether or not=
 there should be a leaf to enable the function, be it server, relay, client=
 or some combination thereof; some do, others just say that if the module i=
s implemented on a node then of course it is enabled!  =0A=
=0A=
Another thought, if a node only implements the relay module, say, and there=
 is no leaf for node type, can you test for that in a module which wants to=
 augment the common module only if relay is implemented and/or enabled?   A=
 presence container would do it, probably other ways as well, but I cannot =
recall seeing that done.=0A=
=0A=
Tom Petch =0A=
>=0A=
=0A=
=0A=
Ian=0A=
=0A=
> On 21. Jan 2021, at 18:48, tom petch <ietfc@btconnect.com> wrote:=0A=
>=0A=
> From: Martin Bj=F6rklund <mbj+ietf@4668.se>=0A=
> Sent: 21 January 2021 17:07=0A=
>=0A=
> tom petch <ietfc@btconnect.com> wrote:=0A=
>> From: Ladislav Lhotka <ladislav.lhotka@nic.cz>=0A=
>> Sent: 21 January 2021 12:58=0A=
>>=0A=
>> Hi,=0A=
>>=0A=
>> in my YD review 4.5 years ago I actually recommended to use separate=0A=
>> modules:=0A=
>>=0A=
>> https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_I=
CrKPs4/=0A=
>>=0A=
>> I think it is a matter of how much the different part overlap. For an=0A=
>> implementer, it seems to be easier to pick just the relevant parts,=0A=
>> provided they are easy to locate and identify.=0A=
>>=0A=
>> <tp>=0A=
>> Thank you for all the responses;  I did look at the data tracker to see =
if there had been any reviews, thinking that a previous review would be  th=
e right place to start, and it said 'No reviews'!  Perhaps these time out.=
=0A=
>>=0A=
>> I am not comfortable with the seven modules seeing four as better, a com=
mon which is then augmented with server, relay, client, with the common con=
taining the role(s), whereas at present it is the three role modules that c=
ontain the role which then drives having the three option modules so each o=
ption module only imports one role module, and that is the bit I find most =
awkward.=0A=
>>=0A=
>> How best to select the three roles?  As I said upthread, I have seen the=
 role specified with features, with augment/when based on identityref (alth=
ough not with the three identity defined in the three role modules), presen=
ce containers and so on (I have probably seen that and more in the history =
of this I-D:-).=0A=
>=0A=
> Is "role" the same as "node-type"?  Each of these module define their=0A=
> own copy of a leaf called "dhcpv6-node-type".  I am not sure I=0A=
> understand what purpose this leaf serves.  It seems to me that it can=0A=
> be removed, but perhaps I am missing something.=0A=
>=0A=
> <tp>=0A=
>=0A=
> Me too.  I am assuming that it is intended to define the role but I could=
 be quite wrong.  Need input from Ian on this.=0A=
>=0A=
>> My instinct would be to put the three identity definitions into common w=
ith a dhcpv6 container, which is then augmented by the three role modules, =
the YANG 'when' referring to role leaf in the common.  Any better ways?=0A=
>=0A=
> Why do augment at all?  Why not just have a top-level container in=0A=
> each module; 'dhcpv6-client', 'dhcpv6-server' etc?=0A=
>=0A=
> <tp>=0A=
> Yes, I am just lifting the structure of another I-D probably for no good =
engineering reason:-(.=0A=
>=0A=
> Tom Petch=0A=
>=0A=
> /martin=0A=
>=0A=
>=0A=
>=0A=
>>=0A=
>> Tom Petch=0A=
>>=0A=
>> Lada=0A=
>>=0A=
>> On 21. 01. 21 13:42, Martin Bj=F6rklund wrote:=0A=
>>> Hi,=0A=
>>>=0A=
>>> I think it is a matter of taste and perhaps future extensibility if=0A=
>>> this model is done as one or more YANG modules.  It can certainly be=0A=
>>> done in one module, with features for client, server and relay, but it=
=0A=
>>> is also ok to have 3 modules for the different functions.  And once=0A=
>>> you have these 3 modules, it is natural to have a "common" module,=0A=
>>> leading to 4 modules.  In order to keep the number of modules down,=0A=
>>> perhaps the various -options modules could be merged into the other=0A=
>>> 3, probably with a feature each.=0A=
>>>=0A=
>>> One comment is that it might be wise to avoid having a rfc number in=0A=
>>> the identifier.  What happens if/when that RFC is revised for any=0A=
>>> reason?=0A=
>>>=0A=
>>>=0A=
>>> /martin=0A=
>>>=0A=
>>>=0A=
>>> tom petch <ietfc@btconnect.com> wrote:=0A=
>>>>=0A=
>>>> Inline <tp>=0A=
>>>>=0A=
>>>> From: Andy Bierman <andy@yumaworks.com>=0A=
>>>> Sent: 20 January 2021 18:32=0A=
>>>>=0A=
>>>> On Wed, Jan 20, 2021 at 8:41 AM tom petch <ietfc@btconnect.com<mailto:=
ietfc@btconnect.com>> wrote:=0A=
>>>> Juergen, Lada, Martin, Andy=0A=
>>>>=0A=
>>>> I wonder if one of you, or perhaps another on this list, would be will=
ing to give advice on the=0A=
>>>> structuring of  the YANG module for DHCP.  It has been revised and res=
tructured several times and, to me, is not progressing.=0A=
>>>>=0A=
>>>> It models three roles - client, server, relay - and a dozen optional f=
unction which can appear in one or more roles.  A node will likely have onl=
y one role but may have many options.=0A=
>>>>=0A=
>>>> There are, at present, seven modules=0A=
>>>> server which defines a server identity  based on common identity inter=
 alia=0A=
>>>> relay which defines relay identity ditto=0A=
>>>> client which defines client identity ditto=0A=
>>>> server options which has groupings for each option for a server=0A=
>>>> client options which has groupings for each option for a relay=0A=
>>>> relay options which has groupings for each option for a client=0A=
>>>> common which defines the common identity inter alia=0A=
>>>> Since options are common across roles, some groupings are replicated i=
n the three options modules.  Three separate option modules were created to=
 avoid problems with imports as Ian explains below.  The I-D is draft-ietf-=
dhc-dhcpv6-yang=0A=
>>>>=0A=
>>>> My take is that one module is best, using 'when' or if-feature to sele=
ct, which is what I see with OSPF, PCE, TCP, IGMP and almost everything els=
e but am struggling to convince others, especially  the author Ian.  [IF] i=
n the e-mail extract below=0A=
>>>>=0A=
>>>> I suggested asking a YANG Doctor, NOT to look at the module but rather=
 to advise on a structure given the requirements to which Ian said that he =
had not had much joy with YANG Doctors.  I append our most recent exchange =
in which he responds to my query as to why there are seven modules; formatt=
ing is a bit of a mess I am afraid.  The posts are to the DHCWG mail list.=
=0A=
>>>>=0A=
>>>> Any advice appreciated even if it is that Ian is on just the right tra=
ck!=0A=
>>>>=0A=
>>>>=0A=
>>>> Either approach is valid so multi-module vs. single module w/ features=
 is more=0A=
>>>> of an overall system maintenance issue.  7 modules seems like a lot fo=
r DHCP but=0A=
>>>> I have no objective criteria to back that up.=0A=
>>>>=0A=
>>>> There is some confusion about the import-stmt, which leads to many YAN=
G modules.=0A=
>>>> In compiler terms, importing a module merely makes the symbols availab=
le for parsing in the current module.=0A=
>>>> The import-stmt implies no conformance requirements whatsoever.=0A=
>>>> Only statements that use the imported module can do that.=0A=
>>>> (So a server module importing a module that has client groupings is no=
t actually a problem.)=0A=
>>>>=0A=
>>>> <tp>=0A=
>>>>=0A=
>>>> Andy, Juergen,=0A=
>>>>=0A=
>>>> Thank you for the replies.  What Ian said about the import is=0A=
>>>>=0A=
>>>>> [IF] The separation of the option modules came at a later stage based=
 on import dependencies of a single options module. When the options module=
 imports the client/server/relay modules so it can augment the relevant mod=
ule based on identity, an implementation also needs to import these modules=
 and will declare them in it=92s capabilities as available even though it d=
oesn=92t implement them. Dividing the options modules avoids the need for d=
eviations.=0A=
>>>>=0A=
>>>> <tp> that is, the prefix for dhcpv6-server is defined in the server mo=
dule,=0A=
>>>>   module ietf-dhcpv6-server {=0A=
>>>> ...=0A=
>>>>     prefix "dhcpv6-server";=0A=
>>>> ...=0A=
>>>>     identity server {=0A=
>>>>       base "dhcpv6-common:dhcpv6-node";=0A=
>>>>       description "DHCPv6 server identity.";      }=0A=
>>>>     leaf dhcpv6-node-type {=0A=
>>>>       type identityref {=0A=
>>>>         base "dhcpv6-common:dhcpv6-node";        }=0A=
>>>>       description "Type for a DHCPv6 server.";     }=0A=
>>>>=0A=
>>>> and the prefix for dhcpv6-relay in the relay module etc so having a si=
ngle module for options which needs to augment options to the server module=
 needs to import the server module so that the dhcpv6-server prefix is defi=
ned, ditto relay and client so the single module for options then imports s=
erver and relay and client modules.=0A=
>>>>=0A=
>>>> With three options modules, each only imports one of server, relay, cl=
ient but the groupings are then replicated across the three options modules=
.=0A=
>>>>=0A=
>>>> Logical if you agree with the initial premise (which I do not!).=0A=
>>>>=0A=
>>>> The seven YANG modules are all in the one I-D of 56pp with the tree di=
agrams 12pp.=0A=
>>>>=0A=
>>>> Tom Petch=0A=
>>>> (on European time:-(=0A=
>>>>=0A=
>>>> YANG Conformance for a single module is better defined than for multip=
le related modules.=0A=
>>>> The YANG Packages work could fix that someday.=0A=
>>>>=0A=
>>>> Tom Petch=0A=
>>>>=0A=
>>>>=0A=
>>>> Andy=0A=
>>>>=0A=
>>>>=0A=
>>>> On 19/01/2021 11:25, tom petch wrote:=0A=
>>>>> ________________________________________=0A=
>>>>> From: dhcwg <dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> o=
n behalf of ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> <ianfarrer@gmx.com<=
mailto:ianfarrer@gmx.com>>=0A=
>>>>> Sent: 19 January 2021 07:37=0A=
>>>>>=0A=
>>>>> Thanks for your comments. Please see inline below.=0A=
>>>>>=0A=
>>>>> Ian=0A=
>>>>>=0A=
>>>>> On 14. Jan 2021, at 13:40, t petch <ietfa@btconnect.com<mailto:ietfa@=
btconnect.com><mailto:ietfa@btconnect.com<mailto:ietfa@btconnect.com>>> wro=
te:=0A=
>>>>>=0A=
>>>>> Ian=0A=
>>>>>=0A=
>>>>> I do not understand this I-D; I have tracked it for a number of years=
 and my understanding of it is diminishing.=0A=
>>>>>=0A=
>>>>> Currently, it is seven YANG modules: why?=0A=
>>>>>=0A=
>>>>> [if - The separation into client/server/relay, and DHCP options has b=
een in the draft since -05 and the changes were presented and discussed at =
IETF101 - I=92ve described the reasoning for this split in the next answer.=
 Beyond that, the common module was added to avoid (well reduce as you poin=
t out below) duplication.=0A=
>>>>>=0A=
>>>>> The separation of the option modules came at a later stage based on i=
mport dependencies of a single options module. When the options module impo=
rts the client/server/relay modules so it can augment the relevant module b=
ased on identity, an implementation also needs to import these modules and =
will declare them in it=92s capabilities as available even though it doesn=
=92t implement them. Dividing the options modules avoids the need for devia=
tions.=0A=
>>>>>=0A=
>>>>> Even though there are 7 modules defined here, the likely hood is that=
 an element implementation would require 3 modules to be implemented (e.g. =
client, common and client options).]=0A=
>>>>>=0A=
>>>>> [tp] Other WG have models with multiple roles and many options and ha=
ve a single YANG module, using the features of YANG to tailor the module to=
 different configurations.=0A=
>>>>>=0A=
>>>>> [if - It=92s not really tailoring the module to different configurati=
ons, they are for the most part separate functional elements in the network=
 with any device only implementing one of the client, relay or server funct=
ions.=0A=
>>>>>=0A=
>>>>> However, even in the case that a device is both a server and a client=
 (e.g. a home gateway with a client on the WAN and a server on the LAN), th=
e likelihood is that these will be done using different software implementa=
tions, so having separate modules for server and client offers implementati=
on flexibility.=0A=
>>>>>=0A=
>>>>> In the case of a monolithic module with the relevant client/relay/ser=
ver functionality enabled by features, the module would do nothing unless o=
ne or more of the features was enabled, and Is unlikely that you=92d ever e=
nable more than one. Is this approach used by other WGs? Could you point me=
 to some some examples as I've only seen features been used as relatively s=
mall optional extensions used when the bulk of the nodes are common?]=0A=
>>>>=0A=
>>>> [tp]=0A=
>>>> Ian=0A=
>>>>=0A=
>>>> Almost all the YANG models I know of are single module.  For example,=
=0A=
>>>> draft-ietf-ospf-yang supports two versions modelled as identity and 28=
=0A=
>>>> options modelled as features.=0A=
>>>>=0A=
>>>> draft-ietf-tcpm-yang supports client and server as containers with=0A=
>>>> if-feature and has other features as well=0A=
>>>>=0A=
>>>> draft-ietf-pim-igmp-mld-yang supports five versions of two protocol=0A=
>>>> using identity=0A=
>>>>=0A=
>>>> draft-pce-pcep-yang offers the roles of pcc or pce or both using typed=
ef.=0A=
>>>>=0A=
>>>> And so on and so on.  if-feature, when and suchlike provide the=0A=
>>>> necessary customisation.=0A=
>>>>=0A=
>>>> I think that your problems with options are because the identity are=
=0A=
>>>> defined in the wrong place.  The base, the common module (or part of t=
he=0A=
>>>> one and only module) should define what is common, what everyone needs=
;=0A=
>>>> if there are three roles and a dozen options, than that is where they=
=0A=
>>>> need to be defined.=0A=
>>>>=0A=
>>>> Then there can be an object which is configured with the roles of a=0A=
>>>> particular box, client or server or relay, or if required, a combinati=
on=0A=
>>>> of the there - simpler if that is out of scope as you suggest.=0A=
>>>>=0A=
>>>> My starting point would be a dhc container with a leaf for a role and =
then=0A=
>>>> containers for client, relay, server, added by augment and controlled =
by=0A=
>>>> when pointing at the role.=0A=
>>>>=0A=
>>>> I will post something to the netmod WG list - there are lots of people=
=0A=
>>>> there with greater exposure than mine who can give better guidance tha=
n I.=0A=
>>>>=0A=
>>>> Tom Petch=0A=
>>>>=0A=
>>>>> Here you have modelled the options as YANG grouping. The intent of a =
grouping is to provide a block of statements that can be reused so avoiding=
 duplication with the attendant problems.  Here you have the same grouping =
in triplicate in three different YANG modules which seems to me to be the a=
ntithesis of a grouping.=0A=
>>>>>=0A=
>>>>> [If - We could move the option definitions for "status-code-option-gr=
oup=94 (client, server, relay) and =93rapid-commit-option-group, vendor-spe=
cific-information-option-group; reconfigure-accept-option-group=94 (client,=
 server) into the common module to resolve the duplication. I didn=92t do t=
his previously as the intention was to keep options definitions in the opti=
ons modules for consistency, but it  would be simple to change. ]=0A=
>>>>>=0A=
>>>>> [tp] Likewise I find the specification of server v client v relay unu=
sual.=0A=
>>>>>=0A=
>>>>> [If - A similar approach for separated client/server modules is also =
used in RFC8676, where the client and server have discrete function, as wit=
h DHCP.]=0A=
>>>>>=0A=
>>>>> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show the=
m the YANG and invite comments, rather outline in an abstract way what it i=
s you want to model and see what they suggest; that might well be a single =
YANG module.=0A=
>>>>>=0A=
>>>>> [if - Yes, I=92d be happy to. Is there someone that you have in mind =
(I=92ve not had much luck with getting YANG doctor input outside of the for=
mal review process in the past)?. I=92m not opposed to changing the way tha=
t the modules are structured on principal, I do however, think that the sep=
aration by functional element is logical and simpler for implementers, and =
I would like to know what the benefits of a single module (or other structu=
re) might be.]=0A=
>>>>>=0A=
>>>>> [tp]I do have quite a number of detailed comments but do not think th=
em worth making until the I-D seems to me more stable.=0A=
>>>>>=0A=
>>>>> [if - It=92d be great if you could supply them as well so I can start=
 going though them and fixing what=92s currently fixable in parallel to the=
 discussion above.]=0A=
>>>>>=0A=
>>>>> Tom Petch=0A=
>>>>>=0A=
>>>>> On 07/01/2021 16:10, ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mail=
to:ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>> wrote:=0A=
>>>>> Hi Tom,=0A=
>>>>>=0A=
>>=0A=
>> --=0A=
>> Ladislav Lhotka=0A=
>> Head, CZ.NIC Labs=0A=
>> PGP Key ID: 0xB8F92B08A9F76C67=0A=
=0A=


From nobody Mon Jan 25 07:04:55 2021
Return-Path: <ianfarrer@gmx.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CC2193A1402 for <netmod@ietfa.amsl.com>; Mon, 25 Jan 2021 07:04:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.017
X-Spam-Level: 
X-Spam-Status: No, score=-0.017 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=gmx.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 zxy-UTv14BVt for <netmod@ietfa.amsl.com>; Mon, 25 Jan 2021 07:04:51 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 EBE3D3A13FA for <netmod@ietf.org>; Mon, 25 Jan 2021 07:04:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1611587067; bh=9v16ir4dGJbHVwTZlF3AOpqmM8C9ennVdiuTSF870y0=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References:To; b=R62OuykecJZutkFGuWLui6gR515NStLTF49nlnRXky8+6O6vkN2rOCC4i0sT1oDi+ mbWBCAvv/hRTfeQ3ahcjiDeQVKy1WRlEi02B9NnW+pSl+JF9D/+M4zUIRnJ7oxpn0V S2lWakE4a45kk8cxz1MmplIoKR/l76tGb8T2c2t4=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Received: from mbp-big-sur.fritz.box ([78.35.205.160]) by mail.gmx.net (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MrQIv-1lox4e32BT-00oaAT; Mon, 25 Jan 2021 16:04:27 +0100
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.40.0.2.32\))
From: ianfarrer@gmx.com
In-Reply-To: <AM7PR07MB624813642FF06D0CB56366FCA0A00@AM7PR07MB6248.eurprd07.prod.outlook.com>
Date: Mon, 25 Jan 2021 16:04:23 +0100
Cc: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj+ietf@4668.se>, "ladislav.lhotka@nic.cz" <ladislav.lhotka@nic.cz>, "andy@yumaworks.com" <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>, "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>
Content-Transfer-Encoding: quoted-printable
Message-Id: <285B074F-66EF-4A47-8C56-D9982529B09F@gmx.com>
References: <20210121.134211.1244086498697136841.id@4668.se> <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz> <AM7PR07MB62480EF0BDB11B95820598EEA0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <20210121.180757.1756334498885863433.id@4668.se> <AM7PR07MB62481A4C3BCD3BA72D0A7B89A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <22C508AF-39A8-4F14-BB7E-3B47BBA96C64@gmx.com> <AM7PR07MB624813642FF06D0CB56366FCA0A00@AM7PR07MB6248.eurprd07.prod.outlook.com>
To: tom petch <ietfc@btconnect.com>
X-Mailer: Apple Mail (2.3654.40.0.2.32)
X-Provags-ID: V03:K1:UvJ7rJQwZST5HgjYIcS1mx3ZA3FsteHLXDIMbIGgGNNcr8NtqcE TGMj4g1wilMJ2mNEb36emx9BCKAhATELRdMnKfvRkq295q6IeF9BJacViAk2AeD4M7Kxntd pOwtM9JK7rv1XyUSVw11sapV5fkKvGIFvmy+n1K5WBJR1QzG4AxGVyvyMdHbCI2TlQLgtU4 SDwY2p0OBTavRF2lDKdzg==
X-UI-Out-Filterresults: notjunk:1;V03:K0:HmWWpI8LGr8=:p07HMeZk+hA64nFMzsJnUX FW+D4ZDvxGEgOYoIz9+55//TMJNM572K3Q0dXum1rAERoIKPD2tQ9hSHKbHU1C98VQyeB068V KgVntyM0xI0WwHAfWOWAbdUYx07NfTVXAJHDDEHuCosy863aNJ/MgYRbshpg7BlWlZpIDwxCD zc27MpwFT1FB2WYAHGiXvcRKvlLM3fuCNVm5ED7A40h/Gt3uLJ6Cg8n29ihzj1IpmIDGd+F3u m1CUdJm2MY2wmYIMAKxJT4zCzLOSgoRHImyozSWQyu1fHEYmb9uqBxukpiiXnZ9wqsPXrXJC3 GnrY+WZ2fXxKsUiNUjU4NgPXrlgf12zl1hdIKcUynulw2u8MWVAKORNWf80zuUCiEr/RJrn6n 5hu1n4mZhibUd5Xo/FEN6vgmM0tkwYbjnnE1iG9fO3js9lUgBAyNJz4a4PyvfwXtiryEi3CEu MMiBBy9kDcQJh2e0Xp/gIjpbETuRtAuRWhGIYX6j0yIN4g1B+DZn63SVCh+nxaBvODBxemQ0x G3CPbQQRvUfn2TXKUAe5b432BHPa4uHd/cwjljZ/ebM2Wp69nx7HS/6ezq3Ppq5M5sFDUgUu0 Kak/PKpIVSvtdA0EyzS+zIe/3639iejoZ/vkyA7UPLx/VZAtsMkNEJux/pdm9/0KgtN4Q1OLt ia2Pb9hVoVmBqelb/Pen2bUZgh0WJpjwQo2ZRhjGT3O0iLAr+1BHRSs5hyckCs1EfIVUdliTp 6nDhmH9GwyRzKhJ4PlokFq/eHtcMZP9aAG6FgDu8EnLoKcA7tmts1B64quNerpeM9OeUx9vDh sSZu8lOh4CH7MLW9IZlpDZxEbBiVfo2fUaxbbiGInB0/tLUJdWuXlrytjVOogF/pnekEfIkGQ dgKBv+mPzrxNLVPa8R9w==
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/B0sNG2W8P-A6_eaV1-XTB0sblAw>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Jan 2021 15:04:54 -0000

Hi Tom,

Please see inline.

Ian

> On 22. Jan 2021, at 11:06, tom petch <ietfc@btconnect.com> wrote:
>=20
> From: ianfarrer@gmx.com <ianfarrer@gmx.com>
> Sent: 22 January 2021 07:33
>=20
> I=E2=80=99m planning to restructure so that the common module is =
imported by client, server and relay, which means that the identity/role =
is no longer needed for this. (I need to look at whether the identities =
are needed for other reasons, such as how the modules will be extended =
with additional option definitions etc.). This seems simpler to me and =
avoids the common module needing to import all 3 of the other modules =
with the dependency problems that introduces.
>=20
> <tp>
> Sounds like a good idea to me.
>=20
> Does this address Martin's comment about not understanding the purpose =
of
> a leaf called "dhcpv6-node-type"?
>=20
> For me. if identities are needed, they belong in the common module so =
all node types have access to them (my instinct would be to specify them =
even if they are not needed at present on the grounds that they likely =
will be).  Likewise, if there is a need to know the node type, I see =
that also as part of a common module but then, as I said before, I am =
more used to, more comfortable with, a single module.  I have great =
respect for Lada's recommendations so if he sees three modules as best, =
I will take that on board.  (You will have seen the comments up-thread =
from others about the support from tools offering somewhat more with a =
single module). =20

[if - I=E2=80=99ve spent some time with the restructure that=E2=80=99s =
being discussed, and the identities will no longer be needed.]

>=20
> Another point where different models take different views is whether =
or not there should be a leaf to enable the function, be it server, =
relay, client or some combination thereof; some do, others just say that =
if the module is implemented on a node then of course it is enabled! =20

[If - I think in this case is it would be useful. I=E2=80=99ll add in =
the next update. For the client and relay modules, it would also make =
sense to have an enable node for each relay/client interface.]

>=20
> Another thought, if a node only implements the relay module, say, and =
there is no leaf for node type, can you test for that in a module which =
wants to augment the common module only if relay is implemented and/or =
enabled?   A presence container would do it, probably other ways as =
well, but I cannot recall seeing that done.

[if - Wouldn=E2=80=99t you just augment the relay module directly in =
this case?]

>=20
> Tom Petch=20
>>=20
>=20
>=20
> Ian
>=20
>> On 21. Jan 2021, at 18:48, tom petch <ietfc@btconnect.com> wrote:
>>=20
>> From: Martin Bj=C3=B6rklund <mbj+ietf@4668.se>
>> Sent: 21 January 2021 17:07
>>=20
>> tom petch <ietfc@btconnect.com> wrote:
>>> From: Ladislav Lhotka <ladislav.lhotka@nic.cz>
>>> Sent: 21 January 2021 12:58
>>>=20
>>> Hi,
>>>=20
>>> in my YD review 4.5 years ago I actually recommended to use separate
>>> modules:
>>>=20
>>> =
https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_ICr=
KPs4/
>>>=20
>>> I think it is a matter of how much the different part overlap. For =
an
>>> implementer, it seems to be easier to pick just the relevant parts,
>>> provided they are easy to locate and identify.
>>>=20
>>> <tp>
>>> Thank you for all the responses;  I did look at the data tracker to =
see if there had been any reviews, thinking that a previous review would =
be  the right place to start, and it said 'No reviews'!  Perhaps these =
time out.
>>>=20
>>> I am not comfortable with the seven modules seeing four as better, a =
common which is then augmented with server, relay, client, with the =
common containing the role(s), whereas at present it is the three role =
modules that contain the role which then drives having the three option =
modules so each option module only imports one role module, and that is =
the bit I find most awkward.
>>>=20
>>> How best to select the three roles?  As I said upthread, I have seen =
the role specified with features, with augment/when based on identityref =
(although not with the three identity defined in the three role =
modules), presence containers and so on (I have probably seen that and =
more in the history of this I-D:-).
>>=20
>> Is "role" the same as "node-type"?  Each of these module define their
>> own copy of a leaf called "dhcpv6-node-type".  I am not sure I
>> understand what purpose this leaf serves.  It seems to me that it can
>> be removed, but perhaps I am missing something.
>>=20
>> <tp>
>>=20
>> Me too.  I am assuming that it is intended to define the role but I =
could be quite wrong.  Need input from Ian on this.
>>=20
>>> My instinct would be to put the three identity definitions into =
common with a dhcpv6 container, which is then augmented by the three =
role modules, the YANG 'when' referring to role leaf in the common.  Any =
better ways?
>>=20
>> Why do augment at all?  Why not just have a top-level container in
>> each module; 'dhcpv6-client', 'dhcpv6-server' etc?
>>=20
>> <tp>
>> Yes, I am just lifting the structure of another I-D probably for no =
good engineering reason:-(.
>>=20
>> Tom Petch
>>=20
>> /martin
>>=20
>>=20
>>=20
>>>=20
>>> Tom Petch
>>>=20
>>> Lada
>>>=20
>>> On 21. 01. 21 13:42, Martin Bj=C3=B6rklund wrote:
>>>> Hi,
>>>>=20
>>>> I think it is a matter of taste and perhaps future extensibility if
>>>> this model is done as one or more YANG modules.  It can certainly =
be
>>>> done in one module, with features for client, server and relay, but =
it
>>>> is also ok to have 3 modules for the different functions.  And once
>>>> you have these 3 modules, it is natural to have a "common" module,
>>>> leading to 4 modules.  In order to keep the number of modules down,
>>>> perhaps the various -options modules could be merged into the other
>>>> 3, probably with a feature each.
>>>>=20
>>>> One comment is that it might be wise to avoid having a rfc number =
in
>>>> the identifier.  What happens if/when that RFC is revised for any
>>>> reason?
>>>>=20
>>>>=20
>>>> /martin
>>>>=20
>>>>=20
>>>> tom petch <ietfc@btconnect.com> wrote:
>>>>>=20
>>>>> Inline <tp>
>>>>>=20
>>>>> From: Andy Bierman <andy@yumaworks.com>
>>>>> Sent: 20 January 2021 18:32
>>>>>=20
>>>>> On Wed, Jan 20, 2021 at 8:41 AM tom petch =
<ietfc@btconnect.com<mailto:ietfc@btconnect.com>> wrote:
>>>>> Juergen, Lada, Martin, Andy
>>>>>=20
>>>>> I wonder if one of you, or perhaps another on this list, would be =
willing to give advice on the
>>>>> structuring of  the YANG module for DHCP.  It has been revised and =
restructured several times and, to me, is not progressing.
>>>>>=20
>>>>> It models three roles - client, server, relay - and a dozen =
optional function which can appear in one or more roles.  A node will =
likely have only one role but may have many options.
>>>>>=20
>>>>> There are, at present, seven modules
>>>>> server which defines a server identity  based on common identity =
inter alia
>>>>> relay which defines relay identity ditto
>>>>> client which defines client identity ditto
>>>>> server options which has groupings for each option for a server
>>>>> client options which has groupings for each option for a relay
>>>>> relay options which has groupings for each option for a client
>>>>> common which defines the common identity inter alia
>>>>> Since options are common across roles, some groupings are =
replicated in the three options modules.  Three separate option modules =
were created to avoid problems with imports as Ian explains below.  The =
I-D is draft-ietf-dhc-dhcpv6-yang
>>>>>=20
>>>>> My take is that one module is best, using 'when' or if-feature to =
select, which is what I see with OSPF, PCE, TCP, IGMP and almost =
everything else but am struggling to convince others, especially  the =
author Ian.  [IF] in the e-mail extract below
>>>>>=20
>>>>> I suggested asking a YANG Doctor, NOT to look at the module but =
rather to advise on a structure given the requirements to which Ian said =
that he had not had much joy with YANG Doctors.  I append our most =
recent exchange in which he responds to my query as to why there are =
seven modules; formatting is a bit of a mess I am afraid.  The posts are =
to the DHCWG mail list.
>>>>>=20
>>>>> Any advice appreciated even if it is that Ian is on just the right =
track!
>>>>>=20
>>>>>=20
>>>>> Either approach is valid so multi-module vs. single module w/ =
features is more
>>>>> of an overall system maintenance issue.  7 modules seems like a =
lot for DHCP but
>>>>> I have no objective criteria to back that up.
>>>>>=20
>>>>> There is some confusion about the import-stmt, which leads to many =
YANG modules.
>>>>> In compiler terms, importing a module merely makes the symbols =
available for parsing in the current module.
>>>>> The import-stmt implies no conformance requirements whatsoever.
>>>>> Only statements that use the imported module can do that.
>>>>> (So a server module importing a module that has client groupings =
is not actually a problem.)
>>>>>=20
>>>>> <tp>
>>>>>=20
>>>>> Andy, Juergen,
>>>>>=20
>>>>> Thank you for the replies.  What Ian said about the import is
>>>>>=20
>>>>>> [IF] The separation of the option modules came at a later stage =
based on import dependencies of a single options module. When the =
options module imports the client/server/relay modules so it can augment =
the relevant module based on identity, an implementation also needs to =
import these modules and will declare them in it=E2=80=99s capabilities =
as available even though it doesn=E2=80=99t implement them. Dividing the =
options modules avoids the need for deviations.
>>>>>=20
>>>>> <tp> that is, the prefix for dhcpv6-server is defined in the =
server module,
>>>>>  module ietf-dhcpv6-server {
>>>>> ...
>>>>>    prefix "dhcpv6-server";
>>>>> ...
>>>>>    identity server {
>>>>>      base "dhcpv6-common:dhcpv6-node";
>>>>>      description "DHCPv6 server identity.";      }
>>>>>    leaf dhcpv6-node-type {
>>>>>      type identityref {
>>>>>        base "dhcpv6-common:dhcpv6-node";        }
>>>>>      description "Type for a DHCPv6 server.";     }
>>>>>=20
>>>>> and the prefix for dhcpv6-relay in the relay module etc so having =
a single module for options which needs to augment options to the server =
module needs to import the server module so that the dhcpv6-server =
prefix is defined, ditto relay and client so the single module for =
options then imports server and relay and client modules.
>>>>>=20
>>>>> With three options modules, each only imports one of server, =
relay, client but the groupings are then replicated across the three =
options modules.
>>>>>=20
>>>>> Logical if you agree with the initial premise (which I do not!).
>>>>>=20
>>>>> The seven YANG modules are all in the one I-D of 56pp with the =
tree diagrams 12pp.
>>>>>=20
>>>>> Tom Petch
>>>>> (on European time:-(
>>>>>=20
>>>>> YANG Conformance for a single module is better defined than for =
multiple related modules.
>>>>> The YANG Packages work could fix that someday.
>>>>>=20
>>>>> Tom Petch
>>>>>=20
>>>>>=20
>>>>> Andy
>>>>>=20
>>>>>=20
>>>>> On 19/01/2021 11:25, tom petch wrote:
>>>>>> ________________________________________
>>>>>> From: dhcwg =
<dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> on behalf of =
ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> =
<ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>>
>>>>>> Sent: 19 January 2021 07:37
>>>>>>=20
>>>>>> Thanks for your comments. Please see inline below.
>>>>>>=20
>>>>>> Ian
>>>>>>=20
>>>>>> On 14. Jan 2021, at 13:40, t petch =
<ietfa@btconnect.com<mailto:ietfa@btconnect.com><mailto:ietfa@btconnect.co=
m<mailto:ietfa@btconnect.com>>> wrote:
>>>>>>=20
>>>>>> Ian
>>>>>>=20
>>>>>> I do not understand this I-D; I have tracked it for a number of =
years and my understanding of it is diminishing.
>>>>>>=20
>>>>>> Currently, it is seven YANG modules: why?
>>>>>>=20
>>>>>> [if - The separation into client/server/relay, and DHCP options =
has been in the draft since -05 and the changes were presented and =
discussed at IETF101 - I=E2=80=99ve described the reasoning for this =
split in the next answer. Beyond that, the common module was added to =
avoid (well reduce as you point out below) duplication.
>>>>>>=20
>>>>>> The separation of the option modules came at a later stage based =
on import dependencies of a single options module. When the options =
module imports the client/server/relay modules so it can augment the =
relevant module based on identity, an implementation also needs to =
import these modules and will declare them in it=E2=80=99s capabilities =
as available even though it doesn=E2=80=99t implement them. Dividing the =
options modules avoids the need for deviations.
>>>>>>=20
>>>>>> Even though there are 7 modules defined here, the likely hood is =
that an element implementation would require 3 modules to be implemented =
(e.g. client, common and client options).]
>>>>>>=20
>>>>>> [tp] Other WG have models with multiple roles and many options =
and have a single YANG module, using the features of YANG to tailor the =
module to different configurations.
>>>>>>=20
>>>>>> [if - It=E2=80=99s not really tailoring the module to different =
configurations, they are for the most part separate functional elements =
in the network with any device only implementing one of the client, =
relay or server functions.
>>>>>>=20
>>>>>> However, even in the case that a device is both a server and a =
client (e.g. a home gateway with a client on the WAN and a server on the =
LAN), the likelihood is that these will be done using different software =
implementations, so having separate modules for server and client offers =
implementation flexibility.
>>>>>>=20
>>>>>> In the case of a monolithic module with the relevant =
client/relay/server functionality enabled by features, the module would =
do nothing unless one or more of the features was enabled, and Is =
unlikely that you=E2=80=99d ever enable more than one. Is this approach =
used by other WGs? Could you point me to some some examples as I've only =
seen features been used as relatively small optional extensions used =
when the bulk of the nodes are common?]
>>>>>=20
>>>>> [tp]
>>>>> Ian
>>>>>=20
>>>>> Almost all the YANG models I know of are single module.  For =
example,
>>>>> draft-ietf-ospf-yang supports two versions modelled as identity =
and 28
>>>>> options modelled as features.
>>>>>=20
>>>>> draft-ietf-tcpm-yang supports client and server as containers with
>>>>> if-feature and has other features as well
>>>>>=20
>>>>> draft-ietf-pim-igmp-mld-yang supports five versions of two =
protocol
>>>>> using identity
>>>>>=20
>>>>> draft-pce-pcep-yang offers the roles of pcc or pce or both using =
typedef.
>>>>>=20
>>>>> And so on and so on.  if-feature, when and suchlike provide the
>>>>> necessary customisation.
>>>>>=20
>>>>> I think that your problems with options are because the identity =
are
>>>>> defined in the wrong place.  The base, the common module (or part =
of the
>>>>> one and only module) should define what is common, what everyone =
needs;
>>>>> if there are three roles and a dozen options, than that is where =
they
>>>>> need to be defined.
>>>>>=20
>>>>> Then there can be an object which is configured with the roles of =
a
>>>>> particular box, client or server or relay, or if required, a =
combination
>>>>> of the there - simpler if that is out of scope as you suggest.
>>>>>=20
>>>>> My starting point would be a dhc container with a leaf for a role =
and then
>>>>> containers for client, relay, server, added by augment and =
controlled by
>>>>> when pointing at the role.
>>>>>=20
>>>>> I will post something to the netmod WG list - there are lots of =
people
>>>>> there with greater exposure than mine who can give better guidance =
than I.
>>>>>=20
>>>>> Tom Petch
>>>>>=20
>>>>>> Here you have modelled the options as YANG grouping. The intent =
of a grouping is to provide a block of statements that can be reused so =
avoiding duplication with the attendant problems.  Here you have the =
same grouping in triplicate in three different YANG modules which seems =
to me to be the antithesis of a grouping.
>>>>>>=20
>>>>>> [If - We could move the option definitions for =
"status-code-option-group=E2=80=9D (client, server, relay) and =
=E2=80=9Crapid-commit-option-group, =
vendor-specific-information-option-group; =
reconfigure-accept-option-group=E2=80=9D (client, server) into the =
common module to resolve the duplication. I didn=E2=80=99t do this =
previously as the intention was to keep options definitions in the =
options modules for consistency, but it  would be simple to change. ]
>>>>>>=20
>>>>>> [tp] Likewise I find the specification of server v client v relay =
unusual.
>>>>>>=20
>>>>>> [If - A similar approach for separated client/server modules is =
also used in RFC8676, where the client and server have discrete =
function, as with DHCP.]
>>>>>>=20
>>>>>> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show =
them the YANG and invite comments, rather outline in an abstract way =
what it is you want to model and see what they suggest; that might well =
be a single YANG module.
>>>>>>=20
>>>>>> [if - Yes, I=E2=80=99d be happy to. Is there someone that you =
have in mind (I=E2=80=99ve not had much luck with getting YANG doctor =
input outside of the formal review process in the past)?. I=E2=80=99m =
not opposed to changing the way that the modules are structured on =
principal, I do however, think that the separation by functional element =
is logical and simpler for implementers, and I would like to know what =
the benefits of a single module (or other structure) might be.]
>>>>>>=20
>>>>>> [tp]I do have quite a number of detailed comments but do not =
think them worth making until the I-D seems to me more stable.
>>>>>>=20
>>>>>> [if - It=E2=80=99d be great if you could supply them as well so I =
can start going though them and fixing what=E2=80=99s currently fixable =
in parallel to the discussion above.]
>>>>>>=20
>>>>>> Tom Petch
>>>>>>=20
>>>>>> On 07/01/2021 16:10, =
ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mailto:ianfarrer@gmx.com<mailt=
o:ianfarrer@gmx.com>> wrote:
>>>>>> Hi Tom,
>>>>>>=20
>>>=20
>>> --
>>> Ladislav Lhotka
>>> Head, CZ.NIC Labs
>>> PGP Key ID: 0xB8F92B08A9F76C67
>=20


From nobody Tue Jan 26 07:13:44 2021
Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 48BBF3A0B9B for <netmod@ietfa.amsl.com>; Tue, 26 Jan 2021 07:13:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.251
X-Spam-Level: 
X-Spam-Status: No, score=-0.251 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 cksZ0J50XX85 for <netmod@ietfa.amsl.com>; Tue, 26 Jan 2021 07:13:41 -0800 (PST)
Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-eopbgr770091.outbound.protection.outlook.com [40.107.77.91]) (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 C5C443A0B92 for <netmod@ietf.org>; Tue, 26 Jan 2021 07:13:41 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bTjBIOzZD/e3xPz28cAyahv3Q0Mwz/uOPfKoczOJqgX7E0qd2b1TH2cCG9B06iad9AzxxhEwDVLq1XbcnLlf++nfkmaMfxscK7Yy0JVMiFCx8wNJl6GNq0bOcEYszrT7wWG25Umd26N/19JBESAGdNytbiXtyAVvGsihW+4jgsVN+fZZhAt4rgdkeb1WPSQJ8dkl3ySfuHh1yMyfrH12qSNy5Jtgtk/8oRij21zBaIxZ4bsWUDO3onGjbcJsd5lkxn96wIhw6KQEXfbFJR8ukciBa9HFom25P20jk0hzsGu7zYNrV6VrWUPUAnzciFyWrLNiwdYyfwoxO1Gs+iQCGQ==
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=TrsIsg5Q+lahm+RX0wej7PA3ApKq0u4zFljE1Y9Ktqg=; b=WLIsU1S0I7EYN7qHS4K9rcbP2v99Y0HRe+lNfhqfjFnbzSjhy7s+26naOgXGwIOoMToLfThrY02W7uRf2ocq9u7oHt729V9npYuOv2Y1vuo3AErdsW1ZXxSgGiy0Sff7yrvoLJ+2XWLEAKEFwDTAUaPHVA4Je3iDeEjhT3FetACET1XKkNze11J9UgBfwHa9wxnqGl++ae1m3lGkkGcJSQ09xieMJuf369kHqDWdNHTjOpHmUfDkoxgyZHC5gCFrkgmoDjU2VB/ceMaqqB5/wX806voeRP49/kvTJGtrcRraONDM43VdANR1njKwnhQmONnKmEyZsneb6KPdTN4UmA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TrsIsg5Q+lahm+RX0wej7PA3ApKq0u4zFljE1Y9Ktqg=; b=rHfQerfAA5y1YePoYBIQBWJYI/xbCxOnK6eAUQoTV91yQ1vf0t9zFhnG2Slq56328JruUIy2BXlkTowWIkcx1HtLQDS1qLlGSRWNA6GXzUdsdjw+STyAf3sOU4A4zZl7dW8erf/oMAYZqsWOacZu5czlOd8o5FVbomGfYPqDo+U=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM6PR08MB3962.namprd08.prod.outlook.com (2603:10b6:5:8f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12; Tue, 26 Jan 2021 15:13:35 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3%5]) with mapi id 15.20.3784.017; Tue, 26 Jan 2021 15:13:35 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: YANG Versioning Weekly Call Minutes - 2021-01-26
Thread-Index: Adbz9cJFtvGC1sRfSI29hUB9L4t3KA==
Date: Tue, 26 Jan 2021 15:13:35 +0000
Message-ID: <DM6PR08MB50840367B68716DE71FCB3E09BBC9@DM6PR08MB5084.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [2607:fea8:e31f:6800:7ddc:9424:fa2d:28e]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 2360c752-0f7d-4f6f-ba6c-08d8c20cf37c
x-ms-traffictypediagnostic: DM6PR08MB3962:
x-microsoft-antispam-prvs: <DM6PR08MB3962A0941FB1BC94CE74E5CC9BBC9@DM6PR08MB3962.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: oxoV+shQ2k1sCks9OQmnVRsyxyXhBNQ4CFI9+DEfGJ95p/w3vdRn+ZEQuhzqZI9g4p9+BmpE9OK99eOLidCLK0Q3bYkvq1Unyxk3yuwJ5IQ9xo1VojNjFTEVScvNBv296a8FLIIWCPVqHL3fMZe3wdGOPAEBl3oLF/gJSD7d1sj85NdvRPcpB9ZYo02iEIUOMStuIQ88hr64pJ+f3ShCQLuuDltV0B/t8vrI+Z+i3gboPLJUnEffSHyWwlX+No1NyYleJfrvMRjW/d385zJhbV60qWeDH6uQRk7xXYCB0fh0xhco3WGxUuCz4o75jSaYKs7aOVyiHUK0wXwvfU1Y+x5SH48bu/Th3H3yi9mlFVsY5doU7+Di1Yrcgw8UZzAYgAljG4WgCH/PUM+qJTPd/UwVaDMXnrAXHl/XJkn90oWBJLVEmdLpVlLgsWS0fAU94mu5rZgFcPV0lXTSYRtf2A==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(39860400002)(136003)(366004)(396003)(346002)(376002)(966005)(6506007)(86362001)(7696005)(55016002)(186003)(8936002)(9686003)(52536014)(76116006)(316002)(66946007)(64756008)(66446008)(66556008)(66476007)(478600001)(33656002)(71200400001)(6916009)(83380400001)(2906002)(8676002)(5660300002); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?rZJZk1Xbv69mzcPIr5XKUKaWR/Y+Trdh+E/PePc4zXkN4dP0Y7JuKQpU8eXH?= =?us-ascii?Q?yVEamlaDTwRDgMeV+xOA/g33BUw0DbCQajQxJEmax4qOEdhTsV2CQ+QcHpHC?= =?us-ascii?Q?DG6RqOSOmab/uET1R97u+v0Sq8R2Evh/damPD94C52zsuqdFq1Naf+qg8vnj?= =?us-ascii?Q?jgQJcvoDrHyd3tnYHEvSELde1ZOpRyscUfmERDkDBBs6vv41ELdjLRLgjg4A?= =?us-ascii?Q?As/o9QfjYcRPGRTYc92HrHDGpRDmTfzn/5kdDeGJhncZ5kd1oTID7XO7ZQtg?= =?us-ascii?Q?Ijl8hE1USuxj2LLQ6MSiHn17g6gFmuVvFkRraMNkx+NdiyjRSEWmf6+UKwhU?= =?us-ascii?Q?viBR3b+OtIbXCoVK2WQSPOPhyvS1QQZDIqb1nFwVAsI+qBpAoj2lVD/5/Mi+?= =?us-ascii?Q?XBFYTkBt24sukCIE3UToKdoQCE724KIwjsNJ3NYe/Gny+FCsmGn6nuPB2p4b?= =?us-ascii?Q?LqOLeVZkIarU23niDUFk1Ek+BCQcwhYfNMUJbuB+gWnTg380Kj7mO2Gpz0jI?= =?us-ascii?Q?m3O4ixLIaX0I3ahgUkvN96833Y6YOqf4jjLArw3lS18jHQXg2f8Z7CWeja04?= =?us-ascii?Q?mBKflZuW/FDNbXY7jSKiV7a8EPLrLN+FrvheXdvN0Loya9TD1q+YSCnhAIsO?= =?us-ascii?Q?pqmg0ocDfQ59SonTPPxaz+1itnb+louo8Cin6xdmsXHg3vZPKZL++kIlavjh?= =?us-ascii?Q?Pcur9ZYEdJta4q+wy8qNJQNRug1CYh1J98jjI3FPxiPz2EO+oca/uRHmA9P2?= =?us-ascii?Q?7ieVdWXKeRwN2dX4qPvX0k9pvaPdMhyjt00Zsj79GiBMP1606Shf07nEJz+T?= =?us-ascii?Q?EsA/1T85q3AZ+kq2UF/t/oBr1ZmGCtkBl4GjxZWXWSFWzoUnMbV1LQkbktD5?= =?us-ascii?Q?fiUDSZeHygeHwl8nnF3BxUSbUi4pHpx3U8yHDv8pCNU4ojKM2VXTWxOyBcFF?= =?us-ascii?Q?BYi8WwUQG32IuaSxy3HY34DYq6z4aSOUSlXSPxiMByXHkrTSrUUtE0s6ebFT?= =?us-ascii?Q?SHIADn9FJvFjsR1q/mzkpuUymZ80dqOBd96R6LSOYXWdpN0iQVtkT1gZWK1e?= =?us-ascii?Q?BAXFdCz/WQle+Z8MTBqlozthj8+UMr8xyrQ1l+Cra2+vOWsocYzJdX0UVqNP?= =?us-ascii?Q?0dXw4pkRVX0M?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB50840367B68716DE71FCB3E09BBC9DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 2360c752-0f7d-4f6f-ba6c-08d8c20cf37c
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jan 2021 15:13:35.1829 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9h8f7DYKteguM3vmI8ce7rnk9ZsN6Q2ovv7hUPvi7SCGML8MeVwWUHLB83siv99yhpNgASVV41x7ATS8kVCCRQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB3962
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/oglg45hs2Y1WD_VCQZaYBqI48iA>
Subject: [netmod] YANG Versioning Weekly Call Minutes - 2021-01-26
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2021 15:13:43 -0000

--_000_DM6PR08MB50840367B68716DE71FCB3E09BBC9DM6PR08MB5084namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

YANG Versioning Weekly Call Minutes - 2021-01-26

New order of topics for Interim, and rough time allocated:

    Intros (chair, Jason): 10 minutes

    T2) IANA considerations: how are final RFC revision labels assigned ?
    https://github.com/netmod-wg/yang-ver-dt/issues/59
    - Rob
    - 10 minutes

    T3) YANG file naming when revision labels are being used (symbolic link=
s? @<revision-label>) ?
    - Reshad
    - 20 minutes

    T1) Definition/meaning of BC vs NBC for config false nodes
    https://github.com/netmod-wg/yang-ver-dt/issues/15
    - Balazs
    - 35 minutes

    T4) SemVer: gaps in history, removing revision statements
    https://github.com/netmod-wg/yang-ver-dt/issues/61
    - Joe
    - 15 minutes

We discussed Github issue #12 about BC vs NBC for changing extension statem=
ents
https://github.com/netmod-wg/yang-ver-dt/issues/12
- decided to shelve this for now and bring it to the larger WG

We discussed topic T3:
- what chars should be allowed in filenames?  in revision-labels ?
- allow unicode?  Probably not.
- Be restrictive with a small allowed-list ? a-zA-Z0-9_-.,+
- Comma is sometimes used in version strings (precedence), also used someti=
mes as a decimal separator. Concern about CSV.
        e.g.  ->  1.6.0,1  (indicates this is greater than 2.0.0)
- What about ';'   (shell metachar in unix).  Probably avoid this one.
- Be less restrictive and have a deny-list ? 0x00-0x1F 0x7F " * / : < > ? \=
 |, #, @
- Use the same rules as YANG module name?

We discussed topic T4:
- only match on labels in the history contained in the 1 file?  vs parsing =
multiple files to build the complete lineage ?
- warning about removing history (especially if the entry had an NBC tag)

Rgds,
Jason

--_000_DM6PR08MB50840367B68716DE71FCB3E09BBC9DM6PR08MB5084namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-CA" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">YANG Versioning Weekly Call Minutes - 2021-01-26<o:p=
></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">New order of topics for Interim, and rough time allo=
cated:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; Intros (chair, Jason): 10 minutes=
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; T2) IANA considerations: how are =
final RFC revision labels assigned ?<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; https://github.com/netmod-wg/yang=
-ver-dt/issues/59<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; - Rob<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; - 10 minutes<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; T3) YANG file naming when revisio=
n labels are being used (symbolic links? @&lt;revision-label&gt;) ?<o:p></o=
:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; - Reshad<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; - 20 minutes<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; T1) Definition/meaning of BC vs N=
BC for config false nodes<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; https://github.com/netmod-wg/yang=
-ver-dt/issues/15<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; - Balazs<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; - 35 minutes<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; T4) SemVer: gaps in history, remo=
ving revision statements<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; https://github.com/netmod-wg/yang=
-ver-dt/issues/61<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; - Joe<o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp; - 15 minutes<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We discussed Github issue #12 about BC vs NBC for ch=
anging extension statements<o:p></o:p></p>
<p class=3D"MsoNormal">https://github.com/netmod-wg/yang-ver-dt/issues/12<o=
:p></o:p></p>
<p class=3D"MsoNormal">- decided to shelve this for now and bring it to the=
 larger WG<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We discussed topic T3:<o:p></o:p></p>
<p class=3D"MsoNormal">- what chars should be allowed in filenames?&nbsp; i=
n revision-labels ?<o:p></o:p></p>
<p class=3D"MsoNormal">- allow unicode?&nbsp; Probably not.<o:p></o:p></p>
<p class=3D"MsoNormal">- Be restrictive with a small allowed-list ? a-zA-Z0=
-9_-.,+<o:p></o:p></p>
<p class=3D"MsoNormal">- Comma is sometimes used in version strings (preced=
ence), also used sometimes as a decimal separator. Concern about CSV.<o:p><=
/o:p></p>
<p class=3D"MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.g. &nbs=
p;-&gt;&nbsp; 1.6.0,1&nbsp; (indicates this is greater than 2.0.0)<o:p></o:=
p></p>
<p class=3D"MsoNormal">- What about ';'&nbsp;&nbsp; (shell metachar in unix=
).&nbsp; Probably avoid this one.<o:p></o:p></p>
<p class=3D"MsoNormal">- Be less restrictive and have a deny-list ? 0x00-0x=
1F 0x7F &quot; * / : &lt; &gt; ? \ |, #, @
<o:p></o:p></p>
<p class=3D"MsoNormal">- Use the same rules as YANG module name?<o:p></o:p>=
</p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We discussed topic T4:<o:p></o:p></p>
<p class=3D"MsoNormal">- only match on labels in the history contained in t=
he 1 file?&nbsp; vs parsing multiple files to build the complete lineage ?<=
o:p></o:p></p>
<p class=3D"MsoNormal">- warning about removing history (especially if the =
entry had an NBC tag)<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Rgds,<o:p></o:p></p>
<p class=3D"MsoNormal">Jason<o:p></o:p></p>
</div>
</body>
</html>

--_000_DM6PR08MB50840367B68716DE71FCB3E09BBC9DM6PR08MB5084namp_--


From nobody Tue Jan 26 08:57:33 2021
Return-Path: <ietfc@btconnect.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 66C893A0AD3 for <netmod@ietfa.amsl.com>; Tue, 26 Jan 2021 08:57:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.001
X-Spam-Level: 
X-Spam-Status: No, score=-0.001 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=btconnect.onmicrosoft.com
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 y08u_02v7u2W for <netmod@ietfa.amsl.com>; Tue, 26 Jan 2021 08:57:25 -0800 (PST)
Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130118.outbound.protection.outlook.com [40.107.13.118]) (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 CD6453A0DAC for <netmod@ietf.org>; Tue, 26 Jan 2021 08:57:05 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vn23uaD6F/6ux+9II8ujTEreCv22MJMnKuQ9kYD6El+TohJqrXN1EkpqaMmRhTFUMp08ajhc9IueJ63v5OgUEUeTQDzPJNJnWkDwKpZ06hYaaQ5ATMHuXK48N5enJUULRASgTtbUBNPB+rRVoCVVh3CAdgAJp7eXeZ68HKGxyh+ug+d80VnlM/gU5cfc+XkhWwVdPPnfymq/ouM5n0pAmPQr2P/F1kU6WXkXc1mIc0kLURFifHV9XjBuv6LbfBZiglWmyziiPjxjUomOXvwJYa/p5W6JP0JsgmuvoEqGzaNsDSIDOGG6Y1o79b1rifirfzXuLoQwaFx5IXCEj2m50Q==
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=P+UXBYnx1c8DIrKVab8XbbzWGjXamKaqbSzwrjlDF6U=; b=JtLh/H3Ed/c0dHSUSAihG2Hse5f3tL2xK9AxbPjwg8WHARFn944BxFmhq9p/sgQOAchJkKbgtLPg3RRIbkZUQV4bR7wKuzD0gid/4fsl5kt/jGoR8tuNmprhDlZN2+KEEQ8ZYvmRohxyGuMi3NXtYct4iaIjL3cxuyVfMZOr4zGRsYBRHiK/Jf3mUtMgVJMBIxRrVx8DeAn44uLeCjgWGsrT833RVpfTThpXOQPhmsnifd+hMBt1CodJULDRM7M11OLeV1/qAUZyheuSMdpGOPkSC2JjHmPj3MHA/Os9arPW/Jng1ODXpNtUp5/dGClAaos2HZHnO90lKROtgEyDlg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=btconnect.com; dmarc=pass action=none header.from=btconnect.com; dkim=pass header.d=btconnect.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=btconnect.onmicrosoft.com; s=selector2-btconnect-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P+UXBYnx1c8DIrKVab8XbbzWGjXamKaqbSzwrjlDF6U=; b=IFfP+ZGEhWrZU7FMvpaoeEv5eP+czq0U29qMW122TSAlY60fuyqzOQIaUNL+I6iqhBaLdYAf4VPBXU++xfU1urn0aOEP09Qhmi0LUOjILEzBdpSA0bfd/bCBn5vmvPiaQ+1+wm0ua8najMlY8qiEi3xlFob77VS0m3OzLAsU8Ps=
Received: from (2603:10a6:20b:134::11) by AM7PR07MB6515.eurprd07.prod.outlook.com (2603:10a6:20b:1ae::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.5; Tue, 26 Jan 2021 16:57:02 +0000
Received: from AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::8115:3afd:18f6:c6d1]) by AM7PR07MB6248.eurprd07.prod.outlook.com ([fe80::8115:3afd:18f6:c6d1%8]) with mapi id 15.20.3805.015; Tue, 26 Jan 2021 16:57:02 +0000
From: tom petch <ietfc@btconnect.com>
To: "ianfarrer@gmx.com" <ianfarrer@gmx.com>
CC: =?Windows-1252?Q?Martin_Bj=F6rklund?= <mbj+ietf@4668.se>, "ladislav.lhotka@nic.cz" <ladislav.lhotka@nic.cz>, "andy@yumaworks.com" <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>, "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>
Thread-Topic: Structuring a DHCP module
Thread-Index: AQHW70sVzeGJg/CSikuUFwnormzctaow1pyAgAEdNOWAABNGgIAABKIAgAA9LPKAAAhzgIAACCuZgADpuYCAACNFOYAFEaSAgAFrL2k=
Date: Tue, 26 Jan 2021 16:57:02 +0000
Message-ID: <AM7PR07MB6248ACCD9C200278AE4B8F82A0BC0@AM7PR07MB6248.eurprd07.prod.outlook.com>
References: <20210121.134211.1244086498697136841.id@4668.se> <77892263-e7f9-bef3-b9ab-cff36f382891@nic.cz> <AM7PR07MB62480EF0BDB11B95820598EEA0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <20210121.180757.1756334498885863433.id@4668.se> <AM7PR07MB62481A4C3BCD3BA72D0A7B89A0A10@AM7PR07MB6248.eurprd07.prod.outlook.com> <22C508AF-39A8-4F14-BB7E-3B47BBA96C64@gmx.com> <AM7PR07MB624813642FF06D0CB56366FCA0A00@AM7PR07MB6248.eurprd07.prod.outlook.com>, <285B074F-66EF-4A47-8C56-D9982529B09F@gmx.com>
In-Reply-To: <285B074F-66EF-4A47-8C56-D9982529B09F@gmx.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: gmx.com; dkim=none (message not signed) header.d=none;gmx.com; dmarc=none action=none header.from=btconnect.com;
x-originating-ip: [86.146.121.140]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: bed035c1-ef63-4986-43a1-08d8c21b675e
x-ms-traffictypediagnostic: AM7PR07MB6515:
x-microsoft-antispam-prvs: <AM7PR07MB6515456B44B5A9BD7C7B3761A0BC0@AM7PR07MB6515.eurprd07.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: GVElyFHv/FTK8Wa+YJn4YdW6xroALBikNODc/ImHW0zuAhg1ffgGmUhP+czxdVRSp1y9uhpevD6kAVnnkuqF3wSjcTH1mmllWE1lq+eIiS8EYu2AIfOPza24Iq18XKQY9nVCoH9472j0+kOnJi4GGemHLnYnww2de02nJnp8HHlX6jWSp4Js9qvvd+vqUoV8oGkxkD/9SMHMN0lG3WKajfFrZbs1cUwgjJPGaHO9SMWgKsZrmcF+DMyTD/8haDVgENvZ3pbaUPKQy4NgpDziClTaEkbxVKqun9zHIDKWqjIxnBv3KCCih/8/WQQh1OMnHyNZutXCgsRwE1VvcESGaUja9sAE6NO08IQFawYe1WucNRzBt0XM+ROnM733M1XeIZWarl4ws7Dt4Ss2/VXZnMTclZTGEbhb6gyJ8cNkN8g2h6Z6C0U8/QNSv5g8Dcf/uiLrig40GWwt4JhLT3AD9uesu0QFIb6ZVt4YXoIxGBMIUghAEC8HzIsQpcd8UlyFo35B5Zq19zliMDLrKjNXI87B5KWTOSFEe18bS4u0Mz5Hv2tD0cQM9DIIAfw8t7FOnSIeJMXy3akHFlj+t76Z8glzvv2zpQ/DJ6qr0174LTcR7m4Yo61S9LRMzltOwShFUUly/7zv/SF4YY+Q3PcW5A==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:AM7PR07MB6248.eurprd07.prod.outlook.com; PTR:; CAT:NONE;  SFS:(376002)(366004)(396003)(346002)(39860400002)(136003)(186003)(9686003)(64756008)(8936002)(53546011)(6916009)(33656002)(66476007)(52536014)(55016002)(6506007)(66446008)(26005)(83380400001)(8676002)(4326008)(66946007)(66574015)(30864003)(71200400001)(54906003)(3480700007)(316002)(86362001)(2906002)(66556008)(5660300002)(91956017)(478600001)(966005)(76116006)(7696005)(518174003); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?Windows-1252?Q?NZPlEYkigBeKEMbvVWdy7hoXRbbZ95g5mhEKoSmnhQ+SBt0hQLx1qdXg?= =?Windows-1252?Q?omNPK015Mq1C0KymYh/bHUnOgqLu4H+OhmFEAqFhRwwBqf46/ZlL4FOy?= =?Windows-1252?Q?VUOo0kNzoXCS5aKwSfSC2XCtKFeaqt1B5Fb50yCARzDN0QBPVJ56+ENX?= =?Windows-1252?Q?FluKy0d04VZm3mAS3kVqD+BsHWK3MPTkbO9xvnc4k5yge4tZ8Jaxu33z?= =?Windows-1252?Q?ffVBpYr3gBBgoim7S5FPiqJS0UtJXl8A2gfRyqGFlZIMLWbQ++I4ACaa?= =?Windows-1252?Q?am346ZDnCd/tIkchLUSgnjnSlNdbhz6ipVJscKoBlgW/hrneAADlk7aU?= =?Windows-1252?Q?wRuw2Fg1uaPgO0O8T/SmhVpq+vjVVsNoMD9iOGRRKNq6pUceWDB2deGD?= =?Windows-1252?Q?s9mZ4x2t+Mc8kqEvoKlHRU4bHW14DfRGp8UNWrv8uabN4Fv+0oKXdbv3?= =?Windows-1252?Q?LSPci9QhTjTOUSmjeu2JH8zcrR7F7vTATsUS6t0Bun/RgwZ0KMMBAx62?= =?Windows-1252?Q?cqFIo4hLjw+JP1bXjL/K4oBVgKxcw9fnclHorUz1QlCsniMf9DB1ly0u?= =?Windows-1252?Q?JqDAVMJx5HXtkUeKp0cIOubIA2ZtlTwgo6Cq9w1qZfuz6ejKp4zl1hyO?= =?Windows-1252?Q?yJDvXPr1jgGQZFKz7oTCiTwh4FMIWtoxXmmeEeZKTJ2bZQiBpMETN9Nr?= =?Windows-1252?Q?Tc3EPtKNEWkPfFT2ei5qmnTVTXlTkIb6pxFI6DbPETXYDiNphdo7QUFZ?= =?Windows-1252?Q?nYLfOGFmTGKSacq2qCf2ZSKnZTBcr2n4zQm7cWcseATqQ1bQ0xeUAZqB?= =?Windows-1252?Q?XmmO0UkJiv3RojGcB3n2dA9AopnDPtC61vC+Iuw5wTYbQ8/kKB/ATFc4?= =?Windows-1252?Q?YJ36dUgvOp6qrutxbctr7RHY8wVtWWGU6QzqSQg0revlEj6cj+742y+g?= =?Windows-1252?Q?3KwjZIffMdy3F8tBk2E5CipoPYLnxMLGzqk1eq1Ikf+6RrN8ALE3lXWU?= =?Windows-1252?Q?daa4/Ii2vb/8VUwkLZQ94X6nSEHIPDczGprn7CQJnA4u0SRlhT23dVu5?= =?Windows-1252?Q?jaZMbw9bzb2hgqwFYG7K5UV5TXoK3Qmga0za8SlF7XSKM8i5AWU9PKKy?= =?Windows-1252?Q?aq3OpgVjuelSxHn9cRJyQydv?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: btconnect.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM7PR07MB6248.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: bed035c1-ef63-4986-43a1-08d8c21b675e
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jan 2021 16:57:02.5996 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: cf8853ed-96e5-465b-9185-806bfe185e30
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: VQBaMuZFhhqEf+ot2NBkic1rHEIgaKGopva5nHT2rz9LRDMW0WcTyOkwwmi85idQxM7+8/s75kcJjX4fzhUR2A==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6515
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/OhrVjE709noTTEYEK4tJHiF3lPM>
Subject: Re: [netmod] Structuring a DHCP module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2021 16:57:28 -0000

Ian=0A=
=0A=
Agree mostly.  One follow-up in-line under <tp>=0A=
=0A=
Tom Petch=0A=
=0A=
From: ianfarrer@gmx.com <ianfarrer@gmx.com>=0A=
Sent: 25 January 2021 15:04=0A=
=0A=
Hi Tom,=0A=
=0A=
Please see inline.=0A=
=0A=
Ian=0A=
=0A=
> On 22. Jan 2021, at 11:06, tom petch <ietfc@btconnect.com> wrote:=0A=
>=0A=
> From: ianfarrer@gmx.com <ianfarrer@gmx.com>=0A=
> Sent: 22 January 2021 07:33=0A=
>=0A=
> I=92m planning to restructure so that the common module is imported by cl=
ient, server and relay, which means that the identity/role is no longer nee=
ded for this. (I need to look at whether the identities are needed for othe=
r reasons, such as how the modules will be extended with additional option =
definitions etc.). This seems simpler to me and avoids the common module ne=
eding to import all 3 of the other modules with the dependency problems tha=
t introduces.=0A=
>=0A=
> <tp>=0A=
> Sounds like a good idea to me.=0A=
>=0A=
> Does this address Martin's comment about not understanding the purpose of=
=0A=
> a leaf called "dhcpv6-node-type"?=0A=
>=0A=
> For me. if identities are needed, they belong in the common module so all=
 node types have access to them (my instinct would be to specify them even =
if they are not needed at present on the grounds that they likely will be).=
  Likewise, if there is a need to know the node type, I see that also as pa=
rt of a common module but then, as I said before, I am more used to, more c=
omfortable with, a single module.  I have great respect for Lada's recommen=
dations so if he sees three modules as best, I will take that on board.  (Y=
ou will have seen the comments up-thread from others about the support from=
 tools offering somewhat more with a single module).=0A=
=0A=
[if - I=92ve spent some time with the restructure that=92s being discussed,=
 and the identities will no longer be needed.]=0A=
=0A=
>=0A=
> Another point where different models take different views is whether or n=
ot there should be a leaf to enable the function, be it server, relay, clie=
nt or some combination thereof; some do, others just say that if the module=
 is implemented on a node then of course it is enabled!=0A=
=0A=
[If - I think in this case is it would be useful. I=92ll add in the next up=
date. For the client and relay modules, it would also make sense to have an=
 enable node for each relay/client interface.]=0A=
=0A=
> Another thought, if a node only implements the relay module, say, and the=
re is no leaf for node type, can you test for that in a module which wants =
to augment the common module only if relay is implemented and/or enabled?  =
 A presence container would do it, probably other ways as well, but I canno=
t recall seeing that done.=0A=
=0A=
[if - Wouldn=92t you just augment the relay module directly in this case?]=
=0A=
=0A=
<tp>=0A=
Weelll I was positing that it was something that was a better fit for the c=
ommon module because that is where other related definitions are but that a=
t the moment it is for relay only.  Purely hypothetical so leave it for now=
.=0A=
=0A=
Tom Petch=0A=
>=0A=
> Tom Petch=0A=
>>=0A=
>=0A=
>=0A=
> Ian=0A=
>=0A=
>> On 21. Jan 2021, at 18:48, tom petch <ietfc@btconnect.com> wrote:=0A=
>>=0A=
>> From: Martin Bj=F6rklund <mbj+ietf@4668.se>=0A=
>> Sent: 21 January 2021 17:07=0A=
>>=0A=
>> tom petch <ietfc@btconnect.com> wrote:=0A=
>>> From: Ladislav Lhotka <ladislav.lhotka@nic.cz>=0A=
>>> Sent: 21 January 2021 12:58=0A=
>>>=0A=
>>> Hi,=0A=
>>>=0A=
>>> in my YD review 4.5 years ago I actually recommended to use separate=0A=
>>> modules:=0A=
>>>=0A=
>>> https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_=
ICrKPs4/=0A=
>>>=0A=
>>> I think it is a matter of how much the different part overlap. For an=
=0A=
>>> implementer, it seems to be easier to pick just the relevant parts,=0A=
>>> provided they are easy to locate and identify.=0A=
>>>=0A=
>>> <tp>=0A=
>>> Thank you for all the responses;  I did look at the data tracker to see=
 if there had been any reviews, thinking that a previous review would be  t=
he right place to start, and it said 'No reviews'!  Perhaps these time out.=
=0A=
>>>=0A=
>>> I am not comfortable with the seven modules seeing four as better, a co=
mmon which is then augmented with server, relay, client, with the common co=
ntaining the role(s), whereas at present it is the three role modules that =
contain the role which then drives having the three option modules so each =
option module only imports one role module, and that is the bit I find most=
 awkward.=0A=
>>>=0A=
>>> How best to select the three roles?  As I said upthread, I have seen th=
e role specified with features, with augment/when based on identityref (alt=
hough not with the three identity defined in the three role modules), prese=
nce containers and so on (I have probably seen that and more in the history=
 of this I-D:-).=0A=
>>=0A=
>> Is "role" the same as "node-type"?  Each of these module define their=0A=
>> own copy of a leaf called "dhcpv6-node-type".  I am not sure I=0A=
>> understand what purpose this leaf serves.  It seems to me that it can=0A=
>> be removed, but perhaps I am missing something.=0A=
>>=0A=
>> <tp>=0A=
>>=0A=
>> Me too.  I am assuming that it is intended to define the role but I coul=
d be quite wrong.  Need input from Ian on this.=0A=
>>=0A=
>>> My instinct would be to put the three identity definitions into common =
with a dhcpv6 container, which is then augmented by the three role modules,=
 the YANG 'when' referring to role leaf in the common.  Any better ways?=0A=
>>=0A=
>> Why do augment at all?  Why not just have a top-level container in=0A=
>> each module; 'dhcpv6-client', 'dhcpv6-server' etc?=0A=
>>=0A=
>> <tp>=0A=
>> Yes, I am just lifting the structure of another I-D probably for no good=
 engineering reason:-(.=0A=
>>=0A=
>> Tom Petch=0A=
>>=0A=
>> /martin=0A=
>>=0A=
>>=0A=
>>=0A=
>>>=0A=
>>> Tom Petch=0A=
>>>=0A=
>>> Lada=0A=
>>>=0A=
>>> On 21. 01. 21 13:42, Martin Bj=F6rklund wrote:=0A=
>>>> Hi,=0A=
>>>>=0A=
>>>> I think it is a matter of taste and perhaps future extensibility if=0A=
>>>> this model is done as one or more YANG modules.  It can certainly be=
=0A=
>>>> done in one module, with features for client, server and relay, but it=
=0A=
>>>> is also ok to have 3 modules for the different functions.  And once=0A=
>>>> you have these 3 modules, it is natural to have a "common" module,=0A=
>>>> leading to 4 modules.  In order to keep the number of modules down,=0A=
>>>> perhaps the various -options modules could be merged into the other=0A=
>>>> 3, probably with a feature each.=0A=
>>>>=0A=
>>>> One comment is that it might be wise to avoid having a rfc number in=
=0A=
>>>> the identifier.  What happens if/when that RFC is revised for any=0A=
>>>> reason?=0A=
>>>>=0A=
>>>>=0A=
>>>> /martin=0A=
>>>>=0A=
>>>>=0A=
>>>> tom petch <ietfc@btconnect.com> wrote:=0A=
>>>>>=0A=
>>>>> Inline <tp>=0A=
>>>>>=0A=
>>>>> From: Andy Bierman <andy@yumaworks.com>=0A=
>>>>> Sent: 20 January 2021 18:32=0A=
>>>>>=0A=
>>>>> On Wed, Jan 20, 2021 at 8:41 AM tom petch <ietfc@btconnect.com<mailto=
:ietfc@btconnect.com>> wrote:=0A=
>>>>> Juergen, Lada, Martin, Andy=0A=
>>>>>=0A=
>>>>> I wonder if one of you, or perhaps another on this list, would be wil=
ling to give advice on the=0A=
>>>>> structuring of  the YANG module for DHCP.  It has been revised and re=
structured several times and, to me, is not progressing.=0A=
>>>>>=0A=
>>>>> It models three roles - client, server, relay - and a dozen optional =
function which can appear in one or more roles.  A node will likely have on=
ly one role but may have many options.=0A=
>>>>>=0A=
>>>>> There are, at present, seven modules=0A=
>>>>> server which defines a server identity  based on common identity inte=
r alia=0A=
>>>>> relay which defines relay identity ditto=0A=
>>>>> client which defines client identity ditto=0A=
>>>>> server options which has groupings for each option for a server=0A=
>>>>> client options which has groupings for each option for a relay=0A=
>>>>> relay options which has groupings for each option for a client=0A=
>>>>> common which defines the common identity inter alia=0A=
>>>>> Since options are common across roles, some groupings are replicated =
in the three options modules.  Three separate option modules were created t=
o avoid problems with imports as Ian explains below.  The I-D is draft-ietf=
-dhc-dhcpv6-yang=0A=
>>>>>=0A=
>>>>> My take is that one module is best, using 'when' or if-feature to sel=
ect, which is what I see with OSPF, PCE, TCP, IGMP and almost everything el=
se but am struggling to convince others, especially  the author Ian.  [IF] =
in the e-mail extract below=0A=
>>>>>=0A=
>>>>> I suggested asking a YANG Doctor, NOT to look at the module but rathe=
r to advise on a structure given the requirements to which Ian said that he=
 had not had much joy with YANG Doctors.  I append our most recent exchange=
 in which he responds to my query as to why there are seven modules; format=
ting is a bit of a mess I am afraid.  The posts are to the DHCWG mail list.=
=0A=
>>>>>=0A=
>>>>> Any advice appreciated even if it is that Ian is on just the right tr=
ack!=0A=
>>>>>=0A=
>>>>>=0A=
>>>>> Either approach is valid so multi-module vs. single module w/ feature=
s is more=0A=
>>>>> of an overall system maintenance issue.  7 modules seems like a lot f=
or DHCP but=0A=
>>>>> I have no objective criteria to back that up.=0A=
>>>>>=0A=
>>>>> There is some confusion about the import-stmt, which leads to many YA=
NG modules.=0A=
>>>>> In compiler terms, importing a module merely makes the symbols availa=
ble for parsing in the current module.=0A=
>>>>> The import-stmt implies no conformance requirements whatsoever.=0A=
>>>>> Only statements that use the imported module can do that.=0A=
>>>>> (So a server module importing a module that has client groupings is n=
ot actually a problem.)=0A=
>>>>>=0A=
>>>>> <tp>=0A=
>>>>>=0A=
>>>>> Andy, Juergen,=0A=
>>>>>=0A=
>>>>> Thank you for the replies.  What Ian said about the import is=0A=
>>>>>=0A=
>>>>>> [IF] The separation of the option modules came at a later stage base=
d on import dependencies of a single options module. When the options modul=
e imports the client/server/relay modules so it can augment the relevant mo=
dule based on identity, an implementation also needs to import these module=
s and will declare them in it=92s capabilities as available even though it =
doesn=92t implement them. Dividing the options modules avoids the need for =
deviations.=0A=
>>>>>=0A=
>>>>> <tp> that is, the prefix for dhcpv6-server is defined in the server m=
odule,=0A=
>>>>>  module ietf-dhcpv6-server {=0A=
>>>>> ...=0A=
>>>>>    prefix "dhcpv6-server";=0A=
>>>>> ...=0A=
>>>>>    identity server {=0A=
>>>>>      base "dhcpv6-common:dhcpv6-node";=0A=
>>>>>      description "DHCPv6 server identity.";      }=0A=
>>>>>    leaf dhcpv6-node-type {=0A=
>>>>>      type identityref {=0A=
>>>>>        base "dhcpv6-common:dhcpv6-node";        }=0A=
>>>>>      description "Type for a DHCPv6 server.";     }=0A=
>>>>>=0A=
>>>>> and the prefix for dhcpv6-relay in the relay module etc so having a s=
ingle module for options which needs to augment options to the server modul=
e needs to import the server module so that the dhcpv6-server prefix is def=
ined, ditto relay and client so the single module for options then imports =
server and relay and client modules.=0A=
>>>>>=0A=
>>>>> With three options modules, each only imports one of server, relay, c=
lient but the groupings are then replicated across the three options module=
s.=0A=
>>>>>=0A=
>>>>> Logical if you agree with the initial premise (which I do not!).=0A=
>>>>>=0A=
>>>>> The seven YANG modules are all in the one I-D of 56pp with the tree d=
iagrams 12pp.=0A=
>>>>>=0A=
>>>>> Tom Petch=0A=
>>>>> (on European time:-(=0A=
>>>>>=0A=
>>>>> YANG Conformance for a single module is better defined than for multi=
ple related modules.=0A=
>>>>> The YANG Packages work could fix that someday.=0A=
>>>>>=0A=
>>>>> Tom Petch=0A=
>>>>>=0A=
>>>>>=0A=
>>>>> Andy=0A=
>>>>>=0A=
>>>>>=0A=
>>>>> On 19/01/2021 11:25, tom petch wrote:=0A=
>>>>>> ________________________________________=0A=
>>>>>> From: dhcwg <dhcwg-bounces@ietf.org<mailto:dhcwg-bounces@ietf.org>> =
on behalf of ianfarrer@gmx.com<mailto:ianfarrer@gmx.com> <ianfarrer@gmx.com=
<mailto:ianfarrer@gmx.com>>=0A=
>>>>>> Sent: 19 January 2021 07:37=0A=
>>>>>>=0A=
>>>>>> Thanks for your comments. Please see inline below.=0A=
>>>>>>=0A=
>>>>>> Ian=0A=
>>>>>>=0A=
>>>>>> On 14. Jan 2021, at 13:40, t petch <ietfa@btconnect.com<mailto:ietfa=
@btconnect.com><mailto:ietfa@btconnect.com<mailto:ietfa@btconnect.com>>> wr=
ote:=0A=
>>>>>>=0A=
>>>>>> Ian=0A=
>>>>>>=0A=
>>>>>> I do not understand this I-D; I have tracked it for a number of year=
s and my understanding of it is diminishing.=0A=
>>>>>>=0A=
>>>>>> Currently, it is seven YANG modules: why?=0A=
>>>>>>=0A=
>>>>>> [if - The separation into client/server/relay, and DHCP options has =
been in the draft since -05 and the changes were presented and discussed at=
 IETF101 - I=92ve described the reasoning for this split in the next answer=
. Beyond that, the common module was added to avoid (well reduce as you poi=
nt out below) duplication.=0A=
>>>>>>=0A=
>>>>>> The separation of the option modules came at a later stage based on =
import dependencies of a single options module. When the options module imp=
orts the client/server/relay modules so it can augment the relevant module =
based on identity, an implementation also needs to import these modules and=
 will declare them in it=92s capabilities as available even though it doesn=
=92t implement them. Dividing the options modules avoids the need for devia=
tions.=0A=
>>>>>>=0A=
>>>>>> Even though there are 7 modules defined here, the likely hood is tha=
t an element implementation would require 3 modules to be implemented (e.g.=
 client, common and client options).]=0A=
>>>>>>=0A=
>>>>>> [tp] Other WG have models with multiple roles and many options and h=
ave a single YANG module, using the features of YANG to tailor the module t=
o different configurations.=0A=
>>>>>>=0A=
>>>>>> [if - It=92s not really tailoring the module to different configurat=
ions, they are for the most part separate functional elements in the networ=
k with any device only implementing one of the client, relay or server func=
tions.=0A=
>>>>>>=0A=
>>>>>> However, even in the case that a device is both a server and a clien=
t (e.g. a home gateway with a client on the WAN and a server on the LAN), t=
he likelihood is that these will be done using different software implement=
ations, so having separate modules for server and client offers implementat=
ion flexibility.=0A=
>>>>>>=0A=
>>>>>> In the case of a monolithic module with the relevant client/relay/se=
rver functionality enabled by features, the module would do nothing unless =
one or more of the features was enabled, and Is unlikely that you=92d ever =
enable more than one. Is this approach used by other WGs? Could you point m=
e to some some examples as I've only seen features been used as relatively =
small optional extensions used when the bulk of the nodes are common?]=0A=
>>>>>=0A=
>>>>> [tp]=0A=
>>>>> Ian=0A=
>>>>>=0A=
>>>>> Almost all the YANG models I know of are single module.  For example,=
=0A=
>>>>> draft-ietf-ospf-yang supports two versions modelled as identity and 2=
8=0A=
>>>>> options modelled as features.=0A=
>>>>>=0A=
>>>>> draft-ietf-tcpm-yang supports client and server as containers with=0A=
>>>>> if-feature and has other features as well=0A=
>>>>>=0A=
>>>>> draft-ietf-pim-igmp-mld-yang supports five versions of two protocol=
=0A=
>>>>> using identity=0A=
>>>>>=0A=
>>>>> draft-pce-pcep-yang offers the roles of pcc or pce or both using type=
def.=0A=
>>>>>=0A=
>>>>> And so on and so on.  if-feature, when and suchlike provide the=0A=
>>>>> necessary customisation.=0A=
>>>>>=0A=
>>>>> I think that your problems with options are because the identity are=
=0A=
>>>>> defined in the wrong place.  The base, the common module (or part of =
the=0A=
>>>>> one and only module) should define what is common, what everyone need=
s;=0A=
>>>>> if there are three roles and a dozen options, than that is where they=
=0A=
>>>>> need to be defined.=0A=
>>>>>=0A=
>>>>> Then there can be an object which is configured with the roles of a=
=0A=
>>>>> particular box, client or server or relay, or if required, a combinat=
ion=0A=
>>>>> of the there - simpler if that is out of scope as you suggest.=0A=
>>>>>=0A=
>>>>> My starting point would be a dhc container with a leaf for a role and=
 then=0A=
>>>>> containers for client, relay, server, added by augment and controlled=
 by=0A=
>>>>> when pointing at the role.=0A=
>>>>>=0A=
>>>>> I will post something to the netmod WG list - there are lots of peopl=
e=0A=
>>>>> there with greater exposure than mine who can give better guidance th=
an I.=0A=
>>>>>=0A=
>>>>> Tom Petch=0A=
>>>>>=0A=
>>>>>> Here you have modelled the options as YANG grouping. The intent of a=
 grouping is to provide a block of statements that can be reused so avoidin=
g duplication with the attendant problems.  Here you have the same grouping=
 in triplicate in three different YANG modules which seems to me to be the =
antithesis of a grouping.=0A=
>>>>>>=0A=
>>>>>> [If - We could move the option definitions for "status-code-option-g=
roup=94 (client, server, relay) and =93rapid-commit-option-group, vendor-sp=
ecific-information-option-group; reconfigure-accept-option-group=94 (client=
, server) into the common module to resolve the duplication. I didn=92t do =
this previously as the intention was to keep options definitions in the opt=
ions modules for consistency, but it  would be simple to change. ]=0A=
>>>>>>=0A=
>>>>>> [tp] Likewise I find the specification of server v client v relay un=
usual.=0A=
>>>>>>=0A=
>>>>>> [If - A similar approach for separated client/server modules is also=
 used in RFC8676, where the client and server have discrete function, as wi=
th DHCP.]=0A=
>>>>>>=0A=
>>>>>> [tp]I wonder if it is worth consulting a YANG doctor, NOT to show th=
em the YANG and invite comments, rather outline in an abstract way what it =
is you want to model and see what they suggest; that might well be a single=
 YANG module.=0A=
>>>>>>=0A=
>>>>>> [if - Yes, I=92d be happy to. Is there someone that you have in mind=
 (I=92ve not had much luck with getting YANG doctor input outside of the fo=
rmal review process in the past)?. I=92m not opposed to changing the way th=
at the modules are structured on principal, I do however, think that the se=
paration by functional element is logical and simpler for implementers, and=
 I would like to know what the benefits of a single module (or other struct=
ure) might be.]=0A=
>>>>>>=0A=
>>>>>> [tp]I do have quite a number of detailed comments but do not think t=
hem worth making until the I-D seems to me more stable.=0A=
>>>>>>=0A=
>>>>>> [if - It=92d be great if you could supply them as well so I can star=
t going though them and fixing what=92s currently fixable in parallel to th=
e discussion above.]=0A=
>>>>>>=0A=
>>>>>> Tom Petch=0A=
>>>>>>=0A=
>>>>>> On 07/01/2021 16:10, ianfarrer@gmx.com<mailto:ianfarrer@gmx.com><mai=
lto:ianfarrer@gmx.com<mailto:ianfarrer@gmx.com>> wrote:=0A=
>>>>>> Hi Tom,=0A=
>>>>>>=0A=
>>>=0A=
>>> --=0A=
>>> Ladislav Lhotka=0A=
>>> Head, CZ.NIC Labs=0A=
>>> PGP Key ID: 0xB8F92B08A9F76C67=0A=
>=0A=
=0A=


From nobody Thu Jan 28 13:18:35 2021
Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4EC0D3A1714 for <netmod@ietfa.amsl.com>; Thu, 28 Jan 2021 13:18:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.151
X-Spam-Level: 
X-Spam-Status: No, score=-2.151 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 GeOnEV1O19oX for <netmod@ietfa.amsl.com>; Thu, 28 Jan 2021 13:18:31 -0800 (PST)
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2116.outbound.protection.outlook.com [40.107.93.116]) (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 056D23A040B for <netmod@ietf.org>; Thu, 28 Jan 2021 13:18:30 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CBeSO7SEsZOfwzejwOsD1LrH066raEFkKdrATNclimMnKHxmMqffovSfhQNOnAXhfIHZ0nKIfw+KrznALME/CaC0GGfD/Aenmcrh52aY8VB8Hjv9spP34da4Xs2P0vFq+xy2KKe9uDVt8tQpL2hVU20XGAqzAxA7kMfwjRPZ4CgSEKrLX3FTEKV8IzZCzv0vJ9rU7imgD1g9q85szKYKX910PIv6/AHabOl6LHKtW521Ne2FCctF4nzv+q652gQgnV5RjG2hIS3mrRIPf1xfca/Y+fCXNoVlPsFJyJEw9kbVkn/CeG9HjkHh4XQ5A2SgHYO18CE9O7AgChQLHcf+rw==
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=dXDYWn4R7LN7B3uefkux7cxYQNNVIUNoajgA2YBSPKA=; b=RPJkQ6cR5gQTKiN22NHOZpQ4UKq0dfnWkzbhatjWrE59fCtEeKo0EkUIUFd/AM3YCAOxjVE+xZgtJZR4M5KrC8x1q/d7pi96JMRXmrAcFh1S8R2SGeQurlGFxS0DSylf9Adu+//T3ZltxodgoyWRrUDnOnE8i4oFwEMebI+eK2biFdrcgzoSD5gfk7CSgpn2wSxDMrnlQTZNdwOcnTeYn5A4BXSOKPwfmFu/fgecOuIYTTwyKaV/cUre5Zziq93pDkonW4zSb7MBVmIplA6crL4k8YPp4KnFnR25rZEQTpkwfuhlVGwFTunvu6JUQcdeVo6aHHK/6WOlAoFuyGzgCQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com;  s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dXDYWn4R7LN7B3uefkux7cxYQNNVIUNoajgA2YBSPKA=; b=Qp9zx5jgPOlUlfRavMnL9Db4B6W93OPJ5hcwNM76qGGXZ/jLrWUhNPh8EgUAl1rFTSzMeU8hor7nxUSaxtAJOZgk6Yx3SCp/Io4cUV7YRc4cERF8JIhqIwXrc739/xlWFCEUt+7nVxlcp3+X3swUXL4isNyrZEDB+capUwNCkA8=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by DM6PR08MB4572.namprd08.prod.outlook.com (2603:10b6:5:fe::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.17; Thu, 28 Jan 2021 21:18:27 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::e9d5:c438:1c73:8ca3%5]) with mapi id 15.20.3784.017; Thu, 28 Jan 2021 21:18:27 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] Network Modeling (netmod) WG Virtual Meeting: 2021-02-01 CHANGED
Thread-Index: AQHW61rzxAbwH/yDlkCcBt5oLj1JC6oo4JCggBS+k0A=
Date: Thu, 28 Jan 2021 21:18:27 +0000
Message-ID: <DM6PR08MB508413FE35AA9F639EB725E99BBA9@DM6PR08MB5084.namprd08.prod.outlook.com>
References: <161072776741.29590.13830234810493226103@ietfa.amsl.com> <DM6PR08MB50841A8FC8D34C76DA593B739BA70@DM6PR08MB5084.namprd08.prod.outlook.com>
In-Reply-To: <DM6PR08MB50841A8FC8D34C76DA593B739BA70@DM6PR08MB5084.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=nokia.com;
x-originating-ip: [2607:fea8:e31f:6800:38ad:fc4:3736:60df]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 5709c69b-2856-4ffa-a453-08d8c3d240e8
x-ms-traffictypediagnostic: DM6PR08MB4572:
x-microsoft-antispam-prvs: <DM6PR08MB457235E94B77FBC33CB7E3469BBA9@DM6PR08MB4572.namprd08.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: qigT5Lz66fI6C1UFPWa4sedeJboIVoMc/g+bFJDiiZybmJXxJdEb+aDmxQCiuMinrDvlxTaC7GnlCAg4Wux+8scEKz56GbHeTJFg968MPVFqKaz1EJMqK9hNWgr4lI1Yz+/QubMpcX30n+w+DZrsMJq4YOosMorxTy8MqH7c4pfAfs1hf9ic9aOjZqJ0rwTpONFAjXF1I6/7HU+R9YAiNZo0Oq3cYoMwcV334PY4Jr+YSgS0mQ/B+hUXi7u/QLzGL/p37D0kIjEheSyCFOOp+kMIp7EnZtyWV2lZwyMEQz2tJk5fKLKH1BHgF25bcVGO58mT9C+BxvABk7VTpgx9s+bvVMPV5rBQ2uKlSNytlMMThGX7LP2RSk76yj/bCkL2GDlinZSdjAXvNBtZicbzFq7XKI3G+8w1PeRkjW4RNKoNW1gTkpT8Wr3l49bkD9Ud4Uijdyo4pN0qwfi74vblanZQL/MtHSd40qti0WwskA24HWgeeSYCr5fVlCdGSR55DfxLOcPfGq1hici1UO0I9k7/CYi5FHpBCA5vmZMhbeob6Gv1fRSE5nse3ECGLBmT3ht4fKuvYRHsoFSwdS6ZBIj5LwQtlBTyacqEELBfNj4=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;  IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE;  SFS:(4636009)(366004)(376002)(39860400002)(396003)(136003)(346002)(66946007)(66556008)(66446008)(64756008)(66476007)(478600001)(66576008)(966005)(8676002)(316002)(86362001)(186003)(76116006)(6506007)(8936002)(5660300002)(53546011)(33656002)(52536014)(6916009)(99936003)(7696005)(2906002)(71200400001)(83380400001)(9686003)(55016002)(16799955002); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?w+Jb8manv5G4NBOuKczfde9Sf7PSwLllph3/+dmKyeMfo7nu26poT5QY000w?= =?us-ascii?Q?yrEFQMyov8avSbt0UMZJDKV48pXNBbQ5jgw8bRwGLIJc9kuZl1m1K+ogtmVN?= =?us-ascii?Q?bkPfWo4hXXfOLlgTRcN1ybe1Y1JIrCX5JM1qctFihYSlocWd8ylOfnGtm19R?= =?us-ascii?Q?Pa1s49wJ05lJAfN9As+wsJv1PJf9Wt6gi/kbPA1d58LP8xPCTLZyVUfnz5BL?= =?us-ascii?Q?UWk1LtyGs6aKXL6pxxuN1AAtQHZ/AXdYJiNWTV1iUEyn0XYMjneh2XtrYtXs?= =?us-ascii?Q?72bGw5fpiEclS5Jk8mNm0eIWQXjxnKJDYQ/IAaK/3xg/pXxCBWd40hLzMA+J?= =?us-ascii?Q?tM1yzYpilXp04w97Hn8C3KaylGXjDIYIbzI6gSLeJUAbkh8G38u0FblZ/9qU?= =?us-ascii?Q?81avKXY2CDALaiW/DZXPbUoChzB2Mh51MKHgh6DOgoQDSZSDk5Fzv7/j1yxB?= =?us-ascii?Q?zc7oILr7BfWM0/+wnIMCxT4vZyDnBmvLhSNBnZbnO/Nx2PeuteuSiC8H1B41?= =?us-ascii?Q?LjpkS7h/nF5p9AHYxXNRWY+9SJdMkGrTM/ueMQSeu+pI3RC0rcqZi2/rxW1g?= =?us-ascii?Q?M/UzuVWFqKUITjzBKgGkMLrEahIt7/R7oGQJ2FRry6Dxp+DOCvESgOXvfGJ2?= =?us-ascii?Q?KxJ+Ej71lNVwpCZn6zdBF69qzbxaio6CGMVKvdin3Whex9iOfxba7chCjSPM?= =?us-ascii?Q?yiTJY6sCm4zfMCGPI7FFnEyIvETiiRPJdpSlb8KdCQoYm89fs5dMQfpiABo/?= =?us-ascii?Q?lXH3tWgMgG0FU8OPXWIoL+xQGGw/xFkI9FwuYedLu0rIbOEeaRUD6JNSK/3c?= =?us-ascii?Q?Ssy7FN/peIpwXtH8UtAJjCuvpKJnTw+Ei+LDmdmgDwH0Q3XBE1988+qktE69?= =?us-ascii?Q?CztZeVrVVAWnI/KiUQYm0Fw2GEKvERoFw+3WLKsDyUVxwY2A4Woa486YpV5p?= =?us-ascii?Q?HQlNx/yIgpR/tkDc3kf9TKv+HFMZAb4khxwvMFnzSzdmKTeZXpx8nfeiQxor?= =?us-ascii?Q?OJrQryOqmdQ/8y/DA3W1SpbssdAxlE3s+MDVO1/1MmvOBTepR0FUYo9wqBm7?= =?us-ascii?Q?QIOR0pD27+1p/JVaI7mjZSE3DzNCekBfidGqD2VNuIUWW+OOv273XvpcSGYT?= =?us-ascii?Q?eLLsmh2HRSTD?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/mixed; boundary="_004_DM6PR08MB508413FE35AA9F639EB725E99BBA9DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5709c69b-2856-4ffa-a453-08d8c3d240e8
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jan 2021 21:18:27.1532 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: mkB10JpaWywmK9ahjMLUWuqhDXmaxSh6CT2rqAziCtO8s348qbg+0zb8Tbf8QdJZadI6ONMcHLFTaYn99OlPwg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB4572
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/NvYkEhf3xeBGzkeV4TdVGCrtOB4>
Subject: Re: [netmod] Network Modeling (netmod) WG Virtual Meeting: 2021-02-01 CHANGED
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Jan 2021 21:18:33 -0000

--_004_DM6PR08MB508413FE35AA9F639EB725E99BBA9DM6PR08MB5084namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Enclosed are discussion materials for the meeting on Monday.  We're going t=
o reorder the topics as follows:

> T2) IANA considerations: how are final RFC revision labels assigned ?
> https://github.com/netmod-wg/yang-ver-dt/issues/59

> T3) YANG file naming when revision labels are being used (symbolic links?
> @<revision-label>) ?

> T1) Definition/meaning of BC vs NBC for config false nodes
> https://github.com/netmod-wg/yang-ver-dt/issues/15
=20
> T4) SemVer: gaps in history, removing revision statements
> https://github.com/netmod-wg/yang-ver-dt/issues/61

Jason

> -----Original Message-----
> From: netmod <netmod-bounces@ietf.org> On Behalf Of Sterne, Jason
> (Nokia - CA/Ottawa)
> Sent: Friday, January 15, 2021 11:32 AM
> To: netmod@ietf.org
> Subject: Re: [netmod] Network Modeling (netmod) WG Virtual Meeting:
> 2021-02-01 CHANGED
>=20
> Hi all,
>=20
> Hope to see many of you there. The discussions in the previous interim (D=
ec
> 2020) were lively and useful to progress this work.
>=20
> (6:30am California / 9:30am Eastern / 3:30pm Europe / 10:30pm Beijing)
>=20
> Topics for the meeting:
>=20
> T1) Definition/meaning of BC vs NBC for config false nodes
> https://github.com/netmod-wg/yang-ver-dt/issues/15
>=20
> T2) IANA considerations: how are final RFC revision labels assigned ?
> https://github.com/netmod-wg/yang-ver-dt/issues/59
>=20
> T3) YANG file naming when revision labels are being used (symbolic links?
> @<revision-label>) ?
>=20
> T4) SemVer: gaps in history, removing revision statements
> https://github.com/netmod-wg/yang-ver-dt/issues/61
>=20
> More materials will follow.
>=20
> Rgds,
> Jason
>=20
> > -----Original Message-----
> > From: netmod <netmod-bounces@ietf.org> On Behalf Of IESG Secretary
> > Sent: Friday, January 15, 2021 11:23 AM
> > To: IETF-Announce <ietf-announce@ietf.org>
> > Cc: netmod@ietf.org
> > Subject: [netmod] Network Modeling (netmod) WG Virtual Meeting: 2021-
> > 02-01 CHANGED
> >
> > MEETING DETAILS HAVE CHANGED.  SEE LATEST DETAILS BELOW.
> >
> > The Network Modeling (netmod) WG will hold
> > a virtual interim meeting on 2021-02-01 from 09:30 to 11:00
> > America/New_York (14:30 to 16:00 UTC).
> >
> > Agenda:
> > NETMOD Agenda for Interim (virtual)
> >
> > Date            February 1, 2021
> > Start Time      14:30 UTC
> > Duration        90 minutes
> >
> > Time Zone Converter:
> >
> >
> https://www.timeanddate.com/worldclock/converter.html?iso=3D20210201T1
> >
> 43000&amp;p1=3D1440&amp;p2=3D37&amp;p3=3D438&amp;p4=3D33&amp;p5=3D248&a
> > mp;p6=3D224&amp;p7=3D179
> > Slides:
> >      https://datatracker.ietf.org/meeting/interim-2021-netmod-
> > 01/session/netmodNotes
> > Notes &amp; BlueSheet:
> >     https://codimd.ietf.org/notes-ietf-interim-2021-netmod-01-netmod
> > WebEx:
> >
> >
> https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1900b
> > 0cd0
> > Jabber:
> >     xmpp:netmod@jabber.ietf.org?join
> >
> > Agenda:
> >
> > 1       Topic   Intro &amp; Administrivia
> > Presenter:      Chairs
> >
> > 2 Topic Module Versioning:
> > Presenter: Authors
> > Follow on to https://datatracker.ietf.org/meeting/interim-2020-netmod-
> > 03/session/netmod
> > Virtual Bluesheet
> >
> >
> > Information about remote participation:
> >
> https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1900b
> > 0cd0
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

--_004_DM6PR08MB508413FE35AA9F639EB725E99BBA9DM6PR08MB5084namp_
Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation; 
 name="slides-interim-2021-feb-netmod-01-revision-label-filename.pptx"
Content-Description: slides-interim-2021-feb-netmod-01-revision-label-filename.pptx
Content-Disposition: attachment;
 filename="slides-interim-2021-feb-netmod-01-revision-label-filename.pptx";
 size=51831; creation-date="Thu, 28 Jan 2021 15:55:42 GMT";
 modification-date="Thu, 28 Jan 2021 21:06:50 GMT"
Content-Transfer-Encoding: base64

UEsDBBQABgAIAAAAIQCvBGkh7wEAAKQPAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADM
l8tu2zAQRfcB+g8Ct4VFO2mesJxFm66aB5D0A1hpbLOlSIIcu/HfZ0TZiRLIsRNZsDaG+bh3DkFx
OBxePuYqmoPz0uiEDeI+i0CnJpN6krDfDz97ZyzyKHQmlNGQsAV4djn6cjB8WFjwEam1T9gU0V5w
7tMp5MLHxoKmkbFxuUBqugm3Iv0nJsAP+/0TnhqNoLGHhQcbDX/AWMwURleP1F2S/LUwYdH3cmIR
K2EyLwzCAK/VWF0vKfrrFQ6UfyMR1iqZCqRxPtfZm7X0luuISRnm+Km0/itNWBOhGFkfYKm7pQ1w
MoPoTji8ETnN4tYitw486cLc+H2nGlQzHssUMpPOcpLEVbNcvWrGuZB6tYh1MF5R57XwSB9LtTHY
NVnFeyumJU07HB8hONw7wdFeCLRB8Ksvo9LY+Y5UvDcxFco7Z6xv49wE400Ecwn/WyF4Nt5EgJSN
ofxtvhXBZmNE8UfBPS4U7HzVFeutTsQvsTAzXJ6LstFOhii9P8vUTs5oxtROFmnG9K2DTMcdZDrp
INNpB5nOOsh03kGmQb+LUPvM5JVbtXny3upWDWXPfVnmvfxvp7oK1p8D2vlVth0QqUM1RK9KBx9H
WD3oCnXPkhE4lO/XGM8RybrxmqF4K2aQ1cTm4Y09egIAAP//AwBQSwMEFAAGAAgAAAAhAGj4dKED
AQAA4gIAAAsACAJfcmVscy8ucmVscyCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACskttKAzEQhu8F3yHMfTfbKiLSbG9E6J3I+gBj
Mrsb3RxIptK+vaHgYWEtgr3MzD8f3yRZb/ZuFO+Usg1ewbKqQZDXwVjfK3huHxa3IDKjNzgGTwoO
lGHTXF6sn2hELkN5sDGLQvFZwcAc76TMeiCHuQqRfOl0ITnkcky9jKjfsCe5qusbmX4yoJkwxdYo
SFtzBaI9RPofWzpiNMgodUi0iKlMJ7ZlF9Fi6okVmKAfSzkfE1Uhg5wXWp1XiIede/FoxxmVr171
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
KQLHZNaNJldt+0qzh5GKV5i/qU2JlOY2mptXHPrwtkIOIZp519dP/gUAAP//AwBQSwMEFAAGAAgA
AAAhABc87WrTAAAAvwEAACoAAABwcHQvbm90ZXNTbGlkZXMvX3JlbHMvbm90ZXNTbGlkZTIueG1s
LnJlbHOskMFqwzAMhu+DvYPRfXbSwhijTi+j0EMvpXsAYyuJWSIbSx3r29ewDRroYYcd9Uv69KHN
9mue1CcWjokstLoBheRTiDRYeD/tnl5AsTgKbkqEFi7IsO0eHzZHnJzUJR5jZlUpxBZGkfxqDPsR
Z8c6ZaTa6VOZndSyDCY7/+EGNKumeTbllgHdgqn2wULZhxWo0yXjX9ip76PHt+TPM5LcOWF4igEr
0JUBxYLW38lPY60rEMx9j/Y/PSgJ8sGxYFnY3OSLofbXzCze3l0BAAD//wMAUEsDBBQABgAIAAAA
IQCZ9pmu0wAAAL8BAAAqAAAAcHB0L25vdGVzU2xpZGVzL19yZWxzL25vdGVzU2xpZGUxLnhtbC5y
ZWxzrJDBasMwDIbvg72D0X12ksMYo04vY9BDL6V7AGEriWliG0sb7dvXsA0a6GGHHfVL+vShzfa8
zOqLCocULbS6AUXRJR/iaOHj+P70AooFo8c5RbJwIYZt//iwOdCMUpd4CplVpUS2MInkV2PYTbQg
65Qp1s6QyoJSyzKajO6EI5muaZ5NuWVAv2KqnbdQdr4Ddbxk+gs7DUNw9Jbc50JR7pwwPAdPFYhl
JLGg9Xfy0+h0BYK579H+p0dMQrxHFiorm5t8NdT+mpnV2/srAAAA//8DAFBLAwQUAAYACAAAACEA
hujS+uwCAADTBgAAHwAAAHBwdC9ub3Rlc1NsaWRlcy9ub3Rlc1NsaWRlMS54bWysVU1P4zAQva+0
/8HKafcQ0qShlIqCktIiJLZUFA57NInTWOvYxnZLuyv++46dhPApOHCJv2bs9+bNTI5OthVDG6I0
FXzshXs9DxGeiZzy1di7uZ75Qw9pg3mOmeBk7O2I9k6Ov387kiMuDNEI/Lke4bFXGiNHQaCzklRY
7wlJOJwVQlXYwFKtglzhe7i3YkHU6w2CClPuNf7qM/6iKGhGTkW2rgg39SWKMGwAuy6p1O1t8jO3
SUU0XOO8n0E6Bm7ZkuV21PJaEWJnfHOm5FIulDuebxYK0Rwi5iGOKwiMFzQHjZlb8o2bBC/cV+0U
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
aktGUkp9+4qWQgxhaCGgjcCS9ebjbbQ/fA598oHWdUYLyFIOCerKqE43At7Oz4stJM5LrWRvNAqY
0MGhfHzYv2Ivfbjk2m50SUjRTkDr/fjEmKtaHKRLzYg6nNTGDtKHT9uwUVbvskGWc14we50B5Swz
OSkB9qTC/PM04l+yTV13FR5NdRlQ+xsjmOs7hS9yMhcfYqVt0AtI0+v92U/bNIwAdlu2jClbUrJN
TNmGkmX5PWk+3MUZ6nvnZ80ox10Z/20oJxuKKSM7K2LKCrKzuKWRra1j0tZkazxqa5yyrWLSVpRs
F1O2+5Wx2fNbfgEAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAABwcHQvc2xpZGVM
YXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0Ni54bWwucmVsc4zPvQrCMBAH8F3wHcLtJq2DiDR1EcHB
RfQBjuTaBtsk5KLo25vRgoPjff3+XLN/TaN4UmIXvIZaViDIm2Cd7zXcrsfVFgRn9BbH4EnDmxj2
7XLRXGjEXI54cJFFUTxrGHKOO6XYDDQhyxDJl0kX0oS5lKlXEc0de1Lrqtqo9G1AOzPFyWpIJ1uD
uL4j/WOHrnOGDsE8JvL5R4Ti0Vk6I2dKhcXUU9Yg5Xd/tlTLEgGqbdTs3fYDAAD//wMAUEsDBBQA
BgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91
dDUueG1sLnJlbHOMz70KwjAQB/Bd8B3C7Satg4g0dRHBwUX0AY7k2gbbJOSi6Nub0YKD4339/lyz
f02jeFJiF7yGWlYgyJtgne813K7H1RYEZ/QWx+BJw5sY9u1y0VxoxFyOeHCRRVE8axhyjjul2Aw0
IcsQyZdJF9KEuZSpVxHNHXtS66raqPRtQDszxclqSCdbg7i+I/1jh65zhg7BPCby+UeE4tFZOiNn
SoXF1FPWIOV3f7ZUyxIBqm3U7N32AwAA//8DAFBLAwQUAAYACAAAACEAEqUhRSQHAAD/LwAAIQAA
AHBwdC9zbGlkZU1hc3RlcnMvc2xpZGVNYXN0ZXIxLnhtbOxa75LiNhL/nqp7B5fvY4oF/zfUMilg
h2SrJntTmckDCFuAM0J2ZEFm9ipV+yz3FnePs09yrZYEZgZYJrtbxWT5guVWu93dv+6WWub1D/cL
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
vQrCMBAH8F3wHcLtJq2DiDR1EcHBRfQBjuTaBtsk5KLo25vRgoPjff3+XLN/TaN4UmIXvIZaViDI
m2Cd7zXcrsfVFgRn9BbH4EnDmxj27XLRXGjEXI54cJFFUTxrGHKOO6XYDDQhyxDJl0kX0oS5lKlX
Ec0de1Lrqtqo9G1AOzPFyWpIJ1uDuL4j/WOHrnOGDsE8JvL5R4Ti0Vk6I2dKhcXUU9Yg5Xd/tlTL
EgGqbdTs3fYDAAD//wMAUEsDBBQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAcHB0L3NsaWRlTGF5
b3V0cy9fcmVscy9zbGlkZUxheW91dDEueG1sLnJlbHOMz70KwjAQB/Bd8B3C7Satg4g0dRHBwUX0
AY7k2gbbJOSi6Nub0YKD4339/lyzf02jeFJiF7yGWlYgyJtgne813K7H1RYEZ/QWx+BJw5sY9u1y
0VxoxFyOeHCRRVE8axhyjjul2Aw0IcsQyZdJF9KEuZSpVxHNHXtS66raqPRtQDszxclqSCdbg7i+
I/1jh65zhg7BPCby+UeE4tFZOiNnSoXF1FPWIOV3f7ZUyxIBqm3U7N32AwAA//8DAFBLAwQUAAYA
CAAAACEA1dGS8bwAAAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQy
LnhtbC5yZWxzjM+9CsIwEAfwXfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujbm9GCg+N9/f5cs39N
o3hSYhe8hlpWIMibYJ3vNdyux9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVRPGsYco47pdgMNCHL
EMmXSRfShLmUqVcRzR17Uuuq2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm8vlHhOLRWTojZ0qF
xdRT1iDld3+2VMsSAapt1Ozd9gMAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAABw
cHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0My54bWwucmVsc4zPvQrCMBAH8F3wHcLt
Jq2DiDR1EcHBRfQBjuTaBtsk5KLo25vRgoPjff3+XLN/TaN4UmIXvIZaViDIm2Cd7zXcrsfVFgRn
9BbH4EnDmxj27XLRXGjEXI54cJFFUTxrGHKOO6XYDDQhyxDJl0kX0oS5lKlXEc0de1Lrqtqo9G1A
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
+Se30y/a1+bO6OwvAAAA//8DAFBLAwQKAAAAAAAAACEAorGdcNwZAADcGQAAFwAAAGRvY1Byb3Bz
L3RodW1ibmFpbC5qcGVn/9j/4AAQSkZJRgABAQAAYABgAAD/4QCARXhpZgAATU0AKgAAAAgABAEa
AAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAABgAAAA
AQAAAGAAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAQCgAwAEAAAAAQAAAJAAAAAA/+0AOFBo
b3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAAAOEJJTQQlAAAAAAAQ1B2M2Y8AsgTpgAmY7PhCfv/AABEI
AJABAAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMD
AgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUm
JygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaX
mJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4
+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncA
AQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6
Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgIC
AgMCAgMFAwMDBQYFBQUFBggGBgYGBggKCAgICAgICgoKCgoKCgoMDAwMDAwODg4ODg8PDw8PDw8P
Dw//2wBDAQICAgQEBAcEBAcQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
EBAQEBAQEBAQEBAQEBD/3QAEABD/2gAMAwEAAhEDEQA/AP38ooooAKKKKACiiigAooooAKKKKACi
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
wqUA6+vr4uLi2NjY1dXV09PTHR0dy8vLspgAEBAQwsLCwMDARjwAq6urm5ub4L8AdmQAhoaGgoKC
dnZ20bIAampqZmZmZlcAWFhYVFRUhnIA9vb2RkZG8PDw/tgAQkJCNzc3NTU14eHhExAA39/fKysr
JSUl0tLSzs7OyMjI78wAExMTw8PDAAAA////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////XDsUpAAADzpJREFUeJzt3WmbVMUZ
gGE3Fg1EJhAbNMQlOiQOoEKbIQz9//9Wejk9c5Za3q1OH+B5vnkl9LxX1S3CWao/+YSIiIiIiIiI
iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiBbfxcP7wZ+4Xgd/4P2HF8GfSMou3qwexTpZ
r1axTi4erd7g5KRtlaxWl5GbsFUS62Q/Ik5O2X4LQjdhryTSSfyIpKzbgsBN6JTEOYkfkZRdb0HY
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
AAYACAAAACEASzEEUA8BAACGAgAAIAAAAAAAAAAAAAAAAAB3FwAAcHB0L3NsaWRlcy9fcmVscy9z
bGlkZTIueG1sLnJlbHNQSwECLQAUAAYACAAAACEAVCq2xtYAAAC+AQAAIAAAAAAAAAAAAAAAAADE
GAAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTEueG1sLnJlbHNQSwECLQAUAAYACAAAACEAnGM5xSkB
AABxBQAAHwAAAAAAAAAAAAAAAADYGQAAcHB0L19yZWxzL3ByZXNlbnRhdGlvbi54bWwucmVsc1BL
AQItABQABgAIAAAAIQBzUz/ujwQAALENAAAVAAAAAAAAAAAAAAAAAEYcAABwcHQvc2xpZGVzL3Ns
aWRlMy54bWxQSwECLQAUAAYACAAAACEAhx/CsLUCAADSDQAAFAAAAAAAAAAAAAAAAAAIIQAAcHB0
L3ByZXNlbnRhdGlvbi54bWxQSwECLQAUAAYACAAAACEAV8AxtycEAAD+DQAAIQAAAAAAAAAAAAAA
AADvIwAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDEueG1sUEsBAi0AFAAGAAgAAAAhAI0p
MBakAwAAgAsAACEAAAAAAAAAAAAAAAAAVSgAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQy
LnhtbFBLAQItABQABgAIAAAAIQByBbTaZAQAAPoQAAAhAAAAAAAAAAAAAAAAADgsAABwcHQvc2xp
ZGVMYXlvdXRzL3NsaWRlTGF5b3V0My54bWxQSwECLQAUAAYACAAAACEA5vypproDAABNDgAAIQAA
AAAAAAAAAAAAAADbMAAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDQueG1sUEsBAi0AFAAG
AAgAAAAhAEGR+9XpBAAARRgAACEAAAAAAAAAAAAAAAAA1DQAAHBwdC9zbGlkZUxheW91dHMvc2xp
ZGVMYXlvdXQ1LnhtbFBLAQItABQABgAIAAAAIQCuiFnBGQMAAIgIAAAhAAAAAAAAAAAAAAAAAPw5
AABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0Ni54bWxQSwECLQAUAAYACAAAACEAm36CjegC
AABgBwAAIQAAAAAAAAAAAAAAAABUPQAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDcueG1s
UEsBAi0AFAAGAAgAAAAhAC3Q/nzABAAAHhIAACEAAAAAAAAAAAAAAAAAe0AAAHBwdC9zbGlkZUxh
eW91dHMvc2xpZGVMYXlvdXQ4LnhtbFBLAQItABQABgAIAAAAIQA8GNFfjAQAAOkRAAAhAAAAAAAA
AAAAAAAAAHpFAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0OS54bWxQSwECLQAUAAYACAAA
ACEA4fum+5IDAAA/CwAAIgAAAAAAAAAAAAAAAABFSgAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxh
eW91dDEwLnhtbFBLAQItABQABgAIAAAAIQCrvrhayAMAAB4MAAAiAAAAAAAAAAAAAAAAABdOAABw
cHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0MTEueG1sUEsBAi0AFAAGAAgAAAAhABc87WrTAAAA
vwEAACoAAAAAAAAAAAAAAAAAH1IAAHBwdC9ub3Rlc1NsaWRlcy9fcmVscy9ub3Rlc1NsaWRlMi54
bWwucmVsc1BLAQItABQABgAIAAAAIQCZ9pmu0wAAAL8BAAAqAAAAAAAAAAAAAAAAADpTAABwcHQv
bm90ZXNTbGlkZXMvX3JlbHMvbm90ZXNTbGlkZTEueG1sLnJlbHNQSwECLQAUAAYACAAAACEAhujS
+uwCAADTBgAAHwAAAAAAAAAAAAAAAABVVAAAcHB0L25vdGVzU2xpZGVzL25vdGVzU2xpZGUxLnht
bFBLAQItABQABgAIAAAAIQDV0ZLxvAAAADcBAAAtAAAAAAAAAAAAAAAAAH5XAABwcHQvc2xpZGVM
YXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0MTEueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8bwA
AAA3AQAALQAAAAAAAAAAAAAAAACFWAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91
dDEwLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAAjFkA
AHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ5LnhtbC5yZWxzUEsBAi0AFAAGAAgA
AAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAAkloAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMv
c2xpZGVMYXlvdXQ4LnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAA
AAAAAAAAmFsAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ3LnhtbC5yZWxzUEsB
Ai0AFAAGAAgAAAAhALMDcuzrAgAA0gYAAB8AAAAAAAAAAAAAAAAAnlwAAHBwdC9ub3Rlc1NsaWRl
cy9ub3Rlc1NsaWRlMi54bWxQSwECLQAUAAYACAAAACEAaaJfIRUBAADHBwAALAAAAAAAAAAAAAAA
AADGXwAAcHB0L3NsaWRlTWFzdGVycy9fcmVscy9zbGlkZU1hc3RlcjEueG1sLnJlbHNQSwECLQAU
AAYACAAAACEA1dGS8bwAAAA3AQAALAAAAAAAAAAAAAAAAAAlYQAAcHB0L3NsaWRlTGF5b3V0cy9f
cmVscy9zbGlkZUxheW91dDYueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8bwAAAA3AQAALAAA
AAAAAAAAAAAAAAArYgAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDUueG1sLnJl
bHNQSwECLQAUAAYACAAAACEAEqUhRSQHAAD/LwAAIQAAAAAAAAAAAAAAAAAxYwAAcHB0L3NsaWRl
TWFzdGVycy9zbGlkZU1hc3RlcjEueG1sUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAA
AAAAAAAAAAAAlGoAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ0LnhtbC5yZWxz
UEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAAmmsAAHBwdC9zbGlkZUxh
eW91dHMvX3JlbHMvc2xpZGVMYXlvdXQxLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAA
NwEAACwAAAAAAAAAAAAAAAAAoGwAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQy
LnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAApm0AAHBw
dC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQzLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAh
ALTPWBm5AAAAJAEAACwAAAAAAAAAAAAAAAAArG4AAHBwdC9ub3Rlc01hc3RlcnMvX3JlbHMvbm90
ZXNNYXN0ZXIxLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANBHamG1BQAAbh0AACEAAAAAAAAAAAAA
AAAAr28AAHBwdC9ub3Rlc01hc3RlcnMvbm90ZXNNYXN0ZXIxLnhtbFBLAQItAAoAAAAAAAAAIQCi
sZ1w3BkAANwZAAAXAAAAAAAAAAAAAAAAAKN1AABkb2NQcm9wcy90aHVtYm5haWwuanBlZ1BLAQIt
ABQABgAIAAAAIQACQpq0BAYAAI0aAAAUAAAAAAAAAAAAAAAAALSPAABwcHQvdGhlbWUvdGhlbWUx
LnhtbFBLAQItABQABgAIAAAAIQACQpq0BAYAAI0aAAAUAAAAAAAAAAAAAAAAAOqVAABwcHQvdGhl
bWUvdGhlbWUyLnhtbFBLAQItAAoAAAAAAAAAIQAREzuBlBIAAJQSAAAUAAAAAAAAAAAAAAAAACCc
AABwcHQvbWVkaWEvaW1hZ2UxLnBuZ1BLAQItABQABgAIAAAAIQBAT9xkHwIAAAUFAAARAAAAAAAA
AAAAAAAAAOauAABwcHQvcHJlc1Byb3BzLnhtbFBLAQItABQABgAIAAAAIQA/hbhxIgIAACgLAAAT
AAAAAAAAAAAAAAAAADSxAABwcHQvdGFibGVTdHlsZXMueG1sUEsBAi0AFAAGAAgAAAAhAPtRMjx2
AQAAFwMAABEAAAAAAAAAAAAAAAAAh7MAAHBwdC92aWV3UHJvcHMueG1sUEsBAi0AFAAGAAgAAAAh
ABKy3bBZAgAA0QUAABAAAAAAAAAAAAAAAAAALLUAAGRvY1Byb3BzL2FwcC54bWxQSwECLQAUAAYA
CAAAACEAoW2tKokBAADnAgAAEQAAAAAAAAAAAAAAAAC7uAAAZG9jUHJvcHMvY29yZS54bWxQSwUG
AAAAADEAMQDmDgAAe7sAAAAA

--_004_DM6PR08MB508413FE35AA9F639EB725E99BBA9DM6PR08MB5084namp_
Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation; 
 name="slides-interim-2021-feb-netmod-01-state-nbc-rules.pptx"
Content-Description: slides-interim-2021-feb-netmod-01-state-nbc-rules.pptx
Content-Disposition: attachment;
 filename="slides-interim-2021-feb-netmod-01-state-nbc-rules.pptx";
 size=66064; creation-date="Thu, 28 Jan 2021 20:41:00 GMT";
 modification-date="Thu, 28 Jan 2021 20:41:22 GMT"
Content-Transfer-Encoding: base64

UEsDBBQABgAIAAAAIQCSrVCiNAIAABEWAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADM
mFtv2jAYhu8n7T9Evp2Iodu6biJUVbdd7VCp3Q/wkg9w65Nsw8q/n5MAS6vQ0NqWd4Pw4X39WCR+
Pzw9v+csW4M2VIoCTfIxykCUsqJiUaBfN19HZygzloiKMCmgQBsw6Hz2+tX0ZqPAZE4tTIGW1qpP
GJtyCZyYXCoQbmQuNSfWNfUCK1LekQXgk/H4FJdSWBB2ZGsPNJt+hjlZMZt9uXfdLcmtggXKLtuJ
9VoForw2aAZwr0aJfknd36/QwMwjCVGK0ZJYN47Xonq0l9F2H7lTNnPMkirzxk04sEI9cniBre6n
+wE0rSC7Itr+INzNwkpZrDQYp2vm5k879aDK+ZyWUMlyxZ0k75px9qCZc0LFbhOHYAxznd+Jse5h
6TYmock63kcxbWnicDyH4CQ5wdvkBO+SE7xPTnCanOBDcoKz5AQfkxAIacHsTslOI/jp1PEeYiol
rx0uVnYptQkN8tB9iKUWX2mpgmPsjYcI1hT+RCHYGw8RWFclQfvp/1g0NoMrkt8Mru2GQfBdd6yP
eju/kY1c2e072jbiJHfr/VKmOFnuxxQn3f2Y4uS9H1OcCsCPKU5N4McUp0rwY4pTN/gxxakk/Jgm
4/8RKuVJ3klV/8P7qFRtSrDrtuT89z1OpddYvwwoeJT5AgXPMV+g4CHmCxQ8wXyBgseXL1Dw7DoO
yKmbEt/9p9LwfITd7WGtHilnBNrSpwvn/YrO2nvPUF9MVlD1rI2bC93ZXwAAAP//AwBQSwMEFAAG
AAgAAAAhAGj4dKEDAQAA4gIAAAsACAJfcmVscy8ucmVscyCiBAIooAACAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACskttKAzEQhu8F3yHMfTfb
KiLSbG9E6J3I+gBjMrsb3RxIptK+vaHgYWEtgr3MzD8f3yRZb/ZuFO+Usg1ewbKqQZDXwVjfK3hu
Hxa3IDKjNzgGTwoOlGHTXF6sn2hELkN5sDGLQvFZwcAc76TMeiCHuQqRfOl0ITnkcky9jKjfsCe5
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
6QYUkucQabDwcXq5ewQlxVFwExNaWFDg0N3e7N9wcqUeyRiTqEohsTCWkp6MET/i7ERzQqqbnvPs
Sh3zYJLzZzegaZvmweQ1A7oNUx2DhXwMLajTkvAvbO776PGZ/WVGKlciDHFBeZ9iwEp1ecBiQeuV
vLbc68oHc73W7j9ryU/cq1v4Uja9VvrG1P42M5svdN8AAAD//wMAUEsDBBQABgAIAAAAIQDERtlQ
1wAAAM4BAAAgAAAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTYueG1sLnJlbHOskUFLxDAQhe+C/yHM
3aRbREQ23YsIC550/QEhmbZh25mQyYr998aD0MIePHicN2++92D2h695Up+YJTJZ2OkGFJLnEGmw
8HF6uXsEJcVRcBMTWlhQ4NDd3uzfcHKlHskYk6hKIbEwlpKejBE/4uxEc0Kqm57z7Eod82CS82c3
oGmb5sHkNQO6DVMdg4V8DC2o05LwL2zu++jxmf1lRipXIgxxQXmfYsBKdXnAYkHrlby23OvKB3O9
1u4/a8lP3Ktb+FI2vVb6xtT+NjObL3TfAAAA//8DAFBLAwQUAAYACAAAACEAS/U97L0AAAA3AQAA
IAAAAHBwdC9zbGlkZXMvX3JlbHMvc2xpZGU1LnhtbC5yZWxzjM+9CsIwEAfwXfAdwu0m1UFEmrqI
IDiJPsCRXNtgm4RcFPv2ZrTg4Hhfvz9XH97jIF6U2AWvYS0rEORNsM53Gu6302oHgjN6i0PwpGEi
hkOzXNRXGjCXI+5dZFEUzxr6nONeKTY9jcgyRPJl0oY0Yi5l6lRE88CO1Kaqtip9G9DMTHG2GtLZ
rkHcpkj/2KFtnaFjMM+RfP4RoXhwli44hWcuLKaOsgYpv/uzpY0sEaCaWs3ebT4AAAD//wMAUEsD
BBQABgAIAAAAIQCtOQRg1wAAAM4BAAAgAAAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTQueG1sLnJl
bHOskUFLxDAQhe+C/yHM3aRbQUQ23YsIC550/QEhmbZh25mQyYr998aD0MIePHicN2++92D2h695
Up+YJTJZ2OkGFJLnEGmw8HF6uXsEJcVRcBMTWlhQ4NDd3uzfcHKlHskYk6hKIbEwlpKejBE/4uxE
c0Kqm57z7Eod82CS82c3oGmb5sHkNQO6DVMdg4V8DC2o05LwL2zu++jxmf1lRipXIgxxQXmfYsBK
dXnAYkHrlby23OvKB3O91u4/a8lP3Ktb+FI2vVb6xtT+NjObL3TfAAAA//8DAFBLAwQUAAYACAAA
ACEAI/NwpNYAAADOAQAAIAAAAHBwdC9zbGlkZXMvX3JlbHMvc2xpZGUzLnhtbC5yZWxzrJExa8Qw
DIX3Qv+D0V47l6GUcs4tpXDQqb3+AGEriWliGct3XP593aUkcEOHjnp6+t4D7Q/XeVIXyhI4Wtjp
BhRFxz7EwcLn6fXhCZQUjB4njmRhIYFDd3+3f6cJSz2SMSRRlRLFwlhKejZG3EgziuZEsW56zjOW
OubBJHRfOJBpm+bR5DUDug1THb2FfPQtqNOS6C9s7vvg6IXdeaZYbkSYyIXkYwqeKhXzQMWC1it5
bWl15YO5XWv3n7XkJ+4NFz6XTa+VvjH9NjObL3TfAAAA//8DAFBLAwQUAAYACAAAACEAVCq2xtYA
AAC+AQAAIAAAAHBwdC9zbGlkZXMvX3JlbHMvc2xpZGUxLnhtbC5yZWxzrJA9a8MwEIb3Qv+DuL2S
7aGUEjlLKQQylfQHHNJZFrE+0Cmh/vdV6RJDhg4d7+t5H263/wqLuFJhn6KGXnYgKJpkfXQaPk/v
Ty8guGK0uKRIGlZi2I+PD7sPWrC2I559ZtEokTXMteZXpdjMFJBlyhTbZEolYG1lcSqjOaMjNXTd
syq3DBg3THGwGsrBDiBOa6a/sNM0eUNvyVwCxXonQvnQshsQi6OqQUoVyHr87fcyRwfqvkb/nxq8
eEtHXNOlbmRu+pulQbaIHzO1+fr4DQAA//8DAFBLAwQUAAYACAAAACEA8KqcM9YAAADOAQAAIAAA
AHBwdC9zbGlkZXMvX3JlbHMvc2xpZGUyLnhtbC5yZWxzrJFBS8QwEIXvgv8hzN2k7UFENt2LCAue
dP0BQzJtg20SMrNi/73xILSwBw8e582b7z2Yw/FrmdUnFQ4pWmh1A4qiSz7E0cL7+fnuARQLRo9z
imRhJYZjf3tzeKUZpR7xFDKrSolsYRLJj8awm2hB1ilTrJshlQWljmU0Gd0HjmS6prk3ZcuAfsdU
J2+hnHwH6rxm+gs7DUNw9JTcZaEoVyJMTEL8NgdPlYplJLGg9UbeWlpd+WCu12r/sxb/xL3gmi6y
67XRd6but5nZfaH/BgAA//8DAFBLAwQUAAYACAAAACEAmdVBA9cAAADOAQAAIAAAAHBwdC9zbGlk
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
SCdbg7i+I/1jh65zhg7BPCby+UeE4tFZOiNnSoXF1FPWIOV3f7ZUyxIBqm3U7N32AwAA//8DAFBL
AwQUAAYACAAAACEA1dGS8bwAAAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVM
YXlvdXQ3LnhtbC5yZWxzjM+9CsIwEAfwXfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujbm9GCg+N9
/f5cs39No3hSYhe8hlpWIMibYJ3vNdyux9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVRPGsYco47
pdgMNCHLEMmXSRfShLmUqVcRzR17Uuuq2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm8vlHhOLR
WTojZ0qFxdRT1iDld3+2VMsSAapt1Ozd9gMAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8AAAANwEA
ACwAAABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0OC54bWwucmVsc4zPvQrCMBAH
8F3wHcLtJq2DiDR1EcHBRfQBjuTaBtsk5KLo25vRgoPjff3+XLN/TaN4UmIXvIZaViDIm2Cd7zXc
rsfVFgRn9BbH4EnDmxj27XLRXGjEXI54cJFFUTxrGHKOO6XYDDQhyxDJl0kX0oS5lKlXEc0de1Lr
qtqo9G1AOzPFyWpIJ1uDuL4j/WOHrnOGDsE8JvL5R4Ti0Vk6I2dKhcXUU9Yg5Xd/tlTLEgGqbdTs
3fYDAAD//wMAUEsDBBQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAcHB0L3NsaWRlTGF5b3V0cy9f
cmVscy9zbGlkZUxheW91dDkueG1sLnJlbHOMz70KwjAQB/Bd8B3C7Satg4g0dRHBwUX0AY7k2gbb
JOSi6Nub0YKD4339/lyzf02jeFJiF7yGWlYgyJtgne813K7H1RYEZ/QWx+BJw5sY9u1y0VxoxFyO
eHCRRVE8axhyjjul2Aw0IcsQyZdJF9KEuZSpVxHNHXtS66raqPRtQDszxclqSCdbg7i+I/1jh65z
hg7BPCby+UeE4tFZOiNnSoXF1FPWIOV3f7ZUyxIBqm3U7N32AwAA//8DAFBLAwQUAAYACAAAACEA
1dGS8bwAAAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQxLnhtbC5y
ZWxzjM+9CsIwEAfwXfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujbm9GCg+N9/f5cs39No3hSYhe8
hlpWIMibYJ3vNdyux9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVRPGsYco47pdgMNCHLEMmXSRfS
hLmUqVcRzR17Uuuq2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm8vlHhOLRWTojZ0qFxdRT1iDl
d3+2VMsSAapt1Ozd9gMAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8AAAANwEAAC0AAABwcHQvc2xp
ZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0MTEueG1sLnJlbHOMz70KwjAQB/Bd8B3C7Satg4g0
dRHBwUX0AY7k2gbbJOSi6Nub0YKD4339/lyzf02jeFJiF7yGWlYgyJtgne813K7H1RYEZ/QWx+BJ
w5sY9u1y0VxoxFyOeHCRRVE8axhyjjul2Aw0IcsQyZdJF9KEuZSpVxHNHXtS66raqPRtQDszxclq
SCdbg7i+I/1jh65zhg7BPCby+UeE4tFZOiNnSoXF1FPWIOV3f7ZUyxIBqm3U7N32AwAA//8DAFBL
AwQUAAYACAAAACEAmfaZrtMAAAC/AQAAKgAAAHBwdC9ub3Rlc1NsaWRlcy9fcmVscy9ub3Rlc1Ns
aWRlMS54bWwucmVsc6yQwWrDMAyG74O9g9F9dpLDGKNOL2PQQy+lewBhK4lpYhtLG+3b17ANGuhh
hx31S/r0oc32vMzqiwqHFC20ugFF0SUf4mjh4/j+9AKKBaPHOUWycCGGbf/4sDnQjFKXeAqZVaVE
tjCJ5Fdj2E20IOuUKdbOkMqCUssymozuhCOZrmmeTbllQL9iqp23UHa+A3W8ZPoLOw1DcPSW3OdC
Ue6cMDwHTxWIZSSxoPV38tPodAWCue/R/qdHTEK8RxYqK5ubfDXU/pqZ1dv7KwAAAP//AwBQSwME
FAAGAAgAAAAhABc87WrTAAAAvwEAACoAAABwcHQvbm90ZXNTbGlkZXMvX3JlbHMvbm90ZXNTbGlk
ZTIueG1sLnJlbHOskMFqwzAMhu+DvYPRfXbSwhijTi+j0EMvpXsAYyuJWSIbSx3r29ewDRroYYcd
9Uv69KHN9mue1CcWjokstLoBheRTiDRYeD/tnl5AsTgKbkqEFi7IsO0eHzZHnJzUJR5jZlUpxBZG
kfxqDPsRZ8c6ZaTa6VOZndSyDCY7/+EGNKumeTbllgHdgqn2wULZhxWo0yXjX9ip76PHt+TPM5Lc
OWF4igEr0JUBxYLW38lPY60rEMx9j/Y/PSgJ8sGxYFnY3OSLofbXzCze3l0BAAD//wMAUEsDBBQA
BgAIAAAAIQB+QzBa0wAAAL8BAAAqAAAAcHB0L25vdGVzU2xpZGVzL19yZWxzL25vdGVzU2xpZGUz
LnhtbC5yZWxzrJDBasMwDIbvg72D0X12UsoYo04vo9BDL6V7AGMriVkiG0sd69vXsA0a6GGHHfVL
+vShzfZrntQnFo6JLLS6AYXkU4g0WHg/7Z5eQLE4Cm5KhBYuyLDtHh82R5yc1CUeY2ZVKcQWRpH8
agz7EWfHOmWk2ulTmZ3UsgwmO//hBjSrpnk25ZYB3YKp9sFC2YcVqNMl41/Yqe+jx7fkzzOS3Dlh
eIoBK9CVAcWC1t/JT2OtKxDMfY/2Pz0oCfLBsWBZ2Nzki6H218ws3t5dAQAA//8DAFBLAwQUAAYA
CAAAACEAI9CoCdMAAAC/AQAAKgAAAHBwdC9ub3Rlc1NsaWRlcy9fcmVscy9ub3Rlc1NsaWRlNC54
bWwucmVsc6yQsWoDMQyG90LewWivfZchlBJflhLI0CWkDyBs3Z3pnW0spSRvX0NayEGGDh31S/r0
oe3uMk/qiwqHFC20ugFF0SUf4mDh47R/fgHFgtHjlCJZuBLDrls9bY80odQlHkNmVSmRLYwi+dUY
diPNyDplirXTpzKj1LIMJqP7xIHMumk2ptwzoFsw1cFbKAe/BnW6ZvoLO/V9cPSW3HmmKA9OGJ6C
pwrEMpBY0PqW/DQ2ugLBPPZo/9MjJiF+RxYqC5u7fDHU/pqZxdu7bwAAAP//AwBQSwMEFAAGAAgA
AAAhAK0a3M3TAAAAvwEAACoAAABwcHQvbm90ZXNTbGlkZXMvX3JlbHMvbm90ZXNTbGlkZTUueG1s
LnJlbHOskLFqAzEMhvdC38For32XIS0lviwlkCFLSB/A2Lo70zvZWEpp3j6GtpCDDB066pf06UOb
7dc8qU8sHBNZaHUDCsmnEGmw8H7aPb2AYnEU3JQILVyQYds9PmyOODmpSzzGzKpSiC2MIvnVGPYj
zo51yki106cyO6llGUx2/sMNaFZNszbllgHdgqn2wULZhxWo0yXjX9ip76PHt+TPM5LcOWF4igEr
0JUBxYLW38lP41lXIJj7Hu1/elAS5INjwbKwuckXQ+2vmVm8vbsCAAD//wMAUEsDBBQABgAIAAAA
IQDxLhJo0wAAAL8BAAAqAAAAcHB0L25vdGVzU2xpZGVzL19yZWxzL25vdGVzU2xpZGU2LnhtbC5y
ZWxzrJCxagMxDIb3QN/BaK99l6GEEF+WEsjQJaQPYGzdnemdbCylJG9fQ1vIQYYOHfVL+vSh3f46
T+oTC8dEFlrdgELyKUQaLLyfD88bUCyOgpsSoYUbMuy7p9XuhJOTusRjzKwqhdjCKJK3xrAfcXas
U0aqnT6V2Ukty2Cy8x9uQLNumhdT7hnQLZjqGCyUY1iDOt8y/oWd+j56fE3+MiPJgxOGpxiwAl0Z
UCxo/Z38NDa6AsE89mj/04OSIL85FiwLm7t8MdT+mpnF27svAAAA//8DAFBLAwQUAAYACAAAACEA
f+RmrNMAAAC/AQAAKgAAAHBwdC9ub3Rlc1NsaWRlcy9fcmVscy9ub3Rlc1NsaWRlNy54bWwucmVs
c6yQsWoDMQyG90LfwWivfZchtCW+LCWQIUtIH8DYujvTO9lYSmnePoa2kIMMHTrql/TpQ5vt1zyp
TywcE1lodQMKyacQabDwfto9PYNicRTclAgtXJBh2z0+bI44OalLPMbMqlKILYwi+dUY9iPOjnXK
SLXTpzI7qWUZTHb+ww1oVk2zNuWWAd2CqfbBQtmHFajTJeNf2Knvo8e35M8zktw5YXiKASvQlQHF
gtbfyU/jRVcgmPse7X96UBLkg2PBsrC5yRdD7a+ZWby9uwIAAP//AwBQSwMEFAAGAAgAAAAhANXR
kvG8AAAANwEAAC0AAABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0MTAueG1sLnJl
bHOMz70KwjAQB/Bd8B3C7Satg4g0dRHBwUX0AY7k2gbbJOSi6Nub0YKD4339/lyzf02jeFJiF7yG
WlYgyJtgne813K7H1RYEZ/QWx+BJw5sY9u1y0VxoxFyOeHCRRVE8axhyjjul2Aw0IcsQyZdJF9KE
uZSpVxHNHXtS66raqPRtQDszxclqSCdbg7i+I/1jh65zhg7BPCby+UeE4tFZOiNnSoXF1FPWIOV3
f7ZUyxIBqm3U7N32AwAA//8DAFBLAwQUAAYACAAAACEAPJwfAn4BAAB5AgAAFgAAAHBwdC9jb21t
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
KFAMPtEWHz9s+8kJIIuKASjeASgNUn3enwBSqBiAki1AQZAm6i7kBJBGxQDU3gGoHYWnGr1BxQCU
bgFS6JyK9AYVA1BnB6Akbp+K9AaV5p/cTr9oX5s7o7O/AAAA//8DAFBLAwQKAAAAAAAAACEAERM7
gZQSAACUEgAAFAAAAHBwdC9tZWRpYS9pbWFnZTEucG5niVBORw0KGgoAAAANSUhEUgAAAiYAAAFL
CAMAAADVkrdtAAAACXBIWXMAAAsTAAALEwEAmpwYAAADAFBMVEX///+xsbGoqKikpKSjiwA1LQCF
hYWDg4N3d3eTfgAlHwBfX19RUVH8/Pz4+PhFRUXCpQDr6+vi4uLY2NjV1dXT09MdHR3Ly8uymAAQ
EBDCwsLAwMBGPACrq6ubm5vgvwB2ZACGhoaCgoJ2dnbRsgBqampmZmZmVwBYWFhUVFSGcgD29vZG
Rkbw8PD+2ABCQkI3Nzc1NTXh4eETEADf398rKyslJSXS0tLOzs7IyMjvzAATExPDw8MAAAD/////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
//////////9cOxSkAAAPOklEQVR4nO3daZtUxRmAYTcWDUQmEBs0xCU6JA6gQpshDP3//1Z6OT1z
llrerU4f4Hm+eSX0vFfVLcJZqj/5hIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI
iIiIFt/Fw/vBn7heB3/g/YcXwZ9Iyi7erB7FOlmvVrFOLh6t3uDkpG2VrFaXkZuwVRLrZD8iTk7Z
fgtCN2GvJNJJ/IikrNuCwE3olMQ5iR+RlF1vQdgmXCuJchI/IinrbUHQJvSUxDiJH5GUDbYgZBMG
SiKcxI9IykZbELAJIyV+J/EjkrLJFrg3YaLE6yR+RFKW2ALnJiSU+JzEj0jKklvg2oSkEo+T+BFJ
WWYLHJuQUWJ3Ej8iKctugXkTskqsTuJHJGWFLTBuQkGJzUn8iKSsuAWmTSgqsTiJH5GUVbbAsAkV
JXon8SOSsuoWqDehqkTrJH5EUibYAuUmCJTonMSPSMpEW6DaBJESjZP4EUmZcAsUmyBUIncSPyIp
E2+BeBPESqRO4kckZYotEG6CQonMSfyIpEy1BaJNUCmROIkfkZQpt0CwCUoldSfxI5Iy9RZUN0Gt
pOYkfkRSZtiCyiYYlJSdxI9IykxbUNwEk5KSk/gRSZlxCwqbYFQydPKvy+ARX91usXofS+YtyDox
K+k7Od9cXYaOeHm1OW+5jh92ji3IOHEouXFyvtlcOwkZcatkgxNrri1IOnEpOTrZKvnyVuckZMSt
kltf4sSYcwsSTpxKDk62Sr54+fbgJGTEnZK3L7/AiSn3FkycuJXsnOyVvDw4CRnxoOQlTkwFbMHI
SYCS1erfByUHJ08DPvBppwQnps4CtmC1Orv5wPuPAj7v3lHJ3smTz9wf+NmToxKcmIpwctb/wAAn
PSUxTvpKcGLK7+Rs+IFuJwMlEU6GSnBiyuvkbPyBTicjJX4nYyU4MeVzMlHidNJT8sPPEU56Sn7+
4UN38teGH+hxcpb6RIeTnpJnm9cBTvpKXm+eBTsJ3xZf6+g7nRdvejfZ7E56Svojmp0MlGwCnAyV
bIKdDFbx9K2j74jvrpcEOOkrGYxodDJUcvdPt5Ohkj/vxjoZreKp21+yinRyuKrmdjJU4ncyVHJn
9Z3XyUjJd6s7kU4mq3jaugubcU6O116dTsZKvE7GSlZeJxMlq0gniVU8ZdeXv6Oc3FyhdzmZKvE5
mSpxOkkoCXSSXMXT1btJEuOkfx/H4SSlxOMkpcTlJKkkzElmFU/V4FZahJPh3T6zk7QSu5O0EoeT
jJKtkycBTrKreJpGN1z9Tsb3hI1OckqsTnJKzE6ySvb/k9dJYRVP0eS2vNfJ9MkBk5O8EpuTvBKj
k4KSACfFVZy/xMMbPiep50sMTkpKLE5KSkxOikrcTiqrOHfJR3w8TtJPIamdlJXonZSVGJxUlDid
VFdx3jIPgtmd5J5VUzqpKdE6qSlRO6kqcTkRrOKcZR8XtDrJP9GoclJXonNSV6J0IlDicCJaxfkq
PFRqc1J67lXhRKJE40SiROVEpMTsRLiKc1V89NjipPx0tNiJTInciUyJwolQidGJeBXnqfKAut5J
7Rl6oROpEqkTqRKxE7ESkxPFKs5R9TUGrZP6mxYiJ3IlMidyJUInCiUGJ6pVbJ/gZRedE8n7OAIn
GiUSJxolIicqJWonylVsneiVKI0T2VtbVSc6JXUnOiUCJ0olSifqVWyb8MU5uRPpu30VJ1olNSda
JVUnaiUqJ4ZVbJn49UqpE/kboEUneiVlJ3olFScGJQcnbyVOTKvYLsVLuDInmveEC04sSkpOLEq2
Tu5lnZiUDH5ZyYlxFVulelVb4kT3NnnWiU1J3olNyf4Xpp0YlQidmFexTcoX+utOtGcOZJxYleSc
mJXknJiViJw4VrFF6mMfak70J1MkndiVpJ04lKSdOJQInLhWMT7D4SBlJ5bzSxJOPEpSTlxKUk5c
SqpOnKsYnekImZIT2yk3Eyc+JVMnTiVTJ04lFSfuVXS2GfWLZZyCE+tZSCMnXiVjJ24lYyd3vEqK
ToyrON5c+5m0MUyyTuwnZvWcfPvNt24lQyf/8SsZOdm4lRScWFdxcUwyTjznql07ubzqHeLrOFft
ZsTzCCUjJ34lWSfmVWzHJKZzv5JrJ/sjd49OXKfvHZ0EKRk4eRagZOwkvKUxOTjxntG47pTc+v54
iK/zjMaDkzAlfScvI5S0dvJjGJNfXwZ0+B3Tf5Ln+njkbneIr/skz52TQCUTJ14lqeO3HC2cyd5J
xHmv6+ORu3snAee9vrkIVTJy4lcS62TpTHZO7nl3YLBmMYezjq6XPHErGTiJUBLqZPFMYpz0VyzG
yUDJ1afuz9v2l83rx/sP3Cr5413AB356FeVk+UwinAz/vYpwMlRyGXEe9dnxDzs7JS8C/kv76P5l
lJN2TJ49cBflZPy7r9/JSEnEedS7y8N7J3slAX9uf3T/8Od2/z48eNCOSUDPYpxM/xvtdTJR4ndy
uImwdfLrQYnbyU5Jd60ovjgm3/xu7LfnXUFO+lcQIg5nTSrxOjneatp9jddBidPJQcnWyfNev1n3
ZLy5p79Yf3ML5vMQJ8PrTBFOkkp8Tm5uSJ5fK3E5OSoZZb0SsDgm/VvWEU6GSp4EOBn+TfhpwDnD
g9vWd/9+8w9mJxklZidxTG5v+/Gmn/5pmmf4YIPfyVDJPffhrGMlnwWcMzx+uKG3BkYnWSVWJ7/8
1Nva7Ua/MzMZZzrEd/z4i9fJSIn7cNapkoDzqCePwHidFJQYnSS+8yEqg5PpQ1I+JxMlbidTJUMn
D5Wft0o+KOVzUlRictJQicFJ6lE6j5OEEqeTlJLhIzLqTUg+TudxUlHiG7FFSifpBy7tTpJKXE7S
SlxOMg9d2p1UlXhGbJPKSe6xXKuTjBKHk5wSh5Pso7lWJwIl9hFbpXCSf3jb5iSrxOzkRsnbf4x/
ldFJ4QFumxOREuuI7RI7KT3ib3FSULJ18rvBSU9J4teYnBQf87c4ESqxjdgyoZPyiyB6J0Ulq/zL
u/nKSkxOKi+D6J2IlVhGbJvISe11Ia2TmhK9k5oSg5PqK0NaJwol+hFbJ3BSf6lM56SuROukrkTt
RPBimc6JSol2xPZVnUhePdQ4kSjROZEoUToRvX6ocaJUohtxjipOZC+oyp3IlGicyJSonAhfUpU7
USvRjDhPRSfS15ilTqRK5E6kShROxK8yS50YlMhHnKuCE/nL7jInciVSJ3IlYieKF95lTkxKpCPO
V9aJ5kgEiRONEpkTjRKZkzeqYxEkToxKCj/+JEqyTnQHZ9Sd6JRInOiUSJxo/+Zcd2JWkh3gREoy
TrTHq9ScaJXUnWiV1BXor8PVnDiUZEY4mZKkE/0hPGUneiU1J3olNQeWq/plJy4lySFOqCThxHJU
U8mJRUnZiUVJWYLtHmHJiVNJYoyTKpk4sR3olXdiU1JyYlNSsmB94iDvxK1kMsiJlYycWI99yzmx
Ktk7eZDSYFWS12B/finnJEDJaJSTKxk4sR8OeHmVcmJXkvNgV5Lz4HkaMu0kRMlgmAUo6TnxHCGZ
cuJRkhbhUZIW4XpmNukkSElvnEUouXbiO2h06sSnJGXCpyRlwqck5SRMyfVAC1HSOfEeRzt24lUy
VeFVMlXhVTJ1EqikG2kxSvZO/IcWD5187VYydvK1W8nYhV/J2Emokv1QC1KydRJxtPXQiV/JyEmA
kqGTvwUoGTp5GKtkO9ailAQ1cBKgZOQkQEnuKGTPAYEn+lL697iek8cRSgZOHkcoSTvxHSOJE209
JyFKBu9rhShJOfEeNooTbSMnAWf5DZ1EnOU3duI/khYn2gZOQk4G7TuJORl06CTg4GKcqEtft/fk
v14y7rI3r+nQl0kf4t9I2nbtZHdqeci/qsczxnenlv8v4Bh0fjdZQjsnb4/fgRDyH/6Dk8N3IPgP
8eXPJstof5Ly8buFQv4asXPSfVOG2wl/01lKWydfXX8/U8hFia2Tr44nefqccN1kOe1OUr7+nrKQ
S5znN9/i5XLCVdgldXnV+9bDkBsm5zenAjuc5L7eMmREUveq/w8Bt1+Hn2h1kv+y3JARyZf7YY5x
Nielr94OH5H0OR8Nm2ZxUlLSYETS53rQNJXeSVlJgxFJn+Ox9XRaJzUlDUYkfeaXYHLpnNSVNBiR
9BlfqcuncSJR0mBE0md6QbeU3IlMSYMRSZ/hdf9yUidSJQ1GJH3qw0NqyZzIlTQYkfQpjyKqJ3Gi
UdJgRNKnOthMUt2JTkmDEUmf4phEWTUnWiUNRiR94kNXpZWd6JU0GJH0CY9wlldyYlHSYETSJzoQ
XlPeiU1JgxFJn+DrJXTlnFiVNBiR9FW/rEZb2oldSYMRSV/lq6/0pZx4lDQYkfQVv0jP0tSJT0mD
EUlf4Ws5bY2deJU0GJH0Zb/k19rQiV9JgxFJ3zp6C/pOIpQ0GJH0raO34MZJjJIGI5K+dfQWHJ1E
KWkwIulbR2/BwUmckgYjkr519BbsnEQqaTAi6VtHb8HFm1glDUYkfeHHUV0EK2kwIhERERERERER
ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER0ZJ7
8S7Vi7l+/GXyxye7nGEc+TRzL5ZioV41+PHvNqneNfhJyZ4nf3yy5zOMI59m7sVSLNTtBj8eJv3k
08y9WDARBhNhMGmdfJq5FwsmwmAiDCatk08z92LBRBhMhMGkdfJp5l4smAiDiTCYtE4+zdyLBRNh
MBEGk9bJp5l7sWAiDCbCPhYmf5zsDvF7xiS9UB/LHeI5ft9I954xmW+hYNLv9qjk4pyP/k8t/u2d
BJMFMRl32sXpBxOYCIIJTATBBCaCYAITQTCBiSCYiDoNnYUzSV1ea/PXc5iUWjiTVC0u1cOkHEy6
YFIKJl0wKQWTLpiUgkkXTErBpAsmpWDSBZNSMOmCSSmYdMGkFEy6YFIKJl0wKQWTriUy+e/4kdRt
n8810SCYdC2RCQ8STOMOMUwE8bwJTATBBCaCYAITQTCBiSCYwEQQTGAiCCaTUpfXts01Uy+YdC2R
Saa5ZuoFky6YlIJJF0xKwaQLJqVg0gWTUjDpgkkpmHTBpBRMumBSCiZdMCkFky6YlIJJF0xKwaQL
JqVg0gWTUjAhIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJ//wepC567qxNzIgAAAABJRU5ErkJg
glBLAwQUAAYACAAAACEAtM9YGbkAAAAkAQAALAAAAHBwdC9ub3Rlc01hc3RlcnMvX3JlbHMvbm90
ZXNNYXN0ZXIxLnhtbC5yZWxzjM/BCsIwDAbgu+A7lNxttx1EZO0uIuwq8wFKl3XFrS1tFff2FnZx
4MFLIAn/F1I373kiLwzROMuhpAUQtMr1xmoO9+56OAGJSdpeTs4ihwUjNGK/q284yZRDcTQ+kqzY
yGFMyZ8Zi2rEWUbqPNq8GVyYZcpt0MxL9ZAaWVUURxa+DRAbk7Q9h9D2JZBu8fiP7YbBKLw49ZzR
ph8nWMpZzKAMGhMHStfJWiuaPWCiZpvfxAcAAP//AwBQSwMEFAAGAAgAAAAhAAJCmrQEBgAAjRoA
ABQAAABwcHQvdGhlbWUvdGhlbWUyLnhtbOxZzY7bNhC+F+g7ELo7lm3JP4t4A1u2kza7SZDdpM2R
lmiJWUo0SHp3jSBAn6BAgbTopUBvPfQSoH2mFG36EB1Rli3adBdpHCBAYwMWSX0z/DhDfqSs23eu
U4YuiZCUZ32ncct1EMlCHtEs7jtPzie1roOkwlmEGc9I31kS6dw5/vyz2/hIJSQlCOwzeYT7TqLU
/KhelyE0Y3mLz0kG92ZcpFhBVcT1SOAr8JuyetN12/UU08xBGU7B7cPZjIYEnecunePS+ZjBT6Zk
3hAycZa7JoaFxkYXjfwilzJgAl1i1negn4hfnZNr5SCGpYIbfcfVH6d+fLu+NmJqj23FbqI/K7uV
QXTR1HYinq4NPc/32oO1fw1gahc37ozb4/banwbgMISRFlxMn51m4K2wFVBRtPgedUathoGv+G/t
4Ad+/jXwGlQUvR38ZBJsYlgBFUV/B+8Pe8OR6V+DimJ7B99xByOvY+A1KGE0u9hBu367FZSjXUNm
nN2zwnu+N+k0V/ANql6ZXYV9pvbNtRQ/52ICAJ1crGiG1HJOZjgEXIAZnQqKTmicwMSb44xLaHab
7sRtwW/+9XRJZxQfEVyxLppCudOU80EyFHSu+s6X4NWpQJ4t0F2uEhquet21uIezuGrx9pfv/v7p
G/TXbz+/ffW9HS+r+BHJ4q8pzv6tA1U1ePPD6z9+f/3mx2///PWVBT4QeFqFn9OUSPSAXKHHPIXB
WTogU/FuFucJplWLQRZLnOHcxoIeQ/yq6AdLzLAFNyRmJJ8KkAob8O7iuUH4LBELRS3A+0lqAE85
Z0MurGO6n/dVjcIii+2di0UV9xjjS1vfwVaex4s5zHlqcxkkxKD5iEHKcUwyolB+j18QYjF7RqkR
11MaCi75TKFnFA0xtYbknE6N2bQxukdTyMvSRhDybcTm9CkacmZzPyKXJhJWB2Y2l4QZYbyLFwqn
VsY4ZVXkCVaJjeTZUoRGwKWCTMeEcTSOiJQ2m4diadC9DxJjT/spW6YmUih6YUOeYM6NBc4vggSn
cytnmiVV7BfyAqYoRo+4spLg5grJ65AHEI996X5KiZHum9f2E5Ah+wTJ7yyEbUkQbq7HJZthop3X
tzQ9pdmNAr8l7f6HlvYPKOqHl/OBoNb1tC3i+3Db0h1wEdGPX7lHeJE9IrBYPgn3J+H+Pwr3vvV8
eLneKLQ+xpeHde0m3Xtyn1HGztSSkROptV3C8KIJNOqKNlo/KMwTKK66M3CxwLqMBFdfUZWcJXgO
3TR0D7FcuY4lmnMJu4NutvrWu8siPeVR0dpolM+mYIDVph12l7Id9iJVtLY7m4ewtXtdi/XDckkg
t30XEpXOTBItC4lO2XgDCT2yg7DoWVh0c/d7WejLKiuw/hDO/9bwvYIRzDfMSJTnqbAvs3vwTO8L
pjnspmV4vZzrYTJtkKhMN5NEZRomOCLbzQfOdW+TUoNeHopdGp3uh8h1LiJb2sAys4auYM21fHAT
4nnfmcG5EIrpHPzJXDcxi7O+E6pVoP+LssyFVCMskwKmbxXjT6kiAjGawlyvpoFlG26NZicf40dK
rud+fJHTl2qSyWxGQrWnZVOFe4UT6933BOcVvgDSZ0l0haZsIR5jCJTfaeQBjKhU62hGVFQm9yaK
W3K1WorGf2abJYrZPMGrHaUq5gVcl9d0KuPQTLdHZdZXg5nGeZLee9e92WhLNPdsIPmuadePD7fJ
V1htdN9gVUj3ttb1Sq3bt0u8/4ZQobbpzKCWM7ZQ27d3HPBAUOluPTX37RGH3g22Z22+QZTnSl3b
eTnBp89h5o/guLpgShbP/9fwjBCUfysXSqBbS3W5VmghaN954foDL2j6Qc3t+uOa1/LcWtcftGoD
3281xn7DHQ2bLyEoKkkbftH3BJ5n2HL17kW377x/Sctj9q2Qp3Wuz8F1bazfvzSa+9+/IAqRedFu
Tnqt3rBd67UGk5o3GnZrvaA9rI3aQWc0GQV+tzd56aBLDfYGrcBrj7u1diMIal7bzel3e7WO12wO
vM6gO/YGL1exhpGX1zK8mtfxPwAAAP//AwBQSwMECgAAAAAAAAAhAI1TB4rFEwAAxRMAABcAAABk
b2NQcm9wcy90aHVtYm5haWwuanBlZ//Y/+AAEEpGSUYAAQEBAGAAYAAA/9sAQwADAgIDAgIDAwMD
BAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sA
QwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFBQUFBQU/8AAEQgAkAEAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYH
CAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHw
JDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk
5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIB
AgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEX
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
obiSeOKaOSSBxHKiMCY2KhgrDsdrKcHsQe9AEtFFV7jUbSzuLW3nuoYbi7do7eKSQK0zBS5VATli
FVmIHYE9qALFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV4LqP7
HvhW9trlY9S1S2urk3zz3C3UhMr3N1FPyN3yoqxvDsTaDHcTDguWr3qigD58vP2PdKvJImPizXYo
4RMIoo7qXCNJbww+aXMnmSSKIQAZHddryLt+Ymppf2QdCN0ZYdd1C2DTCSQRRxhpEEmoMsJfGTGB
qLKFPGIIvSvfaKAPB/hP+zrqfw6+JGq61da3Bqmlf6GunGZXe7WOGze28tiflRfnLfKCTxyBwefh
/Yf0qHRI9LXxprYtRFeRSKFjJcT6dHp/3mBYBYokO3dsyBhVVQo+mKKO3kB873X7HtreR6ok3jDU
JzfXF1ciSS0iDwPObUkx7dqgA2oJQgoxml3IQ5FdX4s/Z5t/F3iS41K48RahDaTa5a6+1jbs0Ia4
htI7UBnjdWK7YkcDs4zyPlr12igD5X1T9jrWbHWLR9A8VhrG10t4rWTU3k+0WWoCxFvHdQ7PlDNM
kc8hbILGQlGLKyeg/Dz9mPSfh34qttct9d1bUri3lilX+0Ll5i2y0ltgG3MV+7MSCqg/KoJbAr2e
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCO4jkkt5Uil8mVlISTaG2H
HBweuPSuK17w74uuFs1s9atbgRvvZpojE27JwfkOCMfljo2eO2miWeJ43GUdSp+hrjrr4Q+GrzR/
BGlyW0/2Pwbc213o6rcODFJBA8Ee45+ceXIwIbOc56iplHmGmZOl+AfEcd9az3PiC6hIZnkEM25F
O7OFVgeD6E/72e/daRZ31nHML7UP7QZpCyN5Kx7F7Lx1+tUo/BOjQ+Np/FqWMY8QT2CaZJeY+Y26
yNIE/wC+mJ98D0FHg/wTpHgWzv7XRrY20V9qN1qtxukZy9xcStLK+WJxlmOAOAMAdKUYKOqC9zdo
ooqxBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRUS26rcvOM73RUPpgEkf8A
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
AAAAlScAAHBwdC9zbGlkZXMvc2xpZGU2LnhtbFBLAQItABQABgAIAAAAIQAFUvzsggQAAKMNAAAV
AAAAAAAAAAAAAAAAAFgtAABwcHQvc2xpZGVzL3NsaWRlNy54bWxQSwECLQAUAAYACAAAACEAjrUK
B/wEAACjDwAAFQAAAAAAAAAAAAAAAAANMgAAcHB0L3NsaWRlcy9zbGlkZTgueG1sUEsBAi0AFAAG
AAgAAAAhAL/vC3+lBAAAYg4AABUAAAAAAAAAAAAAAAAAPDcAAHBwdC9zbGlkZXMvc2xpZGU5Lnht
bFBLAQItABQABgAIAAAAIQBKjK2U1wAAAM4BAAAgAAAAAAAAAAAAAAAAABQ8AABwcHQvc2xpZGVz
L19yZWxzL3NsaWRlNy54bWwucmVsc1BLAQItABQABgAIAAAAIQDERtlQ1wAAAM4BAAAgAAAAAAAA
AAAAAAAAACk9AABwcHQvc2xpZGVzL19yZWxzL3NsaWRlNi54bWwucmVsc1BLAQItABQABgAIAAAA
IQBL9T3svQAAADcBAAAgAAAAAAAAAAAAAAAAAD4+AABwcHQvc2xpZGVzL19yZWxzL3NsaWRlNS54
bWwucmVsc1BLAQItABQABgAIAAAAIQCtOQRg1wAAAM4BAAAgAAAAAAAAAAAAAAAAADk/AABwcHQv
c2xpZGVzL19yZWxzL3NsaWRlNC54bWwucmVsc1BLAQItABQABgAIAAAAIQAj83Ck1gAAAM4BAAAg
AAAAAAAAAAAAAAAAAE5AAABwcHQvc2xpZGVzL19yZWxzL3NsaWRlMy54bWwucmVsc1BLAQItABQA
BgAIAAAAIQBUKrbG1gAAAL4BAAAgAAAAAAAAAAAAAAAAAGJBAABwcHQvc2xpZGVzL19yZWxzL3Ns
aWRlMS54bWwucmVsc1BLAQItABQABgAIAAAAIQDwqpwz1gAAAM4BAAAgAAAAAAAAAAAAAAAAAHZC
AABwcHQvc2xpZGVzL19yZWxzL3NsaWRlMi54bWwucmVsc1BLAQItABQABgAIAAAAIQCZ1UED1wAA
AM4BAAAgAAAAAAAAAAAAAAAAAIpDAABwcHQvc2xpZGVzL19yZWxzL3NsaWRlOC54bWwucmVsc1BL
AQItABQABgAIAAAAIQAXHzXH1wAAAM4BAAAgAAAAAAAAAAAAAAAAAJ9EAABwcHQvc2xpZGVzL19y
ZWxzL3NsaWRlOS54bWwucmVsc1BLAQItABQABgAIAAAAIQDBHoz4ZgQAAPwQAAAhAAAAAAAAAAAA
AAAAALRFAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0My54bWxQSwECLQAUAAYACAAAACEA
GnVaubwDAABPDgAAIQAAAAAAAAAAAAAAAABZSgAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91
dDQueG1sUEsBAi0AFAAGAAgAAAAhAOnby0DsBAAARxgAACEAAAAAAAAAAAAAAAAAVE4AAHBwdC9z
bGlkZUxheW91dHMvc2xpZGVMYXlvdXQ1LnhtbFBLAQItABQABgAIAAAAIQDnCoAVGgMAAIoIAAAh
AAAAAAAAAAAAAAAAAH9TAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0Ni54bWxQSwECLQAU
AAYACAAAACEAFyugdukCAABiBwAAIQAAAAAAAAAAAAAAAADYVgAAcHB0L3NsaWRlTGF5b3V0cy9z
bGlkZUxheW91dDcueG1sUEsBAi0AFAAGAAgAAAAhAKJ7NpHCBAAAIBIAACEAAAAAAAAAAAAAAAAA
AFoAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQ4LnhtbFBLAQItABQABgAIAAAAIQAkYmhF
jgQAAOsRAAAhAAAAAAAAAAAAAAAAAAFfAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0OS54
bWxQSwECLQAUAAYACAAAACEAtoAhSsoDAAAgDAAAIgAAAAAAAAAAAAAAAADOYwAAcHB0L3NsaWRl
TGF5b3V0cy9zbGlkZUxheW91dDExLnhtbFBLAQItABQABgAIAAAAIQCiDF+zpQIAAGcGAAAfAAAA
AAAAAAAAAAAAANhnAABwcHQvbm90ZXNTbGlkZXMvbm90ZXNTbGlkZTEueG1sUEsBAi0AFAAGAAgA
AAAhAO47gXylAgAAZgYAAB8AAAAAAAAAAAAAAAAAumoAAHBwdC9ub3Rlc1NsaWRlcy9ub3Rlc1Ns
aWRlMi54bWxQSwECLQAUAAYACAAAACEAYdwZm6UCAABnBgAAHwAAAAAAAAAAAAAAAACcbQAAcHB0
L25vdGVzU2xpZGVzL25vdGVzU2xpZGUzLnhtbFBLAQItABQABgAIAAAAIQDJrQrapQIAAGcGAAAf
AAAAAAAAAAAAAAAAAH5wAABwcHQvbm90ZXNTbGlkZXMvbm90ZXNTbGlkZTQueG1sUEsBAi0AFAAG
AAgAAAAhAHTSm2qkAgAAZgYAAB8AAAAAAAAAAAAAAAAAYHMAAHBwdC9ub3Rlc1NsaWRlcy9ub3Rl
c1NsaWRlNS54bWxQSwECLQAUAAYACAAAACEAfoyZn5QDAABBCwAAIgAAAAAAAAAAAAAAAABBdgAA
cHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDEwLnhtbFBLAQItABQABgAIAAAAIQDqpupapAIA
AGcGAAAfAAAAAAAAAAAAAAAAABV6AABwcHQvbm90ZXNTbGlkZXMvbm90ZXNTbGlkZTcueG1sUEsB
Ai0AFAAGAAgAAAAhAGmiXyEVAQAAxwcAACwAAAAAAAAAAAAAAAAA9nwAAHBwdC9zbGlkZU1hc3Rl
cnMvX3JlbHMvc2xpZGVNYXN0ZXIxLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhADUlo4SjAgAAZQYA
AB8AAAAAAAAAAAAAAAAAVX4AAHBwdC9ub3Rlc1NsaWRlcy9ub3Rlc1NsaWRlNi54bWxQSwECLQAU
AAYACAAAACEAKQgPbiUHAAABMAAAIQAAAAAAAAAAAAAAAAA1gQAAcHB0L3NsaWRlTWFzdGVycy9z
bGlkZU1hc3RlcjEueG1sUEsBAi0AFAAGAAgAAAAhAHnO6pAqBAAAAA4AACEAAAAAAAAAAAAAAAAA
mYgAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQxLnhtbFBLAQItABQABgAIAAAAIQD1W00l
eAMAAAoLAAAhAAAAAAAAAAAAAAAAAAKNAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0Mi54
bWxQSwECLQAUAAYACAAAACEA1dGS8bwAAAA3AQAALAAAAAAAAAAAAAAAAAC5kAAAcHB0L3NsaWRl
TGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDIueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8bwA
AAA3AQAALAAAAAAAAAAAAAAAAAC/kQAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91
dDMueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8bwAAAA3AQAALAAAAAAAAAAAAAAAAADFkgAA
cHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDQueG1sLnJlbHNQSwECLQAUAAYACAAA
ACEA1dGS8bwAAAA3AQAALAAAAAAAAAAAAAAAAADLkwAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9z
bGlkZUxheW91dDUueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8bwAAAA3AQAALAAAAAAAAAAA
AAAAAADRlAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDYueG1sLnJlbHNQSwEC
LQAUAAYACAAAACEA1dGS8bwAAAA3AQAALAAAAAAAAAAAAAAAAADXlQAAcHB0L3NsaWRlTGF5b3V0
cy9fcmVscy9zbGlkZUxheW91dDcueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8bwAAAA3AQAA
LAAAAAAAAAAAAAAAAADdlgAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDgueG1s
LnJlbHNQSwECLQAUAAYACAAAACEA1dGS8bwAAAA3AQAALAAAAAAAAAAAAAAAAADjlwAAcHB0L3Ns
aWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDkueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS
8bwAAAA3AQAALAAAAAAAAAAAAAAAAADpmAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxh
eW91dDEueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8bwAAAA3AQAALQAAAAAAAAAAAAAAAADv
mQAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDExLnhtbC5yZWxzUEsBAi0AFAAG
AAgAAAAhAJn2ma7TAAAAvwEAACoAAAAAAAAAAAAAAAAA9poAAHBwdC9ub3Rlc1NsaWRlcy9fcmVs
cy9ub3Rlc1NsaWRlMS54bWwucmVsc1BLAQItABQABgAIAAAAIQAXPO1q0wAAAL8BAAAqAAAAAAAA
AAAAAAAAABGcAABwcHQvbm90ZXNTbGlkZXMvX3JlbHMvbm90ZXNTbGlkZTIueG1sLnJlbHNQSwEC
LQAUAAYACAAAACEAfkMwWtMAAAC/AQAAKgAAAAAAAAAAAAAAAAAsnQAAcHB0L25vdGVzU2xpZGVz
L19yZWxzL25vdGVzU2xpZGUzLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhACPQqAnTAAAAvwEAACoA
AAAAAAAAAAAAAAAAR54AAHBwdC9ub3Rlc1NsaWRlcy9fcmVscy9ub3Rlc1NsaWRlNC54bWwucmVs
c1BLAQItABQABgAIAAAAIQCtGtzN0wAAAL8BAAAqAAAAAAAAAAAAAAAAAGKfAABwcHQvbm90ZXNT
bGlkZXMvX3JlbHMvbm90ZXNTbGlkZTUueG1sLnJlbHNQSwECLQAUAAYACAAAACEA8S4SaNMAAAC/
AQAAKgAAAAAAAAAAAAAAAAB9oAAAcHB0L25vdGVzU2xpZGVzL19yZWxzL25vdGVzU2xpZGU2Lnht
bC5yZWxzUEsBAi0AFAAGAAgAAAAhAH/kZqzTAAAAvwEAACoAAAAAAAAAAAAAAAAAmKEAAHBwdC9u
b3Rlc1NsaWRlcy9fcmVscy9ub3Rlc1NsaWRlNy54bWwucmVsc1BLAQItABQABgAIAAAAIQDV0ZLx
vAAAADcBAAAtAAAAAAAAAAAAAAAAALOiAABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5
b3V0MTAueG1sLnJlbHNQSwECLQAUAAYACAAAACEAPJwfAn4BAAB5AgAAFgAAAAAAAAAAAAAAAAC6
owAAcHB0L2NvbW1lbnRBdXRob3JzLnhtbFBLAQItABQABgAIAAAAIQCOs/jltgUAAHAdAAAhAAAA
AAAAAAAAAAAAAGylAABwcHQvbm90ZXNNYXN0ZXJzL25vdGVzTWFzdGVyMS54bWxQSwECLQAKAAAA
AAAAACEAERM7gZQSAACUEgAAFAAAAAAAAAAAAAAAAABhqwAAcHB0L21lZGlhL2ltYWdlMS5wbmdQ
SwECLQAUAAYACAAAACEAtM9YGbkAAAAkAQAALAAAAAAAAAAAAAAAAAAnvgAAcHB0L25vdGVzTWFz
dGVycy9fcmVscy9ub3Rlc01hc3RlcjEueG1sLnJlbHNQSwECLQAUAAYACAAAACEAAkKatAQGAACN
GgAAFAAAAAAAAAAAAAAAAAAqvwAAcHB0L3RoZW1lL3RoZW1lMi54bWxQSwECLQAKAAAAAAAAACEA
jVMHisUTAADFEwAAFwAAAAAAAAAAAAAAAABgxQAAZG9jUHJvcHMvdGh1bWJuYWlsLmpwZWdQSwEC
LQAUAAYACAAAACEAAkKatAQGAACNGgAAFAAAAAAAAAAAAAAAAABa2QAAcHB0L3RoZW1lL3RoZW1l
MS54bWxQSwECLQAUAAYACAAAACEAP4W4cSICAAAoCwAAEwAAAAAAAAAAAAAAAACQ3wAAcHB0L3Rh
YmxlU3R5bGVzLnhtbFBLAQItABQABgAIAAAAIQA8oAk7dgEAABYDAAARAAAAAAAAAAAAAAAAAOPh
AABwcHQvdmlld1Byb3BzLnhtbFBLAQItABQABgAIAAAAIQBAT9xkHwIAAAUFAAARAAAAAAAAAAAA
AAAAAIjjAABwcHQvcHJlc1Byb3BzLnhtbFBLAQItABQABgAIAAAAIQAezsQuYQIAAKUGAAAQAAAA
AAAAAAAAAAAAANblAABkb2NQcm9wcy9hcHAueG1sUEsBAi0AFAAGAAgAAAAhACQ9NZ+NAQAA6gIA
ABEAAAAAAAAAAAAAAAAAbekAAGRvY1Byb3BzL2NvcmUueG1sUEsFBgAAAABIAEgAyRUAADHsAAAA
AA==

--_004_DM6PR08MB508413FE35AA9F639EB725E99BBA9DM6PR08MB5084namp_
Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation; 
 name="slides-interim-2021-feb-netmod-01-version-gaps.pptx"
Content-Description: slides-interim-2021-feb-netmod-01-version-gaps.pptx
Content-Disposition: attachment;
 filename="slides-interim-2021-feb-netmod-01-version-gaps.pptx"; size=50264;
 creation-date="Tue, 26 Jan 2021 20:07:30 GMT";
 modification-date="Thu, 28 Jan 2021 20:40:26 GMT"
Content-Transfer-Encoding: base64

UEsDBBQABgAIAAAAIQCQ+/wB3QEAAAQPAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADM
l81O6zAQhfdIvEPkLWrcApcLqCkLflZcQLrwACaZtgbHtuxpoW/PJGlRQCkB0qjZRLI958w3ij2W
h2evqQrm4Lw0OmKDsM8C0LFJpJ5E7OH+qnfMAo9CJ0IZDRFbgGdno92d4f3Cgg9IrX3Epoj2lHMf
TyEVPjQWNK2MjUsF0tBNuBXxs5gA3+/3j3hsNILGHmYebDS8gLGYKQwuX2m6IHmyMGHBeRGY5YqY
TDODfIFXaqyulmTz1QoHyn+SCGuVjAXSOp/r5FMtvWUdISnzGD+V1u9RwJoM2cr6BEvdLf0AJxMI
7oTDG5FSFLcWuXXgSZfHhl87VaCa8VjGkJh4lpIkLJul6sMwTIXUqyLWwXhFk/+ER9os5cFg02Ql
728xLWna4fgJwf7WCQ62TnC4FQJtEPxqb5YGG98TJe86pkx554z1bZzc3LiOYC7hpRWCd+M6AqT7
AIpv81+R29RmFI8K/uNCwcarLll/60Rci4WZ4fJcFIN2elTh/VumdrpWM6Z2+lgzpnY6WzOmPx1k
Ouog098OMh13kOmkg0yDfhehttnJS7dq8+Zde6tSZH7X06vNwc/TrR5MmbpnyQgcyq9v0PeMZN24
PsjeYgkkFbl5/oYdvQEAAP//AwBQSwMEFAAGAAgAAAAhAGj4dKEDAQAA4gIAAAsACAJfcmVscy8u
cmVscyCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAACskttKAzEQhu8F3yHMfTfbKiLSbG9E6J3I+gBjMrsb3RxIptK+vaHgYWEtgr3M
zD8f3yRZb/ZuFO+Usg1ewbKqQZDXwVjfK3huHxa3IDKjNzgGTwoOlGHTXF6sn2hELkN5sDGLQvFZ
wcAc76TMeiCHuQqRfOl0ITnkcky9jKjfsCe5qusbmX4yoJkwxdYoSFtzBaI9RPofWzpiNMgodUi0
iKlMJ7ZlF9Fi6okVmKAfSzkfE1Uhg5wXWp1XiIede/FoxxmVr171Gqn/TWj5d6HQdVbTfdA7R57n
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
LAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ4LnhtbC5yZWxzjM+9CsIwEAfw
XfAdwu0mrYOINHURwcFF9AGO5NoG2yTkoujbm9GCg+N9/f5cs39No3hSYhe8hlpWIMibYJ3vNdyu
x9UWBGf0FsfgScObGPbtctFcaMRcjnhwkUVRPGsYco47pdgMNCHLEMmXSRfShLmUqVcRzR17Uuuq
2qj0bUA7M8XJakgnW4O4viP9Y4euc4YOwTwm8vlHhOLRWTojZ0qFxdRT1iDld3+2VMsSAapt1Ozd
9gMAAP//AwBQSwMEFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAABwcHQvc2xpZGVMYXlvdXRzL19y
ZWxzL3NsaWRlTGF5b3V0Ny54bWwucmVsc4zPvQrCMBAH8F3wHcLtJq2DiDR1EcHBRfQBjuTaBtsk
5KLo25vRgoPjff3+XLN/TaN4UmIXvIZaViDIm2Cd7zXcrsfVFgRn9BbH4EnDmxj27XLRXGjEXI54
cJFFUTxrGHKOO6XYDDQhyxDJl0kX0oS5lKlXEc0de1Lrqtqo9G1AOzPFyWpIJ1uDuL4j/WOHrnOG
DsE8JvL5R4Ti0Vk6I2dKhcXUU9Yg5Xd/tlTLEgGqbdTs3fYDAAD//wMAUEsDBBQABgAIAAAAIQDV
0ZLxvAAAADcBAAAsAAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDYueG1sLnJl
bHOMz70KwjAQB/Bd8B3C7Satg4g0dRHBwUX0AY7k2gbbJOSi6Nub0YKD4339/lyzf02jeFJiF7yG
WlYgyJtgne813K7H1RYEZ/QWx+BJw5sY9u1y0VxoxFyOeHCRRVE8axhyjjul2Aw0IcsQyZdJF9KE
uZSpVxHNHXtS66raqPRtQDszxclqSCdbg7i+I/1jh65zhg7BPCby+UeE4tFZOiNnSoXF1FPWIOV3
f7ZUyxIBqm3U7N32AwAA//8DAFBLAwQUAAYACAAAACEAaaJfIRUBAADHBwAALAAAAHBwdC9zbGlk
ZU1hc3RlcnMvX3JlbHMvc2xpZGVNYXN0ZXIxLnhtbC5yZWxzxNVNasMwEAXgfaF3MLOPJTuJk5TI
2YRCoKuSHkBY4x9qS0ZSSn37ipZCDGFoIaCNwJL15uNttD98Dn3ygdZ1RgvIUg4J6sqoTjcC3s7P
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
BgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz
UvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3
eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna
4uPk5ebn6Onq8vP09fb3+Pn6/9sAQwACAgICAgIDAgIDBQMDAwUGBQUFBQYIBgYGBgYICggICAgI
CAoKCgoKCgoKDAwMDAwMDg4ODg4PDw8PDw8PDw8P/9sAQwECAgIEBAQHBAQHEAsJCxAQEBAQEBAQ
EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ/90ABAAQ/9oADAMBAAIR
AxEAPwD9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKAP/0P38ooooAKKKKACiiigAooooAKKKKACiiuTvvHXhHTPGOl/D/UNUit/E
Ot29xd2Vk5IkuIbTb5zJxg7N67hnODnGKAOsorlvB/jbwp4/0mTXfBupRatp8dzcWZnhyY/PtJWh
mQEgZ2SKykjIyODXU0AFFct4V8aeHPGseqS+G7lrldG1C40u6LQyw7Lu0IWVB5qJvCk8OuUb+FjX
U0AFFeT/ABR+Ofwk+C0VhL8UPE9poDaozraRTFnnnMYy5jhjV5GCAjcQuFyMkV3XhfxR4e8a+HtP
8WeE9Qh1XR9VhW4tbqBt8U0TjKsp9DQBvUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/0f38
ooooAKKK4T4geK9R8IaZp99plgdTmu9RtLPyEKiR1uH2HYXdEDDqCzAeta0KMqk1CO7Mq1aNODnL
ZHd0V89WXx7Go3UEll4YvH0u4uY4VujNbqfKfTP7TLmIvu3Kg2lfxBJ+WtjSvjloeqT2Fp/Y+o2s
9/KsSrOLdQplt4rmAGQTGPfNHKvlxhi5IYY+U16M8jxUd4dL7rb7zhhnGGltLrbZ/wCR7bRXievf
EbXI9TvdP0O2jjaM6bYQpcIS41K/PmyI+xsbba1xK4B5zw3FcuP2i7PUbGHVvDug3d7bSnbGjtBG
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
w3y7Pm45+X5ee3HSrMUEMClII1jUnOFAAz+FS0UAFFFFABRRRQAUUUUAFFFFABRRRQB//9X9/KKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKAP/1v38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooA//X/fyiiigAooooAZKrPG6I5jZgQGGCVJ7jII49xXj+v6F4onsdOaz8
XQywySqVkukjTzZGbMexodisfQAc9vb2OvObj4S/D258PeGfCs2kKdL8HXNpeaTCJJQLWexUrA6s
H3NsDEYYkHPINZzpqW/5tDTscVYeAtVTW7aDUPFEiagPMuJIoLkqwTdw8cJzhWPXtn727pXrXh+K
WIXgk1ptZxMyncIR5DL1j/dKvIzyG5Ht0oPhPw6fFa+ODYx/26tkdPF3z5gtTIJTF1xjeA3TNM8M
+EPDXg6C/tvDNhHYR6pfXWpXQjzma8vJDLPMxJJLOxz6AYAwABShRjF3Q3Js6SiiitSQooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigApiyRs7RqwLJjcAeRnpke9PqlDp9rBfXOoxKR
PdiNZDkkER5C8dB1PTrQBdooooA//9lQSwMEFAAGAAgAAAAhAAJCmrQEBgAAjRoAABQAAABwcHQv
dGhlbWUvdGhlbWUxLnhtbOxZzY7bNhC+F+g7ELo7lm3JP4t4A1u2kza7SZDdpM2RlmiJWUo0SHp3
jSBAn6BAgbTopUBvPfQSoH2mFG36EB1Rli3adBdpHCBAYwMWSX0z/DhDfqSs23euU4YuiZCUZ32n
cct1EMlCHtEs7jtPzie1roOkwlmEGc9I31kS6dw5/vyz2/hIJSQlCOwzeYT7TqLU/KhelyE0Y3mL
z0kG92ZcpFhBVcT1SOAr8JuyetN12/UU08xBGU7B7cPZjIYEnecunePS+ZjBT6Zk3hAycZa7JoaF
xkYXjfwilzJgAl1i1negn4hfnZNr5SCGpYIbfcfVH6d+fLu+NmJqj23FbqI/K7uVQXTR1HYinq4N
Pc/32oO1fw1gahc37ozb4/banwbgMISRFlxMn51m4K2wFVBRtPgedUathoGv+G/t4Ad+/jXwGlQU
vR38ZBJsYlgBFUV/B+8Pe8OR6V+DimJ7B99xByOvY+A1KGE0u9hBu367FZSjXUNmnN2zwnu+N+k0
V/ANql6ZXYV9pvbNtRQ/52ICAJ1crGiG1HJOZjgEXIAZnQqKTmicwMSb44xLaHab7sRtwW/+9XRJ
ZxQfEVyxLppCudOU80EyFHSu+s6X4NWpQJ4t0F2uEhquet21uIezuGrx9pfv/v7pG/TXbz+/ffW9
HS+r+BHJ4q8pzv6tA1U1ePPD6z9+f/3mx2///PWVBT4QeFqFn9OUSPSAXKHHPIXBWTogU/FuFucJ
plWLQRZLnOHcxoIeQ/yq6AdLzLAFNyRmJJ8KkAob8O7iuUH4LBELRS3A+0lqAE85Z0MurGO6n/dV
jcIii+2di0UV9xjjS1vfwVaex4s5zHlqcxkkxKD5iEHKcUwyolB+j18QYjF7RqkR11MaCi75TKFn
FA0xtYbknE6N2bQxukdTyMvSRhDybcTm9CkacmZzPyKXJhJWB2Y2l4QZYbyLFwqnVsY4ZVXkCVaJ
jeTZUoRGwKWCTMeEcTSOiJQ2m4diadC9DxJjT/spW6YmUih6YUOeYM6NBc4vggSncytnmiVV7Bfy
AqYoRo+4spLg5grJ65AHEI996X5KiZHum9f2E5Ah+wTJ7yyEbUkQbq7HJZthop3XtzQ9pdmNAr8l
7f6HlvYPKOqHl/OBoNb1tC3i+3Db0h1wEdGPX7lHeJE9IrBYPgn3J+H+Pwr3vvV8eLneKLQ+xpeH
de0m3Xtyn1HGztSSkROptV3C8KIJNOqKNlo/KMwTKK66M3CxwLqMBFdfUZWcJXgO3TR0D7FcuY4l
mnMJu4NutvrWu8siPeVR0dpolM+mYIDVph12l7Id9iJVtLY7m4ewtXtdi/XDckkgt30XEpXOTBIt
C4lO2XgDCT2yg7DoWVh0c/d7WejLKiuw/hDO/9bwvYIRzDfMSJTnqbAvs3vwTO8LpjnspmV4vZzr
YTJtkKhMN5NEZRomOCLbzQfOdW+TUoNeHopdGp3uh8h1LiJb2sAys4auYM21fHAT4nnfmcG5EIrp
HPzJXDcxi7O+E6pVoP+LssyFVCMskwKmbxXjT6kiAjGawlyvpoFlG26NZicf40dKrud+fJHTl2qS
yWxGQrWnZVOFe4UT6933BOcVvgDSZ0l0haZsIR5jCJTfaeQBjKhU62hGVFQm9yaKW3K1WorGf2ab
JYrZPMGrHaUq5gVcl9d0KuPQTLdHZdZXg5nGeZLee9e92WhLNPdsIPmuadePD7fJV1htdN9gVUj3
ttb1Sq3bt0u8/4ZQobbpzKCWM7ZQ27d3HPBAUOluPTX37RGH3g22Z22+QZTnSl3beTnBp89h5o/g
uLpgShbP/9fwjBCUfysXSqBbS3W5VmghaN954foDL2j6Qc3t+uOa1/LcWtcftGoD3281xn7DHQ2b
LyEoKkkbftH3BJ5n2HL17kW377x/Sctj9q2Qp3Wuz8F1bazfvzSa+9+/IAqRedFuTnqt3rBd67UG
k5o3GnZrvaA9rI3aQWc0GQV+tzd56aBLDfYGrcBrj7u1diMIal7bzel3e7WO12wOvM6gO/YGL1ex
hpGX1zK8mtfxPwAAAP//AwBQSwMECgAAAAAAAAAhABETO4GUEgAAlBIAABQAAABwcHQvbWVkaWEv
aW1hZ2UxLnBuZ4lQTkcNChoKAAAADUlIRFIAAAImAAABSwgDAAAA1ZK3bQAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAwBQTFRF////sbGxqKiopKSko4sANS0AhYWFg4ODd3d3k34AJR8AX19fUVFR/Pz8
+Pj4RUVFwqUA6+vr4uLi2NjY1dXV09PTHR0dy8vLspgAEBAQwsLCwMDARjwAq6urm5ub4L8AdmQA
hoaGgoKCdnZ20bIAampqZmZmZlcAWFhYVFRUhnIA9vb2RkZG8PDw/tgAQkJCNzc3NTU14eHhExAA
39/fKysrJSUl0tLSzs7OyMjI78wAExMTw8PDAAAA////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////XDsUpAAADzpJREFUeJzt
3WmbVMUZgGE3Fg1EJhAbNMQlOiQOoEKbIQz9//9Wejk9c5Za3q1OH+B5vnkl9LxX1S3CWao/+YSI
iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiBbfxcP7wZ+4Xgd/4P2HF8GfSMou
3qwexTpZr1axTi4erd7g5KRtlaxWl5GbsFUS62Q/Ik5O2X4LQjdhryTSSfyIpKzbgsBN6JTEOYkf
kZRdb0HYJlwriXISPyIp621B0Cb0lMQ4iR+RlA22IGQTBkoinMSPSMpGWxCwCSMlfifxI5KyyRa4
N2GixOskfkRSltgC5yYklPicxI9IypJb4NqEpBKPk/gRSVlmCxybkFFidxI/IinLboF5E7JKrE7i
RyRlhS0wbkJBic1J/IikrLgFpk0oKrE4iR+RlFW2wLAJFSV6J/EjkrLqFqg3oapE6yR+RFIm2ALl
JgiU6JzEj0jKRFug2gSREo2T+BFJmXALFJsgVCJ3Ej8iKRNvgXgTxEqkTuJHJGWKLRBugkKJzEn8
iKRMtQWiTVApkTiJH5GUKbdAsAlKJXUn8SOSMvUWVDdBraTmJH5EUmbYgsomGJSUncSPSMpMW1Dc
BJOSkpP4EUmZcQsKm2BUMnTyr8vgEV/dbrF6H0vmLcg6MSvpOznfXF2Gjnh5tTlvuY4fdo4tyDhx
KLlxcr7ZXDsJGXGrZIMTa64tSDpxKTk62Sr58lbnJGTErZJbX+LEmHMLEk6cSg5Otkq+ePn24CRk
xJ2Sty+/wIkp9xZMnLiV7Jzslbw8OAkZ8aDkJU5MBWzByEmAktXq3wclBydPAz7waacEJ6bOArZg
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
7oXzJJn2zLgxiAsbAoLME0LTmKQxXZQkZUnKpouX0TpA2b7l73ggo9AO++5ymDxNV9flDTr40pLO
GU3Z7OKlu9nR+YOw3uf+15jQmNA4mZcJYWR2bBwEeR/6+A/NvwAAAP//AwBQSwECLQAUAAYACAAA
ACEAkPv8Ad0BAAAEDwAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBLAQIt
ABQABgAIAAAAIQBo+HShAwEAAOICAAALAAAAAAAAAAAAAAAAABYEAABfcmVscy8ucmVsc1BLAQIt
ABQABgAIAAAAIQASzS0YcgYAAGogAAAVAAAAAAAAAAAAAAAAAEoHAABwcHQvc2xpZGVzL3NsaWRl
MS54bWxQSwECLQAUAAYACAAAACEAdCFr7YIEAADDDAAAFQAAAAAAAAAAAAAAAADvDQAAcHB0L3Ns
aWRlcy9zbGlkZTIueG1sUEsBAi0AFAAGAAgAAAAhAHqdQvpiBQAA6xEAABUAAAAAAAAAAAAAAAAA
pBIAAHBwdC9zbGlkZXMvc2xpZGUzLnhtbFBLAQItABQABgAIAAAAIQBL9T3svQAAADcBAAAgAAAA
AAAAAAAAAAAAADkYAABwcHQvc2xpZGVzL19yZWxzL3NsaWRlNC54bWwucmVsc1BLAQItABQABgAI
AAAAIQBL9T3svQAAADcBAAAgAAAAAAAAAAAAAAAAADQZAABwcHQvc2xpZGVzL19yZWxzL3NsaWRl
My54bWwucmVsc1BLAQItABQABgAIAAAAIQBL9T3svQAAADcBAAAgAAAAAAAAAAAAAAAAAC8aAABw
cHQvc2xpZGVzL19yZWxzL3NsaWRlMi54bWwucmVsc1BLAQItABQABgAIAAAAIQDCiqFrFQEAAH4C
AAAgAAAAAAAAAAAAAAAAACobAABwcHQvc2xpZGVzL19yZWxzL3NsaWRlMS54bWwucmVsc1BLAQIt
ABQABgAIAAAAIQCyvCM1LgEAAPcFAAAfAAAAAAAAAAAAAAAAAH0cAABwcHQvX3JlbHMvcHJlc2Vu
dGF0aW9uLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhABFE926fBQAA0REAABUAAAAAAAAAAAAAAAAA
8B4AAHBwdC9zbGlkZXMvc2xpZGU0LnhtbFBLAQItABQABgAIAAAAIQCg0W/9vQIAAPENAAAUAAAA
AAAAAAAAAAAAAMIkAABwcHQvcHJlc2VudGF0aW9uLnhtbFBLAQItABQABgAIAAAAIQAmmuLOpAMA
AIALAAAhAAAAAAAAAAAAAAAAALEnAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0Mi54bWxQ
SwECLQAUAAYACAAAACEAnAklhWQEAAD6EAAAIQAAAAAAAAAAAAAAAACUKwAAcHB0L3NsaWRlTGF5
b3V0cy9zbGlkZUxheW91dDMueG1sUEsBAi0AFAAGAAgAAAAhAN8aLTK6AwAATQ4AACEAAAAAAAAA
AAAAAAAANzAAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQ0LnhtbFBLAQItABQABgAIAAAA
IQCCvni46gQAAEUYAAAhAAAAAAAAAAAAAAAAADA0AABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5
b3V0NS54bWxQSwECLQAUAAYACAAAACEAl27dVRkDAACICAAAIQAAAAAAAAAAAAAAAABZOQAAcHB0
L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDYueG1sUEsBAi0AFAAGAAgAAAAhAHVyE9LoAgAAYAcA
ACEAAAAAAAAAAAAAAAAAsTwAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQ3LnhtbFBLAQIt
ABQABgAIAAAAIQAUNnrowAQAAB4SAAAhAAAAAAAAAAAAAAAAANg/AABwcHQvc2xpZGVMYXlvdXRz
L3NsaWRlTGF5b3V0OC54bWxQSwECLQAUAAYACAAAACEABf5Vy4wEAADpEQAAIQAAAAAAAAAAAAAA
AADXRAAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDkueG1sUEsBAi0AFAAGAAgAAAAhANgd
Im+SAwAAPwsAACIAAAAAAAAAAAAAAAAAokkAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQx
MC54bWxQSwECLQAUAAYACAAAACEAIgNlusgDAAAeDAAAIgAAAAAAAAAAAAAAAAB0TQAAcHB0L3Ns
aWRlTGF5b3V0cy9zbGlkZUxheW91dDExLnhtbFBLAQItABQABgAIAAAAIQDV0ZLxvAAAADcBAAAt
AAAAAAAAAAAAAAAAAHxRAABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0MTEueG1s
LnJlbHNQSwECLQAUAAYACAAAACEAucyg6CcEAAD+DQAAIQAAAAAAAAAAAAAAAACDUgAAcHB0L3Ns
aWRlTGF5b3V0cy9zbGlkZUxheW91dDEueG1sUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAAC0A
AAAAAAAAAAAAAAAA6VYAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQxMC54bWwu
cmVsc1BLAQItABQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAAAAAAAAAAAAAAPBXAABwcHQvc2xp
ZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0OS54bWwucmVsc1BLAQItABQABgAIAAAAIQDV0ZLx
vAAAADcBAAAsAAAAAAAAAAAAAAAAAPZYAABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5
b3V0OC54bWwucmVsc1BLAQItABQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAAAAAAAAAAAAAAPxZ
AABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0Ny54bWwucmVsc1BLAQItABQABgAI
AAAAIQDV0ZLxvAAAADcBAAAsAAAAAAAAAAAAAAAAAAJbAABwcHQvc2xpZGVMYXlvdXRzL19yZWxz
L3NsaWRlTGF5b3V0Ni54bWwucmVsc1BLAQItABQABgAIAAAAIQBpol8hFQEAAMcHAAAsAAAAAAAA
AAAAAAAAAAhcAABwcHQvc2xpZGVNYXN0ZXJzL19yZWxzL3NsaWRlTWFzdGVyMS54bWwucmVsc1BL
AQItABQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAAAAAAAAAAAAAAGddAABwcHQvc2xpZGVMYXlv
dXRzL19yZWxzL3NsaWRlTGF5b3V0NS54bWwucmVsc1BLAQItABQABgAIAAAAIQDV0ZLxvAAAADcB
AAAsAAAAAAAAAAAAAAAAAG1eAABwcHQvc2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0NC54
bWwucmVsc1BLAQItABQABgAIAAAAIQDV0ZLxvAAAADcBAAAsAAAAAAAAAAAAAAAAAHNfAABwcHQv
c2xpZGVMYXlvdXRzL19yZWxzL3NsaWRlTGF5b3V0My54bWwucmVsc1BLAQItABQABgAIAAAAIQCf
WNBfJAcAAP8vAAAhAAAAAAAAAAAAAAAAAHlgAABwcHQvc2xpZGVNYXN0ZXJzL3NsaWRlTWFzdGVy
MS54bWxQSwECLQAUAAYACAAAACEA1dGS8bwAAAA3AQAALAAAAAAAAAAAAAAAAADcZwAAcHB0L3Ns
aWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDIueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS
8bwAAAA3AQAALAAAAAAAAAAAAAAAAADiaAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxh
eW91dDEueG1sLnJlbHNQSwECLQAUAAYACAAAACEAtM9YGbkAAAAkAQAALAAAAAAAAAAAAAAAAADo
aQAAcHB0L25vdGVzTWFzdGVycy9fcmVscy9ub3Rlc01hc3RlcjEueG1sLnJlbHNQSwECLQAUAAYA
CAAAACEAoe4aBLUFAABuHQAAIQAAAAAAAAAAAAAAAADragAAcHB0L25vdGVzTWFzdGVycy9ub3Rl
c01hc3RlcjEueG1sUEsBAi0AFAAGAAgAAAAhAAJCmrQEBgAAjRoAABQAAAAAAAAAAAAAAAAA33AA
AHBwdC90aGVtZS90aGVtZTIueG1sUEsBAi0ACgAAAAAAAAAhAGsJridOGQAAThkAABcAAAAAAAAA
AAAAAAAAFXcAAGRvY1Byb3BzL3RodW1ibmFpbC5qcGVnUEsBAi0AFAAGAAgAAAAhAAJCmrQEBgAA
jRoAABQAAAAAAAAAAAAAAAAAmJAAAHBwdC90aGVtZS90aGVtZTEueG1sUEsBAi0ACgAAAAAAAAAh
ABETO4GUEgAAlBIAABQAAAAAAAAAAAAAAAAAzpYAAHBwdC9tZWRpYS9pbWFnZTEucG5nUEsBAi0A
FAAGAAgAAAAhAPtRMjx2AQAAFwMAABEAAAAAAAAAAAAAAAAAlKkAAHBwdC92aWV3UHJvcHMueG1s
UEsBAi0AFAAGAAgAAAAhAIRw4RYvAgAAMwUAABEAAAAAAAAAAAAAAAAAOasAAHBwdC9wcmVzUHJv
cHMueG1sUEsBAi0AFAAGAAgAAAAhAD+FuHEiAgAAKAsAABMAAAAAAAAAAAAAAAAAl60AAHBwdC90
YWJsZVN0eWxlcy54bWxQSwECLQAUAAYACAAAACEAXyJq2jkCAACiBQAAEAAAAAAAAAAAAAAAAADq
rwAAZG9jUHJvcHMvYXBwLnhtbFBLAQItABQABgAIAAAAIQDmilEUhQEAAO4CAAARAAAAAAAAAAAA
AAAAAFmzAABkb2NQcm9wcy9jb3JlLnhtbFBLBQYAAAAALwAvAC0OAAAVtgAAAAA=

--_004_DM6PR08MB508413FE35AA9F639EB725E99BBA9DM6PR08MB5084namp_--


From nobody Sat Jan 30 09:10:15 2021
Return-Path: <010001775445ff80-f95d5d0d-8bda-4524-b092-cf3a1c2a5865-000000@amazonses.watsen.net>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AFEA03A0C9D for <netmod@ietfa.amsl.com>; Sat, 30 Jan 2021 09:10:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level: 
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=amazonses.com
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 4-vBnp1fjPVr for <netmod@ietfa.amsl.com>; Sat, 30 Jan 2021 09:10:12 -0800 (PST)
Received: from a48-95.smtp-out.amazonses.com (a48-95.smtp-out.amazonses.com [54.240.48.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B64233A0C9C for <netmod@ietf.org>; Sat, 30 Jan 2021 09:10:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=224i4yxa5dv7c2xz3womw6peuasteono; d=amazonses.com; t=1612026610; h=From:Mime-Version:Content-Type:Subject:Date:References:To:Message-Id:Feedback-ID; bh=v8EEHzJrvd/3lp6TpvbxHLCmoV3xfn8b31kyZlBh6LU=; b=hyuxoLgfcSDP8fNj8KAtbY2nNLyeKCE/BccXFePp7C6n+7uC1v5kgyipZTklYO3H q8HLv0T74pHvIN/URKfywkwkUO7HGWMJC2ZGwNQkZDFCYYA6vfbh0vhFpf6S62FU9YQ T7Gm0X+qySg7u+aSL/ANFW0k6w20+3GoNZyO6D7I=
From: Kent Watsen <kent+ietf@watsen.net>
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\))
Content-Type: multipart/alternative; boundary="Apple-Mail=_4420BF86-0A88-4787-9498-61A7E13B4250"
X-Priority: 3
Date: Sat, 30 Jan 2021 17:10:09 +0000
References: <1684132479.3772201610726832270.JavaMail.nobody@rva2rmd101.webex.com>
To: "netmod@ietf.org" <netmod@ietf.org>
X-Mail-Calendar-Part: Yes
Message-ID: <010001775445ff80-f95d5d0d-8bda-4524-b092-cf3a1c2a5865-000000@email.amazonses.com>
X-Mailer: Apple Mail (2.3608.80.23.2.2)
X-SES-Outgoing: 2021.01.30-54.240.48.95
Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/ArdqZdDrsO5fLInaKToIm_zeqgo>
Subject: [netmod] Reminder: NETMOD Versioning Interim - Feb 20221
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 30 Jan 2021 17:10:14 -0000

--Apple-Mail=_4420BF86-0A88-4787-9498-61A7E13B4250
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

NETMOD is hosting a virtual interim this coming Monday (in ~45 hours).

ICS file attached to this message.

NETMOD Agenda for Interim (virtual)

Date            February 1, 2021
Start Time      14:30 UTC
Duration        90 minutes

Time Zone Converter:
     =
https://www.timeanddate.com/worldclock/converter.html?iso=3D20210201T14300=
0&p1=3D1440&p2=3D37&p3=3D438&p4=3D33&p5=3D248&p6=3D224&p7=3D179
Slides:
     =
https://datatracker.ietf.org/meeting/interim-2021-netmod-01/session/netmod=
Notes
Notes & BlueSheet:
    https://codimd.ietf.org/notes-ietf-interim-2021-netmod-01-netmod
WebEx:
    =
https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1900b0cd0=

Jabber:
    xmpp:netmod@jabber.ietf.org?join

Agenda:

1       Topic   Intro & Administrivia
Presenter:      Chairs

2 Topic Module Versioning:
Presenter: Authors
Follow on to
=
https://datatracker.ietf.org/meeting/interim-2020-netmod-03/session/netmod=

Virtual Bluesheet



> Begin forwarded message:
>=20
> From: NETMOD Working Group <messenger@webex.com>
> Subject: Webex meeting changed: NetMod YANG Versioning Interim - Feb =
20221
> Date: January 15, 2021 at 11:07:12 AM EST
> To: netmod-chairs@ietf.org
> Resent-From: <alias-bounces@ietf.org>
> Resent-To: joelja@bogus.com, kent+ietf@watsen.net, lberger@labn.net
> Reply-To: netmod-chairs@ietf.org
>=20
> =20
> NETMOD Working Group changed the Webex meeting information.
>=20
> =20
> When it's time, join the Webex meeting here.
>=20
> =20
> =20
> Monday, February 1, 2021
> 9:30 am  |  (UTC-05:00) Eastern Time (US & Canada)  |  1 hr 30 mins
> =20
> Join meeting =
<https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1900b0cd=
0>
> =20
> More ways to join:
> Join from the meeting link
> =
https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1900b0cd0=
 =
<https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1900b0cd=
0>
> =20
> Join by meeting number
> Meeting number (access code): 178 198 8377
> Meeting password: Versioning
> =20
> Tap to join from a mobile device (attendees only)
> +1-650-479-3208,,1781988377## =
<tel:%2B1-650-479-3208,,*01*1781988377%23%23*01*> Call-in toll number =
(US/Canada)
> =20
> Join by phone
> 1-650-479-3208 Call-in toll number (US/Canada)
> Global call-in numbers =
<https://ietf.webex.com/ietf/globalcallin.php?MTID=3Dmb91ef6e2caa7090a869d=
36f74f0ed9fe>
> =20
> Join from a video system or application
> Dial 1781988377@ietf.webex.com <sip:1781988377@ietf.webex.com>
> You can also dial 173.243.2.68 and enter your meeting number.
> =20
> Join using Microsoft Lync or Microsoft Skype for Business
> Dial 1781988377.ietf@lync.webex.com =
<sip:1781988377.ietf@lync.webex.com>
> =20
> =20
> Need help? Go to https://help.webex.com <https://help.webex.com/>
> =20


--Apple-Mail=_4420BF86-0A88-4787-9498-61A7E13B4250
Content-Type: multipart/mixed;
 boundary="Apple-Mail=_5D6870C6-F221-4B2D-ADF1-0273778CBB05"


--Apple-Mail=_5D6870C6-F221-4B2D-ADF1-0273778CBB05
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" =
class=3D"">NETMOD is hosting a virtual interim this coming Monday (in =
~45 hours).<div class=3D""><br class=3D""></div><div class=3D"">ICS file =
attached to this message.</div><div class=3D""><br class=3D""></div><div =
class=3D""><div><div class=3D"">NETMOD Agenda for Interim =
(virtual)</div><div class=3D""><br class=3D""></div><div class=3D"">Date =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;February 1, 2021</div><div =
class=3D"">Start Time &nbsp; &nbsp; &nbsp;14:30 UTC</div><div =
class=3D"">Duration &nbsp; &nbsp; &nbsp; &nbsp;90 minutes</div><div =
class=3D""><br class=3D""></div><div class=3D"">Time Zone =
Converter:</div><div class=3D"">&nbsp; &nbsp; &nbsp;<a =
href=3D"https://www.timeanddate.com/worldclock/converter.html?iso=3D202102=
01T143000&amp;p1=3D1440&amp;p2=3D37&amp;p3=3D438&amp;p4=3D33&amp;p5=3D248&=
amp;p6=3D224&amp;p7=3D179" =
class=3D"">https://www.timeanddate.com/worldclock/converter.html?iso=3D202=
10201T143000&amp;p1=3D1440&amp;p2=3D37&amp;p3=3D438&amp;p4=3D33&amp;p5=3D2=
48&amp;p6=3D224&amp;p7=3D179</a></div><div class=3D"">Slides:</div><div =
class=3D"">&nbsp; &nbsp; &nbsp;<a =
href=3D"https://datatracker.ietf.org/meeting/interim-2021-netmod-01/sessio=
n/netmodNotes" =
class=3D"">https://datatracker.ietf.org/meeting/interim-2021-netmod-01/ses=
sion/netmodNotes</a></div><div class=3D"">Notes &amp; =
BlueSheet:</div><div class=3D"">&nbsp; &nbsp; <a =
href=3D"https://codimd.ietf.org/notes-ietf-interim-2021-netmod-01-netmod" =
class=3D"">https://codimd.ietf.org/notes-ietf-interim-2021-netmod-01-netmo=
d</a></div><div class=3D"">WebEx:</div><div class=3D"">&nbsp; &nbsp; <a =
href=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1=
900b0cd0" =
class=3D"">https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3=
ce1900b0cd0</a></div><div class=3D"">Jabber:</div><div class=3D"">&nbsp; =
&nbsp; <a href=3D"xmpp:netmod@jabber.ietf.org?join" =
class=3D"">xmpp:netmod@jabber.ietf.org?join</a></div><div class=3D""><br =
class=3D""></div><div class=3D"">Agenda:</div><div class=3D""><br =
class=3D""></div><div class=3D"">1 &nbsp; &nbsp; &nbsp; Topic &nbsp; =
Intro &amp; Administrivia</div><div class=3D"">Presenter: &nbsp; &nbsp; =
&nbsp;Chairs</div><div class=3D""><br class=3D""></div><div class=3D"">2 =
Topic Module Versioning:</div><div class=3D"">Presenter: =
Authors</div><div class=3D"">Follow on to</div><div class=3D""><a =
href=3D"https://datatracker.ietf.org/meeting/interim-2020-netmod-03/sessio=
n/netmod" =
class=3D"">https://datatracker.ietf.org/meeting/interim-2020-netmod-03/ses=
sion/netmod</a></div><div class=3D"">Virtual =
Bluesheet</div></div><div><br class=3D""></div><div><br =
class=3D""></div><div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">Begin forwarded message:</div><br =
class=3D"Apple-interchange-newline"><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">NETMOD Working Group &lt;<a =
href=3D"mailto:messenger@webex.com" =
class=3D"">messenger@webex.com</a>&gt;<br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">Webex meeting =
changed: NetMod YANG Versioning Interim - Feb 20221</b><br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">January 15, 2021 at 11:07:12 AM =
EST<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><a =
href=3D"mailto:netmod-chairs@ietf.org" =
class=3D"">netmod-chairs@ietf.org</a><br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Resent-From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">&lt;<a =
href=3D"mailto:alias-bounces@ietf.org" =
class=3D"">alias-bounces@ietf.org</a>&gt;<br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Resent-To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><a =
href=3D"mailto:joelja@bogus.com" class=3D"">joelja@bogus.com</a>, <a =
href=3D"mailto:kent+ietf@watsen.net" class=3D"">kent+ietf@watsen.net</a>, =
<a href=3D"mailto:lberger@labn.net" class=3D"">lberger@labn.net</a><br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Reply-To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><a =
href=3D"mailto:netmod-chairs@ietf.org" =
class=3D"">netmod-chairs@ietf.org</a><br class=3D""></span></div><br =
class=3D""><div class=3D""><table bgcolor=3D"#FFFFFF" align=3D"left" =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px; =
caret-color: rgb(0, 0, 0); font-family: Helvetica; letter-spacing: =
normal; orphans: auto; text-indent: 0px; text-transform: none; widows: =
auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; text-decoration: none; padding: 0px; =
margin: 0px; width: 336.171875px;" class=3D""><tbody class=3D""><tr =
style=3D"line-height: 18px; height: 28px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px;" =
class=3D"">&nbsp;</td></tr><tr style=3D"line-height: 18px;" class=3D""><td=
 align=3D"left" style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: 0px =
20px; margin: 0px;" class=3D""><table style=3D"border-collapse: =
separate; border: 0px; border-spacing: 0px;" class=3D""><tbody =
class=3D""><tr style=3D"line-height: 18px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px;" class=3D""><p =
style=3D"font-size: 16px; font-family: arial; font-weight: bold; =
line-height: 22px;" class=3D"">NETMOD Working Group changed the Webex =
meeting information.</p></td></tr><tr style=3D"line-height: 20px;" =
class=3D""><td style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
0px; height: 20px;" class=3D"">&nbsp;</td></tr><tr style=3D"line-height: =
18px;" class=3D""><td style=3D"font-size: 14px; font-family: Arial; =
color: rgb(51, 51, 51); word-wrap: break-word; word-break: normal; =
padding: 0px;" class=3D""><p style=3D"font-size: 16px; font-family: =
arial; line-height: 22px;" class=3D"">When it's time, join the Webex =
meeting here.</p></td></tr><tr style=3D"line-height: 20px;" class=3D""><td=
 style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px; height: 20px;" =
class=3D"">&nbsp;</td></tr></tbody></table><table width=3D"100%" =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px;" =
class=3D""><tbody class=3D""><tr style=3D"line-height: 16px;" =
class=3D""><td style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
0px; height: 16px;" class=3D"">&nbsp;</td></tr><tr style=3D"line-height: =
18px;" class=3D""><td style=3D"font-size: 16px; font-family: arial; =
color: rgb(102, 102, 102); word-wrap: break-word; word-break: normal; =
padding: 0px; line-height: 22px; margin: 0px;" class=3D"">Monday, =
February 1, 2021</td></tr><tr style=3D"line-height: 18px;" class=3D""><td =
style=3D"font-size: 16px; font-family: arial; color: rgb(102, 102, 102); =
word-wrap: break-word; word-break: normal; padding: 0px; line-height: =
22px; margin: 0px;" class=3D"">9:30 =
am&nbsp;&nbsp;|&nbsp;&nbsp;(UTC-05:00) Eastern Time (US &amp; =
Canada)&nbsp;&nbsp;|&nbsp;&nbsp;1 hr 30 =
mins</td></tr></tbody></table><table style=3D"border-collapse: separate; =
border: 0px; border-spacing: 0px; padding-bottom: 4px; font-family: =
Arial;" class=3D""><tbody class=3D""><tr style=3D"line-height: 20px;" =
class=3D""><td style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
0px; height: 20px;" class=3D"">&nbsp;</td></tr></tbody></table><table =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px; =
width: auto !important;" class=3D""><tbody class=3D""><tr =
style=3D"line-height: 18px;" class=3D""><td style=3D"font-size: 14px; =
font-family: Arial; color: rgb(51, 51, 51); word-wrap: break-word; =
word-break: normal; padding: 0px; width: auto !important;" =
class=3D""><table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" =
style=3D"border-collapse: separate; border: 0px solid rgb(67, 169, 66); =
border-spacing: 0px; background-color: rgb(67, 169, 66); =
border-top-left-radius: 20px; border-top-right-radius: 20px; =
border-bottom-right-radius: 20px; border-bottom-left-radius: 20px; =
width: auto !important; min-width: 160px !important;" class=3D""><tbody =
class=3D""><tr style=3D"line-height: 18px;" class=3D""><td =
align=3D"center" style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
10px 36px;" class=3D""><a =
href=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1=
900b0cd0" style=3D"font-size: 20px; font-family: Arial; color: rgb(255, =
255, 255); word-wrap: break-word; word-break: normal; padding: 0px; =
text-decoration: none;" class=3D"">Join =
meeting</a></td></tr></tbody></table></td></tr></tbody></table><table =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px;" =
class=3D""><tbody class=3D""><tr style=3D"line-height: 28px;" =
class=3D""><td style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
0px; height: 28px;" class=3D"">&nbsp;</td></tr><tr style=3D"line-height: =
18px;" class=3D""><td style=3D"font-size: 14px; font-family: Arial; =
word-wrap: break-word; word-break: normal; padding: 0px; font-weight: =
bold; line-height: 24px;" class=3D""><b class=3D"">More ways to =
join:</b></td></tr><tr style=3D"line-height: 18px;" class=3D""><td =
style=3D"font-size: 12px; font-family: Arial; word-wrap: break-word; =
word-break: normal; padding: 0px; font-weight: bold; line-height: 24px;" =
class=3D""><b class=3D"">Join from the meeting link</b></td></tr><tr =
style=3D"line-height: 18px; margin: 0px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px; line-height: =
24px;" class=3D""><a =
href=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1=
900b0cd0" target=3D"_blank" style=3D"font-size: 14px; font-family: =
Arial; color: rgb(0, 175, 249); word-wrap: break-word; word-break: =
normal; padding: 0px; text-decoration: none; line-height: 24px;" =
class=3D"">https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3=
ce1900b0cd0</a></td></tr></tbody></table><table style=3D"border-collapse: =
separate; border: 0px; border-spacing: 0px;" class=3D""><tbody =
class=3D""><tr style=3D"line-height: 20px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px; height: 20px;" =
class=3D"">&nbsp;</td></tr></tbody></table><table =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px; =
width: auto !important;" class=3D""><tbody class=3D""><tr =
style=3D"line-height: 18px;" class=3D""><td style=3D"font-size: 12px; =
font-family: Arial; word-wrap: break-word; word-break: normal; padding: =
0px; font-weight: bold; line-height: 24px;" class=3D""><b class=3D"">Join =
by meeting number</b></td></tr></tbody></table><table =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px; =
width: auto !important;" class=3D""><tbody class=3D""><tr =
style=3D"line-height: 18px;" class=3D""><td style=3D"font-size: 14px; =
font-family: arial; color: rgb(51, 51, 51); word-wrap: break-word; =
word-break: normal; padding: 0px; line-height: 22px;" class=3D"">Meeting =
number (access code): 178 198 8377</td></tr></tbody></table><table =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px; =
width: auto !important;" class=3D""><tbody class=3D""><tr =
style=3D"line-height: 18px;" class=3D""><td style=3D"font-size: 14px; =
font-family: arial; color: rgb(51, 51, 51); word-wrap: break-word; =
word-break: normal; padding: 0px; line-height: 22px;" class=3D"">Meeting =
password: Versioning</td></tr></tbody></table><table =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px;" =
class=3D""><tbody class=3D""><tr style=3D"line-height: 20px;" =
class=3D""><td style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
0px; height: 20px;" class=3D"">&nbsp;</td></tr></tbody></table><font =
size=3D"2" color=3D"#FF0000" style=3D"font-family: Arial;" =
class=3D""></font><table style=3D"border-collapse: separate; border: =
0px; border-spacing: 0px;" class=3D""><tbody class=3D""><tr =
style=3D"line-height: 18px;" class=3D""><td style=3D"font-size: 12px; =
font-family: Arial; word-wrap: break-word; word-break: normal; padding: =
0px; font-weight: bold; line-height: 24px;" class=3D""><b class=3D"">Tap =
to join from a mobile device (attendees only)</b></td></tr><tr =
style=3D"line-height: 18px; margin: 0px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px; line-height: =
24px;" class=3D""><a =
href=3D"tel:%2B1-650-479-3208,,*01*1781988377%23%23*01*" =
style=3D"font-size: 14px; font-family: Arial; color: rgb(0, 175, 249); =
word-wrap: break-word; word-break: normal; padding: 0px; =
text-decoration: none; line-height: 24px;" =
class=3D"">+1-650-479-3208,,1781988377##</a><span =
class=3D"Apple-converted-space">&nbsp;</span>Call-in toll number =
(US/Canada)</td></tr><tr style=3D"line-height: 24px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px; height: 24px;" =
class=3D"">&nbsp;</td></tr></tbody></table><table =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px;" =
class=3D""><tbody class=3D""><tr style=3D"line-height: 18px;" =
class=3D""><td style=3D"font-size: 12px; font-family: Arial; word-wrap: =
break-word; word-break: normal; padding: 0px; font-weight: bold; =
line-height: 24px;" class=3D""><b class=3D"">Join by =
phone</b></td></tr><tr style=3D"line-height: 18px; margin: 0px;" =
class=3D""><td style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
0px; line-height: 24px;" class=3D"">1-650-479-3208&nbsp;<span =
style=3D"color: rgb(51, 51, 51);" class=3D"">Call-in toll number =
(US/Canada)</span></td></tr><tr style=3D"line-height: 18px; margin: =
0px;" class=3D""><td style=3D"font-size: 14px; font-family: Arial; =
color: rgb(51, 51, 51); word-wrap: break-word; word-break: normal; =
padding: 0px; line-height: 24px;" class=3D""><a =
href=3D"https://ietf.webex.com/ietf/globalcallin.php?MTID=3Dmb91ef6e2caa70=
90a869d36f74f0ed9fe" style=3D"font-size: 14px; font-family: Arial; =
color: rgb(0, 175, 249); word-wrap: break-word; word-break: normal; =
padding: 0px; text-decoration: none;" class=3D"">Global call-in =
numbers</a></td></tr></tbody></table><table cellpadding=3D"0" =
cellspacing=3D"0" style=3D"border-collapse: separate; border: 0px; =
border-spacing: 0px;" class=3D""><tbody class=3D""><tr =
style=3D"line-height: 28px;" class=3D""><td style=3D"font-size: 14px; =
font-family: Arial; color: rgb(51, 51, 51); word-wrap: break-word; =
word-break: normal; padding: 0px; height: 28px;" =
class=3D"">&nbsp;</td></tr></tbody></table><table =
style=3D"border-collapse: separate; border: 0px; border-spacing: 0px;" =
class=3D""><tbody class=3D""><tr style=3D"line-height: 18px;" =
class=3D""><td style=3D"font-size: 12px; font-family: Arial; word-wrap: =
break-word; word-break: normal; padding: 0px; font-weight: bold; =
line-height: 24px;" class=3D""><b class=3D"">Join from a video system or =
application</b></td></tr><tr style=3D"line-height: 18px; margin: 0px;" =
class=3D""><td style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
0px; line-height: 24px;" class=3D"">Dial<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"sip:1781988377@ietf.webex.com" style=3D"font-size: 14px; =
font-family: Arial; color: rgb(0, 175, 249); word-wrap: break-word; =
word-break: normal; padding: 0px; text-decoration: none;" =
class=3D"">1781988377@ietf.webex.com</a></td></tr><tr =
style=3D"line-height: 18px; margin: 0px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px; line-height: =
24px;" class=3D"">You can also dial 173.243.2.68 and enter your meeting =
number.</td></tr></tbody></table><table style=3D"border-collapse: =
separate; border: 0px; border-spacing: 0px;" class=3D""><tbody =
class=3D""><tr style=3D"line-height: 20px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px; height: 20px;" =
class=3D"">&nbsp;</td></tr></tbody></table><table cellpadding=3D"0" =
cellspacing=3D"0" style=3D"border-collapse: separate; border: 0px; =
border-spacing: 0px;" class=3D""><tbody class=3D""><tr =
style=3D"line-height: 18px;" class=3D""><td style=3D"font-size: 12px; =
font-family: Arial; word-wrap: break-word; word-break: normal; padding: =
0px; font-weight: bold; line-height: 24px;" class=3D""><b class=3D"">Join =
using Microsoft Lync or Microsoft Skype for Business</b></td></tr><tr =
style=3D"line-height: 18px; margin: 0px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px; line-height: =
24px;" class=3D"">Dial<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"sip:1781988377.ietf@lync.webex.com" style=3D"font-size: 14px; =
font-family: Arial; color: rgb(0, 175, 249); word-wrap: break-word; =
word-break: normal; padding: 0px; text-decoration: none;" =
class=3D"">1781988377.ietf@lync.webex.com</a></td></tr></tbody></table><ta=
ble style=3D"border-collapse: separate; border: 0px; border-spacing: =
0px;" class=3D""><tbody class=3D""><tr style=3D"line-height: 20px;" =
class=3D""><td style=3D"font-size: 14px; font-family: Arial; color: =
rgb(51, 51, 51); word-wrap: break-word; word-break: normal; padding: =
0px; height: 20px;" class=3D"">&nbsp;</td></tr></tbody></table><table =
align=3D"left" class=3D"main" style=3D"border-collapse: separate; =
border: 0px; border-spacing: 0px; width: 296.171875px;"><tbody =
class=3D""><tr style=3D"line-height: 18px; height: 20px;" class=3D""><td =
style=3D"font-size: 14px; font-family: Arial; color: rgb(51, 51, 51); =
word-wrap: break-word; word-break: normal; padding: 0px;" =
class=3D"">&nbsp;</td></tr><tr style=3D"line-height: 18px;" class=3D""><td=
 style=3D"font-size: 14px; font-family: Arial; word-wrap: break-word; =
word-break: normal; padding: 0px; height: 24px; line-height: 24px;" =
class=3D"">Need help? Go to<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"https://help.webex.com/" style=3D"font-size: 14px; font-family: =
Arial; color: rgb(0, 94, 125); word-wrap: break-word; word-break: =
normal; padding: 0px; text-decoration: none;" =
class=3D"">https://help.webex.com</a></td></tr><tr style=3D"line-height: =
18px; height: 44px;" class=3D""><td style=3D"font-size: 14px; =
font-family: Arial; color: rgb(51, 51, 51); word-wrap: break-word; =
word-break: normal; padding: 0px;" =
class=3D"">&nbsp;</td></tr></tbody></table></td></tr></tbody></table></div=
></blockquote></div></div></body></html>=

--Apple-Mail=_5D6870C6-F221-4B2D-ADF1-0273778CBB05
Content-Disposition: attachment;
	filename="Mail Attachment.ics"
Content-Type: text/calendar; x-mac-hide-extension=yes; x-unix-mode=0644;
 name="Mail Attachment.ics"
Content-Transfer-Encoding: quoted-printable

BEGIN:VCALENDAR=0D=0APRODID:-//Microsoft=20Corporation//Outlook=2010.0=20=
MIMEDIR//EN=0D=0AVERSION:2.0=0D=0AMETHOD:REQUEST=0D=0ABEGIN:VTIMEZONE=0D=0A=
TZID:America/New_York=0D=0A=
TZURL:http://tzurl.org/zoneinfo-outlook/America/New_York=0D=0A=
X-LIC-LOCATION:America/New_York=0D=0ABEGIN:DAYLIGHT=0D=0A=
TZOFFSETFROM:-0500=0D=0ATZOFFSETTO:-0400=0D=0ATZNAME:EDT=0D=0A=
DTSTART:19700308T020000=0D=0ARRULE:FREQ=3DYEARLY;BYMONTH=3D3;BYDAY=3D2SU=0D=
=0AEND:DAYLIGHT=0D=0ABEGIN:STANDARD=0D=0ATZOFFSETFROM:-0400=0D=0A=
TZOFFSETTO:-0500=0D=0ATZNAME:EST=0D=0ADTSTART:19701101T020000=0D=0A=
RRULE:FREQ=3DYEARLY;BYMONTH=3D11;BYDAY=3D1SU=0D=0AEND:STANDARD=0D=0A=
END:VTIMEZONE=0D=0ABEGIN:VEVENT=0D=0ADTSTAMP:20210115T160712Z=0D=0A=
ATTENDEE;CN=3D"NETMOD=20Working=20=
Group";ROLE=3DREQ-PARTICIPANT;RSVP=3DTRUE:MAILTO:netmod-chairs@ietf.org=0D=
=0AORGANIZER;CN=3D"NETMOD=20Working=20=
Group":MAILTO:netmod-chairs@ietf.org=0D=0A=
DTSTART;TZID=3DAmerica/New_York:20210201T093000=0D=0A=
DTEND;TZID=3DAmerica/New_York:20210201T110000=0D=0A=
LOCATION:https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce=
1900b0cd0=0D=0ATRANSP:OPAQUE=0D=0ASEQUENCE:1610726832=0D=0A=
UID:980882d2-09ea-468e-8de2-b6906c6ad6f4=0D=0ADESCRIPTION:\n\n\n\n\nJOIN=20=
WEBEX=20=
MEETING\nhttps://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce=
1900b0cd0\nMeeting=20number=20(access=20code):=20178=20198=20=
8377\n\nMeeting=20password:=20Versioning\n\n\n\nTAP=20TO=20JOIN=20FROM=20=
A=20MOBILE=20DEVICE=20(ATTENDEES=20ONLY)\n+1-650-479-3208,,1781988377##=20=
tel:%2B1-650-479-3208,,*01*1781988377%23%23*01*=20Call-in=20toll=20=
number=20(US/Canada)\n\n\nJOIN=20BY=20PHONE\n1-650-479-3208=20Call-in=20=
toll=20number=20(US/Canada)\n\nGlobal=20call-in=20=
numbers\nhttps://ietf.webex.com/ietf/globalcallin.php?MTID=3Dmb91ef6e2caa7=
090a869d36f74f0ed9fe\n\n\nJOIN=20FROM=20A=20VIDEO=20SYSTEM=20OR=20=
APPLICATION\nDial=20sip:1781988377@ietf.webex.com\nYou=20can=20also=20=
dial=20173.243.2.68=20and=20enter=20your=20meeting=20number.\n\n\nJoin=20=
using=20Microsoft=20Lync=20or=20Microsoft=20Skype=20for=20Business\nDial=20=
sip:1781988377.ietf@lync.webex.com\n\n\n\n\n\nCan't=20join=20the=20=
meeting?\nhttps://collaborationhelp.cisco.com/article/WBX000029055\n\n\nIM=
PORTANT=20NOTICE:=20Please=20note=20that=20this=20Webex=20service=20=
allows=20audio=20and=20other=20information=20sent=20during=20the=20=
session=20to=20be=20recorded,=20which=20may=20be=20discoverable=20in=20a=20=
legal=20matter.=20By=20joining=20this=20session,=20you=20automatically=20=
consent=20to=20such=20recordings.=20If=20you=20do=20not=20consent=20to=20=
being=20recorded,=20discuss=20your=20concerns=20with=20the=20host=20or=20=
do=20not=20join=20the=20session.\n=0D=0A=
X-ALT-DESC;FMTTYPE=3Dtext/html:<style=20type=3D"text/css">\ntable=20{\n=09=
border-collapse:=20separate;=20width=20=3D100%;=09border:=200;=09=
border-spacing:=200;}\n\ntr=20{\n=09line-height:=2018px;}\n\na,=20td=20=
{\n=09font-size:=2014px;=09font-family:=20Arial;=09color:=20#333;=09=
word-wrap:=20break-word;=09word-break:=20normal;=09padding:=20=
0;}\n\n.title=20{\n=09font-size:=2028px;}\n\n.image=20{\n=09width:=20=
auto;=09max-width:=20auto;}\n\n.footer=20{\n=09width:=20604px;}\n\n.main=20=
{\n\n}@media=20screen=20and=20(max-device-width:=20800px)=20{\n=09.title=20=
{\n=09=09font-size:=2022px=20!important;=09}\n=09.image=20{\n=09=09=
width:=20auto=20!important;=09=09max-width:=20100%=20!important;=09}\n=09=
.footer=20{\n=09=09width:=20100%=20!important;=09=09max-width:=20604px=20=
!important\n=09}\n=09.main=20{\n=09=09width:=20100%=20!important;=09=09=
max-width:=20604px=20!important\n=09}\n}\n</style>\n\n<table=20=
bgcolor=3D"#FFFFFF"=20style=3D"padding:=200;=20margin:=200;=20border:=20=
0;=20width:=20100%;"=20align=3D"left">\n=09<tr=20style=3D"height:=20=
28px"><td>&nbsp;</td></tr>\n=09<tr>\n=09=09<td=20align=3D"left"=20=
style=3D"padding:=200=2020px;=20margin:=200">\n=09=09=09<!--<table=20=
bgcolor=3D"#FFFFFF"=20style=3D"border:=200px;=20width:=20100%;=20=
padding-left:=2050px;=20padding-right:=2050px;"=20align=3D"left"=20=
class=3D"main">\n=09=09=09=09<tr>\n=09=09=09=09=09<td=20align=3D"center"=20=
valign=3D"top"=20>&nbsp;=09=09=09=09=09</td>\n=09=09=09=09</tr>\n=09=09=09=
</table>-->\n\n\n\n\n\n=09=09=09<table>\n=09=09=09=09<tr>\n=09=09=09=09=09=
<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"4"=20COLOR=3D"#666666"=20=
FACE=3D"arial">When=20it's=20time,=20join=20the=20Webex=20meeting=20=
here.</FONT>\n=09=09=09=09=09</td>\n=09=09=09=09</tr>\n=09=09</table>\n=20=
=20=20=20=20=20=20=20<table>\n=20=20=20=20=20=20=20=20=09<tr=20=
style=3D"line-height:=2020px;"><td=20=
style=3D"height:20px">&nbsp;</td></tr>\n=09=09=09<tr>\n=09=09=09=09<td=20=
style=3D"width:auto!important;=20">\n=09=09=09=09=09<table=20border=3D"0"=20=
cellpadding=3D"0"=20cellspacing=3D"0"=20=
style=3D"width:auto;width:auto!important;background-color:#00823B;=20=
border:0px=20solid=20#00823B;=20border-radius:25px;=20=
min-width:160px!important;">\n=09=09=09=09=09=09<tr>\n=09=09=09=09=09=09=09=
<td=20align=3D"center"=20style=3D"padding:10px=2036px;"><a=20=
href=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1=
900b0cd0"=20style=3D"color:#FFFFFF;=20font-size:20px;=20=
text-decoration:none;">Join=20meeting</a></td>\n=09=09=09=09=09=09=
</tr>\n=09=09=09=09=09</table>\n=09=09=09=09</td>\n=09=09=09</tr>\n=09=09=
</table>\n=09=09<table>\n=09=09=09<tr=20style=3D"line-height:=20=
20px;"><td=20style=3D"height:20px">&nbsp;</td></tr>\n=09=09=09<tr>\n=09=09=
=09=09<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">More=20ways=20to=20join:</FONT>\n=09=09=09=09</td>\n=20=20=
=20=20=20=20=20=20=09</tr>\n=20=20=20=20=20=20=20=20=20=20=20=20<tr=20=
style=3D"line-height:=2010px;"><td=20style=3D"height:=20=
10px;">&nbsp;</td></tr>\n=20=20=20=20=20=20=20=20=09<tr>\n=09=09=09=09=
<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Join=20from=20the=20meeting=20link</FONT>\n=09=09=09=09=
</td>\n=20=20=20=20=20=20=20=20=09</tr>\n=20=20=20=20=20=20=20=20=09=
<tr>\n=09=09=09=09<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"2"=20=
COLOR=3D"#666666"=20FACE=3D"arial"><a=20=
href=3D'https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1=
900b0cd0'=20style=3D'color:#005E7D;=20=20text-decoration:none;=20=
font-family:=20Arial;font-size:=2014px;line-height:=20=
24px;'>https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce19=
00b0cd0</a></FONT>\n=09=09=09=09</td>\n=20=20=20=20=20=20=20=20=09=
</tr>\n=20=20=20=20=20=20=20=20=09<tr=20style=3D"line-height:=20=
20px;"><td=20style=3D"height:20px">&nbsp;</td></tr>\n=09=09=09<tr>\n=09=09=
=09=09<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Join=20by=20meeting=20number</FONT>\n=09=09=09=09</td>\n=20=
=20=20=20=20=20=20=20=09</tr>\n=09=09=09<tr>\n=09=09=09=09<td>\n=09=09=09=
=09=09<FONT=20SIZE=3D"2"=20COLOR=3D"#666666"=20FACE=3D"arial">Meeting=20=
number=20(access=20code):=20178=20198=208377</FONT>\n=09=09=09=09</td>\n=09=
=09=09</tr>\n=09=09</table>\n=09=09<table><tr><td><FONT=20SIZE=3D"2"=20=
COLOR=3D"#666666"=20FACE=3D"arial">Meeting=20=
password:</FONT></td><td><FONT=20SIZE=3D"2"=20=20COLOR=3D"#666666"=20=
FACE=3D"arial">Versioning</FONT></td></tr></table>\n\n=20<FONT=20=
size=3D"2"=20COLOR=3D"#FF0000"=20style=3D"font-family:=20=
Arial;"></FONT>\n\n&nbsp;=20<BR><FONT=20SIZE=3D"4"=20FACE=3D"ARIAL"><FONT=20=
SIZE=3D"3"=20COLOR=3D"#666666"=20FACE=3D"arial">Tap=20to=20join=20from=20=
a=20mobile=20device=20(attendees=20only)</FONT>=20&nbsp;=20<BR><FONT=20=
SIZE=3D"2"=20COLOR=3D"#666666"=20FACE=3D"arial"><a=20=
href=3D'tel:%2B1-650-479-3208,,*01*1781988377%23%23*01*'=20=
style=3D'color:#00AFF9;=20=20text-decoration:none;=20font-family:=20=
Arial;font-size:=2014px;line-height:=20=
24px;'>+1-650-479-3208,,1781988377##</a>=20Call-in=20toll=20number=20=
(US/Canada)</FONT>&nbsp;=20<BR><BR><FONT=20SIZE=3D"4"=20=
FACE=3D"ARIAL"><FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Join=20by=20phone</FONT>=20&nbsp;=20<BR><FONT=20SIZE=3D"2"=20=
COLOR=3D"#666666"=20FACE=3D"arial">1-650-479-3208=20Call-in=20toll=20=
number=20(US/Canada)</FONT>=20&nbsp;=20<BR><FONT=20SIZE=3D"2"=20=
COLOR=3D"#666666"=20FACE=3D"arial"><a=20=
href=3D"https://ietf.webex.com/ietf/globalcallin.php?MTID=3Dmb91ef6e2caa70=
90a869d36f74f0ed9fe"=20=
style=3D"text-decoration:none;font-size:14px;color:#00AFF9">Global=20=
call-in=20numbers</a></FONT>&nbsp;=20<BR><BR><BR>\n\n<table><tr=20=
style=3D"line-height:=2020px;"><td=20=
style=3D"height:20px">&nbsp;</td></tr></table>\n\n<FONT=20SIZE=3D"4"=20=
FACE=3D"ARIAL"><FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Join=20from=20a=20video=20system=20or=20=
application</FONT><BR><FONT=20SIZE=3D"2"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Dial</FONT>=20<a=20=
href=3D"sip:1781988377@ietf.webex.com"><FONT=20SIZE=3D"2"=20=
COLOR=3D"#00AFF9"=20=
FACE=3D"arial">1781988377@ietf.webex.com</FONT></a>&nbsp;=20<BR><FONT=20=
SIZE=3D"2"=20COLOR=3D"#666666"=20FACE=3D"arial">You=20can=20also=20dial=20=
173.243.2.68=20and=20enter=20your=20meeting=20number.</FONT>=20&nbsp;=20=
<BR></FONT>&nbsp;=20<BR>\n\n<table=20cellpadding=3D"0"=20=
cellspacing=3D"0"><tr><td=20=20style=3D"color:=20#000000;=20font-family:=20=
Arial;font-size:=2012px;=20font-weight:=20bold;=20line-height:=20=
24px;"><b>Join=20using=20Microsoft=20Lync=20or=20Microsoft=20Skype=20for=20=
Business</b></td></tr><tr=20style=3D"margin:0px"><td=20style=3D"color:=20=
#333333;=20font-family:=20Arial;=20font-size:=2014px;=20line-height:=20=
24px;">Dial=20<a=20href=3D"=20sip:1781988377.ietf@lync.webex.com"=20=20=20=
style=3D"text-decoration:none;color:#00AFF9">1781988377.ietf@lync.webex.co=
m</a></td></tr></table>\n\n=09<table><tr=20style=3D"line-height:=20=
20px"><td=20style=3D"height:20px">&nbsp;</td></tr></table>\n=09\n\n=09=09=
=09<table=20style=3D"width:=20100%;"=20align=3D"left"=20class=3D"main">\n=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20<tr=20style=3D"height:=20=
20px"><td>&nbsp;</td></tr>\n=09=09=09=09<tr>\n=09=09=09=09=09<td=20=
style=3D"height:=2024px;=20color:=20#000000;=20font-family:Arial;=20=
font-size:=2014px;=20line-height:=2024px;">Need=20help?=20Go=20to=20<a=20=
href=3D"https://help.webex.com"=20style=3D"color:#005E7D;=20=
text-decoration:none;">https://help.webex.com</a>\n=09=09=09=09=09=
</td>\n=09=09=09=09</tr>\n=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
<tr=20style=3D"height:=2044px"><td>&nbsp;</td></tr>\n=09=09=09</table>\n=09=
=09</td>\n=09</tr>\n</table>\n=0D=0ASUMMARY:NetMod=20YANG=20Versioning=20=
Interim=20-=20Feb=2020221=0D=0APRIORITY:5=0D=0ACLASS:PUBLIC=0D=0A=
BEGIN:VALARM=0D=0ATRIGGER:-PT5M=0D=0AACTION:DISPLAY=0D=0A=
DESCRIPTION:Reminder=0D=0AEND:VALARM=0D=0AEND:VEVENT=0D=0AEND:VCALENDAR=0D=
=0A=

--Apple-Mail=_5D6870C6-F221-4B2D-ADF1-0273778CBB05
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=us-ascii

<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><div><div class="AppleOriginalContents"><blockquote type="cite"><div></div></blockquote></div></div></body></html>
--Apple-Mail=_5D6870C6-F221-4B2D-ADF1-0273778CBB05
Content-Disposition: attachment;
	filename=Webex_Meeting.ics
Content-Type: text/calendar;
	x-unix-mode=0644;
	name="Webex_Meeting.ics"
Content-Transfer-Encoding: quoted-printable

BEGIN:VCALENDAR=0D=0APRODID:-//Microsoft=20Corporation//Outlook=2010.0=20=
MIMEDIR//EN=0D=0AVERSION:2.0=0D=0AMETHOD:REQUEST=0D=0ABEGIN:VTIMEZONE=0D=0A=
TZID:America/New_York=0D=0A=
TZURL:http://tzurl.org/zoneinfo-outlook/America/New_York=0D=0A=
X-LIC-LOCATION:America/New_York=0D=0ABEGIN:DAYLIGHT=0D=0A=
TZOFFSETFROM:-0500=0D=0ATZOFFSETTO:-0400=0D=0ATZNAME:EDT=0D=0A=
DTSTART:19700308T020000=0D=0ARRULE:FREQ=3DYEARLY;BYMONTH=3D3;BYDAY=3D2SU=0D=
=0AEND:DAYLIGHT=0D=0ABEGIN:STANDARD=0D=0ATZOFFSETFROM:-0400=0D=0A=
TZOFFSETTO:-0500=0D=0ATZNAME:EST=0D=0ADTSTART:19701101T020000=0D=0A=
RRULE:FREQ=3DYEARLY;BYMONTH=3D11;BYDAY=3D1SU=0D=0AEND:STANDARD=0D=0A=
END:VTIMEZONE=0D=0ABEGIN:VEVENT=0D=0ADTSTAMP:20210115T160712Z=0D=0A=
ATTENDEE;CN=3D"NETMOD=20Working=20=
Group";ROLE=3DREQ-PARTICIPANT;RSVP=3DTRUE:MAILTO:netmod-chairs@ietf.org=0D=
=0AORGANIZER;CN=3D"NETMOD=20Working=20=
Group":MAILTO:netmod-chairs@ietf.org=0D=0A=
DTSTART;TZID=3DAmerica/New_York:20210201T093000=0D=0A=
DTEND;TZID=3DAmerica/New_York:20210201T110000=0D=0A=
LOCATION:https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce=
1900b0cd0=0D=0ATRANSP:OPAQUE=0D=0ASEQUENCE:1610726832=0D=0A=
UID:980882d2-09ea-468e-8de2-b6906c6ad6f4=0D=0ADESCRIPTION:\n\n\n\n\nJOIN=20=
WEBEX=20=
MEETING\nhttps://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce=
1900b0cd0\nMeeting=20number=20(access=20code):=20178=20198=20=
8377\n\nMeeting=20password:=20Versioning\n\n\n\nTAP=20TO=20JOIN=20FROM=20=
A=20MOBILE=20DEVICE=20(ATTENDEES=20ONLY)\n+1-650-479-3208,,1781988377##=20=
tel:%2B1-650-479-3208,,*01*1781988377%23%23*01*=20Call-in=20toll=20=
number=20(US/Canada)\n\n\nJOIN=20BY=20PHONE\n1-650-479-3208=20Call-in=20=
toll=20number=20(US/Canada)\n\nGlobal=20call-in=20=
numbers\nhttps://ietf.webex.com/ietf/globalcallin.php?MTID=3Dmb91ef6e2caa7=
090a869d36f74f0ed9fe\n\n\nJOIN=20FROM=20A=20VIDEO=20SYSTEM=20OR=20=
APPLICATION\nDial=20sip:1781988377@ietf.webex.com\nYou=20can=20also=20=
dial=20173.243.2.68=20and=20enter=20your=20meeting=20number.\n\n\nJoin=20=
using=20Microsoft=20Lync=20or=20Microsoft=20Skype=20for=20Business\nDial=20=
sip:1781988377.ietf@lync.webex.com\n\n\n\n\n\nCan't=20join=20the=20=
meeting?\nhttps://collaborationhelp.cisco.com/article/WBX000029055\n\n\nIM=
PORTANT=20NOTICE:=20Please=20note=20that=20this=20Webex=20service=20=
allows=20audio=20and=20other=20information=20sent=20during=20the=20=
session=20to=20be=20recorded,=20which=20may=20be=20discoverable=20in=20a=20=
legal=20matter.=20By=20joining=20this=20session,=20you=20automatically=20=
consent=20to=20such=20recordings.=20If=20you=20do=20not=20consent=20to=20=
being=20recorded,=20discuss=20your=20concerns=20with=20the=20host=20or=20=
do=20not=20join=20the=20session.\n=0D=0A=
X-ALT-DESC;FMTTYPE=3Dtext/html:<style=20type=3D"text/css">\ntable=20{\n=09=
border-collapse:=20separate;=20width=20=3D100%;=09border:=200;=09=
border-spacing:=200;}\n\ntr=20{\n=09line-height:=2018px;}\n\na,=20td=20=
{\n=09font-size:=2014px;=09font-family:=20Arial;=09color:=20#333;=09=
word-wrap:=20break-word;=09word-break:=20normal;=09padding:=20=
0;}\n\n.title=20{\n=09font-size:=2028px;}\n\n.image=20{\n=09width:=20=
auto;=09max-width:=20auto;}\n\n.footer=20{\n=09width:=20604px;}\n\n.main=20=
{\n\n}@media=20screen=20and=20(max-device-width:=20800px)=20{\n=09.title=20=
{\n=09=09font-size:=2022px=20!important;=09}\n=09.image=20{\n=09=09=
width:=20auto=20!important;=09=09max-width:=20100%=20!important;=09}\n=09=
.footer=20{\n=09=09width:=20100%=20!important;=09=09max-width:=20604px=20=
!important\n=09}\n=09.main=20{\n=09=09width:=20100%=20!important;=09=09=
max-width:=20604px=20!important\n=09}\n}\n</style>\n\n<table=20=
bgcolor=3D"#FFFFFF"=20style=3D"padding:=200;=20margin:=200;=20border:=20=
0;=20width:=20100%;"=20align=3D"left">\n=09<tr=20style=3D"height:=20=
28px"><td>&nbsp;</td></tr>\n=09<tr>\n=09=09<td=20align=3D"left"=20=
style=3D"padding:=200=2020px;=20margin:=200">\n=09=09=09<!--<table=20=
bgcolor=3D"#FFFFFF"=20style=3D"border:=200px;=20width:=20100%;=20=
padding-left:=2050px;=20padding-right:=2050px;"=20align=3D"left"=20=
class=3D"main">\n=09=09=09=09<tr>\n=09=09=09=09=09<td=20align=3D"center"=20=
valign=3D"top"=20>&nbsp;=09=09=09=09=09</td>\n=09=09=09=09</tr>\n=09=09=09=
</table>-->\n\n\n\n\n\n=09=09=09<table>\n=09=09=09=09<tr>\n=09=09=09=09=09=
<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"4"=20COLOR=3D"#666666"=20=
FACE=3D"arial">When=20it's=20time,=20join=20the=20Webex=20meeting=20=
here.</FONT>\n=09=09=09=09=09</td>\n=09=09=09=09</tr>\n=09=09</table>\n=20=
=20=20=20=20=20=20=20<table>\n=20=20=20=20=20=20=20=20=09<tr=20=
style=3D"line-height:=2020px;"><td=20=
style=3D"height:20px">&nbsp;</td></tr>\n=09=09=09<tr>\n=09=09=09=09<td=20=
style=3D"width:auto!important;=20">\n=09=09=09=09=09<table=20border=3D"0"=20=
cellpadding=3D"0"=20cellspacing=3D"0"=20=
style=3D"width:auto;width:auto!important;background-color:#00823B;=20=
border:0px=20solid=20#00823B;=20border-radius:25px;=20=
min-width:160px!important;">\n=09=09=09=09=09=09<tr>\n=09=09=09=09=09=09=09=
<td=20align=3D"center"=20style=3D"padding:10px=2036px;"><a=20=
href=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1=
900b0cd0"=20style=3D"color:#FFFFFF;=20font-size:20px;=20=
text-decoration:none;">Join=20meeting</a></td>\n=09=09=09=09=09=09=
</tr>\n=09=09=09=09=09</table>\n=09=09=09=09</td>\n=09=09=09</tr>\n=09=09=
</table>\n=09=09<table>\n=09=09=09<tr=20style=3D"line-height:=20=
20px;"><td=20style=3D"height:20px">&nbsp;</td></tr>\n=09=09=09<tr>\n=09=09=
=09=09<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">More=20ways=20to=20join:</FONT>\n=09=09=09=09</td>\n=20=20=
=20=20=20=20=20=20=09</tr>\n=20=20=20=20=20=20=20=20=20=20=20=20<tr=20=
style=3D"line-height:=2010px;"><td=20style=3D"height:=20=
10px;">&nbsp;</td></tr>\n=20=20=20=20=20=20=20=20=09<tr>\n=09=09=09=09=
<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Join=20from=20the=20meeting=20link</FONT>\n=09=09=09=09=
</td>\n=20=20=20=20=20=20=20=20=09</tr>\n=20=20=20=20=20=20=20=20=09=
<tr>\n=09=09=09=09<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"2"=20=
COLOR=3D"#666666"=20FACE=3D"arial"><a=20=
href=3D'https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce1=
900b0cd0'=20style=3D'color:#005E7D;=20=20text-decoration:none;=20=
font-family:=20Arial;font-size:=2014px;line-height:=20=
24px;'>https://ietf.webex.com/ietf/j.php?MTID=3Dm8ee8976e972cc17b725f3ce19=
00b0cd0</a></FONT>\n=09=09=09=09</td>\n=20=20=20=20=20=20=20=20=09=
</tr>\n=20=20=20=20=20=20=20=20=09<tr=20style=3D"line-height:=20=
20px;"><td=20style=3D"height:20px">&nbsp;</td></tr>\n=09=09=09<tr>\n=09=09=
=09=09<td>\n=09=09=09=09=09=09<FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Join=20by=20meeting=20number</FONT>\n=09=09=09=09</td>\n=20=
=20=20=20=20=20=20=20=09</tr>\n=09=09=09<tr>\n=09=09=09=09<td>\n=09=09=09=
=09=09<FONT=20SIZE=3D"2"=20COLOR=3D"#666666"=20FACE=3D"arial">Meeting=20=
number=20(access=20code):=20178=20198=208377</FONT>\n=09=09=09=09</td>\n=09=
=09=09</tr>\n=09=09</table>\n=09=09<table><tr><td><FONT=20SIZE=3D"2"=20=
COLOR=3D"#666666"=20FACE=3D"arial">Meeting=20=
password:</FONT></td><td><FONT=20SIZE=3D"2"=20=20COLOR=3D"#666666"=20=
FACE=3D"arial">Versioning</FONT></td></tr></table>\n\n=20<FONT=20=
size=3D"2"=20COLOR=3D"#FF0000"=20style=3D"font-family:=20=
Arial;"></FONT>\n\n&nbsp;=20<BR><FONT=20SIZE=3D"4"=20FACE=3D"ARIAL"><FONT=20=
SIZE=3D"3"=20COLOR=3D"#666666"=20FACE=3D"arial">Tap=20to=20join=20from=20=
a=20mobile=20device=20(attendees=20only)</FONT>=20&nbsp;=20<BR><FONT=20=
SIZE=3D"2"=20COLOR=3D"#666666"=20FACE=3D"arial"><a=20=
href=3D'tel:%2B1-650-479-3208,,*01*1781988377%23%23*01*'=20=
style=3D'color:#00AFF9;=20=20text-decoration:none;=20font-family:=20=
Arial;font-size:=2014px;line-height:=20=
24px;'>+1-650-479-3208,,1781988377##</a>=20Call-in=20toll=20number=20=
(US/Canada)</FONT>&nbsp;=20<BR><BR><FONT=20SIZE=3D"4"=20=
FACE=3D"ARIAL"><FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Join=20by=20phone</FONT>=20&nbsp;=20<BR><FONT=20SIZE=3D"2"=20=
COLOR=3D"#666666"=20FACE=3D"arial">1-650-479-3208=20Call-in=20toll=20=
number=20(US/Canada)</FONT>=20&nbsp;=20<BR><FONT=20SIZE=3D"2"=20=
COLOR=3D"#666666"=20FACE=3D"arial"><a=20=
href=3D"https://ietf.webex.com/ietf/globalcallin.php?MTID=3Dmb91ef6e2caa70=
90a869d36f74f0ed9fe"=20=
style=3D"text-decoration:none;font-size:14px;color:#00AFF9">Global=20=
call-in=20numbers</a></FONT>&nbsp;=20<BR><BR><BR>\n\n<table><tr=20=
style=3D"line-height:=2020px;"><td=20=
style=3D"height:20px">&nbsp;</td></tr></table>\n\n<FONT=20SIZE=3D"4"=20=
FACE=3D"ARIAL"><FONT=20SIZE=3D"3"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Join=20from=20a=20video=20system=20or=20=
application</FONT><BR><FONT=20SIZE=3D"2"=20COLOR=3D"#666666"=20=
FACE=3D"arial">Dial</FONT>=20<a=20=
href=3D"sip:1781988377@ietf.webex.com"><FONT=20SIZE=3D"2"=20=
COLOR=3D"#00AFF9"=20=
FACE=3D"arial">1781988377@ietf.webex.com</FONT></a>&nbsp;=20<BR><FONT=20=
SIZE=3D"2"=20COLOR=3D"#666666"=20FACE=3D"arial">You=20can=20also=20dial=20=
173.243.2.68=20and=20enter=20your=20meeting=20number.</FONT>=20&nbsp;=20=
<BR></FONT>&nbsp;=20<BR>\n\n<table=20cellpadding=3D"0"=20=
cellspacing=3D"0"><tr><td=20=20style=3D"color:=20#000000;=20font-family:=20=
Arial;font-size:=2012px;=20font-weight:=20bold;=20line-height:=20=
24px;"><b>Join=20using=20Microsoft=20Lync=20or=20Microsoft=20Skype=20for=20=
Business</b></td></tr><tr=20style=3D"margin:0px"><td=20style=3D"color:=20=
#333333;=20font-family:=20Arial;=20font-size:=2014px;=20line-height:=20=
24px;">Dial=20<a=20href=3D"=20sip:1781988377.ietf@lync.webex.com"=20=20=20=
style=3D"text-decoration:none;color:#00AFF9">1781988377.ietf@lync.webex.co=
m</a></td></tr></table>\n\n=09<table><tr=20style=3D"line-height:=20=
20px"><td=20style=3D"height:20px">&nbsp;</td></tr></table>\n=09\n\n=09=09=
=09<table=20style=3D"width:=20100%;"=20align=3D"left"=20class=3D"main">\n=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20<tr=20style=3D"height:=20=
20px"><td>&nbsp;</td></tr>\n=09=09=09=09<tr>\n=09=09=09=09=09<td=20=
style=3D"height:=2024px;=20color:=20#000000;=20font-family:Arial;=20=
font-size:=2014px;=20line-height:=2024px;">Need=20help?=20Go=20to=20<a=20=
href=3D"https://help.webex.com"=20style=3D"color:#005E7D;=20=
text-decoration:none;">https://help.webex.com</a>\n=09=09=09=09=09=
</td>\n=09=09=09=09</tr>\n=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
<tr=20style=3D"height:=2044px"><td>&nbsp;</td></tr>\n=09=09=09</table>\n=09=
=09</td>\n=09</tr>\n</table>\n=0D=0ASUMMARY:NetMod=20YANG=20Versioning=20=
Interim=20-=20Feb=2020221=0D=0APRIORITY:5=0D=0ACLASS:PUBLIC=0D=0A=
BEGIN:VALARM=0D=0ATRIGGER:-PT5M=0D=0AACTION:DISPLAY=0D=0A=
DESCRIPTION:Reminder=0D=0AEND:VALARM=0D=0AEND:VEVENT=0D=0AEND:VCALENDAR=0D=
=0A=

--Apple-Mail=_5D6870C6-F221-4B2D-ADF1-0273778CBB05
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div><blockquote type="cite" class=""><div class=""></div></blockquote></div><br class=""></div></body></html>
--Apple-Mail=_5D6870C6-F221-4B2D-ADF1-0273778CBB05--

--Apple-Mail=_4420BF86-0A88-4787-9498-61A7E13B4250--

