[netconf] Re: questions about draft-udp-notif-14
Andy Bierman <andy@yumaworks.com> Thu, 18 July 2024 20:11 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 E66E1C14F5F8 for <netconf@ietfa.amsl.com>; Thu, 18 Jul 2024 13:11:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.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_DNSWL_HI=-5, 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 54CpZMie2UQ2 for <netconf@ietfa.amsl.com>; Thu, 18 Jul 2024 13:11:11 -0700 (PDT)
Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) (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 18C45C14F5EE for <netconf@ietf.org>; Thu, 18 Jul 2024 13:11:11 -0700 (PDT)
Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-2cb57e25387so552700a91.3 for <netconf@ietf.org>; Thu, 18 Jul 2024 13:11:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1721333470; x=1721938270; 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=ytkNnR6irJw/VfiXEuNbR5FC0A3uZr24dalJFORWAhI=; b=rRxS+2+ZfxSRK7i9kqVZt55F9QFg/JO0vON8IOu8/U4mTWAAJwq1lQvp9Nlo+xApeB Oex7BKZCy1YTXAbInfMdoGQy4x8e7kZjT+sUNTRv1Oxv6dQLA2jV/3u3Ki3qf5IQcFWH 9LiLTLJDbu7IrbI/8x+rhCGsPfWgklh4GeEGpz8TpxiWRPpxfZcglPERaEJhsTqOIQMp bZlyWC96h/nO4rJux0IHDyHHxRe0DU8OpUskq+G1XOOxzjz1AYsRQx8pOAYCs8kCR1bX fk+UWwv9yu/tlnHyk4tOyub0nEjQslzGbCcX0iStIds7yHgwyFloT9gY7GFt48GaH0nq iKkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721333470; x=1721938270; 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=ytkNnR6irJw/VfiXEuNbR5FC0A3uZr24dalJFORWAhI=; b=eV+WrPAUlQfYg3mEmX7ZiSgfkSCFqkHDJT8mk/cehLiJ8m5ihmmylDuxs24Pkbdc+U ah8nX7q7+8wU1Ulsh8sUUsQX/xvn2yjzRBT+8dHuTUdjJ3U5E2ntn+YQUF6ervLrX/gH xLvfxtlqukGrSc5qJt45kPNUS9r6wANdC+MrSqEQdp++atMduq3UMa/cgHcFfg5JJJLt t8rPXDVlEl9AntDYoT167/bs/g40Rf4vHECz+kEIN5daxGi2ZkWS4wjlI97W9aIoQQrZ fV5B5AGjfuhbbSW1SaBO5Ta+YAP/P0JTATatuysowKM0k/4DcKREApqLqPRkv3jeNDEj /yEg==
X-Gm-Message-State: AOJu0YyTFLamOyuyTqAedDeuwOTui8cBEZrFu2xc3f0SsZHphBoEoVM2 Qbtgc58augmofJskDUUzHFWA1LC5hchyvYol2atbaFYEGvQgqaHMyBL3QnH/Q0xrr5UxNvhoJgA bw1FYsYGm3MJuIZ3xEeC3XTgEIROlV5Y9JYoMC+YXWqTs2ToFVRM=
X-Google-Smtp-Source: AGHT+IHCIl2H62EQ5NK/vng+mZldF8a/+a9kvT8r+5ZvH2z6CyS4HAxqKmf8sz9JHv5ssCZMp5TWTQe+E7EE3Qj1Ak0=
X-Received: by 2002:a17:90a:2d89:b0:2c9:1012:b323 with SMTP id 98e67ed59e1d1-2cb527bed28mr5145166a91.27.1721333470441; Thu, 18 Jul 2024 13:11:10 -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 13:10:58 -0700
Message-ID: <CABCOCHTTKG=Tn+uN9dYz39id57BLxKjfKdKcmP=n7GVcLmON0g@mail.gmail.com>
To: Alex Huang Feng <alex.huang-feng@insa-lyon.fr>
Content-Type: multipart/alternative; boundary="0000000000000bd0ca061d8b2ec1"
Message-ID-Hash: UOEDPJAJWNR33JBVDZ2JODA6ZE7UQGAN
X-Message-ID-Hash: UOEDPJAJWNR33JBVDZ2JODA6ZE7UQGAN
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/vJxEldoJhtDLFZekKZ_RePDRnfY>
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. > > 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> 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 > > > > 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 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 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