[netconf] Re: questions about draft-udp-notif-14
Thomas.Graf@swisscom.com Fri, 19 July 2024 13:58 UTC
Return-Path: <Thomas.Graf@swisscom.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 EBFEAC14F600 for <netconf@ietfa.amsl.com>; Fri, 19 Jul 2024 06:58:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.403
X-Spam-Level:
X-Spam-Status: No, score=-4.403 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=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] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=swisscom.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 c_jsvLvcHY7z for <netconf@ietfa.amsl.com>; Fri, 19 Jul 2024 06:58:49 -0700 (PDT)
Received: from mail.swisscom.com (mailout110.swisscom.com [138.188.166.110]) (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 140F0C14F5FA for <netconf@ietf.org>; Fri, 19 Jul 2024 06:58:47 -0700 (PDT)
Received: by mail.swisscom.com; Fri, 19 Jul 2024 15:58:45 +0200
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=swisscom.com; s=iscm; t=1721397525; bh=yr9Y1WtI2DHUSjKcbACfgToWTIaBEHPD36JM3UBJsDg=; h=From:To:CC:Subject:Date:References:In-Reply-To; b=U9Akl14AkEyicCuLjhDpxTIpVVWnydnEbU3Fa1XiU4hOGi738oBiZcaP/1JazQ5un RLZiahGE0omYQLHhzAjvhn2JtwOPQ0OxZLwcDvLCGa6eGErBSvF/mmOHVdhLLKMJ9i 0R5ASEFwS5k5QuG3Qu2DcNa9bvnFJLn3jKGtuz6fGCkaYXnSzVPXdw/5SUtqSz89yM LGJGpV5eW5hcO8TBD1oKICzR3iWAGwC6+5EaLQ1iH3l6cvpbC9dSTmr1fPxrFbjaRM 6xkvRzyYV03trSQ2v3yMuHvUnu3eSVqf/GDy6LKrbc0Ilh/+JyV/St4Hy7a43oSwBf +b0eTIxIlXO4Q==
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="----=_Part_332947_1248378938.1721397525064"
X-Mailer: Totemo_TrustMail_(Notification)
From: Thomas.Graf@swisscom.com
To: andy@yumaworks.com, alex.huang-feng@insa-lyon.fr
Thread-Topic: [netconf] Re: questions about draft-udp-notif-14
Thread-Index: AQHa2Sj0+csGY2j87kij1RoCFo26ZrH8yVsAgAFIJSA=
Date: Fri, 19 Jul 2024 13:58:42 +0000
Message-ID: <3bebcdb181b941ebba3e91f4a8ef3e38@swisscom.com>
References: <CABCOCHRgebXZ6hpe=Tdifenr7TAi7GqxL8TyWoPvFjeejnwnpw@mail.gmail.com> <C5ED9DBE-520E-48C0-93D1-44155B909E56@insa-lyon.fr> <CABCOCHTTKG=Tn+uN9dYz39id57BLxKjfKdKcmP=n7GVcLmON0g@mail.gmail.com>
In-Reply-To: <CABCOCHTTKG=Tn+uN9dYz39id57BLxKjfKdKcmP=n7GVcLmON0g@mail.gmail.com>
Accept-Language: en-US, de-CH
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_ActionId=0ba72a00-4482-47e3-b162-4f2de157946f;MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_ContentBits=0;MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_Enabled=true;MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_Method=Standard;MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_Name=C2 Internal;MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_SetDate=2024-07-19T13:45:26Z;MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_SiteId=364e5b87-c1c7-420d-9bee-c35d19b557a1;
x-originating-ip: [138.188.161.184]
X-CFilter-Loop: Reflected
X-Trustmail: processed
Message-ID-Hash: I7NNAKNXGKLLXNN5ZL5IGBKF3FELBWSB
X-Message-ID-Hash: I7NNAKNXGKLLXNN5ZL5IGBKF3FELBWSB
X-MailFrom: Thomas.Graf@swisscom.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
CC: netconf@ietf.org
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [netconf] Re: questions about draft-udp-notif-14
List-Id: NETCONF WG list <netconf.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/SNNP0PubPDeXiNgWhz0RviYS-A4>
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>
Dear Andy, Two comments. What you are proposing is that the transport now is the semantic of the notification in the messaging layer. That would break the boundary of network layers. eventTime and observation-time have two different semantics. They are not interchangeable. Best wishes Thomas From: Andy Bierman <andy@yumaworks.com> Sent: Thursday, July 18, 2024 1:11 PM To: Alex Huang Feng <alex.huang-feng@insa-lyon.fr> Cc: Netconf <netconf@ietf.org> Subject: [netconf] Re: questions about draft-udp-notif-14 Be aware: This is an external email. On Thu, Jul 18, 2024 at 8:40 AM Alex Huang Feng <alex.huang-feng@insa-lyon.fr<mailto:alex.huang-feng@insa-lyon.fr>> wrote: Dear Andy, Thanks for the review and comments. Here my comments and proposal on top of Thomas’ comments. I just realized that the solution for UDP is already available. Since the application message is just the notification, the SID for 'notification' is redundant and not needed. If there is an observation timestamp then eventTime is not really needed. The eventTime leaf could be encoded as an option if needed. The XML, JSON, or CBOR payload would represent just the event from the notification-stmt. There is no need for this UDP protocol to use RFC 5277 message header format. Andy Please see inline. On 10 Jul 2024, at 19:27, Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>> wrote: Hi, I am trying to implement this draft https://www.ietf.org/archive/id/draft-ietf-netconf-udp-notif-14.html General: The intended use of this protocol seems to be where a server creates fixed size reports and the server knows the report size. This is difficult if a report includes nested YANG list entries. YANG Push is used for multiple purposes, including datastore replication. Initial or resych payloads can be very large. Datastore changes are subject to YANG validation so they cannot be refactored into many tiny transactions. Streaming servers may not know the exact entries or the sizes in advance. 1) IP fragmentation Even though a UDP segment is about 64K bytes, the max-segment-size is the real fragment length. (e.g. about 1200 bytes) An implementation of this specification SHOULD NOT rely on IP fragmentation by default to carry large messages. An implementation of this specification SHOULD either restrict the size of individual messages carried over this protocol, or support the segmentation option. The implementor or user SHOULD take into account the IP layer header size when setting the max-segment-size parameter to avoid fragmentation at the IP layer. The max-segment-size is the size of a UDP-notif segment. Definition in the YANG module: UDP-Notif provides a configurable max-segment-size to control the size of each segment (UDP-Notif header, with options, included). The last sentence about taking into account the IP layer header size is because a user might set the max-segment-size to the MTU of the interface. Given that the segment+IP header might be bigger than the MTU, the interface might perform IP fragmentation. Proposal: OLD: Consequently, implementations of the mechanism SHOULD provide a configurable max-segment-size option to control the maximum size of a payload. NEW: Consequently, implementations of the mechanism SHOULD provide a configurable max-segment-size option to control the maximum size of a UDP-Notif segment. OLD: The implementor or user SHOULD take into account the IP layer header size when setting the max-segment-size parameter to avoid fragmentation at the IP layer. NEW: The implementor or user SHOULD configure the max-segment-size so that the size of a UDP-Notif segment and the size of the IP layer together does not exceed the MTU of the egress interface. 2) Segmentation option Only 32767 segments are allowed for the entire message which is about 40MB if IP fragmentation is being avoided. Segmentation can be disabled by the client on a per-receiver basis. Each receiver can set its own max-segment-size. This is difficult and expensive to implement. Expect that servers will reject complex configurations and clients will need to read the user documentation (not the RFC) to know what is supported. Yes, we do expect the user to read the documentation of an implementation to know if the max-segment-size is supported. And yes if it is not supported, we expect the server to reject the configuration. If enable-segmentation=false then the server may reject this setting. IMO the protocol is not useful with a max payload of 1 IP packet. The YANG Patch overhead alone can take up 100s of bytes. Expect that a server will reject a configuration attempting to set this parameter to false. The default statement of the leaf enable-segmentation should be set to True given the guidelines defined in RFC8085. I propose to change the default to True. Regarding setting enable-segmentation=false, we expect that in this case, the message will be fragmented at IP layer if the UDP-Notif message is bigger than the MTU. 3) Overflow indication There is no way for the server to indicate that the push update is truncated and should be discarded. A streaming server may not know how many segments are left for the current push update. This is correct. In our implementation (https://github.com/network-analytics/udp-notif-c-collector) we use timers to tackle this problem. The user can set after how much time, if some segments are still missing, to discard the received segments. 4) Application Layer NETCONF already has an application layer and application message framing. The UDP "application' is not clearly defined. It seems to just be "the notification message from NETCONF". UDP-Notif is a transport protocol for RFC8639 and RFC8641. We expect to use the application layer defined in RFC8641. 5) Implementation details For client/server tools that already support notifications, there is very little code reuse possible. Code that uses the base:1.0 or base:1.1 message framing cannot rely at all on the transport protocol for proper framing. We are looking at using the NETCONF base:1.1 encoding with enhancements. The "NETCONF stream" encoding solves every problem mentioned above, except overflow indication, because that can never happen. I am not aware of NETCONF stream as a solution. Could you provide more references on this? I reflected these changes in -15: https://author-tools.ietf.org/diff?doc_1=draft-ietf-netconf-udp-notif-14&url_2=https://raw.githubusercontent.com/netconf-wg/udp-notif/main/draft-ietf-netconf-udp-notif-15.txt Regards, Alex Andy [https://lh3.googleusercontent.com/a/ACg8ocLGN7e1p8cvZjsVLsDVpiwRansEvdaE1jEQoPAGRVi_RlIjsw=s40-p-mo] ReplyForward _______________________________________________ netconf mailing list -- netconf@ietf.org<mailto:netconf@ietf.org> To unsubscribe send an email to netconf-leave@ietf.org<mailto:netconf-leave@ietf.org>
- [netconf] questions about draft-udp-notif-14 Andy Bierman
- [netconf] Re: questions about draft-udp-notif-14 Alex Huang Feng
- [netconf] Re: questions about draft-udp-notif-14 Andy Bierman
- [netconf] Re: questions about draft-udp-notif-14 Thomas.Graf
- [netconf] Re: questions about draft-udp-notif-14 Andy Bierman
- [netconf] Re: questions about draft-udp-notif-14 Alex Huang Feng
- [netconf] Re: questions about draft-udp-notif-14 Andy Bierman
- [netconf] Re: questions about draft-udp-notif-14 Thomas.Graf
- [netconf] Re: questions about draft-udp-notif-14 Andy Bierman