Re: [netconf] Issues with draft-ietf-netconf-udp-notif-04
Andy Bierman <andy@yumaworks.com> Fri, 19 November 2021 02:13 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 62C543A017E for <netconf@ietfa.amsl.com>; Thu, 18 Nov 2021 18:13:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.887
X-Spam-Level:
X-Spam-Status: No, score=-1.887 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20210112.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rLHdlx3jOnj6 for <netconf@ietfa.amsl.com>; Thu, 18 Nov 2021 18:13:37 -0800 (PST)
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0D0903A0163 for <netconf@ietf.org>; Thu, 18 Nov 2021 18:13:36 -0800 (PST)
Received: by mail-lf1-x12d.google.com with SMTP id f18so35905425lfv.6 for <netconf@ietf.org>; Thu, 18 Nov 2021 18:13:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=VbVTcVPpwolcYFQJwXTXw/DCDMqcTwECrnTTZIQ/dJU=; b=paWksT7nLl4oUi4HIdBn4ObSWN9Bol6aIOisRb2cplD8/dLyeW9z8/OdDvVBu4j6xN TDM5qUqcoS4AcNiMc0TjPaTpwrzOU7v1Z8Pdq8gvgFJC60CEv2+3IE1MJwZc021hW1kr kRUpq1WGC2FqaAhpEdreXs4jq6sBfT7x/L4y6d5A0lcET0S3xqnk37P03apLkI3quF4V MeY/y2T2uQCfKy1o9ukpp4tDYVGPRtCkYqR/++cal+0XHO/EBmlJFsMmRnHrVQQZP95G o7La4/wCP91QZPbYlO39Ijc4nyVNK5MU0y77JAW76EzhmdJjlx3aaClO0DvJiCA/OgJ3 hgxA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=VbVTcVPpwolcYFQJwXTXw/DCDMqcTwECrnTTZIQ/dJU=; b=QYVaPt6lVELoiq/RfHJwjoab5nQkf/c43KTqlkLpqZcUh7m/CjOorip+v+T04aD9m7 CU/z1D63vmC3SdZs8BGdW+NLgbNq/99LGKJOrKQykVrqpDBtu1H7/iydW2fNZMfWvqTI LoeB4JtVGnKt73p7ChhilSYaF6A4hT2VJwsNC4iIVCJ/R8uQb8kUt/46phogCC/lQ2Oq hio6wsZIYbCnpHZVT22hePvDBx4y+D2ChHvU4LcQEhkkWBz3LCXReYptbW0UmbTBMmsK qnvYtngOIrr9JmZgqExtIYLsZbd/t9aX5iZrUrOApA/PWS2koVQphuRKL1ICbt3kJTWE +QBQ==
X-Gm-Message-State: AOAM5318Efy2oCik7M6oSW9VNA5y7GVsqZnV1Mqd7CoUODCVCuNG+nQc TVaStAt4SLRfd9vDAbPcQkBg7gYwgDKGndW3aP+oPg==
X-Google-Smtp-Source: ABdhPJzM6pE6fMz27HQ/T0PcqGnCn51llL2PpaJuseyMNlx2yRG6eaCdIaF02d+w+AVOdTw8aMfhY7dFnTbvh+vIiO0=
X-Received: by 2002:a2e:3012:: with SMTP id w18mr21261270ljw.344.1637288013412; Thu, 18 Nov 2021 18:13:33 -0800 (PST)
MIME-Version: 1.0
References: <CABCOCHTnEh-d00ZDumUFZcwEjim3GCrgR85-+8n_g=XyEhXQbg@mail.gmail.com> <CAFNmoOFMLSDkKb5CW2gU2mZQwWfhLs2pmuT9Qc-UNaEr1hXk6Q@mail.gmail.com> <CABCOCHSdgt18CUnsq4WSXiN_E+2dBQkHzb9ydH8BEt0HVaimkA@mail.gmail.com>
In-Reply-To: <CABCOCHSdgt18CUnsq4WSXiN_E+2dBQkHzb9ydH8BEt0HVaimkA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 18 Nov 2021 18:13:22 -0800
Message-ID: <CABCOCHQnZwD2T4Mnn3rWbR8dMBpJzpTrHjSBZbccY3y4yBJjXw@mail.gmail.com>
To: Pierre Francois <pierre.francois.ietf@gmail.com>
Cc: Netconf <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006f4d3905d11ad2ed"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/sOR3f1w9qesvGn4Bo4NIr2PF6QM>
Subject: Re: [netconf] Issues with draft-ietf-netconf-udp-notif-04
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Nov 2021 02:13:43 -0000
Hi, It is unclear why this document needs to reinvent content types using a 4-bit ET field. There is already a registry of integer mappings for CoAP https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats IMO this draft needs to (at least) define a header option for a 16-bit "CF" field. Implementations SHOULD provide a CF option if none of the standard ET types apply. One of the 16 standard ET values should mean "See CF option". Andy On Wed, Nov 17, 2021 at 11:31 AM Andy Bierman <andy@yumaworks.com> wrote: > > > On Wed, Nov 17, 2021 at 3:03 AM Pierre Francois < > pierre.francois.ietf@gmail.com> wrote: > >> Hello Andy, >> >> Thanks for the feedback, answers inline. >> >> Le mar. 16 nov. 2021 à 04:45, Andy Bierman <andy@yumaworks.com> a écrit : >> >>> Hi, >>> >>> I am wondering if there implementations of this draft already. >>> IMO there are problems with in that prevent reasonable and >>> optimal implementations. >>> >> >> There is support of udp-notif publisher in VRP. >> There is a C collector lib for udp-notif in >> https://github.com/insa-unyte/udp-notif-c-collector >> >> >>> 1) Use of UDP as the Application Message Framing >>> UDP is a transport protocol. Tightly coupling one >>> NETCONF notification message to one UDP frame (+ fragments) >>> is not very optimal. >>> >> >> There is a segmentation option in the protocol, so a udp notif message is >> not tightly coupled to a UDP frame. >> > > But this segmentation is optional to implement. > My point is that application protocols like NETCONF have their own message > framing > which does not exist here because the transport framing is used instead. > > >> >> >>> >>> 1A) wastes space in the UDP frame if the NETCONF notification >>> happens to be short >>> >> >> I don't get it, I'm sorry. To me a UDP header + small udp-notif header is >> rather short. >> > > If I can fit 100 notification messages in 1 UDP frame then I save 99% of > the redundant headers. > > > >> >> >>> 1B) imposes an application-level max-message-size >>> >> >> Not with the segmentation option, do we agree? >> > > > https://datatracker.ietf.org/doc/html/draft-ietf-netconf-udp-notif#section-4.1 > > There can be 32767 segments of a max 65535 each: about 2G of data. > However the segment-size is allowed to be smaller and segmentation is > completely optional-to-implement. > > Application layer framing allows unlimited message size without any need > to support UDP segmentation at all, > > > >> >>> >>> 2) Not Efficient for Streaming Servers (no Message Chunking) >>> The application framing in NETCONF and RESTCONF (HTTP) is not >>> coupled to any transport protocol. Instead, a sender may emit as >>> many message chunks as desired. This is how a streaming server works. >>> Content comes from many different sources and it is sent on-the-fly >>> in chunks, instead of constructing large replies. >>> >>> - Application framing allows multiple notifications in one UDP frame >>> - Application framing does not need a max-message-size. >>> Streaming servers often do not know the size of the data that will >>> be sent >>> in a notification. >>> >> >> I think we meet these goals. Let me think about this further. >> > > > I agree, by ignoring the idea that this protocol provides any normative > information > about the application layer protocol in use. This draft should remove any > hint > that the application payload is defined in this document. It is OK to say > a different RFC (or spec) defines the content for a particular Encoding > Type. > > The "notification" in Figure 1 implies that the payload is one NETCONF > notification. > The draft should be clear that there is no structure to the payload > defined in this document. > > >> >>> >>> Q1) Should proprietary encoding be used to support application-layer >>> framing >>> or should the standard support it? >>> >> >> I think we'd need to meet on this or else it will end up with thousands >> of long emails ;) >> > > > I think the draft should let other documents define the exact content > expected in the payload. > I am used to application protocols defining specific message flows. Since > this draft does > not do that, it should not attempt to impose any rules on the application > payload at all. > > > >> >> >>> >>> 3) Protocol Message Encoding for CBOR >>> The NETCONF notification message is not modelled in YANG. >>> This is an open issue for YANG to CBOR encoding. >>> https://github.com/core-wg/yang-cbor/issues/96 >>> >>> The "notification" and "eventTime" elements do not have YANG definitions. >>> SID assignments for these elements will be needed. >>> This draft is the likely place for these SID assignment requests to >>> the IESG and IANA. >>> >> >> Shouldn't these be transport agnostic? I don't see why this would be >> bound to udp-notif only and not, say, https-notif. >> > > This is related to application/yang-data+cbor. > A separate document for the SID assignments can be done. > > > >> >>> >>> 4) Subscription-ID Missing from Header >>> It is quite possible for one message generator to create >>> messages for multiple subscriptions. The subscription-ID >>> will be needed to dispatch notifications to subscribers correctly. >>> The Observation-Domain-ID is not sufficient. >>> >> >> Same answer as above, we understand obs-domain-id to be used in the >> transport to meet load-balancing goals, but thought it would violate layers >> to place subscription-IDs in the transport itself. >> > > > So I will put the Subscription-ID here instead I guess because a common > use-case is to allow a Collector to support subscriptions from client > applications. > Only datastore subscriptions include a subscription-id, not event stream > notifications. > > >> >>> >>> 5) Private Encoding Option does not seem interoperable >>> >> The "Enc. Descr" field is completely opaque. >>> >> >> Correct. >> > > > Then perhaps there is no need for this at all since it does not > attempt to provide any interoperability? > > >> >> >>> This field could be structured to provide the "ET number space owner" >>> e.g, urn [wsp description] >>> >> >> Mmm it's a valid option. Our opinion was that once you want it >> interoperable, you should make it standard instead of private. >> If the wg thinks we should kinda standardize private options, I'm >> personally okay to add that to the draft. >> > > Use of structured strings like URNs does not seem like a bad thing that > should be discouraged. > The ET field is not interopable if every implementation can define their > own 4-bit values > and there is no standard way to tell them apart. Perhaps just a domain > name if a URN is too much of a burden. > > > >> >>> >>> Andy >>> >> >> Thanks a lot for your comments, >> >> Pierre. >> >> > Andy > > > >> Le mar. 16 nov. 2021 à 04:45, Andy Bierman <andy@yumaworks.com> a écrit : >> >>> Hi, >>> >>> I am wondering if there implementations of this draft already. >>> IMO there are problems with in that prevent reasonable and >>> optimal implementations. >>> >>> 1) Use of UDP as the Application Message Framing >>> UDP is a transport protocol. Tightly coupling one >>> NETCONF notification message to one UDP frame (+ fragments) >>> is not very optimal. >>> >>> 1A) wastes space in the UDP frame if the NETCONF notification >>> happens to be short >>> 1B) imposes an application-level max-message-size >>> >>> 2) Not Efficient for Streaming Servers (no Message Chunking) >>> The application framing in NETCONF and RESTCONF (HTTP) is not >>> coupled to any transport protocol. Instead, a sender may emit as >>> many message chunks as desired. This is how a streaming server works. >>> Content comes from many different sources and it is sent on-the-fly >>> in chunks, instead of constructing large replies. >>> >>> - Application framing allows multiple notifications in one UDP frame >>> - Application framing does not need a max-message-size. >>> Streaming servers often do not know the size of the data that will >>> be sent >>> in a notification. >>> >>> Q1) Should proprietary encoding be used to support application-layer >>> framing >>> or should the standard support it? >>> >>> 3) Protocol Message Encoding for CBOR >>> The NETCONF notification message is not modelled in YANG. >>> This is an open issue for YANG to CBOR encoding. >>> https://github.com/core-wg/yang-cbor/issues/96 >>> >>> The "notification" and "eventTime" elements do not have YANG definitions. >>> SID assignments for these elements will be needed. >>> This draft is the likely place for these SID assignment requests to >>> the IESG and IANA. >>> >>> 4) Subscription-ID Missing from Header >>> It is quite possible for one message generator to create >>> messages for multiple subscriptions. The subscription-ID >>> will be needed to dispatch notifications to subscribers correctly. >>> The Observation-Domain-ID is not sufficient. >>> >>> 5) Private Encoding Option does not seem interoperable >>> The "Enc. Descr" field is completely opaque. >>> This field could be structured to provide the "ET number space owner" >>> e.g, urn [wsp description] >>> >>> >>> Andy >>> >>> >>> >>> _______________________________________________ >>> netconf mailing list >>> netconf@ietf.org >>> https://www.ietf.org/mailman/listinfo/netconf >>> >>
- [netconf] Issues with draft-ietf-netconf-udp-noti… Andy Bierman
- Re: [netconf] Issues with draft-ietf-netconf-udp-… Pierre Francois
- Re: [netconf] Issues with draft-ietf-netconf-udp-… Andy Bierman
- Re: [netconf] Issues with draft-ietf-netconf-udp-… Andy Bierman
- Re: [netconf] Issues with draft-ietf-netconf-udp-… Thomas.Graf
- Re: [netconf] Issues with draft-ietf-netconf-udp-… Andy Bierman
- Re: [netconf] Issues with draft-ietf-netconf-udp-… Thomas.Graf
- Re: [netconf] Issues with draft-ietf-netconf-udp-… Andy Bierman