[netconf] Re: WGLC for privcand-06
"maqiufang (A)" <maqiufang1@huawei.com> Tue, 11 March 2025 03:53 UTC
Return-Path: <maqiufang1@huawei.com>
X-Original-To: netconf@mail2.ietf.org
Delivered-To: netconf@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 880359D1EE5 for <netconf@mail2.ietf.org>; Mon, 10 Mar 2025 20:53:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -4.196
X-Spam-Level:
X-Spam-Status: No, score=-4.196 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id poO4nU9A2FkG for <netconf@mail2.ietf.org>; Mon, 10 Mar 2025 20:53:29 -0700 (PDT)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 8E6149D1EDE for <netconf@ietf.org>; Mon, 10 Mar 2025 20:53:29 -0700 (PDT)
Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4ZBfrc29bqz6L55g for <netconf@ietf.org>; Tue, 11 Mar 2025 11:49:04 +0800 (CST)
Received: from lhrpeml500012.china.huawei.com (unknown [7.191.174.4]) by mail.maildlp.com (Postfix) with ESMTPS id 6D64114038F for <netconf@ietf.org>; Tue, 11 Mar 2025 11:53:28 +0800 (CST)
Received: from kwepemk100008.china.huawei.com (7.202.194.56) by lhrpeml500012.china.huawei.com (7.191.174.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Tue, 11 Mar 2025 03:53:27 +0000
Received: from kwepemk200009.china.huawei.com (7.202.194.75) by kwepemk100008.china.huawei.com (7.202.194.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Tue, 11 Mar 2025 11:53:25 +0800
Received: from kwepemk200009.china.huawei.com ([7.202.194.75]) by kwepemk200009.china.huawei.com ([7.202.194.75]) with mapi id 15.02.1544.011; Tue, 11 Mar 2025 11:53:25 +0800
From: "maqiufang (A)" <maqiufang1@huawei.com>
To: Kent Watsen <kent+ietf@watsen.net>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [netconf] Re: WGLC for privcand-06
Thread-Index: AQHbhIJjuwAsNJRMKUq4doNIXWLAmbNndU7w
Date: Tue, 11 Mar 2025 03:53:25 +0000
Message-ID: <ed846bfe110f4aeeb4a2dfe460967768@huawei.com>
References: <01000194e1b787a6-1b7f996e-37be-41cf-95aa-9cf452051c6d-000000@email.amazonses.com> <01000195297589d4-9e19dc4d-6f28-426c-8e22-bf681e59fabe-000000@email.amazonses.com>
In-Reply-To: <01000195297589d4-9e19dc4d-6f28-426c-8e22-bf681e59fabe-000000@email.amazonses.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.136.118.147]
Content-Type: multipart/alternative; boundary="_000_ed846bfe110f4aeeb4a2dfe460967768huaweicom_"
MIME-Version: 1.0
Message-ID-Hash: REGJ7OX5FMMXYQDJCBLMQSD72BMQWV4K
X-Message-ID-Hash: REGJ7OX5FMMXYQDJCBLMQSD72BMQWV4K
X-MailFrom: maqiufang1@huawei.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-netconf.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [netconf] Re: WGLC for privcand-06
List-Id: NETCONF WG list <netconf.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/XYtlEP4VAOJmnoVDayn-v5Q2A3U>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Owner: <mailto:netconf-owner@ietf.org>
List-Post: <mailto:netconf@ietf.org>
List-Subscribe: <mailto:netconf-join@ietf.org>
List-Unsubscribe: <mailto:netconf-leave@ietf.org>
Hi, all,
I've spent some time reviewing this document, and I feel that this document needs further improvements through 1-2 additional revisions. Hopefully some comments below could help (sorry I didn’t check the comments for duplication with Rob’s review):
Some high-level moderate issues I see:
1. The abstract states that the private candidate solution is applicable to both NETCONF and RESTCONF protocol. But the title is "NETCONF private Candidates", should the title be aligned?
1. The document requests to update 6241, 8342, 8526, 9144, but please remove 8342, I didn’t find any updates to NMDA throughout the document.
3. I am unsure if section 3 (Limitations using the shared candidate configuration for multiple clients) is really needed, or would it make sense for this section to be moved inside introduction sec.?
4. Please add a forward reference if any concept mentioned in the earlier part of the text will be explained in detail later, I would also expect an explicit section instead of the statement “more details on this later in this document”.
5. I am not convinced that this draft has no security considerations.
Some security matters in my mind, e.g., access control management for private candidate to prevent unauthorized users access to private candidate. An attacker could attempts to exhaust server resources by establishing a large number of sessions with the server and creates private candidate datastores continuously.
You should also provide the security consideration for the YANG module following rfc8407bis guideline.
6. Please register the YANG module in the "IETF XML" and "YANG Module Names" registry in IANA considerations. I like the way for the yang module to be defined in the normative sections, instead of appendix section. For compare RPC augmentation, I think you should add a when statement and states that this parameter is only available when the source or target is a candidate datastore.
There are also some parts in the draft that I feel lack clarity or not accurate enough:
1. Sec.2.1 "A session specific datastore is a configuration datastore that,
unlike the candidate and running configuration datastores which have
only one per system, is bound to the specific NETCONF session."
s/candidate/shared candidate/. Or maybe startup?
2. Sec2.3. " Any changes made to it, for example, through the use of operations such
as <edit-config> and <edit-data>, are made in this private candidate
configuration. "
I am unsure what this sentence tries to convey, as I though “it” already refers to private-candidate. I think maybe what you refer to is "any changes made to "candidate" target datastore, through the use of operations such as <edit-config> and <edit-data>, are made in this private candidate configuration datastore."
3. Sec.2.3., "All changes made to this private candidate configuration are held
separately from any other candidate configuration changes, whether
made by other users to the shared candidate or any other private
candidate, and are not visible to or accessible by anyone else."
Is it possible for the server to support private candidate and shared candidate simultaneously?
If the server supports private candidate, all configuration changes targeting "candidate" are made to private candidate, then how does it possible for a client to write something into shared candidate?
4. Sec.4. "Additionally, the choice of using a shared candidate configuration
4. datastore or a private candidate configuration datastore MUST be for
4. the entire duration of the NETCONF session."
I am unsure how clients can make any choice between using a shared configuration datastore or a private candidate datastore. If the server supports private candidate, then it should use private candidate for the client, otherwise just use the shared candidate.
5. Is sec.4.4.1 also applicable to RESTCONF server? As I think the RESTCONF capability identifier usually starts with "urn:ietf:params:restconf".
6. Sec.4.4.1 "As support for the shared candidate configuration datastore is a pre-
6. requisite for the private candidate functionlity, a server MUST also
6. advertise the :candidate capability as defined in [RFC6241]."
s/functionlity/functionality/
I am unsure I agree with the first half of this sentence, i.e., support for the shared candidate configuration datastore is a pre-requisite for the private candidate functionality. If an implementation supports private candidate already, then every session uses its own candidate, I don't think there is a need to also support a shared candidate, as no one would use it if they have their own private candidate. Could this be reworded?
7. Sec.4.5.
“A <compare> [RFC9144] operation MAY be performed against:
* The initial creation point of the private candidate's branch
* Against the last update point of the private candidate's branch
* Against the running configuration”
I feel lost when I first read this. I guess you could either remove this part or make it clearer. The origin <compare> RPC must have both a source and a target datastore for the comparison, you should be clear how the RPC is augmented.
8. Sec.4.6.1
“A conflict is when the intent of the client may have been different had it had a different starting point.”
This doesn’t feel like the right definition for a conflict.
“A server MAY choose to add additional checks over and above the above list.”
Remove "and above".
9. Sec.4.7.2.1.1
"When a private candidate is committed using the <confirmed/> parameter and the commit operation disconnects the client's session,"
Note you also have Sec4.3 that states that "Issuing a <commit> operation will not close the private candidate but will issue an implicit <update> operation resyncing changes from the running configuration. "
Is this contradictory?
10. Sec.4.7.2.1.1
I think the draft should also be clear:
· what happens if client 1 has issued a confirmed <commit> and then another client has issued a follow-up confirmed <commit> operation before the time expires?
· What if the <persist> is given in the confirmed commit, and another client gives a follow-up confirming commit?
Could these be clarified?
Best Regards,
Qiufang
- [netconf] WGLC for privcand-06 Kent Watsen
- [netconf] Re: WGLC for privcand-06 Kent Watsen
- [netconf] Re: WGLC for privcand-06 Rob Wilton (rwilton)
- [netconf] Re: WGLC for privcand-06 maqiufang (A)
- [netconf] Re: WGLC for privcand-06 Kent Watsen
- [netconf] Re: WGLC for privcand-06 Robert Wills (rowills)