Re: [netmod] Question about tooling for YANG Instance Data

Scott Mansfield <scott.mansfield@ericsson.com> Tue, 07 June 2022 09:31 UTC

Return-Path: <scott.mansfield@ericsson.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9275FC14CF0F for <netmod@ietfa.amsl.com>; Tue, 7 Jun 2022 02:31:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.752
X-Spam-Level:
X-Spam-Status: No, score=-2.752 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.745, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7eB3ZhVXMrMq for <netmod@ietfa.amsl.com>; Tue, 7 Jun 2022 02:31:55 -0700 (PDT)
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2051.outbound.protection.outlook.com [40.107.223.51]) (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 D0C4BC14F72F for <netmod@ietf.org>; Tue, 7 Jun 2022 02:31:53 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VicqXL6ad7Xyh/5IlEWqz9yyaNKNq5HCIiN+FFO0a0U7AA9arzNkP8t20dvRWtidvL3jc/NESJxcx5DtDmj7pk+7gFhMQ8UTvWUkaSTVnWPSEgQreTunnWYnlxdloQ65Bs8bXVo+BtVObxk2pOYV1s3r8FPcpDVVHY/ellWV83TU8UNU1vWO7/oAgK7/eB+exqUMC6o5+hewUSrI8YWM+Lk8LS8vvuI6juKVnD6T+aSSpJpZg4LL0w25irVdGv3skZ3vFgeNQ+3XXxGPta76wHkpP0V6KZG8u1jAXsPqCVKj9Yvc3h+ytDC48CxOC9x/vpV+bD/f73/k4EMieO/1IA==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OZYqJ9CrR0AXpiKO0LFG2pFQKN++NOUQEAIpu/5Yl3M=; b=N1357pcRY3lQoe8sUuHq471ijL4Siut/Iv9ZL5qMropRazkqaRADq48R6++mD+SaQoc+AvgOvBGlmrr4DycIplBnfyExchqSpjqPmKpMk29vK3DSs+djl9WAfhF7xhfonhE/MiZ4s8JWPIvVfodF5pvP0P5ESNNQ4Ee/KLj7bEGZfZ4oXXk34Ffk+3RQgpYY4mtnh+xcaplU7gLAbeGbxvDZKBgy0svqlVf7Vi14zbtG7P0EkACx1pRBq00oaXuxsD7TCuyoxIqR1+YuSsieZ5fx9dWPAyiTDLZB5k4gVtFM80U1ZyFvM8NUw848thfksPZml7a9MQE0TOjvB/3SYg==
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=OZYqJ9CrR0AXpiKO0LFG2pFQKN++NOUQEAIpu/5Yl3M=; b=aOEfcdH1CCg+NOY8ThSSNR/aDVSJGa07/vIzL/tkijPKqHLvvZ+atOO7SwTiYrSrCw5mnh8xcdnU4t7KZQJyRjjcIjH8az84uoAMhLcaiecYAnfxF3VJ4Qn4MKu0UZhORNkyB6jb441y+kC95/nEYfPlnrFS7IgM06zBUbcX4vo=
Received: from BL0PR1501MB4130.namprd15.prod.outlook.com (2603:10b6:208:86::17) by PH0PR15MB4573.namprd15.prod.outlook.com (2603:10b6:510:87::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.19; Tue, 7 Jun 2022 09:31:49 +0000
Received: from BL0PR1501MB4130.namprd15.prod.outlook.com ([fe80::e4d8:cf03:817f:207d]) by BL0PR1501MB4130.namprd15.prod.outlook.com ([fe80::e4d8:cf03:817f:207d%7]) with mapi id 15.20.5314.019; Tue, 7 Jun 2022 09:31:49 +0000
From: Scott Mansfield <scott.mansfield@ericsson.com>
To: Kent Watsen <kent@watsen.net>
CC: Michal Vasko <mvasko@cesnet.cz>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] Question about tooling for YANG Instance Data
Thread-Index: AQHYeZJQNE2zVBarJkWoXHedH3JGfK1DJGKAgACLE2A=
Date: Tue, 07 Jun 2022 09:31:49 +0000
Message-ID: <BL0PR1501MB4130C7351B95252589D057F38BA59@BL0PR1501MB4130.namprd15.prod.outlook.com>
References: <BL0PR1501MB413028FDB547AE215C3BA22F8BA29@BL0PR1501MB4130.namprd15.prod.outlook.com> <010001813bb91a49-a3cd4f16-6c9c-4679-bbe6-14caa7b4d669-000000@email.amazonses.com>
In-Reply-To: <010001813bb91a49-a3cd4f16-6c9c-4679-bbe6-14caa7b4d669-000000@email.amazonses.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3fbdb45c-9688-4121-5d83-08da48688c4d
x-ms-traffictypediagnostic: PH0PR15MB4573:EE_
x-microsoft-antispam-prvs: <PH0PR15MB45732D7F10A2DAA31BD656AC8BA59@PH0PR15MB4573.namprd15.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: aY7EMN3fB/HXzgygZHfNG9HFMjQWlFT6/bxfU+P7siP2cgYY6aPjx/xUycsHt9TQKaJb3+pARmm/jKNCsuQXQbzIOu1SK5XWnMn1wpWR/2YtWWwiqE18Pu2sX6zgBoyLgRctdqwApKDBRm7G67B2r10tynoQrKDulGdply9JDXZDyx0iSpctrEZs4S4cbFpIZuM8YparJ7vmPx8t01uSX5MiU1CWc7nuLoW93ULQ0C5/zzoAcPWreTSDnvaKJt8+iDlchgWjVBFxbjG3fhHEjxTECel7yV7MAP5gkSC6yc+OMEYJRLQIsxJiNN3ptj4SJD/lh6nkuq8iosvp9qjkaa2Cos7eljLo/b+1upEN+2L9q7EdCK9UYpXcTAhW3N2tFf62MWbjiA1g6vVlRe/RMiQC/26HyKx5wraGg96DO424Olsl1RLdAx+5scA/fErCvPSAm9UTj0594a+PgTNbyR53jn9Teq8nYXdwOcrj1jZTL5v2TEUJwsEAyHQ5HFvhEz8t+tJfIPxPMi/aZlCJuiDHfrWI5Woyw+xRPyN/OCCUifg7fm5Bs+UDt+nYEvUO9yTjG4aYHZYZoGkzbQvboHTOYyspplfI1Dy4hGdyg6KCZ5ZJ/jMedc6dVKLDhQIZ5/h9AfIG5vWX8RSVzH0XnocQduN/rDa0DmScHa8fqoP5IatBVGZp/Ng2H/1hrMe+XyOem75Lcaj51+UCMTox6US3q11oDU7sNo51ZPo7Ymu8Nnr/jWIk/ajQtfxKd/SJ30maZBQyVwFmJH4iK8UkZZltHIe16oR5YjSZ+FQX7My3/SL4wy2GkKVYWiWPUILw6Hj2WgyMPVYg+Nt3i5p1Eg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR1501MB4130.namprd15.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(38100700002)(66446008)(66476007)(54906003)(8936002)(76116006)(6916009)(82960400001)(2906002)(71200400001)(66574015)(316002)(64756008)(5660300002)(26005)(38070700005)(122000001)(9686003)(55016003)(8676002)(66946007)(4326008)(7696005)(52536014)(44832011)(6506007)(83380400001)(66556008)(53546011)(166002)(33656002)(508600001)(186003)(966005)(86362001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: JKIgKB20kUbDwAYaI//tkdUqvn6fh31eJ+3sFsvsKe87MSlrmeeSy2lodB/aZLMHhgET1AWJDVZlXNwWt/nNakPISOJMW4N9kck7HJUKp/KlCoAbAoQmYP7IUXtvlC4LZ6vkQNUrYGfWQnOFdXubvSWekwJPiK5EjB0RNMowfd76xBE4IvtdIHCtdF7pQqEg8B5hF+csGqf14HuF14FTmRgTwk68vAHAaNcGla9YiG4S3CNSR2ISrM1aleN7yiJR6BCd5Y+okO2cABB87cgekP+s6Q6QRYa7bRUUR8Tp/+46h7m/6Se0pC8vfF2OGnsKm/8aKqVCMnu1A05P+UWXHUZ8Nut0DMurXifu7Cz5e4QRTC4gwQ3KfnYorYSIbm5m3wTWcO/P6sKrgTwPczFizFy2Cv8mSNrm0h3UQ5QRA92ftM/YqEEC9BmQy6r5AIiVM9HETCbX0THre9BooI6smuXIWKuqAdZfhdzrJ6piiIRR28TnTCvI2BYL6TH9nH8pyUDNeHVwa56pOSSjmLRMqsT7Bhz7ssIH2tm+4E/hqeJfBfFcgj8+XELMnqNkaDR0GLz7nMrqTxsb1rgh+cBWpYTGBa3DzMe2SyEXBfzGWeaov+0LO3qT56sWvcp3eqJYakUd0p946UuIdZIwrbsE353NiIDOo4OTChrjPYBf3hzgk8ChbrQl+ykr/v3dN2entZlq8R1t9xfI7NaJ8ctvc8KlYs0fsCV88fqIa7DhFvOFe1DwW8aZEEweo0sJO3kxlF6F4T1uzlFjZLyTR6cT4//wMr1KBp58O/tt43ze6QVmRLSsXEcIeAC8mIlxzAis3jAQYH/dCCFCvFOvW8ri03oVC6evSNVDgMssuwell1iQ8mPzJSpnDn7gd42m1mqtfDlcCJ4cfYONE2ijKl+1ANfrvszNu3byYRUQN1VEmFO7daobmgG2BsgSo5hx0SbSZHkH8k4Vwd7fJXYfSOLETKFVYFe28YotirEPvKonMce3HiNjDg+jv0jahTs0it8iKzyP72nqldHohNfLC0Gl27BlzNG/Xs9xzlG2my8rY2TJC47wiibgVhqbZZ+XOJVnBcN30nkdkCnc2UZCpRImNSRwJV+reuZAWmqK3kPpeqnWArcvWTRo+P7yo159i96YpgPyLeEiMWP/Zx7Zi/Eb6iTMza/dfcn6mS0AdeoKxGFEbYWo1Jx1j5RSiB5a4b9ti+jtEg1iMAZV6v7HqACYUkOlUMy6wUyhZjylf0zwvJp73ODGIzYzhUwRnBeWAVXkCjqhAxNorgTCmm/Sb455/khiGlCD8C5bLASPUZb7v9eHgI5TpclQuzRbWfWZ6tZBJgIfE7SIMSn1UnaLmONQ/Mf/sSCRe9YemiD2A8FzwFNbTBTHKQRBkCBdDtvfPIX7tEQEEK+ukVz8RX/6/ZXeX2DwQeT4NF8X5FC7XYbHqlvJDqIiUUA8kaBqoYXpUXdyWm5e2s+7pDUKlBhMrf2NU4UqJ0OWMa4lZWwUG6TL4arjBsP/RzRhZf56qcEq44xOMweoSbZi/604R1un7osRPqeFPJo4Kr3SC4/flHGI3eAlmVqT88U7hpksaZQzJTkqKDY7mYdJ3rM7R/SIlSs2Y0Y2H/412ABY/TXwgVcaVzXN+7K2GgbgGgIrsIa7fAXx5mIf9Xel0TdmHmVE8iCYiDNhTLjf/f+4fz3WoTt6xgR+7pYwU/RZEivhiskmctKW8Y96m+NWSFYUaZzjLRO2F1Dbmk0od0JJdr8zzDfyw5k=
Content-Type: multipart/alternative; boundary="_000_BL0PR1501MB4130C7351B95252589D057F38BA59BL0PR1501MB4130_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL0PR1501MB4130.namprd15.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3fbdb45c-9688-4121-5d83-08da48688c4d
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2022 09:31:49.3556 (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: pMO6BJwjj3u4Hb7cS6BSfhXo43/8TkBPYklwfeBNX7njpbF5OPOJLsaBp1gX4vJZfL//+N1vmFC75wgZPbVhwqD/1Sw7pj4r7sBRQ9GtxQQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR15MB4573
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Kb4jAbvTmj-Jf0W25b9UWgHrDRs>
Subject: Re: [netmod] Question about tooling for YANG Instance Data
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Jun 2022 09:31:59 -0000

That is very useful information.  Thanks, I will try that.  I’ll create a small script to do that and then run yanglint.

Regards,
-scott.

From: Kent Watsen <kent@watsen.net>
Sent: Monday, June 6, 2022 9:13 PM
To: Scott Mansfield <scott.mansfield@ericsson.com>
Cc: Michal Vasko <mvasko@cesnet.cz>; netmod@ietf.org
Subject: Re: [netmod] Question about tooling for YANG Instance Data

For structure (and rc:yang-data), my validation scripts hack the YANG module to convert the "structure" to a "container" and then do the validation against the hacked-YANG module.

Kent



On Jun 6, 2022, at 6:50 AM, Scott Mansfield <scott.mansfield=40ericsson.com@dmarc.ietf.org<mailto:scott.mansfield=40ericsson.com@dmarc.ietf.org>> wrote:

Thank you Michal for the information.  I appreciate the work on yanglint and look forward to future updates.

Then my question is, what tool was used to validate the examples in RFC 9195?  Is there any tooling that can be used to validate the instance data?

thanks,
-scott.


________________________________
From: Michal Vasko
Sent: Monday, June 6, 2022 1:59 AM
To: Scott Mansfield; Kent Watsen
Cc: netmod@ietf.org<mailto:netmod@ietf.org>
Subject: Re: [netmod] Question about tooling for YANG Instance Data

Hi Scott,
the main developer of libyang commenting. In your example there is a "structure" extension instance, which we do not support currently so you will not be able to validate it no matter what you do. I have already looked at this extension recently and think that we can support it without much trouble but I am currently swamped by lots of other issues so I have no idea when I will get to this.
Regards,
Michal
On 5. 6. 2022 1:35, Scott Mansfield wrote:
Excellent ideas.  I will package up a tiny example and post to libyang.


I am using yanglint 2.0.200.


Since I’m starting from an example that is in RFC 9195, it is easy to build a small example and package up an expect script to show the issue.


Regards,
-scott.


From: Kent Watsen <kent@watsen.net><mailto:kent@watsen.net>
Sent: Saturday, June 4, 2022 5:22 PM
To: Scott Mansfield <scott.mansfield@ericsson.com><mailto:scott.mansfield@ericsson.com>
Cc: netmod@ietf.org<mailto:netmod@ietf.org>
Subject: Re: [netmod] Question about tooling for YANG Instance Data


Hi Scott,


I consider myself a heavy `yanglint` user, as all examples in all my drafts are validated each time I "make" each draft, and I have several other projects that make heavy use of `yanglint` validation.   I have run into a number of validation issues over years and generally first try to validate that my understanding of YANG is correct  and, if unsure, I'll ping the NETMOD list (note: there are many YANG subtleties, such as the recent discovery that a module needs to be "implemented" in order for its features to be defined).   Otherwise, I submit an Issue to the `libyang` GitHub issue tracker, typically containing the smallest possible module (or number of modules) demonstrating the issue, while also pointing out all relevant facts (e.g., foo is implemented, bar is defined, RFC 7950 Section X says this, etc.).  Radek and Michal are pretty good with providing a response in 1-2 business days.   Sometimes my YANG-understanding is challenged, at which point we bring it to the NETMOD list.


FWIW, `yanglint` recently switched from the 1.x to the 2.x code base.   A number of regressions were introduced at this time (resolved now, at least the ones affecting me) but, nicely, the 2.x code catches some issues that the 1.x code never did (it's a better validator).  The CLI changed some, and I'm now very careful to ensure all modules that need to be implemented are, and that all features that need to be defined are.  I now explicitly disable all features for implemented modules when no features from it are needed.   I find that the new 2.x is picky, in a good way and that, after painstakingly working through each issue, all my validation tests are passing now.


Best of luck,
Kent



On Jun 3, 2022, at 3:35 PM, Scott Mansfield <scott.mansfield=40ericsson.com@dmarc.ietf.org<mailto:scott.mansfield=40ericsson.com@dmarc.ietf.org>> wrote:


I am trying to use two of the examples found in RFC 9195 https://www.rfc-editor.org/rfc/rfc9195.html#name-preloading-default-configur<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-092ccfe7a6702a7c&q=1&e=4e9d6ab0-63b7-4e40-965d-5d89b0208d6e&u=https%3A%2F%2Fwww.rfc-editor.org%2Frfc%2Frfc9195.html%23name-preloading-default-configur> and https://www.rfc-editor.org/rfc/rfc9195.html#name-storing-diagnostics-data<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-4510ebc746564af0&q=1&e=4e9d6ab0-63b7-4e40-965d-5d89b0208d6e&u=https%3A%2F%2Fwww.rfc-editor.org%2Frfc%2Frfc9195.html%23name-storing-diagnostics-data> to test out how to validate that instance data is formatted correctly.


Using yanglint, I load all the yang necessary and then load the data from either the xml file (read-only-acm-rules) or the json file (acme-router-netconf-diagnostics).  I get a similar error for both...
data -t data -f xml acme-router-netconf-diagnostics.json
libyang[0]: Node "instance-data-set" not found in the "ietf-yang-instance-data" module. (path: Line number 2.)
YANGLINT[E]: Failed to parse input data file "acme-router-netconf-diagnostics.json".


What is the best tooling to use to validate the instance data?  What tooling was used to validate the contents used in the examples?  I'm trying to determine if this a yanglint issue, user error, or I'm just using the wrong tool.


Here is a link to a github with my testing:  https://github.com/samans/testing-yang/tree/main/ieee-60802/60802<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-20ec105f5d2f3377&q=1&e=4e9d6ab0-63b7-4e40-965d-5d89b0208d6e&u=https%3A%2F%2Fgithub.com%2Fsamans%2Ftesting-yang%2Ftree%2Fmain%2Fieee-60802%2F60802>
If interested t.in in the expect script for the acme-router-netconf-diagnostics.json example and x.in is the expect script for the read-only-acm-rules.xml example.


regards,
-scott.

_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod





_______________________________________________

netmod mailing list

netmod@ietf.org<mailto:netmod@ietf.org>

https://www.ietf.org/mailman/listinfo/netmod
_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod