[netmod] RFC 7951 - JSON encoding of empty lists

Jack Rickard <jack.rickard@microsoft.com> Tue, 29 March 2022 14:21 UTC

Return-Path: <jack.rickard@microsoft.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 3C5723A1998 for <netmod@ietfa.amsl.com>; Tue, 29 Mar 2022 07:21:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.11
X-Spam-Level:
X-Spam-Status: No, score=-2.11 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, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 Z2rPAWyx_vi7 for <netmod@ietfa.amsl.com>; Tue, 29 Mar 2022 07:21:44 -0700 (PDT)
Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02on0725.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe05::725]) (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 42F063A1987 for <netmod@ietf.org>; Tue, 29 Mar 2022 07:21:43 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gWcg2p3HRP4DSH3+RARfTa9G/J6BeBIVHPMACZd0ovQiF9qI8++9i6VsPqy70J54zi9XUZdDfiOsVVV/nQK8yCVc4aQtrp1JY6NVdwW6ywSrWkGdUdH7+AQj/08e0t0z8O868py9yZdm6Rckknx4jeJ4ISu9dX/8/hU4oE4ZjsAxVjem/oNS/u88FiHgxpJyhTkDk9n4ycYN0Nvy9rRxuOxIJT9UHV0hoIroQvIOKVz6gnNwRxHz2uXsTXDJhNmnYOawg3AaVXLjtdtc5mDLe3Ro+PrV9M1kMT+TFUK5EiIavpsFlZIYTKyTkcnisJ765cPab90PgLLk4Q8dRSO2ZA==
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=bVuSp+mzi4rfNB3M73JGoJuosMy1BvWda56qtaq948I=; b=mY5YAEBtrwy68K8VQbc4GaE5Ar7RE3/8+ADQKfHhaZfi17/4DlWQV4MSIGzM0Vas9/YUcIc5Q9gczVg8Vs0aMLMlI1uyZ9wCXxrcOd17Fc+n3k4CAp3JUC53L6C4YJTYZv2BhXbni+VBY6BMMNMAn6ztEbX6lzvQsx7wYMFCmGnTPJqo0nV4Yu+b41JVG//D54N2uN+h4lsh4NrJKL6Bj84Ytb/krbYztPbZJhYEYMX8CXWsm2oVWujRflVZyAqHqBbNHICN4Yk5Qc/oiUd4Yx3ygW7y0k4IznjXPSG1L0pq3k9r/nYsQiP3XDTzoljQ/BsZYJB+iorFL2bekaeBCQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bVuSp+mzi4rfNB3M73JGoJuosMy1BvWda56qtaq948I=; b=Ou0VS7gqV+XuINTUys6J2tJZsAfDKeI7pxjLI5DyK6xymIOv9fOsH7dD44ayt0+0Pfvsyl9KjZEG73Pycjv7wuCS5aR/2PAAXuiH8YzLVgDvTVkqPSmdTcx4/W/cVNRsNfBbP0LNa7bbo2dsap2hBgav8kUNHJUW2Dn0tBmKQwE=
Received: from HE1PR83MB0378.EURPRD83.prod.outlook.com (2603:10a6:7:63::11) by DB6PR83MB0328.EURPRD83.prod.outlook.com (2603:10a6:6:3f::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.7; Tue, 29 Mar 2022 14:21:37 +0000
Received: from HE1PR83MB0378.EURPRD83.prod.outlook.com ([fe80::3871:8b37:cef2:3d24]) by HE1PR83MB0378.EURPRD83.prod.outlook.com ([fe80::3871:8b37:cef2:3d24%4]) with mapi id 15.20.5123.011; Tue, 29 Mar 2022 14:21:37 +0000
From: Jack Rickard <jack.rickard@microsoft.com>
To: "draft-ietf-netmod-yang-json@ietf.org" <draft-ietf-netmod-yang-json@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: RFC 7951 - JSON encoding of empty lists
Thread-Index: AdhDdny00Bx7mUnhSrG4mfmlGd5xzA==
Date: Tue, 29 Mar 2022 14:21:10 +0000
Deferred-Delivery: Tue, 29 Mar 2022 14:20:54 +0000
Message-ID: <HE1PR83MB03785D65431C5DF40FA08FEA881E9@HE1PR83MB0378.EURPRD83.prod.outlook.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=7c700202-54c2-4b60-9ee8-9e8407c1ecfd; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2022-03-29T14:07:33Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c8f60b36-f388-4ae3-ac30-08da118f6f94
x-ms-traffictypediagnostic: DB6PR83MB0328:EE_
x-ms-exchange-atpmessageproperties: SA|SL
x-microsoft-antispam-prvs: <DB6PR83MB0328B1ACFAF15DDA2A446CA4881E9@DB6PR83MB0328.EURPRD83.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 4Ai3lfCLKi5iH2+qsaBDe8T7IDZRipieNw5Ve1oMsnI9Sx/KH0oDijmrHBGKXUZkfwAJ65YIkYeAAKE2/lfXEBNiDMgXH5fdYZNn79v9T0uPUfKosHWK08/qGBqFLL0TpJ3Pcz8Wl1IAYOk9vSgH0CRDvmR8qLdG78k9KtdUooYP+6VmOqH5lgtVamXhCjkT/rPKiR1Q7yjTL21QNJHf+A/Q5bK3/95VW9x6Wf4M9Wv9H9b4jFonp2oqTquG7TwE4PLZOhrccoQBFsDPLDUxnoa6zayB0MTxaq5ZkQh9bjlyyvgPRdSwczxCEHVXGjtvvU/DelJ1smA3nvPEm1/Yi2MZMcFvYe2hSH0xXq/8utwp69Nk5nD1s6bky6dtLSyv8nyeSZ3811yjSAk9MOt9W8xhY6bqY+2WSKSQqKd1e4BqNoAASoa7Rg9Eu0Cl72kX8oHud8Sn430TBP3MrTeiNMKOkc2poKF20Tsbs1A141QYM98Q6jLTmfc69qGv50vSQLhGe0YMPGqoIwj/4Qc9YjaVPUczyd3+A2JXqWKtDMgYtK7foCaz97Sq5TI/YGzih12H2iPOc9I/jthFRydMMkiftq5wxlWa/erZNKOLmf6eG1q3Ye+HSnclmM47+6PTsECDNL+o29b+IX//aqh5zOPZUsYa2c1QQP6neVQSumaunn6J5owNiAJJWglZNJMsbSt5v8ZTO10c5GkVojnV8gsQ0eIu6CKVqnJPT5PnNHzednF+nCsYEw/7Laz5rkQ1vdFG6mHWAKEVKIx2Oel/kmV8my5oM9B9+pX5gNzYHvyqOW3lxGlyRFyBIxJWmlmkog4SY8F3Qcn6cBR3MO2NkQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR83MB0378.EURPRD83.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(451199009)(38070700005)(7696005)(9686003)(82950400001)(6506007)(6666004)(55016003)(82960400001)(38100700002)(122000001)(71200400001)(186003)(2906002)(33656002)(86362001)(99936003)(166002)(8990500004)(9326002)(8936002)(10290500003)(44832011)(508600001)(4326008)(316002)(5660300002)(52536014)(110136005)(66446008)(66556008)(66946007)(64756008)(8676002)(4744005)(76116006)(66476007); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: Mail7OKGokKB/z5T6vx9RFWZLl3iR1X4+OMJNT5zdq7Bx7QWcLLDhfE7BndIcWHfj6eRvYxdw7kiHpPVEtJy/V/gU2S73x19NwgJuvCfzLvbfTo6USaZzx8oR26JsLGvhHgu8CxSkx1bj5sxOP2F4P6K42fQxg7NCZNR+M55U+eTIiNO1nkR5CL0HI99tyX5r1hW6NEEpGvNhTgY9pII9hGWOdcCQhAc40CYAKVTN0qxzSqJrnOU3u68O/UHuTrf6mOUa73JrK3AjQdgR5105N0BJSSvaNcN+41n5reluRKIN+LdFYfLjRLlDEg70oI8RiOqZdmWrWswdxVh140D2I4ZK0PHo6w/m4+SnFCtQjLvPb7R+yLhh0dXz6VeoTbChZsJfhQJEmZjIugOKXKGa+yUlryarp2ealcr2qpPE/1D+gLNpWKblZ8GtgDW63huWM0vuN0i54dQ0wbosJUNr9Kebp8G2TcgkaCF+uXngmmP2wm+AVvZtVR0xToNI178S8x4acc+3TK5VQmhBFErZgkyp0x8EjtA+ej6ddR3qASeOUqKZMQpSMqRI4lAmUZ49UyIl6jE2wntT9vq94QXAZIb9DvUMOrf/L1+kM5Z7QcOTSuKKS+i5wfLOR65f8c7Pw5gN7Zt4woZvJR20w13YeswsrXcozTV1nExPVjWMfSQhnslgcmGxl40JVYTf8zeL2GvLbiRDyHab5VIjZiXe0U2uvPFGoexC0Gx3t/OUFdj42yJcHm0DlQV3mrBgumdO0CjesCFSeKVytPf2bsGcBJLD03QzoAuDH8M9btxVRXd02mW7QTgQ82eHwrA7bWMXIq//0FoY/R78hpOvgecRcK0EJ6Ka5zPUjPvf3LJyQ7WxKPZPhModIFGcg1KHy/e6qQT9qzob/yStaomfZD38pFmSs4ULwulhp+QC5T2NZDkthTpipyfWICPBuM9GeWALtMz0IlEniDTa1SHPuELNDdrGfgfrprYLZNMLGvGK6FNprb+1DNU7D48bIAEJ97gM4FFH70+2B2SJFi4QovqbbjEdBp+3yDy0Vp6klcC6fIG13GGGCWMXzztNOprCVeNWEK+yKtaJ7QRCEu5ht0wdQuRuW/yFIN8q67ma5Wg09wrRY6C4ixUrTe4srdjMWH35RKoA7xkmBaADCXpwt7p6Cnyiw02f39sd9Acbstlo1X1+JPRX702zsHGuV3HCRj7SVdlVOUqGtReNFMDeDLqdrrZT2qYZrn7eTPFoGg0uB0a309txYZ48KgKv24cvBHLhVAuh0SdO6HybeyKtQDfKyjvkhqekko1k+yKJJbFO/8WO4x/HiqanuqDed6WmjiGgy5Hkzr2Dk6rO9QkOcXFoeP9AbpZ1IUsBtX4VfhYs/JZm9qr/nTCC1uAHR42Q8aHElb5r8JPQVvZsvq5sMToZW2i0MJB0f4DNfO3quBH4XZQ8XEX21QkQUIl8FQsncXXRSw+WriILQ1KAhRu0F0XNzW7h8n4/Qxeu8vygFUeCYgf3OhjlU+RnsjN1UPlbaMyChF2N3NLCm1H/ZIO7YPU+KW/VwAeOBYTmFGVGagE56bAIYMf4PBBHitwlBU77bO6VrIcCFe3iPHnCRb6M/XQC5KgbypIzEZmJg5Ij3iqN5EsQ67rvtJfAcOXBwMLGwnSeU9y5kUfQ8ZFyyBP06p5788mtcLvhzzk1MngLLjJ1g+xRUpExUD3wH0YVocL3N6s/fL4hYxnUFXpP66zbYVhFIsrkRGpUwc60MYIpcpL6B0=
Content-Type: multipart/related; boundary="_004_HE1PR83MB03785D65431C5DF40FA08FEA881E9HE1PR83MB0378EURP_"; type="multipart/alternative"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR83MB0378.EURPRD83.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c8f60b36-f388-4ae3-ac30-08da118f6f94
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2022 14:21:37.4856 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Pqbz2yzSEBkFcljmQrey6fuCp+RiERJoZUmF4iEHGPVLmsz8flUsWo9OrYRNZSlHeIWAC+6u+GpY/d7j90R2rr07EsEkqMaqvrYkDiMfREc=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR83MB0328
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/6zUSxWglDvK3jnxz1z8gGedLVK8>
Subject: [netmod] RFC 7951 - JSON encoding of empty lists
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Mar 2022 14:21:47 -0000

Hi,

I think I've found an ambiguity in RFC 7951, and I'd like your input on what was intended and what the best behaviour to exhibit is.

Section 5.3 and 5.4 of RFC 7951 - JSON Encoding of Data Modeled with YANG (ietf.org)<https://datatracker.ietf.org/doc/html/rfc7951#section-5.3> describe the encoding of leaf-lists and lists, however it's unclear how an empty list should be encoded. Should it be encoded as:

  1.  An empty array: {"list": []}
  2.  A missing field: {}

I've seen libraries go either way, libyang only accepts 2 but the python yangson library accepts both (I'm not sure which is the default).

Thanks,
Jack Rickard
he/him
Software Engineer
jack.rickard@microsoft.com<mailto:jack.rickard@microsoft.com>

[Microsoft Logo]