[netconf] Re: questions about draft-udp-notif-14
Andy Bierman <andy@yumaworks.com> Thu, 18 July 2024 17:43 UTC
Return-Path: <andy@yumaworks.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 DE9BFC14F6E4 for <netconf@ietfa.amsl.com>; Thu, 18 Jul 2024 10:43:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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_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=yumaworks.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 w4SEHaR5-va6 for <netconf@ietfa.amsl.com>; Thu, 18 Jul 2024 10:43:51 -0700 (PDT)
Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B3BEFC14F617 for <netconf@ietf.org>; Thu, 18 Jul 2024 10:43:51 -0700 (PDT)
Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-70b702be5e4so86158b3a.0 for <netconf@ietf.org>; Thu, 18 Jul 2024 10:43:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1721324631; x=1721929431; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=sXxIQQfqdE5PPNn4K7om7sFuk0DCnP31eSJxxpHnfxk=; b=mG1Fc9j666gDm4qRDRvRP8LvtX1nzu46xOH9ik+1HVjI/D85hVjzbR7DICqj+qgUoM V+8pxER4Uze5Fup9SBGd0DVqRFSleyAnNlRZWuXUYvnpGFdJMN/e2g/ejRVaaLTi98PT UtlS/pk8h5Y5UIbSBqL7tSv8ulQiS4TgUefRlLM3kOlktHLIENEyeuI1lLem0xDYdWrt 4qTXf0FqeCST1ztq+UvGNpM3VWwZHNwPdmZAssufAn7V3GJvaecLrWxlVi7WOHUEfOAi KblqHIGcKQ3f6bPrL42FT+qu6BscoX+4UEkZPYM4WIEm3M8wSxt2UpTxP2TYTNDkdzHZ ZqRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721324631; x=1721929431; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=sXxIQQfqdE5PPNn4K7om7sFuk0DCnP31eSJxxpHnfxk=; b=R1UB62NKyHTQqASXkNB/STKI99DaDEPNNWTvVwWr0bHyorAb8VJuuARXplkqo/buH2 SRp1CQbqy8Mab90wTNOgAYCxN1peDEnEtdpLOTRtX1sGlNDHWzeJrgmDBiES7ZRDFz3p ex6Cyi+I3tYC+lOIQZonfkgTw8BEdmnRDqPpXUF/YS8yHC52f4/X5DOglPNbmADod2of t/4nkrYoOmNxBo0ZcHXNzDgZixo5er8Vcmup5hmLYPNSjyQ7AP7uJYbPIJm+sr79de6P HLBsdsArq9fokfFnjBX6vN7vH+9YcftXpQUu6IMY09o5Dyj7rdv/lSuP9TOKu8EE0ERU CJbQ==
X-Gm-Message-State: AOJu0YxoYS1BwRWatHM7VHw7j8HtYbbpMYguTCLLWjnSmfuVclOmBfAL ksmT5Bu/IVdRxvBOkXczZGg7xT68G6HPGG4Ih8TBkOb5qXODZeJYqYCTmxpHmBSiF/XyHyQNQ6t VFGSnmm/SR0C9tIs3XBgByQzREroD06x1saLzVSwcqXw9LhyXLlQ=
X-Google-Smtp-Source: AGHT+IFSsIqHp7OZWwivoyz0Dz0HYCyygfm/hTJkmm1bCJLW+fAStHAEw3n0lYucR9XVwVLQmwiNyuvO+uRYfhc/HLE=
X-Received: by 2002:aa7:888a:0:b0:708:11f:d151 with SMTP id d2e1a72fcca58-70ce4fb0b8cmr7164335b3a.16.1721324630801; Thu, 18 Jul 2024 10:43:50 -0700 (PDT)
MIME-Version: 1.0
References: <CABCOCHRgebXZ6hpe=Tdifenr7TAi7GqxL8TyWoPvFjeejnwnpw@mail.gmail.com> <C5ED9DBE-520E-48C0-93D1-44155B909E56@insa-lyon.fr>
In-Reply-To: <C5ED9DBE-520E-48C0-93D1-44155B909E56@insa-lyon.fr>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 18 Jul 2024 10:43:39 -0700
Message-ID: <CABCOCHS=S2tUVqTRJ8WUmGQb4KrXi3X2uAF4wdKYv6JQZfKC1g@mail.gmail.com>
To: Alex Huang Feng <alex.huang-feng@insa-lyon.fr>
Content-Type: multipart/alternative; boundary="00000000000029a003061d891fda"
Message-ID-Hash: RU36FMRQDJ6QE23SKEPB4FCT5CTYMIDX
X-Message-ID-Hash: RU36FMRQDJ6QE23SKEPB4FCT5CTYMIDX
X-MailFrom: andy@yumaworks.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 <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/xJx2hVeUgfl0cz0-4agbQ5PW9j0>
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>
On Thu, Jul 18, 2024 at 8:40 AM Alex Huang Feng < 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> 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 > > > > ReplyForward > _______________________________________________ > netconf mailing list -- netconf@ietf.org > To unsubscribe send an email to 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