Re: [netconf] Issues with draft-ietf-netconf-udp-notif-04

Andy Bierman <andy@yumaworks.com> Sat, 20 November 2021 17:49 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 0BBB33A0403 for <netconf@ietfa.amsl.com>; Sat, 20 Nov 2021 09:49:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.787
X-Spam-Level:
X-Spam-Status: No, score=-1.787 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=no 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 wCOWcNjHXwHS for <netconf@ietfa.amsl.com>; Sat, 20 Nov 2021 09:49:17 -0800 (PST)
Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) (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 721B03A03F4 for <netconf@ietf.org>; Sat, 20 Nov 2021 09:49:16 -0800 (PST)
Received: by mail-lf1-x135.google.com with SMTP id m27so58746333lfj.12 for <netconf@ietf.org>; Sat, 20 Nov 2021 09:49:16 -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=SezSqNc4lnHWMfFNXhJUwf/jPeFii4+aRL6zbAotEqs=; b=XAabd5N1gkd7sy+Daph+o85M2/6jsGg+ssMfMZKQvM6zz+cS0opp7EiuZ5dUX1E6kT tdzgrOlWPAjdtAGFFpFCUYNG2+G8sIHHfsyN+Ty3AslmTWxPZWuiKqvDO8Snx9gHLQuD hNktalVM+1qY6GPMulj+EyYF8+i8aHdzWrmJ0A4VHwb2hlKfQUq3hPrT2dY1g5zxn2HH qXhPPZk+T9U0085IZdFFolSR6cRKn33XuwKZWoiM68hio6yFh7FlyrG6GIeddQuIK5FK 9Qdw8bzSC0jX6Nd5iLkpRzszatozYE3Cj/mL+Y+ZWNZkIGL3enB/fVCMwhE/4BVtKdVR 8wTA==
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=SezSqNc4lnHWMfFNXhJUwf/jPeFii4+aRL6zbAotEqs=; b=EjsTY8jq7gjpb6gkTcZ5IkU6gkvuo8CinVW96hVHcjgikZtTW14e1wgBGyavmaa5VK UoG0377oQv8mgBifNdm+NIp2jqRuMBGWONe5Jj7JMwmyWHxopW3ujI56uiRwXPm3UqRH ZJfSLyLwk/VcYSdlX5V54Ka2rpB7WPqqpSp65PgqXgjyEDPi85zUqgn/RIQU2w9Iu2gI DBa2ObP5xXvfkSZ8QhpRISQE/sHyHmtYupzfS/yE4/iJWre3TlMW+JXnpfJXxpmXqIYu UmEKzh3/iXMQM6ODxj+YJjChadWCxDExNWcrArhAFz6tyKHQT2odmWUxEvuVATQrCaqB KcCg==
X-Gm-Message-State: AOAM532ykauqLNcMumDKh0oidmhCv0VgCxSXozWQu9EnY3Wq61enMURh 4gHQOYWRTJg59xz9VkeMo7JvZ2cM0+MHsZhmIeGQUg==
X-Google-Smtp-Source: ABdhPJy8CJGqVQWfSmCRB+8zdoNqtb4mQTxk2XiVP95ZpiLp5oOQ9/wYNh7OkGuW2ruU16Zgm/BmBZqZPah5bmpSkNw=
X-Received: by 2002:a05:6512:2305:: with SMTP id o5mr44131472lfu.362.1637430553131; Sat, 20 Nov 2021 09:49:13 -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> <ZRAP278MB01768ADC3C161FE2D07441CC899D9@ZRAP278MB0176.CHEP278.PROD.OUTLOOK.COM>
In-Reply-To: <ZRAP278MB01768ADC3C161FE2D07441CC899D9@ZRAP278MB0176.CHEP278.PROD.OUTLOOK.COM>
From: Andy Bierman <andy@yumaworks.com>
Date: Sat, 20 Nov 2021 09:49:02 -0800
Message-ID: <CABCOCHStXU43ASTPhHhZ+F7Mp5baGcg8qP+9Pig3i77r5YZUBg@mail.gmail.com>
To: Thomas.Graf@swisscom.com
Cc: Pierre Francois <pierre.francois.ietf@gmail.com>, Netconf <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000076cfa905d13c02ca"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/rJznUsehi8UYZRIsa9wxfO45XQk>
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: Sat, 20 Nov 2021 17:49:22 -0000

Hi,

I have 2 separate issues with the protocol design.
Maybe only one is in scope.

1) ET field
I would like to see more standards value with the proprietary encoding type
field.
The standard encoding types are also under-specified.
(e.g. if ET=xml does the payload contain exactly one XML instance document?
If, so any particular element, or undefined?)

Application Content Format should be more standard.

2) Application Framing
This is to support Binary NETCONF or RESTCONF (not under development by the
WG).
This issue can be dropped, since the WG does not agree any valid use-cases
exist
for reusing the application layer with the application/yang-data+cbor media
type.


Andy


On Sat, Nov 20, 2021 at 9:23 AM <Thomas.Graf@swisscom.com> wrote:

> Dear Andy and Mahesh,
>
> Following this thread, wherever it makes sense to add an application
> message header to allow multiple notification messages being carried in one
> single udp-notif message, we need to have the full context.
>
> I understood from section 4.2 of draft-ietf-netconf-notification-messages
>
>
> https://datatracker.ietf.org/doc/html/draft-ietf-netconf-notification-messages#section-4.2
>
> That the intend of the working group is to support multiple notifications
> within one notification-message. Correct?
>
>
>
> From the data tracker
>
>
> https://datatracker.ietf.org/doc/draft-ietf-netconf-notification-messages/history/
>
> I understood that this draft is currently on-hold until the first
> transport draft (draft-ietf-netconf-udp-notif or
> draft-ietf-netconf-https-notif) has reached RFC status. Correct?
>
> If both correct, what is the added value of supporting multiple
> notification messages within the notification itself AND supporting
> multiple notifications at transport within an application framing as well?
>
> From a standardization point of view we should avoid duplicity as much as
> possible. If it is the intend of the working group to address this with
> draft-ietf-netconf-notification-messages than I suggest not to address this
> in draft draft-ietf-netconf-udp-notif as well. Have a transport agnostic
> implementation.
>
>
>
> Best wishes
>
> Thomas
>
>
>
> *From:* netconf <netconf-bounces@ietf.org> *On Behalf Of *Andy Bierman
> *Sent:* Wednesday, November 17, 2021 8:31 PM
> *To:* Pierre Francois <pierre.francois.ietf@gmail.com>
> *Cc:* Netconf <netconf@ietf.org>
> *Subject:* Re: [netconf] Issues with draft-ietf-netconf-udp-notif-04
>
>
>
>
>
>
>
> 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
> <https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Finsa-unyte%2Fudp-notif-c-collector&data=04%7C01%7CThomas.Graf%40swisscom.com%7C84814f606cb04781c1e708d9aa00e0fd%7C364e5b87c1c7420d9beec35d19b557a1%7C0%7C0%7C637727743017795641%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=pNaHwlWCs%2BZX0pfyDLPhNP3XZHmlj6%2F8oRfoLi83VvY%3D&reserved=0>
>
>
>
>
>
>
> 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
> <https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fhtml%2Fdraft-ietf-netconf-udp-notif%23section-4.1&data=04%7C01%7CThomas.Graf%40swisscom.com%7C84814f606cb04781c1e708d9aa00e0fd%7C364e5b87c1c7420d9beec35d19b557a1%7C0%7C0%7C637727743017805594%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=aoHKcTmIbZ8Kqi8IA7P1UzCwTiS62BIgZNFQAedLRsI%3D&reserved=0>
>
>
>
> 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
> <https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcore-wg%2Fyang-cbor%2Fissues%2F96&data=04%7C01%7CThomas.Graf%40swisscom.com%7C84814f606cb04781c1e708d9aa00e0fd%7C364e5b87c1c7420d9beec35d19b557a1%7C0%7C0%7C637727743017805594%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=yfXw9xQ6dD9OOd5OVZ5xnKQFgSORrGzFSTx%2FC%2BilHv8%3D&reserved=0>
>
>
>
> 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
> <https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcore-wg%2Fyang-cbor%2Fissues%2F96&data=04%7C01%7CThomas.Graf%40swisscom.com%7C84814f606cb04781c1e708d9aa00e0fd%7C364e5b87c1c7420d9beec35d19b557a1%7C0%7C0%7C637727743017815553%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=afUPwsN3gBCwnbxK7uOZ%2BccyHUdKXC404UBAQQbRuE0%3D&reserved=0>
>
>
>
> 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
> <https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fnetconf&data=04%7C01%7CThomas.Graf%40swisscom.com%7C84814f606cb04781c1e708d9aa00e0fd%7C364e5b87c1c7420d9beec35d19b557a1%7C0%7C0%7C637727743017815553%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=UZgC75UuOzIoB08bPLUxa2Eb%2BM8VDWU3%2FFGbrg2HuT0%3D&reserved=0>
>
>