[netconf] Re: questions about draft-udp-notif-14
Alex Huang Feng <alex.huang-feng@insa-lyon.fr> Thu, 18 July 2024 18:49 UTC
Return-Path: <alex.huang-feng@insa-lyon.fr>
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 88CD3C14F619 for <netconf@ietfa.amsl.com>; Thu, 18 Jul 2024 11:49:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.735
X-Spam-Level:
X-Spam-Status: No, score=-4.735 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_HELO_IP_MISMATCH=2.368, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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=insa-lyon.fr
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 WC8Pe7sjliT1 for <netconf@ietfa.amsl.com>; Thu, 18 Jul 2024 11:49:25 -0700 (PDT)
Received: from smtpout01-ext2.partage.renater.fr (smtpout01-ext2.partage.renater.fr [194.254.240.33]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 022B6C15107A for <netconf@ietf.org>; Thu, 18 Jul 2024 11:49:23 -0700 (PDT)
Received: from zmtaauth01.partage.renater.fr (zmtaauth01.partage.renater.fr [194.254.240.25]) by smtpout10.partage.renater.fr (Postfix) with ESMTP id 001E2646CA; Thu, 18 Jul 2024 20:49:18 +0200 (CEST)
Received: from zmtaauth01.partage.renater.fr (localhost [127.0.0.1]) by zmtaauth01.partage.renater.fr (Postfix) with ESMTPS id E2802140014; Thu, 18 Jul 2024 20:49:18 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by zmtaauth01.partage.renater.fr (Postfix) with ESMTP id D24101400CB; Thu, 18 Jul 2024 20:49:18 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.10.3 zmtaauth01.partage.renater.fr D24101400CB
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=insa-lyon.fr; s=CB289C06-95B8-49FE-9C4B-D197C6D2E7CB; t=1721328558; bh=p4Kxi4c9XXJcgEJvNngykMd9rv8CYLXIGOdHs3TZngM=; h=From:Message-Id:Mime-Version:Date:To; b=S5kmrz76FlA+UIIADpu7HjaCI8zEOWuc2UJkFZuqN0Q/boirHWweo46yUWakHeN3o E/2BURfV3+jaNK4E/8aagcY5qONTaJEmv1LLGO5jElq2dLN4tH1teXBpMThI93Imbw DJ+9/4LA7HPYN0yD1JhpY3RU0P6k5FppJeZSnTW25uVZAeQmMEn4mEWYJYYeFMtkSh +ZFv9kxUclOeURiWVpph9AMLKCEN81LPvhIIFlE3B27W2Xr15RakIQYuSNo3TVsjlM Owbfyj3aHfxh1Qnyqr0JcDGae90IzSVbm/Lz+i+3TQLoARMUkLKtWVj5+r2UX502jD 3polGfw0laNtQ==
Received: from zmtaauth01.partage.renater.fr ([127.0.0.1]) by localhost (zmtaauth01.partage.renater.fr [127.0.0.1]) (amavis, port 10026) with ESMTP id guhtGdjzT8FJ; Thu, 18 Jul 2024 20:49:18 +0200 (CEST)
Received: from 24.109.167.30 (unknown [194.254.241.249]) by zmtaauth01.partage.renater.fr (Postfix) with ESMTPA id A9AA9140014; Thu, 18 Jul 2024 20:49:17 +0200 (CEST)
From: Alex Huang Feng <alex.huang-feng@insa-lyon.fr>
Message-Id: <B2F4AE37-A8D7-4861-B517-74BB7F81D7E0@insa-lyon.fr>
Content-Type: multipart/alternative; boundary="Apple-Mail=_49E22640-DA1D-48A2-9346-F41AC44CC41E"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.600.62\))
Date: Thu, 18 Jul 2024 11:49:04 -0700
In-Reply-To: <CABCOCHS=S2tUVqTRJ8WUmGQb4KrXi3X2uAF4wdKYv6JQZfKC1g@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
References: <CABCOCHRgebXZ6hpe=Tdifenr7TAi7GqxL8TyWoPvFjeejnwnpw@mail.gmail.com> <C5ED9DBE-520E-48C0-93D1-44155B909E56@insa-lyon.fr> <CABCOCHS=S2tUVqTRJ8WUmGQb4KrXi3X2uAF4wdKYv6JQZfKC1g@mail.gmail.com>
X-Mailer: Apple Mail (2.3774.600.62)
X-Virus-Scanned: clamav-milter 0.103.8 at clamav02
X-Virus-Status: Clean
X-Renater-Ptge-SpamState: clean
X-Renater-Ptge-SpamScore: -70
X-Renater-Ptge-SpamCause: gggruggvucftvghtrhhoucdtuddrgeeftddrgeelgdduvdekucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecutffgpfetvffgtfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnegoufhushhpvggtthfkmhhgffhomhgrihhnucdlfedtmdenucfjughrpefhkfgtggfuffgjvefvfhfosegrtdhmrehhtdejnecuhfhrohhmpeetlhgvgicujfhurghnghcuhfgvnhhguceorghlvgigrdhhuhgrnhhgqdhfvghnghesihhnshgrqdhlhihonhdrfhhrqeenucggtffrrghtthgvrhhnpeeikedvgfduudduvdefgfffgeekleeftedvtefhheeivdffudelhfefudfgteefudenucffohhmrghinhepihgvthhfrdhorhhgpdhgihhthhhusgdrtghomhdpghhithhhuhgsuhhsvghrtghonhhtvghnthdrtghomhenucfkphepudelgedrvdehgedrvdeguddrvdegleenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduleegrddvheegrddvgedurddvgeelpdhhvghlohepvdegrddutdelrdduieejrdeftddpmhgrihhlfhhrohhmpegrlhgvgidrhhhurghnghdqfhgvnhhgsehinhhsrgdqlhihohhnrdhfrhdpnhgspghrtghpthhtohepvddprhgtphhtthhopegrnhguhieshihumhgrfihorhhkshdrtghomhdprhgtphhtthhopehnvghttghonhhfsehivghtfhdrohhrgh
Message-ID-Hash: V3B7LPEX4DRRIQBFSJ22BYINLBHJ5SIO
X-Message-ID-Hash: V3B7LPEX4DRRIQBFSJ22BYINLBHJ5SIO
X-MailFrom: alex.huang-feng@insa-lyon.fr
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 <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/47GNerssk2k_Ewa33XSoGd_3tWc>
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, > This parameter should only apply if the segmentation feature is advertised. This is the case, the parameter max-segment-size is only available if segmentation is supported AND enabled: In the YANG: leaf max-segment-size { when "../enable-segmentation = 'true'"; if-feature segmentation; type uint32; description "UDP-Notif provides a configurable max-segment-size to control the size of each segment (UDP-Notif header, with options, included)."; } Regards, Alex > On 18 Jul 2024, at 10:43, Andy Bierman <andy@yumaworks.com> wrote: > > > > 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. >> >> 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: >> > > > I think it is too complicated to have this configuration. > This parameter should only apply if the segmentation feature is advertised. > > I am OK with a mandatory 1 datagram solution for unreliable use-cases. > I guess dynamic subscriptions can still be used for reliable use-cases. > > UDP works for periodic updates where a missed or duplicate update does not really cause any problems. > It is not so good for on-change subscriptions where any error causes a full resync. > > Some examples given, like monitoring interface operStatus changes, are better handled with reliable transports. > > > Andy > > >> 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 >>> >>> >>> >>> >>> Reply >>> Forward >>> _______________________________________________ >>> 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