[Tsv-art] Re: [netconf] Re: draft-ietf-netconf-over-quic-04 early Tsvart review

戴锦友 <djy@fiberhome.com> Fri, 28 November 2025 06:25 UTC

Return-Path: <djy@fiberhome.com>
X-Original-To: tsv-art@mail2.ietf.org
Delivered-To: tsv-art@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 431E091EFF91; Thu, 27 Nov 2025 22:25:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.886
X-Spam-Level:
X-Spam-Status: No, score=-1.886 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_FONT_FACE_BAD=0.001, HTML_MESSAGE=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, T_KAM_HTML_FONT_INVALID=0.01] 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 3BOVOvZQgClt; Thu, 27 Nov 2025 22:25:01 -0800 (PST)
Received: from mxuc.fiberhome.com (mxuc.fiberhome.com [113.57.179.111]) by mail2.ietf.org (Postfix) with SMTP id 7963691EFF85; Thu, 27 Nov 2025 22:24:59 -0800 (PST)
Received: from fiberhome.com (unknown [10.132.0.75]) by mxuc.fiberhome.com (MailData Gateway V2.8.8) with ESMTP id 384F9380069E1; Fri, 28 Nov 2025 14:24:49 +0800 (CST)
Received: from LAPTOP-MAVU81J9 (unknown [111.183.122.18]) by app1 (Coremail) with SMTP id AwSECkAAcYEpQClpmIpjAA--.11481S2; Fri, 28 Nov 2025 14:24:41 +0800 (CST)
Date: Fri, 28 Nov 2025 14:24:42 +0800
X-MD-Sfrom: djy@fiberhome.com
X-MD-SrcIP: 10.132.0.75
From: 戴锦友 <djy@fiberhome.com>
To: Martin Duke <martin.h.duke@gmail.com>, Per Andersson <per.ietf@ionio.se>
X-Priority: 3
X-Has-Attach: no
X-Mailer: Foxmail 7.2.25.489[cn]
Mime-Version: 1.0
Message-ID: <2025112814244180819616@fiberhome.com>
Content-Type: multipart/alternative; boundary="----=_001_NextPart100368330783_=----"
X-CM-TRANSID: AwSECkAAcYEpQClpmIpjAA--.11481S2
X-Coremail-Antispam: 1UD129KBjvJXoW3XFy5JFWDWF48Jw43ur47XFb_yoW7Kw1xpF 4UC393Kr4DJFykCr97Xw109ryFvFZ5JF43JryYgr1UAa90grn3KFsrK3WYga4kCry5ZFWj vr4Uu3ykAr98CaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUPvb7Iv0xC_Kw4lb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xII jxv20xvEc7CjxVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4 A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG6xAIxVCF xsxG0wAqx4xG6I80eVA0xI0YY7vIx2IE14AGzxvEb7x7McIj6xIIjxv20xvE14v26r1j6r 18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vI r41lFcxC0VAYjxAxZF0Ew4CEw7xC0wACY4xI67k04243AVC20s07MxkIecxEwVAFwVW8Aw CF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r10 6r1rMI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_JF0_Jw1lIxkGc2Ij64 vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_ Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0x vEx4A2jsIEc7CjxVAFwI0_Jr0_Gr1l6VACY4xI67k04243AbIYCTnIWIevJa73UjIFyTuY vjxUyrgADUUUU
X-CM-SenderInfo: hgm1qwhleh2xxrphhudrp/
Message-ID-Hash: UDPVGG2HE4UXWUG6FUKT7OCGHEXAR5QB
X-Message-ID-Hash: UDPVGG2HE4UXWUG6FUKT7OCGHEXAR5QB
X-MailFrom: djy@fiberhome.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tsv-art.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: tsv-art <tsv-art@ietf.org>, "draft-ietf-netconf-over-quic.all" <draft-ietf-netconf-over-quic.all@ietf.org>, netconf <netconf@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Tsv-art] Re: [netconf] Re: draft-ietf-netconf-over-quic-04 early Tsvart review
List-Id: Transport Area Review Team <tsv-art.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsv-art/tNewWWCr3GSLP-Ut3yTmF5SAjL0>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsv-art>
List-Help: <mailto:tsv-art-request@ietf.org?subject=help>
List-Owner: <mailto:tsv-art-owner@ietf.org>
List-Post: <mailto:tsv-art@ietf.org>
List-Subscribe: <mailto:tsv-art-join@ietf.org>
List-Unsubscribe: <mailto:tsv-art-leave@ietf.org>

Hi,Martin,
Thank you for your comment.
The illustration from my side can be seen in the in-line bolded text.
Best regards!



David Dai
Fiberhome Technologies/CICT
Addr: Gaoxin Road 6#, Wuhan, Hubei, China
Tel:  +86 27-87693442-8318
MObile: +86 15377065812
Fax:  +86 27-87693784
E-mail: djy@fiberhome.com
 
From: Martin Duke
Date: 2025-11-14 04:51
To: Per Andersson
CC: tsv-art; draft-ietf-netconf-over-quic.all; netconf
Subject: [netconf] Re: draft-ietf-netconf-over-quic-04 early Tsvart review
Broadly, no, draft-05 does not address the concerns.

Please remove the description of the codepoint for the various stream types in Section 4. This is not robust to new QUIC versions and is not important to the application.
     I think it is at least harmless and somehowbeneficial to keep the code point there. If you hold the opinion to strike out them, I think it is better
     to dicuss with you first.  Because the codepoints are defined in a published RFC and there is not a need to change them , I really have no idea why we should modified
     those codepoint in the future.  
    After discussion, If we think it is necessary to remove those code point, I'll do it soon.

4.1 This is still self-contradictory:

"The messages used to exchange configuration data MUST be mapped into one or more bidirectional streams"
Replace "one or more bidirectional streams" with "one bidirectional streams". (The reason is that we got 
several options that can work. and at the 124 meeting, we decided to use one of them)

"Since RPC processing is serialized and ordered within a session ([RFC6241] section 4.5), a bidirectional stream MUST MUST be used for each NETCONF session"

So is it "one" (because it's serialized and ordered) or "one or more"?

BTW: s/MUST MUST/MUST (YES, this is a typo, we will modify it)


4.3 I don't understand subscription mechanics. 4.2 says all notifications are over one uni stream. 4.3. says there is one uni stream per subscription. I don't understand how the client initiates subscriptions if they don't go over the bidi stream (4.2) and all the other streams are unidirectional in the server->client direction.
That's is  to say, after the initiation of a subscription, there is one uni stream per subscription

Section 9 still refers to a section 2.1 that doesn't exist.
We'll fix the typo

The draft still does not clarify that closing the bidi stream is an error.
We'll add necessary errors.


On Fri, Oct 17, 2025 at 4:08 AM Per Andersson <per.ietf@ionio.se> wrote:
Hi Martin,

A new revision has been published.

Realizing now that your point on error codes is missing.

Can you let us know if it addresses your other concerns.


--
Per



On Fri, Jun 13, 2025 at 11:52 PM Martin Duke via Datatracker
<noreply@ietf.org> wrote:
>
> Document: draft-ietf-netconf-over-quic
> Title: NETCONF over QUIC
> Reviewer: Martin Duke
> Review result: Not Ready
>
> The document proposes to run NETCONF directly over QUIC, but I found the
> details of the mapping hard to discern.
>
> I have little to no knowledge of NETCONF itself, but am qualified to review a
> QUIC mapping.
>
> 1. Mapping sessions to QUIC connections
>
> The most obvious way to do this is to have one QUIC connection per NETCONF
> session. But having application-level termination in <close-session> and
> <kill-session> messages be totally distinct from QUIC Connection Close leaves a
> possible zombie state where the connection lives but the session is dead. It is
> not 100% clear to me, in this document, if a client could re-use a QUIC
> connection for a second session, as the normative requirement to close the
> connection is a SHOULD. There is text that suggests this is possible. Is this
> the intent?
>
> IIUC, both close-session and kill-session involve an RPC reply to cleanly close
> things. But if the receiver of close-session and kill-session immediately send
> CONNECTION_CLOSE, any reply may be lost. Is that OK, or should the receiver of
> the RPC reply actually be the one to send CONNECTION_CLOSE?
>
> Or could you simply get away with using CONNECTION_CLOSE and not send these
> RPCs over the wire?
>
> 2. Stream mapping
>
> The stream mapping instructions are contradictory. Sec 4.1 says there are "one
> *or more* bidirectional streams", but also "Since RPC processing is serialized
> and ordered within a session ([RFC6241] section 4.5), a bidirectional stream
> MUST be used for each NETCONF session." Again, I'm wondering if multiple
> sessions are allowed to be on a single connection. But can there be more than
> one bidirectional stream or not? If not, there is still head-of-line blocking
> of RPC traffic despite the motivation in Section 1.
>
> Similarly, in 4.2, notifications "SHOULD" be on a single unidirectional stream.
> Under what conditions SHOULD this be true? Does Head of Line blocking not
> matter? Why would an application choose one stream over multiple ones? Allowing
> either makes it much harder to implement and test a client.
>
> 3. Error codes
>
> I would expect any application mapping to QUIC to provide a registry of
> Application errors for CONNECTION_CLOSE frames and stream errors for
> RESET_STREAM and STOP_SENDING frames.
>
> 4. Stream errors
>
> Are any streams mandatory to remain open, or is it a session error if the RPC
> and notification streams are closed for any reason?
>
> 5. Security considerations
>
> The delimiter reference in Section 8 does not correspond to a section 2.1 here
> or in RFC 6241.
>
> How can an attacker inject arbitrary data into a QUIC stream? Please elaborate
> or provide a reference.
>
> Nits:
> - Section 7 has several "FIXME" comments, which I would not expect in the final
> version of this document.
>
> - You do not need to present Table 1 and talk about specific stream ID
> suffixes. This is not robust to future QUIC versions. Just refer to
> client-initiated bidirectional streams and server-initiated unidirectional
> streams. The text in 4.3 is pretty good; just make it clear that the use case
> has the NETCONF client as the QUIC server and vice versa.
>
>