From nobody Tue Apr 6 11:02:55 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 698C03A2AAC for ; Tue, 6 Apr 2021 11:02:54 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -0.698 X-Spam-Level: X-Spam-Status: No, score=-0.698 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 5BBsrobibYpZ for ; Tue, 6 Apr 2021 11:02:52 -0700 (PDT) Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) (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 D208B3A2AAB for ; Tue, 6 Apr 2021 11:02:51 -0700 (PDT) Received: by mail-wr1-x434.google.com with SMTP id 12so678917wrz.7 for ; Tue, 06 Apr 2021 11:02:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:references:in-reply-to:subject:date:message-id:mime-version :thread-index:content-language; bh=BIDiukOrTwPQyxobN4ritWiwWvjpMu/gyUk/ZAc52KQ=; b=fcrcHp2D9RKXx1QBZnBliCQJJAm4gIXnnTtqkoN/Ta6B4uMpG5LR1/csMaIXerZidl gmKEtzNDKW8bDYido6d8fkc6M6w8MP0J+m7dX2bw114LsTHHKyAjs3Sas6DzYZ+lFKYV VQKbVA8a48AUcHSsOw3tMdQSV6F3qBDwxDd4/IF4YbvOI2/On4Jt6+1tsCVtXvu3IKSC +If361NU1kOV+cXtKD62d4nLWdQA3bphMm28mTmflWkT0KXkvYa3LesCxKsuu9PjpNHh gdVceHtbzA8bWevVv/yzVCwZnYsQiUCCUoSwZK6aS6Nf1RIL4caznHCx89JQtr7eepvC xarw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:references:in-reply-to:subject:date :message-id:mime-version:thread-index:content-language; bh=BIDiukOrTwPQyxobN4ritWiwWvjpMu/gyUk/ZAc52KQ=; b=id7HjOefsagR1PQGZKvnuQF+Ga4rLbmgDoXd8k0wLSRcboft4Fiel1vVTmCIOVjOh0 BNJ2799tPGQCskLzn/HXBH05/MZfJGdbqCsIY9bSeyTqcgOivUykqzlfUTPdzGzgkqeE 33oO9ldTjswjyTmeNzET/fwCgPlRSWgtrChhcPBCkBO7pls8cCHKJ3mbzpInD8uz2c43 kiV+swr08RJU2JIxaOK5n6+Uj9Z94MwaUrW/9YKQEvomX8RXHUOb4A/2kH2D7rr+rPqc n2loUiIgNR8NRZOln8qWnOT3W6rrNwj43DbGp9YGYYiqV+JH8k1F6NMff22aU17GTm2N kHjg== X-Gm-Message-State: AOAM532AuDWtQi5ElQj2ZYaM9sHV7sHf4reR4lRGiSWFvLGQX47StqjY DZ/ZmKp2BhnHLJ1BXodzpsBuA6O8rX8= X-Google-Smtp-Source: ABdhPJyarWUU748x06HDvykTguVwRuIKDuhWk6A/pR7akRCuMJCWZs8kIjeE6EA2ETKgx99ZH9Kctw== X-Received: by 2002:a5d:6c6a:: with SMTP id r10mr36568328wrz.42.1617732168685; Tue, 06 Apr 2021 11:02:48 -0700 (PDT) Received: from DESKTOPFLHJVQJ ([2001:16b8:a02c:3900:8430:7cc0:7391:dd5b]) by smtp.gmail.com with ESMTPSA id o8sm2545741wrv.49.2021.04.06.11.02.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Apr 2021 11:02:48 -0700 (PDT) From: "Mehmet Ersue" To: References: <001c01d52db9$3cb0d840$b61288c0$@gmail.com> <00b301d5396f$26a6db00$73f49100$@gmail.com> <00a101d67345$57e54830$07afd890$@gmail.com> <010601d67a18$f2c181a0$d84484e0$@gmail.com> <006001d68382$0967c0f0$1c3742d0$@gmail.com> <006201d6bd02$c8791110$596b3330$@gmail.com> <006b01d71a57$5bba6c60$132f4520$@gmail.com> In-Reply-To: <006b01d71a57$5bba6c60$132f4520$@gmail.com> Date: Tue, 6 Apr 2021 20:02:47 +0200 Message-ID: <014b01d72b0f$0d6add10$28409730$@gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_014C_01D72B1F.D0F3AD10" X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQGsxiIwf8RMjwPhH2YyOesojpiw5AIttdiBAVpipLcBs2N5IAFat5xhAZdBWdkB9K2zDKqrdd6A Content-Language: de Archived-At: Subject: [yang-doctors] Summary of Assignments for YANG Doctor Reviews X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2021 18:02:55 -0000 This is a multipart message in MIME format. ------=_NextPart_000_014C_01D72B1F.D0F3AD10 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Dear YANG Doctors, =20 below is the list of currently running YANG module reviews. Unfortunately we have quite a few reviews which are a bit late. Please give it a chance to provide the WGs the guidance they need. =20 Last calls: Reviewer Due Draft J=FCrgen Sch=F6nw=E4lder 2021-03-31 draft-ietf-rtgwg-qos-model-03=20 Mahesh Jethanandani 2021-04-02 draft-ietf-rats-yang-tpm-charra-06 = (-03 early reviewed) Ladislav Lhotka 2021-04-16 = draft-ietf-netconf-http-client-server-06=20 Ladislav Lhotka 2021-04-16 = draft-ietf-netconf-tcp-client-server-09=20 Martin Bj=F6rklund 2021-04-17 draft-ietf-rtgwg-yang-rib-extend-06 = =20 Early review requests: =20 Reviewer Due Draft Carl Moberg 2021-03-08 = draft-ietf-lpwan-schc-yang-data-model-04=20 Reshad Rahman 2021-04-05 draft-ietf-mboned-cbacc-02=20 Reshad Rahman 2021-04-05 draft-ietf-mboned-dorms-01 Acee Lindem 2021-05-28 draft-ietf-dhc-dhcpv6-yang-19=20 =20 Many Thanks in advance for your efforts. =20 Cheers, Mehmet =20 ------=_NextPart_000_014C_01D72B1F.D0F3AD10 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Dear = YANG Doctors,

 

below is the list of currently running YANG module = reviews.

Unfortunately we have quite a few reviews which are = a bit late.

Please give it a chance to provide the WGs the = guidance they need.

 

Last calls:

Reviewer       &nb= sp;       Due     =     Draft

J=FCrgen Sch=F6nw=E4lder=A0=A0=A0=A0 2021-03-31=A0 = draft-ietf-rtgwg-qos-model-03

Mahesh Jethanandani=A0=A0=A0 2021-04-02=A0 = draft-ietf-rats-yang-tpm-charra-06 (-03 early = reviewed)

Ladislav = Lhotka=A0=A0=A0=A0=A0=A0=A0 2021-04-16=A0 = draft-ietf-netconf-http-client-server-06

Ladislav = Lhotka=A0=A0=A0=A0=A0=A0=A0 2021-04-16=A0 = draft-ietf-netconf-tcp-client-server-09

Martin = Bj=F6rklund=A0=A0=A0=A0=A0=A0 2021-04-17=A0 = draft-ietf-rtgwg-yang-rib-extend-06

 

Early review = requests:

 

Reviewer=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = Due=A0=A0=A0=A0=A0=A0=A0 Draft

Carl = Moberg=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 2021-03-08 = draft-ietf-lpwan-schc-yang-data-model-04 =

Reshad Rahman=A0=A0=A0=A0=A0=A0=A0=A0=A0 2021-04-05 = draft-ietf-mboned-cbacc-02

Reshad Rahman=A0=A0=A0=A0=A0=A0=A0=A0=A0 2021-04-05 = draft-ietf-mboned-dorms-01

Acee = Lindem=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 2021-05-28 = draft-ietf-dhc-dhcpv6-yang-19

 

Many = Thanks in advance for your efforts.

 

Cheers,

Mehmet

 

------=_NextPart_000_014C_01D72B1F.D0F3AD10-- From nobody Thu Apr 8 01:39:06 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B9BE3A4071; Thu, 8 Apr 2021 01:39:00 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.102 X-Spam-Level: X-Spam-Status: No, score=-2.102 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-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=ericsson.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 nRAfYNi6SHq3; Thu, 8 Apr 2021 01:38:55 -0700 (PDT) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20073.outbound.protection.outlook.com [40.107.2.73]) (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 6F1FC3A406F; Thu, 8 Apr 2021 01:38:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hTEwLBwzRi0Xddwke2oO7A0IkyPmI3L4e882Gs8vQ0zCz7Ryp5vXKLXNEt1CyxjUxcQO78L84+IEh/gjc8Ev1WAe4RLzdduMX0Xp/xp6tywsmoc3dCmraKfjJrMq5iku3TRSsRLGM9jfnz6Gsw+A2ZzxMGrcIoQy3vV6ety+nz68OUO7/ow7rbMscHkLUxIs/okGg1KK+DdYVY/jgm/t2fjgvg+2rqozpEBqZAzpHlmTMWltobiOZqCUuuCzJeMnIXUbI5h5MnS1oFH8tWtghHyCIZmnoxME5Q/Lcu4HayMRfxtzNSSh6IxZra6nHrIIUJso9NrZsIGZHVkV4CECLg== 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=cyUStPG1JKfLT7wwDGvpe5p+zBTdl6SzMHY85NeM/Vo=; b=SX3hm4KRwp9+aQMDMnOO1xyYnBx03rL6h7NxnfSvfp2dasMrSRgv0+6+KaeWofAcvqlz91DGE3P9Nv+zR9ugRrtqt+ONw39xfOP9Ol6vXb1hZxj1dBA6xbY4nyBlItB6dBHF/kLjpCZYGDCJFoh/8MPjp/5yN+MRwZPrc8IJObAQw/8WLt7a9UpO6TeDkPn3ebViYN3ZS9kiuRlvHnFM4kkBHM5/JTgrn9Du9Lyk+/WPaZrNLsQvXNKXHkm7Fxc4nxQoYJACtBrHSgnE9uv3UrbQeG0lHmoSx/v0Z04w+LyWBE7j3vXkCYmj0LgnbeyPAI7oF+a7Zol9dxbtNRfrHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cyUStPG1JKfLT7wwDGvpe5p+zBTdl6SzMHY85NeM/Vo=; b=qMuGMNnhtE5xlB0DR4iC/Vbf6zunN0Tgbl74KMeswJYxQ52A4Yz8/nvKoz6a/v+B7pOfXK8+sBhqgrCZVetn83lJCB/GcVo8lwPc1NslXtccoQgB+IPLEwsxYV752mK930ihGdwZH8RFSo9o1xwEFDUFAJQXALWhWFii6lx6emM= Received: from DB6PR0701MB2167.eurprd07.prod.outlook.com (2603:10a6:4:50::22) by DB7PR07MB5548.eurprd07.prod.outlook.com (2603:10a6:10:76::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.15; Thu, 8 Apr 2021 08:38:52 +0000 Received: from DB6PR0701MB2167.eurprd07.prod.outlook.com ([fe80::60ce:1206:3b99:540f]) by DB6PR0701MB2167.eurprd07.prod.outlook.com ([fe80::60ce:1206:3b99:540f%12]) with mapi id 15.20.4020.016; Thu, 8 Apr 2021 08:38:52 +0000 From: Hongji Zhao To: Jan Lindblad , "yang-doctors@ietf.org" CC: "draft-ietf-pim-igmp-mld-proxy-yang.all@ietf.org" , "pim@ietf.org" Thread-Topic: Yangdoctors early review of draft-ietf-pim-igmp-mld-proxy-yang-03 Thread-Index: AQHXH93mnMmRyA6T+0KEP7kFPokK16qqYsxA Date: Thu, 8 Apr 2021 08:38:52 +0000 Message-ID: References: <161650157841.14703.6401789949073298466@ietfa.amsl.com> In-Reply-To: <161650157841.14703.6401789949073298466@ietfa.amsl.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: tail-f.com; dkim=none (message not signed) header.d=none;tail-f.com; dmarc=none action=none header.from=ericsson.com; x-originating-ip: [119.28.15.239] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3cbd9b68-f5bf-44ce-9f4b-08d8fa69bd38 x-ms-traffictypediagnostic: DB7PR07MB5548: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qwVSgC4dmQkMBBcZo6Qswf2SwGSP0iANlTOHWIXQOBXHkVvX5vxzkvo7jrwSMtNQ3p7G/xNVtnVhOjBvj00NCszJ7FOpjKwIUU3SjmtPN2BTRiKNQoi9PfQqw/ogPvHhgLU8xWWW0rKTVLIkWB4pGR3VwX6YllX/hKcEz19a35TcIeI9XcJjPwnOc/px9ilMeZUcOEVXgjS/poJLAci5namTXTmS7h2Uj2+WlS6KqGEmcRhPJ+KfQmsLJJRl5qbH5Cr2czkaz72C8O/WebYeDko3amFFnqeYnaTiKR1Wp/xq5Z2NStdcQVVh0vD2UjkAe+VcgE/bfSUBGNPaAz6Wef28soaaMwl9AmeLgU9Xl/sndFv/xXscWYK7C+HT46bxRzEf97mPBh20IPFRP+ll8nzJqRPlQs4bxHt6q5esjMgzJTOfIFDel0IIsfYQ2bjAYXfPSN9K8ypN6FOTGbMAgmE4rJvzD3pCo9mTckWkEi5iDxB5w/5lyksvvYa2i5P+/k8qmCuoozohu4rmIovczwx+BE/5sw+FXa/eUbbzZ8GCTWugUl4xKQHWb08W7XBw3HOyTUho0vXyd3XK56Zc61saR/gLBkecYm43/g7rE11nFtg+ujTkmpbwSH58v1wbpZ8W19roCQScRwCcXrzvbf1oFLDzL8wopEipgmMB2n8= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0701MB2167.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(366004)(136003)(396003)(39860400002)(33656002)(52536014)(66556008)(71200400001)(478600001)(5660300002)(54906003)(66946007)(76116006)(6506007)(110136005)(316002)(66476007)(26005)(186003)(44832011)(53546011)(7696005)(8676002)(9686003)(8936002)(4326008)(38100700001)(86362001)(83380400001)(66446008)(64756008)(2906002)(55016002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?c1A4K0FXSFFYQnUwT3dGajArM3NCVzFZUXV6K2FMWlFaMEdYRHJZb1NqWEg0?= =?utf-8?B?aGF2YmpZMXJEMWREUjRGN0Z6YkRuVWlUUWRpODdEWG1ydmwwL1doTFVYYUVB?= =?utf-8?B?QkgydTV0Y1FSMDNCVkovcDRDT3lISWwxMUFpd0hnUDVFUDloc3MzNlN3bTg0?= =?utf-8?B?WVVKZUVCV2FoL000dDNURmNsU2RkUi92b0UySGVCVjVHKzBqL2s5L2JJZ1BU?= =?utf-8?B?MU96M1NRb2t1SU1XWFIxZDRIM1lMY24vN05XTnEvckl2MlFqU3FxRkVKYUZF?= =?utf-8?B?RVlNMWl1UjVMM2RqaTVWQmVZMHcwendmaXFHQlFnbkNRYkVCSkNLalVlTHFh?= =?utf-8?B?TXBEV0d2TVlMTmZOZWNIcUN1SU9panUycmQ1d1R2VXRmQ3lWWjNlRW9kN01m?= =?utf-8?B?c2pRMlB2VVFFVnh4T0NneEVVKzEvaHpkVHZHcVZnNVkrM0UyM29PR1lGRG9K?= =?utf-8?B?WjJibldzelQ1MnR0RFFobkFKQ0U5RnE1d1BqeUYvNkc5WTRqOXhsajV6ZXJk?= =?utf-8?B?WFhVei96ZjBsYWhmb0VlNEVLeFlQNGFyNnRIU2E2d1pOekZ1bkxzOG5NbWMr?= =?utf-8?B?anlBZ3RzNTBKeFd5Q3FBZkt3ZGIwdUVQNnF2bUI5WFJWWk1rSk9Fdlk2Qnps?= =?utf-8?B?dVN0Um44QkxzRTZVL3RmbExiT3BCWkhwL1VQcEYxcHJYblVnZzN1VmhsVGhp?= =?utf-8?B?U01Ob3huNEl5Tzc3dzJGem9PRzIrcGdSOE51NzJKTVVvNUJjM21kckhGRERq?= =?utf-8?B?dDVQME1xZXZsYXNaVGFiRUQ0ZGJGTElKTEZvL0EzV1ZhNDlFanFFWGpKWDg0?= =?utf-8?B?UHV1Y01BT3RObjVqM2tRdFBkZTR1S0F4WmZoa215VXo3WmdZZ3VDWTQ5N3FQ?= =?utf-8?B?MlU0WnVvNTJaMmNmMGpVNHhJSUVwOXJST0hwQVZXUGJYUE80MkgyZFZkN0Y4?= =?utf-8?B?ZUlFY1VwYk1uamdJL1h6OHBFZGJISlNsbG5sTVlQZEdOQVR5ejlEQnBTdm8w?= =?utf-8?B?SENONTMrN0FzSHJ4QmVoM2NLaVhJRWxCSWJQMk5ybGZFY0dJcXNNSUkyWmVY?= =?utf-8?B?RzhsWkhER3FrdnpJaTNmbGR0RHVtRXhnUTRpRC9kWGRGNEJEczVnODFnT1FN?= =?utf-8?B?dGY4OG5ONm1uaW5ENkJkV0tJM2JXaktDWnM4NXlkSGlsVDFnTzNRL2VuOTZB?= =?utf-8?B?TjJudGREbWF4NlVsS3RQdVVZNExPWVhIaHpER0RNV1RGNHFrMTdocWxrUGRK?= =?utf-8?B?MmRBV2VVeEtmRzJHUW1hKzJmaER1NkppQ08yMElHUjdCT1RJTHF0UTdJc2FN?= =?utf-8?B?Y1h0eVg4RnZqTFFjeWg1Qzc3TzNXS3FyQURlczdiMnpKa2VSMXBBYTZLME9W?= =?utf-8?B?TGw4RGFtQlJacFRvbEV3V1g4N0dPaFJBaGRJM25hSFJhSzh3dU1vZitPd2dv?= =?utf-8?B?NDdZbkd6ZTZCbXFqOXZaUWVsNUFSUmlOeE14Qy9WV0lFN1ZKeWo3dXBOTWtw?= =?utf-8?B?cThIdlpaSUZWeWdOUkc1WEt0Vzljb1NsRFZaUktJVEZkY3lMVUl5b25uam1U?= =?utf-8?B?NVM2bTA1bkg0V2trNy9VR21HY3IvOGtOVGZYRnlxZEdWVWh0dW4yM2VSeElI?= =?utf-8?B?OUhPdlRaNkhjVnJ0Um50QS9UaGlTL0VGblprWHJ0aExYL29hVVRXTlVDc2xQ?= =?utf-8?B?Y1ZtS2hKL3JrOWtZTFZ4Y0l1YUtRb2tTWmNOZWFkcW9wZExCYitFYm5lRW9s?= =?utf-8?Q?ag7eG86s5uXQ/3/ytYbTs/49tQPPCLTwDUEBgMN?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB6PR0701MB2167.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3cbd9b68-f5bf-44ce-9f4b-08d8fa69bd38 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2021 08:38:52.4740 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ymbWZkihFepxkIuXwxfDFj4ekAFS/rzvcymixtZJJaMBdaWoSdH8LXlUSvHdwwotZNmBO6f9dlv960eBqtb6lUdbzBMsJiW9GNxrY8dloZw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR07MB5548 Archived-At: Subject: Re: [yang-doctors] Yangdoctors early review of draft-ietf-pim-igmp-mld-proxy-yang-03 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2021 08:39:01 -0000 SGkgSmFuLA0KDQpQbGVhc2UgY2hlY2sgaW4gbGluZS4gIFRoYW5rcyBhIGxvdCEgDQoNCkJSL0hv bmdqaQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogSmFuIExpbmRibGFkIHZp YSBEYXRhdHJhY2tlciA8bm9yZXBseUBpZXRmLm9yZz4gDQpTZW50OiBUdWVzZGF5LCBNYXJjaCAy MywgMjAyMSA4OjEzIFBNDQpUbzogeWFuZy1kb2N0b3JzQGlldGYub3JnDQpDYzogZHJhZnQtaWV0 Zi1waW0taWdtcC1tbGQtcHJveHkteWFuZy5hbGxAaWV0Zi5vcmc7IHBpbUBpZXRmLm9yZw0KU3Vi amVjdDogWWFuZ2RvY3RvcnMgZWFybHkgcmV2aWV3IG9mIGRyYWZ0LWlldGYtcGltLWlnbXAtbWxk LXByb3h5LXlhbmctMDMNCg0KUmV2aWV3ZXI6IEphbiBMaW5kYmxhZA0KUmV2aWV3IHJlc3VsdDog UmVhZHkgd2l0aCBOaXRzDQoNClRoaXMgaXMgdGhlIFlEIGVhcmx5IHJldmlldyBvZiBkcmFmdC1p ZXRmLXBpbS1pZ21wLW1sZC1wcm94eS15YW5nLTAzIGFzIHJlcXVlc3RlZCBieSB0aGUgUElNIFdH Lg0KDQpJIGZpbmQgdGhlIHByb3h5IG1vZHVsZSB0byBiZSBzaG9ydCBhbmQgY2xlYW4uIEEgZmV3 IG1pbm9yIGFkanVzdG1lbnRzIGFyZSByZXF1aXJlZCBhbmQgYSBjb3VwbGUgbW9yZSBJIHdvdWxk IHJlY29tbWVuZCwgc28gSSB3aWxsIGRlY2xhcmUgdGhpcyBtb2R1bGUgYXMgInJlYWR5IHdpdGgg bml0cyIuDQoNCjEpIFRoZSBmaXJzdCBzZW50ZW5jZSBpbiBzZWN0aW9uICIxLiBJbnRyb2R1Y3Rp b24iIHN0YXRlcyB0aGF0ICJUaGlzIGRvY3VtZW50IGRlZmluZXMgYSBZQU5HIFtSRkM2MDIwXSBk YXRhIG1vZGVsIC4uLiIgVGhpcyByZWZlcmVuY2Ugc2hvdWxkIGJlIHVwZGF0ZWQgdG8gUkZDIDc5 NTAgc2luY2UgdGhlIG1vZHVsZSBpcyBkZWNsYXJlZCB0byBiZSBhIFlBTkcgMS4xIG1vZHVsZSwg YW5kIFlBTkcgMS4xIGlzIGRlZmluZWQgYnkgdGhlIGxhdHRlciBSRkMuDQpbQXV0aG9yc10gYWNj ZXB0ZWQgYW5kIHVwZGF0ZWQgaW4gZHJhZnQtaWV0Zi1waW0taWdtcC1tbGQtcHJveHkteWFuZy0w NA0KDQoyKSBUaGUgcHJveHkgbW9kdWxlIGltcG9ydHMgcGltLWJhc2UuIFRoZSBwaW0tYmFzZSBZ QU5HIG1vZHVsZSBpcyBleHRlbmRpbmcgaWV0Zi1yb3V0aW5nIGluIGEgd2F5IHRoYXQgaW4gbXkg anVkZ2VtZW50IGlzIG5vdCBleGFjdGx5IGZvbGxvd2luZyB0aGUgZGlyZWN0aXZlcyBmb3IgZXh0 ZW5zaW9ucyBzdGF0ZWQgaW4gaWV0Zi1yb3V0aW5nICh0aGlzIGhhcyBiZWVuIG1lbnRpb25lZCBp biBwcmV2aW91cyByZXZpZXdzKS4gVGhlIHBpbS1iYXNlIG1vZHVsZSBpcyBvdXQgb2Ygc2NvcGUg Zm9yIHRoZSBjdXJyZW50IHJldmlldywgYnV0IEkgbWVudGlvbiB0aGlzIGhlcmUgc2luY2UgdGhl IHByb3h5IG1vZHVsZSB1bmRlciByZXZpZXcgd2lsbCBjZW1lbnQgdGhlIGN1cnJlbnQgd2F5IHBp bS1iYXNlIGV4dGVuZHMgaWV0Zi1yb3V0aW5nLCBhcyBpdCBjb250YWlucyBtdXN0IGV4cHJlc3Np b25zIHdpdGggdGhlIHBhdGggdG8gdGhlIHBpbSBjb25maWd1cmF0aW9ucy4NCltBdXRob3JzXSBD dXJyZW50bHkgdGhlIHBpbS1iYXNlIG1vZHVsZSBoYXMgYmVlbiBhcHByb3ZlZC4gSWYgaXQgaXMg bW9kaWZpZWQgbGF0ZXIsIGlnbXAgcHJveHkgbW9kZWwgY291bGQgYmUgcmV2aXNlZCBhY2NvcmRp bmdseS4NCg0KMykgVGhlIG11c3QgZXhwcmVzc2lvbnMgb24gbGluZSAxOTIgYW5kIDI5NCBhcmUg cmVmZXJyaW5nIHRvIHRoZSBwaW0tYmFzZSBtb2R1bGUgdXNlIHRoZSB3cm9uZyBsZWFmIG5hbWUg Zm9yIHRoZSBpbnRlcmZhY2UgbmFtZS4gQXQgbGVhc3QgaW4gdGhlIHZlcnNpb24gb2YgaWV0Zi1w aW0tYmFzZUAyMDE3LTAzLTA5LnlhbmcgdGhhdCBJIGhhdmUsIHdoaWNoIHNlZW1zIHRvIGJlIHRo ZSBsYXRlc3QgdmVyc2lvbiBwb3N0ZWQgb24gdGhlIElFVEYgWUFORyBnaXRodWIgcmVwby4gV2l0 aCB0aGlzIHZlcnNpb24sICJwaW0tYmFzZTpuYW1lIg0KbmVlZHMgdG8gYmUgY2hhbmdlZCB0byAi cGltLWJhc2U6aW50ZXJmYWNlIiB0byBtYXRjaCB0aGUgcGltLWJhc2UgbW9kdWxlIChvciBwaW0t YmFzZSBjb3VsZCBiZSBjaGFuZ2VkKS4NCg0KaWV0Zi1pZ21wLW1sZC1wcm94eS55YW5nOg0KLi4u DQogICAgICAgICAgbGVhZiBpbnRlcmZhY2UtbmFtZSB7DQogICAgICAgICAgICB0eXBlIGlmOmlu dGVyZmFjZS1yZWY7DQogICAgICAgICAgICBtdXN0ICJub3QoIGN1cnJlbnQoKSA9IC9ydDpyb3V0 aW5nIisNCiAgICAgICAgICAgIi9ydDpjb250cm9sLXBsYW5lLXByb3RvY29scy9waW0tYmFzZTpw aW0iKw0KICAgICAgICAgICAiL3BpbS1iYXNlOmludGVyZmFjZXMvcGltLWJhc2U6aW50ZXJmYWNl IisNCiAgICAgICAgICAgIi9waW0tYmFzZTpuYW1lICkiIHsNCg0KaWV0Zi1waW0tYmFzZS55YW5n Og0KLi4uDQogIHJldmlzaW9uIDIwMTctMDMtMDkgew0KLi4uDQogICAgICAgIGxpc3QgaW50ZXJm YWNlIHsNCiAgICAgICAgICBrZXkgImludGVyZmFjZSI7DQogICAgICAgICAgZGVzY3JpcHRpb24N CiAgICAgICAgICAgICJMaXN0IG9mIHBpbSBpbnRlcmZhY2VzLiI7DQogICAgICAgICAgbGVhZiBp bnRlcmZhY2Ugew0KW0F1dGhvcnNdIEkgdXNlIHJldmlzaW9uIDIwMTgtMDQtMTYgZm9yIGlldGYt cGltLWJhc2UueWFuZywgaXQgaXMgdGhlIGxhdGVzdCB2ZXJzaW9uIG5vdy4NCg0KNCkgVGhlIG1v ZHVsZSBjb250YWlucyBhIGxpc3Qgb2YgbXVsdGljYXN0IHNvdXJjZSBhZGRyZXNzZXMuIFRoZSBs ZWFmIGZpbHRlci1tb2RlIGRlY2lkZXMgd2hldGhlciB0aGUgYWRkcmVzc2VzIGxpc3RlZCBzaG91 bGQgYmUgcmVhZCBhcyBhbGxvd2VkDQooaW5jbHVkZSkgb3IgZGlzYWxsb3dlZCAoZXhjbHVkZSku IFNpbmNlIHRoZSBpbnRlcnByZXRhdGlvbiBjaGFuZ2VzIHF1aXRlIGRyYW1hdGljYWxseSB3aXRo IHRoZSB2YWx1ZSBvZiBmaWx0ZXItbW9kZSwgSSB3b3VsZCBhcmd1ZSB0aGF0IGZpbHRlci1tb2Rl IHNob3VsZCBlaXRoZXIgYmUgbWFuZGF0b3J5IG9yIGhhdmUgYSBkZWZhdWx0LiBDdXJyZW50bHkg YSBjb25mb3JtaW5nIGltcGxlbWVudGF0aW9uIGNvdWxkIGxlYXZlIGZpbHRlci1tb2RlIG91dCwg bWFraW5nIGl0IGhhcmQgdG8gY29ycmVjdGx5IGludGVycHJldCB0aGUgcmVzcG9uc2UgKHdpdGgg cG9zc2libGUgc2VjdXJpdHkgaW1wbGljYXRpb25zPykuDQoNCkFuIGV2ZW4gY2xlYXJlciBhcHBy b2FjaCBtaWdodCBiZSB0byBoYXZlIHR3byBzZXBhcmF0ZSBzb3VyY2UgYWRkcmVzcyBsaXN0cywg b25lIGZvciBpbmNsdWRlZCBhZGRyZXNzZXMsIG9uZSBmb3IgZXhjbHVkZWQuIElmIGZvciBzb21l IHJlYXNvbiBib3RoIG11c3Qgbm90IGJlIHVzZWQgc2ltdWx0YW5lb3VzbHksIHRoZXkgY291bGQg YmUgcGxhY2VkIGluIGEgWUFORyBjaG9pY2UuDQoNCltBdXRob3JzXSBJIGhhdmUgc2V0IGZpbHRl ci1tb2RlIGFzIG1hbmRhdG9yeS4gDQoNCjUpIFdoaWxlIG1hbnkgSUVURiBZQU5HIG1vZHVsZXMg aGF2ZSB2ZXJ5IHNob3J0IHByZWZpeGVzIChzdWNoIGFzIGlmLCBydCwgaW5ldCwNCnlhbmcpIEkg dGhpbmsgcmVhZGFiaWxpdHkgaW5jcmVhc2VzIGFuZCBvcHBvcnR1bml0eSBmb3IgY29uZnVzaW9u IGJ5IHByZWZpeCBjb2xsaXNpb24gZGVjcmVhc2VzIGlmIGEgbG9uZ2VyIHByZWZpeGVzIHdlcmUg Y2hvc2VuLiBJIHdvdWxkIHN1Z2dlc3QgdXNpbmcgcHJlZml4IGlnbXAtbWxkIGZvciBleGFtcGxl LCByYXRoZXIgdGhhbiB0aGUgY3VycmVudCBtbmVtb25pYyBwcmVmaXggaW1wLg0KW0F1dGhvcnNd IGFjY2VwdGVkIGFuZCB1cGRhdGVkIGluIGRyYWZ0LWlldGYtcGltLWlnbXAtbWxkLXByb3h5LXlh bmctMDQNCg0KNikgVGhlIGluZGVudGF0aW9uIGlzIG1vc3RseSBnb29kLCBidXQgaXMgb2ZmIGlu IGEgZmV3IHBsYWNlcy4gSW4gcGFydGljdWxhciwgSSBub3RpY2VkIGxpbmVzIDE5My0xOTcsIDI5 NS0yOTksIDMxNi4NCltBdXRob3JzXSBhY2NlcHRlZCBhbmQgdXBkYXRlZCBpbiBkcmFmdC1pZXRm LXBpbS1pZ21wLW1sZC1wcm94eS15YW5nLTA0DQoNCi9KYW4NCg0KDQo= From nobody Thu Apr 8 05:39:05 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F082A3A15B3; Thu, 8 Apr 2021 05:39:00 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.898 X-Spam-Level: X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=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 I6V-eKVb9UbF; Thu, 8 Apr 2021 05:38:56 -0700 (PDT) Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 7A0143A15AA; Thu, 8 Apr 2021 05:38:56 -0700 (PDT) Received: from [192.168.1.155] (213-67-237-150-no99.tbcn.telia.com [213.67.237.150]) by mail.tail-f.com (Postfix) with ESMTPSA id 470111AE034E; Thu, 8 Apr 2021 14:38:49 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) From: Jan Lindblad In-Reply-To: Date: Thu, 8 Apr 2021 14:38:47 +0200 Cc: "yang-doctors@ietf.org" , "draft-ietf-pim-igmp-mld-proxy-yang.all@ietf.org" , "pim@ietf.org" Content-Transfer-Encoding: quoted-printable Message-Id: <1C6422C0-EB2F-4E48-8B82-29B2B7D72E88@tail-f.com> References: <161650157841.14703.6401789949073298466@ietfa.amsl.com> To: Hongji Zhao X-Mailer: Apple Mail (2.3608.120.23.2.4) Archived-At: Subject: Re: [yang-doctors] Yangdoctors early review of draft-ietf-pim-igmp-mld-proxy-yang-03 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2021 12:39:01 -0000 Dear Hongji, I looked at your comments. They look good. I can add that on issue #3, I = agree that what you do is fine when you use the 2018-04-16 version of = ietf-pim-base.yang. Best Regards, /jan > Hi Jan, >=20 > Please check in line. Thanks a lot!=20 >=20 > BR/Hongji >=20 > -----Original Message----- > From: Jan Lindblad via Datatracker =20 > Sent: Tuesday, March 23, 2021 8:13 PM > To: yang-doctors@ietf.org > Cc: draft-ietf-pim-igmp-mld-proxy-yang.all@ietf.org; pim@ietf.org > Subject: Yangdoctors early review of = draft-ietf-pim-igmp-mld-proxy-yang-03 >=20 > Reviewer: Jan Lindblad > Review result: Ready with Nits >=20 > This is the YD early review of draft-ietf-pim-igmp-mld-proxy-yang-03 = as requested by the PIM WG. >=20 > I find the proxy module to be short and clean. A few minor adjustments = are required and a couple more I would recommend, so I will declare this = module as "ready with nits". >=20 > 1) The first sentence in section "1. Introduction" states that "This = document defines a YANG [RFC6020] data model ..." This reference should = be updated to RFC 7950 since the module is declared to be a YANG 1.1 = module, and YANG 1.1 is defined by the latter RFC. > [Authors] accepted and updated in = draft-ietf-pim-igmp-mld-proxy-yang-04 >=20 > 2) The proxy module imports pim-base. The pim-base YANG module is = extending ietf-routing in a way that in my judgement is not exactly = following the directives for extensions stated in ietf-routing (this has = been mentioned in previous reviews). The pim-base module is out of scope = for the current review, but I mention this here since the proxy module = under review will cement the current way pim-base extends ietf-routing, = as it contains must expressions with the path to the pim configurations. > [Authors] Currently the pim-base module has been approved. If it is = modified later, igmp proxy model could be revised accordingly. >=20 > 3) The must expressions on line 192 and 294 are referring to the = pim-base module use the wrong leaf name for the interface name. At least = in the version of ietf-pim-base@2017-03-09.yang that I have, which seems = to be the latest version posted on the IETF YANG github repo. With this = version, "pim-base:name" > needs to be changed to "pim-base:interface" to match the pim-base = module (or pim-base could be changed). >=20 > ietf-igmp-mld-proxy.yang: > ... > leaf interface-name { > type if:interface-ref; > must "not( current() =3D /rt:routing"+ > "/rt:control-plane-protocols/pim-base:pim"+ > "/pim-base:interfaces/pim-base:interface"+ > "/pim-base:name )" { >=20 > ietf-pim-base.yang: > ... > revision 2017-03-09 { > ... > list interface { > key "interface"; > description > "List of pim interfaces."; > leaf interface { > [Authors] I use revision 2018-04-16 for ietf-pim-base.yang, it is the = latest version now. >=20 > 4) The module contains a list of multicast source addresses. The leaf = filter-mode decides whether the addresses listed should be read as = allowed > (include) or disallowed (exclude). Since the interpretation changes = quite dramatically with the value of filter-mode, I would argue that = filter-mode should either be mandatory or have a default. Currently a = conforming implementation could leave filter-mode out, making it hard to = correctly interpret the response (with possible security implications?). >=20 > An even clearer approach might be to have two separate source address = lists, one for included addresses, one for excluded. If for some reason = both must not be used simultaneously, they could be placed in a YANG = choice. >=20 > [Authors] I have set filter-mode as mandatory.=20 >=20 > 5) While many IETF YANG modules have very short prefixes (such as if, = rt, inet, > yang) I think readability increases and opportunity for confusion by = prefix collision decreases if a longer prefixes were chosen. I would = suggest using prefix igmp-mld for example, rather than the current = mnemonic prefix imp. > [Authors] accepted and updated in = draft-ietf-pim-igmp-mld-proxy-yang-04 >=20 > 6) The indentation is mostly good, but is off in a few places. In = particular, I noticed lines 193-197, 295-299, 316. > [Authors] accepted and updated in = draft-ietf-pim-igmp-mld-proxy-yang-04 >=20 > /Jan >=20 >=20 From nobody Thu Apr 8 10:08:19 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6AFA23A128B for ; Thu, 8 Apr 2021 10:08:12 -0700 (PDT) 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=unavailable 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 xL6be6cbwZ_q for ; Thu, 8 Apr 2021 10:08:10 -0700 (PDT) Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) (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 1114B3A1289 for ; Thu, 8 Apr 2021 10:08:09 -0700 (PDT) Received: by mail-lf1-x12c.google.com with SMTP id r8so5183643lfp.10 for ; Thu, 08 Apr 2021 10:08:09 -0700 (PDT) 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=DerqE2Q/+FV9A403la+GfFfuZL/PyzluaXWsFst5ubM=; b=FJef0B2ybNVw2lTCbJVlrswXEjSyAeOOTP0THSk3Ll/yMnUTdjfvCdOM6weD/LaCcl mqk52TZr+R3rjHbzj2FhcKlDH746ca7x/9txeFvcGHYM7pI3AcmqTaGCWNJXoOuq0q/e PxBuJIrvjwyH3ceF0XZLn3cBQnaFxYlfzZ7y5hnrp/8EZ1Fx9s7EszRpbp0vW3TgBAaX lkjVA6CvKe0nnXBfbP0NHtHl6SpgtUWniX0uo98KeectU63E0t0GvjU4RKaqqy/BSbFn iDWEdTWRV8OnP5v2/vF2WeOl2xfwXoKfdLhqX9g3YWrGLb0eI8MGKEAIsf8MYX9h83gu O0HQ== 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=DerqE2Q/+FV9A403la+GfFfuZL/PyzluaXWsFst5ubM=; b=pj4ZcvY5kllkd+gY/UQNdBDQpFIeqnxicnpxiFfbHuJ9wEheMMvN8xqFN5e2rGd/uF d2TGyk9nCNw4SMhDL33IVguiLV2+aeXMHBCEd6Ie5t0iDlakrTdouFWXk9u0w9wPJQVV nWhzeEL1zgHvxwixn+FgvUoi6m40kYqOdD3Oi/vocuBot/ZDN5RZKn7CQ2vRpXoSwucz F3hw18KLQk7d3vvW5Eppj2uXUlnG1T5/gZBCTBxmvLo8mDv5iDZxW/9J9YhJCCfo5R7A sxcoiGTCiOGERYeQ/smshLmblpnfkqVy7AiiHhF2Zfrwce2tdieaeziixZUYfKXj05d4 nuqA== X-Gm-Message-State: AOAM532TOlA/8b3lceiM8AYBxXPeKNWeRVM1h8ceTNkTE6RAAWZ5Yka8 PfHp6ZU4aAN2D9sPDr6PHOCRgZwPjL83lPsoMdzA4A== X-Google-Smtp-Source: ABdhPJyvgMx9nqH6u3stMZIl9s4J6zVmgrzHWo2JK7s/apqOCcT8ECfuhlAywVL11XQZwzQS9fiIo1pUe3WBE/PSnks= X-Received: by 2002:a19:6518:: with SMTP id z24mr7184368lfb.512.1617901686526; Thu, 08 Apr 2021 10:08:06 -0700 (PDT) MIME-Version: 1.0 References: <161652444666.30886.1452719047245335791@ietfa.amsl.com> In-Reply-To: From: Andy Bierman Date: Thu, 8 Apr 2021 10:07:55 -0700 Message-ID: To: "Mr. Jaehoon Paul Jeong" Cc: Linda Dunbar , Yoav Nir , YANG Doctors , "i2nsf@ietf.org" , draft-ietf-i2nsf-nsf-monitoring-data-model.all@ietf.org, Last Call , skku-iotlab-members Content-Type: multipart/alternative; boundary="0000000000004ead4105bf7917f9" Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-i2nsf-nsf-monitoring-data-model-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2021 17:08:13 -0000 --0000000000004ead4105bf7917f9 Content-Type: text/plain; charset="UTF-8" Hi, I reviewed your note, the diffs and the YANG module. I think draft-07 is ready (no issues or nits) There are probably some clarifications needed to adapt YANG Push dampening to I2NSF. YP refers to the data nodes changing within the dampening period. In this case, the notes to implementers should be clear about any events sent at the end of the dampening period because events were suppressed (if any). There might be a different procedure for each event or sub-event. Andy On Wed, Mar 31, 2021 at 7:09 PM Mr. Jaehoon Paul Jeong < jaehoon.paul@gmail.com> wrote: > Hi Andy, Linda, and Yoav, > Patrick and I have addressed all the comments from Andy. > Here is the revised draft -07: > https://tools.ietf.org/html/draft-ietf-i2nsf-nsf-monitoring-data-model-07 > > I attach a revision letter to explain how we addressed the comments. > > There are the major updates in this revision as follows: > --- > o This version is revised according to the comments of Andy Bierman > who is a YANG doctor. > > o This version updates its title as "I2NSF NSF Monitoring Interface > YANG Data Model". It clarifies the NSF Monitoring Interface to > deliver NSF monitoring data to an NSF data collector (e.g., > Security Controller and NSF data analyzer). > > o This version adds an attack destination IP address for DDoS-attack > event to provide an NSF data collector with more information about > the > destination of DDoS-attack packets. > > o This version supports a notification for monitoring traffic flows > to detect the source and destination (as a victim) of security attacks > such as DDoS attack. > --- > If you have questions and comments, please let me know. > > Thanks. > > Best Regards, > Paul > > > On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker < > noreply@ietf.org> wrote: > >> Reviewer: Andy Bierman >> Review result: Ready with Issues >> >> >> Status: Ready with Issues >> >> Most of the issues raised in the review of draft-04 have been >> addressed. >> >> Major Issues: >> >> - None >> >> Moderate Issues: >> >> 1) too many YANG features >> >> There are 13 YANG features, one for each of the 13 notification-stmts >> defined. There should be as few YANG features defined as possible. >> They should only be used if it is an unreasonable burden (compared >> to the feature value) for all servers to support the functionality. >> >> 2) list /i2nsf-monitoring-configuration/system-alarm >> >> This is yet another alarm management system created in the IETF. >> I guess the WG decided that RFC 8632 was not suitable. >> >> It is not clear how this system prevents excessive notifications >> sent to a client. >> >> What happens when the CPU, memory, or disk usage crosses back and >> forth over the threshold? Seems like an alarm is generated for each >> upward crossing of the threshold leaf. >> >> The precise behavior for triggering and then re-arming an alarm >> needs to be specified in the YANG module. >> >> RMON Alarms (RFC 2819) defines one way to prevent bursts of >> SNMP notifications, using an alarm reset threshold. >> >> YANG Push (RFC 8641) uses a dampening-period approach to prevent >> flooding the receiver with notifications. >> >> Also, it is not clear what use-case is served by "threshold = 0". >> The range is 0..100 instead of 1..100. >> >> >> Minor Issues: >> >> 3) too many notifications >> >> This module creates a lot of notifications to manage, and they are >> all optional to implement. This increases complexity in both >> the client implementation and operations. >> >> If you really need all 13 notifications then OK, but >> 13 notification events is a lot for one YANG module, >> especially if this set will get even larger over time. >> >> Here is one way to reduce the number of event definitions. >> The example below has 1 event and 13 sub-event types, but it could >> also apply to N event types each with some sub-event types. >> >> This design template adds one more layer in the notification message, >> but it is probably easier for the client and operator to manage. >> The deployment may require filters and access control rules that become >> more complex for a large number of notifications. >> >> >> notification i2nsf-event { >> description >> "Wrapper for all I2NSF events"; >> >> choice sub-event-type { >> description >> "This choice must be augmented with cases for each allowed >> sub-event. Only 1 sub-event will be instantiated in each >> i2nsf-event message. Each case is expected to define one >> container with all the sub-event fields."; >> >> // could put sub-events inline >> case i2nsf-system-detection-alarm { >> if-feature "i2nsf-system-detection-alarm"; >> container i2nsf-system-detection-alarm { >> // contents of i2nsf-system-detection-alarm data >> } >> } >> >> } >> } >> >> >> // could add sub-events via augments at any time >> augment "/i2nsf-event/sub-event-type" { >> case i2nsf-system-detection-event { >> if-feature "i2nsf-system-detection-event"; >> container i2nsf-system-detection-event { >> // contents of i2nsf-system-detection-event data >> } >> } >> } >> >> >> Nits: >> >> 4) underscore vs. hyphen >> >> There are many field names in sec. 7 that are incorrect >> because they use an underscore instead of a hyphen char >> (e.g. req_cookies but leaf name is req-cookies) >> >> 5) verbose SNMP-style names >> >> The term -configuration in the object names is unusual. >> Repeating the parent name (like SMIv2) is not usually done in YANG. >> (e.g., i2nsf-system-detection-event-configuration) >> >> 6) identifiers should use well-known abbreviations or spell >> out the word if not too long. E.g "ave" -> "average" >> >> 7) Is there a reason some identities are ALL-CAPS and others >> are all-lower-case? This should be explained in the YANG module. >> >> >> >> >> >> >> --0000000000004ead4105bf7917f9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

I reviewed your note, the diffs and= the YANG module.
I think draft-07 is ready (no issues or nits)

There are probably some clarifications needed to ad= apt YANG Push dampening
to I2NSF. YP refers to the data nodes cha= nging within the dampening period.
In this case, the notes to imp= lementers should be clear about any events sent at the end
of the= dampening=C2=A0period because events were suppressed (if any). There might= be a different
procedure for each event or sub-event.
=

Andy


On Wed, Mar 31, 2021= at 7:09 PM Mr. Jaehoon Paul Jeong <jaehoon.paul@gmail.com> wrote:
Hi Andy, Linda, and Yoav,
= Patrick and I have addressed all the comments from Andy.
Here is = the revised draft -07:
<= div>
I attach a revision letter to explain how we addressed t= he comments.

There are the major updates in this r= evision as follows:
---
=C2=A0 =C2=A0o =C2=A0This version is r= evised according to the comments of Andy Bierman
=C2=A0 =C2=A0 =C2=A0 wh= o is a YANG doctor.

=C2=A0 =C2=A0o =C2=A0This version updates its ti= tle as "I2NSF NSF Monitoring Interface
=C2=A0 =C2=A0 =C2=A0 YANG Da= ta Model".=C2=A0 It clarifies the NSF Monitoring Interface to
=C2= =A0 =C2=A0 =C2=A0 deliver NSF monitoring data to an NSF data collector (e.g= .,
=C2=A0 =C2=A0 =C2=A0 Security Controller and NSF data analyzer).
<= br>=C2=A0 =C2=A0o =C2=A0This version adds an attack destination IP address = for DDoS-attack
=C2=A0 =C2=A0 =C2=A0 event to provide=20 an NSF data collector with more information about the
=C2=A0 =C2=A0 =C2=A0 destination of DDo= S-attack packets.

=C2=A0 =C2=A0o =C2=A0This version supports a notif= ication for monitoring traffic flows
=C2=A0 =C2=A0 =C2=A0to detec= t the source and destination (as a victim) of security attacks
= =C2=A0 =C2=A0 =C2=A0such as DDoS attack.
---
If you have q= uestions and comments, please let me know.

Thanks.=

Best Regards,
Paul

=

= On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker <noreply@ietf.org> wrote:=
Reviewer: Andy = Bierman
Review result: Ready with Issues


Status: Ready with Issues

Most of the issues raised in the review of draft-04 have been
addressed.

Major Issues:

=C2=A0- None

Moderate Issues:

1) too many YANG features

There are 13 YANG features, one for each of the 13 notification-stmts
defined.=C2=A0 There should be as few YANG features defined as possible. They should only be used if it is an unreasonable burden (compared
to the feature value) for all servers to support the functionality.

2) list /i2nsf-monitoring-configuration/system-alarm

This is yet another alarm management system created in the IETF.
I guess the WG decided that RFC 8632 was not suitable.

It is not clear how this system prevents excessive notifications
sent to a client.

What happens when the CPU, memory, or disk usage crosses back and
forth over the threshold? Seems like an alarm is generated for each
upward crossing of the threshold leaf.

The precise behavior for triggering and then re-arming an alarm
needs to be specified in the YANG module.

RMON Alarms (RFC 2819) defines one way to prevent bursts of
SNMP notifications, using an alarm reset threshold.

YANG Push (RFC 8641) uses a dampening-period approach to prevent
flooding the receiver with notifications.

Also, it is not clear what use-case is served by "threshold =3D 0"= ;.
The range is 0..100 instead of 1..100.


Minor Issues:

3) too many notifications

This module creates a lot of notifications to manage, and they are
all optional to implement. This increases complexity in both
the client implementation and operations.

If you really need all 13 notifications then OK, but
13 notification events is a lot for one YANG module,
especially if this set will get even larger over time.

Here is one way to reduce the number of event definitions.
The example below has 1 event and 13 sub-event types, but it could
also apply to N event types each with some sub-event types.

This design template adds one more layer in the notification message,
but it is probably easier for the client and operator to manage.
The deployment may require filters and access control rules that become
more complex for a large number of notifications.


=C2=A0 =C2=A0 notification i2nsf-event {
=C2=A0 =C2=A0 =C2=A0 description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 "Wrapper for all I2NSF events";

=C2=A0 =C2=A0 =C2=A0 choice sub-event-type {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "This choice must be augmented with= cases for each allowed
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sub-event.=C2=A0 Only 1 sub-event = will be instantiated in each
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0i2nsf-event message. Each case is = expected to define one
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container with all the sub-event f= ields.";

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// could put sub-events inline
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case i2nsf-system-detection-alarm {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature "i2nsf-system-dete= ction-alarm";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container i2nsf-system-detection-a= larm {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// contents of i2nsf-system= -detection-alarm data
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0}


=C2=A0 =C2=A0 =C2=A0// could add sub-events via augments at any time
=C2=A0 =C2=A0 =C2=A0augment "/i2nsf-event/sub-event-type" {
=C2=A0 =C2=A0 =C2=A0 =C2=A0case i2nsf-system-detection-event {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature "i2nsf-system-detection-e= vent";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container i2nsf-system-detection-event {<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// contents of i2nsf-system-detect= ion-event data
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0}


Nits:

4) underscore vs. hyphen

There are many field names in sec. 7 that are incorrect
because they use an underscore instead of a hyphen char
(e.g. req_cookies but leaf name is req-cookies)

5) verbose SNMP-style names

The term -configuration in the object names is unusual.
Repeating the parent name (like SMIv2) is not usually done in YANG.
(e.g., i2nsf-system-detection-event-configuration)

6) identifiers should use well-known abbreviations or spell
out the word if not too long.=C2=A0 E.g "ave" -> "average= "

7) Is there a reason some identities are ALL-CAPS and others
are all-lower-case? This should be explained in the YANG module.






--0000000000004ead4105bf7917f9-- From nobody Thu Apr 8 11:24:17 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 15E843A15E8; Thu, 8 Apr 2021 11:24:08 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -0.598 X-Spam-Level: X-Spam-Status: No, score=-0.598 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, FREEMAIL_FROM=0.001, HK_NAME_FM_MR_MRS=1.499, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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=gmail.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 hVD8iVD2G9L6; Thu, 8 Apr 2021 11:24:03 -0700 (PDT) Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) (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 A7FDB3A15E5; Thu, 8 Apr 2021 11:24:02 -0700 (PDT) Received: by mail-lj1-x22b.google.com with SMTP id 184so3429172ljf.9; Thu, 08 Apr 2021 11:24:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XbIltYqe9z5usY8CtaucdY3QqkNkS0lMyxN86WrYJZE=; b=YBpVTAT5kl+Mq9HSHuOrRJ2jN488KC/Dpi5D+reFUW+n0Zr3v0jR34zbwrti6ZsyZ3 8Ii9itCUWNZUvPMaJNk0MwzWmYTkeLtHH82cqAIthQ+2RBxF/CuzUHEco0db2cnCp8W1 n6HgLJuXOXoo2lOFm89KneKkRE8Yv7Nw8Z8n/siPe8+ckhLsgWadZm9pgDV8eP7bUCdO jkgZ5nWJVkyGKdOt0smBzXeqGANaziA2k2zNO2Gcoe9H/SVlevxPUp0pRJHU1YUJw+h7 5U99yc/WBs7BYBaGBNPiQeln31GDMOb7VqyHRxWV8eXDnZKZUJe5xbSTsuOHaO0sqCfs CAWA== 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=XbIltYqe9z5usY8CtaucdY3QqkNkS0lMyxN86WrYJZE=; b=howmXNtdYmfTPtH3IpZPkUU+votInVpWDCGRfbtOha4yN8mP9eiS5mrLXIZkgJe2MV t/wkE90YauvuWnCbY8c0yvsFyoyn8kwT6lUWTNuzYRxsuyfhAFauh4KAOJEF+K9zVQlM sS/aVToc0D5Ij58AWThLlW3ftbLN+hGt4E80YWc6XRmj0KmNDLdbsVNVAtWWyJfZPOBZ ZOvgfuk6KvV02kYsVrMXM6DI3ZcWSVO6ikZnQzlHg+sQ52Kli/zdUAGfaGK46gfOeKro jF78QRp7YsP/RkAAkhyKahTKbkNysSrIeTztnysnwm5UALDccPrcDSCfI2Qm4D75vhxk Sn7Q== X-Gm-Message-State: AOAM5303qquP6zRkfndXrNBVwXAXoHtn7H3j5q/jIcS7RU+puztVKn0+ fORemFYd68Kl1AeatD/8G4De05kwpInxZ/ax+wQ= X-Google-Smtp-Source: ABdhPJwC2EWZVyF+35SwnYYWJ07fnehMxp6fZ4v97QMYr/NStgKhlK89zrb8+ZwlkbC15i6iGHCTaBIs+nlKfEOKE4A= X-Received: by 2002:a2e:b048:: with SMTP id d8mr5164418ljl.426.1617906239870; Thu, 08 Apr 2021 11:23:59 -0700 (PDT) MIME-Version: 1.0 References: <161652444666.30886.1452719047245335791@ietfa.amsl.com> In-Reply-To: From: "Mr. Jaehoon Paul Jeong" Date: Fri, 9 Apr 2021 03:23:52 +0900 Message-ID: To: Andy Bierman Cc: Linda Dunbar , Yoav Nir , YANG Doctors , "i2nsf@ietf.org" , draft-ietf-i2nsf-nsf-monitoring-data-model.all@ietf.org, Last Call , skku-iotlab-members , "Mr. Jaehoon Paul Jeong" Content-Type: multipart/alternative; boundary="000000000000b51aa305bf7a26ae" Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-i2nsf-nsf-monitoring-data-model-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Apr 2021 18:24:08 -0000 --000000000000b51aa305bf7a26ae Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Andy, I will address your comments on the notes for implementers of YANG Push Dampening in I2NSF. Thanks a lot. Best Regards, Paul 2021=EB=85=84 4=EC=9B=94 9=EC=9D=BC (=EA=B8=88) =EC=98=A4=EC=A0=84 2:08, An= dy Bierman =EB=8B=98=EC=9D=B4 =EC=9E=91=EC=84=B1: > Hi, > > I reviewed your note, the diffs and the YANG module. > I think draft-07 is ready (no issues or nits) > > There are probably some clarifications needed to adapt YANG Push dampenin= g > to I2NSF. YP refers to the data nodes changing within the dampening perio= d. > In this case, the notes to implementers should be clear about any events > sent at the end > of the dampening period because events were suppressed (if any). There > might be a different > procedure for each event or sub-event. > > > Andy > > > On Wed, Mar 31, 2021 at 7:09 PM Mr. Jaehoon Paul Jeong < > jaehoon.paul@gmail.com> wrote: > >> Hi Andy, Linda, and Yoav, >> Patrick and I have addressed all the comments from Andy. >> Here is the revised draft -07: >> https://tools.ietf.org/html/draft-ietf-i2nsf-nsf-monitoring-data-model-0= 7 >> >> I attach a revision letter to explain how we addressed the comments. >> >> There are the major updates in this revision as follows: >> --- >> o This version is revised according to the comments of Andy Bierman >> who is a YANG doctor. >> >> o This version updates its title as "I2NSF NSF Monitoring Interface >> YANG Data Model". It clarifies the NSF Monitoring Interface to >> deliver NSF monitoring data to an NSF data collector (e.g., >> Security Controller and NSF data analyzer). >> >> o This version adds an attack destination IP address for DDoS-attack >> event to provide an NSF data collector with more information about >> the >> destination of DDoS-attack packets. >> >> o This version supports a notification for monitoring traffic flows >> to detect the source and destination (as a victim) of security >> attacks >> such as DDoS attack. >> --- >> If you have questions and comments, please let me know. >> >> Thanks. >> >> Best Regards, >> Paul >> >> >> On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker < >> noreply@ietf.org> wrote: >> >>> Reviewer: Andy Bierman >>> Review result: Ready with Issues >>> >>> >>> Status: Ready with Issues >>> >>> Most of the issues raised in the review of draft-04 have been >>> addressed. >>> >>> Major Issues: >>> >>> - None >>> >>> Moderate Issues: >>> >>> 1) too many YANG features >>> >>> There are 13 YANG features, one for each of the 13 notification-stmts >>> defined. There should be as few YANG features defined as possible. >>> They should only be used if it is an unreasonable burden (compared >>> to the feature value) for all servers to support the functionality. >>> >>> 2) list /i2nsf-monitoring-configuration/system-alarm >>> >>> This is yet another alarm management system created in the IETF. >>> I guess the WG decided that RFC 8632 was not suitable. >>> >>> It is not clear how this system prevents excessive notifications >>> sent to a client. >>> >>> What happens when the CPU, memory, or disk usage crosses back and >>> forth over the threshold? Seems like an alarm is generated for each >>> upward crossing of the threshold leaf. >>> >>> The precise behavior for triggering and then re-arming an alarm >>> needs to be specified in the YANG module. >>> >>> RMON Alarms (RFC 2819) defines one way to prevent bursts of >>> SNMP notifications, using an alarm reset threshold. >>> >>> YANG Push (RFC 8641) uses a dampening-period approach to prevent >>> flooding the receiver with notifications. >>> >>> Also, it is not clear what use-case is served by "threshold =3D 0". >>> The range is 0..100 instead of 1..100. >>> >>> >>> Minor Issues: >>> >>> 3) too many notifications >>> >>> This module creates a lot of notifications to manage, and they are >>> all optional to implement. This increases complexity in both >>> the client implementation and operations. >>> >>> If you really need all 13 notifications then OK, but >>> 13 notification events is a lot for one YANG module, >>> especially if this set will get even larger over time. >>> >>> Here is one way to reduce the number of event definitions. >>> The example below has 1 event and 13 sub-event types, but it could >>> also apply to N event types each with some sub-event types. >>> >>> This design template adds one more layer in the notification message, >>> but it is probably easier for the client and operator to manage. >>> The deployment may require filters and access control rules that become >>> more complex for a large number of notifications. >>> >>> >>> notification i2nsf-event { >>> description >>> "Wrapper for all I2NSF events"; >>> >>> choice sub-event-type { >>> description >>> "This choice must be augmented with cases for each allowed >>> sub-event. Only 1 sub-event will be instantiated in each >>> i2nsf-event message. Each case is expected to define one >>> container with all the sub-event fields."; >>> >>> // could put sub-events inline >>> case i2nsf-system-detection-alarm { >>> if-feature "i2nsf-system-detection-alarm"; >>> container i2nsf-system-detection-alarm { >>> // contents of i2nsf-system-detection-alarm data >>> } >>> } >>> >>> } >>> } >>> >>> >>> // could add sub-events via augments at any time >>> augment "/i2nsf-event/sub-event-type" { >>> case i2nsf-system-detection-event { >>> if-feature "i2nsf-system-detection-event"; >>> container i2nsf-system-detection-event { >>> // contents of i2nsf-system-detection-event data >>> } >>> } >>> } >>> >>> >>> Nits: >>> >>> 4) underscore vs. hyphen >>> >>> There are many field names in sec. 7 that are incorrect >>> because they use an underscore instead of a hyphen char >>> (e.g. req_cookies but leaf name is req-cookies) >>> >>> 5) verbose SNMP-style names >>> >>> The term -configuration in the object names is unusual. >>> Repeating the parent name (like SMIv2) is not usually done in YANG. >>> (e.g., i2nsf-system-detection-event-configuration) >>> >>> 6) identifiers should use well-known abbreviations or spell >>> out the word if not too long. E.g "ave" -> "average" >>> >>> 7) Is there a reason some identities are ALL-CAPS and others >>> are all-lower-case? This should be explained in the YANG module. >>> >>> >>> >>> >>> >>> >>> --000000000000b51aa305bf7a26ae Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Andy,
I will address your commen= ts on the notes for implementers of YANG Push Dampening in I2NSF.

Thanks a lot.

Best Regards,
Paul

2021=EB=85=84 4=EC=9B=94 9=EC=9D=BC (=EA=B8=88) =EC=98=A4=EC=A0=84 2:08, = Andy Bierman <andy@yumaworks.com>=EB=8B=98=EC=9D=B4 =EC=9E=91=EC=84=B1:

=
=
Hi Andy, Linda, and Yoav,
Patrick and I have addressed= all the comments from Andy.
Here is the revised draft -07:
=

<= /div>
I attach a revision letter to explain how we addressed the commen= ts.

There are the major updates in this revision a= s follows:
---
=C2=A0 =C2=A0o =C2=A0This version is revised ac= cording to the comments of Andy Bierman
=C2=A0 =C2=A0 =C2=A0 who is a YA= NG doctor.

=C2=A0 =C2=A0o =C2=A0This version updates its title as &q= uot;I2NSF NSF Monitoring Interface
=C2=A0 =C2=A0 =C2=A0 YANG Data Model&= quot;.=C2=A0 It clarifies the NSF Monitoring Interface to
=C2=A0 =C2=A0 = =C2=A0 deliver NSF monitoring data to an NSF data collector (e.g.,
=C2= =A0 =C2=A0 =C2=A0 Security Controller and NSF data analyzer).

=C2=A0= =C2=A0o =C2=A0This version adds an attack destination IP address for DDoS-= attack
=C2=A0 =C2=A0 =C2=A0 event to provide=20 an NSF data collector with more information about the
=C2=A0 =C2=A0 =C2=A0 destination of DDo= S-attack packets.

=C2=A0 =C2=A0o =C2=A0This version supports a notif= ication for monitoring traffic flows
=C2=A0 =C2=A0 =C2=A0to detec= t the source and destination (as a victim) of security attacks
= =C2=A0 =C2=A0 =C2=A0such as DDoS attack.
---
If you have q= uestions and comments, please let me know.

Thanks.=

Best Regards,
Paul

=

= On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker <noreply@ietf= .org> wrote:
Reviewer: Andy Bierman
Review result: Ready with Issues


Status: Ready with Issues

Most of the issues raised in the review of draft-04 have been
addressed.

Major Issues:

=C2=A0- None

Moderate Issues:

1) too many YANG features

There are 13 YANG features, one for each of the 13 notification-stmts
defined.=C2=A0 There should be as few YANG features defined as possible. They should only be used if it is an unreasonable burden (compared
to the feature value) for all servers to support the functionality.

2) list /i2nsf-monitoring-configuration/system-alarm

This is yet another alarm management system created in the IETF.
I guess the WG decided that RFC 8632 was not suitable.

It is not clear how this system prevents excessive notifications
sent to a client.

What happens when the CPU, memory, or disk usage crosses back and
forth over the threshold? Seems like an alarm is generated for each
upward crossing of the threshold leaf.

The precise behavior for triggering and then re-arming an alarm
needs to be specified in the YANG module.

RMON Alarms (RFC 2819) defines one way to prevent bursts of
SNMP notifications, using an alarm reset threshold.

YANG Push (RFC 8641) uses a dampening-period approach to prevent
flooding the receiver with notifications.

Also, it is not clear what use-case is served by "threshold =3D 0"= ;.
The range is 0..100 instead of 1..100.


Minor Issues:

3) too many notifications

This module creates a lot of notifications to manage, and they are
all optional to implement. This increases complexity in both
the client implementation and operations.

If you really need all 13 notifications then OK, but
13 notification events is a lot for one YANG module,
especially if this set will get even larger over time.

Here is one way to reduce the number of event definitions.
The example below has 1 event and 13 sub-event types, but it could
also apply to N event types each with some sub-event types.

This design template adds one more layer in the notification message,
but it is probably easier for the client and operator to manage.
The deployment may require filters and access control rules that become
more complex for a large number of notifications.


=C2=A0 =C2=A0 notification i2nsf-event {
=C2=A0 =C2=A0 =C2=A0 description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 "Wrapper for all I2NSF events";

=C2=A0 =C2=A0 =C2=A0 choice sub-event-type {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "This choice must be augmented with= cases for each allowed
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sub-event.=C2=A0 Only 1 sub-event = will be instantiated in each
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0i2nsf-event message. Each case is = expected to define one
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container with all the sub-event f= ields.";

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// could put sub-events inline
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case i2nsf-system-detection-alarm {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature "i2nsf-system-dete= ction-alarm";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container i2nsf-system-detection-a= larm {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// contents of i2nsf-system= -detection-alarm data
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0}


=C2=A0 =C2=A0 =C2=A0// could add sub-events via augments at any time
=C2=A0 =C2=A0 =C2=A0augment "/i2nsf-event/sub-event-type" {
=C2=A0 =C2=A0 =C2=A0 =C2=A0case i2nsf-system-detection-event {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature "i2nsf-system-detection-e= vent";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container i2nsf-system-detection-event {<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// contents of i2nsf-system-detect= ion-event data
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0}


Nits:

4) underscore vs. hyphen

There are many field names in sec. 7 that are incorrect
because they use an underscore instead of a hyphen char
(e.g. req_cookies but leaf name is req-cookies)

5) verbose SNMP-style names

The term -configuration in the object names is unusual.
Repeating the parent name (like SMIv2) is not usually done in YANG.
(e.g., i2nsf-system-detection-event-configuration)

6) identifiers should use well-known abbreviations or spell
out the word if not too long.=C2=A0 E.g "ave" -> "average= "

7) Is there a reason some identities are ALL-CAPS and others
are all-lower-case? This should be explained in the YANG module.






--000000000000b51aa305bf7a26ae-- From nobody Fri Apr 9 01:29:35 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 939A03A17D6 for ; Fri, 9 Apr 2021 01:29:32 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.898 X-Spam-Level: X-Spam-Status: No, score=-1.898 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ackl-io.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 63l87MFAx7OP for ; Fri, 9 Apr 2021 01:29:28 -0700 (PDT) Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) (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 0CA033A17D2 for ; Fri, 9 Apr 2021 01:29:27 -0700 (PDT) Received: by mail-io1-xd2a.google.com with SMTP id x17so5105284iog.2 for ; Fri, 09 Apr 2021 01:29:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ackl-io.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pRzD2ejc0JllcOYMA4q1fGU/6iVm4FSdMWB7uM6XfOA=; b=FGxKog4OdDxO3Tk4yxZsCtVOjsAN8gC2ybgTC8tpamM9wHwuaoWIH+zeF9+qGRcx4S nKs08V3NuEdo1V0NBDQtqBujlxgSBHudRyZd8x7UYUltafm8FB1P6Wlq+oRMnprNeJvK CcC2nucvvkaP+wZHaCJAaDR2ydKM6y2kItGI2q168TK/2pkU9nMa4S16I5064sJztrtS MhFp8NcRiVBKots7OelOHY4caWZPhvqItjgXc50yJ1ZKEyW1FXw25P9uIgLwU3gEGkLA 6HVIm/sMO7yZSrvIJFyN17/kAJTvDdD0t6EwICJerXB9pE/OoK2byC4Y2XZAug3G5GQC 9V0g== 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=pRzD2ejc0JllcOYMA4q1fGU/6iVm4FSdMWB7uM6XfOA=; b=IrZk7vy4eJx0oJwbuTU5fg3WJW9bnNvppA1Ny+zXoNfR0zDPCHL0/Ivhq5GxCRQa40 /lKBpRpTvTyIbparytXtqESu0akND3OboO0OxNG6Nqn+nDtJwBsHGMGobhtWOCtftDur jSwpXxdp6sUO3WvP0ZY4SRWgZtuw+rQsrm5IQeFI8JWWdchYinrNhNTn2z09EookLF21 jvDMzL9FmyezbtM95sdR2UfxA6gNCOxmGY7y/LaaU7llNC1sPA+VJfdBfsMjNCXT34CW /k4/s11ArUZn9TchyEwWtlbdghbkLRCcL+KOs+MTFhG112tY10hUm1LrI0HAPS62p0go gQ5Q== X-Gm-Message-State: AOAM531sANRv3KRP2vvSiGGseFHm3tNbct3DMnTLRAnfmn+Yg52OqMND GV/tZRC6Jwc639qQZxHG7mC5Vc02k4oMy+hxZBTEQA== X-Google-Smtp-Source: ABdhPJz2fzt7+mupENvhYMfjcem4Lp/QQ4IB5qB+23ZdrRa1qWEbHdSm07VNWYtUAPxhiK14XOfl+eL4x0OtOZV6J4c= X-Received: by 2002:a05:6602:2102:: with SMTP id x2mr10927756iox.83.1617956966042; Fri, 09 Apr 2021 01:29:26 -0700 (PDT) MIME-Version: 1.0 References: <161671562340.18744.12200188901217754567@ietfa.amsl.com> <14851067-3EF0-468F-97C7-0EC12A6ED1AC@ericsson.com> In-Reply-To: <14851067-3EF0-468F-97C7-0EC12A6ED1AC@ericsson.com> From: Alexander Pelov Date: Fri, 9 Apr 2021 10:29:14 +0200 Message-ID: To: Francesca Palombini Cc: Xufeng Liu , "yang-doctors@ietf.org" , "core@ietf.org" , "draft-ietf-core-sid.all@ietf.org" , "last-call@ietf.org" Content-Type: multipart/alternative; boundary="0000000000003923c305bf85f697" Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-core-sid-15 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2021 08:29:33 -0000 --0000000000003923c305bf85f697 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Dear Xufeng, Thank you for the detailed feedback. We will take into account all the remarks you have made and will modify accordingly. Thank you, Francesca, for following on Xufeng's review. Best regards, Alexander On Fri, Mar 26, 2021 at 5:18 PM Francesca Palombini < francesca.palombini@ericsson.com> wrote: > Xufeng, > > Thank you very much for the detailed review! > > Authors: please address Xufeng's comments together with the other Last > Call comments received. > > Thanks, > Francesca > > =EF=BB=BFOn 26/03/2021, 00:40, "Xufeng Liu via Datatracker" > wrote: > > Reviewer: Xufeng Liu > Review result: Ready with Nits > > This is a review of the YANG module in draft-ietf-core-sid-15. > > Minor Issues, Nits, and Questions: > > 1) This module uses the yang-data extension in RFC8040, which was the > best > choice a few years ago when this draft started. However, RFC8791 has > been > published so that the YANG structure extension is available now. Has > the YANG > structure extension been considered to replace the yang-data extensio= n? > > 2) The container sid-file is missing in the tree diagram in Section 4= . > RFC8340 > specifies the tree format to represent such a yang-data definition. I= f > the YANG > structure extension in RFC8791 is used, RFC8791 describes how the tre= e > diagram > looks like for such a YANG structure. Also, the top container would > not be > needed, because a YANG structure is encoded as a 'container'. > > 3) In the container sid-file, the leaf module-name is optional. What > is the > assumption when it is not specified? It would be beneficial to clarif= y > in the > description statement. > > 4) In the container sid-file, the leaf sid-file-version is optional. > The > description says that this number starts at zero. Let=E2=80=99s say t= hat there > are two > .sid files, one of which does not have the version number and the > other one has > version number 0. Are they the same? If so, would it be better to hav= e > a > default statement with a default value of 0? > > 5) For =E2=80=9Clist dependency-revision=E2=80=9D, the key is module-= name. The > =E2=80=9Cmandatory > true=E2=80=9D statement is not necessary for this leaf because it is = a key. > > 6) Under the =E2=80=9Clist dependency-revision=E2=80=9D, the leaf rev= ision-identifier > is > specified as =E2=80=9Cmandatory=E2=80=9D. What would this leaf be spe= cified when a > dependent > module does not have a revision? > > 7) =E2=80=9Clist assigment-ranges=E2=80=9D should be =E2=80=9Clist as= signment-ranges=E2=80=9D. A > letter =E2=80=98n=E2=80=99 is > missing in the current YANG module because of a typo. > > 8) For =E2=80=9Clist assignment-ranges=E2=80=9D, the key is entry-poi= nt. The > =E2=80=9Cmandatory true=E2=80=9D > statement is not necessary for this leaf because it is a key. > > 9) As a convention, the node names of =E2=80=9Clist assignment-ranges= =E2=80=9D and > =E2=80=9Clist items=E2=80=9D > should be in the singular form, the same way as =E2=80=9Clist > dependency-revision=E2=80=9D, so > that they would be =E2=80=9Clist assignment-range=E2=80=9D and =E2=80= =9Clist item=E2=80=9D. > > 10) Since a YANG SID value is globally unique, would it be beneficial > to have a > statement in the YANG file to describe the requirement formally? This > can be > easily done by adding the following statement under =E2=80=9Clist ite= ms=E2=80=9D: > unique "sid"; > > 11) The format of the YANG file needs to be adjusted. Some of the > lines in the > .yang file are longer than 69 characters. For example, at line 108 is= : > o Any subsequent schema node name is in the > namespace-qualified form > To examine, the command =E2=80=9Cpyang --ietf --max-line-length 69 FI= LE=E2=80=9D can > be used. > Before publishing, an RFC editor would normalize the format by using > the > command =E2=80=9Cpyang -f yang --keep-comments --yang-line-length 69 = FILE=E2=80=9D. It > would be > helpful to run this command now since it may change the lines to be > longer than > the limit of 69 characters. > > 12) In the example in Appendix A, the four "module-revision" > statements contain > =E2=80=9C.yang=E2=80=9D after the date, not following the pattern rul= e of the > revision-identifier. It seems that the sid generation tool did not > take out the > extension =E2=80=9C.yang=E2=80=9D. > > 13) In Appendix A, the 5th item is: > o iana-crypt-hash@2014-04-04.yang (defined in [RFC7317]) > but in RFC7317, the revision of iana-crypt-hash is 2014-08-06 > > 14) The following is a thought that may have been discussed before an= d > decided > by the WG, but I=E2=80=99d mention it here anyway just in case: Since= the > scope of a > .sid file is for a single YANG file (module), many of the data nodes > start with > the namespace of this particular module. The =E2=80=9Cschema-node-pat= h=E2=80=9D > currently > requires an identifier string to always start with a namespace. > Because of this > requirement, there are many repeated namespace strings in the > identifiers of > the items. If we assume that the default starting namespace is the > module > associated with the .sid file, we may shorten the .sid file? > > - Xufeng > > > > > --0000000000003923c305bf85f697 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear Xufeng,

Thank you for the detailed= =C2=A0feedback. We will take into account all the remarks you have made and= will modify accordingly.

Thank you, Francesca, fo= r following on Xufeng's review.

Best=C2=A0rega= rds,
Alexander


On Fri, Mar 26, 2021 at 5:18 P= M Francesca Palombini <francesca.palombini@ericsson.com> wrote:
Xufeng,

Thank you very much for the detailed review!

Authors: please address Xufeng's comments together with the other Last = Call comments received.

Thanks,
Francesca

=EF=BB=BFOn 26/03/2021, 00:40, "Xufeng Liu via Datatracker" <<= a href=3D"mailto:noreply@ietf.org" target=3D"_blank">noreply@ietf.org&g= t; wrote:

=C2=A0 =C2=A0 Reviewer: Xufeng Liu
=C2=A0 =C2=A0 Review result: Ready with Nits

=C2=A0 =C2=A0 This is a review of the YANG module in draft-ietf-core-sid-15= .

=C2=A0 =C2=A0 Minor Issues, Nits, and Questions:

=C2=A0 =C2=A0 1) This module uses the yang-data extension in RFC8040, which= was the best
=C2=A0 =C2=A0 choice a few years ago when this draft started. However, RFC8= 791 has been
=C2=A0 =C2=A0 published so that the YANG structure extension is available n= ow. Has the YANG
=C2=A0 =C2=A0 structure extension been considered to replace the yang-data = extension?

=C2=A0 =C2=A0 2) The container sid-file is missing in the tree diagram in S= ection 4. RFC8340
=C2=A0 =C2=A0 specifies the tree format to represent such a yang-data defin= ition. If the YANG
=C2=A0 =C2=A0 structure extension in RFC8791 is used, RFC8791 describes how= the tree diagram
=C2=A0 =C2=A0 looks like for such a YANG structure. Also, the top container= would not be
=C2=A0 =C2=A0 needed, because a YANG structure is encoded as a 'contain= er'.

=C2=A0 =C2=A0 3) In the container sid-file, the leaf module-name is optiona= l. What is the
=C2=A0 =C2=A0 assumption when it is not specified? It would be beneficial t= o clarify in the
=C2=A0 =C2=A0 description statement.

=C2=A0 =C2=A0 4) In the container sid-file, the leaf sid-file-version is op= tional. The
=C2=A0 =C2=A0 description says that this number starts at zero. Let=E2=80= =99s say that there are two
=C2=A0 =C2=A0 .sid files, one of which does not have the version number and= the other one has
=C2=A0 =C2=A0 version number 0. Are they the same? If so, would it be bette= r to have a
=C2=A0 =C2=A0 default statement with a default value of 0?

=C2=A0 =C2=A0 5) For =E2=80=9Clist dependency-revision=E2=80=9D, the key is= module-name. The=C2=A0 =E2=80=9Cmandatory
=C2=A0 =C2=A0 true=E2=80=9D statement is not necessary for this leaf becaus= e it is a key.

=C2=A0 =C2=A0 6) Under the =E2=80=9Clist dependency-revision=E2=80=9D, the = leaf revision-identifier is
=C2=A0 =C2=A0 specified as =E2=80=9Cmandatory=E2=80=9D. What would this lea= f be specified when a dependent
=C2=A0 =C2=A0 module does not have a revision?

=C2=A0 =C2=A0 7) =E2=80=9Clist assigment-ranges=E2=80=9D should be =E2=80= =9Clist assignment-ranges=E2=80=9D. A letter =E2=80=98n=E2=80=99 is
=C2=A0 =C2=A0 missing in the current YANG module because of a typo.

=C2=A0 =C2=A0 8) For =E2=80=9Clist assignment-ranges=E2=80=9D, the key is e= ntry-point. The=C2=A0 =E2=80=9Cmandatory true=E2=80=9D
=C2=A0 =C2=A0 statement is not necessary for this leaf because it is a key.=

=C2=A0 =C2=A0 9) As a convention, the node names of =E2=80=9Clist assignmen= t-ranges=E2=80=9D and =E2=80=9Clist items=E2=80=9D
=C2=A0 =C2=A0 should be in the singular form, the same way as =E2=80=9Clist= dependency-revision=E2=80=9D, so
=C2=A0 =C2=A0 that they would be =E2=80=9Clist assignment-range=E2=80=9D an= d =E2=80=9Clist item=E2=80=9D.

=C2=A0 =C2=A0 10) Since a YANG SID value is globally unique, would it be be= neficial to have a
=C2=A0 =C2=A0 statement in the YANG file to describe the requirement formal= ly? This can be
=C2=A0 =C2=A0 easily done by adding the following statement under =E2=80=9C= list items=E2=80=9D:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 unique "sid";

=C2=A0 =C2=A0 11) The format of the YANG file needs to be adjusted. Some of= the lines in the
=C2=A0 =C2=A0 .yang file are longer than 69 characters. For example, at lin= e 108 is:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0o=C2=A0 Any subsequent schema node= name is in the namespace-qualified form
=C2=A0 =C2=A0 To examine, the command =E2=80=9Cpyang --ietf --max-line-leng= th 69 FILE=E2=80=9D can be used.
=C2=A0 =C2=A0 Before publishing, an RFC editor would normalize the format b= y using the
=C2=A0 =C2=A0 command =E2=80=9Cpyang -f yang --keep-comments --yang-line-le= ngth 69 FILE=E2=80=9D. It would be
=C2=A0 =C2=A0 helpful to run this command now since it may change the lines= to be longer than
=C2=A0 =C2=A0 the limit of 69 characters.

=C2=A0 =C2=A0 12) In the example in Appendix A, the four "module-revis= ion" statements contain
=C2=A0 =C2=A0 =E2=80=9C.yang=E2=80=9D after the date, not following the pat= tern rule of the
=C2=A0 =C2=A0 revision-identifier. It seems that the sid generation tool di= d not take out the
=C2=A0 =C2=A0 extension =E2=80=9C.yang=E2=80=9D.

=C2=A0 =C2=A0 13) In Appendix A, the 5th item is:
=C2=A0 =C2=A0 =C2=A0o=C2=A0 iana-crypt-hash@2014-04-04.yang (defined in [RF= C7317])
=C2=A0 =C2=A0 but in=C2=A0 RFC7317, the revision of=C2=A0 iana-crypt-hash i= s 2014-08-06

=C2=A0 =C2=A0 14) The following is a thought that may have been discussed b= efore and decided
=C2=A0 =C2=A0 by the WG, but I=E2=80=99d mention it here anyway just in cas= e: Since the scope of a
=C2=A0 =C2=A0 .sid file is for a single YANG file (module), many of the dat= a nodes start with
=C2=A0 =C2=A0 the namespace of this particular module. The =E2=80=9Cschema-= node-path=E2=80=9D currently
=C2=A0 =C2=A0 requires an identifier string to always start with a namespac= e. Because of this
=C2=A0 =C2=A0 requirement, there are many repeated namespace strings in the= identifiers of
=C2=A0 =C2=A0 the items. If we assume that the default starting namespace i= s the module
=C2=A0 =C2=A0 associated with the .sid file, we may shorten the .sid file?<= br>
=C2=A0 =C2=A0 - Xufeng




--0000000000003923c305bf85f697-- From nobody Fri Apr 9 02:58:39 2021 Return-Path: X-Original-To: yang-doctors@ietf.org Delivered-To: yang-doctors@ietfa.amsl.com Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 2A1943A1ACB; Fri, 9 Apr 2021 02:58:30 -0700 (PDT) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit From: Ladislav Lhotka via Datatracker To: Cc: draft-ietf-netconf-tcp-client-server.all@ietf.org, last-call@ietf.org, netconf@ietf.org X-Test-IDTracker: no X-IETF-IDTracker: 7.27.0 Auto-Submitted: auto-generated Precedence: bulk Message-ID: <161796231010.8005.7390142571009530431@ietfa.amsl.com> Reply-To: Ladislav Lhotka Date: Fri, 09 Apr 2021 02:58:30 -0700 Archived-At: Subject: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-tcp-client-server-09 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2021 09:58:30 -0000 Reviewer: Ladislav Lhotka Review result: Ready with Issues The modules are well designed and nicely documented, both in the descriptions and text of the Internet-Draft. **** Comments - Sections 2.1.4, 3.1.3, 4.1.3: the sentence 'The "..." module does not contain any protocol-accessible nodes.' is misleading in that the modules do define data nodes that are intended to be protocol accessible after the corresponding grouping is used. I know this is a part of the NETCONF/YANG lingo, but another formulation that clearly says what's going on might be preferable. - Sections 2.2, 3.2 and 4.2: the XML snippets use document elements "tcp-common", "tcp-client" and "tcp-server", but these containers are not defined in the corresponding modules. This is confusing, my suggestion is to rewrite the examples in the JSON representation where no such top-level node is necessary. - What is the purpose of "tcp-connection-grouping" if it only uses "tcp-common-grouping" and nothing else? Why cannot "tcp-common-grouping" be used directly? - The "local-port" parameter defined in ietf-tcp-client seems dubious from the security viewpoint in that fixing the source port makes it easier for attackers to steal the connection (see RFC 6056). If the feature "local-binding-supported" is needed at all, I'd suggest to mention this in Security Considerations. - The module ietf-tcp-client uses the placeholder "RFC AAAA", which is not defined in the Editorial Note. **** Nits - RFC 7950 is cited repeatedly (6 times) in a general context, e.g. whenever YANG 1.1 is mentioned. It should suffice to use the citation at the first appearance. - sec. 1.3: s/in compliant/is compliant/ - in 3 places: s/illustatrating/illustrating/ From nobody Sun Apr 11 13:58:03 2021 Return-Path: X-Original-To: yang-doctors@ietf.org Delivered-To: yang-doctors@ietfa.amsl.com Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id A889F3A1DFE; Sun, 11 Apr 2021 13:57:58 -0700 (PDT) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit From: Reshad Rahman via Datatracker To: Cc: draft-ietf-mboned-dorms.all@ietf.org, mboned@ietf.org X-Test-IDTracker: no X-IETF-IDTracker: 7.27.0 Auto-Submitted: auto-generated Precedence: bulk Message-ID: <161817467857.25277.18208608025617706305@ietfa.amsl.com> Reply-To: Reshad Rahman Date: Sun, 11 Apr 2021 13:57:58 -0700 Archived-At: Subject: [yang-doctors] Yangdoctors early review of draft-ietf-mboned-dorms-01 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Apr 2021 20:57:59 -0000 Reviewer: Reshad Rahman Review result: On the Right Track YANG Doctor review of rev-01 by Reshad Rahman. Caveat: I won't pretend to fully understand the motivation behind DORMS. I've reviewed this mostly from a YANG perspective. Comments/questions: - OOC, why is DORMS limited to RESTCONF? I do understand why RESTCONF is appealing, but potential deployments might be using NETCONF, CORECONF or gNMI? - The data in ietf-dorms is said to be read-only but doesn't have "config false" - I'd add a "dorms" container at the top with "metadata" under "dorms". If other DORMS data needs to be added in the future, it would get added under "dorms". This would minimize top-level nodes as per RFC8407 section 4.10. - "mandatory" is not needed for list keys, it's actually ignored as mentioned in RFC7950 section section 7.8.2 - If a group requires a minimum number of udp-stream entries (e.g. 1), add a "min-elements" statement under "group". If not, leave as-is. - 7.1 Security considerations, looks like the read-only data is not deemed sensitive, please add a statement to that effect. Regarding NACM, consider a SHOULD instead of MAY? Regards, Reshad. - Even though the YANG model is not complex, adding an example always helps. Regards, Reshad. From nobody Sun Apr 11 14:15:39 2021 Return-Path: X-Original-To: yang-doctors@ietf.org Delivered-To: yang-doctors@ietfa.amsl.com Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 108DA3A1EB0; Sun, 11 Apr 2021 14:15:35 -0700 (PDT) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit From: Reshad Rahman via Datatracker To: Cc: draft-ietf-mboned-cbacc.all@ietf.org, mboned@ietf.org X-Test-IDTracker: no X-IETF-IDTracker: 7.27.0 Auto-Submitted: auto-generated Precedence: bulk Message-ID: <161817573499.20366.15012284864667773875@ietfa.amsl.com> Reply-To: Reshad Rahman Date: Sun, 11 Apr 2021 14:15:35 -0700 Archived-At: Subject: [yang-doctors] Yangdoctors early review of draft-ietf-mboned-cbacc-02 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Apr 2021 21:15:35 -0000 Reviewer: Reshad Rahman Review result: Almost Ready YANG Doctor review of rev-02 by Reshad Rahman. Comments/questions: The document and YANG module-name have CBACC, yet the module prefix is "ambi", is this on purpose? Intuitively, I was expecting the prefix to be "cbacc". For presence statement, use CBACC-enabled instead of cbacc-enabled? Is max-mss for a TCP Max Segment Size, or is this really max packet size? And no need for jumbograms since this is for UDP? Consider renaming max-bits-per-second to something along the lines of max-speed. Description says kilobits (not bits). Add "unit" statement e.g. to data-rate-window and max-bits-per-second OOC, why so many priorities? I'm used to seeing 3 or 8 bits for priority. Security considerations should mention the YANG data nodes. Regards, Reshad. From nobody Mon Apr 12 01:19:32 2021 Return-Path: X-Original-To: yang-doctors@ietf.org Delivered-To: yang-doctors@ietfa.amsl.com Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 886F83A11A9; Mon, 12 Apr 2021 01:19:23 -0700 (PDT) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit From: Ladislav Lhotka via Datatracker To: Cc: draft-ietf-netconf-http-client-server.all@ietf.org, last-call@ietf.org, netconf@ietf.org X-Test-IDTracker: no X-IETF-IDTracker: 7.27.0 Auto-Submitted: auto-generated Precedence: bulk Message-ID: <161821556350.10432.14910369341748800490@ietfa.amsl.com> Reply-To: Ladislav Lhotka Date: Mon, 12 Apr 2021 01:19:23 -0700 Archived-At: Subject: [yang-doctors] Yangdoctors last call review of draft-ietf-netconf-http-client-server-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 08:19:24 -0000 Reviewer: Ladislav Lhotka Review result: Ready with Nits The document defines two YANG modules - ietf-http-client and ietf-http-server - that belong to a relatively complex set of modules. The modules are well designed and nicely documented, both in the descriptions and document text. **** Comments - Sections 2.1.3 and 3.1.3: the sentence 'The "..." module does not contain any protocol-accessible nodes.' is misleading in that the modules do define data nodes that are intended to be protocol accessible after the corresponding grouping is used. I know this is a part of the NETCONF/YANG lingo, but another formulation that clearly says what's going on might be preferable. - Sections 2.2 and 3.2: the XML snippets use document elements "http-client" and "http-server", but these containers are not defined in the corresponding modules. This is confusing, my suggestion is to rewrite the examples in the JSON representation where no such top-level node is necessary. - Placeholders BBBB, CCCC and EEEE are defined in Editorial Note but never used **** Nits - RFC 7950 is cited repeatedly (4 times) in a general context, e.g. whenever YANG 1.1 is mentioned. It should suffice to use the citation at the first appearance. From nobody Mon Apr 12 02:59:18 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E952A3A1610; Mon, 12 Apr 2021 02:59:11 -0700 (PDT) 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, MSGID_FROM_MTA_HEADER=0.001, NICE_REPLY_A=-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 XkBLhdxvK74N; Mon, 12 Apr 2021 02:59:07 -0700 (PDT) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2091.outbound.protection.outlook.com [40.107.20.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 5545F3A160B; Mon, 12 Apr 2021 02:59:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IslzKYu9T2dFMur4wMg82eMOS5Eb6LMq9GBbjumHu/Vu++hTNmpL0rtme0TLLOMxx0R0U6DyBNAiIc1S9XTaFcqnYE+G5pPmb///b4gIJzn1XlFLmcSHc2qP+5vauyh2v+qgON0oXXevVrwsv/64enGyHLIgLAfcir3pFxSua6b637eVqQdJlfsxMzQm+OlVl5BiZLmyBngqjl9CPkQ6zHRVsu8UNr3jl9hnhjPFiJuj+O5qQXGB410LdEvATBWpCKl3QOWdiclia8gW+Ez6eaagvpOFP9Hs3wwbNBkKtLgzZ7XAomTh2z8PPBt1ChTZrZb7YwnYC35qFh0Ic0OiTw== 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=n63AGrPTKnNrRnBUaV/N8tW2JTfceRki0z7ZgvJ+MwE=; b=Y/uH3VYqgM2dMpDBfiJBkbHh9EHRLmt+cctIPnioci3Rxi5Je32x0rjMjeRDBRmdIjms+WMQB3+5A63zE3XABZgv9IdhLlHPtm8TEimrtSqSXzMI9/VZt1pHpm3NxmJYsh9ykog2kxcatoFqOvhiRpo22f5m+AJqvsXnivZWHW4Kd3gZ2I/CInfKuRm0do0hvJKW+wU7q0GmIVgdwCa0HbdGdr78deJWIAHpkuAZ90mvY2/gMxHy+tFtGDEcJOBI9bIfUQcWCKX9dvwEmYSiBq9Nw5VU5cdzRg+/5nkqPKz9Vct2auQrVB9Y/PNzxn8+nT7GypqL0TjAabdw07XpXw== 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=n63AGrPTKnNrRnBUaV/N8tW2JTfceRki0z7ZgvJ+MwE=; b=BGvB/WqAyEPZw5KGf1x5yAqkysHl7E2kVjz1qrK/+eRdICzv2Jg0SnyvyZ5zGxVjuyOj0NIYxTTGrfSN4Af60KV+NVEObYxtNOP+TfwOD/DWibn165smpLZqNIYxof4te1l6NIMyF4jEhJhnEjA1gZ0vUseo62IM6P1PZG3OwGE= Authentication-Results: googlegroups.com; dkim=none (message not signed) header.d=none;googlegroups.com; dmarc=none action=none header.from=btconnect.com; Received: from VI1PR07MB6704.eurprd07.prod.outlook.com (2603:10a6:800:18b::8) by VI1PR0701MB2192.eurprd07.prod.outlook.com (2603:10a6:800:31::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.8; Mon, 12 Apr 2021 09:59:04 +0000 Received: from VI1PR07MB6704.eurprd07.prod.outlook.com ([fe80::d461:48ec:82a3:1877]) by VI1PR07MB6704.eurprd07.prod.outlook.com ([fe80::d461:48ec:82a3:1877%9]) with mapi id 15.20.4042.014; Mon, 12 Apr 2021 09:59:04 +0000 To: "Mr. Jaehoon Paul Jeong" , Andy Bierman , Linda Dunbar , Yoav Nir References: <161652444666.30886.1452719047245335791@ietfa.amsl.com> Cc: draft-ietf-i2nsf-nsf-monitoring-data-model.all@ietf.org, "i2nsf@ietf.org" , Last Call , YANG Doctors , skku-iotlab-members From: tom petch Message-ID: <607419E2.6080803@btconnect.com> Date: Mon, 12 Apr 2021 10:58:58 +0100 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [86.155.147.182] X-ClientProxiedBy: LO2P265CA0108.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::24) To VI1PR07MB6704.eurprd07.prod.outlook.com (2603:10a6:800:18b::8) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.65] (86.155.147.182) by LO2P265CA0108.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4020.21 via Frontend Transport; Mon, 12 Apr 2021 09:59:03 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a4939d60-45d0-4d8e-ce59-08d8fd999acd X-MS-TrafficTypeDiagnostic: VI1PR0701MB2192: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9sSW+lZYOZ/Oylj4LMtY444OZDQ4w+H9GfBJuT/FOo91/F49Yop4rkFrcd8uaFjf49PofLqMf71+ArURN2cT/zVj3LN9bqrQSVzY/AfUBXW7haNwF8hIi+uJyD0GviimeAp+iH/GLOYACo4P7NnI5yCwxGCIrKUlfOp5J9yRkB3mIk438KnmJOUXwsnLLVqMCMIWXvH22NIC3D02e4QTAmY3iSB+LqrhZHm2IppoU9A9H7co3GTx2msRSIqg4akjhMygncFAUI0mWRIzLJNbicz4pqIPrT2xqlRc9PZ8bCSVtdXqDX8OarMjoiL8mRHp6GcCB0Q3VFQXGyLNP54NBus6TSciVAtn6zvzgMYP1uzfiFlAVMha7QsRDEBC0wKr9FCEyi3lvVrwTvc3nkZaTFnF7Yx7pNEwtbfLbZnHpdmRTCT5pQXz/VzUK8/5URpL0lPJUN9ojOgcKvpk1qoeniWmzPORUHnlgW7gS9/f+3JhPVJwv2NCqSFE1OoWNc1PcPuV4mqB0Azt4ykdZr2mobPk1xRU+PL2beSNYNGkq6Qj7RiGwEvzyZOot/FvCPKb+alQPv+n0PFkOY6RMpKSQa/qwMBPlvVUjwLKiwq/tXqjUf3Qe24pnw+RT5zmiIbzgL042m8dcaF5F33ZPYaHJ88/5hzpjhDeFsbIA/SdcSV9T5gn2ls+U7p5FFMOBnouSWGPa81ULsXxUaHFWaqqG+T/PvcL5Z/Daqyq8waRL+8= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR07MB6704.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(376002)(396003)(346002)(366004)(39860400002)(136003)(36756003)(66946007)(53546011)(54906003)(66556008)(2906002)(110136005)(6486002)(478600001)(2616005)(316002)(86362001)(52116002)(5660300002)(66476007)(16526019)(956004)(38100700002)(38350700002)(33656002)(966005)(87266011)(26005)(186003)(6666004)(8936002)(8676002)(4326008)(83380400001)(16576012); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: KsjkIg+zsoX4jnMdJBOlbiQyIcNQbw8Y6NU5G/yrKKXQR+oLHed7DXXgUKuRmZIX+umo8y6PQgtT9bYZwWqYK66f/DyAlgD5++xvcI9nErRYo8U4wml/ANjLsiHuMSkKA7/6yAicYFYKsGKye7OEeg94ddyaTpawgdWPD+r3KT2Y8M5atMFX40tzl3iwa7uzLcLzzeYs9bxhmhvoxfrAJ6wt2kXvnaJuyHE2MF/ltFZ62mEzZrop4//COc4m3VS64zGStd0+FtsdtoUBjeeAyEdvge0YtKMfwjnPydva0MhvgiTexzodia8qTeJOZK6HkuOlXD76RhCHGeC+SwonyMmX5cVsoSiKVfz6J7Y2fGtpwSjGD+e5zw3evZCf17ba5cYO48nKyKjYKsjxbfUKEOJsRIdLZF6iwVQ/3AhQR7Fv9jp4W2YihaYCHrW+Om8wVycdFkVXtx5aIocUeBzS5QkUHCCSILoHWpWjZne1sQlOr+h8WRzr33BNDIAVqhBIKQTh7KATFI0SeRaZBTOwmObAOPWciq1lW+zpe7xRrbu0SXUDtagFCdE8UnpMRzdsalc6keoYE6rtHQFSmuWWYb9FCBt8UMRkN46ul29dFSEULeAnaXcPoFeyPp204gdPS/rvRtBX81q/mAVU/9GVJ5trJLO0FpRUwGlfQo/Yi+hNLluogi/NIEqgl22cAdD6ZZACA7xv4KIEbPq3B2VAvBWxPaxW06qOnl+FMOXbzebPE0HDmDG77qA3MR05ZrFI X-OriginatorOrg: btconnect.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4939d60-45d0-4d8e-ce59-08d8fd999acd X-MS-Exchange-CrossTenant-AuthSource: VI1PR07MB6704.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2021 09:59:04.3411 (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: tFfwVhAO222uOehtMSV+wFXI04NwYiCWI9Ywk8DkyZ7aZe17ZRqfgL8z5NNSrXeLePh/N3014wpUcy1H9eDulA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0701MB2192 Archived-At: Subject: Re: [yang-doctors] [Last-Call] Yangdoctors last call review of draft-ietf-i2nsf-nsf-monitoring-data-model-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 09:59:12 -0000 Paul Some admin comments on -07; I think that you need to: - change the title in YANG revision reference - add to the I-D references RFC959 RFC8632 - shorten lines. There is a limit to line length in RFC as per the Style Guide. This is exceeded in the YANG where some of the path statements take it over 80 while some of the examples are over 100. - add a reference for the import of ietf-i2nsf-policy-rule-for-nsf HTH Tom Petcb On 01/04/2021 03:09, Mr. Jaehoon Paul Jeong wrote: > Hi Andy, Linda, and Yoav, > Patrick and I have addressed all the comments from Andy. > Here is the revised draft -07: > https://tools.ietf.org/html/draft-ietf-i2nsf-nsf-monitoring-data-model-07 > > I attach a revision letter to explain how we addressed the comments. > > There are the major updates in this revision as follows: > --- > o This version is revised according to the comments of Andy Bierman > who is a YANG doctor. > > o This version updates its title as "I2NSF NSF Monitoring Interface > YANG Data Model". It clarifies the NSF Monitoring Interface to > deliver NSF monitoring data to an NSF data collector (e.g., > Security Controller and NSF data analyzer). > > o This version adds an attack destination IP address for DDoS-attack > event to provide an NSF data collector with more information about the > destination of DDoS-attack packets. > > o This version supports a notification for monitoring traffic flows > to detect the source and destination (as a victim) of security attacks > such as DDoS attack. > --- > If you have questions and comments, please let me know. > > Thanks. > > Best Regards, > Paul > > > On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker < > noreply@ietf.org> wrote: From nobody Mon Apr 12 04:59:11 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C15313A1AAA; Mon, 12 Apr 2021 04:59:01 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -0.598 X-Spam-Level: X-Spam-Status: No, score=-0.598 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, FREEMAIL_FROM=0.001, HK_NAME_FM_MR_MRS=1.499, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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=gmail.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 4XgM_nRAazf5; Mon, 12 Apr 2021 04:58:57 -0700 (PDT) Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) (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 221293A1AAC; Mon, 12 Apr 2021 04:58:57 -0700 (PDT) Received: by mail-lf1-x12f.google.com with SMTP id x13so10792816lfr.2; Mon, 12 Apr 2021 04:58:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9/+D/NbRHQEqhoGdgBepCxqQr83hFrzvGoJ9KoThCBk=; b=hWSoYfbiYzQr2Nyfb0qfwerF/WL0SSvvXHNPFV0ly8gnqfITY55uUxMD5oIEHaIh8g LEALGEFuUQBwGZ96mwC5HEQjUE9TAF423BV8LoCJSCh2I9awzOWwtc5FEhfB9iiQuK9y 6942BykXDZB+n8VtqEcgaw+eVCMCHYGKC6jhF7g1GxigbjsCVK1Sr7mCej7GqpQMlJLA lAwdE69rvJCQkh2kHuhcgOk/VLrcW08MLPT5gDBRVlL/rWZO54GzTueJBZpZkmmghby8 plhpyImHPaqIk8pI7ifY1pCb91g+ChQ0ZVdZwL4Kx49qFXcjdAdNlghYRAAj2xKl3obe tguA== 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=9/+D/NbRHQEqhoGdgBepCxqQr83hFrzvGoJ9KoThCBk=; b=jS/GSbLXPg3DmVO3zYN46NLnl+ex60t+KBNriQZeav/FbNa8nIBlX2ck53SjjeE75X IIq9V/5JJRNdwBqvqsvPBLQrUWtGlcJlMEh+g45+l4yGQjwqysUck/+SdaHJ6Jujjfml SwRSa/u45NmNtuZg7sC81aMG5PvILwrrBT8GiiFAHV+zFQQTu7ppfaD9lRX2CoHZJAzQ OUzvtphGERuBxEk/JgkKkIntQNhlgg4Qc6Uc1e9NEOHhk2DtitkVenNatHyik2KX6V/u SXH79PtrKqtpSp9Qs5Do5ccmpdHLI52K7484wwNUuNg+iDEwCs8qej/l4n1PaqWB3r8N ykgg== X-Gm-Message-State: AOAM530Te0upx12LSZuO+1kBIG9qxGlF8lb5nwOaG0VPWSaGF+5pbrdt Z0a39q+Fh3IUk+C80dd6SO7FNvrygFoOw4+Ck3M= X-Google-Smtp-Source: ABdhPJz9jlmN8IwTBuk7jQkCRGIIRHIGZhyFf+Gfgb8itnMDklyh7BqRoUk7K/6TGkHAyat7UDIx35JSOmdThcuWNjQ= X-Received: by 2002:a05:6512:3582:: with SMTP id m2mr19308785lfr.10.1618228730020; Mon, 12 Apr 2021 04:58:50 -0700 (PDT) MIME-Version: 1.0 References: <161652444666.30886.1452719047245335791@ietfa.amsl.com> <607419E2.6080803@btconnect.com> In-Reply-To: <607419E2.6080803@btconnect.com> From: "Mr. Jaehoon Paul Jeong" Date: Mon, 12 Apr 2021 20:58:38 +0900 Message-ID: To: tom petch Cc: Andy Bierman , Linda Dunbar , Yoav Nir , draft-ietf-i2nsf-nsf-monitoring-data-model.all@ietf.org, "i2nsf@ietf.org" , Last Call , YANG Doctors , skku-iotlab-members , "Mr. Jaehoon Paul Jeong" Content-Type: multipart/alternative; boundary="0000000000009e46ba05bfc53cdd" Archived-At: Subject: Re: [yang-doctors] [Last-Call] Yangdoctors last call review of draft-ietf-i2nsf-nsf-monitoring-data-model-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Apr 2021 11:59:02 -0000 --0000000000009e46ba05bfc53cdd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Tom, I will address your comments. Thanks. Best Regards, Paul 2021=EB=85=84 4=EC=9B=94 12=EC=9D=BC (=EC=9B=94) =EC=98=A4=ED=9B=84 6:59, t= om petch =EB=8B=98=EC=9D=B4 =EC=9E=91=EC=84=B1: > Paul > > Some admin comments on -07; I think that you need to: > > - change the title in YANG revision reference > > - add to the I-D references > RFC959 > RFC8632 > > - shorten lines. There is a limit to line length in RFC as per the Style > Guide. This is exceeded in the YANG where some of the path statements > take it over 80 while some of the examples are over 100. > > - add a reference for the import of > ietf-i2nsf-policy-rule-for-nsf > > HTH > > Tom Petcb > > On 01/04/2021 03:09, Mr. Jaehoon Paul Jeong wrote: > > Hi Andy, Linda, and Yoav, > > Patrick and I have addressed all the comments from Andy. > > Here is the revised draft -07: > > > https://tools.ietf.org/html/draft-ietf-i2nsf-nsf-monitoring-data-model-07 > > > > I attach a revision letter to explain how we addressed the comments. > > > > There are the major updates in this revision as follows: > > --- > > o This version is revised according to the comments of Andy Bierma= n > > who is a YANG doctor. > > > > o This version updates its title as "I2NSF NSF Monitoring Interfac= e > > YANG Data Model". It clarifies the NSF Monitoring Interface to > > deliver NSF monitoring data to an NSF data collector (e.g., > > Security Controller and NSF data analyzer). > > > > o This version adds an attack destination IP address for DDoS-atta= ck > > event to provide an NSF data collector with more information > about the > > destination of DDoS-attack packets. > > > > o This version supports a notification for monitoring traffic flow= s > > to detect the source and destination (as a victim) of security > attacks > > such as DDoS attack. > > --- > > If you have questions and comments, please let me know. > > > > Thanks. > > > > Best Regards, > > Paul > > > > > > On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker < > > noreply@ietf.org> wrote: > --0000000000009e46ba05bfc53cdd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tom,
I will address your comments.

Thanks.

Best Regards,
Paul<= /div>

2021=EB=85=84 4=EC=9B=94 12=EC=9D=BC (=EC=9B=94) =EC=98=A4=ED=9B=84 6:= 59, tom petch <daedulus@btconn= ect.com>=EB=8B=98=EC=9D=B4 =EC=9E=91=EC=84=B1:
Paul

Some admin comments on -07; I think that you need to:

- change the title in YANG revision reference

- add to the I-D references
RFC959
RFC8632

- shorten lines. There is a limit to line length in RFC as per the Style Guide.=C2=A0 This is exceeded in the YANG where some of the path statements=
take it over 80 while some of the examples are over 100.

- add a reference for the import of
ietf-i2nsf-policy-rule-for-nsf

HTH

Tom Petcb

On 01/04/2021 03:09, Mr. Jaehoon Paul Jeong wrote:
> Hi Andy, Linda, and Yoav,
> Patrick and I have addressed all the comments from Andy.
> Here is the revised draft -07:
> https://too= ls.ietf.org/html/draft-ietf-i2nsf-nsf-monitoring-data-model-07
>
> I attach a revision letter to explain how we addressed the comments. >
> There are the major updates in this revision as follows:
> ---
>=C2=A0 =C2=A0 =C2=A0o=C2=A0 This version is revised according to the co= mments of Andy Bierman
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 who is a YANG doctor.
>
>=C2=A0 =C2=A0 =C2=A0o=C2=A0 This version updates its title as "I2N= SF NSF Monitoring Interface
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 YANG Data Model".=C2=A0 It clarifies t= he NSF Monitoring Interface to
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 deliver NSF monitoring data to an NSF data = collector (e.g.,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 Security Controller and NSF data analyzer).=
>
>=C2=A0 =C2=A0 =C2=A0o=C2=A0 This version adds an attack destination IP = address for DDoS-attack
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 event to provide an NSF data collector with= more information about the
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 destination of DDoS-attack packets.
>
>=C2=A0 =C2=A0 =C2=A0o=C2=A0 This version supports a notification for mo= nitoring traffic flows
>=C2=A0 =C2=A0 =C2=A0 =C2=A0to detect the source and destination (as a v= ictim) of security attacks
>=C2=A0 =C2=A0 =C2=A0 =C2=A0such as DDoS attack.
> ---
> If you have questions and comments, please let me know.
>
> Thanks.
>
> Best Regards,
> Paul
>
>
> On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker <
> noreply@ietf.org> wrote:
--0000000000009e46ba05bfc53cdd-- From nobody Tue Apr 13 03:27:43 2021 Return-Path: X-Original-To: yang-doctors@ietf.org Delivered-To: yang-doctors@ietfa.amsl.com Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 3439C3A08A3; Tue, 13 Apr 2021 03:27:33 -0700 (PDT) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit From: =?utf-8?q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder_via_Datatracker?= To: Cc: draft-ietf-rtgwg-qos-model.all@ietf.org, last-call@ietf.org, rtgwg@ietf.org X-Test-IDTracker: no X-IETF-IDTracker: 7.27.0 Auto-Submitted: auto-generated Precedence: bulk Message-ID: <161830965310.19073.2939550325560942114@ietfa.amsl.com> Reply-To: =?utf-8?b?SsO8cmdlbiBTY2jDtm53w6RsZGVy?= Date: Tue, 13 Apr 2021 03:27:33 -0700 Archived-At: Subject: [yang-doctors] Yangdoctors last call review of draft-ietf-rtgwg-qos-model-03 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Apr 2021 10:27:33 -0000 Reviewer: Jürgen Schönwälder Review result: Not Ready - You may want to align the document title with common popular titles, see https://en.wikipedia.org/wiki/YANG#Standards-track_data_models, e.g.: A YANG Data Model for Quality of Service (QoS) Perhaps it also makes sense to expand the abstract a bit. What is the difference between 'configuration' and 'operational parameters'? - What is a 'data module'? We usually have 'data models' and 'YANG modules'. - There are language quirks (e.g. missing articles, singular/plural confusion) that someone should look at and fix. An example: [...] Differentiated Services (DiffServ) module is an augmentation of the base QoS model. Remote Procedure Calls (RPC) or notification definition is not part of this document. QoS base modules define a basic building blocks to define a classifier, policy, action and target. - There is always the question of how many modules does it take to do something. - I find subsection 1.1 weird (I dislike one sentence (sub)sections from a stylistic point of view), simply move the statement into the section where you define terminology. Well since we are it, I am surprised that there is no content specific terminology defined or imported. I assume you want to import basic DiffServ terminology from somewhere, perhaps other terminology as well. You obviously assume that people know what a classifier etc. is. - "A classifier consists of packets which may be grouped" What? A classifier consists of packets? Please import definitions instead of making up your own ones. RFC 2475 for example says: Classifier an entity which selects packets based on the content of packet headers according to defined rules. - "A meter qualifies if the traffic arrival rate is based on agreed upon rate and variability." What? RFC 2475: Meter a device that performs metering. Metering the process of measuring the temporal properties (e.g., rate) of a traffic stream selected by a classifier. The instantaneous state of this process may be used to affect the operation of a marker, shaper, or dropper, and/or may be used for accounting and measurement purposes. - "This module imports definitions from "Common YANG Data Types" [RFC6991] and "A YANG Data Model for Interface Management" [RFC8343]." What is "this module" referring to? There are several modules. Do we really need that many? Should the decision to break things in to rather small pieces be justified somewhere? In general, the statement about where definitions are imported from is in the modules sections, not in the terminology section. - There are a number of MIB modules for DiffServ and it might be useful to explain how the YANG modules related to the MIB modules. - The module names suggests that QoS == DiffServ, which I am not sure is necessarily true. Given that these modules seem to be DiffServ specific, it may be better to use the prefix ietf-diffserv- instead of ietf-qos- - The authors should consider their naming scheme. Repeating words in identifiers makes instance documents verbose and hard to read: foo some foo ... vs foo some foo ... - In section 5 first module, you should explain where the filter entries are coming from. Apparently the idea is that the filters are augmented in but that should be explained. - It might be useful to explain which features are defined. - Why do you label some rw objects as -cfg? Is not everything rw here config? - Why is a classifier-action-entry-cfg associated to a classifier and not to a policy entry or a list of classifiers? I do not recall enough about DiffServ to recall the underlying model, it just feels a bit inflexible. - You seem to be inconsistent with nodes for lists. In ietf-qos-classifier you have +--rw classifiers +--rw classifier-entry* [classifier-entry-name] but in ietf-qos-policy you have +--rw classifier-entry* [classifier-entry-name] - Named meters are called meter templates? Named classifiers are named classifiers?? - Should ietf-qos-target be renamed to ietf-interface-diffserv and should it not be augment /if:interfaces/if:interface: +--rw diffserv-policy* [direction type name] +--rw direction identityref +--rw type identityref +--rw name string instead of augment /if:interfaces/if:interface: +--rw qos-target-entry* [direction policy-type] +--rw direction identityref +--rw policy-type identityref +--rw policy-name string (Also note that I added the policy name to the key!) Of course, if one would assume that names are unique across all policies, then the type leaf would not be needed but you seem to assume that it is a feature that I can have multiple policies with the same name and different types. - Why is this: "Any queuing, AQM and scheduling actions are part of vendor specific augmentation."? - It needs to be clear how filters combine. - Should some of the lists that have a single leaf be turned into leaf-lists? Or is the reason to enable augmentation in those lists? - Calling a leaf -addr but using inet:ipvX-prefix is inconsistent. I think you want to use inet:ipvX-prefix and hence you should adapt the names to source-ipv4-prefix etc. - I suggest to not UPPERCASE the module names in section titles. - Copyright says 2019 - time to move to 2021... - I am not sure I understand feature classifier-template-feature from the description of it. I am actually lost on the possible combinations of policy-inline-classifier-config, classifier-template-feature, match-any-filter-type-support, perhaps because the descriptions are messed up. - Please try to pick good names. I find 'classifier-entry-filter-operation-type' overly complicated. Perhaps 'match-filter-operation' is better matching the derived identities... I guess I would even go for filter-match-operation +- filter-match-all +- filter-match-any Finding good names is hard but matters a lot. I am lost on the match-any-filter-type-support, why is filter-match-any a feature but filter-match-all not? - Descriptions need to improve. Some have language issues, others are simply too short and not very descriptive. I think we like to have full descriptive sentences in standard YANG modules. - I do not understand filter-logical-not. This seems to negate filter-match-all and filter-match-any. But what do the combinations really mean? I assume 'not any' means none, I am not sure what 'not all' means, perhaps 'any or none'? Why not simply add another filter-match-operation, e.g., filter-match-none? - Why do we need two groupings for named and inline classifiers? If we need two groupings and they are only used once, why are they defined as groupings? Why do I need this classifier-entry-inline boolean? What does it mean to have this boolean set to false in an inline classifier?? - Why once classifier-entry-filter-operation and then classifier-entry-filter-oper? Why is the inline classifier defining the list filter-entry but the named classifier is not? Perhaps there are reasons but then they should be documented. - I am not sure about the choice of prefixes, but there is perhaps no consensus on how to choose prefixes. That said, prefixes like "target" seem rather generic (but as long as others do not pick such generic prefixes...). - Do not write "Latest revision for qos actions" if it is the initial revision. Ideally, revision statements do not need to change when a new revision is created. If you write 'latest revision', well, you have to go and make changes. - "This feature allows support of meter-template." OK, but what is a meter template?? How do the features meter-template-support, meter-inline-feature, meter-reference-feature interact? Can I implement meter-reference-feature without meter-template-support? Does it make sense to implement meter-template-support without meter-reference-feature? The descriptions do not really help in describing things. - Is there a way to reduce the number of features? Is it possible to define a baseline that everybody commits to implement? Client complexity grows quickly with the number of possible feature combinations. - For some of the groupings, it is not clear why they exist. Where is the grouping drop used? Oh, you refer to it using action:drop in the appendix, i.e., its only there for extensions?? - I am not an expert qualified to check whether the various meter-action-params make sense. This should be verified by people in the WG. - What does priority level 7 compare to 8? What is higher and what is lower priority? - Putting the description statements at the end of nested container/choice/ case definitions looks pretty weird since you get a sequence of closing curly braces with descriptions. - You seem to support an inbound policy and an outbound policy. Can there be more? I am asking since you use a construction with an identity. If its only inbound or outbound, you could instead simply do inbound-diffserv-policy +-- type +-- name outbound-diffserv-policy +-- type +-- name and if the names would be unique this would further reduce to augment /if:interfaces/if:interface: +-- inbound-diffserv-policy string +-- outbound-diffserv-policy string - You probably want to look at all places where you have name references and detail what happens if the names do not resolve to something. Do you require referential integrity or will policies not be applied or applied in a different manner if referential integrity is not given? - I just now realize that qos-target-entry is a list. So I can apply multiple inbound and multiple outbound policies. What is the result of this? - The source and destination port groupings have a reference to UDP and TCP. Does this imply that these groupings do not work for DCCP or SCTP or any other future transport protocol using port numbers? Perhaps simply drop the reference and rely on the type definition. - I wonder to what extend protocol number ranges practically make sense, but perhaps it is OK to keep the ranges for consistency. It is unfortunate that we do not have an inet:protocol type defined in the ietf-inet-types module... Your definition talks about the 'upper-layer' header but I think there is no such thing. I understand what you mean (ignore all extension headers) but the text seems to be referring to something that does not really exist. - Is it possible to reduce the duplication of the filter cases for named classifiers and inline classifiers? The constraints on both also seem to differ. - It seems some of the complexity of the model comes from the attempt to be extendible and in particular to support vendor extensions. I guess it would have helped me a lot if the introduction would have spelled out what the objectives of the data model are. There is a lot of reverse engineering going on in my head and this is painful. It would be much simpler if the document would have stated the objectives of the model. - I did not run any compilers etc. but I think this is fine since the modules are not ready anyway. - IANA considerations missing. - Security considerations missing. - The MITRE approval is funny given the IETF process and the note wells around in every corner. - The text refers to [RFC3289] for the diffserv architecture but given that [RFC3289] defines the MIB module, this seems somewhat surprising. - Why does this document need a normative reference to RFC 6020? Why is RFC 6020 referred to in a revision statement?? - I ignored the extension examples in the appendix. - I wonder, has someone tried to implement this? Or is every vendors doing his own thing anyway and this is more of a standardization exercise? How does all of this relate to say the open config model? OK, ignore the last question. ;-) From nobody Wed Apr 14 04:51:07 2021 Return-Path: X-Original-To: yang-doctors@ietf.org Delivered-To: yang-doctors@ietfa.amsl.com Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 6AD193A08F9; Wed, 14 Apr 2021 04:51:02 -0700 (PDT) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit From: =?utf-8?q?Martin_Bj=C3=B6rklund_via_Datatracker?= To: Cc: draft-ietf-rtgwg-yang-rib-extend.all@ietf.org, last-call@ietf.org, rtgwg@ietf.org X-Test-IDTracker: no X-IETF-IDTracker: 7.27.0 Auto-Submitted: auto-generated Precedence: bulk Message-ID: <161840106237.25677.18076046999764052110@ietfa.amsl.com> Reply-To: =?utf-8?q?Martin_Bj=C3=B6rklund?= Date: Wed, 14 Apr 2021 04:51:02 -0700 Archived-At: Subject: [yang-doctors] Yangdoctors last call review of draft-ietf-rtgwg-yang-rib-extend-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2021 11:51:03 -0000 Reviewer: Martin Björklund Review result: Ready with Nits Here is my YANG doctors review of draft-ietf-rtgwg-yang-rib-extend-06. This is a well-written draft, and my comments are minor. o 1. Introduction This document defines a YANG [RFC6020][RFC7950] data model which extends the generic data model for RIB by augmenting the ietf-routing model as defined in [RFC8349]. Nit: s/ietf-routing model/ietf-routing YANG module/ o 2. Terminology You import a couple of terms that are not used, I suggest you remove them. In 2.1 you introduce RIB, but since this term is defined in RFC 8349, I suggest you import it instead. o 3. Design of the Model The YANG definitions in this document augment the ietf-routing model defined in [RFC8349], which provides a basis for routing system data model development. Together with modules defined in [RFC8349], a generic RIB Yang model is defined to implement and monitor a RIB. Perhaps: The YANG definitions in this document augment the routing data model defined in [RFC8349], which provides a basis for routing system data model development. Together with the YANG modules defined in [RFC8349], a generic RIB YANG model is defined to implement and monitor a RIB. o 3 & 4 To make the text in 3 easier to understand, and 4 easier to read, I would move some snippets from 4 to 3. For example: 3.1. RIB Tags and Preference Individual routes tags are supported at both the route and next-hop level. A preference per next-hop is also supported for selection of the most preferred reachable static route. augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/rt:static-routes/v4ur:ipv4 /v4ur:route/v4ur:next-hop/v4ur:next-hop-options /v4ur:simple-next-hop: +--rw preference? uint32 +--rw tag? uint32 augment /rt:routing/rt:control-plane-protocols /rt:control-plane-protocol/rt:static-routes/v6ur:ipv6 /v6ur:route/v6ur:next-hop/v6ur:next-hop-options /v6ur:simple-next-hop: +--rw preference? uint32 +--rw tag? uint32 Etc. If each augment is explained in section 3, section 4 can be removed. o module description This YANG module extends the generic data model for RIB by augmenting the ietf-routing model. It is intended that the module will be extended by vendors to define vendor-specific RIB parameters. I don't think I understand this description. Here's my understanding, but I don't think it is correct: 1. This module extends the existing RIB data model by using augmentations. 2. The existing RIB data model is defined in the YANG module ietf-routing. 3. The purpose of this new module is to allow vendors to extend the the existing RIB data model with vendor-specific parameters. It seems 3 is at least incomplete, since this module defines some additional config param for static routes, and addtional state and statistics for ribs. It is not clear how vendors are expected to extend this model; the word "vendor" doesn't show up anywhere else. o revision We usually write "Initial revision.". o rib-summary-statistics leaf total-routes { type uint32; description "Total routes in the RIB from all protocols"; } leaf total-active-routes { type uint32; description "Total active routes in the RIB"; } leaf total-route-memory { type uint64; description "Total memory for all routes in the RIB from all protocol clients"; These three leafs have slightly different descriptions, so I wonder if there is a difference between "from all protocols", "from all protocol clients" and no mentioning of protocols? o naming of statistics The draft defines: augment /rt:routing/rt:ribs/rt:rib: +--ro rib-summary-statistics +--ro total-routes? uint32 +--ro total-active-routes? uint32 +--ro total-route-memory? uint64 +--ro protocol-rib-statistics* [] +--ro rib-protocol? identityref +--ro protocol-total-routes? uint32 +--ro protocol-active-routes? uint32 +--ro protocol-route-memory? uint64 The names seem to repeat some words where is it not necessary, e.g., there's no reason to call it 'rib-summary-statistics' under the 'rib' list. It is more that summary; so I suggest simply 'statistics'. Also, what is a "rib protocol"? Perhaps: augment /rt:routing/rt:ribs/rt:rib: +--ro statistics +--ro total-routes? uint32 +--ro total-active-routes? uint32 +--ro total-route-memory? uint64 +--ro protocol-statistics* [] +--ro protocol? identityref +--ro routes? uint32 +--ro active-routes? uint32 +--ro route-memory? uint64 o protocol-rib-statistics list protocol-rib-statistics { description "List protocol statistics"; Perhaps: description "RIB statistics per protocol."; leaf rib-protocol { type identityref { base rt:routing-protocol; } description "Routing protocol for statistics"; Perhaps just: description "Routing protocol."; o formatting I suggest you run the module through: pyang -f yang --yang-canonical ietf-rib-extension@2021-02-03.yang to fix some formatting and statement ordering issues. From nobody Fri Apr 16 04:50:20 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2A7023A22A9; Fri, 16 Apr 2021 04:50:15 -0700 (PDT) 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, MSGID_FROM_MTA_HEADER=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=jacobsuniversity.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 jPOkD5poujDR; Fri, 16 Apr 2021 04:50:10 -0700 (PDT) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80043.outbound.protection.outlook.com [40.107.8.43]) (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 111223A22A5; Fri, 16 Apr 2021 04:50:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ACsokFzmhfBxYgaE2KCeLm2pytlBqfy/mSc0WsOt+X4L6t8jqnSw9Gq3GO/dX94WohR+XtRT6ZRDwz/xzh+tq4f34oLSpUwPJnG/HjZmIsnXM6lOvDPu/+p6yqErDdMEkrnK9Ha7xhDIhs0f/GppANgMOqK6rrq9AnNmWkQmkl3qaBe/OM+V/N7wrUWXW3xCCCqnbobq/cGcW1lMzC/PAl5mN1Hlt9gjSoZxB7T5bmBm7AtPl2wVTmz/qq5e+5l3qTEjYq7O98G/9wul6/8pQw0DdKZ70JcSFt3NjUyWcAWFsx5aHp/QNG7qkDdyrWe0tGj42YiFkuZHTbi5CW0fHg== 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=Pa9O0ByLX1Y1vGIdOGjKQnuqSplt7mbl7OkDQQSxBz0=; b=AUKFFu/IJQT7qDsel+LFwMm7C43OenfI1SXeC79yX8pZgTvKINBS7wRF1bU2UdBsr6jkpZW254/sulmKixZ6faFZGduoZC1AP91qNXPRALVRK312nrU1dZc9llLarkOD6l91TJDZHGHobKn1zOMPLVPfjq5+RfEa0R7e72biFbeE02ozbsfCnDq20EBp8PkPXn2zkih4dTTeZCh9pg7cxY8pW4wlgjdrFCNT2T6sw+WKkY5pmXaVFmCZDmODiwx0ckd0LpC6rrfh9setaG1bGyIj4i7+b6HLrnZYfm9VoL0oGtU8PhbNIqh0vYMp/GROAd6loRpjaz0pe7Y1IVDv5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pa9O0ByLX1Y1vGIdOGjKQnuqSplt7mbl7OkDQQSxBz0=; b=a4v8AK0lF9i3VfyT4Ursf6iAiZYbCCgllmvCgWGOG4rf+PkY75YH7z3dTPPe2XrY6PolGBRZ0easGiWHXSqYpYxvFYdU6xbwpnjM2UNM9uJTVwBC3AxlqLApKVLhusGuHdL699bCi+Qjuu0e56n1jGIvst6dyi1q0kU3gqW63pk= Authentication-Results: watsen.net; dkim=none (message not signed) header.d=none;watsen.net; dmarc=none action=none header.from=jacobs-university.de; Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) by AM4P190MB0065.EURP190.PROD.OUTLOOK.COM (2603:10a6:200:62::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.19; Fri, 16 Apr 2021 11:50:07 +0000 Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6]) by AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6%4]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 11:50:07 +0000 Date: Fri, 16 Apr 2021 13:50:04 +0200 From: Juergen Schoenwaelder To: Kent Watsen Cc: "netconf@ietf.org" , YANG Doctors Message-ID: <20210416115004.fqhitq6jofc6vjih@anna.jacobs.jacobs-university.de> Reply-To: Juergen Schoenwaelder Mail-Followup-To: Kent Watsen , "netconf@ietf.org" , YANG Doctors References: <161045360252.14510.16755799701987783827@ietfa.amsl.com> <010001778e67638b-53d8c33f-82f6-4bda-881a-3cf881c06c95-000000@email.amazonses.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <010001778e67638b-53d8c33f-82f6-4bda-881a-3cf881c06c95-000000@email.amazonses.com> X-Originating-IP: [212.201.44.244] X-ClientProxiedBy: PR0P264CA0188.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1c::32) To AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost (212.201.44.244) by PR0P264CA0188.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1c::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 11:50:07 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 32b91ad8-525c-44d1-bdf4-08d900cdc7d9 X-MS-TrafficTypeDiagnostic: AM4P190MB0065: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KTuBBLrsQbxL8j3J0+SPkbQCMENl6FzBS1KWJss+TBVf2HNH+JPwX1UYqfepJFLHYQ36cYvEZBwxqyfkxRsjG/WgJeD6f9u7/CkOj/SNLbf2bCR0+yehpY7E106NyrXDlQmcKCiQGcPwE1VNnvY1ETxuJmV6RotGN1HZ39mNpQ8WNZZelgbqAQf/9XT4wVuv9oW2fFt8N4o5wL7zYAtfnpCcUpDGW9z2ZAkQGFF+rytJU3K9VD1EkEjcSGd4GEz/8KE8Xf6c80qQMfOcVguMcg43kXoXTR4oZXjKyJhsemoLO9QCjQjEFAjWxZMf+E9V9P+8YnjQfc6iLrYUZKg3kdg+rw9i7UVIQ9hT4Hhr4Tk9k334kyCP+QrVqFu9S9tHfarjeS/Ug7ftTsQdnR4mMe3xzAvbaIMs8H5ESq4B3BYekd/leTErfZNA7d5R61/HbkFMyZPjWrPVs+ILfbC+gOKaLYyS+YsjAOA8KHRb06D6FZGrrD6thAHKiZ2Lp2riyxqFRbV21N6szTF8kBvOxCT/hOzVXDXTeXSAmzcfDYamfb11JWeT10z3c6GZS+TnQKsV4pb/4c6/KGfgEBt3A2SaMBAMZwuK6Gg+4vJd0vsSqUWPPlClc1rT3CJKu03WJlSSiSvoEfRtvkaPs+/UMLkJ2RdxLAQL5Ed2Cxc1IqEKT4mJscqGVFF2o5c5WmJrzLyaqzuNSZc3ZZ0aJT048C+6nhJhJtjLw7J2cwa+mfjxM6CZMk/XbBcPdB6DZQFX X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0P190MB0641.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(376002)(39850400004)(346002)(136003)(366004)(396003)(54906003)(6666004)(786003)(316002)(66946007)(66556008)(86362001)(5660300002)(8676002)(8936002)(38100700002)(38350700002)(1076003)(478600001)(66476007)(52116002)(3450700001)(4326008)(956004)(16526019)(186003)(6496006)(6486002)(2906002)(83380400001)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?NjhBYWloc0wySDBnWUdyNloxaHNLcFFlbDcvODBUZkRyS0VKRXZkd2JrYm9m?= =?utf-8?B?TXlVbU5EVjRVcFdVejVpWnhPeDVCYkhIMXQyWmdQc2VGUkVveDc0OGgxT2Q4?= =?utf-8?B?VUZZb0hSRStuNEFqNSs2NDN5Qk1UK2FNUkdiWUU0VkR0OWhXL3V1MlNpREpH?= =?utf-8?B?cmZ0UGJWbC9BMEsxNlZBU1J0R3orWHpocEVoY2p6cC9QZ05EbWwrNHVYYlJl?= =?utf-8?B?c21ta1ZEeUY1d0QrM0MxNVNVTHBvUXQ2cExpZmR2eVVKRjhBY3Y1MGhCUTNI?= =?utf-8?B?c2prblRzTXBLZzhDQVcreVV5Z0RKSmU4N0VEekpNTDkyRTFjQmJyQTM3OGsw?= =?utf-8?B?RVRWT3d1Qmg2cUlEbnZoU0xmQTY4Zk1OR0pvSVF5Slluc1hoVHRDQkxiVkZH?= =?utf-8?B?WStHTTBBMktqQXJaaCt3VG5qcVNZbHF5R2R1ODJJOEt2SFBIUGtPWnZiRnkx?= =?utf-8?B?NG9vMXduVkhCQkpLTEY3ekhmYjFQSk9rbTJpRXpaSDFCdnRYOVQyWkNzaEJW?= =?utf-8?B?L1BTSmJqc1ZxWERLTWQwN2hsb3kwckhrdWk2SHM5Q1h5UU5vT3JnQ1lzVkZQ?= =?utf-8?B?ZGxFY0hONi8zcjgvMnNQYk5nZXlzaktOaVZhN1RqYjg4L0Radnh4L1lUdVNS?= =?utf-8?B?WnhEVUdOc3NZeHB6VTVuSXZWRElGSDRqR2VQUTgwZ2dleXRiQm1ZM2JTeUtk?= =?utf-8?B?MW1wMjFNY1pzdjk2cXYwSVE2SVRHYVpvMEI1Y3NIZEpRQmwyelU0TDBFK1ZE?= =?utf-8?B?UzRSTGd6T2tnWXZVYzBJTFBqNDBiZm1POGNPSkxqM0FFOThZTVVpdTc5YmRv?= =?utf-8?B?THdZa0lYL1RabzVMWmovNHppc2xMM2lMNmlHTEExNkhRTXVXTzkrdkxEYmw5?= =?utf-8?B?aDZKN2lKMm1OVGp0dWhlWUxIblhPOTJLYnpUOFJkeEdKNEdmcHVGRGZ0OFpn?= =?utf-8?B?WmtBNVhOUFV0SzVyOHk0RkRiKzdqRUxSUVJ3L3JKaDhXak83OHFycUl2WEwv?= =?utf-8?B?SHJzd3VyUEFiYUJoUWJOLzgvLyt4T2xsR0liWnozWTBEeTZueXJtb0tRZDRZ?= =?utf-8?B?UW5FWmRSMXZ4Tis1ekNmYVM4L3lCZVZoV1hDUkg4ODQyYmZtZi9oeHMxVFl2?= =?utf-8?B?UXlualY2TmhxS1FJbHg2NnFBREIvbUJZVWNFVWVnTkpZdXNXN2JOMG14UnNU?= =?utf-8?B?Q2k3STErK3g4UlQrbjluTHNQZlB2aTRzbmlSUm5PKzJ3Rmc5c1hUUnF4YjlQ?= =?utf-8?B?UEZLYVphWHZSVDJ2eFVINVpaMjdUb091WXd4bEhqRzd0VmliakVGTUR5Nkhj?= =?utf-8?B?aEJ5MzdXckNwanpaa2lNMHRrUTc2V1NiTVl4ZUN6T1orWFZUTStSVmlwSzVk?= =?utf-8?B?TlFtUUNkL0pTcU40Q1Z1V0hKK1IrakhiRXU5WGRTYk1YaEsrWWNsTEdXUUE5?= =?utf-8?B?YkFoakJLWmdrdnVnanViZGNVUi9iOUVPMEIwQ0pZbUgzNHlsVDlJT1NDRlhR?= =?utf-8?B?QVh1dlNZbkttOHRxWm9NK01sRmNuTjRzS1hTdmlvenJiSnFZeUgvSDUrUFVV?= =?utf-8?B?ajA5cVYrU0NyNnA4NGR4RzloZlp1RUl0dnNFWjJGaUdTb1Q4MlEycjBOTlJq?= =?utf-8?B?eHNOUXpIejlLRldHc2ZCQ1VybHJDbmoxOUlIdWhXOTdWMkc3d3ZleEJVL1Az?= =?utf-8?B?ckV1eDNubS9HWHgvemZSRjZQY0xQNmhtbG5pUGNmeGZGcjJFY01hWWI2aU1I?= =?utf-8?Q?Pj62e6MLJh/RxHb8HAVAji9ROq2VbIntYbNJGmw?= X-OriginatorOrg: jacobs-university.de X-MS-Exchange-CrossTenant-Network-Message-Id: 32b91ad8-525c-44d1-bdf4-08d900cdc7d9 X-MS-Exchange-CrossTenant-AuthSource: AM0P190MB0641.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 11:50:07.2191 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Aou9bSI0lG6bX2LD0KRyx/lkbp0HcBJhC9zkq3349rQoHaprdSJXtg0ZAAEBsYJ2GbeS0FBUwVda1s5u1L+H0fr6SGsME9HsQXOKI/dBIBQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4P190MB0065 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-crypto-types-18 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 11:50:15 -0000 On Thu, Feb 11, 2021 at 12:04:36AM +0000, Kent Watsen wrote: > Thank you for your review, Juergen! > > Below are responses to your comments. > > PS: this response took longer because I had to triage with Security Experts on a couple points. > It always takes longer. ;-) I cut things resolved. > - Does it make sense to have a new notation like > > > > | The diagram above uses syntax that is similar to but not > > | defined in [RFC8340]. > > > > or shall this simply become regular text? > > I find using tree-diagram like notation for features, identities, and typedefs helpful, especially in showing the “if-feature” constraints and hierarchical relationships between items. I recommend adding these enhancements to RFC 8340. It would be helpful if someone could whip up an I-D so these documents could reference the I-D instead of having the "The diagram above uses syntax that is similar to but not defined in [RFC8340]” language. > > That said, I also used a "rfc8340-like" diagram to list all the groupings in a module. It seems like the consistent thing to do, but I can’t imagine the RFC 8340 being updated to support that output, so I replaced that diagram, with a normal "xml2rfc" list, in the entire suite of drafts. I am sorry, I should have been clearer. My comment did not concern the diagrams but the mere fact that you have | The diagram above uses syntax that is similar to but not | defined in [RFC8340]. instead of simply The diagram above uses syntax that is similar to but not defined in [RFC8340]. and this is really an editorial nit if at all. The diagram itself I like, it would be nice to have them in RFC 8340bis. > > What is 'encoded in the format specified by the "format" identity' I > > assume this refers to the key value that is encrypted and stored in > > encrypted-value, no? > > Not only was the solution unclear, but it was rather upside-down in terms of how to encode encrypted values. Please see the “diffs” to get a sense for how the solution was changed. I happily trust Russ here. ;-) > > - I wonder why this is a SHOULD and not a MUST: > > > > "Identifies the symmetric key's format. Implementations > > SHOULD ensure that the incoming symmetric key value is > > encoded in the specified format."; > > > > This statement shows up several times when the key-format identities > > are used. I wonder what this means to an implementer. If I receive a > > key format (say one-symmetric-key-format) and a corresponding blob > > of data, do I have to decode this to see whether the format works > > out? If later the key-format is changed to something else (lets say > > octet-string-key-format), do I reject such a change or is it OK as > > long as the binary data I have would be a valid value given the new > > format? Perhaps this is implementation specific? Well, since we deal > > with keys, ... > > It currently a "SHOULD” because some implementations may assume that clients always configure perfect values, and so it becomes squishy as to if they MUST. If a server fails to validate the base64 contents (which are outside YANG validation) as they’re being applied, then the server may run into nasty exceptions when needing to use the value at runtime. A nice system will decode the base64 values and verify that they contain valid values during the commit process. > > Make sense? - leave as SHOULD okay? Thanks for the explanation. I am not religious about SHOULD vs MUST here. I have browsed through the diffs and they look good. I did not do another full review again. /js -- Juergen Schoenwaelder Jacobs University Bremen gGmbH Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany Fax: +49 421 200 3103 From nobody Fri Apr 16 05:15:40 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 63E013A236E; Fri, 16 Apr 2021 05:15:35 -0700 (PDT) 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, MSGID_FROM_MTA_HEADER=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=jacobsuniversity.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 GRFoLAyC4uSm; Fri, 16 Apr 2021 05:15:30 -0700 (PDT) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40071.outbound.protection.outlook.com [40.107.4.71]) (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 57C0D3A2371; Fri, 16 Apr 2021 05:15:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jnoJAIvGVekHQl/qRiGD+IybBESB8Hjau4hquaLERMuYKyHXuFosy3KaxVOFXWAi+3eJyn7khGg3jRbzXADSHp1QDSmdCVhydD3gNLZYXkIFzmSN+q8B4TfaVOzpTbXmm7yp28GyT4fm29cmlXLJVIagJwb6fB/9Lc1zugkcnYaa8KZYXhuZdV+Z/c8mMLYhGzAKz2mqJC1t5umpXXs4wEM7+uojtfvBJ34+R2nwvMGDVf4HyQE9utd6rlOF55ZsNOWsIOe4wXo8FqpEHYEXb8oyjpB9EcfsuC1p2lGbKjGs9OB0Vh92xNmtHOriazqY7UcJaXlOfIjUlG+TnxAZGg== 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=dRYpr+7BRDsIri9FvuVduVkNGOuvqbdH6ZweZV28/Ws=; b=ceou7cGfVJt2JKjfYkhLPctDJY3w52h3UmmUFSNaSwQoJK1Gpe0jzn07Ek44YdUXrM/N2oT9tWXrkLX1VKQRAmucAZT/zuRxh+VYv7GWXqQWnu8UbiQ2lkAygICtf3IYNodkLy8k/EZkzHIACd9H1UiolSTDfE2v92qbydMKxPZSAewRNzKlT0fxUIh0aPW+bljQifkbOGIaTJINzzIGM0zwUozbd2kuBIJp6PAWh2C1PTPADgOExXS11H3Dbr0aHPW+Axnc684r4GTCiL0sMx590Oo6lz1JVR7cdAQqeMbo9s8y0Ym0ApO1LRFcEc8q0K8C9bJ0s0mYk5c9j86idw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dRYpr+7BRDsIri9FvuVduVkNGOuvqbdH6ZweZV28/Ws=; b=l87srOs3wptaWAb07EPJHGkVu0gIgY0AK/edSz5wJACCV37ml9L7W2ko6tONK2EWDX1xhb3zPvqu2szKSA7csihcF4X1tx+DfOAuOjPS/0+IR8ouocX9Af2lbMirQVGjaMOtqQsC/9zbN0Trbqso8dOFt4zxBA0bpNy5lb5T2sY= Authentication-Results: watsen.net; dkim=none (message not signed) header.d=none;watsen.net; dmarc=none action=none header.from=jacobs-university.de; Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) by AM9P190MB1108.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:266::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.18; Fri, 16 Apr 2021 12:15:28 +0000 Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6]) by AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6%4]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 12:15:28 +0000 Date: Fri, 16 Apr 2021 14:15:27 +0200 From: Juergen Schoenwaelder To: Kent Watsen Cc: YANG Doctors , "netconf@ietf.org" Message-ID: <20210416121527.z7z42ptkhxc734vy@anna.jacobs.jacobs-university.de> Reply-To: Juergen Schoenwaelder Mail-Followup-To: Kent Watsen , YANG Doctors , "netconf@ietf.org" References: <161047687248.13931.17900123352005904827@ietfa.amsl.com> <010001778e67c4e0-c179290b-6eba-46df-b17f-ec474c44783c-000000@email.amazonses.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <010001778e67c4e0-c179290b-6eba-46df-b17f-ec474c44783c-000000@email.amazonses.com> X-Originating-IP: [212.201.44.244] X-ClientProxiedBy: AM8PR07CA0027.eurprd07.prod.outlook.com (2603:10a6:20b:21b::35) To AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost (212.201.44.244) by AM8PR07CA0027.eurprd07.prod.outlook.com (2603:10a6:20b:21b::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.8 via Frontend Transport; Fri, 16 Apr 2021 12:15:27 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f764a260-67c0-4f23-22d8-08d900d1524d X-MS-TrafficTypeDiagnostic: AM9P190MB1108: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jPpKqGjnUy9s9SlYTRlcA0/zfsEPFlk6yDKmS670UTGPuB5QVo6gJhAatTHkBz5sQ/6jdCuJM76q1qyglitL9F3R1t5J1zU5/SZldA55X5BwWzhyro1MXOBDVFQi6sfZhFM2DpPNk3UqxcD+j5onBAuhYgm52TKnIylboWREX+ptv3pORVp0oG+997VDS/ir1rXAT4d7Ziv/Y1jzrViWy4WNSBWVnecg6/oMzl1lPunmkKAKFnLyguEBPV5X97aAmR717eCi3fMziWnCn2EC0GbWDA/BteyL2n/VhMgsxidy0vGzRse7zUPr9SfUAN/15fvmjq1tWvMW3yu2rQ6mih6CYpvwZuGY7+mq0q9j7aG/RmXvgxblQxhz8YFar4qsyQ7ffV4wupjiPe0sRHREacfw46BIF+/7h0ba1D/N7JZtUV1PCUGRjYFT9G15ku8GKjQKq4jFO9Of5zw3ze1O7Hy/ICEJh7ZG66XY2gAXAB7Is7p1IWonWZUBw5vuciEfN5cShWqNqz1zDdQQxW1dcHs7uvYVxYd0czkRD8yHxcsfBUgHgV99roaS55ReEsTAN7bvQGwbClBBDPiiwmw6MhveflT6JkjaXsSiizkKvp8tff0SEuUFBwCt6YpEMmxqoki0/SgnmWu0XvnfpqfgkRumJAKcnHP7IFebkcanDG3JRhwy1gVXTo7O7VNF9fbawIPjgTHEFSAfyIBwwKo21JbvSLzqk7bWL7tFvpGz14dnQ4bIpAHtpP28qt/g649u X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0P190MB0641.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(376002)(366004)(136003)(39850400004)(396003)(346002)(38350700002)(2906002)(956004)(4326008)(26005)(38100700002)(786003)(478600001)(66574015)(1076003)(8676002)(83380400001)(16526019)(66556008)(316002)(86362001)(8936002)(66476007)(3450700001)(54906003)(53546011)(186003)(52116002)(6496006)(6486002)(5660300002)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?TGo4ZHFhNDR0ZGppZTZTckVIaktUR2doQnd2SlcvMW1jNE1DNXAwVTRRazV5?= =?utf-8?B?M3VEdVQ1WnYyU25LMTdNK3B1a0tXYVRBY2FZSTFZSW5wWU9QZU9ZV3F4QXBv?= =?utf-8?B?Z0hMZmxXeTluT2FrUThHM2dnb3kyTUNyWkNDYjNndk9GdlI0MEdIeTUzOHMv?= =?utf-8?B?VGJveEg3SUhpdUIreVN5c3RLenNoRlpDdXlmUzlaNXhwd0JIOEZPMmcwZ3A3?= =?utf-8?B?dTNYVEc3b0FKRzZDY3dWdkIzeTU5d29Gb3hieGxTRW5EdldCdFQ0RFNhaHFr?= =?utf-8?B?Zm9pOG9iZEZjRElLSi9ZeGVzRjZ1cmZzeUNyckNobmMySEtRL0xBSS96QXAr?= =?utf-8?B?Z2ZudldVYW81VWNtdjNoeE5zc1ZtYTVEeDNjcEdnYzRZT1pVQXV6d2t4Zld0?= =?utf-8?B?bEMyTGVZNlE4dVhoakZldUZKTzY0NUw4R2JpU2JXaWRpU0pDUzZqejFrUkN4?= =?utf-8?B?WCswM2d5VlhTUFVDOEo1SWhRRGxpa2NxbGthVG5PQWFwdndoa0MzelpmdDRW?= =?utf-8?B?ZVpmTzZJcjVxbVlvVVBIakNVMmFQL0RlaXRVaEFjTzZUdk5EQlptekx1a3Za?= =?utf-8?B?R0dVL2RZMzd1TXpXVHJLN1dYMXVQUG5OdnhLdU1pRzEzR0dsbXNqZWNhblIr?= =?utf-8?B?NUVnUzFqd2pZN2oxdXhMOHRjVU9xRHFDZTRReU92SlpOc2YxZ2J0ZWQrUUJR?= =?utf-8?B?UHdEeFV1MllyV0hJQ0MzT25tNXlGY0ZJRG1DZHRxOVdzMkl3Zm9jU0x2aVpO?= =?utf-8?B?cXhMVUt0UjdXWExlL0s1UmhsL1VCTEZ0c0ZWVWZ3OHExMGNWeHkraTFuTmVu?= =?utf-8?B?NlcvRzN6ei9pTFlhOTcvd3BLZTZ1eGcxSG5UdlZUTWZmSy9sOEt1cnBWVnZ2?= =?utf-8?B?YllPUGVyd1JPcjZMZGU1M2xMd01tcXdXUnFjNHh3RWRCVUk4Y0s5dkY1VHRt?= =?utf-8?B?VExpQ1B5NkFadUZ2b0JBOVM0NjF3bUZPb2xtNTN2bGFlUGZuV1lUZ2dmTEdm?= =?utf-8?B?dEtCMzZnNFljRXVvZTRVTXZVRGk3RzJVMWJTSFo2MGhTQmNKbGZwQ0lXd1By?= =?utf-8?B?U1Mzd2JHMG1YQXp6eWYyOXd5YmhIM2Z5cmJQelBWUjVDVG5YblREUXVnRE1K?= =?utf-8?B?b1dOS25ONFQ5enFDZUl1RzZKRDh6MjB4c1NNSGU3NW96OGtFaHZNUXhsd1V2?= =?utf-8?B?TEJzLy9zZFR3VmIwemNmVEJRTDUwazhvdDJ1bzU1TUd2VSszMW9oSE8yNmhz?= =?utf-8?B?Y2Zlb3d3SjBaeDh1SzkySEdwOXdmRjhSZHI5eE5IcGw1VjJya3R2Y0VtaHUz?= =?utf-8?B?MG5rYittWWZZQVpNdmVVaWlvQ2E3K0t2QXd6NER5MzdOTVZDOHpmSG9jWm9y?= =?utf-8?B?c3dyM0daalhGRzU3Z2lkOU1QSVYwdTlzamJ2aVJMdVpWQUtnU2RBSWVRRWxs?= =?utf-8?B?a2pPSW5TaS91WExxUVJ1U21VQlk5OEQ3MGk2RzFiU2Y2WnU2bm1rYzhjeHVw?= =?utf-8?B?V3NURFU1cEFoQy92bnFUaWxQRjRLRkw1d2ZZSlVoVGRTWDltRHlDMlJ4NDRv?= =?utf-8?B?QlBMVFlLKzBjUWNwa1N6WVArbmN0OUp6SFh3U3hPV0FhVGwzRDViMVZFT3NX?= =?utf-8?B?eVkrYnhlWkhwaVhuL2hZOG1yczFId3Z2NEQxK3NDcFN0dE5XQ2lqQnRpRDd2?= =?utf-8?B?VU91UnNMdGxxZjZuSnFtelZ1cGY2bnh3VU5Ma08rNTNoS3VIYk9PYytIOWhH?= =?utf-8?Q?WAtGGkTQPYgyr18+1A04EX3INRayjPHI3lxbIXk?= X-OriginatorOrg: jacobs-university.de X-MS-Exchange-CrossTenant-Network-Message-Id: f764a260-67c0-4f23-22d8-08d900d1524d X-MS-Exchange-CrossTenant-AuthSource: AM0P190MB0641.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 12:15:27.9633 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WvNnSBZ4wS3piLwOZqkKXI87WyxaPkxFDclfJ04bMX/6w4csbn+U+mIUlzhvrqV48whuZdGlh4O15BhhGnyM2CsHorMnazWiDYaJ8YCtF78= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9P190MB1108 Archived-At: Subject: Re: [yang-doctors] [Last-Call] Yangdoctors last call review of draft-ietf-netconf-trust-anchors-13 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 12:15:36 -0000 See inline, I cut what I feel has been resolved or does not deserve a further comment. On Thu, Feb 11, 2021 at 12:05:01AM +0000, Kent Watsen wrote: > > > On Jan 12, 2021, at 1:41 PM, Jürgen Schönwälder via Datatracker wrote: > > > > Reviewer: Jürgen Schönwälder > > Review result: Ready with Issues > > > > The crypto modules aim at providing a flexible reusable infrastructure > > of groupings for modeling cryptographic keys and related concepts. The > > flexibility of the definitions provided of course comes with a certain > > amount of complexity. > > > >> From a YANG perspective, draft-ietf-netconf-trust-anchors-13.txt is in > > a good and close to publish state (a couple of minor issues left). I > > also tried to understand what is being modeled here and hence I also > > have some questions concerning the concepts modeled and I hope these > > are easy to answer/resolve as well. > > > > - I have compiled the YANG modules using yanglint 0.16.105. > > > > - The prefix 'ts' is rather short, the set of two letter prefixes is > > rather small limited. This comment also applies to the other > > documents, crypto-types uses 'ct. Perhaps this is not a problem > > since collisions can be handled but if we go for rather short > > prefixes, we will have to exercise the collision resolution. (I see > > that 'ct' has already been used by ietf-complex-types, RFC 6095.) A > > possible alternative could be to use sec-ct, sec-ts, sec-ks, ...). > > Ugh (me, whenever a naming-discussion comes up ;) > > I don’t know why prefixes are registered, as the prefix is defined at the top of each module. The only value I see is not syntactic but rather for consistency, to aid human readability across disconnected sets of modules. > > Prefixing the prefix with “sec-“ may work for trio of drafts you just reviewed, but it seems undesirable when getting to the client-server drafts, as they're more *protocol* oriented. If “ks” and “ts” aren’t taken, then maybe we claim “first mover” advantage? If not, then maybe “kstore” and “tstore” might be meaningful fallbacks? Assuming we claim “first mover” advantage for “ks” and “ts”, then we just need to handle “ct”, which maybe could be “ctypes” or “cryptypes” or “ct2”? So, 1) prefix the trio or 2) claim first-mover advantage on two and figure out something for “ct”? …or maybe 3) keep “ct” also noting that a) “SHOULD NOT” is not a “MUST NOT” (in the text below), b) my “rant” might have some merit, and c) short and terse is nice (per your next comment). > I suggest you think over it and pick whatever you think seems to be a good solution. ;-) > > - Is the feature truststore-supported really needed? Does the YANG > > library not already provide the information whether a module has > > been implemented or just imported to access type and grouping > > definitions? > > This was discussed before. The bottom of Section 2.1.4 says: "The reason for why the "truststore-grouping" exists separate from the protocol-accessible nodes definition is to enable instances of the truststore to be instantiated in other locations, as may be needed or desired by some modules.”. Case in point, the MacOS “Keychain Access” utility maintains both system-level and user-level trust anchors. [UPDATE: you had a similar comment in the keystore draft, which you self-resolved there and then said to ignore this comment. Just the same, let’s ensure the drafts are clear.] This explanation gives a reason why there are groupings. My question concerned the feature truststore-supported. Is the YANG library not already providing the information whether a module has been implemented or only used for getting access to definitions? In RFC 8525, you have a list of modules implemented and a list of modules used for import only. My question is does feature truststore-supported mean the same as the module shows up in the implemented module set in the YANG library? > > - Does it make sense to be explicit about the fact that the cert/key > > references are all weak references in the sense that they can exist > > without the corresponding cert/key being present? In other words, in > > order to safely delete a cert/key, one would have to check that > > there are no dangling references left (which is difficult in case > > references are scattered over multiple (proprietary) data models). > > For YANG savvy people this may be obvious since there is no > > require-instance statement in the leafref type definition but not > > every implementer may recall this - and it would be good to document > > that using weak references was an explicit design decision and not > > an oversight. > > Correct, there are no "require-instance” statements, but the "require-instance” statement defaults to “true”. Do you mean the text should be explicit that strong references are enforced? Oops, my understanding of YANG is aging. Since referential integrity is required to be valid, nothing needs to be said I think. Ignore my comment. I have looked through the diffs, looked all good to me. /js -- Juergen Schoenwaelder Jacobs University Bremen gGmbH Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany Fax: +49 421 200 3103 From nobody Fri Apr 16 05:38:02 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7CD1B3A240B; Fri, 16 Apr 2021 05:38:01 -0700 (PDT) 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, MSGID_FROM_MTA_HEADER=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=jacobsuniversity.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 dLB1nRHsz4Zn; Fri, 16 Apr 2021 05:37:57 -0700 (PDT) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60082.outbound.protection.outlook.com [40.107.6.82]) (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 CC8B93A2433; Fri, 16 Apr 2021 05:37:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kgtIPDm8UdT6y9XYDthJ9y0q5uc/ecFUgAWOh3xm+QO9C4JnLdBc7RH8HF/G6mBAvmJzzr4YEN9POAriEvXMg2ZPKHDrdPZJpZaXo/O9yTMx0/CtSpK/DYUL1PnXy7B5uSiS7yoig0o8996kZZ6k2sbvyGqTi/mdvxtgL/jWvNenYnL9qWHkwRNrf69rKN6G8OoLL7PK7Xi4VHP7XIqFet9Gna/+76llWoBBtEyLWJwqRwA87tCt+ZJBjHPs7m7Z7WbPcNK5cfRfOjVEVUSnwlsD+9VeTEZup5vGViTntzcTy616hKVNDsTpIArqwu8OLt/c7+Cu+BhgmEk3RHngag== 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=fB9Qjq0P5LY36o7TasL+07/JZfcZ9ZgvDD1mCJ/94+M=; b=cScu+Kw0Ed5rWNmdJbqbY8OLsQzTuID3J5m84cRnoYPn8KozxUPrmSROBMs4co5k8ngKt7UnRRbQDX9vSpko1seXAVuI7kx6yTYVwngi9Q6fMHwQorIYgTOCB+BrvUkVHCmUANFJpGWFC6JtZr9LfXi8LYsl2mGT7ROAo7NrogPqQ3r5blRO+z2VWtBe8SpkYlHGBRXdku2/lVCgpJdJ7mSQYIV0kZz84rLg+XKNhVWvMp7bxGtHFQaKDHNFV7n1+mJWOZQK6H6t8LX54AVnjWxiUNswqENdHtcl5QFledYfmSH7HalKONABmZLsiMFwp1wR/O3glT9mcni0yEKCAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fB9Qjq0P5LY36o7TasL+07/JZfcZ9ZgvDD1mCJ/94+M=; b=f6j6hhBo5bBF4qJCUi9q/XqCODKeNWqjnBWvYjeHMH/jx9NFcdRs2n0xc5SBYgH16Y2suplHIVBYt281vfeEvcmntKdXWi+U7azFISej+K0f39TMqsnqE3sKtqyeYka68GmdWk0GgqyfWNRzn5WJdqxtkyiVt4s3zq3yoOF0Hxs= Authentication-Results: watsen.net; dkim=none (message not signed) header.d=none;watsen.net; dmarc=none action=none header.from=jacobs-university.de; Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) by AM9P190MB1297.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:262::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Fri, 16 Apr 2021 12:37:53 +0000 Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6]) by AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6%4]) with mapi id 15.20.4042.019; Fri, 16 Apr 2021 12:37:53 +0000 Date: Fri, 16 Apr 2021 14:37:49 +0200 From: Juergen Schoenwaelder To: Kent Watsen Cc: YANG Doctors , "netconf@ietf.org" Message-ID: <20210416123749.246d6irnd3oso3x4@anna.jacobs.jacobs-university.de> Reply-To: Juergen Schoenwaelder Mail-Followup-To: Kent Watsen , YANG Doctors , "netconf@ietf.org" References: <161064362767.26403.10249622617283363882@ietfa.amsl.com> <010001778e68398d-c2bff7b8-4c4e-4f30-a962-1ce39e2ece13-000000@email.amazonses.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <010001778e68398d-c2bff7b8-4c4e-4f30-a962-1ce39e2ece13-000000@email.amazonses.com> X-Originating-IP: [212.201.44.244] X-ClientProxiedBy: PR1P264CA0034.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::21) To AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost (212.201.44.244) by PR1P264CA0034.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Fri, 16 Apr 2021 12:37:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8f5928ee-fe64-482c-a854-08d900d47445 X-MS-TrafficTypeDiagnostic: AM9P190MB1297: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Xapxya3d/JElI6D+vMXAnq1R26Lzcum1s2IktL5DLxt0TCTTDab2BbADZUWdNYAVgvHrhz1eWcKwJWIuZgPCQoz+eGqk26Akx3I90OGGCMPLXh8kr+ID3Lv6SdX/eE7HdocLLvVOhdviZBYdluefQu3CkjULZvXCw+Xt41Jzodr7fQdGktcmgSxhBgw6Q0mIMHvqS6VOSEZGTDMGsP8vge8GDqY8Ti591Ht5yOgPn1h+vczNHHvDu9yg+UQjOke3r3RIN7NcnffhFsyO1Kv7zNc24ScTdCx9WahdcBj0IU4AlTDjS5DyYsVADc8LiookIlbo9qXP+e9wfj70K05bmaf1xg+28dU4bZrNGEgROi6xxKOrIRUPEmkscdJDQ0h0DsAb3e/pogZl8oRuLK+MfH8q6bBX4B1GZUCP+/RqzUgyJf4sEnOZhhgz8rC3RTcYePHF+s3WVYP8t7w9FBn02PXhARbGQGSWGBklc0R/qEgGKpTBE+HrJDw/HU9+a92b26zZ1caLtJr+1QfDEPbMbV5Arz5vmR8LGSPg/XGJzp4Gu4wAcWib/sfICBD0AtDh1tjzEBFfp0bLTZEWQTtD4r8lLgqun+YPHdpg8mr/kUyZhFHKhkqNiPb98oYTcV88j3sx7ABtrnaSrf1qKXkSnC4gtWviOBagPr066fYBtHc2VAZ5+OmmBVsk20ds/z/fgcz25ca2YXAvr75ug8NyYc35zrxVRM1ElL6wxiG3V8w= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0P190MB0641.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(366004)(346002)(136003)(376002)(39850400004)(396003)(8676002)(478600001)(4326008)(8936002)(38350700002)(52116002)(16526019)(38100700002)(6666004)(5660300002)(316002)(786003)(66556008)(2906002)(86362001)(6486002)(54906003)(66946007)(3450700001)(1076003)(956004)(26005)(66476007)(83380400001)(186003)(6496006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?TDdaalFia3BQZmV4ZlpHV1BWWi9VTStKS1BXYkFkdWh4M0d6MmY3c0xsZFhX?= =?utf-8?B?MXlQWnN5ZldFUVV0bktzbXR5UXZJQjNFWmdqanpIeEgvK3hCemNjVVR4aWxP?= =?utf-8?B?MVBVdHA5M1U2UFNaQ0lPbFVZZzNIZTVrY3p4WmtZaVNFdzllSGtYSEwxcjFY?= =?utf-8?B?UkI0RExHV1p3VnNQSmNPaXhOcUFJemhhYTN0N1VVcEhMOGxVUEVWTVppbFdu?= =?utf-8?B?dXNkUUdFYll6Q1ozbGpCeXJkVWZZTW5sbkwyVXM3WVgzWk4vSlVYSTNaTzlU?= =?utf-8?B?eGxFL2ovK3o5VE95K1NScHZkekpjSW0wTGx3cGRhcDYwVFd0L0cyZ1BPRFE2?= =?utf-8?B?djBZNm5hQmExZ0VCRXg2Vk42aVllaXlKVVpsdEhRaFQ1K0I5dGdiK2lPeitM?= =?utf-8?B?WXVUTEhSYTgxZm1XZzNKL3F4WXNDUlNrcS9BaTRGa2tVWXFqMDFpTkJxMVE5?= =?utf-8?B?L25abXQ3bGw1ZVd1Uk1JMUpWNUxLaFY5T1lmb2tGUnpZT21yL0hiT1N6ekNn?= =?utf-8?B?SW0yMHdPQS9JNVBjSjdiL2E5VzU1VG1WcTV3ZisybVI5RkNka0xEOTc4eVlU?= =?utf-8?B?TUF6OVRXc09wcEdXMnNtYVJhRkl2SmUwZTU2Y2VDZVVXa1IxQW1LekZDa2Mr?= =?utf-8?B?eDdIdGExYU12bnR6d3FvZm81MXpHbEd3ZW9pYmo2SDVRbU0xVnZiUTliNE9a?= =?utf-8?B?clQyT3QweFg0UDd5SjNmYzlkR2lEVW4vY1VzbmR2V3RTaXlxNjhRQU92M2lm?= =?utf-8?B?L0praDJtcjROcDZLMHc0c1FXOXhRTlQ5THJwNS9hWGRnSHFFUzdBdXNmWEdM?= =?utf-8?B?aVl2TnEyVFBhR2FvNFh3aEM2clRNU3RjSmpZVmJtNkhCYWdKUlVmR3lPbFJP?= =?utf-8?B?R21haHo5ejF5REE4eFUwNVh4cEtNNDl3T1hHKzlBa3hVaUtKWVp6SHhwTm93?= =?utf-8?B?MmpCSDFydm44bjZMR2FLWlZLYUdlZENRSDFrTEF6SDIxRjVxRkpIN1QyV012?= =?utf-8?B?WFBadFl1QUp4WThTOTc3RW5HSmNmS00rRmRIbEkrNXk1Ymg5OFZLdG5rb0lQ?= =?utf-8?B?TDNwQmtQZTRRdGo3NkZMQ0djUzlqWS96dVI1U3MwMlJxSWVLQkxYR3NEekZn?= =?utf-8?B?ZTBwa1J5SGl0WVhXeFdLQU94eDc4b1piVWluOWl2THB1TTAxSUlXQ2wxUkZ5?= =?utf-8?B?d0FCb3FOZzQ3RDcvR1FpNHhxV1FXQ3N4UmV5QzBMWnNQNThKanliSVNJMmFi?= =?utf-8?B?cXp5dTZaTytBTE0vVWlzdW1NNG9wckQ4OXVRaHVwdHR3TzVST2lUbVdueExV?= =?utf-8?B?dGVMUFdXWnBqWFkvWUxIOExab1VtZlllbWdZUEhJVWZEZ3o1emRwYkFFQlBi?= =?utf-8?B?T21BRDIzMDdhS3oreDRWTWNOTnYyMDJ6eFNkc2NvMFNtMG1DcmdEbXFlSG5s?= =?utf-8?B?SjBPRGFhdkFNWEJnYk9aZ3I1LzZXMUI1bS9TUk9ZREpXUjRwTnV1UU05MmYx?= =?utf-8?B?TGdiMVZKbjJOZHFQVll6OXlsUWhXeWtYVDZVbldLakc2UURxUmI4a2pEMi9X?= =?utf-8?B?QTlBSVFXNCtrQzNDbi94dzFiVmFnWnRFbXF4N05BdG5XWjZTMjhVSHdtdlFB?= =?utf-8?B?czJ6NmFaS0ZmNjU5NXdFUXJtZjhsZjByQWI5S2tzZDVEWUw2N1NyYWQwQXFi?= =?utf-8?B?dFE4eStra2NjblBNbTR3TUUwZnU4TklVcmJBMEhBRkJtdXJVTEJ4V0RPWCtx?= =?utf-8?Q?CgrTN/yk2jhnPZMdT3U5wwJeCcytt3dvovcwKqO?= X-OriginatorOrg: jacobs-university.de X-MS-Exchange-CrossTenant-Network-Message-Id: 8f5928ee-fe64-482c-a854-08d900d47445 X-MS-Exchange-CrossTenant-AuthSource: AM0P190MB0641.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2021 12:37:53.4549 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vKrE+xyLg9vU3VvhQUYyjTgQs8z7qImVJKl/ZN4QiqM3x6PkkKBE/1Zm7UHAe0gXCodz5kTc9e7G6hDlNQGzeRIxPskFTS4kaX3Mf13X7iI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9P190MB1297 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-keystore-20 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2021 12:38:02 -0000 Trimming to the essential parts... On Thu, Feb 11, 2021 at 12:05:31AM +0000, Kent Watsen wrote: > > - Is the feature keystore-supported really needed? Does the YANG > > library not already provide the information whether a module has > > been implemented or just imported to access type and grouping > > definitions? OK, I know see that this is used to make definitions > > conditional, hence it makes sense. This means that my comment on > > truststore-supported in the other review can be ignored, I found > > the answer. > > Please see my response to your comment in that draft’s review. The net-net appears to us just needing to ensure things are clear enough. > See also my comment on the other document. My question was whether this bit can already be picked up from the YANG library. > BTW, “keystore-supported” may not be the best name. “keystore-implemented” is closer, but maybe “keystore-module-implemented” or “central-keystore-implemented would be better still? One question is if the “central” (or “global” or default?) prefix should be a term used throughout the draft. The latest update has text like “… the keystore, when this module is implemented”, but this might be better if, e.g., “… the central keystore, when this module is implemented”. Thoughts? I think this is better. > > YANG's reference mechanism via leafrefs is not really supporting > > well what you try to do. I understand the flexibility you want to > > achieve but it seems YANG 1.1 does not really support this well > > enough. What you would need is a leafref type that can be "anchored" > > at different places but we don't really have this... > > I don’t understand this comment. But looking to my previous comment, a way has been devised that works. It may be kludgy relative to what you have in mind, but it seems to work. > Yes, kludgy is perhaps a good term. And you are hitting YANG's limitations, there is not much you can do different. > > - Section 4 points to keys being compromised 'when in transit' but I > > think we also want to protect keys at rest, i.e., sitting in a > > backup. > > Actually, Section 4 is all about protecting keys at rest. What text are you looking at? I do not recall, lets ignore this comment. > > - Section 4.3 talks about _highly_ restricted access mechanisms and > > _highly_ authorized clients and I am usually a bit confused what > > _highly_ means. But I am YANG doctor, not a security reviewer. ;-) > > Trying to say that, e.g., the NACM should only allow a "crypto officer" access to the MK’s cleartext value. So is NACM the 'highly restricted access mechanisms'? Should it be OLD highly restricted access mechanisms SHOULD NEW access control mechanisms like NACM SHOULD OLD highly authorized clients NEW authorized clients My point is that "highly" simply does not mean anything (to me). I browsed the diff, the changes look good to me. /js -- Juergen Schoenwaelder Jacobs University Bremen gGmbH Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany Fax: +49 421 200 3103 From nobody Sat Apr 17 14:38:21 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1FE8A3A33D8; Sat, 17 Apr 2021 14:38:16 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.8 X-Spam-Level: X-Spam-Status: No, score=-2.8 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, 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 (2048-bit key) header.d=akamai.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 6O58L5d8hRcr; Sat, 17 Apr 2021 14:38:11 -0700 (PDT) Received: from mx0a-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (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 651003A33D1; Sat, 17 Apr 2021 14:38:08 -0700 (PDT) Received: from pps.filterd (m0122332.ppops.net [127.0.0.1]) by mx0a-00190b01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 13HLTcI1017703; Sat, 17 Apr 2021 22:38:07 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=jan2016.eng; bh=lodMfkCnkjRp4JyOZndJGOqnVRCZY8Xdpb4nfzD6gNM=; b=Hrde2o+dFiFli1XpGeWKoeGa7skGwiZ1kH64bsBMPBvOEmhuRkOtnMhyUpuB2xpQMGfX oWlZ5IT3o1GDq4qwBMIWHWLA9bh9/pDFLsZwILTsaHQ4EQyh+KAshHEChRco5jgtlGZV t1hs/IZCm53lP6QcJwWKmArm7RilvkUozwlxOQUhjUMnM0tqOIj517f4rQSYV3UtZOBg g0AbF40zI7tKf+Y+1UAOnfH8+wumOSec1qTmzintHsIMpYKApfimhozYS9+8qtbZ9aXc fzHFSzswWibRtiNa8gAi57jN3hfRHCbKgbHnbrS6e8rS5ByFk+BrPIZ7GGOnFkbulJi4 pQ== Received: from prod-mail-ppoint5 (prod-mail-ppoint5.akamai.com [184.51.33.60] (may be forged)) by mx0a-00190b01.pphosted.com with ESMTP id 37yqqn1vm1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 17 Apr 2021 22:38:07 +0100 Received: from pps.filterd (prod-mail-ppoint5.akamai.com [127.0.0.1]) by prod-mail-ppoint5.akamai.com (8.16.0.43/8.16.0.43) with SMTP id 13HLYsEE005330; Sat, 17 Apr 2021 14:38:05 -0700 Received: from email.msg.corp.akamai.com ([172.27.123.32]) by prod-mail-ppoint5.akamai.com with ESMTP id 37ywnbharh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 17 Apr 2021 14:38:05 -0700 Received: from usma1ex-dag1mb6.msg.corp.akamai.com (172.27.123.65) by usma1ex-dag1mb3.msg.corp.akamai.com (172.27.123.103) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 17 Apr 2021 17:38:04 -0400 Received: from usma1ex-dag1mb6.msg.corp.akamai.com ([172.27.123.65]) by usma1ex-dag1mb6.msg.corp.akamai.com ([172.27.123.65]) with mapi id 15.00.1497.012; Sat, 17 Apr 2021 17:38:04 -0400 From: "Holland, Jake" To: Reshad Rahman , "yang-doctors@ietf.org" CC: "draft-ietf-mboned-cbacc.all@ietf.org" , "mboned@ietf.org" Thread-Topic: [MBONED] Yangdoctors early review of draft-ietf-mboned-cbacc-02 Thread-Index: AQHXLxfUODq5hRGKeU2IDsxr+Uze5aq5E2oA Date: Sat, 17 Apr 2021 21:38:04 +0000 Message-ID: <7232F37D-884E-4345-8570-52111636E92E@akamai.com> References: <161817573499.20366.15012284864667773875@ietfa.amsl.com> In-Reply-To: <161817573499.20366.15012284864667773875@ietfa.amsl.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.47.21031401 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [172.27.118.139] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-04-17_15:2021-04-16, 2021-04-17 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 suspectscore=0 malwarescore=0 adultscore=0 bulkscore=0 mlxlogscore=999 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104170154 X-Proofpoint-ORIG-GUID: J8o9iNC_CCiCbMtShhoQYKORi410VHs0 X-Proofpoint-GUID: J8o9iNC_CCiCbMtShhoQYKORi410VHs0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-04-17_15:2021-04-16, 2021-04-17 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 mlxscore=0 phishscore=0 adultscore=0 clxscore=1011 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104170154 X-Agari-Authentication-Results: mx.akamai.com; spf=${SPFResult} (sender IP is 184.51.33.60) smtp.mailfrom=jholland@akamai.com smtp.helo=prod-mail-ppoint5 Archived-At: Subject: Re: [yang-doctors] [MBONED] Yangdoctors early review of draft-ietf-mboned-cbacc-02 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 21:38:16 -0000 SGkgUmVzaGFkLA0KDQpUaGFua3MgZm9yIHlvdXIgcmV2aWV3ISAgU29ycnkgZm9yIHRoZSBzbG93 IHJlc3BvbnNlLCBpdCdzIGJlZW4gYSBoZWN0aWMNCnRpbWUgZm9yIG1lLg0KDQrvu79PbiAwNC0x MSwgMjoxNSBQTSwgIlJlc2hhZCBSYWhtYW4gdmlhIERhdGF0cmFja2VyIiA8bm9yZXBseUBpZXRm Lm9yZz4gd3JvdGU6DQo+IENvbW1lbnRzL3F1ZXN0aW9uczoNCj4NCj4gVGhlIGRvY3VtZW50IGFu ZCBZQU5HIG1vZHVsZS1uYW1lIGhhdmUgQ0JBQ0MsIHlldCB0aGUgbW9kdWxlIHByZWZpeCBpcyAi YW1iaSIsDQo+IGlzIHRoaXMgb24gcHVycG9zZT8gSW50dWl0aXZlbHksIEkgd2FzIGV4cGVjdGlu ZyB0aGUgcHJlZml4IHRvIGJlICJjYmFjYyIuDQoNCldob29wcywgdGhhbmtzIGZvciBjYXRjaGlu ZyB0aGlzLCBJIGhhdmUgaXQgZml4ZWQgbm93IGluIG15IGxvY2FsIGNvcHkuICBUaGlzDQp3YXMg bm90IG9uIHB1cnBvc2UuDQoNCj4gRm9yIHByZXNlbmNlIHN0YXRlbWVudCwgdXNlIENCQUNDLWVu YWJsZWQgaW5zdGVhZCBvZiBjYmFjYy1lbmFibGVkPw0KPg0KPiBJcyBtYXgtbXNzIGZvciBhIFRD UCBNYXggU2VnbWVudCBTaXplLCBvciBpcyB0aGlzIHJlYWxseSBtYXggcGFja2V0IHNpemU/IEFu ZA0KPiBubyBuZWVkIGZvciBqdW1ib2dyYW1zIHNpbmNlIHRoaXMgaXMgZm9yIFVEUD8NCg0KVGhp cyBpcyBub3QgYSBUQ1AgTVNTIG9wdGlvbiwgYnV0IHJhdGhlciBpbnRlbmRlZCB0byBjYXB0dXJl IGEgc2ltaWxhcg0KY29uY2VwdCBmb3IgdGhlIG11bHRpY2FzdCBJUCBwYWNrZXRzLiAgVGhpcyBp cyBtZWFudCB0byBiZSBhbg0KYWR2ZXJ0aXNlbWVudCBvZiB0aGUgbWF4IElQIHBheWxvYWQgc2l6 ZSB0aGF0IHRoZSBzZW5kZXIgd2lsbCBzZW5kIGZvcg0KdGhpcyBkYXRhIHN0cmVhbS4gIEkgZ3Vl c3MgSSB3b3VsZCBjYWxsIGl0IGEgQ0JBQ0MgTVNTIG9wdGlvbiwgaW5zdGVhZA0Kb2YgYSBUQ1Ag TVNTIG9wdGlvbiwgYnV0IGRvIHlvdSB0aGluayB0aGF0IHdpbGwgY2F1c2UgY29uZnVzaW9uPyAg TWF5YmUNCkkgc2hvdWxkIHJlbmFtZSBpdCB0byBzb21ldGhpbmcgbGlrZSBtYXgtcGR1IG9yIG1h eC1wYWNrZXQtc2l6ZT8NCg0KKFRoZSB2YWx1ZSBpcyBvZnRlbiB1c2VmdWwgdG8gY2hlY2sgYWdh aW5zdCBuZXR3b3JrIG10dSBvciBwYWNrZXQgYnVmZmVyDQpzaXplIGZvciBhIHJlY2VpdmluZyBh cHAuKQ0KDQo+IENvbnNpZGVyIHJlbmFtaW5nIG1heC1iaXRzLXBlci1zZWNvbmQgdG8gc29tZXRo aW5nIGFsb25nIHRoZSBsaW5lcyBvZg0KPiBtYXgtc3BlZWQuIERlc2NyaXB0aW9uIHNheXMga2ls b2JpdHMgKG5vdCBiaXRzKS4NCg0KVGhhbmtzLCBJIGFncmVlIGFuZCB3aWxsIGdvIGFoZWFkIHdp dGggdGhpcywgYW5kIHRoYW5rcyBmb3IgY2F0Y2hpbmcgaXQuDQoNCj4gQWRkICJ1bml0IiBzdGF0 ZW1lbnQgZS5nLiB0byBkYXRhLXJhdGUtd2luZG93IGFuZCBtYXgtYml0cy1wZXItc2Vjb25kDQoN ClRoYW5rcywgSSBoYWRuJ3Qgbm90aWNlZCB0aGlzIFlBTkcgZmVhdHVyZS4gIEl0IHNlZW1zIHRv IGJlIG5hbWVkICJ1bml0cyINCnRob3VnaCwgSSB0aGluayB0aGF0J3Mgd2hhdCB5b3UgbWVhbj8g KEZyb20gc2VjdGlvbiA3LjMuMyBvZiBSRkMgNzk1MDoNCmh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcv aHRtbC9yZmM3OTUwI3NlY3Rpb24tNy4zLjMgKQ0KDQpJIGRvbid0IHNlZSBndWlkYW5jZSBvbiBz dGFuZGFyZGl6ZWQgZmllbGRzLCBidXQgSSBhc3N1bWUgdGhhdCB0aGUgc3VnZ2VzdGlvbg0KaXMg c2F0aXNmaWVkIGJ5IGFkZGluZyB0aGlzIHRvIG1heC1zcGVlZDoNCiAgICAgICAgICAgIHVuaXRz ICJraWxvYml0cy9zZWNvbmQiOw0KYW5kIHRoaXMgdG8gZGF0YS1yYXRlLXdpbmRvdzoNCiAgICAg ICAgICAgIHVuaXRzICJtaWxsaXNlY29uZHMiOw0KDQpJcyB0aGF0IGNvcnJlY3Q/DQoNCj4gT09D LCB3aHkgc28gbWFueSBwcmlvcml0aWVzPyBJJ20gdXNlZCB0byBzZWVpbmcgMyBvciA4IGJpdHMg Zm9yIHByaW9yaXR5Lg0KDQpJIGd1ZXNzIEkgaGFkbid0IGdpdmVuIHRoZSBzaXplIG11Y2ggdGhv dWdodCwgYnV0IG1vcmUgc2VlbWVkIGJldHRlciB0aGFuDQpsZXNzIGhlcmUsIHNpbmNlIGl0J3Mg bm90IHRha2luZyBwYWNrZXQgc3BhY2UgaW4gdGhlIGRhdGEgc3RyZWFtLCBhbmQNCnNlZW1zIGEg cHJldHR5IHRyaXZpYWwgZGlmZmVyZW5jZSBpbiByZXNvdXJjZXMgYXQgdGhlIHBlci1zdHJlYW0g Y29udHJvbA0KbGF5ZXIuICBJIHdhcyBhaW1pbmcgdG8gbGV0IHRoZSBzZW5kZXIgc3BlY2lmeSBy ZWxhdGl2ZSBwcmlvcml0eSBiZXR3ZWVuDQphbGwgdGhlIGRpZmZlcmVudCBzdHJlYW1zIHRoZXkg bWlnaHQgYmUgc2VydmluZywgd2hpY2ggY291bGQgaW4gdGhlb3J5IGdvDQp0byBhIG11Y2ggaGln aGVyIGNvdW50LCBidXQgaW4gcHJhY3RpY2UgSSBleHBlY3RlZCB0aGlzIHRvIGJlIHBsZW50eS4N Cg0KQnV0IGJhc2VkIG9uIHRoZSBlYXJseSBleHBlcmltZW50cyB3aXRoIGRlcGxveWluZyBpdCwg SSdtIGZpbmRpbmcgSSBtaWdodA0KbmVlZCB0byByZWZhY3RvciB0aGUgcHJpb3JpdHkgaW4gdGhp cyBzcGVjLCBzbyBtYXliZSB0aGlzIHdpbGwgYmVjb21lIG1vb3QuDQoNClRoYXQgYW5hbHlzaXMg YW5kIGV4cGVyaW1lbnRpbmcgaXMgc3RpbGwgaW4gcHJvZ3Jlc3MsIGFuZCBJIGRvbid0IHlldCBo YXZlDQphIGNvbmNyZXRlIHJlcGxhY2VtZW50IGFmdGVyIHRoaW5raW5nIHRocm91Z2ggdGhlIHVz ZSBjYXNlcyBtb3JlIGNhcmVmdWxseS4NCkJ1dCBJJ2xsIGNvbnNpZGVyIHdoZXRoZXIgdGhlcmUn cyB2YWx1ZSBpbiByZWR1Y2luZyB0aGlzIHNpemUgaWYgaXQga2VlcHMNCnRoZSBzYW1lIGZvcm0s IGFuZCBpdCdzIGEgZ29vZCBxdWVzdGlvbi4NCg0KPiBTZWN1cml0eSBjb25zaWRlcmF0aW9ucyBz aG91bGQgbWVudGlvbiB0aGUgWUFORyBkYXRhIG5vZGVzLg0KDQpUaGFua3MsIEkndmUgYWRkZWQg YSBub3RlIHRvIG15IGxvY2FsIGNvcHkuICBJJ20gdGVudGF0aXZlbHkgaW50ZXJwcmV0aW5nDQp0 aGlzIGNvbW1lbnQgYXMgImZvbGxvdyB0aGUgZGlyZWN0aW9ucyBmcm9tIFNlY3Rpb24gMy43IG9m IFJGQyA4NDA3IiwgaXMNCnRoYXQgYSBjb3JyZWN0IHN1bW1hcnkgb2YgdGhpcyBhZHZpY2U/DQpo dHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODQwNyNzZWN0aW9uLTMuNw0KDQpWZXJ5IGhl bHBmdWwgcmV2aWV3LCBtdWNoIGFwcHJlY2lhdGVkIQ0KDQpCZXN0IHJlZ2FyZHMsDQpKYWtlDQoN Cg0K From nobody Sat Apr 17 16:22:51 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DE17C3A374F; Sat, 17 Apr 2021 16:22:42 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.1 X-Spam-Level: X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 (2048-bit key) header.d=akamai.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 u5aF6WyzXQaO; Sat, 17 Apr 2021 16:22:38 -0700 (PDT) Received: from mx0a-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (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 58BD63A373A; Sat, 17 Apr 2021 16:22:34 -0700 (PDT) Received: from pps.filterd (m0122332.ppops.net [127.0.0.1]) by mx0a-00190b01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 13HNFWNN005580; Sun, 18 Apr 2021 00:22:32 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=jan2016.eng; bh=rfqE18xcq75hY1VbHFVNlfLCSP2VT0TfX3mKNkf+iQ0=; b=KRk564GjHaS11NLXHgLlg8CBr1FajCl3+k8DSL94ZK6DIS1eDRlu7v/rOCW3TJlne2KH PVLPws2Ii1jafKaoNtwQYIDe39oZGF6mddAH10jRxE1DawQncHOktwXKLw7dkvv61yen 9W6uE3j3h1DQYxgCFlmqPIN17nna8ytEeWPRiBjWFYkB2pV7DflJmxkvEFwDeB1YcMyA 6S6vlZKjwEiHFG0pXdgLKtOIVlMXLuT5NhJPhetBAd9D5rIKD58kK2tY7OEGfVVJhjVW I5OnFvVFQn75126OiuDZlboN2BAI2VUtNIMujmX8/RDfF8/z1T4iMd/uAqtWoDsWsrnK gQ== Received: from prod-mail-ppoint1 (prod-mail-ppoint1.akamai.com [184.51.33.18] (may be forged)) by mx0a-00190b01.pphosted.com with ESMTP id 37yqqn483j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 18 Apr 2021 00:22:32 +0100 Received: from pps.filterd (prod-mail-ppoint1.akamai.com [127.0.0.1]) by prod-mail-ppoint1.akamai.com (8.16.0.43/8.16.0.43) with SMTP id 13HNJZR2011895; Sat, 17 Apr 2021 19:22:30 -0400 Received: from email.msg.corp.akamai.com ([172.27.123.33]) by prod-mail-ppoint1.akamai.com with ESMTP id 37yu0y9tx2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 17 Apr 2021 19:22:30 -0400 Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag1mb6.msg.corp.akamai.com (172.27.123.65) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 17 Apr 2021 19:22:30 -0400 Received: from usma1ex-dag1mb6.msg.corp.akamai.com (172.27.123.65) by usma1ex-dag1mb5.msg.corp.akamai.com (172.27.123.105) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 17 Apr 2021 19:22:29 -0400 Received: from usma1ex-dag1mb6.msg.corp.akamai.com ([172.27.123.65]) by usma1ex-dag1mb6.msg.corp.akamai.com ([172.27.123.65]) with mapi id 15.00.1497.012; Sat, 17 Apr 2021 19:22:29 -0400 From: "Holland, Jake" To: Reshad Rahman , "yang-doctors@ietf.org" CC: "mboned@ietf.org" , "draft-ietf-mboned-dorms.all@ietf.org" Thread-Topic: [MBONED] Yangdoctors early review of draft-ietf-mboned-dorms-01 Thread-Index: AQHXLxVfTtANrixjVUKJqiPBtJdhx6q5MJoA Date: Sat, 17 Apr 2021 23:22:29 +0000 Message-ID: <638228C3-4B8B-463A-8B64-CA9553E6A432@akamai.com> References: <161817467857.25277.18208608025617706305@ietfa.amsl.com> In-Reply-To: <161817467857.25277.18208608025617706305@ietfa.amsl.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.47.21031401 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [172.27.118.139] Content-Type: text/plain; charset="utf-8" Content-ID: <2E24A79F817D0D43AFBAC1CDC5A36BB0@akamai.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-04-17_16:2021-04-16, 2021-04-17 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104170165 X-Proofpoint-ORIG-GUID: ZdkDDTZBwHH1RkhVIlLDCpT8S_DqZPlr X-Proofpoint-GUID: ZdkDDTZBwHH1RkhVIlLDCpT8S_DqZPlr X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391, 18.0.761 definitions=2021-04-17_16:2021-04-16, 2021-04-17 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 mlxscore=0 phishscore=0 adultscore=0 clxscore=1011 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104170165 X-Agari-Authentication-Results: mx.akamai.com; spf=${SPFResult} (sender IP is 184.51.33.18) smtp.mailfrom=jholland@akamai.com smtp.helo=prod-mail-ppoint1 Archived-At: Subject: Re: [yang-doctors] [MBONED] Yangdoctors early review of draft-ietf-mboned-dorms-01 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2021 23:22:50 -0000 SGkgUmVzaGFkLA0KDQpUaGFua3MgYWdhaW4gZm9yIHlvdXIgcmV2aWV3KHMpLCBtdWNoIGFwcHJl Y2lhdGVkIQ0KDQrvu79PbiAwNC0xMSwgMTo1OCBQTSwgIlJlc2hhZCBSYWhtYW4gdmlhIERhdGF0 cmFja2VyIiA8bm9yZXBseUBpZXRmLm9yZz4gd3JvdGU6DQo+IENhdmVhdDogSSB3b24ndCBwcmV0 ZW5kIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIG1vdGl2YXRpb24gYmVoaW5kIERPUk1TLiBJJ3Zl DQo+IHJldmlld2VkIHRoaXMgbW9zdGx5IGZyb20gYSBZQU5HIHBlcnNwZWN0aXZlLg0KDQpUaGFu a3MgZm9yIHRoZSBub3RlLCBhbmQgSSB0aGluayB0aGF0IHdhcyB0aGUgbWFpbiBpbnRlbnQgb2Yg dGhlDQpyZXZpZXcgcmVxdWVzdCBhbmQgYSB2ZXJ5IHJlYXNvbmFibGUgY2hvaWNlIGluIG1ha2lu ZyB5b3VyIHJldmlldy4NCkJ1dCB0aGlzIG1ha2VzIG1lIHdhbnQgdG8gYXNrIGEgY2xhcmlmeWlu ZyBxdWVzdGlvbjoNCg0KSXMgdGhpcyBtb3JlIG9mIGEgIkkgZGlkbid0IHRyeSB0byBncmFzcCB0 aGUgbW90aXZhdGlvbiIsIG9yIGEgIkkNCnRyaWVkIGFuZCBmYWlsZWQgdG8gZ3Jhc3AgdGhlIG1v dGl2YXRpb24iPw0KDQpJJ20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgd2hldGhlciBJIHNob3VsZCBy ZWFkIHRoaXMgY29tbWVudCBhcw0KZXZpZGVuY2Ugb2YgYSBzdWJzdGFudGlhbCB3ZWFrbmVzcyBp biBzZWN0aW9uIDEuMywgb3IgYXMgYSBub3RlDQp0aGF0IHlvdSBkaWRuJ3QgdHJ5IGhhcmQgdG8g Zm9sbG93IHRoYXQgc2VjdGlvbiBhbmQgYXJlbid0IGNvbW1lbnRpbmcNCm9uZSB3YXkgb3IgdGhl IG90aGVyPw0KaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFmdC1pZXRm LW1ib25lZC1kb3Jtcy0wMSNzZWN0aW9uLTEuMw0KDQpJJ20gYXNzdW1pbmcgdGhlIGxhdHRlciwg YnV0IGlmIGl0J3MgdGhlIGZvcm1lciBJJ2QgYmUgZ3JhdGVmdWwgZm9yDQplbGFib3JhdGlvbiBv biB0aGUgdHJvdWJsZSB5b3UgaGFkIChwZXJoYXBzIHdpdGhvdXQgdGhlIFlBTkcgZG9jdG9yDQpo YXQgb24sIGlmIHRoYXQgaGVscHMgYW55KS4gIFNvIGp1c3QgaW4gY2FzZSBpdCdzIHRoZSBmb3Jt ZXIgYW5kDQp5b3UgbmVlZCBhIGJldHRlciBjb250ZXh0IGJlZm9yZSB5b3Uga25vdyBob3cgdG8g YW5zd2VyLCBoZXJlJ3MgdGhlDQpsaW5rIHRvIHRoZSBwcmVzZW50YXRpb24gYWhlYWQgb2YgYWRv cHRpb24gdGhhdCB0cmllZCB0byBnbyBvdmVyIHRoZQ0KcHVycG9zZToNCmh0dHBzOi8vd3d3Lnlv dXR1YmUuY29tL3dhdGNoP3Y9dHRHSnlkNWlzMncmdD0zNTI1cw0KaHR0cHM6Ly9kYXRhdHJhY2tl ci5pZXRmLm9yZy9tZWV0aW5nLzEwNi9tYXRlcmlhbHMvc2xpZGVzLTEwNi1tYm9uZWQtbXVsdGlj YXN0LXRvLXRoZS1icm93c2VyDQoNCklmIHRoZSBtb3RpdmF0aW9uIHdhcyB1bmNsZWFyIGluIHRo ZSBkb2MgYnV0IGNsZWFyKGVyKSBpbiB0aGUNCnByZXNlbnRhdGlvbiwgSSdkIGJlIGdyYXRlZnVs IGZvciBhbnkgZXhwbGFuYXRpb24gb2Ygd2hhdCdzIG1pc3NpbmcsDQppZiB5b3Ugc2F3IHNvbWV0 aGluZyB5b3UgY2FuIGV4cGxhaW4uDQoNCj4gQ29tbWVudHMvcXVlc3Rpb25zOg0KPiAtIE9PQywg d2h5IGlzIERPUk1TIGxpbWl0ZWQgdG8gUkVTVENPTkY/IEkgZG8gdW5kZXJzdGFuZCB3aHkgUkVT VENPTkYgaXMNCj4gYXBwZWFsaW5nLCBidXQgcG90ZW50aWFsIGRlcGxveW1lbnRzIG1pZ2h0IGJl IHVzaW5nIE5FVENPTkYsIENPUkVDT05GIG9yIGdOTUk/DQoNClRoZSBpbnRlbnQgaXMgdG8gcHJv dmlkZSBhIHNvcnQgb2YgbWluaW1hbCBwcm90b2NvbCBzdWl0ZSB0aGF0DQpyZW1vdGUgY2xpZW50 cyBjYW4gcmVseSBvbiBiZWluZyBwcmVzZW50IHdoZW4gdGhleSBpbXBsZW1lbnQNCmRpc2NvdmVy eS4gIEhvd2V2ZXIsIHRoZXJlJ3Mgbm8gcmVhc29uIHRoYXQgb3RoZXIgcHJvdG9jb2xzDQpjb3Vs ZG4ndCBiZSB1c2VkIGluIHNvbWUgZGVwbG95bWVudHMsIEkgZ3Vlc3MuICBJIGNvdWxkIGFkZCBh DQpub3RlIHRvIHRoYXQgZWZmZWN0LiAgQW55IG9iamVjdGlvbnMgdG8gdGhpcyB0ZXh0Pw0KDQog IFRoaXMgZG9jdW1lbnQgZG9lcyBub3QgcHJvaGliaXQgdGhlIHVzZSBvZiB0aGUgImlldGYtZG9y bXMiDQogIG1vZGVsIHdpdGggb3RoZXIgcHJvdG9jb2xzIHN1Y2ggYXMgTkVUQ09ORiwgQ09SRUNP TkYsIG9yIGdOTUksDQogIGJ1dCB0aGUgc2VtYW50aWNzIG9mIHVzaW5nIHRoZSBtb2RlbCB3aXRo IHRob3NlIHByb3RvY29scyBpcyBvdXQNCiAgb2Ygc2NvcGUgZm9yIHRoaXMgZG9jdW1lbnQuICBU aGlzIGRvY3VtZW50IG9ubHkgZGVmaW5lcyB0aGUNCiAgZGlzY292ZXJ5IGFuZCB1c2Ugb2YgdGhl ICJpZXRmLWRvcm1zIiBZQU5HIG1vZGVsIHVuZGVyIFJFU1RDT05GLg0KDQo+IC0gVGhlIGRhdGEg aW4gaWV0Zi1kb3JtcyBpcyBzYWlkIHRvIGJlIHJlYWQtb25seSBidXQgZG9lc24ndCBoYXZlICJj b25maWcNCj4gZmFsc2UiDQoNCkkgd2lsbCBhZGQgYSBub3RlIHRvIGV4cGVyaW1lbnQgd2l0aCB0 aGlzIGFuZCBzZWUgaWYgSSBydW4gaW50byBhbnkNCnRyb3VibGUuICBJdCBtaWdodCBtYWtlIGdv b2Qgc2Vuc2UgdG8gbWFrZSB0aGUgd2hvbGUgdHJlZSBjb25maWcgZmFsc2UuDQoNCkkgd2FzIHRo aW5raW5nIG9mIHRoZSBpbnRlbmRlZCBtZWFuaW5nIGFzICJyZWFkLW9ubHkgYWNjZXNzIGlzIHBy b3ZpZGVkDQp0byBtb3N0IiwgcmF0aGVyIHRoYW4gImFsbCB2YWx1ZXMgYXJlIGluaGVyZW50bHkg cmVhZC1vbmx5Ii4gIEhvd2V2ZXIsIEkNCnRoaW5rIHRoZXJlJ3MgcHJvYmFibHkgbm8gb3BlcmF0 aW9uYWwgZGlmZmVyZW5jZSwgc28gYXMgbG9uZyBhcyBJIGNhbg0KZ2V0IGl0IHdvcmtpbmcgSSB0 aGluayBJJ2QgYmUgZmluZSBtb3ZpbmcgaXQgYWxsIHRvIGNvbmZpZyBmYWxzZS4NCg0KPiAtIEkn ZCBhZGQgYSAiZG9ybXMiIGNvbnRhaW5lciBhdCB0aGUgdG9wIHdpdGggIm1ldGFkYXRhIiB1bmRl ciAiZG9ybXMiLg0KPiBJZiBvdGhlciBET1JNUyBkYXRhIG5lZWRzIHRvIGJlIGFkZGVkIGluIHRo ZSBmdXR1cmUsIGl0IHdvdWxkIGdldCBhZGRlZCB1bmRlcg0KPiAiZG9ybXMiLiBUaGlzIHdvdWxk IG1pbmltaXplIHRvcC1sZXZlbCBub2RlcyBhcyBwZXIgUkZDODQwNyBzZWN0aW9uIDQuMTAuDQoN ClRoaXMgc2VlbXMgcmVhc29uYWJsZSBhbmQgcHJ1ZGVudCwgdGhhbmtzLiAgSSdsbCBnbyBhaGVh ZCBhbmQgZG8gdGhhdC4NCg0KPiAtICJtYW5kYXRvcnkiIGlzIG5vdCBuZWVkZWQgZm9yIGxpc3Qg a2V5cywgaXQncyBhY3R1YWxseSBpZ25vcmVkIGFzIG1lbnRpb25lZCBpbg0KPiBSRkM3OTUwIHNl Y3Rpb24gc2VjdGlvbiA3LjguMg0KDQpEb2VzIHRoaXMgbWVhbiBJIHNob3VsZCByZW1vdmUgaXQ/ ICBUaGlzIHdhc24ndCBpbiB0aGUgbGlzdCBvZiByZWNvbW1lbmRlZA0Kb21pdHRlZCBkZWZhdWx0 IHZhbHVlcyBmcm9tIHNlY3Rpb24gNC40IG9mIFJGQyA4NDA3LCBzbyBJIHdhc24ndCBzdXJlLg0K DQpFdmVuIGlmIGl0IHdhc24ndCBhIGtleSAoZS5nLiBpZiB0aGUga2V5IHNvbWVob3cgYmVjYW1l IGEgbnVtZXJpYyBpZCksDQpoYXZpbmcgdGhpcyB2YWx1ZSB3b3VsZCBiZSBtYW5kYXRvcnksIHNv IEkgdGhvdWdodCBpdCB3YXMgYmV0dGVyIHRvIG1ha2UNCml0IGV4cGxpY2l0LCBidXQgSSBkb24n dCBoYXZlIGFueSBvdGhlciBvYmplY3Rpb25zIGFuZCB3aWxsIGFjY2VwdCB5b3VyDQpleHBlcnQg b3BpbmlvbiBpZiB5b3UgY29uZmlybSB0aGF0IHlvdSB0aGluayBpdCdzIGJldHRlciBvZmYgcmVt b3ZlZC4NCg0KPiAtIElmIGEgZ3JvdXAgcmVxdWlyZXMgYSBtaW5pbXVtIG51bWJlciBvZiB1ZHAt c3RyZWFtIGVudHJpZXMgKGUuZy4gMSksIGFkZCBhDQo+ICJtaW4tZWxlbWVudHMiIHN0YXRlbWVu dCB1bmRlciAiZ3JvdXAiLiBJZiBub3QsIGxlYXZlIGFzLWlzLg0KDQpJdCBkb2Vzbid0LCBuby4g IEl0J3MgcG9zc2libGUgaW4gdGhlb3J5IHRvIGhhdmUgbm9uLVVEUCB0cmFmZmljLCB0aG91Z2gN CnNvbWUgb2YgdGhlIGV4dGVuc2lvbnMgd2lsbCBiZSBzcGVjaWZpYyB0byBVRFAgdHJhZmZpYy4N Cg0KPiAtIDcuMSBTZWN1cml0eSBjb25zaWRlcmF0aW9ucywgbG9va3MgbGlrZSB0aGUgcmVhZC1v bmx5IGRhdGEgaXMgbm90IGRlZW1lZA0KPiBzZW5zaXRpdmUsIHBsZWFzZSBhZGQgYSBzdGF0ZW1l bnQgdG8gdGhhdCBlZmZlY3QuDQoNCkkgdGhvdWdodCBzZWN0aW9uIDcuMiB0cmllcyB0byBjb3Zl ciB0aGlzLCBhcmUgeW91IHNheWluZyA3LjEgbmVlZHMgdG8NCmFkZHJlc3MgaXQgYWxzbz8gIE9y IG1heWJlIHNheWluZyB0aGF0IHNvbWV0aGluZyBuZWVkcyB0byBleHBsaWNpdGx5DQpkaXNjdXNz IHRoZSBmaWVsZHMgYXMgZGVzY3JpYmVkIGJ5IHNlY3Rpb24gMy43IG9mIFJGQyA4NDA3Pw0KDQo+ IFJlZ2FyZGluZyBOQUNNLCBjb25zaWRlciBhIFNIT1VMRCBpbnN0ZWFkIG9mIE1BWT8NCg0KSSBk b24ndCB0aGluayBhIFNIT1VMRCBpcyBhcHByb3ByaWF0ZSBoZXJlIGZvciBhIGJyb2FkY2FzdCB1 c2UgY2FzZSwgc28NCkkgZG9uJ3QgdGhpbmsgdGhpcyBzaG91bGQgaGF2ZSBhIGJsYW5rZXQgU0hP VUxEICh0aG91Z2ggZm9yIG90aGVyIHVzZQ0KY2FzZXMgaXQgbWlnaHQgbWFrZSBtb3JlIHNlbnNl LCB3aGljaCBpcyB3aHkgSSB3YW50ZWQgdG8gbWFrZSBzdXJlDQpjbGllbnRzIHdvdWxkIHVuZGVy c3RhbmQgaXQncyBwb3NzaWJsZSwgd2hpY2ggaXMgd2h5IEkgcHV0IGluIHRoZSBNQVkpLg0KDQo+ IC0gRXZlbiB0aG91Z2ggdGhlIFlBTkcgbW9kZWwgaXMgbm90IGNvbXBsZXgsIGFkZGluZyBhbiBl eGFtcGxlIGFsd2F5cyBoZWxwcy4NCg0KSSBhZ3JlZSwgYnV0IEkgdGhpbmsgdGhlcmUncyBhbiBl eGFtcGxlIGluIHNlY3Rpb24gMi4zLjQ6DQpodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2Rv Yy9odG1sL2RyYWZ0LWlldGYtbWJvbmVkLWRvcm1zLTAxI3NlY3Rpb24tMi4zLjQNCg0KU28gSSdt IG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB3aGF0IG90aGVyIGV4YW1wbGVzIHNob3VsZCBiZSBhZGRl ZC4NCkFyZSB5b3Ugc2F5aW5nIEkgc2hvdWxkIGhhdmUgYW4gZXhhbXBsZSB0aGF0IGluY2x1ZGVz IGFuIGF1Z21lbnRhdGlvbj8NCihBbmQgaWYgc28sIGlzIHRoZSBsaW5rIHRvIGFub3RoZXIgc3Bl YyB0aGF0IGRvZXMgaXQgc3VmZmljaWVudCwgc3VjaA0KYXMgdGhlIENCQUNDIHJlZmVyZW5jZSBp biBzZWN0aW9uIDQ/KSBPciBpcyB0aGVyZSBhbm90aGVyIGtpbmQgb2YNCmV4YW1wbGUgdGhhdCBz ZWVtcyB0byBiZSBtaXNzaW5nLCBvciB0aGF0IHlvdSB0aGluayB3b3VsZCBiZQ0KZXNwZWNpYWxs eSBoZWxwZnVsPw0KDQpCdXQgSSdsbCBtYWtlIGEgbm90ZSB0byBsb29rIGZvciBzb21lIHBsYWNl cyB0aGF0IGNvdWxkIHVzZSBtb3JlDQpleGFtcGxlcywgdGhhbmtzIGZvciByYWlzaW5nIHRoZSBw b2ludC4NCg0KDQpUaGFua3MgZm9yIGFub3RoZXIgdmVyeSBoZWxwZnVsIHJldmlldyENCg0KQmVz dCByZWdhcmRzLA0KSmFrZQ0KDQoNCg0K From nobody Sun Apr 18 07:59:17 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 357BF3A1B2A; Sun, 18 Apr 2021 07:59:15 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.097 X-Spam-Level: X-Spam-Status: No, score=-2.097 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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 (2048-bit key) header.d=gmail.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 e8Z-pyHUDxBj; Sun, 18 Apr 2021 07:59:10 -0700 (PDT) Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (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 19BCB3A1B26; Sun, 18 Apr 2021 07:59:06 -0700 (PDT) Received: by mail-ed1-x52f.google.com with SMTP id d21so17567745edv.9; Sun, 18 Apr 2021 07:59:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version:content-language :thread-index; bh=d0ROGkroZBdf1o1TKYoJhs6MGNPUQX2v7lWoEez6YPQ=; b=CdEO6kUcgW+2in+q64kt91rLjXSqEmC28RdR+GMqL6GKMbWsHfHyCfdJJWUz+m1RVi Vzr7XYm4d71yf58ByCjrGRLeZuH+oNqSVbPW+K3Vf5GON2S9XQari7wfezxXMjKiCgvl dCP0Gsx47LblzvZWLnPeX3eMd2fQ4dp+dXKXbX0EMjlQqnQi9P5GYYK0kqBB2w1vFRvQ 10kkkWZa1pK/1E+cjqB9fqdCIt0kOabeqCVzJ4YDWNB9Sp4zfkbow1sO9f9OOBU2dayT +Pq2EB35OUQ35LFTOk0/367Hk0j+NTPuNyXf0AnrNe2+HWUhCw5GQQeznqQhxibfqOGd TDQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-language:thread-index; bh=d0ROGkroZBdf1o1TKYoJhs6MGNPUQX2v7lWoEez6YPQ=; b=duAj/LNk9XbFm0TVgksls7hDoCgJUZ7KdyEuy9GWbDlTDle2NxVE3zmDV70bBqx4F7 ylmLNjAmbjJGQ1EwIvDBKq7XuW1Qmh49Rzv+Aje5XZXj8j7WTsiGj/3WmIWYAVki4IKm ZMBfbvg8QcIDr79mSpTZ44mzfRUt1e/lqGOrbdLG0gPjatzHrPU6nUxfn8zSSA51+c9N V+/upbTf9sL9QnrhicV8PuWuSIzKgqHEvH47olADKf9HW1Oc6YtuJbMS/mFmSBfPpegB YOvl5b74ZI5wZi6uhazRVTYn46QYg8UNrlzz17IYMQQiP42bPqnVx9AD5aqCjiBxYeF0 6GEw== X-Gm-Message-State: AOAM5317acIMo19aYT/PXOur6rrngMD6n7QSws/Nxb3Cgfxo+Mb7ZQLe kB09tCDz6rx6JGXBTMjdXqQ= X-Google-Smtp-Source: ABdhPJxMfPdH8W8zHZBfdPM+/cWLGFfnpdeZ9dhszUhnRTdcXiQ6d74gH8OQf513iGfNpGDLik3S8w== X-Received: by 2002:a05:6402:4242:: with SMTP id g2mr20486744edb.329.1618757943720; Sun, 18 Apr 2021 07:59:03 -0700 (PDT) Received: from DESKTOPFLHJVQJ ([2001:16b8:2d01:4100:2900:347d:621:69d6]) by smtp.gmail.com with ESMTPSA id y25sm6080130ejb.34.2021.04.18.07.59.02 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 18 Apr 2021 07:59:02 -0700 (PDT) From: "Mehmet Ersue" To: Cc: , , "'Carl Moberg'" Date: Sun, 18 Apr 2021 16:59:01 +0200 Message-ID: <005c01d73463$5ee2fda0$1ca8f8e0$@gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_005D_01D73474.226E65B0" X-Mailer: Microsoft Outlook 16.0 Content-Language: de Thread-Index: Adc0Y0RuAHGV+BoJTwu4kr8s1b3owg== Archived-At: Subject: [yang-doctors] Yangdoctors Early Review of draft-ietf-lpwan-schc-yang-data-model-04 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Apr 2021 14:59:15 -0000 This is a multipart message in MIME format. ------=_NextPart_000_005D_01D73474.226E65B0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit I'm sending this on behalf of Carl Moberg. It seems there was an issue and the review mail has not been generated. Text copied from https://datatracker.ietf.org/doc/review-ietf-lpwan-schc-yang-data-model-04-y angdoctors-early-moberg-2021-04-13/ Mehmet Reviewer: Carl Moberg Review result: On the Right Track This is my YANG Doctors Early Review of draft-ietf-lpwan-schc-yang-data-model-04 It is obviously challenging to provide early review feedback on how useful and efficient the YANG model representation is for a set of technologies that I am not an expert on, but here goes. Understanding that it is still early in the lifecycle of the module, I have not spent time on providing feedback on e.g. description texts, capitalization and spelling but have focused on the general structure and design of the module. I also haven't spent any time dissecting the output of `pyang --ietf`, but I would suggest the authors start looking into that as the content of the module moves ahead towards publication. I would also suggest considering running the module through `pyang -f yang` as that provides nice and consistent formatting and quoting. As for the content itself. I believe to the best of my understanding that the YANG module reflects the core data structures of RFC8724 well. I have a couple of questions that may lead to broader discussion on _how_ to capture certain aspects of these data structures in a way that makes it realistic to implement while still easy to use. As is right now, the YANG module assumes that all implementations support all FID types defined to be derived from field-id-base-type. It includes fields related IPv6, COAP/OSCORE, and ICMPv6 all in the same module. Is there a possibility that some implementations won't implement all three of those protocol groups? If so, it might be worth considering making FID type groups either optional using YANG 'feature' statements or break them out into separate modules to be advertised separately. There is currently no correlation between field-id type and field-length types in the same compression rule entry. I.e. the current YANG permits a field-identifier 'fid-ipv6-version' combined with a field-length 'fl-token-length' in a rule entry, which I understand to be nonsensical. If I am right in that it's an example of meaningless configuration, does the authors think it important (and possible) to work towards a more stringent validation of "meaningful" configuration by capturing the relationships between fields like in this example? ------=_NextPart_000_005D_01D73474.226E65B0 Content-Type: text/html; boundary="----=_NextPart_000_004D_01D733F0.3ECC8F40"; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

I’m sending this on = behalf of Carl Moberg.

It seems there = was an issue and the review mail has not been = generated.

Text copied from =

https://datatracker.ietf.= org/doc/review-ietf-lpwan-schc-yang-data-model-04-yangdoctors-early-mober= g-2021-04-13/

 

Mehmet

 

Reviewer: = Carl Moberg

Review result: On the = Right Track

 

This is my YANG Doctors Early Review of = draft-ietf-lpwan-schc-yang-data-model-04

 

It is = obviously challenging to provide early review feedback on how useful and = efficient the YANG model representation is for a set of technologies = that I am not an expert on, but here goes.

 

Understanding that it is still early in the lifecycle = of the module, I have not spent time on providing feedback on e.g. = description texts, capitalization and spelling but have focused on the = general structure and design of the module. I also haven't spent any = time dissecting the output of `pyang --ietf`, but I would suggest the = authors start looking into that as the content of the module moves ahead = towards publication.

 

I would also = suggest considering running the module through `pyang -f yang` as that = provides nice and consistent formatting and quoting.

 

As for the = content itself. I believe to the best of my understanding that the YANG = module reflects the core data structures of RFC8724 well. I have a = couple of questions that may lead to broader discussion on _how_ to = capture certain aspects of these data structures in a way that makes it = realistic to implement while still easy to use.

 

As is right = now, the YANG module assumes that all implementations support all FID = types defined to be derived from field-id-base-type. It includes fields = related IPv6, COAP/OSCORE, and ICMPv6 all in the same module. Is there a = possibility that some implementations won't implement all three of those = protocol groups? If so, it might be worth considering making FID type = groups either optional using YANG 'feature' statements or break them out = into separate modules to be advertised separately.

 

There is = currently no correlation between field-id type and field-length types in = the same compression rule entry. I.e. the current YANG permits a = field-identifier 'fid-ipv6-version' combined with a field-length = 'fl-token-length' in a rule entry, which I understand to be nonsensical. = If I am right in that it's an example of meaningless configuration, does = the authors think it important (and possible) to work towards a more = stringent validation of "meaningful" configuration by = capturing the relationships between fields like in this = example?

 

 

------=_NextPart_000_005D_01D73474.226E65B0-- From nobody Mon Apr 19 13:30:29 2021 Return-Path: <01000178ebd39133-87ef25f3-1047-4f02-b5fb-706e82e7c02a-000000@amazonses.watsen.net> X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 194BD3A42C9; Mon, 19 Apr 2021 13:30:24 -0700 (PDT) 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, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_NONE=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 LuV9oZMK6ceu; Mon, 19 Apr 2021 13:30:19 -0700 (PDT) Received: from a48-110.smtp-out.amazonses.com (a48-110.smtp-out.amazonses.com [54.240.48.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E56673A42CB; Mon, 19 Apr 2021 13:30:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1618864214; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:Feedback-ID; bh=yqj5reR6NtpAzNmulJ+pDfaD+zZeIQHVOlyQIBwCTiI=; b=Jb0HblzpZ+4Ix6OCziHWW8KsAqBantl506hTg/iJqA7Q6X6GcNpR7Fk5v6eNeWw4 nVEt/BS86u+GTokgWoiVVxfS4zbOGWRmxn9t57HKFzdXi9pT1RKMWbM3c/qozfk1hjB 9/ZacsfpGMZ6H29xLxO+ZbFpCVAx/ESMXF9/U2tc= Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: Kent Watsen In-Reply-To: <161796231010.8005.7390142571009530431@ietfa.amsl.com> Date: Mon, 19 Apr 2021 20:30:14 +0000 Cc: YANG Doctors , draft-ietf-netconf-tcp-client-server.all@ietf.org, last-call@ietf.org, "netconf@ietf.org" Content-Transfer-Encoding: quoted-printable Message-ID: <01000178ebd39133-87ef25f3-1047-4f02-b5fb-706e82e7c02a-000000@email.amazonses.com> References: <161796231010.8005.7390142571009530431@ietfa.amsl.com> To: Ladislav Lhotka X-Mailer: Apple Mail (2.3654.60.0.2.21) Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES X-SES-Outgoing: 2021.04.19-54.240.48.110 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-tcp-client-server-09 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2021 20:30:24 -0000 Hi Lada, Thank you for your review! Below are responses to your comments. K. > Reviewer: Ladislav Lhotka > Review result: Ready with Issues >=20 > The modules are well designed and nicely documented, both in the = descriptions > and text of the Internet-Draft. ;) > **** Comments >=20 > - Sections 2.1.4, 3.1.3, 4.1.3: the sentence 'The "..." module does = not contain > any protocol-accessible nodes.' is misleading in that the modules do = define > data nodes that are intended to be protocol accessible after the = corresponding > grouping is used. I know this is a part of the NETCONF/YANG lingo, but = another > formulation that clearly says what's going on might be preferable. Fair enough. How about this? The "ietf-tcp-..." module does not itself define any protocol-accessible nodes. This module defines only "grouping" statements that are used by other modules to instantiate protocol-accessible nodes. > - Sections 2.2, 3.2 and 4.2: the XML snippets use document elements > "tcp-common", "tcp-client" and "tcp-server", but these containers are = not > defined in the corresponding modules. This is confusing, my suggestion = is to > rewrite the examples in the JSON representation where no such = top-level node is > necessary. Indeed, and my validation script even takes the special step to convert = the groupings to containers in order for the validation to succeed. In = other modules, I created a =E2=80=9Cfoobar-usage.yang=E2=80=9D module to = instantiate the grouping statements. Hmmm, I was about to create the JSON, but realized that it would be = easier to strip out the first-and0-last lines from the XML examples. I = understand that they're not a valid XML documents, but snippets have = been used before=E2=80=A6 FWIW, all the examples are still validated, so there=E2=80=99s otherwise = no loss in correctness. >=20 > - What is the purpose of "tcp-connection-grouping" if it only uses > "tcp-common-grouping" and nothing else? Why cannot = "tcp-common-grouping=E2=80=9D be used directly? I added this comment: Whilst this grouping appears to not add any value beyond that given by "tcp-common-grouping", it is defined so as to provide space for a future peer module (e.g., "tcp-system-grouping" that defines = additional configuration nodes used to configure a TCP stack at an operating system level. Makes sense? > - The "local-port" parameter defined in ietf-tcp-client seems dubious = from the > security viewpoint in that fixing the source port makes it easier for = attackers > to steal the connection (see RFC 6056). Interesting read. But note that the RFC regards primarily cleartext = protocols. An axiom in security circles is =E2=80=9Cobscurity is not = security=E2=80=9D, i.e., randomizing client ports to make off-path = guessing harder is not much of a win. =20 In our case, and pretty much every IETF protocol now, a secure transport = layer is used, and having a predictable 5-tuple can greatly reduce the = attack-surface in firewall rulebases. As it stands, it=E2=80=99s configuration enabled by an optional feature = (your next comment) and, besides, the wildcard values (e.g., =E2=80=9C0=E2= =80=9D) may configured, enabling [potentially-random] operating-system = selected values - so no harm? > If the feature > "local-binding-supported" is needed at all, I'd suggest to mention = this in > Security Considerations. =E2=80=9CNeeded=E2=80=9D is an interesting take. My feeling is that = the model is incomplete otherwise. =46rom a Security Considerations = perspective, I=E2=80=99d like to put something like: =E2=80=9CImplementations are RECOMMENDED to implement the = 'local-binding-supported=E2=80=99 feature for cryptographically-secure = protocols so as to reduce to attack surface presented by firewalls.=E2=80=9D= Is that what you had in mind? If nothing else, having such a statement = in the draft would certainly catch the eye of the SecDir reviewer. = Thoughts? > - The module ietf-tcp-client uses the placeholder "RFC AAAA", which is = not > defined in the Editorial Note. Fixed. > **** Nits >=20 > - RFC 7950 is cited repeatedly (6 times) in a general context, e.g. = whenever > YANG 1.1 is mentioned. It should suffice to use the citation at the = first > appearance. All but one citation removed. > - sec. 1.3: s/in compliant/is compliant/ Fixed (in all the drafts!) > - in 3 places: s/illustatrating/illustrating/ Fixed (in all the drafts!) Thanks again! K. From nobody Mon Apr 19 15:23:35 2021 Return-Path: <01000178ec3aebdf-1c5e3f62-5432-4d07-80d4-85480626a545-000000@amazonses.watsen.net> X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 316EF3A47AC; Mon, 19 Apr 2021 15:23:25 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: 0.003 X-Spam-Level: X-Spam-Status: No, score=0.003 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, 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 PFJrbmey_Hpi; Mon, 19 Apr 2021 15:23:20 -0700 (PDT) Received: from a48-92.smtp-out.amazonses.com (a48-92.smtp-out.amazonses.com [54.240.48.92]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 18C2C3A4724; Mon, 19 Apr 2021 15:23:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1618870987; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:Feedback-ID; bh=H3FmrSu+Ltv2VchDpsHx3vXZOzPWkinJM3eZeXMg+fs=; b=GGcLaH+liAAOdusH7HGVAfLx9uqlwPGxbRWhMNHxpzEKZ2WeO2udHnWGkR50XW8X Ns7smQ/mGMfqdyIgqODSaemfFLhpkn6QLZG7aWjapF5s3o7i/e7QGqGqe8uasSblKIC oNe7uWngS9gBn/s8s00KD0CYgLcSYAE8/6l5vEvA= Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: Kent Watsen In-Reply-To: <161821556350.10432.14910369341748800490@ietfa.amsl.com> Date: Mon, 19 Apr 2021 22:23:07 +0000 Cc: YANG Doctors , last-call@ietf.org, "netconf@ietf.org" , draft-ietf-netconf-http-client-server.all@ietf.org Content-Transfer-Encoding: quoted-printable Message-ID: <01000178ec3aebdf-1c5e3f62-5432-4d07-80d4-85480626a545-000000@email.amazonses.com> References: <161821556350.10432.14910369341748800490@ietfa.amsl.com> To: Ladislav Lhotka X-Mailer: Apple Mail (2.3654.60.0.2.21) Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES X-SES-Outgoing: 2021.04.19-54.240.48.92 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-http-client-server-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2021 22:23:25 -0000 Hi Lada, Thank you for your review! Below are responses to your comments. K. > On Apr 12, 2021, at 4:19 AM, Ladislav Lhotka via Datatracker = wrote: >=20 > Reviewer: Ladislav Lhotka > Review result: Ready with Nits >=20 > The document defines two YANG modules - ietf-http-client and = ietf-http-server - > that belong to a relatively complex set of modules. The modules are = well > designed and nicely documented, both in the descriptions and document = text. :) > **** Comments >=20 > - Sections 2.1.3 and 3.1.3: the sentence 'The "..." module does not = contain any > protocol-accessible nodes.' is misleading in that the modules do = define data > nodes that are intended to be protocol accessible after the = corresponding > grouping is used. I know this is a part of the NETCONF/YANG lingo, but = another > formulation that clearly says what's going on might be preferable. I fixed this when I addressed the same comment made in the = =E2=80=9Ctcp-client-server=E2=80=9D draft. > - Sections 2.2 and 3.2: the XML snippets use document elements = "http-client" > and "http-server", but these containers are not defined in the = corresponding > modules. This is confusing, my suggestion is to rewrite the examples = in the > JSON representation where no such top-level node is necessary. Same solution as for the =E2=80=9Ctcp-client-server=E2=80=9D draft, = which is to simply remove the first and last lines, for the non-existent = =E2=80=9Ccontainer=E2=80=9D statement. Update: I was going to proactively-apply the same solution to the = =E2=80=9Cssh=E2=80=9D and =E2=80=9Ctls=E2=80=9D drafts, but I couldn=E2=80= =99t because the top-level element defines additional prefixes. This is = where your =E2=80=9CJSON=E2=80=9D idea could help, though, for some = reason, having a mix of XML/JSON in the suite of drafts is off-putting = to me. We could convert all the examples to JSON, but that=E2=80=99s a = fair amount of work too=E2=80=A6 =20 How about adding an XML-comment indicating that the top-level element = doesn=E2=80=99t really exist? > - Placeholders BBBB, CCCC and EEEE are defined in Editorial Note but = never used Fixed. > **** Nits >=20 > - RFC 7950 is cited repeatedly (4 times) in a general context, e.g. = whenever > YANG 1.1 is mentioned. It should suffice to use the citation at the = first > appearance. Fixed. Also in the =E2=80=9Cssh=E2=80=9D and =E2=80=9Ctls=E2=80=9D = drafts. K. From nobody Mon Apr 19 16:34:24 2021 Return-Path: <01000178ec7bfedf-5b8a2940-2fdd-42f5-ae43-27277d991769-000000@amazonses.watsen.net> X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AD4F63A4958; Mon, 19 Apr 2021 16:34:18 -0700 (PDT) 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_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 qJWEwNQg4DaP; Mon, 19 Apr 2021 16:34:14 -0700 (PDT) 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 E24AA3A4956; Mon, 19 Apr 2021 16:34:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1618875252; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:Feedback-ID; bh=pyc1GRNP7ZmFNO1wPgqEA6opmhvzNnnKO6FDhPQ/X4s=; b=LTe12lzuZQMh/0cm0lvVJ+kbohPwCa2gPZOnj1kDJWaFqgkAgwTJzlMCvQknQk+X Zv5EmuyOmcry77i2quUlY7T2jVEN+G2GUBOsqaOw4UrINm4fte7sSAt9i9FlFrs6bXh /4Ji3K+91WlbY9G9+jLojns+TysKxPCRM0h3Xs7w= Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: Kent Watsen In-Reply-To: <20210416115004.fqhitq6jofc6vjih@anna.jacobs.jacobs-university.de> Date: Mon, 19 Apr 2021 23:34:12 +0000 Cc: "netconf@ietf.org" , YANG Doctors Content-Transfer-Encoding: quoted-printable Message-ID: <01000178ec7bfedf-5b8a2940-2fdd-42f5-ae43-27277d991769-000000@email.amazonses.com> References: <161045360252.14510.16755799701987783827@ietfa.amsl.com> <010001778e67638b-53d8c33f-82f6-4bda-881a-3cf881c06c95-000000@email.amazonses.com> <20210416115004.fqhitq6jofc6vjih@anna.jacobs.jacobs-university.de> To: Juergen Schoenwaelder X-Mailer: Apple Mail (2.3654.60.0.2.21) Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES X-SES-Outgoing: 2021.04.19-54.240.48.95 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-crypto-types-18 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Apr 2021 23:34:19 -0000 Hi Juergen, Whittling out things resolved... K. >=20 >> - Does it make sense to have a new notation like >>>=20 >>> | The diagram above uses syntax that is similar to but not >>> | defined in [RFC8340]. >>>=20 >>> or shall this simply become regular text? >>=20 >> I find using tree-diagram like notation for features, identities, and = typedefs helpful, especially in showing the =E2=80=9Cif-feature=E2=80=9D = constraints and hierarchical relationships between items. I recommend = adding these enhancements to RFC 8340. It would be helpful if someone = could whip up an I-D so these documents could reference the I-D instead = of having the "The diagram above uses syntax that is similar to but not = defined in [RFC8340]=E2=80=9D language. >>=20 >> That said, I also used a "rfc8340-like" diagram to list all the = groupings in a module. It seems like the consistent thing to do, but I = can=E2=80=99t imagine the RFC 8340 being updated to support that output, = so I replaced that diagram, with a normal "xml2rfc" list, in the entire = suite of drafts. >=20 > I am sorry, I should have been clearer. My comment did not concern the > diagrams but the mere fact that you have >=20 > | The diagram above uses syntax that is similar to but not > | defined in [RFC8340]. >=20 > instead of simply >=20 > The diagram above uses syntax that is similar to but not > defined in [RFC8340]. >=20 > and this is really an editorial nit if at all. The diagram itself I > like, it would be nice to have them in RFC 8340bis. Ah, now I understand, you mean to remove the XML2RFC v3 =E2=80=9Caside=E2=80= =9D? I agree that it renders poorly in plain-text, but it renders = inside a pretty-box for HTML and PDF. Thoughts? Yes, the diagrams would be a nice addition to an 8340bis. Also, I = don=E2=80=99t know if you noticed, but the =E2=80=9CData Model = Overview=E2=80=9D section I created in all these drafts is highly = mechanical=E2=80=A6something that could be mostly automated=E2=80=A6perhap= s a good student project? ;) >>> - I wonder why this is a SHOULD and not a MUST: >>>=20 >>> "Identifies the symmetric key's format. Implementations >>> SHOULD ensure that the incoming symmetric key value is >>> encoded in the specified format."; >>>=20 >>> This statement shows up several times when the key-format identities >>> are used. I wonder what this means to an implementer. If I receive a >>> key format (say one-symmetric-key-format) and a corresponding blob >>> of data, do I have to decode this to see whether the format works >>> out? If later the key-format is changed to something else (lets say >>> octet-string-key-format), do I reject such a change or is it OK as >>> long as the binary data I have would be a valid value given the new >>> format? Perhaps this is implementation specific? Well, since we deal >>> with keys, ... >>=20 >> It currently a "SHOULD=E2=80=9D because some implementations may = assume that clients always configure perfect values, and so it becomes = squishy as to if they MUST. If a server fails to validate the base64 = contents (which are outside YANG validation) as they=E2=80=99re being = applied, then the server may run into nasty exceptions when needing to = use the value at runtime. A nice system will decode the base64 values = and verify that they contain valid values during the commit process. >>=20 >> Make sense? - leave as SHOULD okay? >=20 > Thanks for the explanation. I am not religious about SHOULD vs MUST > here. I=E2=80=99ll leave as a SHOULD then. > I have browsed through the diffs and they look good. I did not do > another full review again. Thanks and Ack. K. From nobody Mon Apr 19 18:11:25 2021 Return-Path: <01000178ecd4d350-f50aba60-953e-4803-abc7-acc14adc7355-000000@amazonses.watsen.net> X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B3903A0C04; Mon, 19 Apr 2021 18:11:20 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: 0.002 X-Spam-Level: X-Spam-Status: No, score=0.002 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 1Jhfip6ve4U2; Mon, 19 Apr 2021 18:11:15 -0700 (PDT) Received: from a48-93.smtp-out.amazonses.com (a48-93.smtp-out.amazonses.com [54.240.48.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 92FBB3A0C03; Mon, 19 Apr 2021 18:11:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1618881074; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:Feedback-ID; bh=xN6SlisJwPhDj8GCc3RTlhDkCCTnRHJEFx0a3F38IQk=; b=Gdrr6YJZ7TaM+v5VV2mkLSbuK5sbufGYuvr05YH1D7U0bcCdi0g4VeKgp6czt7Fi gWy489jCV+jFRdC/eEMqA7RKkFBJH54DAG2E9a7srMzINFr/6Sc7PzYtZNsDjNJ0dli A+rME6kdqoJkCIx274n39OEZdbeTjW5OCJ/mw34A= Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: Kent Watsen In-Reply-To: <20210416121527.z7z42ptkhxc734vy@anna.jacobs.jacobs-university.de> Date: Tue, 20 Apr 2021 01:11:14 +0000 Cc: YANG Doctors , "netconf@ietf.org" Content-Transfer-Encoding: quoted-printable Message-ID: <01000178ecd4d350-f50aba60-953e-4803-abc7-acc14adc7355-000000@email.amazonses.com> References: <161047687248.13931.17900123352005904827@ietfa.amsl.com> <010001778e67c4e0-c179290b-6eba-46df-b17f-ec474c44783c-000000@email.amazonses.com> <20210416121527.z7z42ptkhxc734vy@anna.jacobs.jacobs-university.de> To: Juergen Schoenwaelder X-Mailer: Apple Mail (2.3654.60.0.2.21) Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES X-SES-Outgoing: 2021.04.20-54.240.48.93 Archived-At: Subject: Re: [yang-doctors] [Last-Call] Yangdoctors last call review of draft-ietf-netconf-trust-anchors-13 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2021 01:11:20 -0000 Hi Juergen, Whittling out things resolved. K. >>> Reviewer: J=C3=BCrgen Sch=C3=B6nw=C3=A4lder >>> Review result: Ready with Issues >>>=20 >>> The crypto modules aim at providing a flexible reusable = infrastructure >>> of groupings for modeling cryptographic keys and related concepts. = The >>> flexibility of the definitions provided of course comes with a = certain >>> amount of complexity. >>>=20 >>>> =46rom a YANG perspective, draft-ietf-netconf-trust-anchors-13.txt = is in >>> a good and close to publish state (a couple of minor issues left). = I >>> also tried to understand what is being modeled here and hence I also >>> have some questions concerning the concepts modeled and I hope these >>> are easy to answer/resolve as well. >>>=20 >>> - I have compiled the YANG modules using yanglint 0.16.105. >>>=20 >>> - The prefix 'ts' is rather short, the set of two letter prefixes is >>> rather small limited. This comment also applies to the other >>> documents, crypto-types uses 'ct. Perhaps this is not a problem >>> since collisions can be handled but if we go for rather short >>> prefixes, we will have to exercise the collision resolution. (I see >>> that 'ct' has already been used by ietf-complex-types, RFC 6095.) A >>> possible alternative could be to use sec-ct, sec-ts, sec-ks, ...). >>=20 >> Ugh (me, whenever a naming-discussion comes up ;) >>=20 >> I don=E2=80=99t know why prefixes are registered, as the prefix = is defined at the top of each module. The only value I see is not = syntactic but rather for consistency, to aid human readability across = disconnected sets of modules. >>=20 >> Prefixing the prefix with =E2=80=9Csec-=E2=80=9C may work for the = trio of drafts you just reviewed, but it seems undesirable when getting = to the client-server drafts, as they're more *protocol* oriented. If = =E2=80=9Cks=E2=80=9D and =E2=80=9Cts=E2=80=9D aren=E2=80=99t taken, then = maybe we claim =E2=80=9Cfirst mover=E2=80=9D advantage? If not, then = maybe =E2=80=9Ckstore=E2=80=9D and =E2=80=9Ctstore=E2=80=9D might be = meaningful fallbacks? Assuming we claim =E2=80=9Cfirst mover=E2=80=9D = advantage for =E2=80=9Cks=E2=80=9D and =E2=80=9Cts=E2=80=9D, then we = just need to handle =E2=80=9Cct=E2=80=9D, which maybe could be = =E2=80=9Cctypes=E2=80=9D or =E2=80=9Ccryptypes=E2=80=9D or =E2=80=9Cct2=E2= =80=9D? So, 1) prefix the trio or 2) claim first-mover advantage on two = and figure out something for =E2=80=9Cct=E2=80=9D? =E2=80=A6or maybe 3) = keep =E2=80=9Cct=E2=80=9D also noting that a) =E2=80=9CSHOULD NOT=E2=80=9D= is not a =E2=80=9CMUST NOT=E2=80=9D (in the text below), b) my = =E2=80=9Crant=E2=80=9D might have some merit, and c) short and terse is = nice (per your next comment). >>=20 >=20 > I suggest you think over it and pick whatever you think seems to be a > good solution. ;-) I prefer to do nothing and push conflict resolution to the front. I = understand that this is against the SHOULD NOT at the end of RFC 8407 = Section 4.2. In this case, I feel that continuing to use =E2=80=9Cct=E2=80= =9D, =E2=80=9Cts=E2=80=9D and =E2=80=9Cts=E2=80=9D is best. If there = were a convenient *good* alternative, I=E2=80=99d do it, but I don=E2=80=99= t think there is, and it=E2=80=99s not worth trying to avoid a conflict = with an =E2=80=9Cexperimental=E2=80=9D RFC from a decade ago that I=E2=80=99= ve never heard of. >>> - Is the feature truststore-supported really needed? Does the YANG >>> library not already provide the information whether a module has >>> been implemented or just imported to access type and grouping >>> definitions? >>=20 >> This was discussed before. The bottom of Section 2.1.4 says: "The = reason for why the "truststore-grouping" exists separate from the = protocol-accessible nodes definition is to enable instances of the = truststore to be instantiated in other locations, as may be needed or = desired by some modules.=E2=80=9D. Case in point, the MacOS =E2=80=9CKeyc= hain Access=E2=80=9D utility maintains both system-level and user-level = trust anchors. [UPDATE: you had a similar comment in the keystore = draft, which you self-resolved there and then said to ignore this = comment. Just the same, let=E2=80=99s ensure the drafts are clear.] >=20 > This explanation gives a reason why there are groupings. My question > concerned the feature truststore-supported. Is the YANG library not > already providing the information whether a module has been > implemented or only used for getting access to definitions? In RFC > 8525, you have a list of modules implemented and a list of modules > used for import only. My question is does feature truststore-supported > mean the same as the module shows up in the implemented module set in = the YANG library? Okay, I see. Yes, the two things mean the same thing, but there is a = need still, which is that =E2=80=9Cif-feature=E2=80=9D statement = expression cannot reference the conformance of a module in YL, which is = compounded by the fact that how it is expressed differs from RFC 7895 = and RFC 8525. > I have looked through the diffs, looked all good to me. Thanks. K. From nobody Mon Apr 19 18:28:56 2021 Return-Path: <01000178ece4d8fd-09010867-cbff-486e-b598-3653e944b833-000000@amazonses.watsen.net> X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 602403A0D39; Mon, 19 Apr 2021 18:28:50 -0700 (PDT) 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_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 X5psgx2qtx6v; Mon, 19 Apr 2021 18:28:45 -0700 (PDT) Received: from a8-33.smtp-out.amazonses.com (a8-33.smtp-out.amazonses.com [54.240.8.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 682053A0D2D; Mon, 19 Apr 2021 18:28:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1618882124; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:Feedback-ID; bh=Bq8iYRT9gnc+njqhiTBSJyRd5QhZ6GdYCzaYc6icsnM=; b=gVqlzRK4YiLXWGA7u/XWqI268YJqGzkh4tTqXZfQ0m+ifDM2LkJP9bHbDVaWRKCq KPyK83fb5Kn+P8Uh/3uBC/MdulhlKAsj65N5w2qI2LeZWRNIVbcPGhWy7SfSqBSbeJl vR7szPOQGsSyoWI2hz8p974yfCa0z4TUu7K0Dil4= Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: Kent Watsen In-Reply-To: <20210416123749.246d6irnd3oso3x4@anna.jacobs.jacobs-university.de> Date: Tue, 20 Apr 2021 01:28:44 +0000 Cc: YANG Doctors , "netconf@ietf.org" Content-Transfer-Encoding: quoted-printable Message-ID: <01000178ece4d8fd-09010867-cbff-486e-b598-3653e944b833-000000@email.amazonses.com> References: <161064362767.26403.10249622617283363882@ietfa.amsl.com> <010001778e68398d-c2bff7b8-4c4e-4f30-a962-1ce39e2ece13-000000@email.amazonses.com> <20210416123749.246d6irnd3oso3x4@anna.jacobs.jacobs-university.de> To: Juergen Schoenwaelder X-Mailer: Apple Mail (2.3654.60.0.2.21) Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES X-SES-Outgoing: 2021.04.20-54.240.8.33 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-keystore-20 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2021 01:28:50 -0000 Hi Juergen, Likewise trimming to the essential parts. K. >>> - Is the feature keystore-supported really needed? Does the YANG >>> library not already provide the information whether a module has >>> been implemented or just imported to access type and grouping >>> definitions? OK, I know see that this is used to make definitions >>> conditional, hence it makes sense. This means that my comment on >>> truststore-supported in the other review can be ignored, I found >>> the answer. >>=20 >> Please see my response to your comment in that draftb >>=20 >=20 > See also my comment on the other document. My question was whether > this bit can already be picked up from the YANG library. Right, and I did just reply that whilst the two point to the same same, = only one can be used in =E2=80=9Cif-feature=E2=80=9D statement = expressions, which is what is needed. >=20 >> BTW, b >=20 > I think this is better. It took me while to determine what text got clipped above which you this = is better. Let me clarify, you think that it would be better to both: OLD; keystore-supported NEW: central-keystore-supported *and* OLD: =E2=80=A6 the keystore, when this module is implemented NEW: =E2=80=A6 the central keystore, when this module is implemented Correct? >>> - Section 4.3 talks about _highly_ restricted access mechanisms and >>> _highly_ authorized clients and I am usually a bit confused what >>> _highly_ means. But I am YANG doctor, not a security reviewer. ;-) >>=20 >> Trying to say that, e.g., the NACM should only allow a "crypto = officer" access to the MKb >=20 > So is NACM the 'highly restricted access mechanisms'? Should it be >=20 > OLD > highly restricted access mechanisms SHOULD >=20 > NEW > access control mechanisms like NACM SHOULD Replaced. Better, thanks! > OLD > highly authorized clients >=20 > NEW > authorized clients NEWEST: ...only to the most trusted authorized clients Ok? > My point is that "highly" simply does not mean anything (to me). Point taken, =E2=80=9Chighly=E2=80=9D doesn=E2=80=99t mean much. > I browsed the diff, the changes look good to me. Thanks, K. From nobody Tue Apr 20 05:40:07 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A486C3A20E7; Tue, 20 Apr 2021 05:40:01 -0700 (PDT) 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, MSGID_FROM_MTA_HEADER=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=jacobsuniversity.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 K8TOdbj1sLtZ; Tue, 20 Apr 2021 05:39:57 -0700 (PDT) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60060.outbound.protection.outlook.com [40.107.6.60]) (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 DABC83A2286; Tue, 20 Apr 2021 05:39:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KN62Q81yvurp3nT+BMpf8opClViokLxCP/ZB5Utjqbow4VCWWvDirupfXVSjPEk5kkQFMUG+Ew+VVyWd9jddKIdR/Tn4fShe67oHsdKLFL2NpDQZ5WgZgvdq6ODGOdY1SGsH9mL8ehgJ2PXnXAbzREAmVYkX3yoBanFG6zF4aKTOyn1D5ar0syaSLRBcGsJ3YHO8+uGJOBfJfDQ3FZKquuHl1fKY8kz2s/xsB0+7TvVEDlbGHSya1ZEuW4nGyemDpDgpee5UHwg4hAKRt430gVtTvh1ErcneBsLpuKMDrrI/qwaaAmoUxMtRLrei+g4Iu4HdTUcHAqO41q7aQ7kDBg== 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=1ykAiXmfPXz2j1iHAPuKhN4NzGHQvl6NOdLwzgJI+Lo=; b=EzwaTly6bM4bhHk8Gy1FNhs/PqcA0/pT4kyymKRcHuQQx4hcipTQkcKL+kF6ajrvsuhPbkSumjaqya6JCZaXVuyb7dp3M542lLdtnqquU1zHv3lI4ZQ3EpCFQ6kuUuBBPAI5pseHhVPjoHn3zb7kQhZP0Rdhvgl+znmhsHklUAeG9wCcJY++sv2AEomDhpYdsfJlRjm07odU3BYaQ6GyewfXHQK6PAumfHh7l9UeqrLn9/eHAVJWhAhqwgJRhMEnGPSAl4qBfa1uQB1RntgKsBkGbnX8s5N/T9MyY6z1jgmmiIuw9YoW77B5Uej2iG9J3hQsOpZvBpOdTaOWZfC5QQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1ykAiXmfPXz2j1iHAPuKhN4NzGHQvl6NOdLwzgJI+Lo=; b=mcfifW5DA5M70KHRSASxEJBUFP/10mcKrRbQQ1/8/RonT0bjhPTxyCeXR9aWe6kG2JxwFIG+o9XABENgrHnwgdbOVaA1gJdYjDjD+tza/6bfnDssQ1QHDUyE785vrLlGJVA8C5D32bApbXObf0v1PwzdHVSMKTyQawvk+oCBQfw= Authentication-Results: watsen.net; dkim=none (message not signed) header.d=none;watsen.net; dmarc=none action=none header.from=jacobs-university.de; Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) by AM0P190MB0692.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:195::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Tue, 20 Apr 2021 12:39:15 +0000 Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6]) by AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6%4]) with mapi id 15.20.4042.024; Tue, 20 Apr 2021 12:39:15 +0000 Date: Tue, 20 Apr 2021 14:39:13 +0200 From: Juergen Schoenwaelder To: Kent Watsen Cc: "netconf@ietf.org" , YANG Doctors Message-ID: <20210420123913.74ejllmgty5z2w6k@anna.jacobs.jacobs-university.de> Reply-To: Juergen Schoenwaelder Mail-Followup-To: Kent Watsen , "netconf@ietf.org" , YANG Doctors References: <161045360252.14510.16755799701987783827@ietfa.amsl.com> <010001778e67638b-53d8c33f-82f6-4bda-881a-3cf881c06c95-000000@email.amazonses.com> <20210416115004.fqhitq6jofc6vjih@anna.jacobs.jacobs-university.de> <01000178ec7bfedf-5b8a2940-2fdd-42f5-ae43-27277d991769-000000@email.amazonses.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <01000178ec7bfedf-5b8a2940-2fdd-42f5-ae43-27277d991769-000000@email.amazonses.com> X-Originating-IP: [212.201.44.244] X-ClientProxiedBy: PR3P189CA0087.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::32) To AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost (212.201.44.244) by PR3P189CA0087.EURP189.PROD.OUTLOOK.COM (2603:10a6:102:b4::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16 via Frontend Transport; Tue, 20 Apr 2021 12:39:14 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ef132f12-a60b-4371-caba-08d903f94ea0 X-MS-TrafficTypeDiagnostic: AM0P190MB0692: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x5I3o6wO1qxTGBPEm9N+wt07sPn5zvRS5x8+Fzo4DHxqOBrZBBU6gxa/odDFHLbpseeBEW2vmUsIRBDA41nqjmcCnAH4WLN+wvGArxdikF+venXNtOqUbc8pllv82IDQPbXpRgGewJB6AdCRmmZuhNxmbnvYy9MpsThsLRRd0a04ySWRtKAmj50jHCeit7DEeySvrEcSg1kv5Tx2xfVzF9CIaPpmd5XF5C1FzYfvlW7eKV3cJCRfQZ/kPhao3VltbEgoSZDjAaFN+FSlpvCd+RHZgWz3oeoVOr598F/J7X6m8gg913wnBhlBT/U9fxsUa+ko/sxeNMQex0iWLsTQL62KOAcTrdovCsc/rlbkT5+5ImRjJaplVi+JKdR28FL73C2wHGAJJmDlxMuxm/neY3VwPKV6XJ+wtYAJx2rNHSse1D4OpsPleugb3IXW3NmDeNZ7TEiVHnzkcGPHU3tt4zdva24gvnZRgKtm+v/BLtep/W2KgcVV1BIm08urW0Zuv++DHgTiq1kX4RVBzu/+RujqXyZvBCDFuRmdWMZVXAdZC4p80thxdKkNsxvtg/6xC6F1fTC3hjJGyeUsjb2JbeLrOzAG5eYsMXJfyMGfF2TczBMYNNyWM6RoAUFDx+Z5a0LDu14bx+YU+PyLBcLfIblCC65JDVVwTz1fDxSkYwPxzQOWpaDl5cIp1hgp+LFzg4+/WewSXQKo5U6/qXUv/OOzZbC7WqcGKCskmwYR0bqMimJ6L3e9WIiQj1bhnOOl X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0P190MB0641.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(366004)(498600001)(16526019)(26005)(52116002)(6486002)(38350700002)(6496006)(5660300002)(66476007)(2906002)(186003)(86362001)(956004)(4326008)(83380400001)(38100700002)(54906003)(8936002)(66556008)(66946007)(8676002)(3450700001)(1076003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?L3pyNlVub05SWnBDQkZqSWlackRyeTdOTkp1MU5MelQ3U2hhOTRmTGlidDRF?= =?utf-8?B?TXlmMEdyczR5ZW1FdUlRUmxGVnQxaXRBOC9oMDFhdXNTYzQ4enlZWjZTNkNI?= =?utf-8?B?L0d2UXZsOGFHQitXaUViMkMzQkNzQTRUei9HTjRHOTVpRnorMDBlOS9hN2Nw?= =?utf-8?B?aGtGbFVsb2FNVFZjUmRLVG5oeGFjQ2huNGFsTml4aS9JMUEvZkZEVzhKVnNX?= =?utf-8?B?bDFVN3ZFblpKRm4wTklxUERUcWRIZzBOMTU2RExKQ0FxS1lLOVoxR0JOcGNS?= =?utf-8?B?eEkxbDhFVzJ5anMvYXEvZjZIbGg2Yk1PNlp2czlnY0U2bklranBsRFRKSFk4?= =?utf-8?B?V3YvQ0ZYNHlZY1l6VHpQRG1Pc1VIQm93UUV3amFuSlliUnpuM3pkRGN1ODhL?= =?utf-8?B?M0UwUFBRcm5lVkFRZmMzVnRUZTk4Y2ExT01HVVBaa3A1Vy9QRDhDV2VzQk5i?= =?utf-8?B?UlpQalNBZ2RrQWR5Qm9UNG1NeHN4RHljVnNxcjJ3NlZ6ZVhqRGNqOEVFeUpP?= =?utf-8?B?NVNPb0E3dS9ManhYVHBLb2RCQ29peExBK1oxUGtSRkNjUHNybUswaVZCalVY?= =?utf-8?B?QWc5WWJ5RjVmdkNQRWhDdXZPZ1NOZlhNcUZINHVmTVNadVRvOXRSdWpYQlZI?= =?utf-8?B?cC81ci9kM2w3QzY0dDNiZ3dOYWJaa3p2Wjg2T2syQ25QSHRVSm5TNnhzY3Vk?= =?utf-8?B?eEg4TkhObk9WY2c3ZHZGbWJpRmNHWld3UjdmUG9TS01NRkxOKytIcmR5SjFH?= =?utf-8?B?YVZiZDBrVEloRWF2UG8rbXU2N09WN1d0R2JHRW1CREd2N3ZXdzhBSUM2U1hC?= =?utf-8?B?R2pGNERqRkM4Z2hIUjlETFRFNDNiY0hHa055ZTJVVEl0TGpld1VDQmM3Nmpt?= =?utf-8?B?VkhDd2FJVS93R3RUSE5DUHN6TkgrQVNLSzE1a1ZUeWlLYXdsbW4zUEZhUWpF?= =?utf-8?B?VjhFN21QdjY5b0JCdjY3YzFlZ0xvalNaY3FoTkM5YXRtc25pbjJ2NUNVRVhw?= =?utf-8?B?WVV4ZjluSHc5VHlDRGxoUmNuWTJoMzJ0dThjZDRxQTRKcTBSR05Razd6UmNm?= =?utf-8?B?M3ViSmFnSkhRMXhyR3U1dEhmd1ZDQ1BQbHl3RWZqWjlzaExwVCtIVlA4eVcz?= =?utf-8?B?NTJ3UHhHdzFpMnkwakdXRCtnVXhNc09WSmxFeXkwUWh5MTE1WVR3NjlhWGxv?= =?utf-8?B?UEVkYUVFSWgrT3ZSUkwwQjRKTlUxb3JWYzh1cFIxdlFSRXM0clR0ejIwcVpM?= =?utf-8?B?cTJxZG1XYzlheFF4MWxXZ2htejluUUcySFpKNEkxb3ZHRkNyd3ZCcDNWMllo?= =?utf-8?B?dnNpVTYySVBUMXBVekkxUkhSblYyMDUxc3lMOUU4MGhPSkhjSHJUY2wyanYr?= =?utf-8?B?OEZ6TU1zUnB4WUNTQzlPNHpYN3dWanZXeHBhWllqNmxsYkphUHN0NFpDN3d3?= =?utf-8?B?VWpMS2VqYXdTa0hKY1RwRGhodW9WZ2lSL1JJWk5VdmNoZDMzdmtxSmdSdVhx?= =?utf-8?B?bnF2RmdXQmsrT0xsTmNIZytQVjlNYmQvNzlVSmFHRjJRT3diVXBQaFlMQVMw?= =?utf-8?B?VEpINlcwVjhMRDYvOUhmZHZXRE9sL1g2UlhNdnZUekVCYU4wVjkzS01YWWxC?= =?utf-8?B?czhKQ3JyVGxIY1Z4eHliLzBmMVVYVVdyMTdmNEFoMllaMHNrN3lrSjZmSHFm?= =?utf-8?B?Y3FPUXFrQ255d2FQT1U5MkRnclJ2Nk1jR0FHR0ZvcUZsZy90dVJlbUNlWTkv?= =?utf-8?Q?G7hj9XR/GXpgwy1WjX3yZkG4znLze3dWwl6SvUP?= X-OriginatorOrg: jacobs-university.de X-MS-Exchange-CrossTenant-Network-Message-Id: ef132f12-a60b-4371-caba-08d903f94ea0 X-MS-Exchange-CrossTenant-AuthSource: AM0P190MB0641.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2021 12:39:15.1970 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hPmUZ+w3ZE93HAgmR9D6+FIMSgZp2343BQM/Z0Tn+ps+5AxypqUUUV8AivUSGhD17WedzENEJXLiXFetOWOtnjapcD3hGnk+nRxtVcBH18I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0P190MB0692 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-crypto-types-18 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2021 12:40:02 -0000 On Mon, Apr 19, 2021 at 11:34:12PM +0000, Kent Watsen wrote: > > Hi Juergen, > > Whittling out things resolved... > > K. > > > > >> - Does it make sense to have a new notation like > >>> > >>> | The diagram above uses syntax that is similar to but not > >>> | defined in [RFC8340]. > >>> > >>> or shall this simply become regular text? > >> > >> I find using tree-diagram like notation for features, identities, and typedefs helpful, especially in showing the “if-feature” constraints and hierarchical relationships between items. I recommend adding these enhancements to RFC 8340. It would be helpful if someone could whip up an I-D so these documents could reference the I-D instead of having the "The diagram above uses syntax that is similar to but not defined in [RFC8340]” language. > >> > >> That said, I also used a "rfc8340-like" diagram to list all the groupings in a module. It seems like the consistent thing to do, but I can’t imagine the RFC 8340 being updated to support that output, so I replaced that diagram, with a normal "xml2rfc" list, in the entire suite of drafts. > > > > I am sorry, I should have been clearer. My comment did not concern the > > diagrams but the mere fact that you have > > > > | The diagram above uses syntax that is similar to but not > > | defined in [RFC8340]. > > > > instead of simply > > > > The diagram above uses syntax that is similar to but not > > defined in [RFC8340]. > > > > and this is really an editorial nit if at all. The diagram itself I > > like, it would be nice to have them in RFC 8340bis. > > Ah, now I understand, you mean to remove the XML2RFC v3 “aside”? I agree that it renders poorly in plain-text, but it renders inside a pretty-box for HTML and PDF. Thoughts? Ah, its called an "aside". I am still reading plain-text but the question likely is what belongs into an aside box and what into text. For me, there is no reason to put this sentence into an 'aside' box - whatever the purpose of such a box is. Its just a regular sentence for me. > Yes, the diagrams would be a nice addition to an 8340bis. Also, I don’t know if you noticed, but the “Data Model Overview” section I created in all these drafts is highly mechanical…something that could be mostly automated…perhaps a good student project? ;) Students tend to do something half and then disappear. ;-) /js -- Juergen Schoenwaelder Jacobs University Bremen gGmbH Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany Fax: +49 421 200 3103 From nobody Tue Apr 20 05:42:39 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BE8C43A2102; Tue, 20 Apr 2021 05:42:33 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.099 X-Spam-Level: X-Spam-Status: No, score=-2.099 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, 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 1SBblbJWhXwg; Tue, 20 Apr 2021 05:42:28 -0700 (PDT) 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 321453A2100; Tue, 20 Apr 2021 05:42:28 -0700 (PDT) Received: from localhost (unknown [IPv6:2001:1488:fffe:6:a88f:7eff:fed2:45f8]) by mail.nic.cz (Postfix) with ESMTPSA id A290E140828; Tue, 20 Apr 2021 14:42:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1618922545; bh=KrRYsB1IIF/3V7M/Wax4Z9ydVBsfZOIgKu9esFd3wkI=; h=From:To:Date; b=sw5dKYcxYlQcxlMhVFqPYEzK8HwBGndfU+baD1LTSyTIeNXhUWdpjzOEC4hzKCAHi MrBZG+ps/aEsABuRuIodeNkRQWgM/jP7IYFsitH1TQ8HMOiwGk2b/UUqomTxW9xtYS sGLO3JYIhhy/0ANynZyAzrNaeBLXT2hLX+ICfv4M= From: Ladislav Lhotka To: Kent Watsen Cc: YANG Doctors , draft-ietf-netconf-tcp-client-server.all@ietf.org, last-call@ietf.org, "netconf@ietf.org" In-Reply-To: <01000178ebd39133-87ef25f3-1047-4f02-b5fb-706e82e7c02a-000000@email.amazonses.com> References: <161796231010.8005.7390142571009530431@ietfa.amsl.com> <01000178ebd39133-87ef25f3-1047-4f02-b5fb-706e82e7c02a-000000@email.amazonses.com> Mail-Followup-To: Kent Watsen , YANG Doctors , draft-ietf-netconf-tcp-client-server.all@ietf.org, last-call@ietf.org, "netconf@ietf.org" Date: Tue, 20 Apr 2021 14:42:25 +0200 Message-ID: <87tuo1w2j2.fsf@nic.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: clamav-milter 0.102.2 at mail X-Virus-Status: Clean Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-tcp-client-server-09 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2021 12:42:34 -0000 Kent Watsen writes: > Hi Lada, > > Thank you for your review! > > Below are responses to your comments. > > K. > > >> Reviewer: Ladislav Lhotka >> Review result: Ready with Issues >>=20 >> The modules are well designed and nicely documented, both in the descrip= tions >> and text of the Internet-Draft. > > ;) > > >> **** Comments >>=20 >> - Sections 2.1.4, 3.1.3, 4.1.3: the sentence 'The "..." module does not = contain >> any protocol-accessible nodes.' is misleading in that the modules do def= ine >> data nodes that are intended to be protocol accessible after the corresp= onding >> grouping is used. I know this is a part of the NETCONF/YANG lingo, but a= nother >> formulation that clearly says what's going on might be preferable. > > Fair enough. How about this? > > The "ietf-tcp-..." module does not itself define > any protocol-accessible nodes. This module defines > only "grouping" statements that are used by other > modules to instantiate protocol-accessible nodes. > What about using just the last sentence? It says all. > > >> - Sections 2.2, 3.2 and 4.2: the XML snippets use document elements >> "tcp-common", "tcp-client" and "tcp-server", but these containers are not >> defined in the corresponding modules. This is confusing, my suggestion i= s to >> rewrite the examples in the JSON representation where no such top-level = node is >> necessary. > > Indeed, and my validation script even takes the special step to convert t= he groupings to containers in order for the validation to succeed. In oth= er modules, I created a =E2=80=9Cfoobar-usage.yang=E2=80=9D module to insta= ntiate the grouping statements. > > Hmmm, I was about to create the JSON, but realized that it would be easie= r to strip out the first-and0-last lines from the XML examples. I understa= nd that they're not a valid XML documents, but snippets have been used befo= re=E2=80=A6 > > FWIW, all the examples are still validated, so there=E2=80=99s otherwise = no loss in correctness. Maybe it is not necessary to validate these short fragments. In any case, a= casual reader might be confused - where do these elements come from? As a = minimum, some explanation should be added. > > > >>=20 >> - What is the purpose of "tcp-connection-grouping" if it only uses >> "tcp-common-grouping" and nothing else? Why cannot "tcp-common-grouping= =E2=80=9D be used directly? > > I added this comment: > > Whilst this grouping appears to not add any value beyond that given > by "tcp-common-grouping", it is defined so as to provide space for a > future peer module (e.g., "tcp-system-grouping" that defines addition= al > configuration nodes used to configure a TCP stack at an operating > system level. OK, so this new grouping could use equally well either "tcp-connection-grou= ping" or "tcp-common-grouping", and add more configuration nodes. Having tw= o names for the same thing is confusing. > > Makes sense? > > >> - The "local-port" parameter defined in ietf-tcp-client seems dubious fr= om the >> security viewpoint in that fixing the source port makes it easier for at= tackers >> to steal the connection (see RFC 6056). > > Interesting read. But note that the RFC regards primarily cleartext prot= ocols. An axiom in security circles is =E2=80=9Cobscurity is not security= =E2=80=9D, i.e., randomizing client ports to make off-path guessing harder = is not much of a win. I don't think this can be labelled as security by obscurity. Without crypto= graphic protection, it is basically the only available measure against traf= fic injection. In DNS, for example, source port numbers (and transaction ID= s) with insufficient entropy are considered security issues. > > In our case, and pretty much every IETF protocol now, a secure transport = layer is used, and having a predictable 5-tuple can greatly reduce the atta= ck-surface in firewall rulebases. > > As it stands, it=E2=80=99s configuration enabled by an optional feature (= your next comment) and, besides, the wildcard values (e.g., =E2=80=9C0=E2= =80=9D) may configured, enabling [potentially-random] operating-system sele= cted values - so no harm? > > >> If the feature >> "local-binding-supported" is needed at all, I'd suggest to mention this = in >> Security Considerations. > > =E2=80=9CNeeded=E2=80=9D is an interesting take. My feeling is that the = model is > incomplete otherwise. From a Security Considerations perspective, I was thinking it might be needed for cases like NETCONF call home. Otherwi= se, it is not common to be able to configure the port for the side that per= forms active open. > I=E2=80=99d like to put something like: > > =E2=80=9CImplementations are RECOMMENDED to implement the 'local-bindi= ng-supported=E2=80=99 feature for cryptographically-secure protocols so as = to reduce to attack surface presented by firewalls.=E2=80=9D I don't understand what firewalls have to do with this issue. On the other = hand, I would also mention the reason why this is RECOMMENDED, and cite RFC= 6056. > > Is that what you had in mind? If nothing else, having such a statement = in the draft would certainly catch the eye of the SecDir reviewer. Thought= s? Of course, a SecDir review would be more authoritative here. Cheers, Lada > > >> - The module ietf-tcp-client uses the placeholder "RFC AAAA", which is n= ot >> defined in the Editorial Note. > > Fixed. > > > >> **** Nits >>=20 >> - RFC 7950 is cited repeatedly (6 times) in a general context, e.g. when= ever >> YANG 1.1 is mentioned. It should suffice to use the citation at the first >> appearance. > > All but one citation removed. > > > >> - sec. 1.3: s/in compliant/is compliant/ > > Fixed (in all the drafts!) > > >> - in 3 places: s/illustatrating/illustrating/ > > Fixed (in all the drafts!) > > > Thanks again! > > K. > > --=20 Ladislav Lhotka Head, CZ.NIC Labs PGP Key ID: 0xB8F92B08A9F76C67 From nobody Tue Apr 20 05:44:30 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5D4393A2103; Tue, 20 Apr 2021 05:44:24 -0700 (PDT) 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, MSGID_FROM_MTA_HEADER=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=jacobsuniversity.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 aWWOWiutoc9w; Tue, 20 Apr 2021 05:44:19 -0700 (PDT) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40040.outbound.protection.outlook.com [40.107.4.40]) (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 453EC3A210B; Tue, 20 Apr 2021 05:44:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l1o4dF41dzxVXxg+Pz0KpTj18C1M/v/ecm5kik8ItqNqGwAmudExEa5hIglWBWjpJ1lk7005RaYXpcPex2Fypu9vdLnMA87GPN0BEH3y3DIbgzg7EgKOaTl8D4MmbR92sl6cG5FF2OTXdTzzDZoX1l5Hk3uvaiv5kc8yEfl71Foh09Z5eDpuibdNgcWolFuQBuawi28k5NWtKwQh7nGfq0y3boxXQGsCC//t7usO+iajEFwlio9ChgRVOQ/lz/5g7jI5vJ6xPcs6XlV6m1ed8T/jV2OPYHnGpZYtU0H0GAt3xfw3UvtD1OiA+ZbBFb1Gvy9DI1uXn8Igfacb1nCvrA== 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=h4gCZdweBSoXMPKwkUxU68JEtZk6YQy1w5BTRNrT+tY=; b=WcaB/6a02bhWItfW7mb9Ayz3VJh3/k56MNlG/bG1wA96b/sVXEWoyUKmSCKnd2cBVISn/ZkOOt+vyELNXFHowgqFyrQeTeSJqn2CCup8IrvtO1S6tCXUgFZC/B2UBNg7wLVQ4dNbdr+RyNZNZdSdS4+Xeg+GensJ5cFv5LEakLqOkmO2bwVJcu94fODGr0/EyrsM1+puAZzPeof1lrQTLZto3GVlxpaXfuilqvc00SICAOYLG2A/KL9d6GIe2wsV8OUGici3jJImea+XS4HzDZUchyora8ROsyA9pY0OZpLqde4S4aIkKAdtsbzuGImbq5ShbwJH8SCwo9aBqbDzGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h4gCZdweBSoXMPKwkUxU68JEtZk6YQy1w5BTRNrT+tY=; b=djm5X3bQxMh443o5SUa4p8kXdS0GPRW6KU87H8owkZHXFzQvBuIQeclklxjhhwdxz0tJvNR2+rDx6vSvc2kU5y4xefS+QC4rco7XckstvOIUaugwkHw/lJVoLr5fRqZSHVSPqk45oTRKUU4+LFUJrSBi9cwq/qpWp9OtN2dQ3wo= Authentication-Results: watsen.net; dkim=none (message not signed) header.d=none;watsen.net; dmarc=none action=none header.from=jacobs-university.de; Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) by AM4P190MB0017.EURP190.PROD.OUTLOOK.COM (2603:10a6:200:60::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Tue, 20 Apr 2021 12:44:16 +0000 Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6]) by AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6%4]) with mapi id 15.20.4042.024; Tue, 20 Apr 2021 12:44:16 +0000 Date: Tue, 20 Apr 2021 14:44:15 +0200 From: Juergen Schoenwaelder To: Kent Watsen Cc: YANG Doctors , "netconf@ietf.org" Message-ID: <20210420124415.jjwl6nlh72obeurd@anna.jacobs.jacobs-university.de> Reply-To: Juergen Schoenwaelder Mail-Followup-To: Kent Watsen , YANG Doctors , "netconf@ietf.org" References: <161064362767.26403.10249622617283363882@ietfa.amsl.com> <010001778e68398d-c2bff7b8-4c4e-4f30-a962-1ce39e2ece13-000000@email.amazonses.com> <20210416123749.246d6irnd3oso3x4@anna.jacobs.jacobs-university.de> <01000178ece4d8fd-09010867-cbff-486e-b598-3653e944b833-000000@email.amazonses.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <01000178ece4d8fd-09010867-cbff-486e-b598-3653e944b833-000000@email.amazonses.com> X-Originating-IP: [212.201.44.244] X-ClientProxiedBy: PR3P193CA0042.EURP193.PROD.OUTLOOK.COM (2603:10a6:102:51::17) To AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost (212.201.44.244) by PR3P193CA0042.EURP193.PROD.OUTLOOK.COM (2603:10a6:102:51::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.18 via Frontend Transport; Tue, 20 Apr 2021 12:44:16 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a3068302-e907-4aa8-c17b-08d903fa020c X-MS-TrafficTypeDiagnostic: AM4P190MB0017: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3631; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jEMebPVHdG7mEuXlXZ3rIbzABIJjBydWc/lQJm7fB1Wb51RdYh+boRnee0Hq+0ihSzphdlL2887gHq4xgXtSHcYbykc93am1TpgIhxejhX1/nWTz2yhHW2s4aLYYNvCKHZ1b0UvCX9kAZuUVpLVkvB69HuKRbbeW5eIPmtlSmeLgTMhVuOh0OFygoS/0XG2MfT6Vsq1Y8YyUDUAR1CrP5GBcNIZh1L4RZiTZ9oPgKB7mf2D3R1ZDFrkp3XSe2F1035b/rta3U38jR5BenLdGHQ1RQTTFY0O+R7Ku5fnuZ7oL27tpHXBxD2Xqlv5dYtW21LjcJX/WYsHwXIds330XZ7LFKbfmkjhY924sCxviez6TPJg/rkUcocEn/ltzGuDnePIYbzmJuUWUAMdWT16mHujXVtCOBKXfLtt/khCALuZF96SoAPMT4uBzkMVfCFr7Iq8b6dNqhNoPo9+9oZOhHOD+MBivr6xM86ut77lDwu8g1KYm4c4aXLeTjdElWVxc1NTdzubNt+W2xTaxj3Ab2MQwqNhd37u7lA0RSel6JtwjNdpz2HnqdzfAXfQdFkIANJQwf7vJ8/QdygVe9dB6znspi26SpuObi/fGSTJrpboWob9PqL98t0VeK0rhZrB9BaZaqzKeGQHyv1urW6HEXMXKCo9WBb0QKSBIwrsckufrDwRD0Emq31Bnz1vWfrqFb/CbOBv6oWIeqnuR03AmrTT4iWF1+WOcaaA6O7nvuYJpI54ikfW4swL1n1tmV2cF X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0P190MB0641.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(366004)(26005)(54906003)(1076003)(956004)(4744005)(86362001)(66476007)(6496006)(16526019)(5660300002)(498600001)(186003)(4326008)(8676002)(8936002)(52116002)(66556008)(66946007)(38350700002)(6486002)(2906002)(3450700001)(38100700002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?eWxJZ0VkZDVvSGFxVHZ6ZHRmNHIzMGZuNGJUdnpEK3BNeXBZZzBHcjg1K2xu?= =?utf-8?B?NEx5Um5oT2JnNUxjQmlaS1hhbktKWmd0aFJsZW94M1UwanYvTzNnMnhvVk9n?= =?utf-8?B?em5pbHN5UEQrRGpSWHd2VEJGZHU5UTUyaGhMdWFrNHJUdVFkVzZlcFMwTEo0?= =?utf-8?B?cUJlMVhSNXhQTVlJVEVHaEl3TjJQQ3hXc1U3SVRjblNDYlZCL3liTU5tenE3?= =?utf-8?B?NXVWelYyNnVkbjRzVS9nODNadlk4QXplaUVaaGo0YVJpSllUTDhKVFBVK2t3?= =?utf-8?B?SmtQdmJKMm1PTnQ3dm5NYXZySG1LdUt2amR5c2tDVHFwQ3Z3Y01heTVSd2sz?= =?utf-8?B?WFpScE5hVStiNkpQclo4SFNGakxSVlZ0RUFhNTZqS2lxaEFuSWtvd3ZwOVp4?= =?utf-8?B?SEdCUGlqWWd6SjZBWjg0QjRQdWoxYUVmU1RjeXUrNkIraXMyUDRpaklUNDdK?= =?utf-8?B?ZURLZnpNejNESkhuTFVRZitJRmlrcVVBdEprc3VWcmRVdXk1WWR4eHJpZGJv?= =?utf-8?B?KzJISmpHbVVDeDBneHNjQXEwcUlzY1Z6b29hYW8yK0F2M1ZZSDdISFZYcER2?= =?utf-8?B?SGNsSHI5RGtsbnFidHpjdFdQSUtTSkhSbUNBV0NUNVc5anlwTnNwUmVOUGFZ?= =?utf-8?B?YmZrMk45UUxIdzlKeUVQTTZmMG9ZNkthUld1RXJqc1NKZ2tIbUVVTWppRmRl?= =?utf-8?B?L05TTG1SNjN0dHNNbm5MSDdtZmIvYkNTMTIrakQ2RUZGV2lKUVRLVkJTaUlp?= =?utf-8?B?L1J0V3dLQlRKYnk2VTZRTHo3YjVQUVJVVUhTclczbGlma2pia2RYVWxGRG9V?= =?utf-8?B?aUppUU15elo4MjNwVGN6U1kranlVZGdOSkFzMmJiK0srakxYbXB3WVgxRGNt?= =?utf-8?B?VnlUVWZzWEdiUzhZQWJYSG9ZcGNJckhrYlhTY0RXNk80RTRscE1uSFU1MkUy?= =?utf-8?B?VGxjdHV1M1ZNRWtRV1RIWDU3YnhNYnZkbklqTGVpdzNqUmcrRHBlcTliZnpF?= =?utf-8?B?UVRaMitHOWtwNkl5ZW9xWlY0TGhKb05ZWUNuRVBjR20xMkp6azFCVWk3S2VV?= =?utf-8?B?S2hBTGphR0tIdVpGWjJLcEQ1ZHZpc2JNMXNuWVdQcjVLTk82K09Gb2JkWkl3?= =?utf-8?B?Q2N2eWQ4UFlzZzg1M3gwNzNWQXFFSk5mdUN1SnQ5S2Fod0ZVaFdQb0trUkdk?= =?utf-8?B?NEs5K1JQOE1iN2NrOEVHdTdmR2NoQXdmenlZdDFyaHZ6Ullqdk9rQlREcWZo?= =?utf-8?B?UUdqS1VteUxvd0Z1dHpuNUdqNjkvU045TmJ5b3F2VDRMZXBtalhWaGNkL3R2?= =?utf-8?B?L3l4UlM2RGFOK2xWdWltNDhRclRNWEdxTTRuRzQxM3FKN3paR2QrLzVJTTdL?= =?utf-8?B?OHpKQkhLeHZUWGo5cFovdzFGSWQ2dUttR0xxVHZPc055bmlMTERTY0JyZUVz?= =?utf-8?B?VFdzNXoxNFYvS3VyYk1UVFR4NUJJc1B5MmQ2VkdvL1U0VDNOa2ZFVHpQVENG?= =?utf-8?B?TnN4b2VzYXk5ZURZeHdhNm1RMHBXMXlHYjlXMFlWZk54TmYxMlBhVG41MjRR?= =?utf-8?B?SDNxWWtwMHNCei8vRlJqeW03Zks0d1pqb0xZMnpQZWhxbVRrSVYzMysyMkdw?= =?utf-8?B?bktPQUJIVTlVUExWdWJ5dkdzQ1dGcEJEOTlYT0hvTlA1WTBVMktUT3IwZU8y?= =?utf-8?B?aGZ4ejF3OUZ1ZGhSOStOQ25JRFV1U2xGZitKT0F2MXdjUDFNNGxjQWd5WCtV?= =?utf-8?Q?mVTlWg/kwWn/ZlY5VIPrBqfj3sVd5NPodRqgxxp?= X-OriginatorOrg: jacobs-university.de X-MS-Exchange-CrossTenant-Network-Message-Id: a3068302-e907-4aa8-c17b-08d903fa020c X-MS-Exchange-CrossTenant-AuthSource: AM0P190MB0641.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2021 12:44:16.2157 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kRHTG4Y/j7vh7xrSk1oTBfabTMgIF6B7DOrqIB+rGq+tyiw/QqGV6r3y7B7JP+ffD8Djgrt7Lajc/1Tq9Ph3GrY8DY2vtVilSgFhyVpaURU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4P190MB0017 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-keystore-20 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2021 12:44:24 -0000 On Tue, Apr 20, 2021 at 01:28:44AM +0000, Kent Watsen wrote: > > It took me while to determine what text got clipped above which you this is better. Let me clarify, you think that it would be better to both: > > OLD; keystore-supported > NEW: central-keystore-supported > > *and* > > OLD: … the keystore, when this module is implemented > NEW: … the central keystore, when this module is implemented > > Correct? Yes. /js -- Juergen Schoenwaelder Jacobs University Bremen gGmbH Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany Fax: +49 421 200 3103 From nobody Tue Apr 20 05:59:08 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 53DC03A21B0; Tue, 20 Apr 2021 05:59:00 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.099 X-Spam-Level: X-Spam-Status: No, score=-2.099 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, 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 cuRCDb3GNFeo; Tue, 20 Apr 2021 05:58:55 -0700 (PDT) Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (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 F1AAC3A21AD; Tue, 20 Apr 2021 05:58:54 -0700 (PDT) Received: from localhost (unknown [IPv6:2001:1488:fffe:6:a88f:7eff:fed2:45f8]) by mail.nic.cz (Postfix) with ESMTPSA id 87DA1140828; Tue, 20 Apr 2021 14:58:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1618923530; bh=NLs+q6+CIaaAb6xyTSbXvAY8eFZaCn0M/4/aEuT+a3o=; h=From:To:Date; b=WFbeYkQvPyKnc2ZfczW+qrPrH9gkNDzQuswu1e6jIA/W8x/1O53t7VnZ4ZmfnNmkO JVOUJ4yA5zWh4jeaVIqDn5C3hy2N4l/f0U4Iv9iiYt4spdl3drQH7x3bv9q9bXuSYX 9EO6d2O21mOkpjJfzhSqKnz+z4bWH205vyWPFpP0= From: Ladislav Lhotka To: Kent Watsen Cc: YANG Doctors , last-call@ietf.org, "netconf@ietf.org" , draft-ietf-netconf-http-client-server.all@ietf.org In-Reply-To: <01000178ec3aebdf-1c5e3f62-5432-4d07-80d4-85480626a545-000000@email.amazonses.com> References: <161821556350.10432.14910369341748800490@ietfa.amsl.com> <01000178ec3aebdf-1c5e3f62-5432-4d07-80d4-85480626a545-000000@email.amazonses.com> Mail-Followup-To: Kent Watsen , YANG Doctors , last-call@ietf.org, "netconf@ietf.org" , draft-ietf-netconf-http-client-server.all@ietf.org Date: Tue, 20 Apr 2021 14:58:50 +0200 Message-ID: <87r1j5w1rp.fsf@nic.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Scanned: clamav-milter 0.102.2 at mail X-Virus-Status: Clean Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-http-client-server-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2021 12:59:01 -0000 Kent Watsen writes: > Hi Lada, > > Thank you for your review! > > Below are responses to your comments. > > K. > >> On Apr 12, 2021, at 4:19 AM, Ladislav Lhotka via Datatracker wrote: >>=20 >> Reviewer: Ladislav Lhotka >> Review result: Ready with Nits >>=20 >> The document defines two YANG modules - ietf-http-client and ietf-http-s= erver - >> that belong to a relatively complex set of modules. The modules are well >> designed and nicely documented, both in the descriptions and document te= xt. > > :) > > >> **** Comments >>=20 >> - Sections 2.1.3 and 3.1.3: the sentence 'The "..." module does not cont= ain any >> protocol-accessible nodes.' is misleading in that the modules do define = data >> nodes that are intended to be protocol accessible after the corresponding >> grouping is used. I know this is a part of the NETCONF/YANG lingo, but a= nother >> formulation that clearly says what's going on might be preferable. > > I fixed this when I addressed the same comment made in the =E2=80=9Ctcp-c= lient-server=E2=80=9D draft. OK > > > >> - Sections 2.2 and 3.2: the XML snippets use document elements "http-cli= ent" >> and "http-server", but these containers are not defined in the correspon= ding >> modules. This is confusing, my suggestion is to rewrite the examples in = the >> JSON representation where no such top-level node is necessary. > > Same solution as for the =E2=80=9Ctcp-client-server=E2=80=9D draft, which= is to simply remove the first and last lines, for the non-existent =E2=80= =9Ccontainer=E2=80=9D statement. > > Update: I was going to proactively-apply the same solution to the =E2=80= =9Cssh=E2=80=9D and =E2=80=9Ctls=E2=80=9D drafts, but I couldn=E2=80=99t be= cause the top-level element defines additional prefixes. This is where you= r =E2=80=9CJSON=E2=80=9D idea could help, though, for some reason, having a= mix of XML/JSON in the suite of drafts is off-putting to me. We could con= vert all the examples to JSON, but that=E2=80=99s a fair amount of work too= =E2=80=A6 If you already have that "foobar-usage.yang" module, you could possibly tra= nslate these snippets automatically using the "jsonxsl" plugin of pyang. I also think that JSON examples are easier to parse for a human reader. > > How about adding an XML-comment indicating that the top-level element doe= sn=E2=80=99t really exist? Yes, as I wrote in the other review, some explanation might suffice. Lada > > >> - Placeholders BBBB, CCCC and EEEE are defined in Editorial Note but nev= er used > > Fixed. > > >> **** Nits >>=20 >> - RFC 7950 is cited repeatedly (4 times) in a general context, e.g. when= ever >> YANG 1.1 is mentioned. It should suffice to use the citation at the first >> appearance. > > Fixed. Also in the =E2=80=9Cssh=E2=80=9D and =E2=80=9Ctls=E2=80=9D draft= s. > > > K. > --=20 Ladislav Lhotka Head, CZ.NIC Labs PGP Key ID: 0xB8F92B08A9F76C67 From nobody Tue Apr 20 10:50:40 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 122AC3A0F3A for ; Tue, 20 Apr 2021 10:50:39 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 SNZi4t6rVinO for ; Tue, 20 Apr 2021 10:50:33 -0700 (PDT) Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) (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 CCD023A0F13 for ; Tue, 20 Apr 2021 10:50:32 -0700 (PDT) Received: by mail-wr1-x431.google.com with SMTP id r7so26544177wrm.1 for ; Tue, 20 Apr 2021 10:50:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version:thread-index :content-language; bh=4bHlEN1dYvVQTAoe8bFu8+2yOjvNc2PExcrbRwV9vrM=; b=j2lhHmOw7T6oIcdtfzbmNwLU7r4uDBhFqemU2FBo3rBZ6e+DWwhn/6Ol2vJLnAH194 1aajQe0VctljTdhTsVW5wGD/TFNRFFZ96zb+WbkKNJ7e534X0S6YBOnT9lCfXmJyKYuT qYw4kB3tGwscAhz0AW+fAXYWMsxKEH+xf3hIJEUwOD/IF7B3jJ6pnsGolu68v6dWJMHy mXS5PDrlU1AiqiXPWdV2v4pPNonsHtxfmwwoJGY7EZbyDEEDwwDRZb/af1nH8IFDgHFA h2lAlumM6NfMVuBdgxs6KEo0+bMtvThpGGKf4QVSNcXydLnSrP/35VQYo6cFdNvQLxMm 0x+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :thread-index:content-language; bh=4bHlEN1dYvVQTAoe8bFu8+2yOjvNc2PExcrbRwV9vrM=; b=pbg9vv4pFW5Hvrlv08ZE2ctD6L4UBgq7JwU//SHUNno39DNDCemASYrTm2ULaG/T4d ktvls2NUIvVJNHW5BhFtE+FqO5juCJ1NKNFFg1dSFtSg+URcNoVZUOgZ1YCzE/zbYKGV b7S6w9mVWb/+DcuuT+HQtPVV/w216EOUWCA6yyCs8iuvO3EWKpxQwjZNKkNXqJ4Hu7sg G2S05bH3KGmU2/splRvoIqy6XBdI1BSru/+qVMCbdINZkGLUZPH4j56ETH5qoyfSU3Z0 O2nwSEC0YxzrYKqG5bqteqURB+QunX+wMGE+2gdPS9yqPlfE9DJ0Lk0Zm4Os6HyZ9rD3 +thg== X-Gm-Message-State: AOAM531+GGiVkoUy5xQ+8ML8DUpfQAIkffvbYIvciqnAQ3dl3XnstakB Upmrzj7bHbhN1ENqYuJYp5e7CA9WSyg= X-Google-Smtp-Source: ABdhPJzHlZ9Mj6XVN+ylRa4pCz7C8tpnWLTXD4RXP5mLbop1XIxRA3VwoZKuryfbRJIct8MHO8kRCg== X-Received: by 2002:a5d:528c:: with SMTP id c12mr19803418wrv.303.1618941029561; Tue, 20 Apr 2021 10:50:29 -0700 (PDT) Received: from DESKTOPFLHJVQJ ([2001:16b8:a0d1:6c00:1983:f45d:8ff9:ace1]) by smtp.gmail.com with ESMTPSA id n2sm4857817wmb.32.2021.04.20.10.50.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Apr 2021 10:50:29 -0700 (PDT) From: "Mehmet Ersue" To: Date: Tue, 20 Apr 2021 19:50:28 +0200 Message-ID: <020501d7360d$a7193200$f54b9600$@gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0206_01D7361E.6AA20200" X-Mailer: Microsoft Outlook 16.0 Thread-Index: Adc2DaZs2rWak+vGTluBb4i/ZaRTbg== Content-Language: de Archived-At: Subject: [yang-doctors] Please join me to Welcome the new YANG Doctor Michal Vasko X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2021 17:50:39 -0000 This is a multipart message in MIME format. ------=_NextPart_000_0206_01D7361E.6AA20200 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Dear YANG Doctors, please join me to welcome a new member for the YANG Doctors team. Many Thanks to Michal Vasko for volunteering. Cheers, Mehmet ------=_NextPart_000_0206_01D7361E.6AA20200 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Dear YANG = Doctors,

 

please join me to welcome a new member for the YANG = Doctors team.

Many Thanks to Michal = Vasko for volunteering.

 

Cheers,

Mehmet

 

------=_NextPart_000_0206_01D7361E.6AA20200-- From nobody Tue Apr 20 11:03:12 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 531BA3A07EA for ; Tue, 20 Apr 2021 11:03:07 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -11.917 X-Spam-Level: X-Spam-Status: No, score=-11.917 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_NONE=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=O+sKLpEE; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=reQOD309 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 xPZZTOPHonjE for ; Tue, 20 Apr 2021 11:03:02 -0700 (PDT) Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 78BA83A0799 for ; Tue, 20 Apr 2021 11:03:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2398; q=dns/txt; s=iport; t=1618941782; x=1620151382; h=from:to:subject:date:message-id:references:mime-version; bh=jq2A4Igm1Nes1Z1uxeUjpDFqaEARqtXFbUxFYf+nOeg=; b=O+sKLpEECcUAE2NV6nJ69JaVPjgECA8RxzKarpzyxFu/W7PBwgvh33UD ZvuVPqfTOfHIxeWR1Vy0Y4BzKxgPhA5X/daajjblkNPOSbqjb8IkNqRF3 L4Rw5d4jfH7JBzIqUpBkBWtCNkeUEP+t3Mw7qXXhy7+GW+lNq0YiNklUy I=; X-IPAS-Result: =?us-ascii?q?A0AYAgC3Fn9gmI9dJa1agQmBUoEjMFGBWDYxC4gAA4U5n?= =?us-ascii?q?TyEdoEuFIERA1QLAQEBDQEBMgIEAQGEUAKBdAIlNAkOAgMBAQEDAgMBAQEBA?= =?us-ascii?q?QUBAQECAQYEFAEBAQEBAQEBaIVQDYZFBi0TAQE4DwIBCAQKODIlAQEEARqCa?= =?us-ascii?q?YF/VwMvAZ4HAoofd4E0gQGCBAEBBoU7GIITCYE6gniECYZUJxyBSUKBVoIwL?= =?us-ascii?q?z6ECDyDS4IJIpgHinWeZQqDDJ0iD4NPin+WNJUeoz4CBAIEBQIOAQEGgVQ4g?= =?us-ascii?q?VtwFYMkUBcCDo44g1eKXXM4AgYKAQEDCXyLAwGBDwEB?= IronPort-PHdr: A9a23:5ce1iB2Ac6rQLe8tsmDPW1BlVkAck7zpIg4Y7IYmgLtSc6Oluo7vJ 1Hb+e4FpFDMVITfrflDjrmev6PhXDkG5pCM+DAHfYdXXhAIwcMRg0Q7AcGDBEG6SZyibyEzE MlYElMw+Xa9PBtaHc//YxvZpXjhpTIXEw/0YAxyIOm9E4XOjsOxgua1/ZCbYwhBiDenJ71oK xDjpgTKvc5Qioxnec4M IronPort-HdrOrdr: A9a23:kDh7yak6KoMYZ4n7Lzp1zTNRbAfpDfOFj2dD5ilNYBxZY6Wkvu iUtrAyyQL0hDENWHsphNCHP+26TWnB8INuiLNxAZ6LZyOjnGezNolt4c/ZwzPmEzDj7eI178 ldWoBEIpnLAVB+5PyU3CCRGdwt2cTC1aiui/vXwXsFd3AWV4hL6QBlBgGHVmh/QwdbDZQ0fa DsmvZvjTymZHgRc4CHFmAINtKz6+HjubDHRVo9BxAh4BSTlj/A0t7HOjWRwxt2aUI2/Z4M6m 7A+jaJg5mLl9Ge5lvi23TI75JQ8eGRhedrIMCXkMAaJnHNp2+TFf9ccoaPtjw0v+2jgWxC+L KnzntQXLUQ11rrcm64uhfr0QX7uQxekUPK80OSgnfovKXCNVUHIvdBno5Qf1/47EctrbhHod t29l+ZrJZeAFf8mj387bHzJndXv3ezyEBS9dI7vjh6a88zebVRpYsQ8Ad+C5EbBh/374ghDa 1HENzczOw+SyLVU1np+k1UhPC8VHU6GRmLBmIYvNaO7jRQlHdli2MF2c0kmGsa/p5VcegE28 30doBT0J1eRM4faqxwQM0bR9GsN2DLSRXQdEWfPErgD6NCH37WsZb47PEU6YiRCdw15ap3vK 6EfEJTtGY0dU6rI9aJxod3/hfER3j4Ui/qzs1Y+phlqrzxTLfmKkS4ORITuvrlh89aLtzQWv 61Np4TKeTkN3HSFYFA2BC7W5Q6EwhabOQl/vIAH36eqMPCLYPn8sbBduzIGbbrGTE4Hmf2An 4JWinvNNxNh3rbHkPQsVz0YTfAa0b/9ZV/HOzx5O4I0rUAMYVKr0wSklS25saCLDVYqawodE 5iILfq+5nL5lWezCLt1SFEKxBdBkFa7PHLSHVRvzIHNEvybPIeodmFYHtT23GGPxd7SMvTHG dk1hNK0JPyC6bV6TEpCtqhPG7fsmAao2iSSYwA3oeZ493+R58+BpE6eaB4GAnRDSZpkQJypG orUn5DembvUhfVzYSsltg9GfzWfdgUunbVHedk7Vbk8Xi6ie5qbH0BRDKqWdOQmm8VNkRpr2 w01bQejrqGkSuoMk0ljo0DQQRxQVXSJq5aBwKYY4gRvbbndGhLPDy3rA3frQ0vcWz38EhXvE jdFGm/fPHGBUc1gAEB7o/j7E50emKBf0h5d3B9tslnGX7bv2touNX7F5abwi+fbEAPzfoaNy yAaTwOIhl2z9TyzxKNni2efE9WjakGL6jYDL45davU1W7oIIqUlbseF/s8xuctCPn+9usKW/ mYYQmbMXfxDP4owRWcojIgNDNvoHcp1fPu1xuN1hnx4FcvRf7TKk9hXbcVPpWV6HXlXe+B1N Fhls0u1NHARlnZe5qD0+XafjRDIhTcrSq/SPwps4ldueY3uKFoF5fWXDPU3Bh8rV8DBdaxkF lbTLVw4bjHNIMqZcAUdi5D9lcildiELiIQw3rLK/57eUtog27QPtuP7baNtKEmBVeZohDsfV aY6C9Q8p7+Lma+/K9fD7h1J2tYaEIxsis/uOyDcpDdEwWseaVI+kGgPnq0bb9aT+yEFNwr32 RHysDNm/XScSzynB3Ut398JKlF9m68W8O8AA6WA4dzgquHEEXJhrHv+dK5iTf8VCCyZEsZj5 BUbEB4VLUxthAyyIksljWoQqP5okg5g0JT7DFumFnqwJWn6g7gbDR7GBychI5XUzlVOmWJis qA8fHw7gWM3AR4 X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="5.82,237,1613433600"; d="scan'208,217";a="705398118" Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by alln-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 20 Apr 2021 18:03:01 +0000 Received: from mail.cisco.com (xbe-rcd-005.cisco.com [173.37.102.20]) by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id 13KI318I013758 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=OK); Tue, 20 Apr 2021 18:03:01 GMT Received: from xfe-rcd-002.cisco.com (173.37.227.250) by xbe-rcd-005.cisco.com (173.37.102.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3; Tue, 20 Apr 2021 13:03:01 -0500 Received: from xfe-rcd-004.cisco.com (173.37.227.252) by xfe-rcd-002.cisco.com (173.37.227.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3; Tue, 20 Apr 2021 13:03:01 -0500 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (72.163.14.9) by xfe-rcd-004.cisco.com (173.37.227.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3 via Frontend Transport; Tue, 20 Apr 2021 13:03:00 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KG4jTmdWNHmGAihOFeR2DOPECSI92jWqZKxAc7XUl6t82EKhHb0yn9Ic/20DVaEW6Jx17h0x/dMYb23dXQFNkj8+v8maBITw/Xk8Rwt2LetjAoq9jmnMkJ+w2AqprKSCO0BTklNd1fdR5eFkFt9kJu8pqaS6vz03pFza79XcW2XUp60ji+RPEEpUSC+PznN2GAZHWhuJoW6GpCnmRQiA5oFJn42uKb9VRUrr+ibslnMf3tJ9fTCfcRKOfZ4AUZbVg+A2UC9CggNUNxRpDP7tA2IliHNxqivyiiPhM9E8rgskA7abP3vDPLKNiUJB11OUTb9/QS7+narKJwBT5bfRrg== 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=WOqqSlTH3ipCkoxNP0mvcu3PItJq0dmF+IUEklJwh28=; b=RjMpFU5+XhYf4TU9GI3Cwha5JECL2AHQB+vC4uP3Y08C7Y2b4vPeiKpvnc1ATbyekmPL6kURqeBNaDahEzDGQ3yZVR8Jj51Ui0DZc6aap3FljhwCTVdF5BOYf7UsfZBf/2lVOqu1vvfwKxyILM+NSMyEGj6NMDTXj3IJ+f+Ae135tefoek9c0fRC6VWz2sQTxRBXRVe0rcsoTuAg4oX+FfiDsT7n27a1Oj/5iYoLm+9h89mFi3Qnl3zC8HDow2hqD7Ds0Nk1LVpbXrXsG3QuK2WI4orp5kMAi4o4GsJvq1SdbTtvtpvrMa+N4zPxIUPW6hjL/1YqUSu9Rw2+Zrh8BQ== 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=WOqqSlTH3ipCkoxNP0mvcu3PItJq0dmF+IUEklJwh28=; b=reQOD3090o/BSSVBUsOao6O5X5llx3lHEo/OPRQT1xzFI5HNF9j4xBVL0xCYvewP4wuT/RFbpJhRL2Wf6hLV1EjmB3RFld7bQkFHEPKffHGk8vJ2F7H0cV7B/hCk/y+Jigu0fWjuDJmcx3wjY9pOgIzw+NZLxWoOoik3bJxNLbs= Received: from BN6PR11MB1667.namprd11.prod.outlook.com (2603:10b6:405:e::12) by BN6PR1101MB2177.namprd11.prod.outlook.com (2603:10b6:405:50::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Tue, 20 Apr 2021 18:02:59 +0000 Received: from BN6PR11MB1667.namprd11.prod.outlook.com ([fe80::557b:ce5:83e9:96a4]) by BN6PR11MB1667.namprd11.prod.outlook.com ([fe80::557b:ce5:83e9:96a4%3]) with mapi id 15.20.4042.024; Tue, 20 Apr 2021 18:02:59 +0000 From: "Joe Clarke (jclarke)" To: Mehmet Ersue , "yang-doctors@ietf.org" Thread-Topic: [yang-doctors] Please join me to Welcome the new YANG Doctor Michal Vasko Thread-Index: Adc2DaZs2rWak+vGTluBb4i/ZaRTbg== Date: Tue, 20 Apr 2021 18:02:59 +0000 Message-ID: References: <020501d7360d$a7193200$f54b9600$@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=cisco.com; x-originating-ip: [173.38.117.84] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 541c094f-370d-42a6-faa6-08d90426888d x-ms-traffictypediagnostic: BN6PR1101MB2177: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BUPw7Mb5VwoOSQUmSVGK7zM8wH699khkdPTyjoIatco4cbFiPkW2NCcdxud4blSRIhxY6FqMaxi3J8Q0uwKkuIdM8R/HVwJ5dRNMhIfWmZ1ezXIoxEoMb4k/pSejA23N2zrrOAz4tkquOB12aGaDbpi02U0SgMDxF4LibxRgVytXAgwhQyIf0ZDbUltUGZfny+2LAAj4aSBrEwricjgrKFHlpLB3AA2G301/f5KKri4ODqMajuW5dzI+RvLWLqqOCL7VBQW61p7BUyXzT6c8t6KAXeyr+cyK9dwbx4kwL9zckyOmBxUBP6hNYpm+L9W5i+FcRqXJitA362sz39Pq4Us8vnj1eD02eC/YPwnTs4lXSiqgeTesx3+zLYy5sCNoWMh+AKWhWWWte8x6Njhch32nWiDM/AP0+FI15PhZWY3AQGV1u4G8rGFMfE0xFi0pUY+p3D85uXt6e9giStN0BhIeuw/W9RPX97vh7Fvw8wqLE4i7bIZOPyoSmkom7tUXdJVP3fFKFkGeo7mUBsUb+GA3auKwOKEXJFPtCZBetGGF9j6EO1lmYWo0zMYuIrgnMfBmDwkK+gScsbYyRMet4lR6dPiRVHayCt7qfkDc+ms= 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:(346002)(39860400002)(376002)(136003)(396003)(366004)(8676002)(64756008)(2906002)(186003)(33656002)(52536014)(5660300002)(66946007)(7696005)(66556008)(558084003)(66476007)(9686003)(38100700002)(55016002)(110136005)(76116006)(83380400001)(6506007)(122000001)(71200400001)(53546011)(91956017)(316002)(66446008)(8936002)(26005)(86362001)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?maw9siGLQ+OBSK1csevsmXhGbFs4WMos3ShrtFm87zXR5z8wRN1REfMGmlHw?= =?us-ascii?Q?koGFpgeGpSOfp/YuXtw83i5vTWkRTHtQbjEleJzieYAnanr31zzDKLUIF7Zj?= =?us-ascii?Q?MZb0sTo3DOlV4qB2xHLYAtfrLMQPOaFbJefFC1O27RcqXH2N2LZLqCC5Alvm?= =?us-ascii?Q?eQajIs3s7vnY7+rVYpc+vwi+FPZJjeAuCJjlbjToYQFTzSJF1v5q6eYthJGH?= =?us-ascii?Q?Ury5G89Mh+O9PyThTybxnO/V4femLTJ1lg5VQZ6/vGYL26IDMsGiYK49/Q0j?= =?us-ascii?Q?J+1LujN+C5zz6Qo6I1XJaPMsLWXzKNNVB8Mt5tREFnY5AzvGgg2HkMsDTMFb?= =?us-ascii?Q?p3pHfpf/gxMWcbaKaEP4JcvjtGwisir7rWieu5Gzqe+K0qb+3pw5soPHht1a?= =?us-ascii?Q?41c8tAWIYJCpOzfCGnDNxyMLBKh05AlwYSY+arVHt2MJNXg80C2ZkVtqjy/j?= =?us-ascii?Q?FmJqtba0g402O0+udyq6Fxtica7UmbLngqBhbzKXuOXADJQ85MuNS9QiXmD6?= =?us-ascii?Q?3yKlh9HZn422961opjX14iq6atKpCPowiiCtCOp3cpGK1YAJLJMgONvQ2nvs?= =?us-ascii?Q?XCK0qunwdhGznYI9PPVOrZwPpOEUsh4UZYvfTEsHDZ+BlmaYXSCZFgAEjWYq?= =?us-ascii?Q?9YGQ7R1U6G7R8vMup67NqRNYNhUrrI0tcJX9HwMTMcfba/b5DJgTmrQqDp+7?= =?us-ascii?Q?rqiPVbRIgXZKjftLbEiI6FjlCamRy4m3INLNTW1uK14IBPmKH/TOdQGsawie?= =?us-ascii?Q?Bw9gx2jK1waeRX5hRHge3zPnIezO3CMJVkZgp73bE5xx/yHF4HapQYHlLlYv?= =?us-ascii?Q?0CwsQlA1b6JI8F04G7RWF3MfW39d30CXctT3J3VwsePK4eF0IiFpWxupfdiZ?= =?us-ascii?Q?8tP3Md6fmj3M6uUVpU8FZ7B6EERoZSEr105V1XFy+oIfZ46CjnK7d27pkXj1?= =?us-ascii?Q?uWahrGpaScVIza9akN3pk5Urqmx/7sd6CtSPyGWSvCrndy9BO0dwuCOD7xSO?= =?us-ascii?Q?OzUIJCyZ9rFY1dw/rzCm8GnxmpVw9TZtN+OAMNPmbMbV+sdPqoElfhFA/q05?= =?us-ascii?Q?/vLwKSsZHsBSi9wQley1/lIcNw7mK0Kok7kx5b3NFRHy+/jdRyXLg2PiaNcX?= =?us-ascii?Q?kfgv6Timr00XR0PIqu7phuYJXBBjFuV6qkiibv5gRxeBVcrQTl/IIUW+paUX?= =?us-ascii?Q?Dak1JbG0PVqRMZHcfPvjtlAwyHlE9eb+sBSbmg6Nmqj/Qu9Ga4HiprjA98A1?= =?us-ascii?Q?7X7KZZm96WFlsxUn79rLADumDsCK0k1oXWYqeYAOkEas9Cd9XFlH5JGZ31Fw?= =?us-ascii?Q?UP8Mi3RhgILbh1IOA7an+/Puz6fXkRow5BD99wIarmwHLg=3D=3D?= x-ms-exchange-transport-forked: True Content-Type: multipart/alternative; boundary="_000_BN6PR11MB1667F6EB339D0B4044DDD30AB8489BN6PR11MB1667namp_" 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: 541c094f-370d-42a6-faa6-08d90426888d X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2021 18:02:59.3731 (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: 9nT+yjyNXd8B8kRNYSvW+3WddWeh7w1aez4bVDqltSlJZSg9E+HUwrZEp5io+gcSR9yJIBWNHX4aVVwMMo8qHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1101MB2177 X-OriginatorOrg: cisco.com X-Outbound-SMTP-Client: 173.37.102.20, xbe-rcd-005.cisco.com X-Outbound-Node: rcdn-core-7.cisco.com Archived-At: Subject: Re: [yang-doctors] Please join me to Welcome the new YANG Doctor Michal Vasko X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Apr 2021 18:03:07 -0000 --_000_BN6PR11MB1667F6EB339D0B4044DDD30AB8489BN6PR11MB1667namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Welcome, Michal! Joe On 4/20/21 13:50, Mehmet Ersue wrote: Dear YANG Doctors, please join me to welcome a new member for the YANG Doctors team. Many Thanks to Michal Vasko for volunteering. Cheers, Mehmet --_000_BN6PR11MB1667F6EB339D0B4044DDD30AB8489BN6PR11MB1667namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Welcome, Michal!

Joe

On 4/20/21 13:50, Mehmet Ersue wrote:

Dear YANG Doctors,

 

please join me to welcome a new member for the YANG = Doctors team.

Many Thanks to Michal Vasko for volunteering.

 

Cheers,

Mehmet

 


--_000_BN6PR11MB1667F6EB339D0B4044DDD30AB8489BN6PR11MB1667namp_-- From nobody Tue Apr 20 22:40:35 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2BA833A1152 for ; Tue, 20 Apr 2021 22:40:27 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 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_DNSWL_BLOCKED=0.001, 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=cesnet.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 0F0MrhwWUuHL for ; Tue, 20 Apr 2021 22:40:22 -0700 (PDT) Received: from kalendar.cesnet.cz (kalendar.cesnet.cz [78.128.211.34]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 10D653A111E for ; Tue, 20 Apr 2021 22:40:21 -0700 (PDT) Received: by kalendar.cesnet.cz (Postfix, from userid 110) id 2369760083; Wed, 21 Apr 2021 07:40:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cesnet.cz; s=kalendar; t=1618983618; bh=lUowS6iiFCzAJ0QJ5sMd6CTLU6pvwxcvNFSrbno/H08=; h=From:In-Reply-To:Date:Cc:To:Subject; b=ppPDA08Op2KSzVLda4+dvf/i8P4ZfBR9CXHTJNyaOunm4H3vt4fZth50jWWHBX0hQ NasE1nSdRBrW2+wvsw3quPhBS1mgDpOPI/aOVtfzoJZP+CGBfcWOHJfQKEKPLKc+kl A3ddLP8kfIBGtrWAPsDkzBUnh5ZFGSjOhzbFpcZI= From: =?utf-8?q?Michal_Va=C5=A1ko?= In-Reply-To: <020501d7360d$a7193200$f54b9600$@gmail.com> Content-Type: text/plain; charset="utf-8" X-Forward: 84.42.188.124 Date: Wed, 21 Apr 2021 07:40:18 +0200 Cc: yang-doctors@ietf.org To: "Mehmet Ersue" MIME-Version: 1.0 Message-ID: <110c-607fbb00-5-5ec26380@11917609> User-Agent: SOGoMail 5.1.0 Content-Transfer-Encoding: quoted-printable Archived-At: Subject: Re: [yang-doctors] =?utf-8?q?Please_join_me_to_Welcome_the_new_YANG_?= =?utf-8?q?Doctor_Michal_Vasko?= X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2021 05:40:33 -0000 Thanks guys, hopefully I can be of some help :) Regards, Michal On Tuesday, April 20, 2021 19:50 CEST, "Mehmet Ersue" wrote: > Dear YANG Doctors, > > > > please join me to welcome a new member for the YANG Doctors team. > > Many Thanks to Michal Vasko for volunteering. > > > > Cheers, > > Mehmet > > > From nobody Wed Apr 21 16:09:08 2021 Return-Path: <01000178f6b18c8b-1b707cda-9404-4617-9301-3fe6846fcad7-000000@amazonses.watsen.net> X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 25BA33A3A7E; Wed, 21 Apr 2021 16:09:00 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.898 X-Spam-Level: X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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 tWMoVb7eox48; Wed, 21 Apr 2021 16:08:56 -0700 (PDT) Received: from a48-93.smtp-out.amazonses.com (a48-93.smtp-out.amazonses.com [54.240.48.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AA28C3A3A7F; Wed, 21 Apr 2021 16:08:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1619046534; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:Feedback-ID; bh=VsYETXGytmhYDSLJZV/Jo1d7F+3kyyiK0XCv5CMvbt8=; b=DSQI1XMCsLYq1+FFcs49laMuUvRqJHYIXpBLLaSTqmNjyOdqlc/aNuvN2wWQW+mf DWRZaKNB1YbI/58yUwo1oyUIMhrNgtjgwcVOZsXWRK3Ynf2tulTAQhdKROLlFXyFVW0 3ZVoxwTZj9yg3OKgDC1Ah1l8IrCnhPa9HXz7bA0Y= Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: Kent Watsen In-Reply-To: <20210420123913.74ejllmgty5z2w6k@anna.jacobs.jacobs-university.de> Date: Wed, 21 Apr 2021 23:08:54 +0000 Cc: "netconf@ietf.org" , YANG Doctors Content-Transfer-Encoding: quoted-printable Message-ID: <01000178f6b18c8b-1b707cda-9404-4617-9301-3fe6846fcad7-000000@email.amazonses.com> References: <161045360252.14510.16755799701987783827@ietfa.amsl.com> <010001778e67638b-53d8c33f-82f6-4bda-881a-3cf881c06c95-000000@email.amazonses.com> <20210416115004.fqhitq6jofc6vjih@anna.jacobs.jacobs-university.de> <01000178ec7bfedf-5b8a2940-2fdd-42f5-ae43-27277d991769-000000@email.amazonses.com> <20210420123913.74ejllmgty5z2w6k@anna.jacobs.jacobs-university.de> To: Juergen Schoenwaelder X-Mailer: Apple Mail (2.3654.60.0.2.21) Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES X-SES-Outgoing: 2021.04.21-54.240.48.93 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-crypto-types-18 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Apr 2021 23:09:00 -0000 Hi Juergen, Firstly, I=E2=80=99m beginning to think that my SMTP-client might be the = source of the =E2=80=9Cgarbling=E2=80=9D we=E2=80=99ve been seeing in = some off the text messages. It was updated a couples weeks ago, and = I=E2=80=99m still running the current version. Checking = =E2=80=9Cpreferences=E2=80=9D, I see that my =E2=80=9Cuse same format = from original message=E2=80=9D setting was disabled - I just reenabled = it. More below. K. >> Ah, now I understand, you mean to remove the XML2RFC v3 b >=20 > Ah, its called an "aside". I am still reading plain-text but the > question likely is what belongs into an aside box and what into > text. For me, there is no reason to put this sentence into an 'aside' > box - whatever the purpose of such a box is. Its just a regular > sentence for me. >=20 =46rom https://tools.ietf.org/html/rfc7991#section-2.6: "This element is a container for content that is semantically less important or tangential to the content that surrounds it.=E2=80=9D= Is it okay to leave for the Copyeditor? >> Yes, the diagrams would be a nice addition to an 8340bis. Also, I = don't know if you noticed, but the =E2=80=9CData Model Overview=E2=80=9D = section I created in all these drafts is highly mechanical=E2=80=A6somethi= ng that could be mostly automated=E2=80=A6perhaps a good student = project? ;) >=20 > Students tend to do something half and then disappear. ;-)=20 :laugh: K. From nobody Wed Apr 21 18:01:37 2021 Return-Path: <01000178f7189888-4d8f72aa-7bf1-4875-af4c-ecde0f0d2ba5-000000@amazonses.watsen.net> X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4F5A83A3DF3; Wed, 21 Apr 2021 18:01:31 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.898 X-Spam-Level: X-Spam-Status: No, score=-1.898 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_HELO_NONE=0.001, SPF_NONE=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 EjpMzoOTsJNn; Wed, 21 Apr 2021 18:01:29 -0700 (PDT) Received: from a48-93.smtp-out.amazonses.com (a48-93.smtp-out.amazonses.com [54.240.48.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1636D3A3DBE; Wed, 21 Apr 2021 18:01:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1619053287; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:Feedback-ID; bh=aGMsO2q3uIVXnvHonbnXT7OvyTAIs9ulr/5/dTn+EpI=; b=iB6XhgIjQFvCODb0jXMBTjKbRFiqi+ZUFq2Z13W+9DVuqUoAkRndFZSqYV6pkZYm fNuMd1TdbzV4LfnAvseqZrkafGBsNHCSWlb98GxfD02uBfzPRhdLH3M8AtX5XT5iO9Y SUOst0k7b4lhwsJxA0eCC6K5oTmkhLX2D5L5XYDU= Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: Kent Watsen In-Reply-To: <87tuo1w2j2.fsf@nic.cz> Date: Thu, 22 Apr 2021 01:01:27 +0000 Cc: YANG Doctors , draft-ietf-netconf-tcp-client-server.all@ietf.org, last-call@ietf.org, "netconf@ietf.org" Content-Transfer-Encoding: quoted-printable Message-ID: <01000178f7189888-4d8f72aa-7bf1-4875-af4c-ecde0f0d2ba5-000000@email.amazonses.com> References: <161796231010.8005.7390142571009530431@ietfa.amsl.com> <01000178ebd39133-87ef25f3-1047-4f02-b5fb-706e82e7c02a-000000@email.amazonses.com> <87tuo1w2j2.fsf@nic.cz> To: Ladislav Lhotka X-Mailer: Apple Mail (2.3654.60.0.2.21) Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES X-SES-Outgoing: 2021.04.22-54.240.48.93 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-tcp-client-server-09 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2021 01:01:32 -0000 Hi Lada, >>> **** Comments >>>=20 >>> - Sections 2.1.4, 3.1.3, 4.1.3: the sentence 'The "..." module does = not contain >>> any protocol-accessible nodes.' is misleading in that the modules do = define >>> data nodes that are intended to be protocol accessible after the = corresponding >>> grouping is used. I know this is a part of the NETCONF/YANG lingo, = but another >>> formulation that clearly says what's going on might be preferable. >>=20 >> Fair enough. How about this? >>=20 >> The "ietf-tcp-..." module does not itself define >> any protocol-accessible nodes. This module defines >> only "grouping" statements that are used by other >> modules to instantiate protocol-accessible nodes. >>=20 >=20 > What about using just the last sentence? It says all. Done. >>> - Sections 2.2, 3.2 and 4.2: the XML snippets use document elements >>> "tcp-common", "tcp-client" and "tcp-server", but these containers = are not >>> defined in the corresponding modules. This is confusing, my = suggestion is to >>> rewrite the examples in the JSON representation where no such = top-level node is >>> necessary. >>=20 >> Indeed, and my validation script even takes the special step to = convert the groupings to containers in order for the validation to = succeed. In other modules, I created a =E2=80=9Cfoobar-usage.yang=E2=80=9D= module to instantiate the grouping statements. >>=20 >> Hmmm, I was about to create the JSON, but realized that it would be = easier to strip out the first-and0-last lines from the XML examples. I = understand that they're not a valid XML documents, but snippets have = been used before=E2=80=A6 >>=20 >> FWIW, all the examples are still validated, so there=E2=80=99s = otherwise no loss in correctness. >=20 > Maybe it is not necessary to validate these short fragments. In any = case, a casual reader might be confused - where do these elements come = from? As a minimum, some explanation should be added. Done - the following XML-comment has been added just each such XML = example: I think it critical to validate *every* example, as it=E2=80=99s too = hard to maintain otherwise. ;) >>> - What is the purpose of "tcp-connection-grouping" if it only uses >>> "tcp-common-grouping" and nothing else? Why cannot = "tcp-common-grouping=E2=80=9D be used directly? >>=20 >> I added this comment: >>=20 >> Whilst this grouping appears to not add any value beyond that = given >> by "tcp-common-grouping", it is defined so as to provide space for = a >> future peer module (e.g., "tcp-system-grouping" that defines = additional >> configuration nodes used to configure a TCP stack at an operating >> system level. >=20 > OK, so this new grouping could use equally well either = "tcp-connection-grouping" or "tcp-common-grouping", and add more = configuration nodes. Having two names for the same thing is confusing. Removed, after reviewing the latest "draft-ietf-tcpm-yang-tcp=E2=80=9D = draft. >>> - The "local-port" parameter defined in ietf-tcp-client seems = dubious from the >>> security viewpoint in that fixing the source port makes it easier = for attackers >>> to steal the connection (see RFC 6056). >>=20 >> Interesting read. But note that the RFC regards primarily cleartext = protocols. An axiom in security circles is =E2=80=9Cobscurity is not = security=E2=80=9D, i.e., randomizing client ports to make off-path = guessing harder is not much of a win. >=20 > I don't think this can be labelled as security by obscurity. Without = cryptographic protection, it is basically the only available measure = against traffic injection. In DNS, for example, source port numbers (and = transaction IDs) with insufficient entropy are considered security = issues. Noted. >>> If the feature >>> "local-binding-supported" is needed at all, I'd suggest to mention = this in >>> Security Considerations. >>=20 >> =E2=80=9CNeeded=E2=80=9D is an interesting take. My feeling is that = the model is >> incomplete otherwise. =46rom a Security Considerations perspective, >=20 > I was thinking it might be needed for cases like NETCONF call home. = Otherwise, it is not common to be able to configure the port for the = side that performs active open. Uncommon, but not unheard of, nor bad practice. Ever since I worked at company developing FW/IDP devices and a NOC/SOC, = I=E2=80=99ve always pushed for and advocated the ability to configure = local address/ports. >> I=E2=80=99d like to put something like: >>=20 >> =E2=80=9CImplementations are RECOMMENDED to implement the = 'local-binding-supported=E2=80=99 feature for cryptographically-secure = protocols so as to reduce to attack surface presented by firewalls.=E2=80=9D= >=20 > I don't understand what firewalls have to do with this issue. Because knowing the source addr/port enables some of the 5-tuple numbers = to move from an =E2=80=9Cany=E2=80=9D value to specific values. This = benefits both the egress and ingress sides. > On the other hand, I would also mention the reason why this is = RECOMMENDED, and cite RFC 6056. Done. >> Is that what you had in mind? If nothing else, having such a = statement in the draft would certainly catch the eye of the SecDir = reviewer. Thoughts? >=20 > Of course, a SecDir review would be more authoritative here. >=20 > Cheers, Lada K. From nobody Wed Apr 21 18:26:35 2021 Return-Path: <01000178f72f82b2-465a9684-f2b7-4872-bed1-950216c323b9-000000@amazonses.watsen.net> X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C95F33A3EB8; Wed, 21 Apr 2021 18:26:33 -0700 (PDT) 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_NONE=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 Rdo2hDg1nNyr; Wed, 21 Apr 2021 18:26:31 -0700 (PDT) Received: from a8-88.smtp-out.amazonses.com (a8-88.smtp-out.amazonses.com [54.240.8.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AD4123A3E85; Wed, 21 Apr 2021 18:26:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1619054789; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:Feedback-ID; bh=VZyZz1gP9+wRpSWSHnnzWaExRahye76i9vg2gNr7ZDM=; b=Z2yx3n8VwyqWEDVZeKab6VLOq0zs4+dChpa0SfLoxEi9MeNe21gGoG/3W+Tgp9SJ yxFVEvNAwuL93Puj9kQwumBnRF4EuOgRTk+58pG3FOrPel6IlQuCoUMe5dNvxxvXSbc gAajr8EjZ1kheS0PJBEUF/RCyrbVEe8hca9y8h+g= Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.21\)) From: Kent Watsen In-Reply-To: <20210420124415.jjwl6nlh72obeurd@anna.jacobs.jacobs-university.de> Date: Thu, 22 Apr 2021 01:26:29 +0000 Cc: YANG Doctors , "netconf@ietf.org" Content-Transfer-Encoding: quoted-printable Message-ID: <01000178f72f82b2-465a9684-f2b7-4872-bed1-950216c323b9-000000@email.amazonses.com> References: <161064362767.26403.10249622617283363882@ietfa.amsl.com> <010001778e68398d-c2bff7b8-4c4e-4f30-a962-1ce39e2ece13-000000@email.amazonses.com> <20210416123749.246d6irnd3oso3x4@anna.jacobs.jacobs-university.de> <01000178ece4d8fd-09010867-cbff-486e-b598-3653e944b833-000000@email.amazonses.com> <20210420124415.jjwl6nlh72obeurd@anna.jacobs.jacobs-university.de> To: Juergen Schoenwaelder X-Mailer: Apple Mail (2.3654.60.0.2.21) Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES X-SES-Outgoing: 2021.04.22-54.240.8.88 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-keystore-20 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2021 01:26:34 -0000 Hi Juergen, >> It took me while to determine what text got clipped above which you = think is better. Let me clarify, you think that it would be better to = both: >>=20 >> OLD; keystore-supported >> NEW: central-keystore-supported >>=20 >> *and* >>=20 >> OLD: =E2=80=A6 the keystore, when this module is implemented >> NEW: =E2=80=A6 the central keystore, when this module is implemented >>=20 >> Correct? >=20 > Yes. Done! Thanks again. K. From nobody Wed Apr 21 23:15:39 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8126C3A148E; Wed, 21 Apr 2021 23:15:34 -0700 (PDT) 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, MSGID_FROM_MTA_HEADER=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=jacobsuniversity.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 0aLW5W5I7bsg; Wed, 21 Apr 2021 23:15:30 -0700 (PDT) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on0630.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0d::630]) (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 DE33A3A148C; Wed, 21 Apr 2021 23:15:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OCGeBSsUTOa2QEbCm09swbv0qfD2TWuZY49iuZEQmnQEGDUNhLk1VgdcatRMMy6EJqUj3VwoCo4ZLxjRMerBUYyOaqKxwuv1DRlYsgvxv6GuzCAynlXrd7H//wWnPs5WycsfmyhatiJd2Mo3Ngs6MBi0+tq7YkaX6cqeTmWzwiHt6ATtrJlHipqIZXeScB38hUivAHVogM/a7deItZDO68y8gHN16WOcEZRsXhhcg7+CJH+7ZJ289CKEYnPw3Vfc/ArzXKZQxenNzkrlGcwPqwZ9Qb9Im7O91gwh1rMGYF3IaJ+hiMc6LcxK8jnAbVqXz50ti+1N8ktZWlLT3VP7aw== 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=C5U6QHzqGi4q1b6g8J/n/PHXzeB/dTH4LrhaKaUEZwg=; b=LPMosNV7r8u8AEr9ttX2oytI2OQrbAZBh8Yq8MkprGTUXqAk3sP943oUZyidzD78ev+GbTCJzt+OC6q12paBEZWxydS7vJCo0uoqFR3TyMYrKRAh43U9qvgCmIjpQsfMt4OKbdrLD6euZJs6FuOAoGRnRNIuF6idNld2xrZM2rz0cLdRz7wECxJaS0PcvFxMl3FY+bde5hccdq0K0B5rrq2RP4tPXbR6/TkByML3XBkDh6xk1JvTku600dxwtu5Wotm/z/rc+3oX8wnSlsugG6ZhunfQkj+NCSevOuA5ohnq5mmkP4ZYFewC6lm8fkcnastyWllXpTL8DaCs0XHV1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jacobs-university.de; dmarc=pass action=none header.from=jacobs-university.de; dkim=pass header.d=jacobs-university.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C5U6QHzqGi4q1b6g8J/n/PHXzeB/dTH4LrhaKaUEZwg=; b=XTTFQbDpJHqY1qvnqADrB/Nhmtwvg/jgUDIg08PenBtMXiY0Skgl7YjfcpZ7lkbZIM55waB4jPNXJIlL0ZOXgkqVRfZIJcEEdo1Mg+iDKBCCpowcXw5HDu0p3JMXdLuuLtdYMF9QkDxTpufB8ksN+FTJQjMIBE/HSUFsUlRcAmM= Authentication-Results: watsen.net; dkim=none (message not signed) header.d=none;watsen.net; dmarc=none action=none header.from=jacobs-university.de; Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) by AM9P190MB1043.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:26c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Thu, 22 Apr 2021 06:15:15 +0000 Received: from AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6]) by AM0P190MB0641.EURP190.PROD.OUTLOOK.COM ([fe80::e8a2:9886:8dfa:41c6%4]) with mapi id 15.20.4042.024; Thu, 22 Apr 2021 06:15:15 +0000 Date: Thu, 22 Apr 2021 08:15:13 +0200 From: Juergen Schoenwaelder To: Kent Watsen Cc: "netconf@ietf.org" , YANG Doctors Message-ID: <20210422061513.uvdte37xafvkzmco@anna.jacobs.jacobs-university.de> Reply-To: Juergen Schoenwaelder Mail-Followup-To: Kent Watsen , "netconf@ietf.org" , YANG Doctors References: <161045360252.14510.16755799701987783827@ietfa.amsl.com> <010001778e67638b-53d8c33f-82f6-4bda-881a-3cf881c06c95-000000@email.amazonses.com> <20210416115004.fqhitq6jofc6vjih@anna.jacobs.jacobs-university.de> <01000178ec7bfedf-5b8a2940-2fdd-42f5-ae43-27277d991769-000000@email.amazonses.com> <20210420123913.74ejllmgty5z2w6k@anna.jacobs.jacobs-university.de> <01000178f6b18c8b-1b707cda-9404-4617-9301-3fe6846fcad7-000000@email.amazonses.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <01000178f6b18c8b-1b707cda-9404-4617-9301-3fe6846fcad7-000000@email.amazonses.com> X-Originating-IP: [212.201.44.244] X-ClientProxiedBy: PR2P264CA0037.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::25) To AM0P190MB0641.EURP190.PROD.OUTLOOK.COM (2603:10a6:208:194::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost (212.201.44.244) by PR2P264CA0037.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101:1::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.22 via Frontend Transport; Thu, 22 Apr 2021 06:15:14 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6c847c16-9403-456a-2200-08d90555fe73 X-MS-TrafficTypeDiagnostic: AM9P190MB1043: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Y2I4o1BnOCZ2s0fH2PLCazyM8QBnHdQeBeffrLfTKKoS5+DevLJQdEEENH/BqDlcxTHoQp9ahnXE9t6tVKwvRNcyYFmTnVFQsf1cGy8qqz0qsg78IRksxaO9U+HQ917V9ZzdafoJp5CleUQ8+uptYTeG+pjQcfNF4Zn046kxBDfyp3UwLrF5cayLrb4CPf1eIbCkENEQb8LRLawPmtPMcm9dWYMgE9lXYFwg/7pk6y2NniosWn9blnMUG7naRxwAv/tvNQ/PJue8gHG8Ih+6ktrIxCbOz2sO88lvdgQtbUpum3j8T9QFY6IP7yJXGZ0xtzQG/T5HDxD6n8f30bj5+eplz3ZtF3DjWvDLYruC9pY0FIvj4JoI3pevtpHTi0SdwFBnrRoanuXaObwaanFTkuYmHlV73L/wtPkMCm48YESuy5uJFEqvKDIiNy8Q70R/n7FiQ2VJLRo0L3kPudAJqRvf3oeAfKN4GzfWOW9d9kSou+O3lvqKDLrstuaowfu7hWO3lynP3BG5T2LLuvVLomJYzGbWPoLeVnf0Lki/GCTLq86v2cV1P//j6WnIBRCWI9e+C641bRG7j8FhhtqPjW/oThrU1yJLeSwBsWroew2z0Qdm8JMvLmAWpP6gP1el0CB7mWw9b/VkxS5CMs+9ng+RQgU6lGbLdClRg/kzoZ0M2HZstZKOCMgkPVnnniofoKnmvID08hpm1X6swyr9+l+BNvaXj/xpzIIt0ozHHbg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0P190MB0641.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(366004)(396003)(346002)(136003)(39840400004)(376002)(26005)(3450700001)(6486002)(66946007)(8676002)(956004)(66556008)(966005)(5660300002)(66476007)(2906002)(54906003)(316002)(86362001)(478600001)(786003)(38100700002)(38350700002)(1076003)(4326008)(6496006)(186003)(8936002)(16526019)(52116002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?SXg0TUgwYXBrTGgrdk02N2JDcW5vL1Z2WHJIZWJKYVk5Z3poL2tnM2MweEtk?= =?utf-8?B?YldyekRqQTRQT1hONjBPeVZKTWlVREp5TjR0U3htVnltU0dPdUVEbU5TQ0pE?= =?utf-8?B?ajh1QkRZTEVqNmFrbSt3bXhvTzI4S3d6bUVLeUxNVDFpei9qR0V1RnJvSGVw?= =?utf-8?B?bzVlUFh1NVNzKytpY3RMWDhRTUt0MnhmeVpDSlEyYzJoUlZ1T2M1VXZ4R3Nj?= =?utf-8?B?TDFEOTg5Q01LV2hoZ1ovYVEvTWZEOGpzMFFYSmMvTVlTMm5qY1BMY2lDNWlC?= =?utf-8?B?WjBpbFlVa1RSYVdPSVdyMzArb0dheHdoS3RaVGNWWTdLMHhSY0tnN3YzTkFP?= =?utf-8?B?Z3NjVFFtWUZJZGp1WDFqM2dQN0F3bUxPaU14S2xEaFNnd2FKOVZLQzZVMFdv?= =?utf-8?B?ckQwUHluTml3dUZ4ZlJBNkRWS0ZLQWdTNjl5VmlKSmJhRnRHK2oxcjZheWNS?= =?utf-8?B?VXRaZlNLRm5rSnpGL2NFTzZRMm9CM3hsWWFVdGZWdkhNcUlpN1dPTk1DSkZo?= =?utf-8?B?clFqbnI1REZHWSs3RXB3bk0zV3NUZ1hpTm05OVRtS1k4bUJDY2M5bW41QjEx?= =?utf-8?B?WGtDR3dwWTNGSW1McW5YVW0yUHhrQWJWMkVJNERLRkpUN2ZNNWZRNjBrZzN3?= =?utf-8?B?Y0FiMTJ3NURZdlY2Uno3U2loSS9ZcFduVG50U0tuZDFyeUJWZ1pUd1A5MjdO?= =?utf-8?B?YjRobjVNLzE2Q0trWC9OU2Nhb004Z2RwM1JncVVKelZNbFg0SkFaY2xCWHBS?= =?utf-8?B?aGR2eEhrZTYrMlgvMjJuUWoyRkVUS2RjdTdvbkU5WFVXTHByZVRNV2N0T0JO?= =?utf-8?B?bGJtS3pRNXBHQTl1bUJoZmF3cUh2RmlHNlFpN3JxalVndkZnMlZFQk9tVnBF?= =?utf-8?B?bVdZSzU0QWs4eFhaRi8reFBhNkUvUFVuM1h0QjFNQkNkUEwyYms5dGZXakZa?= =?utf-8?B?VGExY2c2aGlqck53R2FVNDlGTFA4REhFK0NHQjhUcFhaekRLNm5ZYUdORGc1?= =?utf-8?B?emVMZHpldDNXRzcxaUl1aWJpRUtkQzdDdjNGT0tPd1JNQjF2ZmdCUVI2Nm9U?= =?utf-8?B?Yk9IMHd4blRPZndtWkhub3pRVWtVUmQrOHQ5RitFV0NTVWkxUjM4ZnVHVnU2?= =?utf-8?B?RkZKYmpZQUV6eHNTenF0WXJpNWswTW9MeVFZZkFyQXlHdXhkdzZJOEhwakhX?= =?utf-8?B?cExGeFBzNzVycFlLTTcvV0h0bGFmOXZtU25PbFZtSFhzUVI1QU1TaHNlZ21a?= =?utf-8?B?dlJqeVZlek1BWDFsL2xjRnYvcEJnZm14Zmsyck52dWZIbk5JZFFleC91NGxG?= =?utf-8?B?dWVFVFVkSy9Yb1hCTm5YMEFuVjZRT0NYWDdlSll3ME94ZWhRSjlmUTNLMFdv?= =?utf-8?B?V0loMEc1ZjM5QkJVNjRrMVZiOFNzc09VclFTaGhwMmFqMHJmWE5sbFJvdzZs?= =?utf-8?B?bGUwbHhDK3RBdGgzcWZMbmxBNkpVNUlOeW1BRzBUQ2ZCOTM4a24rTUpVSmNM?= =?utf-8?B?akRVeWduR3lQTjduMU43eVZUc0hUSlZKV3F6Z0hiKzZtblZtQkV5cHZHWEFE?= =?utf-8?B?N3dMamVWZVVJZExzak9wb3RGeUJCQ2VQckJ6NzYrWkZpbXFVUEVZek9IM2JX?= =?utf-8?B?OTJ1SmRVR1dCeWlGUWRFa2tqL21YakNMSnppcXlleTZWREpZb0NlSkZwMkVU?= =?utf-8?B?TCthVjJvTUk3UFZnUWF5L25TZE9ZMTQxNG5QZDBGenNmZDRrMzY3QzBnVStN?= =?utf-8?Q?5tEvxFv2sllsisiuX0vP+H0n2C+882ZpLupC88D?= X-OriginatorOrg: jacobs-university.de X-MS-Exchange-CrossTenant-Network-Message-Id: 6c847c16-9403-456a-2200-08d90555fe73 X-MS-Exchange-CrossTenant-AuthSource: AM0P190MB0641.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2021 06:15:15.0068 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0g10KPE/54WFoYBq/80msiCEOVHtc3jZcEyjF6VVmOxCmLHwKRN6WrHjiVxS5jQcXUj7YZ6PhR9tpa787hMFVCfuDATucehpE7OqRmzEotg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9P190MB1043 Archived-At: Subject: Re: [yang-doctors] [netconf] Yangdoctors last call review of draft-ietf-netconf-crypto-types-18 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2021 06:15:35 -0000 On Wed, Apr 21, 2021 at 11:08:54PM +0000, Kent Watsen wrote: > > >> Ah, now I understand, you mean to remove the XML2RFC v3 b > > > > Ah, its called an "aside". I am still reading plain-text but the > > question likely is what belongs into an aside box and what into > > text. For me, there is no reason to put this sentence into an 'aside' > > box - whatever the purpose of such a box is. Its just a regular > > sentence for me. > > > > From https://tools.ietf.org/html/rfc7991#section-2.6: > > "This element is a container for content that is semantically > less important or tangential to the content that surrounds it.” > > Is it okay to leave for the Copyeditor? > Sure, it was simply the first time I have seen this new structural element. I hope we do not end up in the future discussing what is "less important or tangential content", whether its normative or not etc. Sometimes less is simpler. ;-) /js -- Juergen Schoenwaelder Jacobs University Bremen gGmbH Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany Fax: +49 421 200 3103 From nobody Thu Apr 22 01:45:53 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A0E4C3A08C5; Thu, 22 Apr 2021 01:45:51 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.097 X-Spam-Level: X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, 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=imt-atlantique.fr 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 j22YuV9JNg3I; Thu, 22 Apr 2021 01:45:46 -0700 (PDT) Received: from zproxy110.enst.fr (zproxy110.enst.fr [IPv6:2001:660:330f:2::c0]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 67FBC3A08BE; Thu, 22 Apr 2021 01:45:45 -0700 (PDT) Received: from localhost (localhost [IPv6:::1]) by zproxy110.enst.fr (Postfix) with ESMTP id 8D93C818A0; Thu, 22 Apr 2021 10:45:42 +0200 (CEST) Received: from zproxy110.enst.fr ([IPv6:::1]) by localhost (zproxy110.enst.fr [IPv6:::1]) (amavisd-new, port 10032) with ESMTP id fNEbvQidv2qK; Thu, 22 Apr 2021 10:45:42 +0200 (CEST) Received: from localhost (localhost [IPv6:::1]) by zproxy110.enst.fr (Postfix) with ESMTP id 08D8F810CF; Thu, 22 Apr 2021 10:45:42 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.10.3 zproxy110.enst.fr 08D8F810CF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imt-atlantique.fr; s=50EA75E8-DE22-11E6-A6DE-0662BA474D24; t=1619081142; bh=TdWkz2Yy0zfPzHRbXJGPa+pkL+ghZOU8rYWVajiYIzE=; h=MIME-Version:From:Date:Message-ID:To; b=g93FtsZcFM83Nzds2TzsAfQgRYzZs0bqXrFl+j2SYSdFkFGkx1A1LbruThTmLq/Jv B5tk3xGuiOIbd3WU9ayA1u71rfoUSB+fmrROG1Erq8CJQmW9OAqotu1SBK5QDDUx89 ut7FCWDgqDLs011QMyvafI71+d9yhsB4bpn/ABSc= X-Virus-Scanned: amavisd-new at zproxy110.enst.fr Received: from zproxy110.enst.fr ([IPv6:::1]) by localhost (zproxy110.enst.fr [IPv6:::1]) (amavisd-new, port 10026) with ESMTP id JpQ0LiJfAEOR; Thu, 22 Apr 2021 10:45:41 +0200 (CEST) Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by zproxy110.enst.fr (Postfix) with ESMTPSA id C5A54818A0; Thu, 22 Apr 2021 10:45:41 +0200 (CEST) Received: by mail-pj1-f52.google.com with SMTP id f11-20020a17090a638bb02901524d3a3d48so579828pjj.3; Thu, 22 Apr 2021 01:45:41 -0700 (PDT) X-Gm-Message-State: AOAM5307dyhDWPBOrBuO/yMGxHayb09ROffcdFayc9OBXDxNStb9UL+K cSrME3ALbTxREcgpmLFlbrZqt7Wf+939P2VwjuM= X-Google-Smtp-Source: ABdhPJzRIYZ+BOUfpZL3eYZAiN3+sejfewUkS/s3gSfcA+qWnaCHKwzkyM5oFJOPFwq+SXefmH6TXxLxKhf1OCQhpj0= X-Received: by 2002:a17:902:f291:b029:eb:736:95d8 with SMTP id k17-20020a170902f291b02900eb073695d8mr2383843plc.41.1619081140260; Thu, 22 Apr 2021 01:45:40 -0700 (PDT) MIME-Version: 1.0 References: <005c01d73463$5ee2fda0$1ca8f8e0$@gmail.com> In-Reply-To: <005c01d73463$5ee2fda0$1ca8f8e0$@gmail.com> From: Laurent Toutain Date: Thu, 22 Apr 2021 10:45:01 +0200 X-Gmail-Original-Message-ID: Message-ID: To: Mehmet Ersue Cc: yang-doctors@ietf.org, draft-ietf-lpwan-schc-yang-data-model.all@ietf.org, lpwan@ietf.org, Carl Moberg Content-Type: multipart/alternative; boundary="0000000000003a57a405c08bb463" Archived-At: Subject: Re: [yang-doctors] Yangdoctors Early Review of draft-ietf-lpwan-schc-yang-data-model-04 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2021 08:45:52 -0000 --0000000000003a57a405c08bb463 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Dear Carl and Mehmet, Thank you very much for your review and all the advice, this will help us to have a better document. I'm quite new in YANG and I was not aware of the --ietf argument. It reports a lot of errors, I will correct them. -f yang is also an option I was looking for to have more readable documents. Regarding the FID, you are right, it is too flat right now, we will change it to have something more hierarchical that allows also to go inside a field to allow subfields ids. For the last point, how do you establish a relation between fields in a yang model? Thank you again for your help Laurent On Sun, Apr 18, 2021 at 5:16 PM Mehmet Ersue wrote: > I=E2=80=99m sending this on behalf of Carl Moberg. > > It seems there was an issue and the review mail has not been generated. > > Text copied from > > > https://datatracker.ietf.org/doc/review-ietf-lpwan-schc-yang-data-model-0= 4-yangdoctors-early-moberg-2021-04-13/ > > > > Mehmet > > > > Reviewer: Carl Moberg > > Review result: On the Right Track > > > > This is my YANG Doctors Early Review of > draft-ietf-lpwan-schc-yang-data-model-04 > > > > It is obviously challenging to provide early review feedback on how usefu= l > and efficient the YANG model representation is for a set of technologies > that I am not an expert on, but here goes. > > > > Understanding that it is still early in the lifecycle of the module, I > have not spent time on providing feedback on e.g. description texts, > capitalization and spelling but have focused on the general structure and > design of the module. I also haven't spent any time dissecting the output > of `pyang --ietf`, but I would suggest the authors start looking into tha= t > as the content of the module moves ahead towards publication. > > > > I would also suggest considering running the module through `pyang -f > yang` as that provides nice and consistent formatting and quoting. > > > > As for the content itself. I believe to the best of my understanding that > the YANG module reflects the core data structures of RFC8724 well. I have= a > couple of questions that may lead to broader discussion on _how_ to captu= re > certain aspects of these data structures in a way that makes it realistic > to implement while still easy to use. > > > > As is right now, the YANG module assumes that all implementations support > all FID types defined to be derived from field-id-base-type. It includes > fields related IPv6, COAP/OSCORE, and ICMPv6 all in the same module. Is > there a possibility that some implementations won't implement all three o= f > those protocol groups? If so, it might be worth considering making FID ty= pe > groups either optional using YANG 'feature' statements or break them out > into separate modules to be advertised separately. > > > > There is currently no correlation between field-id type and field-length > types in the same compression rule entry. I.e. the current YANG permits a > field-identifier 'fid-ipv6-version' combined with a field-length > 'fl-token-length' in a rule entry, which I understand to be nonsensical. = If > I am right in that it's an example of meaningless configuration, does the > authors think it important (and possible) to work towards a more stringen= t > validation of "meaningful" configuration by capturing the relationships > between fields like in this example? > > > > > --0000000000003a57a405c08bb463 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear Carl and Mehmet,

Thank you very mu= ch for your review and all the advice, this will help us to have a better d= ocument. I'm quite new in YANG and I was=C2=A0not aware=C2=A0of the --i= etf argument. It reports=C2=A0a lot of errors, I will correct them. -f yang= is also an option I was looking for to have more readable documents.
=

Regarding the FID, you are right, it is too flat right = now, we will change it to have something more hierarchical that allows also= to go inside a field to allow subfields=C2=A0ids.

For the last point, how do you establish a relation between fields in a ya= ng model?=C2=A0=C2=A0

Thank you again for your hel= p

Laurent

On Sun, Apr 18, 2021 at 5:16 PM Meh= met Ersue <mersue@gmail.com> = wrote:

I=E2=80=99m sending thi= s on behalf of Carl Moberg.

It seem= s there was an issue and the review mail has not been generated.<= /u>

Text copied from

https://datatracker.ietf.org/doc/review-ietf-lpwan-schc-yang-data-mo= del-04-yangdoctors-early-moberg-2021-04-13/

=C2=A0

Mehmet

=C2=A0

Reviewer: Car= l Moberg

Review result: On the Righ= t Track

=C2=A0

This is my YANG Doctors Early Review of draft-ietf-lpwa= n-schc-yang-data-model-04

= =C2=A0

It is obviously challenging to prov= ide early review feedback on how useful and efficient the YANG model repres= entation is for a set of technologies that I am not an expert on, but here = goes.

=C2=A0

Understanding that it is still early in the lifecycle of = the module, I have not spent time on providing feedback on e.g. description= texts, capitalization and spelling but have focused on the general structu= re and design of the module. I also haven't spent any time dissecting t= he output of `pyang --ietf`, but I would suggest the authors start looking = into that as the content of the module moves ahead towards publication.<= /u>

=C2=A0

I would also suggest considering running the module through `pyang= -f yang` as that provides nice and consistent formatting and quoting.

=C2=A0

As for the content itself. I believe to the best of my understandin= g that the YANG module reflects the core data structures of RFC8724 well. I= have a couple of questions that may lead to broader discussion on _how_ to= capture certain aspects of these data structures in a way that makes it re= alistic to implement while still easy to use.

=C2=A0

As is right now, = the YANG module assumes that all implementations support all FID types defi= ned to be derived from field-id-base-type. It includes fields related IPv6,= COAP/OSCORE, and ICMPv6 all in the same module. Is there a possibility tha= t some implementations won't implement all three of those protocol grou= ps? If so, it might be worth considering making FID type groups either opti= onal using YANG 'feature' statements or break them out into separat= e modules to be advertised separately.

=C2=A0

There is currently no co= rrelation between field-id type and field-length types in the same compress= ion rule entry. I.e. the current YANG permits a field-identifier 'fid-i= pv6-version' combined with a field-length 'fl-token-length' in = a rule entry, which I understand to be nonsensical. If I am right in that i= t's an example of meaningless configuration, does the authors think it = important (and possible) to work towards a more stringent validation of &qu= ot;meaningful" configuration by capturing the relationships between fi= elds like in this example?

= =C2=A0

=C2=A0

--0000000000003a57a405c08bb463-- From nobody Thu Apr 22 21:14:09 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 92C213A0E4F; Thu, 22 Apr 2021 21:13:59 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.097 X-Spam-Level: X-Spam-Status: No, score=-2.097 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, 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 (2048-bit key) header.d=gmail.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 YddEPo-IY48o; Thu, 22 Apr 2021 21:13:54 -0700 (PDT) Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com [IPv6:2607:f8b0:4864:20::d36]) (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 E32793A0E4A; Thu, 22 Apr 2021 21:13:53 -0700 (PDT) Received: by mail-io1-xd36.google.com with SMTP id e186so47732397iof.7; Thu, 22 Apr 2021 21:13:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=sCRHHgaAEYvGVVEpn9bTyGGaSC0j8pZNOhPXyidptV0=; b=n1flXuftBWJsq6qFXzA2Ov3Ni1yuoz7wJceLblhfRLSdsvEfXkD4cJVUBI+67paay0 eHtVvlNz2Vt4UleOqc3/JMczJVjly04Gw07j6dyXaOmK5L2dgXswMHw5C/6B1/QtMWTc c8ogsL/1r/4dRzDuq3BsdL72uAmnkpsYkHZHJn+7Olm+EQ+tcN438UCesqwfzv+Lg8N4 563YjjReJnFoVA2fMoKmxvlmhkdyB+BdpIdvcnhKOZo5B6og5o+5ua/54yyzRehpn4ZM AynqWMCO8cRW8NkmQ0nVrbEV54oH2MtMYjsTeVbbmwBdVJi7pzRpl10Y1eV+PKqSasmy Ne2w== 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=sCRHHgaAEYvGVVEpn9bTyGGaSC0j8pZNOhPXyidptV0=; b=O3W6OKSpxf48Btum97HKVXTBLEKk1TIMXQRLWr6BFsYC9jfSql/HLuSaEgGa90X+19 aq54knn2lnBvT6sKRCYSzqV4JQZGqfRa5YwOwRPEYDysbLFCajfBzPMyvvRCM1crnGwa xhBeDqJ27WhHXygeMNcncOmDpKmniQuSnsUFP5xkaL+3UEsV3tduUxfFGXj9E7fAyXjG GRDSwZtBmkm4iNUWFu59Juw5gu41Zikh04KpVwoBzd90/Nxfii/SX5qZDGw6LzP59R8/ VSmYjLWcPLIZH95yeGdqei/10Qpm628TRQzu/bbbEgKLX19gTOU2DMfP7JQSbaHDgmo0 0New== X-Gm-Message-State: AOAM531uCF98hZFtlU8KHB1xFsg1Y/p0QAeD9c/owm3+xKm3HH/BREq8 niBv7rZRzjzy3d+eta6D8fh4byf3OCd9j6H3Ow== X-Google-Smtp-Source: ABdhPJz3FXrsrM0OjwUGfI4DBePXj86JFVSRXGRTjQnk4dfzDQXsZ/kVWNHSJ8ZQvFR/CzrxAqijyy5JSgGDzX/EhQI= X-Received: by 2002:a05:6602:218a:: with SMTP id b10mr1924606iob.122.1619151231576; Thu, 22 Apr 2021 21:13:51 -0700 (PDT) MIME-Version: 1.0 References: <161840106237.25677.18076046999764052110@ietfa.amsl.com> In-Reply-To: <161840106237.25677.18076046999764052110@ietfa.amsl.com> From: Yingzhen Qu Date: Thu, 22 Apr 2021 21:13:39 -0700 Message-ID: To: =?UTF-8?Q?Martin_Bj=C3=B6rklund?= Cc: yang-doctors@ietf.org, draft-ietf-rtgwg-yang-rib-extend.all@ietf.org, last-call@ietf.org, RTGWG Content-Type: multipart/alternative; boundary="000000000000feeef005c09c05a0" Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-rtgwg-yang-rib-extend-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2021 04:14:00 -0000 --000000000000feeef005c09c05a0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Martin, Thank you for your review, and we've published version -07 to address your comments. Please see my answers below inline. Thanks, Yingzhen On Wed, Apr 14, 2021 at 4:51 AM Martin Bj=C3=B6rklund via Datatracker < noreply@ietf.org> wrote: > Reviewer: Martin Bj=C3=B6rklund > Review result: Ready with Nits > > Here is my YANG doctors review of draft-ietf-rtgwg-yang-rib-extend-06. > This is a well-written draft, and my comments are minor. > > > > o 1. Introduction > > This document defines a YANG [RFC6020][RFC7950] data model which > extends the generic data model for RIB by augmenting the ietf-routing > model as defined in [RFC8349]. > > Nit: s/ietf-routing model/ietf-routing YANG module/ > > [Yingzhen]: fixed. > o 2. Terminology > > You import a couple of terms that are not used, I suggest you remove > them. > > [Yingzhen]: removed a few terms not used. > In 2.1 you introduce RIB, but since this term is defined in RFC > 8349, I suggest you import it instead. > > [Yingzhen]: modified as suggested. > > o 3. Design of the Model > > The YANG definitions in this document augment the ietf-routing model > defined in [RFC8349], which provides a basis for routing system data > model development. Together with modules defined in [RFC8349], a > generic RIB Yang model is defined to implement and monitor a RIB. > > Perhaps: > > The YANG definitions in this document augment the routing data model > defined in [RFC8349], which provides a basis for routing system data > model development. Together with the YANG modules defined in > [RFC8349], a > generic RIB YANG model is defined to implement and monitor a RIB. > > [Yingzhen]: fixed. > o 3 & 4 > > To make the text in 3 easier to understand, and 4 easier to read, I > would move some snippets from 4 to 3. For example: > > 3.1. RIB Tags and Preference > > Individual routes tags are supported at both the route and next-hop > level. A preference per next-hop is also supported for selection of > the most preferred reachable static route. > > augment /rt:routing/rt:control-plane-protocols > /rt:control-plane-protocol/rt:static-routes/v4ur:ipv4 > /v4ur:route/v4ur:next-hop/v4ur:next-hop-options > /v4ur:simple-next-hop: > +--rw preference? uint32 > +--rw tag? uint32 > > augment /rt:routing/rt:control-plane-protocols > /rt:control-plane-protocol/rt:static-routes/v6ur:ipv6 > /v6ur:route/v6ur:next-hop/v6ur:next-hop-options > /v6ur:simple-next-hop: > +--rw preference? uint32 > +--rw tag? uint32 > > > Etc. > > If each augment is explained in section 3, section 4 can be removed. > > [Yingzhen]: thank you for the good suggestion. Now tree snapshots are in section 3. I kept section 4, just saying the full tree is in the appendix. > > o module description > > This YANG module extends the generic data model for > RIB by augmenting the ietf-routing model. It is > intended that the module will be extended by vendors > to define vendor-specific RIB parameters. > > I don't think I understand this description. Here's my understanding, > but I don't think it is correct: > > 1. This module extends the existing RIB data model by using > augmentations. > 2. The existing RIB data model is defined in the YANG module > ietf-routing. > 3. The purpose of this new module is to allow vendors to extend the > the existing RIB data model with vendor-specific parameters. > > It seems 3 is at least incomplete, since this module defines some > additional config param for static routes, and addtional state and > statistics for ribs. > > It is not clear how vendors are expected to extend this model; the > word "vendor" doesn't show up anywhere else. > > [Yingzhen]: This module does define additional parameters and is augmenting the existing RIB model. The module can be further augmented. Any suggestions for a replacement of "vendor-specific"? > o revision > > We usually write "Initial revision.". > > [Yingzhen]: fixed. > o rib-summary-statistics > > leaf total-routes { > type uint32; > description > "Total routes in the RIB from all protocols"; > } > leaf total-active-routes { > type uint32; > description > "Total active routes in the RIB"; > } > leaf total-route-memory { > type uint64; > description > "Total memory for all routes in the RIB from all > protocol clients"; > > These three leafs have slightly different descriptions, so I wonder > if there is a difference between "from all protocols", "from all > protocol clients" and no mentioning of protocols? > > [Yingzhen]: changed the names and the descriptions. Now the RIB and protocol level are consistent. > > o naming of statistics > > The draft defines: > > augment /rt:routing/rt:ribs/rt:rib: > +--ro rib-summary-statistics > +--ro total-routes? uint32 > +--ro total-active-routes? uint32 > +--ro total-route-memory? uint64 > +--ro protocol-rib-statistics* [] > +--ro rib-protocol? identityref > +--ro protocol-total-routes? uint32 > +--ro protocol-active-routes? uint32 > +--ro protocol-route-memory? uint64 > > The names seem to repeat some words where is it not necessary, > e.g., there's no reason to call it 'rib-summary-statistics' under the > 'rib' list. It is more that summary; so I suggest simply 'statistics'= . > Also, what is a "rib protocol"? > > Perhaps: > > augment /rt:routing/rt:ribs/rt:rib: > +--ro statistics > +--ro total-routes? uint32 > +--ro total-active-routes? uint32 > +--ro total-route-memory? uint64 > +--ro protocol-statistics* [] > +--ro protocol? identityref > +--ro routes? uint32 > +--ro active-routes? uint32 > +--ro route-memory? uint64 > > > o protocol-rib-statistics > > list protocol-rib-statistics { > description "List protocol statistics"; > > Perhaps: > description > "RIB statistics per protocol."; > > > leaf rib-protocol { > type identityref { > base rt:routing-protocol; > } > description "Routing protocol for statistics"; > > Perhaps just: > > description > "Routing protocol."; > > [Yingzhen]: Please see my reply above. > > o formatting > > I suggest you run the module through: > > pyang -f yang --yang-canonical ietf-rib-extension@2021-02-03.yang > > to fix some formatting and statement ordering issues. > > [Yingzhen]: some formatting and editorial changes were made. --000000000000feeef005c09c05a0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Martin,

Thank you f= or your review, and we've published=C2=A0version -07 to address your co= mments.

Please see my answers below inline.
<= div>
Thanks,
Yingzhen

On Wed, Apr 14, 2021 at = 4:51 AM Martin Bj=C3=B6rklund via Datatracker <noreply@ietf.org> wrote:
Review= er: Martin Bj=C3=B6rklund
Review result: Ready with Nits

Here is my YANG doctors review of draft-ietf-rtgwg-yang-rib-extend-06.
This is a well-written draft, and my comments are minor.



o=C2=A0 1.=C2=A0 Introduction

=C2=A0 =C2=A0This document defines a YANG [RFC6020][RFC7950] data model whi= ch
=C2=A0 =C2=A0extends the generic data model for RIB by augmenting the ietf-= routing
=C2=A0 =C2=A0model as defined in [RFC8349].

=C2=A0 Nit:=C2=A0 =C2=A0s/ietf-routing model/ietf-routing YANG module/
<= br>
[Yingzhen]: fixed.
=C2=A0
o=C2=A0 2. Terminology

=C2=A0 You import a couple of terms that are not used, I suggest you remove=
=C2=A0 them.

[Yingzhen]: removed a few terms not used.
= =C2=A0
=C2=A0 In 2.1 you introduce RIB, but since this term is defined in RFC
=C2=A0 8349, I suggest you import it instead.

[Yingzhen]: modified as suggested.=C2=A0

o=C2=A0 3. Design of the Model

=C2=A0 =C2=A0The YANG definitions in this document augment the ietf-routing= model
=C2=A0 =C2=A0defined in [RFC8349], which provides a basis for routing syste= m data
=C2=A0 =C2=A0model development.=C2=A0 Together with modules defined in [RFC= 8349], a
=C2=A0 =C2=A0generic RIB Yang model is defined to implement and monitor a R= IB.

=C2=A0 Perhaps:

=C2=A0 =C2=A0The YANG definitions in this document augment the routing data= model
=C2=A0 =C2=A0defined in [RFC8349], which provides a basis for routing syste= m data
=C2=A0 =C2=A0model development.=C2=A0 Together with the YANG modules define= d in [RFC8349], a
=C2=A0 =C2=A0generic RIB YANG model is defined to implement and monitor a R= IB.

[Yingzhen]: fixed.
=C2=A0
o=C2=A0 3 & 4

=C2=A0 To make the text in 3 easier to understand, and 4 easier to read, I<= br> =C2=A0 would move some snippets from 4 to 3.=C2=A0 For example:

=C2=A0 =C2=A03.1.=C2=A0 RIB Tags and Preference

=C2=A0 =C2=A0 =C2=A0Individual routes tags are supported at both the route = and next-hop
=C2=A0 =C2=A0 =C2=A0level.=C2=A0 A preference per next-hop is also supporte= d for selection of
=C2=A0 =C2=A0 =C2=A0the most preferred reachable static route.

=C2=A0 =C2=A0 =C2=A0augment /rt:routing/rt:control-plane-protocols
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/rt:control-plane-protocol/= rt:static-routes/v4ur:ipv4
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/v4ur:route/v4ur:next-hop/v= 4ur:next-hop-options
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/v4ur:simple-next-hop:
=C2=A0 =C2=A0 =C2=A0 =C2=A0+--rw preference?=C2=A0 =C2=A0uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0+--rw tag?=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uin= t32

=C2=A0 =C2=A0 =C2=A0augment /rt:routing/rt:control-plane-protocols
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/rt:control-plane-protocol/= rt:static-routes/v6ur:ipv6
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/v6ur:route/v6ur:next-hop/v= 6ur:next-hop-options
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/v6ur:simple-next-hop:
=C2=A0 =C2=A0 =C2=A0 =C2=A0+--rw preference?=C2=A0 =C2=A0uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0+--rw tag?=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 uin= t32


=C2=A0 =C2=A0Etc.

=C2=A0 =C2=A0If each augment is explained in section 3, section 4 can be re= moved.

[Yingzhen]: thank you for the good suggestion. Now tr= ee snapshots are in section 3. I kept section 4, just saying the full tree = is in the appendix.=C2=A0

o=C2=A0 module description

=C2=A0 =C2=A0 =C2=A0This YANG module extends the generic data model for
=C2=A0 =C2=A0 =C2=A0RIB by augmenting the ietf-routing model.=C2=A0 It is =C2=A0 =C2=A0 =C2=A0intended that the module will be extended by vendors =C2=A0 =C2=A0 =C2=A0to define vendor-specific RIB parameters.

=C2=A0 I don't think I understand this description.=C2=A0 Here's my= understanding,
=C2=A0 but I don't think it is correct:

=C2=A0 =C2=A0 1. This module extends the existing RIB data model by using =C2=A0 =C2=A0 =C2=A0 =C2=A0augmentations.
=C2=A0 =C2=A0 2. The existing RIB data model is defined in the YANG module<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0ietf-routing.
=C2=A0 =C2=A0 3. The purpose of this new module is to allow vendors to exte= nd the
=C2=A0 =C2=A0 =C2=A0 =C2=A0the existing RIB data model with vendor-specific= parameters.

=C2=A0 It seems 3 is at least incomplete, since this module defines some =C2=A0 additional config param for static routes, and addtional state and =C2=A0 statistics for ribs.

=C2=A0 It is not clear how vendors are expected to extend this model; the =C2=A0 word "vendor" doesn't show up anywhere else.

[Yingzhen]: This module does define additional parameters a= nd is augmenting the existing=C2=A0RIB model. The module can be further aug= mented. Any suggestions for a replacement of "vendor-specific"?= =C2=A0
=C2=A0
o=C2=A0 revision

=C2=A0 We usually write "Initial revision.".

=
[Yingzhen]: fixed.
=C2=A0
o=C2=A0 rib-summary-statistics

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0leaf total-routes {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type uint32;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"Total routes in the R= IB from all protocols";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0leaf total-active-routes {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type uint32;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"Total active routes i= n the RIB";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0leaf total-route-memory {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type uint64;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"Total memory for all = routes in the RIB from all
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 protocol clients";
=C2=A0 These three leafs have slightly different descriptions, so I wonder<= br> =C2=A0 if there is a difference between "from all protocols", &qu= ot;from all
=C2=A0 protocol clients" and no mentioning of protocols?

[Yingzhen]: changed the names and the descriptions. N= ow the RIB and protocol level are consistent.

o=C2=A0 naming of statistics

=C2=A0 The draft defines:

=C2=A0 =C2=A0 augment /rt:routing/rt:ribs/rt:rib:
=C2=A0 =C2=A0 =C2=A0 +--ro rib-summary-statistics
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--ro total-routes?=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--ro total-active-routes?=C2=A0 =C2=A0 = =C2=A0 =C2=A0uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--ro total-route-memory?=C2=A0 =C2=A0 = =C2=A0 =C2=A0 uint64
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--ro protocol-rib-statistics* []
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +--ro rib-protocol?=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0identityref
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +--ro protocol-total-routes?=C2= =A0 =C2=A0 uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +--ro protocol-active-routes?=C2= =A0 =C2=A0uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +--ro protocol-route-memory?=C2= =A0 =C2=A0 uint64

=C2=A0 =C2=A0The names seem to repeat some words where is it not necessary,=
=C2=A0 =C2=A0e.g., there's no reason to call it 'rib-summary-statis= tics' under the
=C2=A0 =C2=A0'rib' list.=C2=A0 It is more that summary; so I sugges= t simply 'statistics'.
=C2=A0 =C2=A0Also, what is a "rib protocol"?

=C2=A0 =C2=A0Perhaps:

=C2=A0 =C2=A0 augment /rt:routing/rt:ribs/rt:rib:
=C2=A0 =C2=A0 =C2=A0 +--ro statistics
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--ro total-routes?=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--ro total-active-routes?=C2=A0 =C2=A0 = =C2=A0 =C2=A0uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--ro total-route-memory?=C2=A0 =C2=A0 = =C2=A0 =C2=A0 uint64
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--ro protocol-statistics* []
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +--ro protocol?=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0identityref
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +--ro routes?=C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +--ro active-routes?=C2=A0 =C2=A0= =C2=A0 =C2=A0 uint32
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +--ro route-memory?=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0uint64


o=C2=A0 protocol-rib-statistics

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0list protocol-rib-statistics {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description "List protocol st= atistics";

=C2=A0 =C2=A0Perhaps:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"RIB statistics per pr= otocol.";


=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0leaf rib-protocol {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type identityref {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0base rt:routing-prot= ocol;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description "Routing p= rotocol for statistics";

=C2=A0 Perhaps just:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"Routing protoc= ol.";

[Yingzhen]: Please see my reply above.= =C2=A0

o=C2=A0 formatting

=C2=A0 I suggest you run the module through:

=C2=A0 =C2=A0 pyang -f yang --yang-canonical ietf-rib-extension@2021-02-03.= yang

=C2=A0 to fix some formatting and statement ordering issues.

[Yingzhen]: some formatting=C2=A0and editorial changes were made= .
=C2=A0
--000000000000feeef005c09c05a0-- From nobody Fri Apr 23 00:19:22 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E7E53A09A5; Fri, 23 Apr 2021 00:19:13 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -0.822 X-Spam-Level: X-Spam-Status: No, score=-0.822 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.999, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-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=h/KV18aP; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=PLsVCFcy 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 PsNhYZrcGK9Z; Fri, 23 Apr 2021 00:19:08 -0700 (PDT) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F22773A099F; Fri, 23 Apr 2021 00:19:07 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 118435C0150; Fri, 23 Apr 2021 03:19:06 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Fri, 23 Apr 2021 03:19:06 -0400 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=fm1; bh= Qp1V8yPlMbMaB0lUy1s89tSZS73WeQK5aVMD20e55IU=; b=h/KV18aPO879Xevo oQyNB3t05j8Fde1sq/Bk38YMTdiwrXLdebVdiovTRquwn4qxsk8weKX5U2s1oQpc /F6fU5u2nilB9OtBcKHiHQ+/iGDqgQUqcm47lkyFNmCh/rtqQN+yRwGru9KESxrQ WdJs+x2ggsjYSBv1SuWOoy/z78i+/nppnafmxmtFv/mMuhg5mCO21xJ2gk5dtz7P WvIuilX3EyumrSbIlwsOHqiUdZTDYrBa84/RiHub2OWpfYZOa9uKujzWER7SJF76 gE5v/6cF2PLPT/qSYIGCzUP05HofmUbO27qe/bMuwBmi839ZXgWeb1kAxBpbazdv JJamfA== 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=fm2; bh=Qp1V8yPlMbMaB0lUy1s89tSZS73WeQK5aVMD20e55 IU=; b=PLsVCFcyh+3UQXq9fgoYaRtV0iBYOg+osVP3s3NGg95gk39NdCRQ4W9/h UobiX3msSsFeSZlKeX9axKl2FMfwlqLUCm0tPYYQD5WnEm4UriKALCV66KN8r5Q+ KJJdJm+u16ddmmLk1dGyr4dxbcf+sYJeUePc5Yv5UsfxvtG4/L3HfHzzYylWLsj6 LFgD1mOWhPoQK3dkJyodVMzmA9TaragAwtKg3yDVwvJ+U/dT7lp0NYqyM2r6p6p+ Du0DXITE9bmZUQiKzKUT0Glbur4Muof80APa6GH5mw4aR2ZbFx6JXra2juS/A0/A wIyUTGwQ/QLxfcRqJUVu7ds7qUrew== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvdduuddgudduiecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepfffkvffuhfgjfhfogggtgfesth hqredtredtudenucfhrhhomhepofgrrhhtihhnuceujhpnrhhklhhunhguuceomhgsjhdo ihgvthhfseegieeikedrshgvqeenucggtffrrghtthgvrhhnpeeitdethfdthfekteelte ekveeifefhudduueekvdefleegtdevgefgteefjefgleenucfkphepudehkedrudejgedr gedrvdduheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh hmpehmsghjodhivghtfhesgeeiieekrdhsvg X-ME-Proxy: Received: from localhost (unknown [158.174.4.215]) by mail.messagingengine.com (Postfix) with ESMTPA id 1347324005A; Fri, 23 Apr 2021 03:19:04 -0400 (EDT) Date: Fri, 23 Apr 2021 09:19:03 +0200 (CEST) Message-Id: <20210423.091903.986873898422044404.id@4668.se> To: yingzhen.ietf@gmail.com Cc: yang-doctors@ietf.org, draft-ietf-rtgwg-yang-rib-extend.all@ietf.org, last-call@ietf.org, rtgwg@ietf.org From: Martin =?iso-8859-1?Q?Bj=F6rklund?= In-Reply-To: References: <161840106237.25677.18076046999764052110@ietfa.amsl.com> X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Text/Plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-rtgwg-yang-rib-extend-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2021 07:19:14 -0000 Hi, Thank you for addressing my comments. Pruning to the one remaining question. Yingzhen Qu wrote: > Hi Martin, > = > Thank you for your review, and we've published version -07 to address= your > comments. > = > Please see my answers below inline. > = > Thanks, > Yingzhen > = > On Wed, Apr 14, 2021 at 4:51 AM Martin Bj=F6rklund via Datatracker < > noreply@ietf.org> wrote: > = > > Reviewer: Martin Bj=F6rklund > > Review result: Ready with Nits > > > > Here is my YANG doctors review of draft-ietf-rtgwg-yang-rib-extend-= 06. > > This is a well-written draft, and my comments are minor. [...] > > o module description > > > > This YANG module extends the generic data model for > > RIB by augmenting the ietf-routing model. It is > > intended that the module will be extended by vendors > > to define vendor-specific RIB parameters. > > > > I don't think I understand this description. Here's my understan= ding, > > but I don't think it is correct: > > > > 1. This module extends the existing RIB data model by using > > augmentations. > > 2. The existing RIB data model is defined in the YANG module > > ietf-routing. > > 3. The purpose of this new module is to allow vendors to extend= the > > the existing RIB data model with vendor-specific parameters.= > > > > It seems 3 is at least incomplete, since this module defines some= > > additional config param for static routes, and addtional state an= d > > statistics for ribs. > > > > It is not clear how vendors are expected to extend this model; th= e > > word "vendor" doesn't show up anywhere else. > > > > [Yingzhen]: This module does define additional parameters and is > augmenting the existing RIB model. The module can be further augmente= d. Any > suggestions for a replacement of "vendor-specific"? All models can be augmented so I don't think this needs to be spelled out. When it is spelled out like this I expect some discussion about how it differ from the "normal" augment that always can be done. Some modules define some generic common structure, but are not very useful unless they are augmented; they need to define how vendors (or sdos) should extend the module. However, I think that this module is useful on its own, and thus I would remove the sentence "It is intended ...". = /martin From nobody Fri Apr 23 10:11:08 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7B15A3A1719; Fri, 23 Apr 2021 10:11:00 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -9.619 X-Spam-Level: X-Spam-Status: No, score=-9.619 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_NONE=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=ADzR3SVe; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=dzYXzrSW 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 Wh2oLOgR8fEK; Fri, 23 Apr 2021 10:10:55 -0700 (PDT) Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 698453A171B; Fri, 23 Apr 2021 10:10:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4028; q=dns/txt; s=iport; t=1619197855; x=1620407455; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=OyA+5zL4DLs554uHvyrjuz8K7HN5vdb5IAckDT5bXwQ=; b=ADzR3SVeXP/+NpX2TvepD2fsnf7Oxe2EQTa1UYYZh1aXhS0ibmkkF7Gq fE+w5ZBy9B6S3hENSHhUAArUXvRX9+9S2SBUHB/yid0DHlxw7UlFGBLsL TB/GvTdIZ5UWsA2ognZ+mAqH2pQz55qXGA6dxoDxWOqvqJu0do6XbfwTf 4=; X-IPAS-Result: =?us-ascii?q?A0DnAQDs/oJgmIgNJK1aHAEBAQEBAQcBARIBAQQEAQFAg?= =?us-ascii?q?VKBU1GBWDYxC4Q4g0gDhTmIaQOKMo8QglMDVAsBAQENAQEyAgQBAYRQAheBY?= =?us-ascii?q?gIlOBMCAwEBAQMCAwEBAQEBBQEBAQIBBgQUAQEBAQEBAQFohVANhkQBAQEDA?= =?us-ascii?q?SMRDAEBNwEPAgEIGAICJgICAh8RFRACBAENBYJxglYDDiEBnSMCih96gTKBA?= =?us-ascii?q?YIEAQEGhRoNC4ITCYEQKoJ5hAuGUyccgguBOgwQgl8+gh6CJIMXNoIJIoFYA?= =?us-ascii?q?YFZgVJFGQYZARWRe4MDpVIwWwqDDpdfBIU4BCGDUYsFljqVJ48RlDwCBAIEB?= =?us-ascii?q?QIOAQEGgWshgVtwFWUBgj5QFwIOgzuKZAwNCYNOil1zOAIGAQkBAQMJfIsDA?= =?us-ascii?q?YEQAQE?= IronPort-PHdr: A9a23:wlaYmRFLTsabvsTVqK0apJ1Gfs4Y04WcBSYc94YnhrRSc6+q45XlO gnF6O5wiEPSNa2HtawUzfHb4OjsWm0FtJCGtn1KMJlBTAQMhshemQs8SNWEBkv2IL+PDWQ6E c1OWUUj8yS9Nk5YS5qgOQ2UuXDhpTIXEw/0YAxyIOm9E4XOjsOxgua1/ZCbYwhBiDenJ71oK xDjpgTKvc5Qioxnec4M IronPort-HdrOrdr: A9a23:5WdrZKob3Imy+hXeWfsWR9caV5s6K9V00zAX/kB9WHVpW+SivY SHgOkb2RjoiDwYRXEnnpS6NLOdRG7HnKQV3aA4Bp3neAX9omOnIMVZ7YXkyyD9ACGWzIBg/I 9aWexFBNX0ZGIUse/T6gO1Cstl5dGB/ryhi+u29QYTcShBQchbnmBEIyycFVB7QxQDJbdRLu vd2uNsoT28dXMLKuGyAXcYV+bOzue76q7OSxgAGhIh9U2yljuu8rH3CFy12R0ZXjNJz94ZgC v4uib+4biutOz+9w/E2wbontVrsfbC6v8GPsyDjcAJNi7h4zzJWK1NU6CP1QpF292Hx00tlL D30nIdFuR1r0jcZ2Sk5SbqsjOQrAoGz1/H5RumjWD4ocr/LQhKSfZpoY5CaBPW5w4BkbhHod h29lmUvZZWEh/M9R6Vj7OjOn0a9TvXnVMYneEelHBZW4cFAYUh0LA3xl9fE5sLAUvBmeYaOd RuF83V6bJ3dl6XfhnizxFS6eGsRXg6E1O6RFEDsKWuokFrtU1+pnFooPA3rzMlztYQWpNE7+ PLPuBDj7dVVPIbaqp7GaMoXda3Inale2OIDEuiZXDcUI0XMXPErJD6pJ8v4vuxRZAOxJwu3L zcTVJjs3IocU6GM7zL4LR7tjT2BEmtVzXkzc9To7JjvKfnebbtOSqfDHcjjtWnuPdaJsHAQf 68NNZ3DpbYXCzTMLcM+ze7d4hZKHEYXsFQkM08QUiyrsXCLZCvuffcdPrVObrxATcpUm7yGR I4LWHODfQFynrudm7zgRDXVX+oUFf454hMHK/T+PVWyIVlDPwVjiElzXCCou2bIzxLtaI7OG FkJqn8r6+9rW6quWLB72BjPAtBHl9YiY+QCE9ilEsvCQfZYLwDs9KQdSR5x32cPCJySMvQDU pYvFR4+aW+KpSK3iA8A9e7MmaX5kFj4k6iftM5oOmu9M3lcpQ3AtINQ6pqDzjGEBRzhEJ3sm tZcRQFQUXeDzvqjq2ggPUvdbviXug5pD3uDd9fqHrZu0nZmNomQWEDWSWyFeSNhxw1ejZSjl pt0qMWjbaagwyzIW8njOlQCiwQVE2nRJZ9SCWMfsF9h63icgAYdxb6uRWqzzUIPlfM22pXrG r7NiGQcezMGTNmywBl+5ev1kh1eGWbd193cVZgv+RGZDj7k0c29/OXbayu1GbUTV0OzogmQW /4SApXBB9yzNaq0xPQohK+LDENw5UjOfG1NsV9T5jaxm6tJIqUlasPAv9T+9J/OMrzt/IQON jvCTO9MCn1EKcg1QCTux8eSVpJgWhhnvXy1BL/6m+kmHY5HPrJOVxjA6oWOteG8gHfNrq1+Y Q8idI+pu2rNGrtLtaA1KHMdjZGQymj61KeXqUtqZpOu7g1u6Y2F57HUSHQ3HUC2BklNs/7mA cfR6t8iYqxd7NHbogXeyhD+EAum8nKJEw3shbuCut7ZEozlRbgTpq0yquNraBqDlyKpQP2N1 Xa+ypB/+3dVy/G0bIBEao/LWlfdUBU0gUswMqSM4nLTAm6feBK+1S3dmWwd7JQU6CJE7QdpB QS2aDCo8aHMy7jnAzAtzpyJaxDt3u9ScSpGQSWBKpG9ce5NVnkuNrl3OejyDPsDT21ZEQTid cbKQgebsFfhiIji4Ny2C6oUaDzql8klVwb4TwPrC+b5qG2pGPAWUdBOknFh58TWz9ZOH2Bl9 7E/uiVz26V2kkM5bDTUENLOshTEN0RRJXtJyhgKcIMrKellpBf9hhrcVMrFSogkzjz0ONtwK eh1PjTU+PkD230OVhpw08yOqdk2ioxqW9BdMCi7ZWyJgUPf9R4dscC2g== X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="5.82,246,1613433600"; d="scan'208";a="683710422" Received: from alln-core-3.cisco.com ([173.36.13.136]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 23 Apr 2021 17:10:54 +0000 Received: from mail.cisco.com (xbe-aln-001.cisco.com [173.36.7.16]) by alln-core-3.cisco.com (8.15.2/8.15.2) with ESMTPS id 13NHAsDo024093 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=OK); Fri, 23 Apr 2021 17:10:54 GMT Received: from xfe-aln-001.cisco.com (173.37.135.121) by xbe-aln-001.cisco.com (173.36.7.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3; Fri, 23 Apr 2021 12:10:53 -0500 Received: from xfe-aln-003.cisco.com (173.37.135.123) by xfe-aln-001.cisco.com (173.37.135.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3; Fri, 23 Apr 2021 12:10:53 -0500 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (173.37.151.57) by xfe-aln-003.cisco.com (173.37.135.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3 via Frontend Transport; Fri, 23 Apr 2021 12:10:53 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O4YC6Jrl2UduubSgkXdYntyrqAPF3BTDOCx1SjPwhKbwy+BjxKzRW68E0AXWxfwxhVTTRVpKdnyJ8+CtEJ+2hsNNrT/+Ac0LKaBfkqpsNnIRxpJnsjZumir1/hk4izAGRH2j1lc/YyRkZntMtbWMTXrQcOGmbJ74TSXk4h6x5+qW3K/KHG8RejRLZ0gmuKsTFqVGpb1zmBvTeBasizZENrL352rOB2pHVxsXsqeDFf5CTi3ZBvJ1EhYPIPtHoUY1HV7g2DgNG1pOl9NXOxpLRZOFWMmKFDC46R7Unom+Rl6an2GY5YyvmwdkCIk/hPF+Ympi9RMlcVcXXO4yles4CA== 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=OyA+5zL4DLs554uHvyrjuz8K7HN5vdb5IAckDT5bXwQ=; b=Rkknz3J1MRwDjNQ8uAFTsszI8S7EoHbsdyaul5jj7u9gZCb5/xT9sU/TZXETWPFhYpTNd2aneCHxVIvtTHLhT+cz/suDf0h5ooX+rue38Ew/vgjD/uB0GtKenUXiL+Pg5QIUZIMKQ4QW0Fr9KiV7+UAKZt2oUF1cMOQLoDDIL76BPWzYJdOdC6jtWi0iXbFxK863nlE0lHg4tJ6v3UMkDW81wBhLxxGHcVO/Gqh+rw3lffit0kgiL9AMrosQLNrdNktJ3eqiXJ/a4mST8Hd3DCq5E4CqxAauOBTrJzXsXWgxM1tG459ivAnjWjzuJGfFSo9mwkMCDcIv1+a7LEV3Wg== 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=OyA+5zL4DLs554uHvyrjuz8K7HN5vdb5IAckDT5bXwQ=; b=dzYXzrSWeQv/BCCeCA9k+GffIPIJC7W8mLhJSOLUqzODsgbVj4RbXIkB/LjIeZo4YIVD9pB2N6IqC7RfUlXtyuBACpZSdOu3Z0InA40J8j0GniL3Y4lB1htGFKJA1v68uaBBcWOoji4hKewZvfYmDMfno4ITSYpt8WZxj9wF/mg= Received: from BYAPR11MB2887.namprd11.prod.outlook.com (2603:10b6:a03:89::27) by SJ0PR11MB5117.namprd11.prod.outlook.com (2603:10b6:a03:2d0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Fri, 23 Apr 2021 17:10:52 +0000 Received: from BYAPR11MB2887.namprd11.prod.outlook.com ([fe80::f82f:ff98:d282:d5e5]) by BYAPR11MB2887.namprd11.prod.outlook.com ([fe80::f82f:ff98:d282:d5e5%5]) with mapi id 15.20.4065.023; Fri, 23 Apr 2021 17:10:52 +0000 From: "Acee Lindem (acee)" To: =?utf-8?B?TWFydGluIEJqw7Zya2x1bmQ=?= , "yingzhen.ietf@gmail.com" CC: "yang-doctors@ietf.org" , "draft-ietf-rtgwg-yang-rib-extend.all@ietf.org" , "last-call@ietf.org" , "rtgwg@ietf.org" Thread-Topic: Yangdoctors last call review of draft-ietf-rtgwg-yang-rib-extend-06 Thread-Index: AQHXMSR60tOWSJIPyU+6ob77x3xJs6rBi8qAgAAzzYCAAGJIgA== Date: Fri, 23 Apr 2021 17:10:52 +0000 Message-ID: References: <161840106237.25677.18076046999764052110@ietfa.amsl.com> <20210423.091903.986873898422044404.id@4668.se> In-Reply-To: <20210423.091903.986873898422044404.id@4668.se> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.48.21041102 authentication-results: 4668.se; dkim=none (message not signed) header.d=none;4668.se; dmarc=none action=none header.from=cisco.com; x-originating-ip: [136.56.133.70] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c285c47b-98e3-42a1-b4aa-08d9067ac020 x-ms-traffictypediagnostic: SJ0PR11MB5117: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KEHXCZnXLsJWhCEcC3uLjsNMbK3H0tov/Bd16A8e2T98N33CFxxy/JEzPP6HkSDmnl4iD3e2rM2+8qiLotSwkOF5AhWHkVj+zalKdn+sJ9hShjE1xLlrRoAMvq/jKTGyvAEiXBJiXv7jM4xWVvDGOT92ubnpsFX3QSBemJsqDmcBYyAUgU01jxfIeIwYW/+LNF8gT+zRVb6AjxjUfuvtCbvjHi/MWPRUFK4ZRrXo8GTHqns7ey1g7//XyMEVihtaoC7XTi2pB/dfktxBtULI0wN3279fI1IpD+MIc/FuJbkvwCZBmWcdyNrFEbXmanlAr/zW+m5pof5lEgcDqMVLiHuyPvAMZ0OSQxt54ih3wcgndW+U97P9I/+DdXG1JQ/U38tR0KlJcMsC9ZXamlCjwCMrSjNXxsGgmmNdUHCJMWh679PliTaJAc7L2s+3c4bpjlp4KNtxhlJV66sOAkhjxYa8+PvCFCAYF/P9ufNKc3DjzMTbx4ZrfkcETQXeoVvNkw26eQt1OY+8100JiYBmdraFoK2FCgX+PxASXjfv1b4FUiPfMMigysMkh7uZ2RNT24OERV/Mz9tlmDeqA9RpNK6Cd4yd8TFQOdG874A2gFnyG1/LjGoXEj7r+KDBFcKFVwLfMARlG330He9cwx9Z87dyvWK5PvXJW2WXoCd4kkU= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB2887.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(39860400002)(396003)(376002)(136003)(366004)(33656002)(4326008)(5660300002)(6512007)(110136005)(316002)(6506007)(86362001)(66946007)(54906003)(186003)(478600001)(64756008)(71200400001)(66476007)(66446008)(76116006)(66556008)(66574015)(26005)(36756003)(2906002)(6486002)(38100700002)(8936002)(8676002)(122000001)(2616005)(53546011)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?WGNPQ21UMk9OVU90d2o0d3Z2aEd1aG8wNTJvQjROU1AxR2ttZ21FMTRnKzcz?= =?utf-8?B?bjgwQVl3TmdxNmtzYkw0WklVTi9VZHduSytVU3hMWGtXb245cVhuM3Zod2ZF?= =?utf-8?B?MjBEOW5oSkhLYkpUL1YrdjVtMG9IeVFZN2c2ZjhFdVY1UW9sSW5CYVBnM3Ux?= =?utf-8?B?blZTMUJBcHh4ZDdRd3BWR2V1VVkxd0lTdG9WVlNYTVBpc1ZheERLY0hXbDhF?= =?utf-8?B?V1MxMHBQdWd0R0N3RFhwVzhGekJLc2lmTzA3cWxTMFV2dWR3V2o3S3IyUG1C?= =?utf-8?B?dWZxdXB6d3gvL0ZMSkN1enNQN3hRcGZ3V0dCWU1OOC9KWE9zaHVUbXZHRGd4?= =?utf-8?B?bGY4SW5uSjc0ZzRFMW5pdk9LQU0vSDdMVTBac0dZazFoUW1QRGF3UklYYjFS?= =?utf-8?B?aFF2YnF6WHd1UHhHbHA1RytWK3k2VjNWa3RGK0ZxZ25FR3hQNU9wS0VFSWNV?= =?utf-8?B?VVVlczJ5d2w3bTBDaXNPaVo5OW01V3BhcnZzdm1HbGV0OUgwZE1NZGxKeGJm?= =?utf-8?B?WWcveDhYejFFeXM3RlI1WnZXMXlnajc2R0dMYk0rcjJUY0Z3djliM0d4L1JF?= =?utf-8?B?WkgrVVZNTGpzV0xiNFExbjlQNWxyTzNKalNobmlZeEF5VUhIa0ZsRXFMVU1R?= =?utf-8?B?WUxRcjFjbGx3dzRrc3BER3YzMjNKUVNJSW9aWFkxS0NZMUJkY3N2Q09zQ09G?= =?utf-8?B?WW81ZmZjUnhmUWJhZDE2ZFBLd1lEMHlXcUFIVjZUWmdPUFoyWVhkMmI5cEcv?= =?utf-8?B?OURyMCtVWFFwK1RhdFkyT2d5UVdDTE5WTG1lUVVhcWJwTGxQQ2ZFZzh1SkdP?= =?utf-8?B?dDQwdFcrS29pbU9BQVA2M3A4b3BlbXhxaGlrNHlvN1M0aFBVRUpjRk9pcExo?= =?utf-8?B?SnI2VjVlaGwrMmkvanlPVXhBdnVyRUkyZDR3ek1PelZZOTZ1cXUyWm1wVExR?= =?utf-8?B?cEdaTTI0K3JJL1VxVk5ZOElnT0orMXhrM2dHaWxaVHBmWUFEMGNsc0FJSnpE?= =?utf-8?B?WjRFbjN2QWZGUXBqbk5YM01jTjdTR3dxbG9kYloxSlMwVVQ5YUJyQ0lodVRu?= =?utf-8?B?cHdvUFN6WDZPSlhwUjZYQWxzdC9ucVdKWWJna1JVc2JkUzE4dEFqZ1hhUDhk?= =?utf-8?B?bk1qWTBmb25oQ1ljT0kzZlhBZlFSb3pBdG80aXlER0prSVJaL2VWdFJOU0tu?= =?utf-8?B?dExQMnBhcXBubFpEREp1ZlpVdEgwSVNCbDhteFBmMlFhY2ltL2ZlWVdidTQ4?= =?utf-8?B?YWpTNzY5eFdUVWp1cEVpMTBWcTlIVzRTVFA5WXRLdWd0NDJXOTRObFNpSEYv?= =?utf-8?B?SkFhUjQra3VkbytXVWw3aGFoeWRvYzhmNEpFcW9UKzNsYU5OZkR5ZlVOaDlx?= =?utf-8?B?MXE0YVJlKzRXeVJQcEV5RmRrUnoybE1MRFJJUUlGRGdQQ3h3aWNtY1MwRjdY?= =?utf-8?B?dXBicHZPdjBCZFV3K0IxVGJ0bjRuNkdvUEczUnFTdUlZVlNxUEpLLyt0TXly?= =?utf-8?B?L0p4VnhIUjRwcUtUNVR2NEJCYm9GMjNTYmI4RzNIODlja3ZaYXluOWVCckhl?= =?utf-8?B?TnUyWmNlbUU0dXhtbStMblg1Unoza3JzNXNmcmM4UGtEZ21xMFAwRXVyblds?= =?utf-8?B?N2RTWk1uYkdqT2FlbkVYOWVPak1tbGNSeGNpcUNjMnl3N2ZZd3U4ZFFmZEZE?= =?utf-8?B?d3cwK1VVbjdZbCtJcEJIUlcwVHdRaTZFZDFDeUp3SnV1NU9zRlJ1Ull2U2F3?= =?utf-8?B?U0Fncmo3b2h5eWVocFBjb0x0YXl1b21WakFxNWlXckRIUTlGeE5OeGc2MlEv?= =?utf-8?B?ZGVaSlNxbzZNUGFuWGhQUT09?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB2887.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c285c47b-98e3-42a1-b4aa-08d9067ac020 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2021 17:10:52.7592 (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: rM5xKlAjjpCJVA9S+4adKaSKblmtBPdfdp8eKDRNz+NbLe9tT28d8qjzO+rfexuW X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5117 X-OriginatorOrg: cisco.com X-Outbound-SMTP-Client: 173.36.7.16, xbe-aln-001.cisco.com X-Outbound-Node: alln-core-3.cisco.com Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-rtgwg-yang-rib-extend-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2021 17:11:01 -0000 SGkgTWFydGluLCANClNlZSBpbmxpbmUgYmVsb3cuDQoNCu+7v09uIDQvMjMvMjEsIDM6MTkgQU0s ICJNYXJ0aW4gQmrDtnJrbHVuZCIgPG1iaitpZXRmQDQ2Njguc2U+IHdyb3RlOg0KDQogICAgSGks DQoNCiAgICBUaGFuayB5b3UgZm9yIGFkZHJlc3NpbmcgbXkgY29tbWVudHMuICBQcnVuaW5nIHRv IHRoZSBvbmUgcmVtYWluaW5nDQogICAgcXVlc3Rpb24uDQoNCg0KICAgIFlpbmd6aGVuIFF1IDx5 aW5nemhlbi5pZXRmQGdtYWlsLmNvbT4gd3JvdGU6DQogICAgPiBIaSBNYXJ0aW4sDQogICAgPiAN CiAgICA+IFRoYW5rIHlvdSBmb3IgeW91ciByZXZpZXcsIGFuZCB3ZSd2ZSBwdWJsaXNoZWQgdmVy c2lvbiAtMDcgdG8gYWRkcmVzcyB5b3VyDQogICAgPiBjb21tZW50cy4NCiAgICA+IA0KICAgID4g UGxlYXNlIHNlZSBteSBhbnN3ZXJzIGJlbG93IGlubGluZS4NCiAgICA+IA0KICAgID4gVGhhbmtz LA0KICAgID4gWWluZ3poZW4NCiAgICA+IA0KICAgID4gT24gV2VkLCBBcHIgMTQsIDIwMjEgYXQg NDo1MSBBTSBNYXJ0aW4gQmrDtnJrbHVuZCB2aWEgRGF0YXRyYWNrZXIgPA0KICAgID4gbm9yZXBs eUBpZXRmLm9yZz4gd3JvdGU6DQogICAgPiANCiAgICA+ID4gUmV2aWV3ZXI6IE1hcnRpbiBCasO2 cmtsdW5kDQogICAgPiA+IFJldmlldyByZXN1bHQ6IFJlYWR5IHdpdGggTml0cw0KICAgID4gPg0K ICAgID4gPiBIZXJlIGlzIG15IFlBTkcgZG9jdG9ycyByZXZpZXcgb2YgZHJhZnQtaWV0Zi1ydGd3 Zy15YW5nLXJpYi1leHRlbmQtMDYuDQogICAgPiA+IFRoaXMgaXMgYSB3ZWxsLXdyaXR0ZW4gZHJh ZnQsIGFuZCBteSBjb21tZW50cyBhcmUgbWlub3IuDQoNCiAgICBbLi4uXQ0KDQogICAgPiA+IG8g IG1vZHVsZSBkZXNjcmlwdGlvbg0KICAgID4gPg0KICAgID4gPiAgICAgIFRoaXMgWUFORyBtb2R1 bGUgZXh0ZW5kcyB0aGUgZ2VuZXJpYyBkYXRhIG1vZGVsIGZvcg0KICAgID4gPiAgICAgIFJJQiBi eSBhdWdtZW50aW5nIHRoZSBpZXRmLXJvdXRpbmcgbW9kZWwuICBJdCBpcw0KICAgID4gPiAgICAg IGludGVuZGVkIHRoYXQgdGhlIG1vZHVsZSB3aWxsIGJlIGV4dGVuZGVkIGJ5IHZlbmRvcnMNCiAg ICA+ID4gICAgICB0byBkZWZpbmUgdmVuZG9yLXNwZWNpZmljIFJJQiBwYXJhbWV0ZXJzLg0KICAg ID4gPg0KICAgID4gPiAgIEkgZG9uJ3QgdGhpbmsgSSB1bmRlcnN0YW5kIHRoaXMgZGVzY3JpcHRp b24uICBIZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywNCiAgICA+ID4gICBidXQgSSBkb24ndCB0aGlu ayBpdCBpcyBjb3JyZWN0Og0KICAgID4gPg0KICAgID4gPiAgICAgMS4gVGhpcyBtb2R1bGUgZXh0 ZW5kcyB0aGUgZXhpc3RpbmcgUklCIGRhdGEgbW9kZWwgYnkgdXNpbmcNCiAgICA+ID4gICAgICAg IGF1Z21lbnRhdGlvbnMuDQogICAgPiA+ICAgICAyLiBUaGUgZXhpc3RpbmcgUklCIGRhdGEgbW9k ZWwgaXMgZGVmaW5lZCBpbiB0aGUgWUFORyBtb2R1bGUNCiAgICA+ID4gICAgICAgIGlldGYtcm91 dGluZy4NCiAgICA+ID4gICAgIDMuIFRoZSBwdXJwb3NlIG9mIHRoaXMgbmV3IG1vZHVsZSBpcyB0 byBhbGxvdyB2ZW5kb3JzIHRvIGV4dGVuZCB0aGUNCiAgICA+ID4gICAgICAgIHRoZSBleGlzdGlu ZyBSSUIgZGF0YSBtb2RlbCB3aXRoIHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXJzLg0KICAgID4g Pg0KICAgID4gPiAgIEl0IHNlZW1zIDMgaXMgYXQgbGVhc3QgaW5jb21wbGV0ZSwgc2luY2UgdGhp cyBtb2R1bGUgZGVmaW5lcyBzb21lDQogICAgPiA+ICAgYWRkaXRpb25hbCBjb25maWcgcGFyYW0g Zm9yIHN0YXRpYyByb3V0ZXMsIGFuZCBhZGR0aW9uYWwgc3RhdGUgYW5kDQogICAgPiA+ICAgc3Rh dGlzdGljcyBmb3Igcmlicy4NCiAgICA+ID4NCiAgICA+ID4gICBJdCBpcyBub3QgY2xlYXIgaG93 IHZlbmRvcnMgYXJlIGV4cGVjdGVkIHRvIGV4dGVuZCB0aGlzIG1vZGVsOyB0aGUNCiAgICA+ID4g ICB3b3JkICJ2ZW5kb3IiIGRvZXNuJ3Qgc2hvdyB1cCBhbnl3aGVyZSBlbHNlLg0KICAgID4gPg0K ICAgID4gPiBbWWluZ3poZW5dOiBUaGlzIG1vZHVsZSBkb2VzIGRlZmluZSBhZGRpdGlvbmFsIHBh cmFtZXRlcnMgYW5kIGlzDQogICAgPiBhdWdtZW50aW5nIHRoZSBleGlzdGluZyBSSUIgbW9kZWwu IFRoZSBtb2R1bGUgY2FuIGJlIGZ1cnRoZXIgYXVnbWVudGVkLiBBbnkNCiAgICA+IHN1Z2dlc3Rp b25zIGZvciBhIHJlcGxhY2VtZW50IG9mICJ2ZW5kb3Itc3BlY2lmaWMiPw0KDQogICAgQWxsIG1v ZGVscyBjYW4gYmUgYXVnbWVudGVkIHNvIEkgZG9uJ3QgdGhpbmsgdGhpcyBuZWVkcyB0byBiZSBz cGVsbGVkDQogICAgb3V0LiAgV2hlbiBpdCBpcyBzcGVsbGVkIG91dCBsaWtlIHRoaXMgSSBleHBl Y3Qgc29tZSBkaXNjdXNzaW9uIGFib3V0DQogICAgaG93IGl0IGRpZmZlciBmcm9tIHRoZSAibm9y bWFsIiBhdWdtZW50IHRoYXQgYWx3YXlzIGNhbiBiZSBkb25lLg0KDQogICAgU29tZSBtb2R1bGVz IGRlZmluZSBzb21lIGdlbmVyaWMgY29tbW9uIHN0cnVjdHVyZSwgYnV0IGFyZSBub3QNCiAgICB2 ZXJ5IHVzZWZ1bCB1bmxlc3MgdGhleSBhcmUgYXVnbWVudGVkOyB0aGV5IG5lZWQgdG8gZGVmaW5l IGhvdyB2ZW5kb3JzDQogICAgKG9yIHNkb3MpIHNob3VsZCBleHRlbmQgdGhlIG1vZHVsZS4gIEhv d2V2ZXIsIEkgdGhpbmsgdGhhdCB0aGlzIG1vZHVsZQ0KICAgIGlzIHVzZWZ1bCBvbiBpdHMgb3du LCBhbmQgdGh1cyBJIHdvdWxkIHJlbW92ZSB0aGUgc2VudGVuY2UgIkl0IGlzDQogICAgaW50ZW5k ZWQgLi4uIi4gIA0KDQpJJ20gbm90IHN1cmUgdGhlIHNvdXJjZSBvZiB0aGlzIHRleHQgYnV0IGl0 IGhhcyBiZWVuIGFsbW9zdCBib2lsZXIgcGxhdGUgZm9yIHByb3RvY29sIFlBTkcgbW9kZWxzLiBI YXZpbmcgc2FpZCB0aGF0LCBJIGRvbid0IGhhdmUgYW55IHByb2JsZW0gcmVtb3ZpbmcgaXQuDQoN ClRoYW5rcywNCkFjZWUNCg0KDQogICAgL21hcnRpbg0KDQo= From nobody Fri Apr 23 12:23:07 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9E1603A1ACE; Fri, 23 Apr 2021 12:22:58 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 FU0qNKIikdso; Fri, 23 Apr 2021 12:22:53 -0700 (PDT) Received: from mail-il1-x129.google.com (mail-il1-x129.google.com [IPv6:2607:f8b0:4864:20::129]) (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 4A5A23A1AD0; Fri, 23 Apr 2021 12:22:53 -0700 (PDT) Received: by mail-il1-x129.google.com with SMTP id e14so17864953ils.12; Fri, 23 Apr 2021 12:22:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=RLtV9WJDFzgwqWA5dTGcTm/m16l3CB4JndLzr0crZqY=; b=WWMEfKhlotrW9aNEa3WsYiwLAxya9uQFbpkv1AqZo16elq1LrhRBQuUnFTzYtjy1iB UxRMnVJrQtD4fY37NbahuZYFVR5/JDP4ShuEhFGxmg2tWT91tt82CRg4jwrqIkYNL00E 4Yj3McA6befRACqNXflswYMFoMGngkdUjrAA6RBhuTuFe94fClkxuA6w2+lVwMEsIA/W 0tw/IGBM4QUhIBhJ4Tnlj+AbKap7ItrAvTQO3NLrndSeCOhRjZSkPb7litCUzipdQQ3Y XzTUOezCcorA9Dx4idLGmwa9QCYnTdRJYW0dY3REcp4XeiB8U/FzpbqXWc1Dnv4VOZgI TDzA== 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=RLtV9WJDFzgwqWA5dTGcTm/m16l3CB4JndLzr0crZqY=; b=XueEe9L0vRJHq+mBaS0skSuX4JR+yXe2K8zg+I4H6/tczI6Eh1ZPtcZxl0wXeOhQJE tyCO1jwztDxkLJxWrpx3JxG4WzcT6mTpygPH4UMWlxwUNyaKcJmUUpJzPEaEEc+nyQX9 4DeK+N7iuIAWYHbB+RJ1DUL/EV+W3yQayBvWTcstK+m3kUHdyZQoILXL8h9G5rv2QMoy Y5AMy+Nyus5G+mtfiLlCpWv29vGmGPH2EHwheC6bt6XMJVPkpK06CjbbNfVy2yeds7D4 Hc4R8t2/KKTCTNAzjaPXY7LXH+j8z2o4+OKasCRKb9LE4XjchB0OYLSRypOXFz9ZIH56 R+JQ== X-Gm-Message-State: AOAM530rHYgPEQolhs6whBzsMh+OiO5IqBSIDBiTifruWLkGcwe401J+ 2jmYHPK6Xv7aLfTHoJvnSkmCf5qWXQQeMTqoXw== X-Google-Smtp-Source: ABdhPJyLBPEdgWYxl0UV9sZXvpDyUkx9GpeqJERWlJQh2ERUOZ2UwWwkNH38plNMBfgflh20J1yGFTeZZIc/iIGI4Vw= X-Received: by 2002:a92:cd8a:: with SMTP id r10mr4271383ilb.282.1619205771757; Fri, 23 Apr 2021 12:22:51 -0700 (PDT) MIME-Version: 1.0 References: <161840106237.25677.18076046999764052110@ietfa.amsl.com> <20210423.091903.986873898422044404.id@4668.se> In-Reply-To: From: Yingzhen Qu Date: Fri, 23 Apr 2021 12:22:40 -0700 Message-ID: To: "Acee Lindem (acee)" Cc: =?UTF-8?Q?Martin_Bj=C3=B6rklund?= , "yang-doctors@ietf.org" , "draft-ietf-rtgwg-yang-rib-extend.all@ietf.org" , "last-call@ietf.org" , "rtgwg@ietf.org" Content-Type: multipart/alternative; boundary="000000000000d80cd905c0a8b855" Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-rtgwg-yang-rib-extend-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Apr 2021 19:22:59 -0000 --000000000000d80cd905c0a8b855 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Martin, I just published version -08 and removed the sentence in the module description and made a few editorial changes. Thank you again for the review and please let us know if you have more comments. Thanks, Yingzhen On Fri, Apr 23, 2021 at 10:10 AM Acee Lindem (acee) wrote: > Hi Martin, > See inline below. > > =EF=BB=BFOn 4/23/21, 3:19 AM, "Martin Bj=C3=B6rklund" = wrote: > > Hi, > > Thank you for addressing my comments. Pruning to the one remaining > question. > > > Yingzhen Qu wrote: > > Hi Martin, > > > > Thank you for your review, and we've published version -07 to > address your > > comments. > > > > Please see my answers below inline. > > > > Thanks, > > Yingzhen > > > > On Wed, Apr 14, 2021 at 4:51 AM Martin Bj=C3=B6rklund via Datatrack= er < > > noreply@ietf.org> wrote: > > > > > Reviewer: Martin Bj=C3=B6rklund > > > Review result: Ready with Nits > > > > > > Here is my YANG doctors review of > draft-ietf-rtgwg-yang-rib-extend-06. > > > This is a well-written draft, and my comments are minor. > > [...] > > > > o module description > > > > > > This YANG module extends the generic data model for > > > RIB by augmenting the ietf-routing model. It is > > > intended that the module will be extended by vendors > > > to define vendor-specific RIB parameters. > > > > > > I don't think I understand this description. Here's my > understanding, > > > but I don't think it is correct: > > > > > > 1. This module extends the existing RIB data model by using > > > augmentations. > > > 2. The existing RIB data model is defined in the YANG module > > > ietf-routing. > > > 3. The purpose of this new module is to allow vendors to > extend the > > > the existing RIB data model with vendor-specific parameter= s. > > > > > > It seems 3 is at least incomplete, since this module defines so= me > > > additional config param for static routes, and addtional state > and > > > statistics for ribs. > > > > > > It is not clear how vendors are expected to extend this model; > the > > > word "vendor" doesn't show up anywhere else. > > > > > > [Yingzhen]: This module does define additional parameters and is > > augmenting the existing RIB model. The module can be further > augmented. Any > > suggestions for a replacement of "vendor-specific"? > > All models can be augmented so I don't think this needs to be spelled > out. When it is spelled out like this I expect some discussion about > how it differ from the "normal" augment that always can be done. > > Some modules define some generic common structure, but are not > very useful unless they are augmented; they need to define how vendor= s > (or sdos) should extend the module. However, I think that this modul= e > is useful on its own, and thus I would remove the sentence "It is > intended ...". > > I'm not sure the source of this text but it has been almost boiler plate > for protocol YANG models. Having said that, I don't have any problem > removing it. > > Thanks, > Acee > > > /martin > > --000000000000d80cd905c0a8b855 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Martin,

I just published version= -08 and removed the sentence in the module description and made a few edit= orial=C2=A0changes.

Thank you again for the review= and please let us know if you have more comments.

Thanks,
Yingzhen

On Fri, Apr 23, 2021 at 10:10 AM Acee Lind= em (acee) <acee@cisco.com> wrot= e:
Hi Martin,
See inline below.

=EF=BB=BFOn 4/23/21, 3:19 AM, "Martin Bj=C3=B6rklund" <mbj+ietf@4668.se> w= rote:

=C2=A0 =C2=A0 Hi,

=C2=A0 =C2=A0 Thank you for addressing my comments.=C2=A0 Pruning to the on= e remaining
=C2=A0 =C2=A0 question.


=C2=A0 =C2=A0 Yingzhen Qu <yingzhen.ietf@gmail.com> wrote:
=C2=A0 =C2=A0 > Hi Martin,
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > Thank you for your review, and we've published versi= on -07 to address your
=C2=A0 =C2=A0 > comments.
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > Please see my answers below inline.
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > Thanks,
=C2=A0 =C2=A0 > Yingzhen
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > On Wed, Apr 14, 2021 at 4:51 AM Martin Bj=C3=B6rklund vi= a Datatracker <
=C2=A0 =C2=A0 > no= reply@ietf.org> wrote:
=C2=A0 =C2=A0 >
=C2=A0 =C2=A0 > > Reviewer: Martin Bj=C3=B6rklund
=C2=A0 =C2=A0 > > Review result: Ready with Nits
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > Here is my YANG doctors review of draft-ietf-rtgwg-= yang-rib-extend-06.
=C2=A0 =C2=A0 > > This is a well-written draft, and my comments are m= inor.

=C2=A0 =C2=A0 [...]

=C2=A0 =C2=A0 > > o=C2=A0 module description
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A0 This YANG module extends the ge= neric data model for
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A0 RIB by augmenting the ietf-rout= ing model.=C2=A0 It is
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A0 intended that the module will b= e extended by vendors
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A0 to define vendor-specific RIB p= arameters.
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0I don't think I understand this des= cription.=C2=A0 Here's my understanding,
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0but I don't think it is correct: =C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A01. This module extends the exist= ing RIB data model by using
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 augmentations.
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A02. The existing RIB data model i= s defined in the YANG module
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 ietf-routing.
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A03. The purpose of this new modul= e is to allow vendors to extend the
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 the existing RIB data mo= del with vendor-specific parameters.
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0It seems 3 is at least incomplete, sinc= e this module defines some
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0additional config param for static rout= es, and addtional state and
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0statistics for ribs.
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0It is not clear how vendors are expecte= d to extend this model; the
=C2=A0 =C2=A0 > >=C2=A0 =C2=A0word "vendor" doesn't sho= w up anywhere else.
=C2=A0 =C2=A0 > >
=C2=A0 =C2=A0 > > [Yingzhen]: This module does define additional para= meters and is
=C2=A0 =C2=A0 > augmenting the existing RIB model. The module can be fur= ther augmented. Any
=C2=A0 =C2=A0 > suggestions for a replacement of "vendor-specific&q= uot;?

=C2=A0 =C2=A0 All models can be augmented so I don't think this needs t= o be spelled
=C2=A0 =C2=A0 out.=C2=A0 When it is spelled out like this I expect some dis= cussion about
=C2=A0 =C2=A0 how it differ from the "normal" augment that always= can be done.

=C2=A0 =C2=A0 Some modules define some generic common structure, but are no= t
=C2=A0 =C2=A0 very useful unless they are augmented; they need to define ho= w vendors
=C2=A0 =C2=A0 (or sdos) should extend the module.=C2=A0 However, I think th= at this module
=C2=A0 =C2=A0 is useful on its own, and thus I would remove the sentence &q= uot;It is
=C2=A0 =C2=A0 intended ...".=C2=A0

I'm not sure the source of this text but it has been almost boiler plat= e for protocol YANG models. Having said that, I don't have any problem = removing it.

Thanks,
Acee


=C2=A0 =C2=A0 /martin

--000000000000d80cd905c0a8b855-- From nobody Sun Apr 25 10:49:40 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 647A93A0F49; Sun, 25 Apr 2021 10:49:38 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: X-Spam-Status: No, score=-2.098 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, HTML_MESSAGE=0.001, 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=imt-atlantique.fr 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 RayrsCsZIO1W; Sun, 25 Apr 2021 10:49:33 -0700 (PDT) Received: from zproxy120.enst.fr (zproxy120.enst.fr [IPv6:2001:660:330f:2::c1]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2ED173A0F4A; Sun, 25 Apr 2021 10:49:32 -0700 (PDT) Received: from localhost (localhost [IPv6:::1]) by zproxy120.enst.fr (Postfix) with ESMTP id A8BE580AB4; Sun, 25 Apr 2021 19:49:28 +0200 (CEST) Received: from zproxy120.enst.fr ([IPv6:::1]) by localhost (zproxy120.enst.fr [IPv6:::1]) (amavisd-new, port 10032) with ESMTP id NuzWcqqY8dSZ; Sun, 25 Apr 2021 19:49:26 +0200 (CEST) Received: from localhost (localhost [IPv6:::1]) by zproxy120.enst.fr (Postfix) with ESMTP id EAD4C80C03; Sun, 25 Apr 2021 19:49:25 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.10.3 zproxy120.enst.fr EAD4C80C03 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=imt-atlantique.fr; s=50EA75E8-DE22-11E6-A6DE-0662BA474D24; t=1619372966; bh=Fkdl0I2sWJiieVXjsNM5KndH7C5N3vFpsUjCNIjXbzA=; h=MIME-Version:From:Date:Message-ID:To; b=bG2/AgmBZkz5a985JpKhWAgjtedlWxkx8+M7NeTZQIv9prg9vM2/MhdMI3KXj5qv1 NOEvHQKtQ+7ljTa9tbiAqLX2GZjmHhEGwU9g4jD8BCVMNoD4sQ4f0SsuzsBbpUqcR3 OGQxNzpQhr1sZiItSjTG0m1Mb7pwCjKdvj/x6ZDo= X-Virus-Scanned: amavisd-new at zproxy120.enst.fr Received: from zproxy120.enst.fr ([IPv6:::1]) by localhost (zproxy120.enst.fr [IPv6:::1]) (amavisd-new, port 10026) with ESMTP id okAcBzCc_MM2; Sun, 25 Apr 2021 19:49:25 +0200 (CEST) Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by zproxy120.enst.fr (Postfix) with ESMTPSA id B014A80AB4; Sun, 25 Apr 2021 19:49:25 +0200 (CEST) Received: by mail-pj1-f51.google.com with SMTP id e8-20020a17090a7288b029014e51f5a6baso3840318pjg.2; Sun, 25 Apr 2021 10:49:25 -0700 (PDT) X-Gm-Message-State: AOAM530TnLf/gTKNDiORbnaEZ0NRQ337qEDTQwHZBGwcN4/OKYofmqcg qCBEL55RirpB9OWiXekHkL2mccOT8LKz6IAP11E= X-Google-Smtp-Source: ABdhPJxYMjEClf6BW9/1ANefKysQ4IPRdKiG8V7hcrBPLiT2FnxrfTMdK2UdzpiqmcIU18mf6ZIsfoYsh1Z+zJWNL/U= X-Received: by 2002:a17:902:714e:b029:eb:a5fa:3ad2 with SMTP id u14-20020a170902714eb02900eba5fa3ad2mr14640969plm.44.1619372964130; Sun, 25 Apr 2021 10:49:24 -0700 (PDT) MIME-Version: 1.0 References: <005c01d73463$5ee2fda0$1ca8f8e0$@gmail.com> In-Reply-To: From: Laurent Toutain Date: Sun, 25 Apr 2021 19:48:46 +0200 X-Gmail-Original-Message-ID: Message-ID: To: Carl Moberg Cc: Mehmet Ersue , yang-doctors@ietf.org, lpwan@ietf.org, draft-ietf-lpwan-schc-yang-data-model.all@ietf.org Content-Type: multipart/alternative; boundary="00000000000049354a05c0cfa6ab" Archived-At: Subject: Re: [yang-doctors] Yangdoctors Early Review of draft-ietf-lpwan-schc-yang-data-model-04 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 Apr 2021 17:49:38 -0000 --00000000000049354a05c0cfa6ab Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Carl, I've issued an updated version of the YANG model: https://github.com/lp-wan/datamodel/blob/master/ietf-schc%402021-04-23.yang The changes are the following: - pyang --ietf return no error - reformatted with pyang -f yang The field-id are now hierarchical, I created a new identity for each protocol, for instance for IPv6 fields: identity field-id-base-type { description "Field ID base type for all fields"; } identity field-id-ipv6-base-type { base field-id-base-type; description "Field IP base type for IPv6 headers described in RFC 8200"; } identity fid-ipv6-version { base field-id-ipv6-base-type; description "IPv6 version field from RFC8200"; } I also try to keep the hierarchy for sub-fields: identity fid-ipv6-trafficclass { base field-id-ipv6-base-type; description "IPv6 Traffic Class field from RFC8200"; } identity fid-ipv6-trafficclass-ds { base fid-ipv6-trafficclass; description "IPv6 Traffic Class field from RFC8200, DiffServ field from RFC3168"; } identity fid-ipv6-trafficclass-ecn { base fid-ipv6-trafficclass; description "IPv6 Traffic Class field from RFC8200, ECN field from RFC3168"; } For the correlation between fields, it is still a mystery, I tried this syntax, but it does not pass pyang validation: leaf field-length { type schc:field-length-type; mandatory true; when "derived-from(../field-id, 'fid-ipv6-version')" { default 4; } description "Field Length in bit or through a function defined as a YANG referenceid"; } I tried with another field, in the fragmentation part, when no-ack is used, window size does not have to be specified: leaf wsize { when "not(derived-from(../fragmentation-mode, 'fragmentation-mode-no-ack'))= " ; type uint8; description "size in bit of the window field"; } there is no error, but I'm not sure it is correct. Many thanks for your help, Laurent On Thu, Apr 22, 2021 at 11:27 AM Carl Moberg wrote: > Laurent, > > See inline below: > > > On 22 Apr 2021, at 10:45, Laurent Toutain < > laurent.toutain@imt-atlantique.fr> wrote: > > > > Dear Carl and Mehmet, > > > > Thank you very much for your review and all the advice, this will help > us to have a better document. I'm quite new in YANG and I was not aware o= f > the --ietf argument. It reports a lot of errors, I will correct them. -f > yang is also an option I was looking for to have more readable documents. > > > > Regarding the FID, you are right, it is too flat right now, we will > change it to have something more hierarchical that allows also to go insi= de > a field to allow subfields ids. > > > > For the last point, how do you establish a relation between fields in a > yang model? > > We could consider the use of =E2=80=9Cwhen=E2=80=9D-statements (see: > https://tools.ietf.org/html/rfc7950#section-7.21.5) to constrain the type > of the length-field strictly based on the derived identity of the > field-identifier. > > Take a look and see what you can make out of it and if it applies in thi= s > case. > > > Thank you again for your help > > > > Laurent > > > > On Sun, Apr 18, 2021 at 5:16 PM Mehmet Ersue wrote: > > I=E2=80=99m sending this on behalf of Carl Moberg. > > > > It seems there was an issue and the review mail has not been generated. > > > > Text copied from > > > > > https://datatracker.ietf.org/doc/review-ietf-lpwan-schc-yang-data-model-0= 4-yangdoctors-early-moberg-2021-04-13/ > > > > > > > > Mehmet > > > > > > > > Reviewer: Carl Moberg > > > > Review result: On the Right Track > > > > > > > > This is my YANG Doctors Early Review of > draft-ietf-lpwan-schc-yang-data-model-04 > > > > > > > > It is obviously challenging to provide early review feedback on how > useful and efficient the YANG model representation is for a set of > technologies that I am not an expert on, but here goes. > > > > > > > > Understanding that it is still early in the lifecycle of the module, I > have not spent time on providing feedback on e.g. description texts, > capitalization and spelling but have focused on the general structure and > design of the module. I also haven't spent any time dissecting the output > of `pyang --ietf`, but I would suggest the authors start looking into tha= t > as the content of the module moves ahead towards publication. > > > > > > > > I would also suggest considering running the module through `pyang -f > yang` as that provides nice and consistent formatting and quoting. > > > > > > > > As for the content itself. I believe to the best of my understanding > that the YANG module reflects the core data structures of RFC8724 well. I > have a couple of questions that may lead to broader discussion on _how_ t= o > capture certain aspects of these data structures in a way that makes it > realistic to implement while still easy to use. > > > > > > > > As is right now, the YANG module assumes that all implementations > support all FID types defined to be derived from field-id-base-type. It > includes fields related IPv6, COAP/OSCORE, and ICMPv6 all in the same > module. Is there a possibility that some implementations won't implement > all three of those protocol groups? If so, it might be worth considering > making FID type groups either optional using YANG 'feature' statements or > break them out into separate modules to be advertised separately. > > > > > > > > There is currently no correlation between field-id type and field-lengt= h > types in the same compression rule entry. I.e. the current YANG permits a > field-identifier 'fid-ipv6-version' combined with a field-length > 'fl-token-length' in a rule entry, which I understand to be nonsensical. = If > I am right in that it's an example of meaningless configuration, does the > authors think it important (and possible) to work towards a more stringen= t > validation of "meaningful" configuration by capturing the relationships > between fields like in this example? > > > > > > > > > > > > _______________________________________________ > > yang-doctors mailing list > > yang-doctors@ietf.org > > https://www.ietf.org/mailman/listinfo/yang-doctors > > --00000000000049354a05c0cfa6ab Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Carl,
<= br>
I've issued an updated version of the YANG model:


The change= s are the following:

- pyang --ietf return no erro= r
- reformatted with pyang -f yang

The f= ield-id are now hierarchical, I created a new identity for each protocol, f= or instance for IPv6 fields:

identity field-id= -base-type {
descri= ption "Field ID base typ= e for all fields";
}

identity field-id-ipv6-base-type {
=
base field-id-bas= e-type;
description= "Field IP base type for= IPv6 headers described in RFC 8200";
}

=
identity fid-ipv6-ver= sion {
base f= ield-id-ipv6-base-type;
description "IPv6 ve= rsion field from RFC8200";
}

I also try to keep the hierarchy for sub-fields:

identity fid-ipv6-trafficclass {
base field-id-ipv6-base-type;
description "IPv6 Traffic Class field from RFC= 8200";
}

identity fid-ipv6-trafficclass-ds {
= base fid-ipv6-trafficclass;<= /div>
description = "IPv6 Traffic Class field from = RFC8200,
D= iffServ field from RFC3168";
}

= identity fid-ipv6-trafficclass= -ecn {
base = fid-ipv6-trafficclass;
description "IPv6 Tr= affic Class field from RFC8200,
ECN field from RFC3168";
}<= /div>

For the correlation between fields, it= is still a mystery, I tried this syntax, but it does not pass pyang valida= tion:
leaf field-length {
type schc:field-length-type;
mandatory true;
= when "derived-from(../fi= eld-id, 'fid-ipv6-version')" {
= default 4;
}
= description "Field Length in bit or through a function define= d as a YANG referenceid";
}
=

I tried with another field, in the fragmentation=C2=A0p= art, when no-ack is used, window size does not have to be specified:
<= div>
leaf wsize {
when "not(derived-from(../fragmentation-mode, 'fragmentation-mode-no= -ack'))";
type uint8;<= /div>
description "size in bit of the window = field";
}

there is no error, but I'm not sure it is correct.

Many thanks for your help,

Laurent



















=

On Thu, Apr 22, 2021 at 11:27 AM Carl Moberg <callemoberg@gmail.com> wrote:=
Laurent,

=C2=A0See inline below:

> On 22 Apr 2021, at 10:45, Laurent Toutain <laurent.toutain@imt-atlantiq= ue.fr> wrote:
>
> Dear Carl and Mehmet,
>
> Thank you very much for your review and all the advice, this will help= us to have a better document. I'm quite new in YANG and I was not awar= e of the --ietf argument. It reports a lot of errors, I will correct them. = -f yang is also an option I was looking for to have more readable documents= .
>
> Regarding the FID, you are right, it is too flat right now, we will ch= ange it to have something more hierarchical that allows also to go inside a= field to allow subfields ids.
>
> For the last point, how do you establish a relation between fields in = a yang model?=C2=A0

=C2=A0We could consider the use of =E2=80=9Cwhen=E2=80=9D-statements (see: = https://tools.ietf.org/html/rfc7950#section-7.21.5= ) to constrain the type of the length-field strictly based on the deriv= ed identity of the field-identifier.

=C2=A0Take a look and see what you can make out of it and if it applies in = this case.

> Thank you again for your help
>
> Laurent
>
> On Sun, Apr 18, 2021 at 5:16 PM Mehmet Ersue <mersue@gmail.com> wrote:
> I=E2=80=99m sending this on behalf of Carl Moberg.
>
> It seems there was an issue and the review mail has not been generated= .
>
> Text copied from
>
> https://datatracker.ietf.org/doc/review-ietf-lpwan-schc-yan= g-data-model-04-yangdoctors-early-moberg-2021-04-13/
>
>=C2=A0
>
> Mehmet
>
>=C2=A0
>
> Reviewer: Carl Moberg
>
> Review result: On the Right Track
>
>=C2=A0
>
> This is my YANG Doctors Early Review of draft-ietf-lpwan-schc-yang-dat= a-model-04
>
>=C2=A0
>
> It is obviously challenging to provide early review feedback on how us= eful and efficient the YANG model representation is for a set of technologi= es that I am not an expert on, but here goes.
>
>=C2=A0
>
> Understanding that it is still early in the lifecycle of the module, I= have not spent time on providing feedback on e.g. description texts, capit= alization and spelling but have focused on the general structure and design= of the module. I also haven't spent any time dissecting the output of = `pyang --ietf`, but I would suggest the authors start looking into that as = the content of the module moves ahead towards publication.
>
>=C2=A0
>
> I would also suggest considering running the module through `pyang -f = yang` as that provides nice and consistent formatting and quoting.
>
>=C2=A0
>
> As for the content itself. I believe to the best of my understanding t= hat the YANG module reflects the core data structures of RFC8724 well. I ha= ve a couple of questions that may lead to broader discussion on _how_ to ca= pture certain aspects of these data structures in a way that makes it reali= stic to implement while still easy to use.
>
>=C2=A0
>
> As is right now, the YANG module assumes that all implementations supp= ort all FID types defined to be derived from field-id-base-type. It include= s fields related IPv6, COAP/OSCORE, and ICMPv6 all in the same module. Is t= here a possibility that some implementations won't implement all three = of those protocol groups? If so, it might be worth considering making FID t= ype groups either optional using YANG 'feature' statements or break= them out into separate modules to be advertised separately.
>
>=C2=A0
>
> There is currently no correlation between field-id type and field-leng= th types in the same compression rule entry. I.e. the current YANG permits = a field-identifier 'fid-ipv6-version' combined with a field-length = 'fl-token-length' in a rule entry, which I understand to be nonsens= ical. If I am right in that it's an example of meaningless configuratio= n, does the authors think it important (and possible) to work towards a mor= e stringent validation of "meaningful" configuration by capturing= the relationships between fields like in this example?
>
>=C2=A0
>
>=C2=A0
>
> _______________________________________________
> yang-doctors mailing list
> yang-doctor= s@ietf.org
> https://www.ietf.org/mailman/listinfo/yang-do= ctors

--00000000000049354a05c0cfa6ab-- From nobody Mon Apr 26 02:04:14 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7486E3A14CB; Mon, 26 Apr 2021 02:04:03 -0700 (PDT) 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_DNSWL_NONE=-0.0001, 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 9oZKe28Spj0u; Mon, 26 Apr 2021 02:03:58 -0700 (PDT) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130095.outbound.protection.outlook.com [40.107.13.95]) (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 2910B3A14CA; Mon, 26 Apr 2021 02:03:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FAGvq0+E2K1h634ZG12m2/VJ9G4OM1QUS1ymFeBmfra+WLcyHUoLc6a6qtdMrYqISqf3R5Zb3xtYgZTV0p4TpCrGTfpduZToK15ikQ1vmWGLF0IGsuG3ORuh/fDopoFiPtpzWuQXmVQKEQi4lCA26CGKitJ4iYxMmnZrhwp5tznJ6TtQ/B/TUKjQhAstud+LQy7HBlj/XN4UVQNz05Sar0iqfgAFacA1kGmqU3ZZB5uHAjB7BU4gnGeuiWwHlMIY9pKGTYOOryOb0pXQBPcW7CehD7ARHnl7QGLXNd2QNO2+ToBEY/H50UU22WD1mb/vzrPa0elISbgakiUKrGaSLA== 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=8QJsHPAYvL3Fn7+kn8ZWqsDivhv1ZnBZ8eTA40K6fLo=; b=YAKmQOVRy4RfpjcbUoegQRpSALPhtap7/flso51c+c2yTQOV2IrBiJ7N4UXzRsKOU1Ap46Qj+OX+IHTuLoFdldls08VTX6pO8OgPNw0CdU1lcK3yxfODHlcyMkabCCsivm/KCARmGi21OIZT/AO3v3BIVKHV14TMYgriZqTN7RYM7f3nkYp2knHaGb1XI/pG9MI3O41CtypbwHZiJuvFL1bCwI81g6eDMWFMOSZli7r7JD81iYCaavXarnzGlsUXFab0UPVnREalqkmxta7OefRKA96ES+EJAD42CmVfYa9yd2QKLfQQSuKgreEtkQ7qMepmHkWo6aBbMs1M+VOiSQ== 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=8QJsHPAYvL3Fn7+kn8ZWqsDivhv1ZnBZ8eTA40K6fLo=; b=Ev0PFoXzb9XjGXngwSMYLpiMrUQogu1F6xu0b8aVFCmeWFd2XdvM5wfmTyoF3ch/T61ZBM2InziM0bH7MZU9Iaq7KZ0JeEYnJh9AZmi2gur3NO/mhaVaDwsvnl0Sv++jfGiqr38rm1CLDR2rG+qqklq7A6Xl02M5mYhA32bx57c= Received: from DB7PR07MB5546.eurprd07.prod.outlook.com (2603:10a6:10:73::23) by DU2PR07MB8045.eurprd07.prod.outlook.com (2603:10a6:10:2b6::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.6; Mon, 26 Apr 2021 09:03:55 +0000 Received: from DB7PR07MB5546.eurprd07.prod.outlook.com ([fe80::ddb2:16dd:9380:90c7]) by DB7PR07MB5546.eurprd07.prod.outlook.com ([fe80::ddb2:16dd:9380:90c7%3]) with mapi id 15.20.4087.025; Mon, 26 Apr 2021 09:03:55 +0000 From: tom petch To: Yingzhen Qu , "Acee Lindem (acee)" CC: "yang-doctors@ietf.org" , "rtgwg@ietf.org" , "last-call@ietf.org" , =?utf-8?B?TWFydGluIEJqw7Zya2x1bmQ=?= , "draft-ietf-rtgwg-yang-rib-extend.all@ietf.org" Thread-Topic: Yangdoctors last call review of draft-ietf-rtgwg-yang-rib-extend-06 Thread-Index: AQHXMSR3qdpAFSXfFU6nsqRWHijQA6rBi8qAgAAzzYCAAKVaAIAAJNMAgAQD8t8= Date: Mon, 26 Apr 2021 09:03:54 +0000 Message-ID: References: <161840106237.25677.18076046999764052110@ietfa.amsl.com> <20210423.091903.986873898422044404.id@4668.se> , In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=btconnect.com; x-originating-ip: [86.143.250.49] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 42518ca0-e537-4b56-489a-08d90892382a x-ms-traffictypediagnostic: DU2PR07MB8045: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: os/iC12duvT961qTx+ZddQ81DvUr2wsfnWdyiPtT23Y35PWH+NWR/qPzfG9K715DPgfd3+1ew6NMp983CqL/54Y4HUyG2Y+jtVTudSBXFJvzqDLPYdulcCMTEV78gxC5PaehDZUFyDFSyo+Xnk93tuI1kO0lxZOgRYxKDKIxGO+3jL8T3e5wmy2Y/k6puHmGmP1eXsJzLLOowT51Zdgk7FCOwJg4/tw8DXje7ELnjzbja3f7EcvepSr9UHw9gSQQctkLtIFwjCLHim4DrPhYaXNa5x3dyFdygypABvGKx7Q7K5bDXN5xGYHfV20EK/WbAkbLp+5f0zTW4+X/PBwN6CPQiMxiQSpl+nxpxt50F3iALU5SOljCb6kGbICQdcCrDSTOvM7R37A8fwPoNYUAj3HgSeGmQZ40rTeCzAuOpDVvZIQcn+1SdxzDBp5xzjFyJUNsfkYpu+ArXTODW/67YsFwp9JyFoMC/xBd0h9l8tUrrKpO/KczYCVZLD2px0miFSWlPEWjcQS+Sm2xqiM5Hpt6FZP10UsXPQ83omw0mZx7D7k/+H8ozTu71/HiNZbs0mS3fyNqQOqqchG5mNFwT4RCYV5Ry3udZ/WcQ0jWDVY= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5546.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(376002)(39860400002)(136003)(366004)(396003)(4326008)(71200400001)(52536014)(122000001)(38100700002)(83380400001)(33656002)(8936002)(6486002)(66574015)(8676002)(9686003)(26005)(186003)(5660300002)(66946007)(76116006)(91956017)(2906002)(86362001)(66556008)(110136005)(478600001)(53546011)(54906003)(6506007)(64756008)(66476007)(6512007)(66446008)(316002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?WTN1WnRIRVNjODdGeTI5ZXFaOE1tSmNFTXlaNkpVUmVHNDAra0ExOVBmcmlM?= =?utf-8?B?ZzkvZXFyenhSTmlUcnpUTmoyQXpPTGJoL0dFYnQ5elRraEF1WVRVVko5Yit5?= =?utf-8?B?RThuTy93dEdpdHYyRW9TZGRWT0ZQaFdtRStwcmFnTGhPdzc3Q01XY2xMRHZT?= =?utf-8?B?VE5PZ0xpQUJEaExTNExlWVQ1RkdrMW5YTnRWOVltYTZ5MHdEZWttQ3pFYmpH?= =?utf-8?B?bUtBcDBVczFNRHNIL1R6K0kyUnE5cng5OUtTL3pySlBMT3c5QlZBOG55Zk5M?= =?utf-8?B?a3F5QnFYejJCZXNDQllsMmJtV2M2MUhxVkFTaWltWitDSXM4Y1FuMGpKSEw4?= =?utf-8?B?L2RZRGgzakV3ZVU5L1V6dGFPbVp1Qmlaaldza0grMnRFMCtlQm9lZFIybzkv?= =?utf-8?B?NEZ5Um9RRDdoQWU1M2taWnJZUnFGQXdGelNtUzZhS0djRnJzcVN3VnROWGpV?= =?utf-8?B?a3U0dmlFdW1TcDloOUtVdHhwU2k5UmIzR2paekpuWVYvUktGREE2ZFkwUXVY?= =?utf-8?B?Mlp0dmlMRno3a2d1djdBUjMvOVlKek9oSDJUUkRIN1I0cng0ODVqN09QZTVx?= =?utf-8?B?bFRQVm42RXV6UHFaYjhRT3hVcHdWRUdpNkRnYk9YeDlhSlR1cVdXQlhVUDJO?= =?utf-8?B?VmVtSlp0ZzhUL1RQak5QeUMvazJkdlhTbTBBdCtNRkpscnZyeTNwQktuVUhu?= =?utf-8?B?Uk1Ca01PeWZRbmo2RjFxOURXRnZnNGRlaDlHSWNHT2NUelJlTStFRm9TWUxG?= =?utf-8?B?MXlnSGZWYnVtbDZ1T3ZnSmVRUllqYkF2elVmbC94S1RPY3NCMGFpemdPOTBX?= =?utf-8?B?ZC90WW1LeVpNbythTzhML0p0ZXk0cFZEd2NzalB0aG5CbStCQ0xucUhML2Fu?= =?utf-8?B?NTN0N1pqRDRRM0oyaEsxYm5jOWljMERONVhmSCtnQXd5Umx0QzhOUm5iYXRV?= =?utf-8?B?UVlMOVlueHF4cjYvb2M2WjlyUzAzMXF1UysrdXJjdVFYNGoyZTRJSW5seTJ4?= =?utf-8?B?Y3BoaUhDb0lkZnFJR2I1K2w2THptQXJKRHlnT0FiK2NMVXBJQ2lFRFpwbnl4?= =?utf-8?B?L2haK3pXNDJkQkY3VzM3aHc2S095ckJpd29SbE5WMGx3ajNIa2FYVitKdkJG?= =?utf-8?B?UEwzTVJEbFVQYlF4ZXlWUUZtR21SNmkvdVFlWHJ4SWpMWnpGa1J3clowRnB5?= =?utf-8?B?cUlYcm9rNUE1UWpsbHFtS3ZvMzZVL1Fid2NqTWRORmthZk9xWWVrQU93OFFC?= =?utf-8?B?UmdSQXhvc21IUk1iOTZOd3Jld2lnVGErbnJUQ1Y3NnJkeVU1VE9YclJXQ0Vu?= =?utf-8?B?NzFXbTJNc0EyWm8yNm15K0JabTE5OUw0TWJnL2hpdktZOGRlWWlvT0RjMncr?= =?utf-8?B?QVM1MnBwK29pWTJEVG9DeHZqVW92b3dKRGFsWFhxelZMVHRIakxtME42N1Yx?= =?utf-8?B?Q0FuRVhLR2hTRGU1M3pBQUlxWTM4RnkwM2hTcFFoL1h1ZWdEUkVBKzd0aTFN?= =?utf-8?B?RksrbTNUMjlFY0puL2dXb3ZMeWFXd0dpOHJKKzViTVBDU1lBWjNsS3hRNC9P?= =?utf-8?B?QkxVcTIwT3Z0cFhvSDZ1eEowVHBXcTRCMSs0dHVSZ1QrQ29JUGpnS0d2dFNx?= =?utf-8?B?bjU2Z3cyUUdpU055QTdoTE1jS3diZTcrRjUvamE2KzF3K1RVeXJ6cWNYVFJt?= =?utf-8?B?MjNWQ1lyKzh5eWVVOXpzSyt6bnM1MFVNcm5tZ0ZiWUVUdEZYaE4yWERnUGh1?= =?utf-8?Q?YoF22TXkDHfubghdrc=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: btconnect.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5546.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42518ca0-e537-4b56-489a-08d90892382a X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2021 09:03:54.9149 (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: mi/0net1GSzRrDiA72igN1cFp/KGekV+TryRGpXjdqY6/luF2+4+NzB2ZRQlJKWvayIjTyNur9D2juuyGd+t5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR07MB8045 Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-rtgwg-yang-rib-extend-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Apr 2021 09:04:04 -0000 RnJvbTogcnRnd2cgPHJ0Z3dnLWJvdW5jZXNAaWV0Zi5vcmc+IG9uIGJlaGFsZiBvZiBZaW5nemhl biBRdSA8eWluZ3poZW4uaWV0ZkBnbWFpbC5jb20+ClNlbnQ6IDIzIEFwcmlsIDIwMjEgMjA6MjIK CkhpIE1hcnRpbiwKCkkganVzdCBwdWJsaXNoZWQgdmVyc2lvbiAtMDggYW5kIHJlbW92ZWQgdGhl IHNlbnRlbmNlIGluIHRoZSBtb2R1bGUgZGVzY3JpcHRpb24gYW5kIG1hZGUgYSBmZXcgZWRpdG9y aWFsIGNoYW5nZXMuCgpUaGFuayB5b3UgYWdhaW4gZm9yIHRoZSByZXZpZXcgYW5kIHBsZWFzZSBs ZXQgdXMga25vdyBpZiB5b3UgaGF2ZSBtb3JlIGNvbW1lbnRzLgoKPHRwPgp1c2luZyBhIHJlY2Vu dCBwb3N0LCB0aGlzIGlzIGZyb20gVG9tIG5vdCBNYXJ0aW4uCgpJIGRvIG5vdCBzZWUgYW4gaW1w cm92ZW1lbnQsIHBlcmhhcHMgLTA4IGlzIHdvcnNlLiAgSSBmaW5kIHRoZSBpbnRyb2R1Y3Rvcnkg dGV4dCBjb25mdXNpbmcuCgpBIHNtYWxsIGJ1dCBmb3IgbWUgYSB0ZWxsaW5nIHBvaW50OyBSSUIg bmVlZHMgYW4gYXJ0aWNsZSwgJ2EnIG9yICd0aGUnIHdoaWNoIGhhdmUgc2xpZ2h0bHkgZGlmZmVy ZW50IG1lYW5pbmdzIGFuZCBpcyBtb3N0bHkgbGFja2luZwoKTW9yZSB0ZWNobmljYWxseSwgd2hl biBSRkM4MzQ5IHdhcyBiZWluZyBkZXZlbG9wZWQuIHRoZSBzZW5zZSB3YXMgdGhhdCAncGF0aCcg aGFkIG5vIG1lYW5pbmcgYW5kIHNvIFJGQzgzNDkgbmV2ZXIgdXNlcyBpdCwgb25seSAgJ3JvdXRl Jy4gIFlvdSB1c2UgJ3BhdGgnIHNvIHlvdSBoYXZlIHRvIGRlZmluZSBpdCB3aGljaCBleHBlcmll bmNlIHdpdGggUkZDODM0OSBzdWdnZXN0cyBpcyBub3Qgc3RyYWlnaHRmb3J3YXJkLgoKWW91IHVz ZSAnYmVzdCcgaW4gc2V2ZXJhbCBwbGFjZXMgd2hpY2ggaXMgbWVhbmluZ2xlc3Mgd2l0aG91dCBj cml0ZXJpYTsgYmVzdCBhdmFpbGFiaWxpdHksIGJlc3QgZm9yIGRlbGF5IHZhcmlhbmNlLCBiZXN0 IGZvciAuLi4/ICBBZ2FpbiBSRkM4MzQ5IGdldHMgaXQgcmlnaHQgYnkgdXNpbmcgJ3ByZWZlcnJl ZCcgYnV0IHRoYXQgY291bGQgYmUgd3JvbmcgaGVyZS4gIFlvdSBzZWVtIHRvIG1pc3MgdGhlIGNv bmNlcHQgdGhhdCBhIFJJQiBpcyBhIGxpc3Qgb2Ygcm91dGVzIGZvciBvbmUgYWRkcmVzcyBmYW1p bHkuCgpJIGV4cGVjdCB0aGUgQWJzdHJhY3QgdG8gbGVhZCBtZSBpbnRvIHRoZSBJbnRyb2R1Y3Rp b24gd2hpY2ggbGVhZHMgbWUgaW50byBzdWJzZXF1ZW50IHNlY3Rpb25zLiAgSGVyZSBJIGdldCBj b25mdXNlZCBhcyB0byBqdXN0IHdoYXQgdGhpcyBtb2R1bGUgaXMgYWRkaW5nLiAgVGhlIEFic3Ry YWN0IGhhcyAnbXVsdGlwbGUgbmV4dCBob3BzJywgIFRoZSBJbnRyb2R1Y3Rpb24gaGFzIG11bHRp cGxlIHBhdGhzLCByb3V0ZSBtZXRyaWNzIGFuZCBhZG1pbmlzdHJhdGl2ZSB0YWdzLiBzLjMgdGhl biBoYXMgYXVnbWVudGF0aW9ucyBmb3Igc3RhdGljIHJvdXRlcyB0byBzdXBwb3J0IG11bHRpcGxl IG5leHQtaG9wIGFuZCBtb3JlIG5leHQtaG9wLiB3aGljaCBpcyB0aGVuIGNvbnRyYWRpY3RlZCBi eSAzLjEgYW5kIDMuMiAgc28gd2hhdCBpcyB0aGUgcG9pbnQgb2YgdGhpcyBJLUQ/ICBJIHNob3Vs ZCBiZSBjbGVhciBiZWZvcmUgSSBzdGFydCB0byBsb29rIGF0IHRoZSBkZXRhaWxzIG9mIHRoZSBZ QU5HIG1vZHVsZSBhbmQgSSBhbSBub3QuCgpTbywgTm90IFJlYWR5IElNSE8uCgpUb20gUGV0Y2gK CgoKVGhhbmtzLApZaW5nemhlbgoKT24gRnJpLCBBcHIgMjMsIDIwMjEgYXQgMTA6MTAgQU0gQWNl ZSBMaW5kZW0gKGFjZWUpIDxhY2VlQGNpc2NvLmNvbTxtYWlsdG86YWNlZUBjaXNjby5jb20+PiB3 cm90ZToKSGkgTWFydGluLApTZWUgaW5saW5lIGJlbG93LgoK77u/T24gNC8yMy8yMSwgMzoxOSBB TSwgIk1hcnRpbiBCasO2cmtsdW5kIiA8bWJqK2lldGZANDY2OC5zZTxtYWlsdG86bWJqJTJCaWV0 ZkA0NjY4LnNlPj4gd3JvdGU6CgogICAgSGksCgogICAgVGhhbmsgeW91IGZvciBhZGRyZXNzaW5n IG15IGNvbW1lbnRzLiAgUHJ1bmluZyB0byB0aGUgb25lIHJlbWFpbmluZwogICAgcXVlc3Rpb24u CgoKICAgIFlpbmd6aGVuIFF1IDx5aW5nemhlbi5pZXRmQGdtYWlsLmNvbTxtYWlsdG86eWluZ3po ZW4uaWV0ZkBnbWFpbC5jb20+PiB3cm90ZToKICAgID4gSGkgTWFydGluLAogICAgPgogICAgPiBU aGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3LCBhbmQgd2UndmUgcHVibGlzaGVkIHZlcnNpb24gLTA3 IHRvIGFkZHJlc3MgeW91cgogICAgPiBjb21tZW50cy4KICAgID4KICAgID4gUGxlYXNlIHNlZSBt eSBhbnN3ZXJzIGJlbG93IGlubGluZS4KICAgID4KICAgID4gVGhhbmtzLAogICAgPiBZaW5nemhl bgogICAgPgogICAgPiBPbiBXZWQsIEFwciAxNCwgMjAyMSBhdCA0OjUxIEFNIE1hcnRpbiBCasO2 cmtsdW5kIHZpYSBEYXRhdHJhY2tlciA8CiAgICA+IG5vcmVwbHlAaWV0Zi5vcmc8bWFpbHRvOm5v cmVwbHlAaWV0Zi5vcmc+PiB3cm90ZToKICAgID4KICAgID4gPiBSZXZpZXdlcjogTWFydGluIEJq w7Zya2x1bmQKICAgID4gPiBSZXZpZXcgcmVzdWx0OiBSZWFkeSB3aXRoIE5pdHMKICAgID4gPgog ICAgPiA+IEhlcmUgaXMgbXkgWUFORyBkb2N0b3JzIHJldmlldyBvZiBkcmFmdC1pZXRmLXJ0Z3dn LXlhbmctcmliLWV4dGVuZC0wNi4KICAgID4gPiBUaGlzIGlzIGEgd2VsbC13cml0dGVuIGRyYWZ0 LCBhbmQgbXkgY29tbWVudHMgYXJlIG1pbm9yLgoKICAgIFsuLi5dCgogICAgPiA+IG8gIG1vZHVs ZSBkZXNjcmlwdGlvbgogICAgPiA+CiAgICA+ID4gICAgICBUaGlzIFlBTkcgbW9kdWxlIGV4dGVu ZHMgdGhlIGdlbmVyaWMgZGF0YSBtb2RlbCBmb3IKICAgID4gPiAgICAgIFJJQiBieSBhdWdtZW50 aW5nIHRoZSBpZXRmLXJvdXRpbmcgbW9kZWwuICBJdCBpcwogICAgPiA+ICAgICAgaW50ZW5kZWQg dGhhdCB0aGUgbW9kdWxlIHdpbGwgYmUgZXh0ZW5kZWQgYnkgdmVuZG9ycwogICAgPiA+ICAgICAg dG8gZGVmaW5lIHZlbmRvci1zcGVjaWZpYyBSSUIgcGFyYW1ldGVycy4KICAgID4gPgogICAgPiA+ ICAgSSBkb24ndCB0aGluayBJIHVuZGVyc3RhbmQgdGhpcyBkZXNjcmlwdGlvbi4gIEhlcmUncyBt eSB1bmRlcnN0YW5kaW5nLAogICAgPiA+ICAgYnV0IEkgZG9uJ3QgdGhpbmsgaXQgaXMgY29ycmVj dDoKICAgID4gPgogICAgPiA+ICAgICAxLiBUaGlzIG1vZHVsZSBleHRlbmRzIHRoZSBleGlzdGlu ZyBSSUIgZGF0YSBtb2RlbCBieSB1c2luZwogICAgPiA+ICAgICAgICBhdWdtZW50YXRpb25zLgog ICAgPiA+ICAgICAyLiBUaGUgZXhpc3RpbmcgUklCIGRhdGEgbW9kZWwgaXMgZGVmaW5lZCBpbiB0 aGUgWUFORyBtb2R1bGUKICAgID4gPiAgICAgICAgaWV0Zi1yb3V0aW5nLgogICAgPiA+ICAgICAz LiBUaGUgcHVycG9zZSBvZiB0aGlzIG5ldyBtb2R1bGUgaXMgdG8gYWxsb3cgdmVuZG9ycyB0byBl eHRlbmQgdGhlCiAgICA+ID4gICAgICAgIHRoZSBleGlzdGluZyBSSUIgZGF0YSBtb2RlbCB3aXRo IHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXJzLgogICAgPiA+CiAgICA+ID4gICBJdCBzZWVtcyAz IGlzIGF0IGxlYXN0IGluY29tcGxldGUsIHNpbmNlIHRoaXMgbW9kdWxlIGRlZmluZXMgc29tZQog ICAgPiA+ICAgYWRkaXRpb25hbCBjb25maWcgcGFyYW0gZm9yIHN0YXRpYyByb3V0ZXMsIGFuZCBh ZGR0aW9uYWwgc3RhdGUgYW5kCiAgICA+ID4gICBzdGF0aXN0aWNzIGZvciByaWJzLgogICAgPiA+ CiAgICA+ID4gICBJdCBpcyBub3QgY2xlYXIgaG93IHZlbmRvcnMgYXJlIGV4cGVjdGVkIHRvIGV4 dGVuZCB0aGlzIG1vZGVsOyB0aGUKICAgID4gPiAgIHdvcmQgInZlbmRvciIgZG9lc24ndCBzaG93 IHVwIGFueXdoZXJlIGVsc2UuCiAgICA+ID4KICAgID4gPiBbWWluZ3poZW5dOiBUaGlzIG1vZHVs ZSBkb2VzIGRlZmluZSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgYW5kIGlzCiAgICA+IGF1Z21lbnRp bmcgdGhlIGV4aXN0aW5nIFJJQiBtb2RlbC4gVGhlIG1vZHVsZSBjYW4gYmUgZnVydGhlciBhdWdt ZW50ZWQuIEFueQogICAgPiBzdWdnZXN0aW9ucyBmb3IgYSByZXBsYWNlbWVudCBvZiAidmVuZG9y LXNwZWNpZmljIj8KCiAgICBBbGwgbW9kZWxzIGNhbiBiZSBhdWdtZW50ZWQgc28gSSBkb24ndCB0 aGluayB0aGlzIG5lZWRzIHRvIGJlIHNwZWxsZWQKICAgIG91dC4gIFdoZW4gaXQgaXMgc3BlbGxl ZCBvdXQgbGlrZSB0aGlzIEkgZXhwZWN0IHNvbWUgZGlzY3Vzc2lvbiBhYm91dAogICAgaG93IGl0 IGRpZmZlciBmcm9tIHRoZSAibm9ybWFsIiBhdWdtZW50IHRoYXQgYWx3YXlzIGNhbiBiZSBkb25l LgoKICAgIFNvbWUgbW9kdWxlcyBkZWZpbmUgc29tZSBnZW5lcmljIGNvbW1vbiBzdHJ1Y3R1cmUs IGJ1dCBhcmUgbm90CiAgICB2ZXJ5IHVzZWZ1bCB1bmxlc3MgdGhleSBhcmUgYXVnbWVudGVkOyB0 aGV5IG5lZWQgdG8gZGVmaW5lIGhvdyB2ZW5kb3JzCiAgICAob3Igc2Rvcykgc2hvdWxkIGV4dGVu ZCB0aGUgbW9kdWxlLiAgSG93ZXZlciwgSSB0aGluayB0aGF0IHRoaXMgbW9kdWxlCiAgICBpcyB1 c2VmdWwgb24gaXRzIG93biwgYW5kIHRodXMgSSB3b3VsZCByZW1vdmUgdGhlIHNlbnRlbmNlICJJ dCBpcwogICAgaW50ZW5kZWQgLi4uIi4KCkknbSBub3Qgc3VyZSB0aGUgc291cmNlIG9mIHRoaXMg dGV4dCBidXQgaXQgaGFzIGJlZW4gYWxtb3N0IGJvaWxlciBwbGF0ZSBmb3IgcHJvdG9jb2wgWUFO RyBtb2RlbHMuIEhhdmluZyBzYWlkIHRoYXQsIEkgZG9uJ3QgaGF2ZSBhbnkgcHJvYmxlbSByZW1v dmluZyBpdC4KClRoYW5rcywKQWNlZQoKCiAgICAvbWFydGluCgo= From nobody Tue Apr 27 13:19:35 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5EC983A1EDA for ; Tue, 27 Apr 2021 13:19:33 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -11.918 X-Spam-Level: X-Spam-Status: No, score=-11.918 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_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_NONE=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=C5g9ULWc; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=mepLrGeR 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 67vzYRTMp7_j for ; Tue, 27 Apr 2021 13:19:28 -0700 (PDT) Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A8C153A1ECE for ; Tue, 27 Apr 2021 13:19:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=765; q=dns/txt; s=iport; t=1619554768; x=1620764368; h=from:to:subject:date:message-id: content-transfer-encoding:mime-version; bh=Q5xatn9YQhL0ieTKQ7xx1jACae4wbO5Omeji3wuLAJU=; b=C5g9ULWc0r63Rk5F4aM97ZAdv8JDP1NmymKT54/Vq7mHNPy/H6mg5MGU npSKTg3HMCtQbt4Mhbc5kF1ajSoJJiQgxZi9QwNR0QIXCbzd3nPKt0Q2e iWT9A+XXkpLAEZW6ybvq7HTG8CgZG7P2P8ZQbG3wpeiO/nA6xBvz6hEUt U=; X-IPAS-Result: =?us-ascii?q?A0AFCADOcIhgmIMNJK1aHAEBATwBAQQEAQECAQEHAQEVg?= =?us-ascii?q?VcCgVEpKIFYNjELiAADhTmiN4EugSUDVAsBAQENAQEFLQIEAQGBFgGDOQKBe?= =?us-ascii?q?wIlNAkOAgQBAQEDAgMBAQEBAQUBAQECAQYEFAEBAQEBAQEBaIVQAQyHBQYBA?= =?us-ascii?q?TgRAT5CDxcBBBuCaYJWAy8BA55mAoofeIE0gQGCBAEBBgQEhRwYghMJgToBg?= =?us-ascii?q?niGZ4QeHIFJQoETQ4IxAYUvg0uCK4YXAQGRdAKpawqDEASdMRClEolphViFa?= =?us-ascii?q?KNSAgICAgQFAg4BAQaBVDgtgS5wFYMkUBcCDo44gQsBCIJDil1zOAIGCgEBA?= =?us-ascii?q?wl8iwMBgQ8BAQ?= IronPort-PHdr: A9a23:EurOZBDggRFqrX4KWW4TUyQVnhdPi93PFgcI9poqja5Pea2//pPke VbS/uhpkEShdYTW9/wCjPDZ4OjsWm0FtJCGtn1KMJlBTAQMhshemQs8SNWEBkv2IL+PDWQ6E c1OWUUj8yS9Nk5YS8fze1OUpWe9vnYeHxzlPl9zIeL4UofZk8Ww0bW0/JveKwVFjTawe/V8N hKz+A7QrcIRx4BlL/VZ9w== IronPort-HdrOrdr: A9a23:g0bZEa2GvCyYS3dlYLWTWQqjBep2eYIsi2QD101hICF9Wvez0+ izgfUW0gL1gj4NWHcm3euNIrWEXGm0z/9IyKErF/OHUBP9sGWlaLtj44zr3iH6F0TFmNJ1/Z xLN5JzANiYNzdHpO7x6gWgDpIEyN6I7KiniY7lvg1QZCttbLxt6Bo8Lw6dHFF/SgUuP+tFKL O34M1bqz28PUkNZsOgCXUfG8TFrdvHlJXpCCR2SyIPwg+IkD+u9frGAwGVty1uHg9n7JUD1S z+kwL/7ri+qP3T8H/h/kLa8pg+oqqY9vJtH8qJ4/JlTwnEriaNSMBfV6aZvDYzydvfp2oCtN XXuR8vM4BSxhrqDxqIiCDg0QXhzzoigkWKoTTz7BeTwr2aeBsBF8FDiYhFGyGpjHYIgdBm3K pHm0KfupZHZCmw5RjV2tnSWxlm0nezuHop+NRj6UB3bI12Us40kaUvuGduVLsQFiPz744qVM N0CtvH2fpQeVSGK1jEo2hG2rWXLzoONybDZnJHlt2e0jBQknw85VAf3tYjknAJ8494Y4VY5t 7DLr9jmNh1P44rRJM4IN1Ebdq8C2TLTx6JGnmVO07bGKYOPG+IjJLr/rMv5qWPdIYTxJU/3L TNOWko9VIaSgbLM4mjzZdL+hfCTCGWRjL20PxT4JB/p/nyX7zuPSqfSE0/kseprvkFa/erGc qbCdZzObvOPGHuEYFG00nVQJ9JM0QTV8UTp5I6Vju104f2A7yvktaeXOfYJbLrHzphcHj4GG E/UD/6I9gF6kiqX3T/kQXAQn+FQD26wbtAVIzhu8QDwokEMYNB9iIPj06i282NITpe9qosfE V/J7vjmrihpXa/+HvJ62kBAGsfMm9lpJHbF19arw4DNE35NZwZvc+ERGxU1HybYgNkQ9jOCw 5ZrVRv8aexJ5idrBpSTO6PAya/tT8+tXiKR5ATlum//s/jYIo/FYtjcrd2Dx/3Gxt8nhtKpG 9PZBQffFLWEirjhMye/dopLdCaU+M5oQ+wZeZItHrUtCyn1L0Sb0peewTrbOm6rkIFQSFOil h47qkF6YDw5gqHGC8Ym+Q3MFpFdWKNJqlJZT71Pbl8q/TMZBx6S3uMiHi8jRw+E1CarHk6ty jGMTCef+3NDx5mnk1glozu8F9yawymDhpNQ3hnrIxwEnnHsH5v0emNIrG+yXeVd0Fq+JBiDB jVJTQVOQ9g3NaxyVqcnyuDD2wvwtE0MvXaF6lLScCa5lq9bImJn7oBBfla4dJsM83vqPYCVY ukCnmoBSK9D+MiwAqOoHk5fCFytXk/iPvtnBno9nKx0nJ6Af3cJj1dNvgmCsDZ62jvXPCT1p plydozoOurK230Lsec1ru/VU83FjrD5WqtC+04o5Fduqw/8LN1ApnASDPNkHVKxg83Isv4nF 4XKZ4Lq4zpK8tqZYgfaihZ9l0mmJCUIEwnvhf/D+U+cVsu5kWrSO+h8v7Ns/4iE0eBrAz/NR 2D6CVb5e7CRDbG2rgACa48SF4mInQU+TBn5qeFeILRAgnxKL0G81q+L3OncLhSDKKCAq4dqx 5m49eO2++bHhCIqzz4rH9+OOZJ9W3iXMa5RASLEuRM+8ahOVuNjrCxifTD+AvfWH++cQAAmY ZBdUYMdcxNhTkpkZ0v3kGJO9zKi1Ngl0Eb/CpumVHs0JW3+WvXHUlJNgvCn5VdNAMjQESgnI DC6uiX1HP0/ThD193CDS5rD6BzJ+Q= X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="5.82,255,1613433600"; d="scan'208";a="685333317" Received: from alln-core-1.cisco.com ([173.36.13.131]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 27 Apr 2021 20:19:27 +0000 Received: from mail.cisco.com (xbe-rcd-006.cisco.com [173.37.102.21]) by alln-core-1.cisco.com (8.15.2/8.15.2) with ESMTPS id 13RKJRMT000556 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=OK) for ; Tue, 27 Apr 2021 20:19:27 GMT Received: from xhs-rtp-002.cisco.com (64.101.210.229) by xbe-rcd-006.cisco.com (173.37.102.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.3; Tue, 27 Apr 2021 15:19:27 -0500 Received: from xfe-aln-001.cisco.com (173.37.135.121) by xhs-rtp-002.cisco.com (64.101.210.229) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 27 Apr 2021 16:19:25 -0400 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (173.37.151.57) by xfe-aln-001.cisco.com (173.37.135.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3 via Frontend Transport; Tue, 27 Apr 2021 15:19:25 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fxH4zFwMdjX8Wg9+Evp2/mmgXL4ZKyExNztfa+KwwKi7g5SZryx44G2rX5WJOiNk/eWf+vRiHb2OoO2AYZtJsCCGADa/kNt3GL8+c9dNbrzECapdvrDb4NsGLDJ47ds5TpYa/1G2wzVP3z/qdbLJfZZPMmIshNd/ItLbLHHZKgjwPMVIC53wPLJYUclQ+goaFuGkLTUVIbu2IwCU5AhYQT/+BulkffxfbYxGw3Bk3xZfMUPtA6BcNAE2yra0yYcAooA1L71KfHu9HYhab2OG/olyDVn57MXyRIDaNufHFmYw2/QLovnYgr0JM+fayUs9fObqzEq/0Zr7jZkS7q9L6A== 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=Q5xatn9YQhL0ieTKQ7xx1jACae4wbO5Omeji3wuLAJU=; b=ikl0RUh8ZHFTIpL08Nx2T5tuWfc9N85I0ICpJpePqUjcO3iE/V/k0SHqoEks34t+dC8W4kCK0Vi0LBm00ByUPyPCS6dgd3CETaT2NTI8IxfLfQu2n761IT7C9LtTAXK6MInUCrvvRwd8pTMHtUNL3PrVIm4NbLWMDNARzBhLCaPOmKc5P+Q8hz/AqNNIKi7NPiMqO582OGcpLrR8J0G1NGMux6L6xZIp75Gk9DWZHvn355xidtXtxAIRdWhDzZocCKDa90llKyguwoqGwMzA9o8vP1umgMto+vPi391mYCfOhfUFbwi0z0CBg9OXrk5c3B0YIMSt3tz58GL7h7+diA== 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=Q5xatn9YQhL0ieTKQ7xx1jACae4wbO5Omeji3wuLAJU=; b=mepLrGeR8hdgJBnh71Tv20eDJ0b2A+6CmEE4Pwub5gItITxwohUKP00zOMC8OsGYUlUlZkGCT1BKcTjLgvCvFUmZyj8EmQc3kwV2Pjs+MZvJ84qFGNhXfsk0Y/RkFf7zI/pMN6z7fA9rNATwCDa5cxS5zb+gGesvr25kWZysfNQ= Received: from MN2PR11MB4366.namprd11.prod.outlook.com (2603:10b6:208:190::17) by BL1PR11MB5432.namprd11.prod.outlook.com (2603:10b6:208:319::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20; Tue, 27 Apr 2021 20:19:24 +0000 Received: from MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::217d:4810:6cea:ef72]) by MN2PR11MB4366.namprd11.prod.outlook.com ([fe80::217d:4810:6cea:ef72%6]) with mapi id 15.20.4065.027; Tue, 27 Apr 2021 20:19:24 +0000 From: "Rob Wilton (rwilton)" To: "yang-doctors@ietf.org" Thread-Topic: Thank you Thread-Index: Adc7oY2qsHjY2Wd+SQOSptQAaYOmmg== Date: Tue, 27 Apr 2021 20:19:24 +0000 Message-ID: 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=cisco.com; x-originating-ip: [82.12.233.180] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 90d6039a-2cb1-4743-f38d-08d909b9c00b x-ms-traffictypediagnostic: BL1PR11MB5432: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F1wV7qYQrs+CF4vN1uV5cNXZNAkN0QuwtxOkd03va8y0UTc1Rle1Wx9Zv23Dta52Yh7DBcgCFGSNTzCRoSs2PgIt9BkMCfBljCHDlNtILTzqTxvSgcfvrORFpgtIkGcH+4G6CICuM0yHkVpu6gGETMAs17ucH3yBgQxSgRcM5M+J1BSL/c196nmjdME/5DsgmOiJqiRaDXJ7HSf1p0j9G6Vqp9EVcrX9rh/u0I50ZBdyxjggjmh4CpeZZ15RZ6PUg9LxtHuVDGd3q33fAEXIAKVOkPPkQ+RaTwTsYNczD0wJ6B5ERYRH38N5+7LOYNQpBagn3XqtLCrnQLnJh714Orwe4Cy5nM29EV9CCoVwtPrnaeH8tXK5NC4jJpf5g77Vsj1LgiCC2LkTjQSNYMOI13eggTyBVH6Guz5eWYsOAB4nVesEkrbLrjOtABWvtbTIHGPxNI4kz+D5LjWfZ7fnWbG1HXN1EyfR1ItfUeLfK46G9wVcaLfChCTKrMsYuBW8pD++VuOe4fCQ2TyYFQHjN1vyq5q0oD1a+gBaoBqj1Dvlrzgj2rZqGfzAYtIbyI3yZjgk6hpSDcRwy9rNxTnIPw9bIjuKILD+4aMZKxFyjUo= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4366.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(346002)(396003)(366004)(39860400002)(376002)(136003)(186003)(316002)(9686003)(478600001)(52536014)(76116006)(26005)(38100700002)(86362001)(7696005)(8936002)(55016002)(6916009)(7116003)(66556008)(64756008)(66946007)(33656002)(5660300002)(66476007)(66446008)(122000001)(8676002)(4744005)(2906002)(6506007)(3480700007)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?90O1atRwG76hg9acA2W2EQO8hSxdirjTxonaiRw6yk2JaQ6RhEvdFAcSXLjY?= =?us-ascii?Q?nUID1NT6/MXkMYJudbS2+gBDAmiw7j6IdjlvgBV8NXlvW3Lw5nnVj3/MEKtz?= =?us-ascii?Q?POKa+ma5LFH4k45rG1UZof3uBDyyMHzAXhHOwKyOIwUFrptfzq4dT+nA1vR0?= =?us-ascii?Q?2PmOrGB3Z4PTi29cVw5h3W5Vtfh1wk/MmewmCVXKsM/x4SHNWLwQaDbcxNXo?= =?us-ascii?Q?/Sa1cGyhK1Axq/17cRNY9C3bEo+XeORt2E+MPyZPbQL9YFvFlKVpMNjLZWGF?= =?us-ascii?Q?mgLqsoNg/ZgL8QWKj0Mvi0uSpMee0SGIjwKlH/mqRSA7tx8HNluQI0nd9C1b?= =?us-ascii?Q?KICYTWAO8cy7PIEo4Djc0tAYwuCm9WaE6oz+YkKHraJJvMCQypMOhfrCJtcZ?= =?us-ascii?Q?Xq7EmrKeer6/vpnqdHgEWLP8VBSaGyGlD2nGVO/MweB6Xese9wu44SiOwFuB?= =?us-ascii?Q?Ypg6MwZXbE8rcE60bdkT8o0jWW8Y9ouD0muZ5wkz8LOKokMqLufibJpw5a90?= =?us-ascii?Q?E5Gve12VyA+r5BbQUe1Ef6EGtddiYmfoakyXqQRzBqj32g5Z7PZtMhQkrJOL?= =?us-ascii?Q?/IBtnNSALOKjqu7UEco1cTRk3K9wz3aTtHjCqp1NfdS2uIyhKAcGym3jbU2z?= =?us-ascii?Q?SSZlW3CuFtxR++fh+k2MqNbUNSomZPaBHRxVGOciYtUDhLAQiKGnGNLBE+AE?= =?us-ascii?Q?z2cn5i10PMgFNM4w1VXPpED0CUC6H/A2h20NmEI/A4t5RswW+ya8l9v1rmfm?= =?us-ascii?Q?3xpJfDqB+61BqmyShMQ6Dtb2+elufNr81/rw1lr0xBgEitwCxFh9SA0mGuTg?= =?us-ascii?Q?NYDi9B515kALWLj9OUMut9DwAQj+9wImq2zLhJYamyy53NCE4n7NiXQFNbdg?= =?us-ascii?Q?MU3YzjAI/uhdvtgRw/lCNVtgrdLJunleRuQ5wM5wO7Oy5eudfsESAAx2VTje?= =?us-ascii?Q?bhGY4KgZzJQBytN/z98DsjGA75xYXt5a0yiz1yHAxC5jGMYYzt1X7TyH7Oq6?= =?us-ascii?Q?XUFiZyJkoBx/QnOa7gsxP4ODGUNOUD6IHb3aEzc+trVbTcb1xhfqlalepWhB?= =?us-ascii?Q?+QLwOGfZas0kUtTdoIoz87464417/bZJ9Mj7+76//y3abGIvllNaFf6KfXrE?= =?us-ascii?Q?BHKFUZbHn+QQFBmnRy1PEZ55f2r0ipPZ0UuX/bkhGUjj2wuZtvz5NHNInDwV?= =?us-ascii?Q?qC5Yzxh2eP3ZBoYcBY+i/zOxA/9L1jp6QRd0SbTwVub0uTCtwbXPN8t3N4J5?= =?us-ascii?Q?JQOI9FEfYIVgPaluD/MKWimQ9ziA0sdOW1ltzOivV/3dUPruoRn0L4u4+VCb?= =?us-ascii?Q?Gur37LgSbyOZqgcbnGxDZ9zT?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4366.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 90d6039a-2cb1-4743-f38d-08d909b9c00b X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2021 20:19:24.4434 (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: RSTPT1PJ4re5Lq5keIWdFm6J3Hwlb66iDqv6m/nImJuFAafOUsCgucmgSgBICm1yfzzd3TJ1hEKFLcxsK18/Bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5432 X-OriginatorOrg: cisco.com X-Outbound-SMTP-Client: 173.37.102.21, xbe-rcd-006.cisco.com X-Outbound-Node: alln-core-1.cisco.com Archived-At: Subject: [yang-doctors] Thank you X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Apr 2021 20:19:33 -0000 Hi, Just a quick note to say a big thank you for all for the YANG reviews that = you do. Directorate reviews were discussed by the IESG today, and the statistics fo= r the different directorates/teams was reviewed, and YANG Doctors came up a= s a shining example of a very successful review team, both of the usefulnes= s and helpfulness of the review feedback and also that the reviewers are di= ligent in getting the reviews done. Hence, I would like to thank you all for the time and effort that you put i= n to improving the quality of the YANG modules that are published by the IE= TF. I'm hoping that we will be able to meet up again in person in the autumn, s= o that I will get the chance to thank you in person ...=20 Regards, Rob From nobody Thu Apr 29 07:47:27 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9DFD43A0AD0; Thu, 29 Apr 2021 07:47:15 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.455 X-Spam-Level: X-Spam-Status: No, score=-1.455 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, FREEMAIL_FROM=0.001, HK_NAME_FM_MR_MRS=0.631, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_FREEMAIL_DOC_PDF=0.01, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 zbx3kaHGJNMh; Thu, 29 Apr 2021 07:47:10 -0700 (PDT) Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) (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 65E823A0AD1; Thu, 29 Apr 2021 07:47:09 -0700 (PDT) Received: by mail-lf1-x135.google.com with SMTP id 2so12540069lft.4; Thu, 29 Apr 2021 07:47:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=G3rX0Lt797b+g03qcDecLL6CYHnQZ4J8KRxVL+BKIDw=; b=PSGsVjc+QuY8zKeRX2P7ValF/A4b7dZpXfnU7oDx+VSA9QORCQWgMpVnfLT/+UiEpj FBAIIQ4Ih5XEXSbyxRmPztyc4Tnl2/X13sVVPabGeQMtn3FUU1Ppnb1vzdX4pViovy9Y DYOk/ryNrASMGRlzFQvQria4dMkkH7eUtpwNmEYoyPmWGGo3HpEGT2rg6/AkbE3iNQSW /hG7l2sLQqPJyNjjWvL82KP2M+53SINmMmGoJanzVNL+WzrIiQ6e+OKJvc20BxQDMGQO iVQSgtewP1iKQmpFTCwYhBJzUSOKXwQl39IhBc27leupbAOlYPu5bGkVsn2xSy2Kb8tV 8XBg== 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=G3rX0Lt797b+g03qcDecLL6CYHnQZ4J8KRxVL+BKIDw=; b=Z7qQY/CDY/O1RaX17Bi5OgU3FUCuNolNhv+ZfCWzLb6I0zfscYBrbSmZ4tIi7X1Gtw x3FQIHqiVn5p9jgouKAV3/6o7RPalgKH1eyzYzsetQbTlvrotvXPsCq/hr88+PL/s66q VvSiwQRpN4EhMctmLnc4wUb9nByYA4ZZ5eyOR9WErv/G3mBZVDHF4o05QqE4Mgionjgg C+8sT1xDk1aoZn4ux2m+Uc6EPvefkOkX4vAS2rpRU39IrdxBKRidUHIAE2rC4olsDHOL NkVBSk7/fCcRL/EkM8mmf5ze/C/fA9S02z7a+e01UX3vkE+ULCAi2xpBbbTV/mc3Kd/Q Ci0Q== X-Gm-Message-State: AOAM531oqNJNKU41xHXHsAi5wOvih1+wcM3MWMaJQvJ/rDDpmRMer8po NC5ltvw+RA0+3VS2Zu8CfQk05Bo2urX1dsZpucI6O781Vh4= X-Google-Smtp-Source: ABdhPJxzJAAocOyt51D7wL1r+rEodIHpsYbSSKmTUSy3gC0EAy1UGpCrqrhore6QvFHllQodeC/Rqht2wSHrIPnXAk8= X-Received: by 2002:ac2:499b:: with SMTP id f27mr25453222lfl.287.1619707626248; Thu, 29 Apr 2021 07:47:06 -0700 (PDT) MIME-Version: 1.0 References: <161652444666.30886.1452719047245335791@ietfa.amsl.com> In-Reply-To: From: "Mr. Jaehoon Paul Jeong" Date: Thu, 29 Apr 2021 23:46:29 +0900 Message-ID: To: Andy Bierman Cc: Linda Dunbar , Yoav Nir , YANG Doctors , "i2nsf@ietf.org" , draft-ietf-i2nsf-nsf-monitoring-data-model.all@ietf.org, Last Call , skku-iotlab-members , Patrick Lingga , "Mr. Jaehoon Paul Jeong" Content-Type: multipart/mixed; boundary="000000000000b3f56405c11d916f" Archived-At: Subject: Re: [yang-doctors] Yangdoctors last call review of draft-ietf-i2nsf-nsf-monitoring-data-model-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2021 14:47:17 -0000 --000000000000b3f56405c11d916f Content-Type: multipart/alternative; boundary="000000000000b3f56105c11d916d" --000000000000b3f56105c11d916d Content-Type: text/plain; charset="UTF-8" Hi Andy, Patrick and I have addressed the description on the dampening period in the following revision. https://datatracker.ietf.org/doc/html/draft-ietf-i2nsf-nsf-monitoring-data-model-08 I attach our revision letter. Thanks. Best Regards, Paul On Fri, Apr 9, 2021 at 2:08 AM Andy Bierman wrote: > Hi, > > I reviewed your note, the diffs and the YANG module. > I think draft-07 is ready (no issues or nits) > > There are probably some clarifications needed to adapt YANG Push dampening > to I2NSF. YP refers to the data nodes changing within the dampening period. > In this case, the notes to implementers should be clear about any events > sent at the end > of the dampening period because events were suppressed (if any). There > might be a different > procedure for each event or sub-event. > > > Andy > > > On Wed, Mar 31, 2021 at 7:09 PM Mr. Jaehoon Paul Jeong < > jaehoon.paul@gmail.com> wrote: > >> Hi Andy, Linda, and Yoav, >> Patrick and I have addressed all the comments from Andy. >> Here is the revised draft -07: >> https://tools.ietf.org/html/draft-ietf-i2nsf-nsf-monitoring-data-model-07 >> >> I attach a revision letter to explain how we addressed the comments. >> >> There are the major updates in this revision as follows: >> --- >> o This version is revised according to the comments of Andy Bierman >> who is a YANG doctor. >> >> o This version updates its title as "I2NSF NSF Monitoring Interface >> YANG Data Model". It clarifies the NSF Monitoring Interface to >> deliver NSF monitoring data to an NSF data collector (e.g., >> Security Controller and NSF data analyzer). >> >> o This version adds an attack destination IP address for DDoS-attack >> event to provide an NSF data collector with more information about >> the >> destination of DDoS-attack packets. >> >> o This version supports a notification for monitoring traffic flows >> to detect the source and destination (as a victim) of security >> attacks >> such as DDoS attack. >> --- >> If you have questions and comments, please let me know. >> >> Thanks. >> >> Best Regards, >> Paul >> >> >> On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker < >> noreply@ietf.org> wrote: >> >>> Reviewer: Andy Bierman >>> Review result: Ready with Issues >>> >>> >>> Status: Ready with Issues >>> >>> Most of the issues raised in the review of draft-04 have been >>> addressed. >>> >>> Major Issues: >>> >>> - None >>> >>> Moderate Issues: >>> >>> 1) too many YANG features >>> >>> There are 13 YANG features, one for each of the 13 notification-stmts >>> defined. There should be as few YANG features defined as possible. >>> They should only be used if it is an unreasonable burden (compared >>> to the feature value) for all servers to support the functionality. >>> >>> 2) list /i2nsf-monitoring-configuration/system-alarm >>> >>> This is yet another alarm management system created in the IETF. >>> I guess the WG decided that RFC 8632 was not suitable. >>> >>> It is not clear how this system prevents excessive notifications >>> sent to a client. >>> >>> What happens when the CPU, memory, or disk usage crosses back and >>> forth over the threshold? Seems like an alarm is generated for each >>> upward crossing of the threshold leaf. >>> >>> The precise behavior for triggering and then re-arming an alarm >>> needs to be specified in the YANG module. >>> >>> RMON Alarms (RFC 2819) defines one way to prevent bursts of >>> SNMP notifications, using an alarm reset threshold. >>> >>> YANG Push (RFC 8641) uses a dampening-period approach to prevent >>> flooding the receiver with notifications. >>> >>> Also, it is not clear what use-case is served by "threshold = 0". >>> The range is 0..100 instead of 1..100. >>> >>> >>> Minor Issues: >>> >>> 3) too many notifications >>> >>> This module creates a lot of notifications to manage, and they are >>> all optional to implement. This increases complexity in both >>> the client implementation and operations. >>> >>> If you really need all 13 notifications then OK, but >>> 13 notification events is a lot for one YANG module, >>> especially if this set will get even larger over time. >>> >>> Here is one way to reduce the number of event definitions. >>> The example below has 1 event and 13 sub-event types, but it could >>> also apply to N event types each with some sub-event types. >>> >>> This design template adds one more layer in the notification message, >>> but it is probably easier for the client and operator to manage. >>> The deployment may require filters and access control rules that become >>> more complex for a large number of notifications. >>> >>> >>> notification i2nsf-event { >>> description >>> "Wrapper for all I2NSF events"; >>> >>> choice sub-event-type { >>> description >>> "This choice must be augmented with cases for each allowed >>> sub-event. Only 1 sub-event will be instantiated in each >>> i2nsf-event message. Each case is expected to define one >>> container with all the sub-event fields."; >>> >>> // could put sub-events inline >>> case i2nsf-system-detection-alarm { >>> if-feature "i2nsf-system-detection-alarm"; >>> container i2nsf-system-detection-alarm { >>> // contents of i2nsf-system-detection-alarm data >>> } >>> } >>> >>> } >>> } >>> >>> >>> // could add sub-events via augments at any time >>> augment "/i2nsf-event/sub-event-type" { >>> case i2nsf-system-detection-event { >>> if-feature "i2nsf-system-detection-event"; >>> container i2nsf-system-detection-event { >>> // contents of i2nsf-system-detection-event data >>> } >>> } >>> } >>> >>> >>> Nits: >>> >>> 4) underscore vs. hyphen >>> >>> There are many field names in sec. 7 that are incorrect >>> because they use an underscore instead of a hyphen char >>> (e.g. req_cookies but leaf name is req-cookies) >>> >>> 5) verbose SNMP-style names >>> >>> The term -configuration in the object names is unusual. >>> Repeating the parent name (like SMIv2) is not usually done in YANG. >>> (e.g., i2nsf-system-detection-event-configuration) >>> >>> 6) identifiers should use well-known abbreviations or spell >>> out the word if not too long. E.g "ave" -> "average" >>> >>> 7) Is there a reason some identities are ALL-CAPS and others >>> are all-lower-case? This should be explained in the YANG module. >>> >>> >>> >>> >>> >>> >>> --000000000000b3f56105c11d916d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Andy,
Patrick and I have addressed the description = on the dampening period in the following revision.

I attach our revision lett= er.

Thanks.

Best Regards,=
Paul


On Fri, Apr 9, 2021 at 2:08 AM Andy Bie= rman <andy@yumaworks.com> w= rote:
Hi,

I reviewed your note, the diffs and the YAN= G module.
I think draft-07 is ready (no issues or nits)

There are probably some clarifications needed to adapt YANG= Push dampening
to I2NSF. YP refers to the data nodes changing wi= thin the dampening period.
In this case, the notes to implementer= s should be clear about any events sent at the end
of the dampeni= ng=C2=A0period because events were suppressed (if any). There might be a di= fferent
procedure for each event or sub-event.


Andy


On Wed, Mar 31, 2021 at 7:09= PM Mr. Jaehoon Paul Jeong <jaehoon.paul@gmail.com> wrote:
Hi Andy, Linda, and = Yoav,
Patrick and I have addressed all the comments from Andy.
Here is the revised draft -07:

I attach a revision letter to explain how we a= ddressed the comments.

There are the major updates= in this revision as follows:
---
=C2=A0 =C2=A0o =C2=A0This ve= rsion is revised according to the comments of Andy Bierman
=C2=A0 =C2=A0= =C2=A0 who is a YANG doctor.

=C2=A0 =C2=A0o =C2=A0This version upda= tes its title as "I2NSF NSF Monitoring Interface
=C2=A0 =C2=A0 =C2= =A0 YANG Data Model".=C2=A0 It clarifies the NSF Monitoring Interface = to
=C2=A0 =C2=A0 =C2=A0 deliver NSF monitoring data to an NSF data colle= ctor (e.g.,
=C2=A0 =C2=A0 =C2=A0 Security Controller and NSF data analyz= er).

=C2=A0 =C2=A0o =C2=A0This version adds an attack destination IP= address for DDoS-attack
=C2=A0 =C2=A0 =C2=A0 event to provide=20 an NSF data collector with more information about the
=C2=A0 =C2=A0 =C2=A0 destination of DDo= S-attack packets.

=C2=A0 =C2=A0o =C2=A0This version supports a notif= ication for monitoring traffic flows
=C2=A0 =C2=A0 =C2=A0to detec= t the source and destination (as a victim) of security attacks
= =C2=A0 =C2=A0 =C2=A0such as DDoS attack.
---
If you have q= uestions and comments, please let me know.

Thanks.=

Best Regards,
Paul

=

= On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker <noreply@ietf.org> wrote:=
Reviewer: Andy = Bierman
Review result: Ready with Issues


Status: Ready with Issues

Most of the issues raised in the review of draft-04 have been
addressed.

Major Issues:

=C2=A0- None

Moderate Issues:

1) too many YANG features

There are 13 YANG features, one for each of the 13 notification-stmts
defined.=C2=A0 There should be as few YANG features defined as possible. They should only be used if it is an unreasonable burden (compared
to the feature value) for all servers to support the functionality.

2) list /i2nsf-monitoring-configuration/system-alarm

This is yet another alarm management system created in the IETF.
I guess the WG decided that RFC 8632 was not suitable.

It is not clear how this system prevents excessive notifications
sent to a client.

What happens when the CPU, memory, or disk usage crosses back and
forth over the threshold? Seems like an alarm is generated for each
upward crossing of the threshold leaf.

The precise behavior for triggering and then re-arming an alarm
needs to be specified in the YANG module.

RMON Alarms (RFC 2819) defines one way to prevent bursts of
SNMP notifications, using an alarm reset threshold.

YANG Push (RFC 8641) uses a dampening-period approach to prevent
flooding the receiver with notifications.

Also, it is not clear what use-case is served by "threshold =3D 0"= ;.
The range is 0..100 instead of 1..100.


Minor Issues:

3) too many notifications

This module creates a lot of notifications to manage, and they are
all optional to implement. This increases complexity in both
the client implementation and operations.

If you really need all 13 notifications then OK, but
13 notification events is a lot for one YANG module,
especially if this set will get even larger over time.

Here is one way to reduce the number of event definitions.
The example below has 1 event and 13 sub-event types, but it could
also apply to N event types each with some sub-event types.

This design template adds one more layer in the notification message,
but it is probably easier for the client and operator to manage.
The deployment may require filters and access control rules that become
more complex for a large number of notifications.


=C2=A0 =C2=A0 notification i2nsf-event {
=C2=A0 =C2=A0 =C2=A0 description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 "Wrapper for all I2NSF events";

=C2=A0 =C2=A0 =C2=A0 choice sub-event-type {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 description
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "This choice must be augmented with= cases for each allowed
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sub-event.=C2=A0 Only 1 sub-event = will be instantiated in each
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0i2nsf-event message. Each case is = expected to define one
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container with all the sub-event f= ields.";

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// could put sub-events inline
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0case i2nsf-system-detection-alarm {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature "i2nsf-system-dete= ction-alarm";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container i2nsf-system-detection-a= larm {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// contents of i2nsf-system= -detection-alarm data
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}

=C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0}


=C2=A0 =C2=A0 =C2=A0// could add sub-events via augments at any time
=C2=A0 =C2=A0 =C2=A0augment "/i2nsf-event/sub-event-type" {
=C2=A0 =C2=A0 =C2=A0 =C2=A0case i2nsf-system-detection-event {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature "i2nsf-system-detection-e= vent";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0container i2nsf-system-detection-event {<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// contents of i2nsf-system-detect= ion-event data
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0}


Nits:

4) underscore vs. hyphen

There are many field names in sec. 7 that are incorrect
because they use an underscore instead of a hyphen char
(e.g. req_cookies but leaf name is req-cookies)

5) verbose SNMP-style names

The term -configuration in the object names is unusual.
Repeating the parent name (like SMIv2) is not usually done in YANG.
(e.g., i2nsf-system-detection-event-configuration)

6) identifiers should use well-known abbreviations or spell
out the word if not too long.=C2=A0 E.g "ave" -> "average= "

7) Is there a reason some identities are ALL-CAPS and others
are all-lower-case? This should be explained in the YANG module.






--000000000000b3f56105c11d916d-- --000000000000b3f56405c11d916f Content-Type: application/pdf; name="Revision-Letter-for-NSF-Monitoring-YANG-Data-Model-version-08-20210429.pdf" Content-Disposition: attachment; filename="Revision-Letter-for-NSF-Monitoring-YANG-Data-Model-version-08-20210429.pdf" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ko30156z0 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 bnRlbnRzIDMgMCBSIC9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCj4+CmVuZG9iago0IDAgb2JqCjw8 IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIC9Db2xvclNwYWNlIDw8IC9DczEgNSAwIFIgPj4gL0V4 dEdTdGF0ZSA8PCAvR3MxCjE3IDAgUiAvR3MyIDE4IDAgUiA+PiAvRm9udCA8PCAvVFQyIDcgMCBS IC9UVDQgOSAwIFIgL1RUNiAxMSAwIFIgL1RUNyAxMiAwIFIKL1RUOSAxNCAwIFIgL1RUMTEgMTYg MCBSID4+ID4+CmVuZG9iagoxNyAwIG9iago8PCAvVHlwZSAvRXh0R1N0YXRlIC9BQVBMOkFBIGZh bHNlID4+CmVuZG9iagoxOCAwIG9iago8PCAvVHlwZSAvRXh0R1N0YXRlIC9BQVBMOkFBIHRydWUg Pj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9MZW5ndGgg MjYxMiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGdlndUU9kWh8+9N73QEiIgJfQa egkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJjRRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601 896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFYFO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU /L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEy FqEJoqwi48SvbPan5iu7yZiXJuShGlnOGbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT 0/icTAAwFJlfzOcmoWyJMkUUGe6J8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrx s1P5YjErlMNN4Yh4TM/0tAyOMBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbs z55BjJ5Z32zsrC+9FgD2JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7Gxz AZ9rLivoN/ufgm/Kv4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMs nJ/AF/GF6FVR6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMk bj96An3rWxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0 gS4wAixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfA DXALDIBHQAqGwUswAd6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgYKoOq oUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvhSrgWPg63 whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHkAwaHoWGYGBbG GeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3EVmCPYFuwl7ED2GHs OxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/BifCG+Cn8cfx7fjx/GvyeQ CVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7YQbxJHCZOkxRJhiQXUiQpmbSB VElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRPShxFQtlOOUq5QHlAeUOlUg2obtRY qpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TXl3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOw VqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGStxJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAd Rzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPKUgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8 KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2qbapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6 iXq4+mr1w+o96pMamhq+GhkaVRqXNMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOL OaGtru2nLdE+pN2rPa1jqLNYZ6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ ysDQINpgi0GbwaihiqG/YZ5ho+FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRg us+0zwxr5mgmNKs1u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVht tOqw+sPaxJprXWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ73 2HR2KLuEfdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hw odRV25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+ Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHBu4If L9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uNFksWd0bJ R8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNclrPs2nK15anL z66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyRBJeEsoTRRJfEXYlj Sa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10zPSe9L8M0ozBDuspp1e5V E6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTkmuRuyx3J88n7fjVmNXd1Z752 /ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99uit7UUaBRsL5gaLPv5sZCuUJR 4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/ndzPaE7b2l9qX7d+B2CHfc3em6 81iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mPZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d 2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo91 1TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBa ilqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpX dD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz /ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpP Kp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX 0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0 x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/sKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqClsgL0lD Q0Jhc2VkIDE5IDAgUiBdCmVuZG9iagoyMSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAv TGVuZ3RoIDU1OTMgPj4Kc3RyZWFtCngBzV1bjxu5sX7vX9GjaDwztqVt9k3dDwMcJ+c4m/EESWbH m+yxkzwsckFgB9iz/x84X7FINsmiWlS3bATehUSpVSzWvYoszk/lH8qfym9+9bMqf/y5rPS/n3/E R9W+bnlMb9RQ9rXaj3X54+fyl89lW+vv8FJXgyp3ddMfiufP5TfPz3Wpyue/l7e/uCuf/1X+z7Oe IBuaqtoktM0EDbDGSo29Ao5d3bVjBWT2YzUOVTOWc8gXjHzHy8RLXXdlpw4lY34wmJfTXEScQ43/ hrLtVKm68v/+Vv6x/Hfxza9BsX/87CiH7/APk9dDt1f4RVvv+7b8XDbVuB9aO/7kxvWwH/vyk3m+ wAw8/mf5d02x1KxutmoPsHq5IEHVDQPxan9olTr0XTFHAsO/XbWvQLbnH8uJGEqpBqv0qFGAjx/K 29893pVjefvfd+Wfy+cHZukxwngoCi4VeVwyKHqI1aqXiN1GbIo54mSZKNk2xJTPYOS+HezwEw8L wysaTnwiPpz65fS0+2XxqeRfevN8Lrs6nNeNtZAYPCZoBIEfAW4GcxpDYMz4k/5ejw2IGOQEw/ym YDTOheFW5lGPpsRCDTGt5NKT9n0wu9EEtwIPY8JG/wbg7Ap8GEbM2qrS+tfUo1HAy8kZq0JLuuBZ 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 Lr8XhW4vSwDMYuJJZcR1iuFZxbC+4jFxcR1XTKHruEsuMBMCzjcIYglfQhUJ7wguMdEjSXaJTsfK CXg+D2U4ZGLluqfjIq6Ai/PbNJ5iZdVx15gp4Co7zg6I1hVwa1W51D+RZHG4k5teTNbG61zQ5tyf 5j+kgEsoRQKyIlpOQJsXDxP/MruncNmw3xZwVdXscfJsipft+KuJB3orjbd3Z/+sj0i/fqkSbq0m VMwBtlUl3AS8nBhgzibreDkBNzdeFm5Ox8sJgGsR1fFyAm5evCzQ5Hg5AW8tnhwvS8BH4uUVJVwx x6VKuDX+OFFkZmK9yfdJxsCGsZYxsKMrljkDyyXcs+JlwVt20liENQNG99ayliMtARecveCNgkT8 CG9YZXfYc0X0XOMEAveY295Sn6tncxTlPs9lcvTMU9CfYDdT6Oh5yaWCkqn6kmUxwfrwme6hqSXc 5eEzXSuYAOj7Vup6tOGX+xPKBZ1CRcsRTk2apmbXPG77k03TNl4oIOMnzXvyrvZr6uI3f2sbPHcd 0q7b2f1cd4xbaATBPaIvArDt20UAglrA7W/c8wEW9vsJf3/G4jBi45f+9jvfyTGNeA2l+97+3n1A PyCc8UGNo0u17qd3I8A7G4LDwcKb6OhmdddduE9c77tFRIOJMAvoqQlg6WnpM90QMtHAUHSayr/7 wn3qILlPfFh6LUBpguWvbvqUubAG1h/+H55auN8KZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago8 PCAvVHlwZSAvUGFnZSAvUGFyZW50IDIgMCBSIC9SZXNvdXJjZXMgMjIgMCBSIC9Db250ZW50cyAy MSAwIFIgL01lZGlhQm94ClswIDAgNTk1IDg0Ml0gPj4KZW5kb2JqCjIyIDAgb2JqCjw8IC9Qcm9j U2V0IFsgL1BERiAvVGV4dCBdIC9Db2xvclNwYWNlIDw8IC9DczEgNSAwIFIgPj4gL0V4dEdTdGF0 ZSA8PCAvR3MxCjE3IDAgUiAvR3MyIDE4IDAgUiA+PiAvRm9udCA8PCAvVFQyIDcgMCBSIC9UVDcg MTIgMCBSIC9UVDkgMTQgMCBSIC9UVDYgMTEgMCBSCj4+ID4+CmVuZG9iagoyNCAwIG9iago8PCAv RmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDc2NTkgPj4Kc3RyZWFtCngBxV35l9vGkf4dfwWG 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 bbDyu8uClWNcYpv06VFuVXZuXT+485RETEpf7zN16MiNQE9sga6ztqnOLY4DYWHCShAOrkJJdsPL J9+bLx5BwZTYaglh3kw9aQmhfGcz+cVGV0uuR/Hqd0Raw9RvhCp05JZaoaauwnKZmXvPxZOJnb6o V9Uv6sgTG+pHr6CUo2/4ES5hCWE1X/OIltCMm0isN27aBEaNDFlAGWpEAVPFuX9/U9lwIa8a4WcU VilLJn7zwl99b8lFn751ucWQuuSvPEiiF6/kuyY9JR+r2UzNXDJP7FpHmUpr7qp7CFEV7MRxyU8Q yxL4Lhnqeo3qexiWUEU5xj/0mOGuQmxkxU5WGUFUssStf+La+wdsQJxxw0m7BgSkbNGbKwHe0RAM hwAv0NH36inpn/hUeNT1CDNC6tPH0VNYIgQxeiYAexplERxfz0PyTxQlJKYjlKx396Sf4PYtbwPr 6/8Hoa0ENwplbmRzdHJlYW0KZW5kb2JqCjIzIDAgb2JqCjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQg MiAwIFIgL1Jlc291cmNlcyAyNSAwIFIgL0NvbnRlbnRzIDI0IDAgUiAvTWVkaWFCb3gKWzAgMCA1 OTUgODQyXSA+PgplbmRvYmoKMjUgMCBvYmoKPDwgL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gL0Nv bG9yU3BhY2UgPDwgL0NzMSA1IDAgUiA+PiAvRXh0R1N0YXRlIDw8IC9HczEKMTcgMCBSIC9HczIg MTggMCBSID4+IC9Gb250IDw8IC9UVDIgNyAwIFIgL1RUOSAxNCAwIFIgL1RUNyAxMiAwIFIgL1RU NCA5IDAgUgovVFQ2IDExIDAgUiA+PiA+PgplbmRvYmoKMjcgMCBvYmoKPDwgL0ZpbHRlciAvRmxh dGVEZWNvZGUgL0xlbmd0aCA1Mjc4ID4+CnN0cmVhbQp4Ab1ce48btxH/fz/FStbp9pJKXu5bfZzr um7iu3PTAAektZW+3KRF4RRo/f2B/oZDDsnlakVJB8dAtJS4w+G8H+T9N/82/2/+/NUnlX/4lJf6 36cP+KrcVg2P6UENeVep7a7KP/yU/+Yxbyr9Gz6qclD5pqq7Pnv8KX/++FjlKn/8MS+ubvLHf+ev H/UCydBU2UxCWzpohHBf5V1X5U2r8l2b/++H/Lv8P24X22pXql2nsIm2aptdWWXldlfuhrLe5Qm7 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 hzzwVrLitUgMnSjTEuKI8xdI00Ci98qKXngLEZkwykQ696EH+YvJEYoN/a2KGMUiJcQxwCh2guyF gYTulk/A/esuwW5FWOrQdALapVi2dDwuhgsZpz9Kq1N8fIogHT0+4SKODpWDCchC14TG3yRdO8Rf I7gmkvmbxfjvv/ZQPn5ASRS+pwNKRIwnNB8IEUJoIC3MJvt0+A/t28XYWi22sVAk+FnxwRhLCaDE eCPIYQMrTkQ8jlgQRDts3xtrQQSOmCm7+D80mvBuYtTF340Qdvkz4LOmvhYk7CZP+4sJwpQBZU0w BeHWUxgk/DXvKWhgCvwsU0/2NiKII73YJdljbP6FeBIIvXsHgLzEN9aBCu/gXPknzBFtO0F0UbnU 6jaWtjS7fSBMqhp7DsnZbQkCBXVxQbG0CSlZpDh5Yfn4wTo3oaGVE6GuRD4ioiKI4v+gICzPzjOI GogrlAfhsejVjyyvWWEecglGZDfyttULQedbvKyzIpH623fvELeZQtD4R9mYRFIiELK6YGjIq9Mq lgwhh8UDU84SlQp/dh+Wfcxcscyp57hg64PUGS4QB8RiwFCuDyQJuBmog1D6BJPgu4n3NMInB5EJ +4lco2qooUbLjizEib6xjPajDyfEgGk/xJ4Ac4wyMpTYB0kDapLgFwbYqJ6IUcLmIkVUHVKVCZoG ev3t/wHu6fJICmVuZHN0cmVhbQplbmRvYmoKMjYgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVu dCAyIDAgUiAvUmVzb3VyY2VzIDI4IDAgUiAvQ29udGVudHMgMjcgMCBSIC9NZWRpYUJveApbMCAw IDU5NSA4NDJdID4+CmVuZG9iagoyOCAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgXSAv Q29sb3JTcGFjZSA8PCAvQ3MxIDUgMCBSID4+IC9FeHRHU3RhdGUgPDwgL0dzMQoxNyAwIFIgL0dz MiAxOCAwIFIgPj4gL0ZvbnQgPDwgL1RUMiA3IDAgUiAvVFQ5IDE0IDAgUiAvVFQ3IDEyIDAgUiAv VFQ2IDExIDAgUgo+PiA+PgplbmRvYmoKMiAwIG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94 IFswIDAgNTk1IDg0Ml0gL0NvdW50IDQgL0tpZHMgWyAxIDAgUiAyMCAwIFIgMjMgMCBSCjI2IDAg UiBdID4+CmVuZG9iagoyOSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K ZW5kb2JqCjcgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9u dCAvQUFBQUFDK01hbGd1bkdvdGhpYyAvRm9udERlc2NyaXB0b3IKMzAgMCBSIC9Ub1VuaWNvZGUg MzEgMCBSIC9GaXJzdENoYXIgMzMgL0xhc3RDaGFyIDM3IC9XaWR0aHMgWyA1NTEgMzUyIDU1MQo1 NTEgNTUxIF0gPj4KZW5kb2JqCjMxIDAgb2JqCjw8IC9MZW5ndGggMjQxIC9GaWx0ZXIgL0ZsYXRl RGVjb2RlID4+CnN0cmVhbQp4AV2QwWrDMAyG734KHbtDseOwmzGMjkIOa8eyPUBiK8Gw2MZxDnn7 yW7XwQ46/Pr1iV/ip+618y4Df0/B9Jhhct4mXMOWDMKIs/OskWCdyXdVe2YZIuME9/uacen8FEAp BsA/CFlz2uHwYsOIT6V3TRaT8zMcvk597fRbjN+4oM8gmNZgcaJ1b0O8DAsCr+ixs+S7vB+J+pv4 3CMCJSKiuUUyweIaB4Np8DMyJYRW57Nm6O0/q70B43SflI1WpYRoG82UlCSphJCiyJbkc3Vl3fbL lcXlAY/AZkuJstYv1TNKPOfx8cgYYolT6weY8HYhCmVuZHN0cmVhbQplbmRvYmoKMzAgMCBvYmoK PDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAvQUFBQUFDK01hbGd1bkdvdGhpYyAv RmxhZ3MgNCAvRm9udEJCb3gKWy05NzcgLTI0OCAxMTk4IDkzMV0gL0l0YWxpY0FuZ2xlIDAgL0Fz Y2VudCAxMDg4IC9EZXNjZW50IC0yNDIgL0NhcEhlaWdodAo3MTggL1N0ZW1WIDAgL1hIZWlnaHQg NTEzIC9BdmdXaWR0aCA0NjMgL01heFdpZHRoIDEyMzggL0ZvbnRGaWxlMiAzMiAwIFIgPj4KZW5k b2JqCjMyIDAgb2JqCjw8IC9MZW5ndGgxIDU2ODQgL0xlbmd0aCAzNTg5IC9GaWx0ZXIgL0ZsYXRl RGVjb2RlID4+CnN0cmVhbQp4AZ1YD3AT15n/3q4kWyDbkmUZ2wt4l8VAWUDG8j9StRaW5QCGYBuT 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 HEnNhz58WcXxxpTi0yDaLITCRBUMtTG0OCLlm/bK5QDRoKm1mAKT78bHlinLGkHGqBtfXqbMadql FpgdBfAR3D1qyWoCky1YIMvPygZNGV4mkUiKRBwCM6yB/IA94JAKJCUFr+EZJN/D/xg7ozcdrIAp KdSCjxCPssGUPaBkLQZhEYhkPd4Ikut646bwmw5CNROjo2ZxYS4HEeh2rBD0sVmcl7ha8a6SdIr9 l0ewsJLOXy7FiXkdvS5dxxdLgj4E7AUMARBYjDr7l8iBnyIl4DX8DpAgk/F5YwUvLg33WpxW77IG cBLhO8TymvVl2ORRRWCmhYrzmGy12i3kvVa8wnsNpOna8mqfS3NVaS7tdflu+qL07niD9eUver5j 2YHWP0Qz71lv4r/MlwJuO7Na6QRj+N0h2dFMHo7zTU0+b/GKFa5itsJ7y+d1+ZZX4+Bos+XV1dc3 +KT3Liy7/uTu9OqA5bfLdnherxxuFiPZSyT/0vqvNIcaArNLShzHiSrdpTZbaZFCst19rrQsz2aT z9nzqOlWjdfXdMs1awXz+rxO4TUky6tZ7QJ9nujEV4Pzry2vUPJoHq2uFp3W18sLzj//1OiaU794 +9M/G/nbb9VJ76VPBl/5u1ePWxpeeGnLhjdO/tvlC58NPHdoV9vpVQe/+5cHdv0APg1NfCr/FD5p tOXN0+BxuAosn1O1irTKsvxzdq+d2e1u6VxluTOgVa266GROV+E5d57Tqc0+brWWHnc4dK083+vz CRfxwF14/8m1p42mWxA9DaHzk2vG08urG0p9NfV1Tk2v86muWm1ebhROq6cUY7Ho8xYOfeetP387 EzvUz57NfHr++PA/8F9kPrrwduaTm/98+D8PnB9iC4+ykokdF7quns/ceFIuvHr63dvrMd/IE4tu HSMHuag2UC7LzHq80GGzuQvyLRgDKyiwFYEVsyYi6fPdqmHemlzJDKvL59Fdukurq6cGprkkWY5d vfrK+NqP2I7ujIulx35iHUvXns6cZ/Gjd6T8j9K10s8yI5mMmX6Imvi1JC4buYlWiitorIvtfGb/ 7sf39Ce2i0/t/wWYHmIBCmVuZHN0cmVhbQplbmRvYmoKOSAwIG9iago8PCAvVHlwZSAvRm9udCAv U3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9BQUFBQUUrQXJpYWwtQm9sZE1UIC9Gb250RGVz Y3JpcHRvcgozMyAwIFIgL1RvVW5pY29kZSAzNCAwIFIgL0ZpcnN0Q2hhciAzMyAvTGFzdENoYXIg ODcgL1dpZHRocyBbIDcyMiA1NTYgNTU2CjI3OCA1NTYgNjExIDYxMSAyNzggNjExIDMzMyAzODkg NjExIDg4OSA2NjcgNTU2IDYxMSAyNzggNzIyIDMzMyA2NjcgNTU2IDYxMQozMzMgNTU2IDU1NiAz MzMgMjc4IDU1NiA1NTYgNjExIDYxMSAyNzggNjY3IDcyMiA3MjIgNzc4IDMzMyA3MjIgNjExIDU1 NiA1NTYKNTU2IDU1NiA1NTYgNTU2IDI3OCA2MTEgNTU2IDc3OCA1NTYgNzIyIDI3OCAzMzMgMzMz IDYxMSBdID4+CmVuZG9iagozNCAwIG9iago8PCAvTGVuZ3RoIDU1OCAvRmlsdGVyIC9GbGF0ZURl Y29kZSA+PgpzdHJlYW0KeAFdlM1um0AURvc8xSzTReQxM5hEQkhRqkhe9Ed1+wAYBgupBoTJwm/f 812naZXFWXzcmeGeGYbN8/7zfhxWt/m+TO0hra4fxm5Jl+l1aZM7ptMwZtvcdUO7viV71p6bOdsw +XC9rOm8H/vJVVXm3OYHUy7rcnV3T910TJ/07NvSpWUYT+7u1/PBnhxe5/l3OqdxdT6ra9elnuW+ NPPX5pzcxqbe7zvqw3q9Z9a/ET+vc3J0xIztraV26tJlbtq0NOMpZZX3dfXyUmdp7D6UCn+bcezf hubbuhLeF3mdVXlOBO93hWIggvflTjESgeqjYkEEqkFxRwSqvWJJBGJSfCCC97lXfCSC97FVbIjA UlHxSASiddUSgSat2hGBlTsNTkSgaiv3RKCqrgJ7IYgPiriK3G+lEHAVtGGDcQ3mGxpVcRWsbFVc g/nutqriKlhZXQVcBYLqKuAqvOftRFwFsVTEVRCPirgK2rCucA3mu7MqrsF8S6viGsy31BkFXAVt aOWIqyBqYyOuAgXNjbgKXiQFpA2izijiKoi2FK7x5qvTj7gKqvJliEG0Kq7x5msvwhUXBrNjDMZV EHUKEVdBtLm48hkoap8jroKo06c1g421JnGN5ltqYzlzg09FKxe4CqIU+KgNlsKX+/D3w48f7gEH XAls9E6+M4N3ahcLdqEwdT5hIuqCPWbwf6vqwunH8H6R29dl4Q7b38Out67tMKb3H8w8zVrA+APv xyT8CmVuZHN0cmVhbQplbmRvYmoKMzMgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9G b250TmFtZSAvQUFBQUFFK0FyaWFsLUJvbGRNVCAvRmxhZ3MgNCAvRm9udEJCb3gKWy02MjggLTM3 NiAyMDAwIDEwNTZdIC9JdGFsaWNBbmdsZSAwIC9Bc2NlbnQgOTA1IC9EZXNjZW50IC0yMTIgL0Nh cEhlaWdodAo3MTYgL1N0ZW1WIDAgL0xlYWRpbmcgMzMgL1hIZWlnaHQgNTE5IC9BdmdXaWR0aCA0 NzkgL01heFdpZHRoIDIwMDAgL0ZvbnRGaWxlMgozNSAwIFIgPj4KZW5kb2JqCjM1IDAgb2JqCjw8 IC9MZW5ndGgxIDUyMjggL0xlbmd0aCA0MTAzIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh bQp4AX1Ye1xU1b5fv733zGACzjDMDCivcWCGAyrKMIwmoogSoPJ+k7zkpQJyUFRQ8IUCvsgS1EJB rx4NzbLyAWECnTQtbx81rSxPnopIs1KvlQF7cX5rBs37x70b1l5r77V+79/vu9aeZWXlecSGrCU8 IQuKs0uJ5eImY7epoKgi3/rMBxCisC/My861PpNB7AML8YX1GXCeeBYWL1s5/JyC/e2iJQuG57ku fC4rzl45zJ98jc8eJdnFedjj5TgLb97/97zals2XluUN0wPyF/7JKP/fC3B2MjGibbYECEfkxA97 6wU4YmPpJ5cN+37IyRwV9JuNs41l7sB3Qa5scDnmuqa/f1CUE5syXDviGVoiC6ZRJFRO+vv7K+Xk 6YyFHm+TpfiKm0II10YWYwvFcTn2S7F/RVhKkrAdwGbENg9bOrbk4RaPfQiuvYitTXKBEGxN2LKx 7RS+I7ukU0gO8tmK4734brckiTRa1iSRSHw3TpI0JCKPCBzXYp+IfcIwTyfL+Dvy8rAe9ayXuZJq fL8DWxy2LbyrhW4iynfH521IOxJljsDeFps90pSjjVb/EfStlLC4a4mZuBBP9Lc3mUjGk3G4wplM Qp+7EV8yhowlBlzhiFFwJR5ERyRERuyIgjiRv5FA4k/0xIe4EwcymmiIF1ERNRlFRhJ75P8c+l5K JhATCcBcVRIBY8mjPOulwrVmkkyWkCqymXxAvgRbmAtV0A6fcS5cMlfMbeNe5x7wOj6FL+YP8if4 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 VW5pY29kZSAzNyAwIFIgL0ZpcnN0Q2hhciAzMyAvTGFzdENoYXIgMTAyIC9XaWR0aHMgWyA2Njcg NTU2IDIyMgoyNzggNTU2IDMzMyAyNzggMjc4IDUwMCA1NTYgNTU2IDU1NiA1NTYgNjY3IDU1NiAy MjIgNTU2IDcyMiA2NjcgNTU2IDU1NiA1NTYKMjc4IDU1NiA1NTYgNzc4IDU1NiAyNzggMzMzIDUw MCA4MzMgNTU2IDcyMiA5NDQgNTU2IDYxMSA1MDAgNTAwIDY2NyAyNzggNTAwCjY2NyA3NzggNjY3 IDYxMSA4MzMgMjc4IDcyMiA1NTYgNTAwIDMzMyA1ODQgNTg0IDI3OCA3MjIgMjc4IDMzMyA1MDAg NzIyIDMzMwozMzMgNzIyIDU4NCA1NTYgNTU2IDU1NiAyMjIgMTAxNSA3MjIgMjc4IF0gPj4KZW5k b2JqCjM3IDAgb2JqCjw8IC9MZW5ndGggNjI1IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh bQp4AV2UzW6bQBRG9zzFLNNF5IFhnERCSFGqSF70R3X7ABgGC6kGhPHCb9/zXadplcWR/PnO3Jkz wGxedp9347C6zfdlavdpdf0wdks6T5elTe6QjsOY5YXrhnZ9S/Zfe2rmbMPk/fW8ptNu7CdXVZlz mx9MOa/L1d09d9MhfdJ/35YuLcN4dHe/Xvb2z/4yz7/TKY2r81lduy71tPvSzF+bU3Ibm3q/66gP 6/WeWf9G/LzOybEjZuS3LbVTl85z06alGY8pq7yvq9fXOktj96EU/W3GoX8bWuR1JbwvY51VRUEE 77elYiAC8UmxJIL3D1aNRKDaq7olAtVC8YEI3odG8ZEI3hde8YkIrGvVhgi0ylU9EIFou2qJQHxU tSMCMSkmIngfrXNPBLahuYGzEAxuFXEVxAdFXAXbkFHAVRC1jYCroJU6B1wFRhIMuAqiDifgKhC0 hXDlf1VtLnKcA7HUWQXkBNEGIxdugltVkRO06hSRE2wjKCInUFC1RE6wkIzYuEFnHU6JnOBwrIpc aYJBJ4m0QVX6vAIGnbVQiZxgXQmWyAk6S79EUBCtiis/NFgKPFWDzlbFtbz52jZwRZzB0RbCtTRf lmMuroLOJogrh0bkKWcVD9lgIbWK+Ar2rF1FXAVVCdLeKHzOOfM9/H3x8/jhQ+AAqnh7uFo04i3Y 4UERb0HUSxXxFkQbjDeaFatYxD3as97aXLxposG2Q7yZReRzoBWiAlkdRURUUNXcLbJ4EXktiegI ZPXV8I0azNU7xrdiENV5y/YFrXjl/nPXtaDr6/26aS/Lwk1jd5xdQrpchjG9X4PzNKuB8QdkykrF CmVuZHN0cmVhbQplbmRvYmoKMzYgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250 TmFtZSAvQUFBQUFHK0FyaWFsTVQgL0ZsYWdzIDQgL0ZvbnRCQm94IFstNjY1IC0zMjUgMjAwMCAx MDM5XQovSXRhbGljQW5nbGUgMCAvQXNjZW50IDkwNSAvRGVzY2VudCAtMjEyIC9DYXBIZWlnaHQg NzE2IC9TdGVtViAwIC9MZWFkaW5nCjMzIC9YSGVpZ2h0IDUxOSAvQXZnV2lkdGggNDQxIC9NYXhX aWR0aCAyMDAwIC9Gb250RmlsZTIgMzggMCBSID4+CmVuZG9iagozOCAwIG9iago8PCAvTGVuZ3Ro MSA2NDM2IC9MZW5ndGggNTE1MyAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAFdWAlA U8fWnrn3JkHcEkISXABDIEFRq4QQRBBxAasiIK6ICy7soIJSVFBBNgUXtKBWRQEXQBGFiIJYFHlq RUqttSpWbeurLbbW1m5WkuGducHW/ydM7sydmTNn/c6ZrElcuwJZoM2IRWhZfPgqxP8xa+BxNDJu XYR5zJYjJAuLWhG+3DxGRni6R8EL8xi7wdMxKn5NSs94HkJ4cNzKZT3zrA283xUfntJDH30F4yEJ 4fErzOsHcHTMPUWzuCTky1QiG77/FO1mxqA98G4rfYps0UZ4XwBtJrQ81hblwNwoWG8P4+3Q7y0c g3rBsw+0fggDVX80j8oGfwwSo/f4d/wQvui88FbbN2GiTYv7e/1hMciCnyl9qhlGO21Bd+Vvqk2R YmQRDMNe/+yFfaJxZAaaKEZvqt+sF5sp8Xt7vvyFsBh4RsBbKm3cKZQI40ro+8Kzgc4Bj7OhPYHm BW0OtIHQ6LtwaCG0D+vq6V5oqyzs0UrBnG6TYA4qElxHEdCKoV8KspeD3PEwPgrrm0CZethbJKxE ++DdQZhbBuuKoV8CzzBYP4r2RdvRABgLYU8eNA3smQotG/YHwdMP2jR4L4XnBGg5+DrKxde7S2Ee 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 YX4I+HwI+xsTCujdm9oRy1QUvfWQ6kRQOfzTx9ZXhgxbMFzvxuIP3/a4ltvHsr2ChvopFsz9twcU /dlOZobgEzNFim7wgw//c6H2nf7cK/YuC4ZDhXD/bYd7DVTGBg/1ly8O+bcHP6xi/hdn6EBVBHdj X/rn7+KbGB0eFzDrf94NbXYKZW5kc3RyZWFtCmVuZG9iagoxMiAwIG9iago8PCAvVHlwZSAvRm9u dCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9BQUFBQUgrVGltZXNOZXdSb21hblBTTVQg L0ZvbnREZXNjcmlwdG9yCjM5IDAgUiAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcgL0ZpcnN0 Q2hhciAzMiAvTGFzdENoYXIgMTIxIC9XaWR0aHMgWyAyNTAKMCAwIDAgMCAwIDAgMCAwIDAgMCAw IDAgMzMzIDI1MCAwIDAgMCA1MDAgNTAwIDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAyNzggMAowIDU2 NCA1NjQgMCAwIDcyMiAwIDY2NyA3MjIgNjExIDU1NiA3MjIgMCAzMzMgMCAwIDYxMSAwIDcyMiA3 MjIgNTU2IDAgNjY3CjU1NiAwIDcyMiAwIDk0NCAwIDcyMiAwIDMzMyAwIDMzMyAwIDAgMCA0NDQg NTAwIDQ0NCA1MDAgNDQ0IDMzMyA1MDAgNTAwIDI3OAowIDAgMjc4IDc3OCA1MDAgNTAwIDUwMCAw IDMzMyAzODkgMjc4IDUwMCA1MDAgNzIyIDUwMCA1MDAgXSA+PgplbmRvYmoKMzkgMCBvYmoKPDwg L1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAvQUFBQUFIK1RpbWVzTmV3Um9tYW5QU01U IC9GbGFncyAzMiAvRm9udEJCb3gKWy01NjggLTMwNyAyMDAwIDEwMDZdIC9JdGFsaWNBbmdsZSAw IC9Bc2NlbnQgODkxIC9EZXNjZW50IC0yMTYgL0NhcEhlaWdodAo2NjIgL1N0ZW1WIDAgL0xlYWRp bmcgNDIgL1hIZWlnaHQgNDQ3IC9BdmdXaWR0aCA0MDEgL01heFdpZHRoIDIwMDAgL0ZvbnRGaWxl Mgo0MCAwIFIgPj4KZW5kb2JqCjQwIDAgb2JqCjw8IC9MZW5ndGgxIDM4ODg0IC9MZW5ndGggMjg1 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 tdTQF7kZV9EfiZ4J/rP+Wf7g5B/U1rc7+Lvn8HzzUPyITus7EPzZcT5dfcG3SgZo9FjwvyPPBl8u HKDz+oKDJQMGNLxQMsDo0eBhTHIGfRk9FjxUsiL4dERr3RdBK0C9p740+HBkQfDBKMp9wZtLnuPD INfiieehub1kfHBG/YHg5OgARbNaj5uppmBdpCdYi+qxA3Ra/4FgeeEAH0oa1zhwLFiMO8Yi2lDm jjnBqolE16sl0jppsTRPmiWNkyqlUkmR/JJPyjU4DLIhx2AxmAwGg94gGpiBGHIHRk6rSS6u5eo1 qU0Psk2JqOVlkEaKBahJc4waGNZOxik0s+bZE2nG0Uya50zMjEk2D0gjV2TGJpszhtZvtB2m9Nvt KGXYHQOUzGkboCO86jZvxjGp7TihNHXbXV6e3nTbXe3ttDkzuIQ0L1Yyn8/Gc5hmLcjoIhNdJH9D g6vBMd5eO7nx/xB1apWdjcl//1z/ziLn8mfua57dlnnK356p4JkRf3tzZsps5cq246ybrWlqPM66 eNLedpzewLqbruD19IbG9q+6kTDrQjdSzxPerZ+EeTcSpv1atxna1YCm4abGw2FEvNOP6DTeCejz I63TCq0TcLybX6uVJ+jGAqRQu1YhC/BuwIfsxWz/eTELoTbtYjYL0S7m450OR6O4Xwmi9rbDY6Lo cDg6Rms+8O/miNZ8nLYT3uE4idJ27T5Uu0/2EolsH2DBaB9mQJ+vTeP/38Kyif8frkD7F/126ZKm ZZGmzkjTMoTOzI4NK12Z3sWKcnjpb3mDkhFinYuXrOTpomWZ30aWNWaWRhqVw4u08/5H8xLevCjS eJgsaZrTdniJuqyxb5G6qCmyqLG9//HNk5q/dq9tX91r0ub/w70284tN4vd6XDvvf9yrmTc/zu/V zO/VzO/1uPq4dq/mKybS5ta2wwYysX0SAMjTfmY2YT10ekPtE/PlrvHa4hgXcn3Le0IkYFvmZHvG EpmYsSLwdVM6oXQCb8Lq5E05qLaNNrm+NS7kPUH3jzbJqLZHJpIkcTVd3fjVf+3atet4WL8+iXjd et6IDBZtaHZzZvKsBW2Z+kx9U0btbGynHGrrR3+T2lT5hfq36tma+s31O+v31B+q161f345qxwvh t8JsYXhNeHN4Z3hP+FBYzxuubDum1u8J/yUsrAc20XX4NfFb4dZI8efFdesxmLVrCW6yFiF7u+T6 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 kmxa9IDIfiOep5TWlPg7pLT2tuzr7dvtRvteOLZuLV467VGZR51FnuLA9jLrKrfKhrJSq/8FgXsI 2INmumcwD+RFTOsBy/tiG9CDafAwBxvpcPohuPjAjIKXNTcUN4mWP2DB661/0GG9rZzZLrLioVH/ sCnObXHuzl4Vzuun/lL452TfD1Yqqd/Me622jhLrzBZku7Lwxb6nrl+yrr871SyIidWZoYXnPClF CtfAw/l4fuVCL/t9seCzO9BH3ySn3K0Ln3ro0RXlzlrIs2xi1vBMspp2SkDcAA/A/y6lhB069a/W wIoLRhh1XiGIrhQyn9U3ihmE4jD7UkIGphfN3Uvz9paFrvZsvQ2hTxgQBoGWXiZowgphpbBKWC2s Qe3TsDAirENF3phwvXCDcKMwLmwUNgmbhQnMSbxV+Bi/NiYSwaiiPwuuJwzR35rShjs/edunr7vt nht2fvLmT43dOLpBEP4vHkClLQplbmRzdHJlYW0KZW5kb2JqCjE0IDAgb2JqCjw8IC9UeXBlIC9G b250IC9TdWJ0eXBlIC9UcnVlVHlwZSAvQmFzZUZvbnQgL0FBQUFBSitDb25zb2xhcyAvRm9udERl c2NyaXB0b3IKNDEgMCBSIC9Ub1VuaWNvZGUgNDIgMCBSIC9GaXJzdENoYXIgMzMgL0xhc3RDaGFy IDEwMyAvV2lkdGhzIFsgNTUwIDU1MCA1NTAKNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1 MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwCjU1MCA1NTAgNTUw IDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAg NTUwIDU1MAo1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1 NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAKNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1 MCA1NTAgNTUwIDU1MCBdID4+CmVuZG9iago0MiAwIG9iago8PCAvTGVuZ3RoIDY0OSAvRmlsdGVy IC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAFdlMtu2zAQRff6Ci7TRWBaIuUYEAQEKQJ40Qfq9gNk iTIE1LIgywv/fc8dp2mRxTVwNcPhnCHN1cvu824cFrf6Pp/bfVpcP4zdnC7n69wmd0jHYczWueuG dnlz9q09NVO2YvH+dlnSaTf2Z1dVmXOrHyy5LPPNPTx350P6pG/f5i7Nw3h0D79e9vZlf52m3+mU xsX5rK5dl3rKfWmmr80puZUtfdx1xIfl9siqfxk/b1NydMSK9b2l9tyly9S0aW7GY8oq7+vq9bXO 0th9CEV/X3Ho31LzdV1J3m/yOqvyHIu8L6NsgUVES9mARUS3shGLiBayJRYR7WU3WIRNsk9Y5H3u ZbdYhLV9GyzyvjB7wLZmLbnDIpI7rU1YRLLt22MRbRyIFsBL7BtkgZOwSqa8iWRVpoAJa8nAFQYY BFgAJ7F2LQuchG1lgZNow/YFrjDAUrMqgJO8jyIqgJO8DxYFkFWy1hWshfHGJyXDKlG5kYVVIlmT LGCVqKy1AVaJqIYTYJVociMLr0SyiNjNRLKIAqwS1pJhDcbLR6KwSoxdB0qKiWTdjQCrRFRdMTAT k7RSsAbjLUUUYJWI2lpYg/GW1jOsNE+01KygNJFsUViD8XI0WRVhlRiOiCKsEl3pUBi2iahZeJmS 9qUN/g9/L/56++GPEBlDNHYmTx24JeZmm8Ie72ctOk7JxC7CYbQmrGAj3BKT0cWIcEv0YA3DHY19 oyOIcEtsZKVgj3bWUTPnx0RUOCXcElZtcCtNzE33hOGZ2FdtcN9N7GtRAPlHqCu1wf/bhLXKsHJv iXLDicIqMVVO5L+56UnR0/f+VLXXeeaVsvfRHjA9TMOY3p/Q6TypgOkPZN1XKwplbmRzdHJlYW0K ZW5kb2JqCjQxIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5hbWUgL0FBQUFB SitDb25zb2xhcyAvRmxhZ3MgNSAvRm9udEJCb3ggWy00MzIgLTMwMiA2NzcgMTAxMV0KL0l0YWxp Y0FuZ2xlIDAgL0FzY2VudCA3NDMgL0Rlc2NlbnQgLTI1NyAvQ2FwSGVpZ2h0IDYzOCAvU3RlbVYg MCAvTGVhZGluZwoxNzEgL1hIZWlnaHQgNDkwIC9BdmdXaWR0aCA1NTAgL01heFdpZHRoIDU1MCAv Rm9udEZpbGUyIDQzIDAgUiA+PgplbmRvYmoKNDMgMCBvYmoKPDwgL0xlbmd0aDEgNzE4OCAvTGVu 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 7YbtxnJ8BcGH3Ghh8gdky3SEksknKyqlZXlrS1NlK7z+f6EYLBsKZW5kc3RyZWFtCmVuZG9iagox NiAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9BQUFB QUwrQ29uc29sYXMtQm9sZCAvRm9udERlc2NyaXB0b3IKNDQgMCBSIC9Ub1VuaWNvZGUgNDUgMCBS IC9GaXJzdENoYXIgMzMgL0xhc3RDaGFyIDMzIC9XaWR0aHMgWyA1NTAgXSA+PgplbmRvYmoKNDUg MCBvYmoKPDwgL0xlbmd0aCAyMjMgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBXZDB bsMgEETvfMUek0ME9hkhVaki+dA2qpMPwLC2kGpAa3zw3xeIk0o97IGZeTAsP3fvnXcJ+JWC6THB 6LwlXMJKBmHAyXnWtGCdSfupambWkfEM99uScO78GEBKBsC/M7Ik2uDwZsOAx6J9kUVyfoLD/dxX pV9j/MEZfQLBlAKLY77uQ8dPPSPwip46m32XtlOm/hK3LSLkRploHpVMsLhEbZC0n5BJIZS8XBRD b/9ZOzCMe7JtlCwjRCtq/ukUtHzxVcmsRLlN3UMtWgo4j69VxRDLg3V+AW40cBIKZW5kc3RyZWFt CmVuZG9iago0NCAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL0ZvbnROYW1lIC9BQUFB QUwrQ29uc29sYXMtQm9sZCAvRmxhZ3MgNSAvRm9udEJCb3gKWy00NzYgLTI5NiA3MDAgOTY5XSAv SXRhbGljQW5nbGUgMCAvQXNjZW50IDc0MyAvRGVzY2VudCAtMjU3IC9DYXBIZWlnaHQgNjM4Ci9T dGVtViAwIC9MZWFkaW5nIDE3MSAvWEhlaWdodCA0OTYgL0F2Z1dpZHRoIDU1MCAvTWF4V2lkdGgg NTUwIC9Gb250RmlsZTIKNDYgMCBSID4+CmVuZG9iago0NiAwIG9iago8PCAvTGVuZ3RoMSA1OTIg L0xlbmd0aCA0NjUgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBVVFNSxtRFD3zMpNE CJonMqgxozaSRIoRY0YNFT8SKLVIMBSCimgHTYztxBGNothFF3XjHxDcKe0P6LoUuhB37urORenH rtC6KBRNxPsmo+Ad7jtz7rnvcO9MeX0zDy/ewgUslow12CG9JGhdNncKDn9HeFzMG0s1jgrhQJEK jp4g7CqWytsOnyb0mtbinf6GuLtkbDv+uCDesWqU8rV+FiWkTDYCT34CoydA6hnw9Bvw3A9MngKZ Y+CFCeS+AjNjwJwPmB+mqelqPgcsXwGvycPaB8pdwNZ3SCQx6JAJxZsfvXbNpnQIXcn+/vtxr3eh Yfgf6ry28ulHgHyAs6nzQqWveqQcer5Qr5ccakH3lMvqpTQvk36TVQ4fuIoeJheQoRQhOaoPbtDM 6LyvAFl6QPNl6GhRAvQXPOgAfU2Jd3I7m+pZyBNy9ccH9ESMhUJ6f1xjLlF9FGN6YoQJLrdUdFey mmOzkYmVcfe+b3ciFRw10snB9Q8r8f9ci6hqVONci6pqRONK4OqXErh+JfPrP+zz4Fw6vCexVKx9 qLv5oG+qWH2vhoN+fzBMzW2ct0XEFmKPRmcTN5qAcRGTj9PW6oZlGhs9KctcAm4Bxe9h5QplbmRz dHJlYW0KZW5kb2JqCjQ3IDAgb2JqCjw8IC9UaXRsZSAoUmV2aXNpb24tTGV0dGVyLWZvci1OU0Yt TW9uaXRvcmluZy1ZQU5HLURhdGEtTW9kZWwtdmVyc2lvbi0wOC0yMDIxMDQyOSkKL1Byb2R1Y2Vy ICj+/1wwMDBtXDAwMGFcMDAwY1wwMDBPXDAwMFNcMDAwILyEyFwwMDRcMDAwIFwwMDAxXDAwMDBc MDAwLlwwMDAxXDAwMDZcMDAwXCi+TLTcXDAwMCBcMDAwMlwwMDAwXDAwMERcMDAwOFwwMDAwXDAw MFwpXDAwMCBcMDAwUVwwMDB1XDAwMGFcMDAwclwwMDB0XDAwMHpcMDAwIFwwMDBQXDAwMERcMDAw RlwwMDBDXDAwMG9cMDAwblwwMDB0XDAwMGVcMDAweFwwMDB0KQovQXV0aG9yIChKYWVob29uIFBh dWwgSmVvbmcpIC9DcmVhdG9yIChXb3JkKSAvQ3JlYXRpb25EYXRlIChEOjIwMjEwNDI5MTQ0NTAw WjAwJzAwJykKL01vZERhdGUgKEQ6MjAyMTA0MjkxNDQ1MDBaMDAnMDAnKSA+PgplbmRvYmoKeHJl ZgowIDQ4CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwNzIzOSAwMDAwMCBuIAowMDAwMDMwMDA2 IDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwNzM0MyAwMDAwMCBuIAowMDAwMDEw MzYxIDAwMDAwIG4gCjAwMDAwMDAwMDAgMDAwMDAgbiAKMDAwMDAzMDE2MCAwMDAwMCBuIAowMDAw MDAwMDAwIDAwMDAwIG4gCjAwMDAwMzQ1NzUgMDAwMDAgbiAKMDAwMDAwMDAwMCAwMDAwMCBuIAow MDAwMDQwMDMzIDAwMDAwIG4gCjAwMDAwNDY2NjEgMDAwMDAgbiAKMDAwMDAwMDAwMCAwMDAwMCBu IAowMDAwMDc2MDc1IDAwMDAwIG4gCjAwMDAwMDAwMDAgMDAwMDAgbiAKMDAwMDA4MzA0OCAwMDAw MCBuIAowMDAwMDA3NTQxIDAwMDAwIG4gCjAwMDAwMDc1OTUgMDAwMDAgbiAKMDAwMDAwNzY0OCAw MDAwMCBuIAowMDAwMDE2MDY0IDAwMDAwIG4gCjAwMDAwMTAzOTcgMDAwMDAgbiAKMDAwMDAxNjE3 MSAwMDAwMCBuIAowMDAwMDI0MDc5IDAwMDAwIG4gCjAwMDAwMTYzNDYgMDAwMDAgbiAKMDAwMDAy NDE4NiAwMDAwMCBuIAowMDAwMDI5NzI0IDAwMDAwIG4gCjAwMDAwMjQzNzIgMDAwMDAgbiAKMDAw MDAyOTgzMSAwMDAwMCBuIAowMDAwMDMwMTEwIDAwMDAwIG4gCjAwMDAwMzA2NTcgMDAwMDAgbiAK MDAwMDAzMDM0MyAwMDAwMCBuIAowMDAwMDMwODk4IDAwMDAwIG4gCjAwMDAwMzU1ODkgMDAwMDAg biAKMDAwMDAzNDk1OCAwMDAwMCBuIAowMDAwMDM1ODQyIDAwMDAwIG4gCjAwMDAwNDExNzIgMDAw MDAgbiAKMDAwMDA0MDQ3NCAwMDAwMCBuIAowMDAwMDQxNDIwIDAwMDAwIG4gCjAwMDAwNDcxMjcg MDAwMDAgbiAKMDAwMDA0NzM4NiAwMDAwMCBuIAowMDAwMDc3MjQyIDAwMDAwIG4gCjAwMDAwNzY1 MjAgMDAwMDAgbiAKMDAwMDA3NzQ5MCAwMDAwMCBuIAowMDAwMDgzNTEzIDAwMDAwIG4gCjAwMDAw ODMyMTcgMDAwMDAgbiAKMDAwMDA4Mzc2NSAwMDAwMCBuIAowMDAwMDg0MzE2IDAwMDAwIG4gCnRy YWlsZXIKPDwgL1NpemUgNDggL1Jvb3QgMjkgMCBSIC9JbmZvIDQ3IDAgUiAvSUQgWyA8Mjk3ZTE4 MGFjN2Y5YWFiYmMzYTBjMDRlOTgwNzQ3M2Y+CjwyOTdlMTgwYWM3ZjlhYWJiYzNhMGMwNGU5ODA3 NDczZj4gXSA+PgpzdGFydHhyZWYKODQ3NTYKJSVFT0YK --000000000000b3f56405c11d916f-- From nobody Thu Apr 29 07:50:35 2021 Return-Path: X-Original-To: yang-doctors@ietfa.amsl.com Delivered-To: yang-doctors@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5441D3A0B16; Thu, 29 Apr 2021 07:50:26 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.455 X-Spam-Level: X-Spam-Status: No, score=-1.455 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, FREEMAIL_FROM=0.001, HK_NAME_FM_MR_MRS=0.631, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_FREEMAIL_DOC_PDF=0.01, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 la92jblXas5w; Thu, 29 Apr 2021 07:50:22 -0700 (PDT) Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) (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 0C9123A0B0E; Thu, 29 Apr 2021 07:50:20 -0700 (PDT) Received: by mail-lf1-x134.google.com with SMTP id h36so51128140lfv.7; Thu, 29 Apr 2021 07:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=zbD1vF7tAq+KauhJTAGolcADvEZZnOlypG5Ut0qobHw=; b=c1NVsfcM7+YV2DMTyeDxnm0wG1FNxZoma7h26ZQPE0TvTWwiRHTlr83sTZmy9U/JGy dak3V1QOtFUGFXyH6qKIjNHzd0L18oLLnRxia6OZ3EkPfME5noiy0KkRyogPciAIiVkX mHcuZxNGXRZ8fRqahPWwBEU2eBPtvSaT/U3qzynZhxDFyYjuSVGIessWrtsOcJ5aOApX aNs8I8Z51lCDWeDag8xRGexwgHe5EVcXvdJmrBR7LMuMr8j31peV8i/A6BvfMuVBOjU0 wwnDcw6HLHSN58HwVOr2W8/L4X+Cz4rU+l2M9f7z2mUz6z0sx1CjNKPLZfgNNuy10XHB 6DFQ== 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=zbD1vF7tAq+KauhJTAGolcADvEZZnOlypG5Ut0qobHw=; b=r1Mlvgivf9LbSRnJ90MwlqWl4FQpZ+0gQMAN+D8qaojVo6VNsz1BwP9KPcsDviCVQb 6WSg6nBguPahvgH4L/q9xaT+dKIXsmamlft2pBOpXPHRQ9kPSB0T7fMn/CU7VWwCrPuv bqxy1Uq/N0uKIfo7ZTxgpdShXtHDJUYlmXEqTnr7Bwfgv6TR2oqP4rCqux0eMIscHriO /cHq9PUB2iwJvVLjSopqdrB+saTc21JUUOYs1QmaTEdMYc5ckC7y+UkGgISzwqzse077 eRN1FNf309fspiV9BYMrb3JLQY/jSpW+iUbU0ad+t5j17JE8vw/1oZ1d07lPfz+S35ET zKvQ== X-Gm-Message-State: AOAM531N+9i5y2ygdVd4f3E0GgrpEl/F0fZanpUbWZuziPHjSO2wC7zz UPQflpt3cEYQHTXaptv3Xok8CXkbOw7Sx9xCDHo= X-Google-Smtp-Source: ABdhPJyjr2o8OeSCvmwu7VWEosHpKoqpUNnml9/Fyu9ElpzBdQafQ3QS4fOS0yw5in1htTgfMilIZp42hbk+qui7Vts= X-Received: by 2002:ac2:5a08:: with SMTP id q8mr24862610lfn.12.1619707818233; Thu, 29 Apr 2021 07:50:18 -0700 (PDT) MIME-Version: 1.0 References: <161652444666.30886.1452719047245335791@ietfa.amsl.com> <607419E2.6080803@btconnect.com> In-Reply-To: <607419E2.6080803@btconnect.com> From: "Mr. Jaehoon Paul Jeong" Date: Thu, 29 Apr 2021 23:49:41 +0900 Message-ID: To: tom petch Cc: Andy Bierman , Linda Dunbar , Yoav Nir , draft-ietf-i2nsf-nsf-monitoring-data-model.all@ietf.org, "i2nsf@ietf.org" , Last Call , YANG Doctors , skku-iotlab-members , Patrick Lingga , "Mr. Jaehoon Paul Jeong" Content-Type: multipart/mixed; boundary="00000000000025644205c11d9d60" Archived-At: Subject: Re: [yang-doctors] [Last-Call] Yangdoctors last call review of draft-ietf-i2nsf-nsf-monitoring-data-model-06 X-BeenThere: yang-doctors@ietf.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Email list of the yang-doctors directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2021 14:50:27 -0000 --00000000000025644205c11d9d60 Content-Type: multipart/alternative; boundary="00000000000025644105c11d9d5e" --00000000000025644105c11d9d5e Content-Type: text/plain; charset="UTF-8" Hi Tom, Patrick and I have addressed all your comments below with the following revision. https://datatracker.ietf.org/doc/html/draft-ietf-i2nsf-nsf-monitoring-data-model-08 I attach our revision letter. Thanks. Best Regards, Paul On Mon, Apr 12, 2021 at 6:59 PM tom petch wrote: > Paul > > Some admin comments on -07; I think that you need to: > > - change the title in YANG revision reference > > - add to the I-D references > RFC959 > RFC8632 > > - shorten lines. There is a limit to line length in RFC as per the Style > Guide. This is exceeded in the YANG where some of the path statements > take it over 80 while some of the examples are over 100. > > - add a reference for the import of > ietf-i2nsf-policy-rule-for-nsf > > HTH > > Tom Petcb > > On 01/04/2021 03:09, Mr. Jaehoon Paul Jeong wrote: > > Hi Andy, Linda, and Yoav, > > Patrick and I have addressed all the comments from Andy. > > Here is the revised draft -07: > > > https://tools.ietf.org/html/draft-ietf-i2nsf-nsf-monitoring-data-model-07 > > > > I attach a revision letter to explain how we addressed the comments. > > > > There are the major updates in this revision as follows: > > --- > > o This version is revised according to the comments of Andy Bierman > > who is a YANG doctor. > > > > o This version updates its title as "I2NSF NSF Monitoring Interface > > YANG Data Model". It clarifies the NSF Monitoring Interface to > > deliver NSF monitoring data to an NSF data collector (e.g., > > Security Controller and NSF data analyzer). > > > > o This version adds an attack destination IP address for DDoS-attack > > event to provide an NSF data collector with more information > about the > > destination of DDoS-attack packets. > > > > o This version supports a notification for monitoring traffic flows > > to detect the source and destination (as a victim) of security > attacks > > such as DDoS attack. > > --- > > If you have questions and comments, please let me know. > > > > Thanks. > > > > Best Regards, > > Paul > > > > > > On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker < > > noreply@ietf.org> wrote: > --00000000000025644105c11d9d5e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Tom,
Patrick and I have addre= ssed all your comments below with the following revision.

I= attach our revision letter.

Thanks.
Best Regards,
Paul

On Mon, Apr 12, 2021 at= 6:59 PM tom petch <daedulus@b= tconnect.com> wrote:
Paul

Some admin comments on -07; I think that you need to:

- change the title in YANG revision reference

- add to the I-D references
RFC959
RFC8632

- shorten lines. There is a limit to line length in RFC as per the Style Guide.=C2=A0 This is exceeded in the YANG where some of the path statements=
take it over 80 while some of the examples are over 100.

- add a reference for the import of
ietf-i2nsf-policy-rule-for-nsf

HTH

Tom Petcb

On 01/04/2021 03:09, Mr. Jaehoon Paul Jeong wrote:
> Hi Andy, Linda, and Yoav,
> Patrick and I have addressed all the comments from Andy.
> Here is the revised draft -07:
> https://tools.ietf.org= /html/draft-ietf-i2nsf-nsf-monitoring-data-model-07
>
> I attach a revision letter to explain how we addressed the comments. >
> There are the major updates in this revision as follows:
> ---
>=C2=A0 =C2=A0 =C2=A0o=C2=A0 This version is revised according to the co= mments of Andy Bierman
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 who is a YANG doctor.
>
>=C2=A0 =C2=A0 =C2=A0o=C2=A0 This version updates its title as "I2N= SF NSF Monitoring Interface
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 YANG Data Model".=C2=A0 It clarifies t= he NSF Monitoring Interface to
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 deliver NSF monitoring data to an NSF data = collector (e.g.,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 Security Controller and NSF data analyzer).=
>
>=C2=A0 =C2=A0 =C2=A0o=C2=A0 This version adds an attack destination IP = address for DDoS-attack
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 event to provide an NSF data collector with= more information about the
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 destination of DDoS-attack packets.
>
>=C2=A0 =C2=A0 =C2=A0o=C2=A0 This version supports a notification for mo= nitoring traffic flows
>=C2=A0 =C2=A0 =C2=A0 =C2=A0to detect the source and destination (as a v= ictim) of security attacks
>=C2=A0 =C2=A0 =C2=A0 =C2=A0such as DDoS attack.
> ---
> If you have questions and comments, please let me know.
>
> Thanks.
>
> Best Regards,
> Paul
>
>
> On Wed, Mar 24, 2021 at 3:34 AM Andy Bierman via Datatracker <
> noreply@ietf.org= > wrote:
--00000000000025644105c11d9d5e-- --00000000000025644205c11d9d60 Content-Type: application/pdf; name="Revision-Letter-for-NSF-Monitoring-YANG-Data-Model-version-08-20210429.pdf" Content-Disposition: attachment; filename="Revision-Letter-for-NSF-Monitoring-YANG-Data-Model-version-08-20210429.pdf" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ko306tch0 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 bnRlbnRzIDMgMCBSIC9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCj4+CmVuZG9iago0IDAgb2JqCjw8 IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdIC9Db2xvclNwYWNlIDw8IC9DczEgNSAwIFIgPj4gL0V4 dEdTdGF0ZSA8PCAvR3MxCjE3IDAgUiAvR3MyIDE4IDAgUiA+PiAvRm9udCA8PCAvVFQyIDcgMCBS IC9UVDQgOSAwIFIgL1RUNiAxMSAwIFIgL1RUNyAxMiAwIFIKL1RUOSAxNCAwIFIgL1RUMTEgMTYg MCBSID4+ID4+CmVuZG9iagoxNyAwIG9iago8PCAvVHlwZSAvRXh0R1N0YXRlIC9BQVBMOkFBIGZh bHNlID4+CmVuZG9iagoxOCAwIG9iago8PCAvVHlwZSAvRXh0R1N0YXRlIC9BQVBMOkFBIHRydWUg Pj4KZW5kb2JqCjE5IDAgb2JqCjw8IC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9MZW5ndGgg MjYxMiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGdlndUU9kWh8+9N73QEiIgJfQa egkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJjRRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601 896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFYFO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU /L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEy FqEJoqwi48SvbPan5iu7yZiXJuShGlnOGbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT 0/icTAAwFJlfzOcmoWyJMkUUGe6J8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrx s1P5YjErlMNN4Yh4TM/0tAyOMBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbs z55BjJ5Z32zsrC+9FgD2JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7Gxz AZ9rLivoN/ufgm/Kv4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMs nJ/AF/GF6FVR6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMk bj96An3rWxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0 gS4wAixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfA DXALDIBHQAqGwUswAd6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgYKoOq oUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvhSrgWPg63 whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHkAwaHoWGYGBbG GeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3EVmCPYFuwl7ED2GHs OxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/BifCG+Cn8cfx7fjx/GvyeQ CVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7YQbxJHCZOkxRJhiQXUiQpmbSB VElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRPShxFQtlOOUq5QHlAeUOlUg2obtRY qpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TXl3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOw VqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGStxJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAd Rzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPKUgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8 KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2qbapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6 iXq4+mr1w+o96pMamhq+GhkaVRqXNMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOL OaGtru2nLdE+pN2rPa1jqLNYZ6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ ysDQINpgi0GbwaihiqG/YZ5ho+FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRg us+0zwxr5mgmNKs1u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVht tOqw+sPaxJprXWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ73 2HR2KLuEfdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hw odRV25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+ Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHBu4If L9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uNFksWd0bJ R8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNclrPs2nK15anL z66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyRBJeEsoTRRJfEXYlj Sa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10zPSe9L8M0ozBDuspp1e5V E6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTkmuRuyx3J88n7fjVmNXd1Z752 /ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99uit7UUaBRsL5gaLPv5sZCuUJR 4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/ndzPaE7b2l9qX7d+B2CHfc3em6 81iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mPZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d 2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo91 1TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBa ilqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpX dD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz /ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpP Kp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX 0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0 x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/sKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqClsgL0lD Q0Jhc2VkIDE5IDAgUiBdCmVuZG9iagoyMSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAv TGVuZ3RoIDU1OTMgPj4Kc3RyZWFtCngBzV1bjxu5sX7vX9GjaDwztqVt9k3dDwMcJ+c4m/EESWbH m+yxkzwsckFgB9iz/x84X7FINsmiWlS3bATehUSpVSzWvYoszk/lH8qfym9+9bMqf/y5rPS/n3/E R9W+bnlMb9RQ9rXaj3X54+fyl89lW+vv8FJXgyp3ddMfiufP5TfPz3Wpyue/l7e/uCuf/1X+z7Oe IBuaqtoktM0EDbDGSo29Ao5d3bVjBWT2YzUOVTOWc8gXjHzHy8RLXXdlpw4lY34wmJfTXEScQ43/ hrLtVKm68v/+Vv6x/Hfxza9BsX/87CiH7/APk9dDt1f4RVvv+7b8XDbVuB9aO/7kxvWwH/vyk3m+ wAw8/mf5d02x1KxutmoPsHq5IEHVDQPxan9olTr0XTFHAsO/XbWvQLbnH8uJGEqpBqv0qFGAjx/K 29893pVjefvfd+Wfy+cHZukxwngoCi4VeVwyKHqI1aqXiN1GbIo54mSZKNk2xJTPYOS+HezwEw8L wysaTnwiPpz65fS0+2XxqeRfevN8Lrs6nNeNtZAYPCZoBIEfAW4GcxpDYMz4k/5ejw2IGOQEw/ym YDTOheFW5lGPpsRCDTGt5NKT9n0wu9EEtwIPY8JG/wbg7Ap8GEbM2qrS+tfUo1HAy8kZq0JLuuBZ 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 Lr8XhW4vSwDMYuJJZcR1iuFZxbC+4jFxcR1XTKHruEsuMBMCzjcIYglfQhUJ7wguMdEjSXaJTsfK CXg+D2U4ZGLluqfjIq6Ai/PbNJ5iZdVx15gp4Co7zg6I1hVwa1W51D+RZHG4k5teTNbG61zQ5tyf 5j+kgEsoRQKyIlpOQJsXDxP/MruncNmw3xZwVdXscfJsipft+KuJB3orjbd3Z/+sj0i/fqkSbq0m VMwBtlUl3AS8nBhgzibreDkBNzdeFm5Ox8sJgGsR1fFyAm5evCzQ5Hg5AW8tnhwvS8BH4uUVJVwx x6VKuDX+OFFkZmK9yfdJxsCGsZYxsKMrljkDyyXcs+JlwVt20liENQNG99ayliMtARecveCNgkT8 CG9YZXfYc0X0XOMEAveY295Sn6tncxTlPs9lcvTMU9CfYDdT6Oh5yaWCkqn6kmUxwfrwme6hqSXc 5eEzXSuYAOj7Vup6tOGX+xPKBZ1CRcsRTk2apmbXPG77k03TNl4oIOMnzXvyrvZr6uI3f2sbPHcd 0q7b2f1cd4xbaATBPaIvArDt20UAglrA7W/c8wEW9vsJf3/G4jBi45f+9jvfyTGNeA2l+97+3n1A PyCc8UGNo0u17qd3I8A7G4LDwcKb6OhmdddduE9c77tFRIOJMAvoqQlg6WnpM90QMtHAUHSayr/7 wn3qILlPfFh6LUBpguWvbvqUubAG1h/+H55auN8KZW5kc3RyZWFtCmVuZG9iagoyMCAwIG9iago8 PCAvVHlwZSAvUGFnZSAvUGFyZW50IDIgMCBSIC9SZXNvdXJjZXMgMjIgMCBSIC9Db250ZW50cyAy MSAwIFIgL01lZGlhQm94ClswIDAgNTk1IDg0Ml0gPj4KZW5kb2JqCjIyIDAgb2JqCjw8IC9Qcm9j U2V0IFsgL1BERiAvVGV4dCBdIC9Db2xvclNwYWNlIDw8IC9DczEgNSAwIFIgPj4gL0V4dEdTdGF0 ZSA8PCAvR3MxCjE3IDAgUiAvR3MyIDE4IDAgUiA+PiAvRm9udCA8PCAvVFQyIDcgMCBSIC9UVDcg MTIgMCBSIC9UVDkgMTQgMCBSIC9UVDYgMTEgMCBSCj4+ID4+CmVuZG9iagoyNCAwIG9iago8PCAv RmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDc2NTkgPj4Kc3RyZWFtCngBxV35l9vGkf4dfwWG 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 bbDyu8uClWNcYpv06VFuVXZuXT+485RETEpf7zN16MiNQE9sga6ztqnOLY4DYWHCShAOrkJJdsPL J9+bLx5BwZTYaglh3kw9aQmhfGcz+cVGV0uuR/Hqd0Raw9RvhCp05JZaoaauwnKZmXvPxZOJnb6o V9Uv6sgTG+pHr6CUo2/4ES5hCWE1X/OIltCMm0isN27aBEaNDFlAGWpEAVPFuX9/U9lwIa8a4WcU VilLJn7zwl99b8lFn751ucWQuuSvPEiiF6/kuyY9JR+r2UzNXDJP7FpHmUpr7qp7CFEV7MRxyU8Q yxL4Lhnqeo3qexiWUEU5xj/0mOGuQmxkxU5WGUFUssStf+La+wdsQJxxw0m7BgSkbNGbKwHe0RAM hwAv0NH36inpn/hUeNT1CDNC6tPH0VNYIgQxeiYAexplERxfz0PyTxQlJKYjlKx396Sf4PYtbwPr 6/8Hoa0ENwplbmRzdHJlYW0KZW5kb2JqCjIzIDAgb2JqCjw8IC9UeXBlIC9QYWdlIC9QYXJlbnQg MiAwIFIgL1Jlc291cmNlcyAyNSAwIFIgL0NvbnRlbnRzIDI0IDAgUiAvTWVkaWFCb3gKWzAgMCA1 OTUgODQyXSA+PgplbmRvYmoKMjUgMCBvYmoKPDwgL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gL0Nv bG9yU3BhY2UgPDwgL0NzMSA1IDAgUiA+PiAvRXh0R1N0YXRlIDw8IC9HczEKMTcgMCBSIC9HczIg MTggMCBSID4+IC9Gb250IDw8IC9UVDIgNyAwIFIgL1RUOSAxNCAwIFIgL1RUNyAxMiAwIFIgL1RU NCA5IDAgUgovVFQ2IDExIDAgUiA+PiA+PgplbmRvYmoKMjcgMCBvYmoKPDwgL0ZpbHRlciAvRmxh dGVEZWNvZGUgL0xlbmd0aCA1Mjc4ID4+CnN0cmVhbQp4Ab1ce48btxH/fz/FStbp9pJKXu5bfZzr um7iu3PTAAektZW+3KRF4RRo/f2B/oZDDsnlakVJB8dAtJS4w+G8H+T9N/82/2/+/NUnlX/4lJf6 36cP+KrcVg2P6UENeVep7a7KP/yU/+Yxbyr9Gz6qclD5pqq7Pnv8KX/++FjlKn/8MS+ubvLHf+ev H/UCydBU2UxCWzpohHBf5V1X5U2r8l2b/++H/Lv8P24X22pXql2nsIm2aptdWWXldlfuhrLe5Qm7 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 hzzwVrLitUgMnSjTEuKI8xdI00Ci98qKXngLEZkwykQ696EH+YvJEYoN/a2KGMUiJcQxwCh2guyF gYTulk/A/esuwW5FWOrQdALapVi2dDwuhgsZpz9Kq1N8fIogHT0+4SKODpWDCchC14TG3yRdO8Rf I7gmkvmbxfjvv/ZQPn5ASRS+pwNKRIwnNB8IEUJoIC3MJvt0+A/t28XYWi22sVAk+FnxwRhLCaDE eCPIYQMrTkQ8jlgQRDts3xtrQQSOmCm7+D80mvBuYtTF340Qdvkz4LOmvhYk7CZP+4sJwpQBZU0w BeHWUxgk/DXvKWhgCvwsU0/2NiKII73YJdljbP6FeBIIvXsHgLzEN9aBCu/gXPknzBFtO0F0UbnU 6jaWtjS7fSBMqhp7DsnZbQkCBXVxQbG0CSlZpDh5Yfn4wTo3oaGVE6GuRD4ioiKI4v+gICzPzjOI GogrlAfhsejVjyyvWWEecglGZDfyttULQedbvKyzIpH623fvELeZQtD4R9mYRFIiELK6YGjIq9Mq lgwhh8UDU84SlQp/dh+Wfcxcscyp57hg64PUGS4QB8RiwFCuDyQJuBmog1D6BJPgu4n3NMInB5EJ +4lco2qooUbLjizEib6xjPajDyfEgGk/xJ4Ac4wyMpTYB0kDapLgFwbYqJ6IUcLmIkVUHVKVCZoG ev3t/wHu6fJICmVuZHN0cmVhbQplbmRvYmoKMjYgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVu dCAyIDAgUiAvUmVzb3VyY2VzIDI4IDAgUiAvQ29udGVudHMgMjcgMCBSIC9NZWRpYUJveApbMCAw IDU5NSA4NDJdID4+CmVuZG9iagoyOCAwIG9iago8PCAvUHJvY1NldCBbIC9QREYgL1RleHQgXSAv Q29sb3JTcGFjZSA8PCAvQ3MxIDUgMCBSID4+IC9FeHRHU3RhdGUgPDwgL0dzMQoxNyAwIFIgL0dz MiAxOCAwIFIgPj4gL0ZvbnQgPDwgL1RUMiA3IDAgUiAvVFQ5IDE0IDAgUiAvVFQ3IDEyIDAgUiAv VFQ2IDExIDAgUgo+PiA+PgplbmRvYmoKMiAwIG9iago8PCAvVHlwZSAvUGFnZXMgL01lZGlhQm94 IFswIDAgNTk1IDg0Ml0gL0NvdW50IDQgL0tpZHMgWyAxIDAgUiAyMCAwIFIgMjMgMCBSCjI2IDAg UiBdID4+CmVuZG9iagoyOSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4K ZW5kb2JqCjcgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9CYXNlRm9u dCAvQUFBQUFDK01hbGd1bkdvdGhpYyAvRm9udERlc2NyaXB0b3IKMzAgMCBSIC9Ub1VuaWNvZGUg MzEgMCBSIC9GaXJzdENoYXIgMzMgL0xhc3RDaGFyIDM3IC9XaWR0aHMgWyA1NTEgMzUyIDU1MQo1 NTEgNTUxIF0gPj4KZW5kb2JqCjMxIDAgb2JqCjw8IC9MZW5ndGggMjQxIC9GaWx0ZXIgL0ZsYXRl RGVjb2RlID4+CnN0cmVhbQp4AV2QwWrDMAyG734KHbtDseOwmzGMjkIOa8eyPUBiK8Gw2MZxDnn7 yW7XwQ46/Pr1iV/ip+618y4Df0/B9Jhhct4mXMOWDMKIs/OskWCdyXdVe2YZIuME9/uacen8FEAp BsA/CFlz2uHwYsOIT6V3TRaT8zMcvk597fRbjN+4oM8gmNZgcaJ1b0O8DAsCr+ixs+S7vB+J+pv4 3CMCJSKiuUUyweIaB4Np8DMyJYRW57Nm6O0/q70B43SflI1WpYRoG82UlCSphJCiyJbkc3Vl3fbL lcXlAY/AZkuJstYv1TNKPOfx8cgYYolT6weY8HYhCmVuZHN0cmVhbQplbmRvYmoKMzAgMCBvYmoK PDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAvQUFBQUFDK01hbGd1bkdvdGhpYyAv RmxhZ3MgNCAvRm9udEJCb3gKWy05NzcgLTI0OCAxMTk4IDkzMV0gL0l0YWxpY0FuZ2xlIDAgL0Fz Y2VudCAxMDg4IC9EZXNjZW50IC0yNDIgL0NhcEhlaWdodAo3MTggL1N0ZW1WIDAgL1hIZWlnaHQg NTEzIC9BdmdXaWR0aCA0NjMgL01heFdpZHRoIDEyMzggL0ZvbnRGaWxlMiAzMiAwIFIgPj4KZW5k b2JqCjMyIDAgb2JqCjw8IC9MZW5ndGgxIDU2ODQgL0xlbmd0aCAzNTg5IC9GaWx0ZXIgL0ZsYXRl RGVjb2RlID4+CnN0cmVhbQp4AZ1YD3AT15n/3q4kWyDbkmUZ2wt4l8VAWUDG8j9StRaW5QCGYBuT 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 HEnNhz58WcXxxpTi0yDaLITCRBUMtTG0OCLlm/bK5QDRoKm1mAKT78bHlinLGkHGqBtfXqbMadql FpgdBfAR3D1qyWoCky1YIMvPygZNGV4mkUiKRBwCM6yB/IA94JAKJCUFr+EZJN/D/xg7ozcdrIAp KdSCjxCPssGUPaBkLQZhEYhkPd4Ikut646bwmw5CNROjo2ZxYS4HEeh2rBD0sVmcl7ha8a6SdIr9 l0ewsJLOXy7FiXkdvS5dxxdLgj4E7AUMARBYjDr7l8iBnyIl4DX8DpAgk/F5YwUvLg33WpxW77IG cBLhO8TymvVl2ORRRWCmhYrzmGy12i3kvVa8wnsNpOna8mqfS3NVaS7tdflu+qL07niD9eUver5j 2YHWP0Qz71lv4r/MlwJuO7Na6QRj+N0h2dFMHo7zTU0+b/GKFa5itsJ7y+d1+ZZX4+Bos+XV1dc3 +KT3Liy7/uTu9OqA5bfLdnherxxuFiPZSyT/0vqvNIcaArNLShzHiSrdpTZbaZFCst19rrQsz2aT z9nzqOlWjdfXdMs1awXz+rxO4TUky6tZ7QJ9nujEV4Pzry2vUPJoHq2uFp3W18sLzj//1OiaU794 +9M/G/nbb9VJ76VPBl/5u1ePWxpeeGnLhjdO/tvlC58NPHdoV9vpVQe/+5cHdv0APg1NfCr/FD5p tOXN0+BxuAosn1O1irTKsvxzdq+d2e1u6VxluTOgVa266GROV+E5d57Tqc0+brWWHnc4dK083+vz CRfxwF14/8m1p42mWxA9DaHzk2vG08urG0p9NfV1Tk2v86muWm1ebhROq6cUY7Ho8xYOfeetP387 EzvUz57NfHr++PA/8F9kPrrwduaTm/98+D8PnB9iC4+ykokdF7quns/ceFIuvHr63dvrMd/IE4tu HSMHuag2UC7LzHq80GGzuQvyLRgDKyiwFYEVsyYi6fPdqmHemlzJDKvL59Fdukurq6cGprkkWY5d vfrK+NqP2I7ujIulx35iHUvXns6cZ/Gjd6T8j9K10s8yI5mMmX6Imvi1JC4buYlWiitorIvtfGb/ 7sf39Ce2i0/t/wWYHmIBCmVuZHN0cmVhbQplbmRvYmoKOSAwIG9iago8PCAvVHlwZSAvRm9udCAv U3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9BQUFBQUUrQXJpYWwtQm9sZE1UIC9Gb250RGVz Y3JpcHRvcgozMyAwIFIgL1RvVW5pY29kZSAzNCAwIFIgL0ZpcnN0Q2hhciAzMyAvTGFzdENoYXIg ODcgL1dpZHRocyBbIDcyMiA1NTYgNTU2CjI3OCA1NTYgNjExIDYxMSAyNzggNjExIDMzMyAzODkg NjExIDg4OSA2NjcgNTU2IDYxMSAyNzggNzIyIDMzMyA2NjcgNTU2IDYxMQozMzMgNTU2IDU1NiAz MzMgMjc4IDU1NiA1NTYgNjExIDYxMSAyNzggNjY3IDcyMiA3MjIgNzc4IDMzMyA3MjIgNjExIDU1 NiA1NTYKNTU2IDU1NiA1NTYgNTU2IDI3OCA2MTEgNTU2IDc3OCA1NTYgNzIyIDI3OCAzMzMgMzMz IDYxMSBdID4+CmVuZG9iagozNCAwIG9iago8PCAvTGVuZ3RoIDU1OCAvRmlsdGVyIC9GbGF0ZURl Y29kZSA+PgpzdHJlYW0KeAFdlM1um0AURvc8xSzTReQxM5hEQkhRqkhe9Ed1+wAYBgupBoTJwm/f 812naZXFWXzcmeGeGYbN8/7zfhxWt/m+TO0hra4fxm5Jl+l1aZM7ptMwZtvcdUO7viV71p6bOdsw +XC9rOm8H/vJVVXm3OYHUy7rcnV3T910TJ/07NvSpWUYT+7u1/PBnhxe5/l3OqdxdT6ra9elnuW+ NPPX5pzcxqbe7zvqw3q9Z9a/ET+vc3J0xIztraV26tJlbtq0NOMpZZX3dfXyUmdp7D6UCn+bcezf hubbuhLeF3mdVXlOBO93hWIggvflTjESgeqjYkEEqkFxRwSqvWJJBGJSfCCC97lXfCSC97FVbIjA UlHxSASiddUSgSat2hGBlTsNTkSgaiv3RKCqrgJ7IYgPiriK3G+lEHAVtGGDcQ3mGxpVcRWsbFVc g/nutqriKlhZXQVcBYLqKuAqvOftRFwFsVTEVRCPirgK2rCucA3mu7MqrsF8S6viGsy31BkFXAVt aOWIqyBqYyOuAgXNjbgKXiQFpA2izijiKoi2FK7x5qvTj7gKqvJliEG0Kq7x5msvwhUXBrNjDMZV EHUKEVdBtLm48hkoap8jroKo06c1g421JnGN5ltqYzlzg09FKxe4CqIU+KgNlsKX+/D3w48f7gEH XAls9E6+M4N3ahcLdqEwdT5hIuqCPWbwf6vqwunH8H6R29dl4Q7b38Out67tMKb3H8w8zVrA+APv xyT8CmVuZHN0cmVhbQplbmRvYmoKMzMgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9G b250TmFtZSAvQUFBQUFFK0FyaWFsLUJvbGRNVCAvRmxhZ3MgNCAvRm9udEJCb3gKWy02MjggLTM3 NiAyMDAwIDEwNTZdIC9JdGFsaWNBbmdsZSAwIC9Bc2NlbnQgOTA1IC9EZXNjZW50IC0yMTIgL0Nh cEhlaWdodAo3MTYgL1N0ZW1WIDAgL0xlYWRpbmcgMzMgL1hIZWlnaHQgNTE5IC9BdmdXaWR0aCA0 NzkgL01heFdpZHRoIDIwMDAgL0ZvbnRGaWxlMgozNSAwIFIgPj4KZW5kb2JqCjM1IDAgb2JqCjw8 IC9MZW5ndGgxIDUyMjggL0xlbmd0aCA0MTAzIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh bQp4AX1Ye1xU1b5fv733zGACzjDMDCivcWCGAyrKMIwmoogSoPJ+k7zkpQJyUFRQ8IUCvsgS1EJB rx4NzbLyAWECnTQtbx81rSxPnopIs1KvlQF7cX5rBs37x70b1l5r77V+79/vu9aeZWXlecSGrCU8 IQuKs0uJ5eImY7epoKgi3/rMBxCisC/My861PpNB7AML8YX1GXCeeBYWL1s5/JyC/e2iJQuG57ku fC4rzl45zJ98jc8eJdnFedjj5TgLb97/97zals2XluUN0wPyF/7JKP/fC3B2MjGibbYECEfkxA97 6wU4YmPpJ5cN+37IyRwV9JuNs41l7sB3Qa5scDnmuqa/f1CUE5syXDviGVoiC6ZRJFRO+vv7K+Xk 6YyFHm+TpfiKm0II10YWYwvFcTn2S7F/RVhKkrAdwGbENg9bOrbk4RaPfQiuvYitTXKBEGxN2LKx 7RS+I7ukU0gO8tmK4734brckiTRa1iSRSHw3TpI0JCKPCBzXYp+IfcIwTyfL+Dvy8rAe9ayXuZJq fL8DWxy2LbyrhW4iynfH521IOxJljsDeFps90pSjjVb/EfStlLC4a4mZuBBP9Lc3mUjGk3G4wplM Qp+7EV8yhowlBlzhiFFwJR5ERyRERuyIgjiRv5FA4k/0xIe4EwcymmiIF1ERNRlFRhJ75P8c+l5K JhATCcBcVRIBY8mjPOulwrVmkkyWkCqymXxAvgRbmAtV0A6fcS5cMlfMbeNe5x7wOj6FL+YP8if4 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 VW5pY29kZSAzNyAwIFIgL0ZpcnN0Q2hhciAzMyAvTGFzdENoYXIgMTAyIC9XaWR0aHMgWyA2Njcg NTU2IDIyMgoyNzggNTU2IDMzMyAyNzggMjc4IDUwMCA1NTYgNTU2IDU1NiA1NTYgNjY3IDU1NiAy MjIgNTU2IDcyMiA2NjcgNTU2IDU1NiA1NTYKMjc4IDU1NiA1NTYgNzc4IDU1NiAyNzggMzMzIDUw MCA4MzMgNTU2IDcyMiA5NDQgNTU2IDYxMSA1MDAgNTAwIDY2NyAyNzggNTAwCjY2NyA3NzggNjY3 IDYxMSA4MzMgMjc4IDcyMiA1NTYgNTAwIDMzMyA1ODQgNTg0IDI3OCA3MjIgMjc4IDMzMyA1MDAg NzIyIDMzMwozMzMgNzIyIDU4NCA1NTYgNTU2IDU1NiAyMjIgMTAxNSA3MjIgMjc4IF0gPj4KZW5k b2JqCjM3IDAgb2JqCjw8IC9MZW5ndGggNjI1IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh bQp4AV2UzW6bQBRG9zzFLNNF5IFhnERCSFGqSF70R3X7ABgGC6kGhPHCb9/zXadplcWR/PnO3Jkz wGxedp9347C6zfdlavdpdf0wdks6T5elTe6QjsOY5YXrhnZ9S/Zfe2rmbMPk/fW8ptNu7CdXVZlz mx9MOa/L1d09d9MhfdJ/35YuLcN4dHe/Xvb2z/4yz7/TKY2r81lduy71tPvSzF+bU3Ibm3q/66gP 6/WeWf9G/LzOybEjZuS3LbVTl85z06alGY8pq7yvq9fXOktj96EU/W3GoX8bWuR1JbwvY51VRUEE 77elYiAC8UmxJIL3D1aNRKDaq7olAtVC8YEI3odG8ZEI3hde8YkIrGvVhgi0ylU9EIFou2qJQHxU tSMCMSkmIngfrXNPBLahuYGzEAxuFXEVxAdFXAXbkFHAVRC1jYCroJU6B1wFRhIMuAqiDifgKhC0 hXDlf1VtLnKcA7HUWQXkBNEGIxdugltVkRO06hSRE2wjKCInUFC1RE6wkIzYuEFnHU6JnOBwrIpc aYJBJ4m0QVX6vAIGnbVQiZxgXQmWyAk6S79EUBCtiis/NFgKPFWDzlbFtbz52jZwRZzB0RbCtTRf lmMuroLOJogrh0bkKWcVD9lgIbWK+Ar2rF1FXAVVCdLeKHzOOfM9/H3x8/jhQ+AAqnh7uFo04i3Y 4UERb0HUSxXxFkQbjDeaFatYxD3as97aXLxposG2Q7yZReRzoBWiAlkdRURUUNXcLbJ4EXktiegI ZPXV8I0azNU7xrdiENV5y/YFrXjl/nPXtaDr6/26aS/Lwk1jd5xdQrpchjG9X4PzNKuB8QdkykrF CmVuZHN0cmVhbQplbmRvYmoKMzYgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250 TmFtZSAvQUFBQUFHK0FyaWFsTVQgL0ZsYWdzIDQgL0ZvbnRCQm94IFstNjY1IC0zMjUgMjAwMCAx MDM5XQovSXRhbGljQW5nbGUgMCAvQXNjZW50IDkwNSAvRGVzY2VudCAtMjEyIC9DYXBIZWlnaHQg NzE2IC9TdGVtViAwIC9MZWFkaW5nCjMzIC9YSGVpZ2h0IDUxOSAvQXZnV2lkdGggNDQxIC9NYXhX aWR0aCAyMDAwIC9Gb250RmlsZTIgMzggMCBSID4+CmVuZG9iagozOCAwIG9iago8PCAvTGVuZ3Ro MSA2NDM2IC9MZW5ndGggNTE1MyAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAFdWAlA U8fWnrn3JkHcEkISXABDIEFRq4QQRBBxAasiIK6ICy7soIJSVFBBNgUXtKBWRQEXQBGFiIJYFHlq RUqttSpWbeurLbbW1m5WkuGducHW/ydM7sydmTNn/c6ZrElcuwJZoM2IRWhZfPgqxP8xa+BxNDJu XYR5zJYjJAuLWhG+3DxGRni6R8EL8xi7wdMxKn5NSs94HkJ4cNzKZT3zrA283xUfntJDH30F4yEJ 4fErzOsHcHTMPUWzuCTky1QiG77/FO1mxqA98G4rfYps0UZ4XwBtJrQ81hblwNwoWG8P4+3Q7y0c g3rBsw+0fggDVX80j8oGfwwSo/f4d/wQvui88FbbN2GiTYv7e/1hMciCnyl9qhlGO21Bd+Vvqk2R YmQRDMNe/+yFfaJxZAaaKEZvqt+sF5sp8Xt7vvyFsBh4RsBbKm3cKZQI40ro+8Kzgc4Bj7OhPYHm BW0OtIHQ6LtwaCG0D+vq6V5oqyzs0UrBnG6TYA4qElxHEdCKoV8KspeD3PEwPgrrm0CZethbJKxE ++DdQZhbBuuKoV8CzzBYP4r2RdvRABgLYU8eNA3smQotG/YHwdMP2jR4L4XnBGg5+DrKxde7S2Ee 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 YX4I+HwI+xsTCujdm9oRy1QUvfWQ6kRQOfzTx9ZXhgxbMFzvxuIP3/a4ltvHsr2ChvopFsz9twcU /dlOZobgEzNFim7wgw//c6H2nf7cK/YuC4ZDhXD/bYd7DVTGBg/1ly8O+bcHP6xi/hdn6EBVBHdj X/rn7+KbGB0eFzDrf94NbXYKZW5kc3RyZWFtCmVuZG9iagoxMiAwIG9iago8PCAvVHlwZSAvRm9u dCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9BQUFBQUgrVGltZXNOZXdSb21hblBTTVQg L0ZvbnREZXNjcmlwdG9yCjM5IDAgUiAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcgL0ZpcnN0 Q2hhciAzMiAvTGFzdENoYXIgMTIxIC9XaWR0aHMgWyAyNTAKMCAwIDAgMCAwIDAgMCAwIDAgMCAw IDAgMzMzIDI1MCAwIDAgMCA1MDAgNTAwIDAgNTAwIDUwMCA1MDAgNTAwIDUwMCAyNzggMAowIDU2 NCA1NjQgMCAwIDcyMiAwIDY2NyA3MjIgNjExIDU1NiA3MjIgMCAzMzMgMCAwIDYxMSAwIDcyMiA3 MjIgNTU2IDAgNjY3CjU1NiAwIDcyMiAwIDk0NCAwIDcyMiAwIDMzMyAwIDMzMyAwIDAgMCA0NDQg NTAwIDQ0NCA1MDAgNDQ0IDMzMyA1MDAgNTAwIDI3OAowIDAgMjc4IDc3OCA1MDAgNTAwIDUwMCAw IDMzMyAzODkgMjc4IDUwMCA1MDAgNzIyIDUwMCA1MDAgXSA+PgplbmRvYmoKMzkgMCBvYmoKPDwg L1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9Gb250TmFtZSAvQUFBQUFIK1RpbWVzTmV3Um9tYW5QU01U IC9GbGFncyAzMiAvRm9udEJCb3gKWy01NjggLTMwNyAyMDAwIDEwMDZdIC9JdGFsaWNBbmdsZSAw IC9Bc2NlbnQgODkxIC9EZXNjZW50IC0yMTYgL0NhcEhlaWdodAo2NjIgL1N0ZW1WIDAgL0xlYWRp bmcgNDIgL1hIZWlnaHQgNDQ3IC9BdmdXaWR0aCA0MDEgL01heFdpZHRoIDIwMDAgL0ZvbnRGaWxl Mgo0MCAwIFIgPj4KZW5kb2JqCjQwIDAgb2JqCjw8IC9MZW5ndGgxIDM4ODg0IC9MZW5ndGggMjg1 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 tdTQF7kZV9EfiZ4J/rP+Wf7g5B/U1rc7+Lvn8HzzUPyITus7EPzZcT5dfcG3SgZo9FjwvyPPBl8u HKDz+oKDJQMGNLxQMsDo0eBhTHIGfRk9FjxUsiL4dERr3RdBK0C9p740+HBkQfDBKMp9wZtLnuPD INfiieehub1kfHBG/YHg5OgARbNaj5uppmBdpCdYi+qxA3Ra/4FgeeEAH0oa1zhwLFiMO8Yi2lDm jjnBqolE16sl0jppsTRPmiWNkyqlUkmR/JJPyjU4DLIhx2AxmAwGg94gGpiBGHIHRk6rSS6u5eo1 qU0Psk2JqOVlkEaKBahJc4waGNZOxik0s+bZE2nG0Uya50zMjEk2D0gjV2TGJpszhtZvtB2m9Nvt KGXYHQOUzGkboCO86jZvxjGp7TihNHXbXV6e3nTbXe3ttDkzuIQ0L1Yyn8/Gc5hmLcjoIhNdJH9D g6vBMd5eO7nx/xB1apWdjcl//1z/ziLn8mfua57dlnnK356p4JkRf3tzZsps5cq246ybrWlqPM66 eNLedpzewLqbruD19IbG9q+6kTDrQjdSzxPerZ+EeTcSpv1atxna1YCm4abGw2FEvNOP6DTeCejz I63TCq0TcLybX6uVJ+jGAqRQu1YhC/BuwIfsxWz/eTELoTbtYjYL0S7m450OR6O4Xwmi9rbDY6Lo cDg6Rms+8O/miNZ8nLYT3uE4idJ27T5Uu0/2EolsH2DBaB9mQJ+vTeP/38Kyif8frkD7F/126ZKm ZZGmzkjTMoTOzI4NK12Z3sWKcnjpb3mDkhFinYuXrOTpomWZ30aWNWaWRhqVw4u08/5H8xLevCjS eJgsaZrTdniJuqyxb5G6qCmyqLG9//HNk5q/dq9tX91r0ub/w70284tN4vd6XDvvf9yrmTc/zu/V zO/VzO/1uPq4dq/mKybS5ta2wwYysX0SAMjTfmY2YT10ekPtE/PlrvHa4hgXcn3Le0IkYFvmZHvG EpmYsSLwdVM6oXQCb8Lq5E05qLaNNrm+NS7kPUH3jzbJqLZHJpIkcTVd3fjVf+3atet4WL8+iXjd et6IDBZtaHZzZvKsBW2Z+kx9U0btbGynHGrrR3+T2lT5hfq36tma+s31O+v31B+q161f345qxwvh t8JsYXhNeHN4Z3hP+FBYzxuubDum1u8J/yUsrAc20XX4NfFb4dZI8efFdesxmLVrCW6yFiF7u+T6 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 kmxa9IDIfiOep5TWlPg7pLT2tuzr7dvtRvteOLZuLV467VGZR51FnuLA9jLrKrfKhrJSq/8FgXsI 2INmumcwD+RFTOsBy/tiG9CDafAwBxvpcPohuPjAjIKXNTcUN4mWP2DB661/0GG9rZzZLrLioVH/ sCnObXHuzl4Vzuun/lL452TfD1Yqqd/Me622jhLrzBZku7Lwxb6nrl+yrr871SyIidWZoYXnPClF CtfAw/l4fuVCL/t9seCzO9BH3ySn3K0Ln3ro0RXlzlrIs2xi1vBMspp2SkDcAA/A/y6lhB069a/W wIoLRhh1XiGIrhQyn9U3ihmE4jD7UkIGphfN3Uvz9paFrvZsvQ2hTxgQBoGWXiZowgphpbBKWC2s Qe3TsDAirENF3phwvXCDcKMwLmwUNgmbhQnMSbxV+Bi/NiYSwaiiPwuuJwzR35rShjs/edunr7vt nht2fvLmT43dOLpBEP4vHkClLQplbmRzdHJlYW0KZW5kb2JqCjE0IDAgb2JqCjw8IC9UeXBlIC9G b250IC9TdWJ0eXBlIC9UcnVlVHlwZSAvQmFzZUZvbnQgL0FBQUFBSitDb25zb2xhcyAvRm9udERl c2NyaXB0b3IKNDEgMCBSIC9Ub1VuaWNvZGUgNDIgMCBSIC9GaXJzdENoYXIgMzMgL0xhc3RDaGFy IDEwMyAvV2lkdGhzIFsgNTUwIDU1MCA1NTAKNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1 MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwCjU1MCA1NTAgNTUw IDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAg NTUwIDU1MAo1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1 NTAgNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAKNTUwIDU1MCA1NTAgNTUwIDU1MCA1NTAgNTUwIDU1 MCA1NTAgNTUwIDU1MCBdID4+CmVuZG9iago0MiAwIG9iago8PCAvTGVuZ3RoIDY0OSAvRmlsdGVy IC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAFdlMtu2zAQRff6Ci7TRWBaIuUYEAQEKQJ40Qfq9gNk iTIE1LIgywv/fc8dp2mRxTVwNcPhnCHN1cvu824cFrf6Pp/bfVpcP4zdnC7n69wmd0jHYczWueuG dnlz9q09NVO2YvH+dlnSaTf2Z1dVmXOrHyy5LPPNPTx350P6pG/f5i7Nw3h0D79e9vZlf52m3+mU xsX5rK5dl3rKfWmmr80puZUtfdx1xIfl9siqfxk/b1NydMSK9b2l9tyly9S0aW7GY8oq7+vq9bXO 0th9CEV/X3Ho31LzdV1J3m/yOqvyHIu8L6NsgUVES9mARUS3shGLiBayJRYR7WU3WIRNsk9Y5H3u ZbdYhLV9GyzyvjB7wLZmLbnDIpI7rU1YRLLt22MRbRyIFsBL7BtkgZOwSqa8iWRVpoAJa8nAFQYY BFgAJ7F2LQuchG1lgZNow/YFrjDAUrMqgJO8jyIqgJO8DxYFkFWy1hWshfHGJyXDKlG5kYVVIlmT LGCVqKy1AVaJqIYTYJVociMLr0SyiNjNRLKIAqwS1pJhDcbLR6KwSoxdB0qKiWTdjQCrRFRdMTAT k7RSsAbjLUUUYJWI2lpYg/GW1jOsNE+01KygNJFsUViD8XI0WRVhlRiOiCKsEl3pUBi2iahZeJmS 9qUN/g9/L/56++GPEBlDNHYmTx24JeZmm8Ie72ctOk7JxC7CYbQmrGAj3BKT0cWIcEv0YA3DHY19 oyOIcEtsZKVgj3bWUTPnx0RUOCXcElZtcCtNzE33hOGZ2FdtcN9N7GtRAPlHqCu1wf/bhLXKsHJv iXLDicIqMVVO5L+56UnR0/f+VLXXeeaVsvfRHjA9TMOY3p/Q6TypgOkPZN1XKwplbmRzdHJlYW0K ZW5kb2JqCjQxIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvRm9udE5hbWUgL0FBQUFB SitDb25zb2xhcyAvRmxhZ3MgNSAvRm9udEJCb3ggWy00MzIgLTMwMiA2NzcgMTAxMV0KL0l0YWxp Y0FuZ2xlIDAgL0FzY2VudCA3NDMgL0Rlc2NlbnQgLTI1NyAvQ2FwSGVpZ2h0IDYzOCAvU3RlbVYg MCAvTGVhZGluZwoxNzEgL1hIZWlnaHQgNDkwIC9BdmdXaWR0aCA1NTAgL01heFdpZHRoIDU1MCAv Rm9udEZpbGUyIDQzIDAgUiA+PgplbmRvYmoKNDMgMCBvYmoKPDwgL0xlbmd0aDEgNzE4OCAvTGVu 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 7YbtxnJ8BcGH3Ghh8gdky3SEksknKyqlZXlrS1NlK7z+f6EYLBsKZW5kc3RyZWFtCmVuZG9iagox NiAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHJ1ZVR5cGUgL0Jhc2VGb250IC9BQUFB QUwrQ29uc29sYXMtQm9sZCAvRm9udERlc2NyaXB0b3IKNDQgMCBSIC9Ub1VuaWNvZGUgNDUgMCBS IC9GaXJzdENoYXIgMzMgL0xhc3RDaGFyIDMzIC9XaWR0aHMgWyA1NTAgXSA+PgplbmRvYmoKNDUg MCBvYmoKPDwgL0xlbmd0aCAyMjMgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBXZDB bsMgEETvfMUek0ME9hkhVaki+dA2qpMPwLC2kGpAa3zw3xeIk0o97IGZeTAsP3fvnXcJ+JWC6THB 6LwlXMJKBmHAyXnWtGCdSfupambWkfEM99uScO78GEBKBsC/M7Ik2uDwZsOAx6J9kUVyfoLD/dxX pV9j/MEZfQLBlAKLY77uQ8dPPSPwip46m32XtlOm/hK3LSLkRploHpVMsLhEbZC0n5BJIZS8XBRD b/9ZOzCMe7JtlCwjRCtq/ukUtHzxVcmsRLlN3UMtWgo4j69VxRDLg3V+AW40cBIKZW5kc3RyZWFt CmVuZG9iago0NCAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL0ZvbnROYW1lIC9BQUFB QUwrQ29uc29sYXMtQm9sZCAvRmxhZ3MgNSAvRm9udEJCb3gKWy00NzYgLTI5NiA3MDAgOTY5XSAv SXRhbGljQW5nbGUgMCAvQXNjZW50IDc0MyAvRGVzY2VudCAtMjU3IC9DYXBIZWlnaHQgNjM4Ci9T dGVtViAwIC9MZWFkaW5nIDE3MSAvWEhlaWdodCA0OTYgL0F2Z1dpZHRoIDU1MCAvTWF4V2lkdGgg NTUwIC9Gb250RmlsZTIKNDYgMCBSID4+CmVuZG9iago0NiAwIG9iago8PCAvTGVuZ3RoMSA1OTIg L0xlbmd0aCA0NjUgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBVVFNSxtRFD3zMpNE CJonMqgxozaSRIoRY0YNFT8SKLVIMBSCimgHTYztxBGNothFF3XjHxDcKe0P6LoUuhB37urORenH rtC6KBRNxPsmo+Ad7jtz7rnvcO9MeX0zDy/ewgUslow12CG9JGhdNncKDn9HeFzMG0s1jgrhQJEK jp4g7CqWytsOnyb0mtbinf6GuLtkbDv+uCDesWqU8rV+FiWkTDYCT34CoydA6hnw9Bvw3A9MngKZ Y+CFCeS+AjNjwJwPmB+mqelqPgcsXwGvycPaB8pdwNZ3SCQx6JAJxZsfvXbNpnQIXcn+/vtxr3eh Yfgf6ry28ulHgHyAs6nzQqWveqQcer5Qr5ccakH3lMvqpTQvk36TVQ4fuIoeJheQoRQhOaoPbtDM 6LyvAFl6QPNl6GhRAvQXPOgAfU2Jd3I7m+pZyBNy9ccH9ESMhUJ6f1xjLlF9FGN6YoQJLrdUdFey mmOzkYmVcfe+b3ciFRw10snB9Q8r8f9ci6hqVONci6pqRONK4OqXErh+JfPrP+zz4Fw6vCexVKx9 qLv5oG+qWH2vhoN+fzBMzW2ct0XEFmKPRmcTN5qAcRGTj9PW6oZlGhs9KctcAm4Bxe9h5QplbmRz dHJlYW0KZW5kb2JqCjQ3IDAgb2JqCjw8IC9UaXRsZSAoUmV2aXNpb24tTGV0dGVyLWZvci1OU0Yt TW9uaXRvcmluZy1ZQU5HLURhdGEtTW9kZWwtdmVyc2lvbi0wOC0yMDIxMDQyOSkKL1Byb2R1Y2Vy ICj+/1wwMDBtXDAwMGFcMDAwY1wwMDBPXDAwMFNcMDAwILyEyFwwMDRcMDAwIFwwMDAxXDAwMDBc MDAwLlwwMDAxXDAwMDZcMDAwXCi+TLTcXDAwMCBcMDAwMlwwMDAwXDAwMERcMDAwOFwwMDAwXDAw MFwpXDAwMCBcMDAwUVwwMDB1XDAwMGFcMDAwclwwMDB0XDAwMHpcMDAwIFwwMDBQXDAwMERcMDAw RlwwMDBDXDAwMG9cMDAwblwwMDB0XDAwMGVcMDAweFwwMDB0KQovQXV0aG9yIChKYWVob29uIFBh dWwgSmVvbmcpIC9DcmVhdG9yIChXb3JkKSAvQ3JlYXRpb25EYXRlIChEOjIwMjEwNDI5MTQ0NTAw WjAwJzAwJykKL01vZERhdGUgKEQ6MjAyMTA0MjkxNDQ1MDBaMDAnMDAnKSA+PgplbmRvYmoKeHJl ZgowIDQ4CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwNzIzOSAwMDAwMCBuIAowMDAwMDMwMDA2 IDAwMDAwIG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwNzM0MyAwMDAwMCBuIAowMDAwMDEw MzYxIDAwMDAwIG4gCjAwMDAwMDAwMDAgMDAwMDAgbiAKMDAwMDAzMDE2MCAwMDAwMCBuIAowMDAw MDAwMDAwIDAwMDAwIG4gCjAwMDAwMzQ1NzUgMDAwMDAgbiAKMDAwMDAwMDAwMCAwMDAwMCBuIAow MDAwMDQwMDMzIDAwMDAwIG4gCjAwMDAwNDY2NjEgMDAwMDAgbiAKMDAwMDAwMDAwMCAwMDAwMCBu IAowMDAwMDc2MDc1IDAwMDAwIG4gCjAwMDAwMDAwMDAgMDAwMDAgbiAKMDAwMDA4MzA0OCAwMDAw MCBuIAowMDAwMDA3NTQxIDAwMDAwIG4gCjAwMDAwMDc1OTUgMDAwMDAgbiAKMDAwMDAwNzY0OCAw MDAwMCBuIAowMDAwMDE2MDY0IDAwMDAwIG4gCjAwMDAwMTAzOTcgMDAwMDAgbiAKMDAwMDAxNjE3 MSAwMDAwMCBuIAowMDAwMDI0MDc5IDAwMDAwIG4gCjAwMDAwMTYzNDYgMDAwMDAgbiAKMDAwMDAy NDE4NiAwMDAwMCBuIAowMDAwMDI5NzI0IDAwMDAwIG4gCjAwMDAwMjQzNzIgMDAwMDAgbiAKMDAw MDAyOTgzMSAwMDAwMCBuIAowMDAwMDMwMTEwIDAwMDAwIG4gCjAwMDAwMzA2NTcgMDAwMDAgbiAK MDAwMDAzMDM0MyAwMDAwMCBuIAowMDAwMDMwODk4IDAwMDAwIG4gCjAwMDAwMzU1ODkgMDAwMDAg biAKMDAwMDAzNDk1OCAwMDAwMCBuIAowMDAwMDM1ODQyIDAwMDAwIG4gCjAwMDAwNDExNzIgMDAw MDAgbiAKMDAwMDA0MDQ3NCAwMDAwMCBuIAowMDAwMDQxNDIwIDAwMDAwIG4gCjAwMDAwNDcxMjcg MDAwMDAgbiAKMDAwMDA0NzM4NiAwMDAwMCBuIAowMDAwMDc3MjQyIDAwMDAwIG4gCjAwMDAwNzY1 MjAgMDAwMDAgbiAKMDAwMDA3NzQ5MCAwMDAwMCBuIAowMDAwMDgzNTEzIDAwMDAwIG4gCjAwMDAw ODMyMTcgMDAwMDAgbiAKMDAwMDA4Mzc2NSAwMDAwMCBuIAowMDAwMDg0MzE2IDAwMDAwIG4gCnRy YWlsZXIKPDwgL1NpemUgNDggL1Jvb3QgMjkgMCBSIC9JbmZvIDQ3IDAgUiAvSUQgWyA8Mjk3ZTE4 MGFjN2Y5YWFiYmMzYTBjMDRlOTgwNzQ3M2Y+CjwyOTdlMTgwYWM3ZjlhYWJiYzNhMGMwNGU5ODA3 NDczZj4gXSA+PgpzdGFydHhyZWYKODQ3NTYKJSVFT0YK --00000000000025644205c11d9d60--