Re: [netconf] Comments on draft-jgc-netconf-privcand

"Joe Clarke (jclarke)" <jclarke@cisco.com> Wed, 16 August 2023 13:28 UTC

Return-Path: <jclarke@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 134E4C1527AE for <netconf@ietfa.amsl.com>; Wed, 16 Aug 2023 06:28:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -11.904
X-Spam-Level:
X-Spam-Status: No, score=-11.904 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIMWL_WL_MED=-0.001, 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_NONE=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, 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="B6/xUy2c"; dkim=pass (1024-bit key) header.d=cisco.com header.b="HqxLzBeu"
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 C3v7lMQkeQH3 for <netconf@ietfa.amsl.com>; Wed, 16 Aug 2023 06:28:30 -0700 (PDT)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2E97BC15270B for <netconf@ietf.org>; Wed, 16 Aug 2023 06:28:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=70110; q=dns/txt; s=iport; t=1692192510; x=1693402110; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=8a0kb5aN3FNJsV0pGdr0bi/N3u+Eq/r2YMf+GrRSmhs=; b=B6/xUy2cCy3MahlB8iToQHZrWaL543wI/qlU+UUIyxS5HRvt95vTfK1q fnJg0u/nmMZaOhXmULzbE95rltAl+IHXLw2H9kOa5fjHELTGpdcsPJ4Qw jWGM7GMFZHENSl7IANt0kEAilMg9/8YrhVh3zkXNYF1NreLkFkJ7F44JK 8=;
X-IPAS-Result: A0AgAABqztxkmJBdJa1QChwBAQEBAQEHAQESAQEEBAEBZYEWBwEBCwGBLzFSdAJZKhJHhFGDTAOETl+IYAOXYoE4hF8UgREDUQUPAQEBDQEBLgEKCwQBAYRARgIWhkcCJTQJDgECAgIBAQEBAwIDAQEBAQEBAwEBBQEBAQIBBwQUAQEBAQEBAQEeGQUOECeFaA2GBAEBAQEDAQEQCAkEGQEBLAYFAQ8CAQYCEQMBAiEBBgMCAgIlCxQJCAIEAQ0FCBMHglwBghZIAwEQj0OPTgGBQAKKJnp/M4EBggkBAQYEBbJsAwaBQgGIAAGBSgEBiC4nG4FJRIEVQ1WCEz6CYgEBAoElBAEHBAcBCRoeFoMlOYIuhw8NgW5ugWeBE4IJGC4DAwEyCYEHDAknBlqDAj41hzgqgQgIXoFuPQINVQsLY4EVgkcCAhEnExNQcRsDBwOBBBAvBwQyHQcGCRcYFyUGUQctJAkTFUAEgXiBVgqBAz8VDhGCTys2OBlLgmYJFQY6UHgQLgQUGIEMCARLJR8VHjcREhkNAwh7HQI0PAMFAwQ2ChUNCyEFFEMDSAZQCwMCIwUDGQNEHUADC209NRQbBQRmWQWeBgoUPTSBVxBbBgEtBCIQBC8UCAgiLQxqOAUwCAECCy+SRjmDIYp0R410lGQKhAuPTpFsF4QBk1mQci1imCoggi+gMoUYAgQCBAUCDgEBBoFjOmtwcBU7gmdSGQ+OIAwFCAmDUoUUimV2AjkCBwEKAQEDCYZIgiaBfF4BAQ
IronPort-PHdr: A9a23:FYDZChyy7tWrjQHXCzMSngc9DxPP853uNQITr50/hK0LL+Ko/o/pO wrU4vA+xFPKXICO8/tfkKKWqKHvX2Uc/IyM+G4Pap1CVhIJyI0WkgUsDdTDCBjTJ//xZCt8F 8NHBxd+53/uCUFOA47lYkHK5Hi77DocABL6YAh+Iu3vGYP6hMWs3Of08JrWME1EgTOnauZqJ Q6t5UXJ49ALiJFrLLowzBaBrnpTLuJRw24pbV7GlBfn7cD295lmmxk=
IronPort-Data: A9a23:hboFcqmL6G1rKj2kfBiO12Xo5gzuJkRdPkR7XQ2eYbSJt1+Wr1Gzt xJOWD+BbvaLNDP0Kdx/Ot/l80IEvseBnYNgGQBrqyoxHltH+JHPbTi7wugcHM8zwunrFh8PA xA2M4GYRCwMZiaA4E/raNANlFEkvU2ybuKU5NXsZGYpHGeIdA970Ug4w75g3NYy6TSEK1rlV e3a8pW31GCNg1aYAkpMg05UgEoy1BhakGpwUm0WPZinjneH/5UmJM53yZWKEpfNatI88thW6 Ar05OrREmvxp3/BAz4++1rxWhVirrX6ZWBihpfKMkSvqkAqm8A87ko0HKUTaHpUlTe7ptF82 IhOiLafWV0MN7KZzYzxUzEAe81/FbdN9LmCKn+lvInDiUbHaHDrhf5pCSnaP6VBpb0xWj4Ip KdecWxRBvyAr7reLLaTSOJoj94gIeHgPZgUvTdryjSx4fMOGMiZHPWWtYUFtNs2rppNHuaCR 8UYVWN+fjL8Rh1ua0UYJ51ryY9EgVGmI2EH9zp5v5Ef5WXPxwt33pDsPcbbPNuQSq1ocl2wv GnK+SHyBQsXcYzZwjue+XXqjejK9c/mZG4MPOK398Npnl+h/20eGEAVaHGUsaOcg1HrDrqzN Hco0iYpqKEz8mmiQd/8QwC0rRa4Uvg0Boo4/woStV/l90bE3+qKLjNbEWMZObTKoOdzFGN6j AbY9z/8LWU36OX9dJ6LyluDQdqP1cU9N2QOY2oPShEIpomlq4AohRWJRdFmeEJUsjEXMW+oq 9xphHFu71n2sSLt//nilbwgq271zqUltiZvum3qspuNt2uVnrKNaY2y8kT85v1dNoufRVTpl CFaypLHtrxUUcvTy3XlrAAx8FeBua/t3Nr03wYHInXd32/FF4OLJNoJu2gueC+FzO5dIWO5C KMshe+hzMYDYCT1BUOGS4mwEM8thbPxDsjoU+u8Uza9SsYZSeNzxwk3PRT49zm0yCAEyPhjU b/FKpzEJShBVsxaIM+eGr11PUkDnH5unAs+hPnTknya7FZpTCfNEOtYaAXWMblRAWHtiFy9z uuz/vCikn13eOb/eSLQt4UUKDg3wbITXMieRxB/HgJbHjdbJQ==
IronPort-HdrOrdr: A9a23:1JMXZaywE2a4RNGd5RLYKrPxnuskLtp133Aq2lEZdPULSK2lfp GV8sjziyWatN9IYgBepTnhAsO9qXO1z+8T3WBjB8bdYOCGghrkEGgG1+vfKlLbalbDH4JmpM Jdmu1FeaHN5DtB/IrHCWuDYqwdKbC8mcjC6Za8vhVQpENRGtxdBmxCe2Cm+zhNNXF77O0CZe OhD6R81l6dkHIsA/iTNz0gZazuttfLnJXpbVotHBg88jSDijuu9frTDwWY9g12aUIA/Z4StU z+1yDp7KSqtP+2jjXG0XXI0phQkNz9jvNeGc23jNQPIDmEsHfoWG0hYczDgNkGmpDs1L8Yqq iIn/7mBbU215rlRBD3nfIq4Xim7N9h0Q6l9bbSuwqTnSWwfkNLNyMGv/MXTvMcgHBQ5O2VF8 lwrjuknosSAhXakCvn4d/UExlsi0qvuHIn1fUelnpFTOIlGfdsRKEkjTVo+a07bWvHwZFiFP MrANDX5f5Qf1/fZ3fFvnN3yNjpWngoBB+JTkULp8TQilFt7TpE5lpdwNZakmYL9Zo7RZUB7+ PYMr5wnLULSsMNd6pyCOoIXMPyAG3QRhDHNn6UPD3cZeo6EmOIr4Sy7KQ+5emsdpBNxJwumI 7ZWFcdrmI2c1KGM7z44HSKyGG4fIyQZ0WZ9igF3ekLhlTVfsuYDRG+
X-Talos-CUID: 9a23:+hZirmody13a11/Yr3KukT/mUZ8qc0De0nXiGk61GTtqdZe6WQW18bwxxg==
X-Talos-MUID: 9a23:0vfySQTjhsw5slD2RXS2hzJyaOdn4pj3GVIrrbAGmpiWOgN/bmI=
X-IronPort-Anti-Spam-Filtered: true
Received: from rcdn-core-8.cisco.com ([173.37.93.144]) by rcdn-iport-2.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2023 13:28:27 +0000
Received: from rcdn-opgw-5.cisco.com (rcdn-opgw-5.cisco.com [72.163.7.169]) by rcdn-core-8.cisco.com (8.15.2/8.15.2) with ESMTPS id 37GDSR2v020361 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for <netconf@ietf.org>; Wed, 16 Aug 2023 13:28:27 GMT
Authentication-Results: rcdn-opgw-5.cisco.com; dkim=pass (signature verified) header.i=@cisco.com; spf=Pass smtp.mailfrom=jclarke@cisco.com; dmarc=pass (p=quarantine dis=none) d=cisco.com
X-IronPort-AV: E=Sophos;i="6.01,177,1684800000"; d="scan'208,217";a="307939"
Received: from mail-dm6nam10lp2104.outbound.protection.outlook.com (HELO NAM10-DM6-obe.outbound.protection.outlook.com) ([104.47.58.104]) by rcdn-opgw-5.cisco.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Aug 2023 13:28:27 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fk5UL0vefY32K2iDecP1f/nYP6c+5/OZV1d38ZI+XxEv0EmuJQGaYC27qBcsm+udfOEE2g0HUROhxI5D4n+IDwFGS+3fqFknmg1vH5zXQtqJSb9RwM6UWevXN71jWAzoa2aIbTqtLVpnepcfnxLrkNZnj+je7gGuRIDEPVrCyZk4GJpHzvGOoHn6VPVcH0ZATyJ3/RCOhlxvmCtBNETwPdGKfvcfldAdbsr1AXG50a8F22ZUkIpDSd13/e5ii6YucS4vW8I8YONMkDEQ/+WIN5ghWLOj0Ogg9R1VtOJkB+fZ3oGKsba+6Y3DwbbWVaO5sF2fgyp5FOULEkCYigyNsQ==
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=8a0kb5aN3FNJsV0pGdr0bi/N3u+Eq/r2YMf+GrRSmhs=; b=Hvgx6HykK3HZwiH29L9S5P6KELh20VgmdgdRwrndb/LHrH+OU06BeJJHmXyxXY3e1IqvGKJrYue+ZyLjopa2W1PcAwf7uYIamwv8sc87HO1DB5yuWJLWKFqaIYuiRHg6QJbx3Jb2nWv783EhHYIXeV1htkyUYfqZnEM0rdp1TI8L9SamqzbWi++N4/Gc6DDpANrecFUsGVRzrHvJIFv7CXzZGLapo5QgJbWpsFwle5nXx9xOuYMs+6hyL7W2TXBizZSCKixm80iVac5vline71l9l3WPjVzcfbnFFsuFxMXArKu74ZahqWm8soPKmFNBfAQn6T8fZcyC2+z8E4c5lA==
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.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8a0kb5aN3FNJsV0pGdr0bi/N3u+Eq/r2YMf+GrRSmhs=; b=HqxLzBeuXVLJL9keDq7t+uh98RVYREY1fCe33xfFHgeYrhjsVyrmsz7kNd0nnigs3PbSj03Aae73P/O9GbwUwYf7hGY+Urd7RPvKC+/gC78VMlGHtTJvb+LsGGdwQUqmhwBuMJzk6Fp7LVfcAyGG2EjBcdT3XRv59Y1MSnrwKGk=
Received: from BN9PR11MB5371.namprd11.prod.outlook.com (2603:10b6:408:11c::11) by SJ0PR11MB6717.namprd11.prod.outlook.com (2603:10b6:a03:44f::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6678.26; Wed, 16 Aug 2023 13:28:24 +0000
Received: from BN9PR11MB5371.namprd11.prod.outlook.com ([fe80::616e:ead1:6cd0:bdbb]) by BN9PR11MB5371.namprd11.prod.outlook.com ([fe80::616e:ead1:6cd0:bdbb%4]) with mapi id 15.20.6678.029; Wed, 16 Aug 2023 13:28:24 +0000
From: "Joe Clarke (jclarke)" <jclarke@cisco.com>
To: Jan Lindblad <janl@tail-f.com>, "James Cumming (Nokia)" <james.cumming@nokia.com>
CC: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [netconf] Comments on draft-jgc-netconf-privcand
Thread-Index: AQHZz8CFFy5Xc9o620aMDspKbn2oBq/srwKAgAA6+I4=
Date: Wed, 16 Aug 2023 13:28:24 +0000
Message-ID: <BN9PR11MB5371B374D25A7A3356CC76B0B815A@BN9PR11MB5371.namprd11.prod.outlook.com>
References: <SA1PR08MB7215DFD010656EA92D10210AFF14A@SA1PR08MB7215.namprd08.prod.outlook.com> <96C32037-EBF7-4104-A845-8549160AF786@tail-f.com>
In-Reply-To: <96C32037-EBF7-4104-A845-8549160AF786@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BN9PR11MB5371:EE_|SJ0PR11MB6717:EE_
x-ms-office365-filtering-correlation-id: 21530af7-1d90-49c1-d91a-08db9e5cab13
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: o2+Jq+i4fIJ6MrTXyNJ21SSux/vS4RDxHhMsCXM6l/a0qpBqMBzQbIkmX3TpsqqbP0oK9Yv34yVgwEb333x38b+IfW5ox7RHSv90CW+E+DRpuKn4Oi/KM8vge284rBhWqirwp9DwknLpyum5WrTaotjkfDq0wkRQdDDU5LcvoV1elYGn8qpTtOKwwexVu3TIQAzPjwNKuFGDHTqJE2dSycvyunM314rWKc2/VqvVgnDxNFHeEbSGkUe7dKxuzmnuodTDTWrCEZ8mZtOdLX9B4XfMJNuBNxM0sQ/Fade5qJt6Znm3+laacgDf7xYKsKjTJU2UEXXJSilddQLm/KfsWTd5tQwAxTe8o6cO6UAacxGAdUQXnOZOgsInNTPpwhEFvRkDhGDcvOgMfqxw5BTUOvvKrtipoHOtwRrF3U0GSt+yfOpTyUpdDoA4j+5o2oBiYzu2FAQ9iLWR8prOK599SJcDWMDnLKjKNslguwhO7MVlfSCxEHs4AA6trYym0GQihOL9Nk/uOiTqGczsoMmDNgUylj0eMuhWD/p0YuVamEa1nPKc5KFh4Df6h4kgwS7tRTiLCCb3YQ35RKLuIOt9XtiWKEj1zsq3P0yjRt/E260=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5371.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(39860400002)(346002)(366004)(376002)(136003)(1800799009)(451199024)(186009)(316002)(76116006)(66946007)(64756008)(110136005)(66476007)(66556008)(66446008)(122000001)(966005)(41300700001)(52536014)(5660300002)(66574015)(38070700005)(38100700002)(8676002)(4326008)(8936002)(66899024)(30864003)(2906002)(83380400001)(26005)(55016003)(478600001)(86362001)(9686003)(53546011)(33656002)(55236004)(7696005)(6506007)(71200400001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 4HNggcEgg9qGSABFxZSS4NYiIC1XgGck1WDKMFyacOcTvVdtIzibx+BLMCYAckog3MXgKUhEbZzRydmXKnUgAU6qdFjge+lWmXOVOoOjxtUJWEdfJVVyvMLqYSln2y6SFtmle9xATyMQIpxvgaiXwTeVJaguHW7L/Ee1INVLcS+wsFrMAi35JAb+APkSnvOL5hsq6sGM19/rObWb057rfgU1ieODaZlUcw8oE2ZBRKcS6wBW3EuZXE0CNoeO2trl3BLawZnYM/DoSef2bz9sDGDgnFrwsD31E9T50LXybW42JUD0nltrVpl6ZF/sqCzXG9UEnwgmHwlSDMKoD3QETpXil8dri3nb/ZqosnnsFSHQgrmrnORiJHa5ahLR40BtMK+r3KVwXg7G31oWjzraNDLlmvrJHKEcJQWXIwTpxsnHK0F9qQhDLGsyuEPxJhGOPG2VHIVbfOPcuakugpHCrI3M6BB7fnv7EjS4e/uxIRckcurMQaWYGoY3WumlqdOm2iSVmhR0/9M2IgrQP+zCm1ltEVFpKsdXuW5anRxnZdb4uW68wjfDTA9U7fQH0PBKQyW115ZTaFVXulkZ5yzLfN3akpO8pq4/UaHvlofzngFUsGIXFm2BOWrpvIThcitoyen5V6Y28qLdHeCQ4+pQpiiCT8/H9flTsZ6r45sScbv0bxamyBYdhtfdtQEp+Q6KVpKahjuGiuE7wPVVBAzLGj6rosDjsTCLTRTSGHuNXjU7TMI1liQBxWPmmeHSKRjAD1L6DU4bMpWOmx+pVz7MiOhPDpqESoW5jsapoxxl7NTv1EhW2XloBgkdywKKwAkdX8KusO+X02sA2n4jhYhbuGFO4PzpDfGycW9rBzGtS30cT11mhHUjtf8sWHPCAwdRbNon2iyErGwK57pKW0DGbedjOFjWpVpHCqu8IK2fkunJyRXJdCzmlQbd8L1XdOa+rHsg4trYhBCdz8GfsmgdpGgLB3GhBKELMp9lgI5LkNsBthS0eFrPYU26eEVzfM6CD7pNGGm+K45InehT98IooFJq+yK3ImejVIHbGSo4YXWmNGoHKCfNqI0GgkuINmfMoZNMyaCDC2l7PwYV+E40OxlaIzCvPS5MNOcRKioupKdqPJhASeUVPo7Y/7+3ahxLY1/GSvsnuiHMmbVEHxDlXeCXhn9/uGv8AdgTG8xtrujRH5fdbodnmhyW434FU0GPDvM1eX0Iwll0Bc/PGVXnV2fPWU76TOyZX7y9aL81bwt46LEmKBUrXCoUbsjnolVlDhtgPJv8WgV7FYeyRN54jNH6i5MAwJ52NT7v9bSgAMXrid72JYgYjhPzWVPbDyW9Deomig6RS5HwsyL+bZ/Qlt+vlUP+PE9qUfD88d6ozt7cNM1CEU3WEYrBhRoqHTVawKW3kLriDBwJKwjL7t+TbFZl2gk+g+FrrQ8xfKNflraJSa/La0ZX43/VZgQqEpeJRfI/Cb32UYnyhIrOg450cW5tVbEpg5ihq5dn0VkNh49C+jxA6pzatdVQStABVDR4shslvSua/Nz2ch+xFLOcdnYZ2HH40IjHf1PtiLSnLsVrrSWbkXnbexU5L/e3cOJAj9UZKqDiy50aBeUYUnEqxA==
Content-Type: multipart/alternative; boundary="_000_BN9PR11MB5371B374D25A7A3356CC76B0B815ABN9PR11MB5371namp_"
MIME-Version: 1.0
X-OriginatorOrg: cisco.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5371.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 21530af7-1d90-49c1-d91a-08db9e5cab13
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Aug 2023 13:28:24.7271 (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: yTWfZM/BTq115b3RofGibkztcR8FllieoMBX5CT2TrxBLEIUN28TTsSh/G+pcv0/IqKvfUSDIYesuOLt2VjYsw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB6717
X-Outbound-SMTP-Client: 72.163.7.169, rcdn-opgw-5.cisco.com
X-Outbound-Node: rcdn-core-8.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/r0RQrwT0_xRZ0EkkzZO41hndHxk>
Subject: Re: [netconf] Comments on draft-jgc-netconf-privcand
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Aug 2023 13:28:35 -0000

Jan beat me to the reply, so I’ll reply to his reply.

From: Jan Lindblad <janl@tail-f.com>
Date: Wednesday, August 16, 2023 at 05:52
To: James Cumming (Nokia) <james.cumming@nokia.com>
Cc: Joe Clarke (jclarke) <jclarke@cisco.com>, netconf@ietf.org <netconf@ietf.org>
Subject: Re: [netconf] Comments on draft-jgc-netconf-privcand
James,

Thanks for thinking about how these drafts may be aligned. My comments below, marked [janl].

Hi Joe, and Jan as this is txid related),
And the wider working group…..

Rob and I (the authors of this draft) were talking today about the suggestion of the using the TXID to identify conflicts.

This is how we understand the proposal might be described.

Consider the following pseudo configuration (in tree format to make it easier to read) in the running
configuration at the start of this workflow.

+-- configure (txid: 0)
    +-- myvpn [vpn-name=”foo”] (txid: 0)
        +-- interface [interface-name="intf1"] (txid: 0)
           |   +-- description "intf1_desc" (txid: 0)
           +-- interface [interface-name="intf2"] (txid: 0)
               +-- description "intf2_desc" (txid: 0)

And consider the following workflow (using the private-candidates style branch diagram format):

       +-------------------*  Shared candidate
      /                     \
     /                       ⌄
+----+-+---+-----------------+-----------------------------> Running
        \   \
         \   \
          \   +-----------------------(y)--------------> Private candidate 2
           \
            +-------------------------(x)--------------> Private candidate 1

For the purposes of this email, we're going to focus just on the conflict detection when using
txid (and I'm going to simplify the txid part a little to make it easy to read).

The private candidate at creation time (the start of its branch) has the identical configuration as the
initial running, including the same txid (0) on all elements.

Step 1. The user configuring the shared candidate changes the description of interface 1 and commits it.
The txid is changed on the /configure/myvpn[vpn-name="foo"]/interface[interface-name="intf1"]/description
path and back up the tree to the root:

+-- configure (txid: 1)
    +-- myvpn [vpn-name=”foo”] (txid: 1)
        +-- interface [interface-name="intf1"] (txid: 1)
           |   +-- description "intf1_desc" (txid: 1)
           +-- interface [interface-name="intf2"] (txid: 0)
               +-- description "intf2_desc" (txid: 0)

Step 2. The user configuring private candidate 1 adds a description to the vpn itself and issues and
update (at point (x)) which (assuming the default revert-on-conflict) succeeds with no conflict
detected because the system checks the /configure/myvpn[vpn-name="foo"]/description path and finds it
doesn't exist (so no txid) meaning there is not a conflict.  If it were to commit (which lets say right
now that it does not) the resulting configuration would be this:

+-- configure (txid: 2)
    +-- myvpn [vpn-name=”foo”] (txid: 2)
        +-- description "new description" (txid: 2)
        +-- interface [interface-name="intf1"] (txid: 1)
           |   +-- description "intf1_desc" (txid: 1)
           +-- interface [interface-name="intf2"] (txid: 0)
               +-- description "intf2_desc" (txid: 0)

Step 3. Another user configuring private candidate 2 changes the description in interface 1 and issues an
update (at point (y)) which (assuming the default revert-on-conflict) fails saying there is a conflict
because it has checked the txid on that leaf when it started (txid: 0) against the txid on that same
leaf in the running configuration and found that it now has a different txid (txid: 1) and as 0 != 1
this means conflict.

Is this what you had in mind?

Are there any situations where this wouldn't be the case, or you see issues with this working?

[janl] As far as I understand from the examples, the collision detection would happen entirely by comparing txids on leafs and leaf-list elements (probably also anydata)? I think something like this could be one basic way of leveraging the txid mechanism. An important use case not shown in the examples above is how deletion works. And we'd have to think about how p-containers should work in this context.

[JMC] What James has laid out is similar to what I had in my head.  I don’t follow what you mean by deletions, though, from a conflict detection standpoint.  If the txid is different, it’s different.

With this "leaf change-based" approach (assuming I got it reasonably right from the examples), clients have little control over how the collision detection happens, but don't really have to be aware of any txid values, which keeps things very simple for them. I suppose the conflict detection mechanism would be limited to only+always detect conflicts at leaf level, but perhaps that is good enough for many use cases.


[janl] Another, more elaborate way, would be to allow clients to really use the txid attributes as described in the txid draft in their edit-config (edit-data) messages. With this approach (which is already described for both shared and private candidates in the txid doc), clients would send the txid values they care about embedded in the edit payloads. This would give clients fine control over how the conflict detection/resolution happens.

Let's say one client doesn't care at all about any conflicts in the interface description. It would therefore not send any txid value for the interface description it changed, and the change would go through regardless of any changes by others. This is similar to how edits work today for all datastores.

[JMC] I was thinking along these lines but more of a “classic” edit-config or “force” whereby the client asserts its config over whatever may have been on the server before.  This is like a “sync-to” when I think of Cisco’s NSO tool.

Another client might have a more cautious approach. It might consider any change at all by anyone else under the vpn instance foo worth flagging. It would send the last known txid for the foo instance, and therefore consider any change of that instance a collision, regardless of whether the particular leaf(s) it changed was changed by anyone else or not.


I'm thinking of some more complicated items such as changing leaf-lists and changing metadata (annotations).

[janl] Regarding leaf-lists, I think it would make sense to treat each list entry instance like a separate leaf. That corresponds to the way lists work, and how leaf-lists are encoded in NETCONF XML and RESTCONF XML or JSON.

[JMC] Hmmm, how would that work for ordered-by user leaf-lists?  I would think that if I’m setting a leaf-list node that’s out of sync with the server, I’d want to detect and fail as even an append might break the desired order.

Regarding metadata changes, the txid document only has config true data in scope; operdata and metadata are currently not covered by this mechanism. Nothing prevents us of course from extending the txid doc for this use case as well, or to design a new mechanism in privcand that borrows/refers to some sections in txid, or come up with a completely new mechanism or document.

Additionally, how would system configuration where systems currently self-provision data, and how in
future, would items provisioned (either by copy or inheritance) from a system datastore be expected to work
from a txid standpoint?

[janl] The exact design of the system datastore is still in the air, so it may be hard to say something conclusive at this point. From my perspective, it would seem natural that system datastore changes would appear as if an on-board client had made the changes. Such changes would show up in the system datastore, as well as perhaps in running, intended or candidate datastore(s).

We would need to differentiate in the txid draft (and I don’t recall whether you already do Jan – sorry)
between no txid on new items as opposed to inheriting the parents txid on creation.  If the inheritance
approach was taken then this method of conflict detection would yield ‘false conflicts’.

[janl] Well, it's rather the other way around. Parent (ancestor) nodes in the YANG tree are marked with the new txid as their children are changed. The way I understood the examples above, only txids of "leaf-like" (value bearing nodes) would be compared, and in that case I don't think there would be any false conflicts. As noted earlier, the examples do not show deletion and p-containers, so there would be a few things to sort out with this approach, and it is possible that solutions to those issues might lead to situations with false conflicts.

[JMC] Ah, now I see what you mean by deletes.  To me if I delete a node, that would have to adjust the parent’s txid.

Just to address one specific in your email Joe…… I am not sure that using txid helps at all in conflict RESOLUTION
only in DETECTION but I suspect this is what you meant anyway but clarification would help.

[janl] While it is true that the txid does not mention conflict resolution, it does set the stage for it. Since clients declare in their edit payloads what YANG nodes they care about not being changed (or not), the conflict resolution becomes a lot simpler. Either the client's conditions for going through with the edit are fulfilled (and the transaction goes through), or there is a problem. All the middle cases, which the client would have to go through and decide if it is a real problem or not (all the while still further changes may be happening) are already taken care of. What exactly the client does once a real problem has been detected is of course out of scope from both txid and privcand.

[JMC] Agreed.

Joe

Best Regards,
/jan



From: netconf netconf-bounces@ietf.org<mailto:netconf-bounces@ietf.org> on behalf of James Cumming (Nokia) james.cumming@nokia.com<mailto:james.cumming@nokia.com>
Date: Monday, 31 July 2023 at 09:45
To: Joe Clarke (jclarke) jclarke=40cisco.com@dmarc.ietf.org<mailto:jclarke=40cisco.com@dmarc.ietf.org>, netconf@ietf.org<mailto:netconf@ietf.org> netconf@ietf.org<mailto:netconf@ietf.org>
Subject: Re: [netconf] Comments on draft-jgc-netconf-privcand
Thanks for the comments Joe.  The authors will take a good look through them and address them either in the next version of the draft or on the list shortly.

It’s really useful to have the specific feedback and I’d encourage others to share as well.




From: netconf netconf-bounces@ietf.org<mailto:netconf-bounces@ietf.org> on behalf of Joe Clarke (jclarke) jclarke=40cisco.com@dmarc.ietf.org<mailto:jclarke=40cisco.com@dmarc.ietf.org>
Date: Thursday, 27 July 2023 at 14:44
To: netconf@ietf.org<mailto:netconf@ietf.org> netconf@ietf.org<mailto:netconf@ietf.org>
Subject: [netconf] Comments on draft-jgc-netconf-privcand
I mentioned some of this in chat (as my browser permissions were giving me a fit).  I support this work.  I think taken with the tracing and txid work it brings the possibility of more context and metadata to configuration changes.  I like the “git” aspects being pushed to the NETCONF/RESTCONF server.

I agree with Balazs that conflict resolution is important here, and I like the idea of using txid as a means to do this.  I don’t particularly like the auto-update approach, though.  I’d rather attempt a <commit> and find than an update and potential resolution is needed.

I was also going to make a similar comment to Quifang.  I would like to see the ability to delete a private candidate on commit.  If we care about the private candidate name (perhaps for tracing), I might want to do one type of change in private-add-exampleco1-vpn, commit it, and then have the candidate deleted so I can continue my session with a new private candidate for another change.

I suppose I can <delete-config> this to remove the old private candidate, but I’d like an extension to commit to do this at once (though not so much of a big deal).  I’d rather not have to disconnect and reconnect the session to perform this type of flow, though.

Joe




_______________________________________________
netconf mailing list
netconf@ietf.org
https://www.ietf.org/mailman/listinfo/netconf