[netconf] Re: questions about draft-udp-notif-14

Andy Bierman <andy@yumaworks.com> Fri, 19 July 2024 16:16 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 AB352C14F6BB for <netconf@ietfa.amsl.com>; Fri, 19 Jul 2024 09:16:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 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_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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 A1y4YDmIiuVc for <netconf@ietfa.amsl.com>; Fri, 19 Jul 2024 09:16:05 -0700 (PDT)
Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) (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 C59BFC14F699 for <netconf@ietf.org>; Fri, 19 Jul 2024 09:16:05 -0700 (PDT)
Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-1fb53bfb6easo17137225ad.2 for <netconf@ietf.org>; Fri, 19 Jul 2024 09:16:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1721405765; x=1722010565; 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=rkXL5eFJrG3GKIs3HOcjhnxFO79I1ieBO04EABZoeUI=; b=F7sEM8B7Ji828UCw5sz6xmLm7aaoLEUa3h3apbz5K/3yLbpFrO2StNs9iuzoqkYd7B nsKSDOnCcNixsON6la7STa+fXxnWMHiyLMYC5/aP89E6J+FXnUyWVpnyyllGXsrYtVMb H4fSFRFBalrHbb+TByDNND27y5O24nvZUsRYy8OFBIb7w1Bd6aTjGIsKmo92o8JnL9Go S30HqncHn7kC/D/DUyETHBjyUS8zE6P9Bgid7je3/2LY/dRO4TfacpfK86MsPvHQc+aG jY7IK0nK8djUltrxFArJC3aVAPL09pDTAQVPseQIsLfFUs0D7I5SOX6GWeOCknu9DxjM YoBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721405765; x=1722010565; 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=rkXL5eFJrG3GKIs3HOcjhnxFO79I1ieBO04EABZoeUI=; b=SOrisb+5Zo1cXHjE/KCfYkcVUSAcQhSqLYyA4GHOF2+b+8fEeazHQrQ/WC8R24+cqg ZFiDrBjbJPGQrrfal6VHbzncvJeGyjyCysRZMnLEDcCk33d3c6Cpmxhe+8/ELRJrk09F 3LHlC4HLs1km1KX+F2Y6Vk7m2hIoJR0o4hE1RxAlkmnxzo4HupcnXug5BPef+/EnEu4U l9GGU3MjhQ9izv6FUEISczthk7qmSe20XnxzgzWCBmEVgoiEuep6pmCBKF5QDAg80jaI tTQggT7fyf7Raj+ZAuwCZMJlx7hndAlqgonXGloSefuQcDCcZzjXbpTc4TeDiZchyY7v R0Jg==
X-Forwarded-Encrypted: i=1; AJvYcCW088MOtcW7vlLX3agTN6PFxkk8m/oH9SMIcrVcqWrricrksBqVz+mqQ64E2USy6yu4j4xusv4WqQAmxGtSp8tq
X-Gm-Message-State: AOJu0YxJFw2TX9SxcoI9EViWx7YhIlSPwo6htLAaJ5BMqQUhsNqkc8t0 WhdUPEJkED+CMJMYbkgCfj74Uw3agbDC7ze+oJgxNkiBLoEJhH7dp69gMjzvHgIsIH4b65VBRvo RW5DlyRKlAdflnxOze9t91YQYMHwj42JnVyNSWuRl7fv5XNSDE3E=
X-Google-Smtp-Source: AGHT+IF9jRr8hKnygUraWO3vle5jPO3Q3WoPUB9Ygw7nGlNge9iA5P9G0EtpMFitSCQzql5a1eUGsiYzRlC+WgY+xWE=
X-Received: by 2002:a17:90b:3e87:b0:2c4:dfa6:df00 with SMTP id 98e67ed59e1d1-2cd15e8e0a3mr449825a91.8.1721405765029; Fri, 19 Jul 2024 09:16:05 -0700 (PDT)
MIME-Version: 1.0
References: <CABCOCHRgebXZ6hpe=Tdifenr7TAi7GqxL8TyWoPvFjeejnwnpw@mail.gmail.com> <C5ED9DBE-520E-48C0-93D1-44155B909E56@insa-lyon.fr> <CABCOCHTTKG=Tn+uN9dYz39id57BLxKjfKdKcmP=n7GVcLmON0g@mail.gmail.com> <3bebcdb181b941ebba3e91f4a8ef3e38@swisscom.com>
In-Reply-To: <3bebcdb181b941ebba3e91f4a8ef3e38@swisscom.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Fri, 19 Jul 2024 09:15:53 -0700
Message-ID: <CABCOCHTMeV1WBVqxT8DoR7ObAfGgxLmxZkpWTy_R3dL=Px+1rQ@mail.gmail.com>
To: Thomas.Graf@swisscom.com
Content-Type: multipart/alternative; boundary="00000000000023ac62061d9c03d4"
Message-ID-Hash: 7Z2V4NQ6OSDOPVUPMXZ6JXNY7R57QUJS
X-Message-ID-Hash: 7Z2V4NQ6OSDOPVUPMXZ6JXNY7R57QUJS
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@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/5ci-aqwXxkuQJ-zy_kyT68UGiSU>
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 Fri, Jul 19, 2024 at 6:58 AM <Thomas.Graf@swisscom.com> wrote:

> 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.
>
>
>

OK never mind.
I think the application layer is already coupled to the UDP datagram and
only one message is allowed.
The draft is clearly not being used as the transport for the NETCONF
application layer since
NETCONF has message framing and no artificial limits on application message
size.

eventTime and observation-time have two different semantics. They are not
> interchangeable.
>
>
>

eventTime was added mostly to support replay, which is not relevant to YANG
Push.
I was not suggesting it was the same as observation time.
I was suggesting eventTime could be optional.
IMO if the 2 timestamps are within a few seconds of each other, the 2nd
timestamp is not useful.
Since the gap is usually milliseconds, the NETCONF WG left it out of RFC
5277.

Best wishes
>
> Thomas
>

Andy


>
>
> *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> 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
>
>
>
>